OSDN Git Service

moved from CVS
authorhirami <hirami@users.sourceforge.jp>
Thu, 19 Feb 2009 17:16:51 +0000 (02:16 +0900)
committerhirami <hirami@users.sourceforge.jp>
Thu, 19 Feb 2009 17:16:51 +0000 (02:16 +0900)
Build 232

291 files changed:
BE300/Tombo/Tombo.vcp [new file with mode: 0644]
BE300/Tombo/Tombo.vcw [new file with mode: 0644]
BE300/Tombo/res/TomboE.rc [new file with mode: 0644]
BE300/Tombo/res/resource.h [new file with mode: 0644]
CppUnitTestApp/CppUnitTestApp.cpp [new file with mode: 0644]
CppUnitTestApp/CppUnitTestApp.dsp [new file with mode: 0644]
CppUnitTestApp/CppUnitTestApp.dsw [new file with mode: 0644]
CppUnitTestApp/CppUnitTestApp.h [new file with mode: 0644]
CppUnitTestApp/CppUnitTestApp.rc [new file with mode: 0644]
CppUnitTestApp/CppUnitTestAppDlg.cpp [new file with mode: 0644]
CppUnitTestApp/CppUnitTestAppDlg.h [new file with mode: 0644]
CppUnitTestApp/ReadMe.txt [new file with mode: 0644]
CppUnitTestApp/ReadMe_Tombo.txt [new file with mode: 0644]
CppUnitTestApp/Resource.h [new file with mode: 0644]
CppUnitTestApp/StdAfx.cpp [new file with mode: 0644]
CppUnitTestApp/StdAfx.h [new file with mode: 0644]
CppUnitTestApp/res/CppUnitTestApp.ico [new file with mode: 0644]
CppUnitTestApp/res/CppUnitTestApp.rc2 [new file with mode: 0644]
CppUnitTestApp/test/MemoInfoTest.cpp [new file with mode: 0644]
CppUnitTestApp/test/RegexTest.cpp [new file with mode: 0644]
CppUnitTestApp/test/SharedStringTest.cpp [new file with mode: 0644]
CppUnitTestApp/test/TomboURITest.cpp [new file with mode: 0644]
CppUnitTestApp/test/URIScannerTest.cpp [new file with mode: 0644]
CppUnitTestApp/test/UniConvTest.cpp [new file with mode: 0644]
CppUnitTestApp/test/VarBufferTest.cpp [new file with mode: 0644]
CppUnitTestApp/test/XXXTest.cpp [new file with mode: 0644]
CppUnitTestApp/test/YAEditDocTest.cpp [new file with mode: 0644]
HpcPro/RegErase/RegErase.vcp [new file with mode: 0644]
HpcPro/RegErase/RegErase.vcw [new file with mode: 0644]
HpcPro/Tombo/Tombo.vcp [new file with mode: 0644]
HpcPro/Tombo/Tombo.vcw [new file with mode: 0644]
HpcPro/Tombo/res/Tombo.rc [new file with mode: 0644]
HpcPro/Tombo/res/resource.h [new file with mode: 0644]
PocketPC/CabWiz/Tombo.inf [new file with mode: 0644]
PocketPC/CabWiz/TomboE.inf [new file with mode: 0644]
PocketPC/CabWiz/TomboVGA_en.inf [new file with mode: 0644]
PocketPC/CabWiz/TomboVGA_jp.inf [new file with mode: 0644]
PocketPC/CabWiz/mkcab.bat [new file with mode: 0644]
PocketPC/CabWiz/mkcabE.bat [new file with mode: 0644]
PocketPC/CabWiz/mkcabVGA.bat [new file with mode: 0644]
PocketPC/Tombo/Tombo.vcp [new file with mode: 0644]
PocketPC/Tombo/Tombo.vcw [new file with mode: 0644]
PocketPC/Tombo/res/Tombo.rc [new file with mode: 0644]
PocketPC/Tombo/res/Tombo.rc2 [new file with mode: 0644]
PocketPC/Tombo/res/newres.h [new file with mode: 0644]
PocketPC/Tombo/res/resource.h [new file with mode: 0644]
Src/AboutDialog.cpp [new file with mode: 0644]
Src/AboutDialog.h [new file with mode: 0644]
Src/BookMark.cpp [new file with mode: 0644]
Src/BookMark.h [new file with mode: 0644]
Src/BookMarkDlg.cpp [new file with mode: 0644]
Src/BookMarkDlg.h [new file with mode: 0644]
Src/Chipher.h [new file with mode: 0644]
Src/Crypt.cpp [new file with mode: 0644]
Src/Crypt.h [new file with mode: 0644]
Src/CryptManager.cpp [new file with mode: 0644]
Src/CryptManager.h [new file with mode: 0644]
Src/DetailsViewDlg.cpp [new file with mode: 0644]
Src/DetailsViewDlg.h [new file with mode: 0644]
Src/DetailsViewWndProc.cpp [new file with mode: 0644]
Src/DirList.cpp [new file with mode: 0644]
Src/DirList.h [new file with mode: 0644]
Src/FileSelector.cpp [new file with mode: 0644]
Src/FileSelector.h [new file with mode: 0644]
Src/FilterAddDlg.cpp [new file with mode: 0644]
Src/FilterAddDlg.h [new file with mode: 0644]
Src/FilterCtlDlg.cpp [new file with mode: 0644]
Src/FilterCtlDlg.h [new file with mode: 0644]
Src/FilterDefDlg.cpp [new file with mode: 0644]
Src/FilterDefDlg.h [new file with mode: 0644]
Src/GNUPG/bithelp.h [new file with mode: 0644]
Src/GNUPG/blowfish.c [new file with mode: 0644]
Src/GNUPG/md5.c [new file with mode: 0644]
Src/GrepDialog.cpp [new file with mode: 0644]
Src/GrepDialog.h [new file with mode: 0644]
Src/HPCPlatform.cpp [new file with mode: 0644]
Src/HPCPlatform.h [new file with mode: 0644]
Src/LagendaPlatform.cpp [new file with mode: 0644]
Src/LagendaPlatform.h [new file with mode: 0644]
Src/MainFrame.cpp [new file with mode: 0644]
Src/MainFrame.h [new file with mode: 0644]
Src/MemoDetailsView.cpp [new file with mode: 0644]
Src/MemoDetailsView.h [new file with mode: 0644]
Src/MemoFolder.cpp [new file with mode: 0644]
Src/MemoFolder.h [new file with mode: 0644]
Src/MemoInfo.cpp [new file with mode: 0644]
Src/MemoInfo.h [new file with mode: 0644]
Src/MemoManager.cpp [new file with mode: 0644]
Src/MemoManager.h [new file with mode: 0644]
Src/MemoNote.cpp [new file with mode: 0644]
Src/MemoNote.h [new file with mode: 0644]
Src/MemoSelectView.cpp [new file with mode: 0644]
Src/MemoSelectView.h [new file with mode: 0644]
Src/Message.cpp [new file with mode: 0644]
Src/Message.h [new file with mode: 0644]
Src/MsgRes/CheckGenerateRes.pl [new file with mode: 0644]
Src/MsgRes/DefaultMsg.cpp [new file with mode: 0644]
Src/MsgRes/GenDefaultResource.pl [new file with mode: 0644]
Src/MsgRes/GenMsg.bat [new file with mode: 0644]
Src/MsgRes/MsgDef.h [new file with mode: 0644]
Src/MsgRes/MsgDef/TomboMsg_en.txt [new file with mode: 0644]
Src/MsgRes/MsgDef/TomboMsg_jp.txt [new file with mode: 0644]
Src/MsgRes/MsgIDList.txt [new file with mode: 0644]
Src/MsgRes/TomboMsg/en/TomboMsg.txt [new file with mode: 0644]
Src/MsgRes/TomboMsg/jp/TomboMsg.txt [new file with mode: 0644]
Src/NewFolderDialog.cpp [new file with mode: 0644]
Src/NewFolderDialog.h [new file with mode: 0644]
Src/PasswordDialog.cpp [new file with mode: 0644]
Src/PasswordDialog.h [new file with mode: 0644]
Src/PasswordManager.cpp [new file with mode: 0644]
Src/PasswordManager.h [new file with mode: 0644]
Src/PlatformLayer.cpp [new file with mode: 0644]
Src/PlatformLayer.h [new file with mode: 0644]
Src/PocketPCPlatform.cpp [new file with mode: 0644]
Src/PocketPCPlatform.h [new file with mode: 0644]
Src/Property.cpp [new file with mode: 0644]
Src/Property.h [new file with mode: 0644]
Src/PsPCPlatform.cpp [new file with mode: 0644]
Src/PsPCPlatform.h [new file with mode: 0644]
Src/RegErase/RegErase.cpp [new file with mode: 0644]
Src/RegexUtil.h [new file with mode: 0644]
Src/Repository.cpp [new file with mode: 0644]
Src/Repository.h [new file with mode: 0644]
Src/RepositoryImpl.cpp [new file with mode: 0644]
Src/RepositoryImpl.h [new file with mode: 0644]
Src/SearchDlg.cpp [new file with mode: 0644]
Src/SearchDlg.h [new file with mode: 0644]
Src/SearchEngine.cpp [new file with mode: 0644]
Src/SearchEngine.h [new file with mode: 0644]
Src/SearchTree.cpp [new file with mode: 0644]
Src/SearchTree.h [new file with mode: 0644]
Src/SelectViewWndProc.cpp [new file with mode: 0644]
Src/StatusBar.cpp [new file with mode: 0644]
Src/StatusBar.h [new file with mode: 0644]
Src/TSParser.cpp [new file with mode: 0644]
Src/TSParser.h [new file with mode: 0644]
Src/Tombo.h [new file with mode: 0644]
Src/TomboLib/AutoPtr.cpp [new file with mode: 0644]
Src/TomboLib/AutoPtr.h [new file with mode: 0644]
Src/TomboLib/Clipboard.cpp [new file with mode: 0644]
Src/TomboLib/Clipboard.h [new file with mode: 0644]
Src/TomboLib/DialogTemplate.cpp [new file with mode: 0644]
Src/TomboLib/DialogTemplate.h [new file with mode: 0644]
Src/TomboLib/DirectoryScanner.cpp [new file with mode: 0644]
Src/TomboLib/DirectoryScanner.h [new file with mode: 0644]
Src/TomboLib/File.cpp [new file with mode: 0644]
Src/TomboLib/File.h [new file with mode: 0644]
Src/TomboLib/FileInputStream.cpp [new file with mode: 0644]
Src/TomboLib/FileInputStream.h [new file with mode: 0644]
Src/TomboLib/List.cpp [new file with mode: 0644]
Src/TomboLib/List.h [new file with mode: 0644]
Src/TomboLib/Logger.cpp [new file with mode: 0644]
Src/TomboLib/Logger.h [new file with mode: 0644]
Src/TomboLib/PropertyPage.cpp [new file with mode: 0644]
Src/TomboLib/PropertyPage.h [new file with mode: 0644]
Src/TomboLib/SipControl.cpp [new file with mode: 0644]
Src/TomboLib/SipControl.h [new file with mode: 0644]
Src/TomboLib/TString.cpp [new file with mode: 0644]
Src/TomboLib/TString.h [new file with mode: 0644]
Src/TomboLib/Uniconv.cpp [new file with mode: 0644]
Src/TomboLib/Uniconv.h [new file with mode: 0644]
Src/TomboLib/VarBuffer.cpp [new file with mode: 0644]
Src/TomboLib/VarBuffer.h [new file with mode: 0644]
Src/TomboPropertyTab.cpp [new file with mode: 0644]
Src/TomboPropertyTab.h [new file with mode: 0644]
Src/TomboURI.cpp [new file with mode: 0644]
Src/TomboURI.h [new file with mode: 0644]
Src/TreeViewItem.cpp [new file with mode: 0644]
Src/TreeViewItem.h [new file with mode: 0644]
Src/URIScanner.cpp [new file with mode: 0644]
Src/URIScanner.h [new file with mode: 0644]
Src/VFManager.cpp [new file with mode: 0644]
Src/VFManager.h [new file with mode: 0644]
Src/VFStream.cpp [new file with mode: 0644]
Src/VFStream.h [new file with mode: 0644]
Src/WM5Platform.cpp [new file with mode: 0644]
Src/WM5Platform.h [new file with mode: 0644]
Src/Win32Platform.cpp [new file with mode: 0644]
Src/Win32Platform.h [new file with mode: 0644]
Src/YAEdit/FontWidthCache.cpp [new file with mode: 0644]
Src/YAEdit/FontWidthCache.h [new file with mode: 0644]
Src/YAEdit/LineManager.cpp [new file with mode: 0644]
Src/YAEdit/LineManager.h [new file with mode: 0644]
Src/YAEdit/LineWrapper.cpp [new file with mode: 0644]
Src/YAEdit/LineWrapper.h [new file with mode: 0644]
Src/YAEdit/LineWrapperImpl.cpp [new file with mode: 0644]
Src/YAEdit/LineWrapperImpl.h [new file with mode: 0644]
Src/YAEdit/MemManager.cpp [new file with mode: 0644]
Src/YAEdit/MemManager.h [new file with mode: 0644]
Src/YAEdit/PhysicalLineManager.cpp [new file with mode: 0644]
Src/YAEdit/PhysicalLineManager.h [new file with mode: 0644]
Src/YAEdit/Region.cpp [new file with mode: 0644]
Src/YAEdit/Region.h [new file with mode: 0644]
Src/YAEdit/StringSplitter.cpp [new file with mode: 0644]
Src/YAEdit/StringSplitter.h [new file with mode: 0644]
Src/YAEdit/YAEdit.cpp [new file with mode: 0644]
Src/YAEdit/YAEdit.h [new file with mode: 0644]
Src/YAEdit/YAEditDoc.cpp [new file with mode: 0644]
Src/YAEdit/YAEditDoc.h [new file with mode: 0644]
Src/YAEdit/YAEditView.cpp [new file with mode: 0644]
Src/YAEdit/YAEditView.h [new file with mode: 0644]
Src/YAEditor.cpp [new file with mode: 0644]
Src/YAEditor.h [new file with mode: 0644]
Src/image/Thumbs.db [new file with mode: 0644]
Src/image/Tombo.ICO [new file with mode: 0644]
Src/image/bookmark.bmp [new file with mode: 0644]
Src/image/copy.bmp [new file with mode: 0644]
Src/image/cut.bmp [new file with mode: 0644]
Src/image/delete.bmp [new file with mode: 0644]
Src/image/draftimg.bmp [new file with mode: 0644]
Src/image/find.bmp [new file with mode: 0644]
Src/image/findnext.bmp [new file with mode: 0644]
Src/image/findprev.bmp [new file with mode: 0644]
Src/image/insdate1.bmp [new file with mode: 0644]
Src/image/insdate2.bmp [new file with mode: 0644]
Src/image/mdtoolbar.bmp [new file with mode: 0644]
Src/image/memoimg.bmp [new file with mode: 0644]
Src/image/memoimg24.bmp [new file with mode: 0644]
Src/image/newmemo.bmp [new file with mode: 0644]
Src/image/paste.bmp [new file with mode: 0644]
Src/image/rebar.bmp [new file with mode: 0644]
Src/image/save.bmp [new file with mode: 0644]
Src/image/tool.bmp [new file with mode: 0644]
Src/image/toolbar.bmp [new file with mode: 0644]
Src/image/toolbarlarge.bmp [new file with mode: 0644]
Src/main.cpp [new file with mode: 0644]
Src/regex/config.h [new file with mode: 0644]
Src/regex/ctypeutil.c [new file with mode: 0644]
Src/regex/ctypeutil.h [new file with mode: 0644]
Src/regex/regex.c [new file with mode: 0644]
Src/regex/regex.h [new file with mode: 0644]
Src/regex/util.c [new file with mode: 0644]
Win32/RegErase/RegErase.dsp [new file with mode: 0644]
Win32/RegErase/RegErase.dsw [new file with mode: 0644]
Win32/Tombo/SetupE/SetupE.vdproj [new file with mode: 0644]
Win32/Tombo/SetupJ/SetupJ.vdproj [new file with mode: 0644]
Win32/Tombo/Tombo.dsp [new file with mode: 0644]
Win32/Tombo/Tombo.dsw [new file with mode: 0644]
Win32/Tombo/Tombo.sln [new file with mode: 0644]
Win32/Tombo/Tombo.suo [new file with mode: 0644]
Win32/Tombo/Tombo/Tombo.vcproj [new file with mode: 0644]
Win32/Tombo/res/Tombo.rc [new file with mode: 0644]
Win32/Tombo/res/resource.h [new file with mode: 0644]
WindowsMobile5PPC/Tombo/Tombo.sln [new file with mode: 0644]
WindowsMobile5PPC/Tombo/Tombo.suo [new file with mode: 0644]
WindowsMobile5PPC/Tombo/Tombo/Tombo.vcproj [new file with mode: 0644]
contrib/TomboCrypt/COMPILE [new file with mode: 0644]
contrib/TomboCrypt/Crypt.cpp [new file with mode: 0644]
contrib/TomboCrypt/Crypt.h [new file with mode: 0644]
contrib/TomboCrypt/CryptManager.cpp [new file with mode: 0644]
contrib/TomboCrypt/CryptManager.h [new file with mode: 0644]
contrib/TomboCrypt/File.cpp [new file with mode: 0644]
contrib/TomboCrypt/File.h [new file with mode: 0644]
contrib/TomboCrypt/Readme.txt [new file with mode: 0644]
contrib/TomboCrypt/TomboCrypt.cpp [new file with mode: 0644]
contrib/TomboCrypt/TomboCrypt.sln [new file with mode: 0644]
contrib/TomboCrypt/TomboCrypt.vcproj [new file with mode: 0644]
contrib/TomboCrypt/bithelp.h [new file with mode: 0644]
contrib/TomboCrypt/blowfish.c [new file with mode: 0644]
contrib/TomboCrypt/md5.c [new file with mode: 0644]
contrib/TomboCrypt/test.chi [new file with mode: 0644]
contrib/TomboCrypt/test1.chi [new file with mode: 0644]
contrib/TomboCrypt/test2.chi [new file with mode: 0644]
contrib/TomboCrypt/wintypes.h [new file with mode: 0644]
etc/TOMBO_vfolder.dtd [new file with mode: 0644]
etc/mkbuild.pl [new file with mode: 0644]
etc/vfolder.xml [new file with mode: 0644]
expat/ReadMe.txt [new file with mode: 0644]
expat/include/expat.h [new file with mode: 0644]
expat/lib/ARM/libexpatw.lib [new file with mode: 0644]
expat/lib/ARMV4I/expatw.lib [new file with mode: 0644]
expat/lib/MIPS/libexpatw.lib [new file with mode: 0644]
expat/lib/SH3/libexpatw.lib [new file with mode: 0644]
expat/lib/SH4/libexpatw.lib [new file with mode: 0644]
expat/lib/Win32/libexpatw.dll [new file with mode: 0644]
expat/lib/Win32/libexpatw.lib [new file with mode: 0644]
oniguruma/COPYING [new file with mode: 0644]
oniguruma/Readme.txt [new file with mode: 0644]
oniguruma/arm/oniguruma.dll [new file with mode: 0644]
oniguruma/arm/oniguruma.lib [new file with mode: 0644]
oniguruma/armv4i/oniguruma.dll [new file with mode: 0644]
oniguruma/armv4i/oniguruma.lib [new file with mode: 0644]
oniguruma/mips/oniguruma.dll [new file with mode: 0644]
oniguruma/mips/oniguruma.lib [new file with mode: 0644]
oniguruma/oniguruma.h [new file with mode: 0644]
oniguruma/sh3/oniguruma.dll [new file with mode: 0644]
oniguruma/sh3/oniguruma.lib [new file with mode: 0644]
oniguruma/sh4/oniguruma.dll [new file with mode: 0644]
oniguruma/sh4/oniguruma.lib [new file with mode: 0644]
oniguruma/win32/oniguruma.dll [new file with mode: 0644]
oniguruma/win32/oniguruma.lib [new file with mode: 0644]

diff --git a/BE300/Tombo/Tombo.vcp b/BE300/Tombo/Tombo.vcp
new file mode 100644 (file)
index 0000000..0a45728
--- /dev/null
@@ -0,0 +1,7970 @@
+# Microsoft eMbedded Visual Tools Project File - Name="Tombo" - Package Owner=<4>\r
+# Microsoft eMbedded Visual Tools Generated Build File, Format Version 6.02\r
+# ** DO NOT EDIT **\r
+\r
+# TARGTYPE "Win32 (WCE ARM) Application" 0x8501\r
+# TARGTYPE "Win32 (WCE SH3) Application" 0x8101\r
+# TARGTYPE "Win32 (WCE SH4) Application" 0x8601\r
+# TARGTYPE "Win32 (WCE MIPS) Application" 0x8201\r
+\r
+CFG=Tombo - Win32 (WCE MIPS) Debug\r
+!MESSAGE This is not a valid makefile. To build this project using NMAKE,\r
+!MESSAGE use the Export Makefile command and run\r
+!MESSAGE \r
+!MESSAGE NMAKE /f "Tombo.vcn".\r
+!MESSAGE \r
+!MESSAGE You can specify a configuration when running NMAKE\r
+!MESSAGE by defining the macro CFG on the command line. For example:\r
+!MESSAGE \r
+!MESSAGE NMAKE /f "Tombo.vcn" CFG="Tombo - Win32 (WCE MIPS) Debug"\r
+!MESSAGE \r
+!MESSAGE Possible choices for configuration are:\r
+!MESSAGE \r
+!MESSAGE "Tombo - Win32 (WCE MIPS) Release" (based on "Win32 (WCE MIPS) Application")\r
+!MESSAGE "Tombo - Win32 (WCE MIPS) Debug" (based on "Win32 (WCE MIPS) Application")\r
+!MESSAGE "Tombo - Win32 (WCE SH4) Release" (based on "Win32 (WCE SH4) Application")\r
+!MESSAGE "Tombo - Win32 (WCE SH4) Debug" (based on "Win32 (WCE SH4) Application")\r
+!MESSAGE "Tombo - Win32 (WCE SH3) Release" (based on "Win32 (WCE SH3) Application")\r
+!MESSAGE "Tombo - Win32 (WCE SH3) Debug" (based on "Win32 (WCE SH3) Application")\r
+!MESSAGE "Tombo - Win32 (WCE ARM) Release" (based on "Win32 (WCE ARM) Application")\r
+!MESSAGE "Tombo - Win32 (WCE ARM) Debug" (based on "Win32 (WCE ARM) Application")\r
+!MESSAGE \r
+\r
+# Begin Project\r
+# PROP AllowPerConfigDependencies 0\r
+# PROP Scc_ProjName ""\r
+# PROP Scc_LocalPath ""\r
+# PROP ATL_Project 2\r
+\r
+!IF  "$(CFG)" == "Tombo - Win32 (WCE MIPS) Release"\r
+\r
+# PROP BASE Use_MFC 0\r
+# PROP BASE Use_Debug_Libraries 0\r
+# PROP BASE Output_Dir "MIPSRel"\r
+# PROP BASE Intermediate_Dir "MIPSRel"\r
+# PROP BASE CPU_ID "{D6519010-710F-11D3-99F2-00105A0DF099}"\r
+# PROP BASE Platform_ID "{8A9A2F80-6887-11D3-842E-005004848CBA}"\r
+# PROP BASE Target_Dir ""\r
+# PROP Use_MFC 0\r
+# PROP Use_Debug_Libraries 0\r
+# PROP Output_Dir "MIPSRel"\r
+# PROP Intermediate_Dir "MIPSRel"\r
+# PROP CPU_ID "{D6519010-710F-11D3-99F2-00105A0DF099}"\r
+# PROP Platform_ID "{8A9A2F80-6887-11D3-842E-005004848CBA}"\r
+# PROP Ignore_Export_Lib 0\r
+# PROP Target_Dir ""\r
+RSC=rc.exe\r
+# ADD BASE RSC /l 0x409 /d UNDER_CE=$(CEVersion) /d _WIN32_WCE=$(CEVersion) /d "UNICODE" /d "_UNICODE" /d "NDEBUG" /d "$(CePlatform)" /d "MIPS" /d "_MIPS_" /r\r
+# ADD RSC /l 0x409 /d UNDER_CE=$(CEVersion) /d _WIN32_WCE=$(CEVersion) /d "UNICODE" /d "_UNICODE" /d "NDEBUG" /d "$(CePlatform)" /d "MIPS" /d "_MIPS_" /r\r
+CPP=clmips.exe\r
+# ADD BASE CPP /nologo /W3 /D _WIN32_WCE=$(CEVersion) /D "$(CePlatform)" /D "MIPS" /D "_MIPS_" /D UNDER_CE=$(CEVersion) /D "UNICODE" /D "_UNICODE" /D "NDEBUG" /YX /Oxs /M$(CECrtMT) /c\r
+# ADD CPP /nologo /W3 /I "../../Src" /I "../expat/include" /I "./res" /I "." /I "../../Src/regex" /I "../../expat/include" /I "../../Src/TomboLib" /I "../../Src/YAEdit" /I "../../oniguruma/" /D "MIPS" /D "_MIPS_" /D "NDEBUG" /D "TOMBO" /D UNDER_CE=$(CEVersion) /D _WIN32_WCE=$(CEVersion) /D "$(CePlatform)" /D "UNICODE" /D "_UNICODE" /D "PLATFORM_BE500" /D "TOMBO_LANG_ENGLISH" /YX /Oxs /M$(CECrtMT) /c\r
+MTL=midl.exe\r
+# ADD BASE MTL /nologo /D "NDEBUG" /mktyplib203 /o "NUL" /win32\r
+# ADD MTL /nologo /D "NDEBUG" /mktyplib203 /o "NUL" /win32\r
+BSC32=bscmake.exe\r
+# ADD BASE BSC32 /nologo\r
+# ADD BSC32 /nologo\r
+LINK32=link.exe\r
+# ADD BASE LINK32 commctrl.lib coredll.lib /nologo /base:"0x00010000" /stack:0x10000,0x1000 /entry:"WinMainCRTStartup" /nodefaultlib:"$(CENoDefaultLib)" /subsystem:$(CESubsystem) /MACHINE:MIPS\r
+# ADD LINK32 commctrl.lib coredll.lib getdisk.lib cso.lib COShellAPI.lib /nologo /base:"0x00010000" /stack:0x10000,0x1000 /entry:"WinMainCRTStartup" /nodefaultlib:"$(CENoDefaultLib)" /subsystem:$(CESubsystem) /MACHINE:MIPS\r
+\r
+!ELSEIF  "$(CFG)" == "Tombo - Win32 (WCE MIPS) Debug"\r
+\r
+# PROP BASE Use_MFC 0\r
+# PROP BASE Use_Debug_Libraries 1\r
+# PROP BASE Output_Dir "MIPSDbg"\r
+# PROP BASE Intermediate_Dir "MIPSDbg"\r
+# PROP BASE CPU_ID "{D6519010-710F-11D3-99F2-00105A0DF099}"\r
+# PROP BASE Platform_ID "{8A9A2F80-6887-11D3-842E-005004848CBA}"\r
+# PROP BASE Target_Dir ""\r
+# PROP Use_MFC 0\r
+# PROP Use_Debug_Libraries 1\r
+# PROP Output_Dir "MIPSDbg"\r
+# PROP Intermediate_Dir "MIPSDbg"\r
+# PROP CPU_ID "{D6519010-710F-11D3-99F2-00105A0DF099}"\r
+# PROP Platform_ID "{8A9A2F80-6887-11D3-842E-005004848CBA}"\r
+# PROP Ignore_Export_Lib 0\r
+# PROP Target_Dir ""\r
+RSC=rc.exe\r
+# ADD BASE RSC /l 0x409 /d UNDER_CE=$(CEVersion) /d _WIN32_WCE=$(CEVersion) /d "UNICODE" /d "_UNICODE" /d "DEBUG" /d "$(CePlatform)" /d "MIPS" /d "_MIPS_" /r\r
+# ADD RSC /l 0x409 /d UNDER_CE=$(CEVersion) /d _WIN32_WCE=$(CEVersion) /d "UNICODE" /d "_UNICODE" /d "DEBUG" /d "$(CePlatform)" /d "MIPS" /d "_MIPS_" /r\r
+CPP=clmips.exe\r
+# ADD BASE CPP /nologo /W3 /Zi /Od /D "DEBUG" /D "MIPS" /D "_MIPS_" /D UNDER_CE=$(CEVersion) /D _WIN32_WCE=$(CEVersion) /D "$(CePlatform)" /D "UNICODE" /D "_UNICODE" /YX /M$(CECrtMTDebug) /c\r
+# ADD CPP /nologo /W3 /Zi /Od /I "./res" /I "." /I "../../expat/include" /D "DEBUG" /D "MIPS" /D "_MIPS_" /D "TOMBO" /D UNDER_CE=$(CEVersion) /D _WIN32_WCE=$(CEVersion) /D "$(CePlatform)" /D "UNICODE" /D "_UNICODE" /D "PLATFORM_BE500" /D "TOMBO_LANG_ENGLISH" /YX /M$(CECrtMTDebug) /c\r
+MTL=midl.exe\r
+# ADD BASE MTL /nologo /D "_DEBUG" /mktyplib203 /o "NUL" /win32\r
+# ADD MTL /nologo /D "_DEBUG" /mktyplib203 /o "NUL" /win32\r
+BSC32=bscmake.exe\r
+# ADD BASE BSC32 /nologo\r
+# ADD BSC32 /nologo\r
+LINK32=link.exe\r
+# ADD BASE LINK32 commctrl.lib coredll.lib /nologo /base:"0x00010000" /stack:0x10000,0x1000 /entry:"WinMainCRTStartup" /debug /nodefaultlib:"$(CENoDefaultLib)" /subsystem:$(CESubsystem) /MACHINE:MIPS\r
+# ADD LINK32 commctrl.lib coredll.lib getdisk.lib cso.lib /nologo /base:"0x00010000" /stack:0x10000,0x1000 /entry:"WinMainCRTStartup" /debug /nodefaultlib:"$(CENoDefaultLib)" /subsystem:$(CESubsystem) /MACHINE:MIPS\r
+\r
+!ELSEIF  "$(CFG)" == "Tombo - Win32 (WCE SH4) Release"\r
+\r
+# PROP BASE Use_MFC 0\r
+# PROP BASE Use_Debug_Libraries 0\r
+# PROP BASE Output_Dir "SH4Rel"\r
+# PROP BASE Intermediate_Dir "SH4Rel"\r
+# PROP BASE CPU_ID "{D6519021-710F-11D3-99F2-00105A0DF099}"\r
+# PROP BASE Platform_ID "{8A9A2F80-6887-11D3-842E-005004848CBA}"\r
+# PROP BASE Target_Dir ""\r
+# PROP Use_MFC 0\r
+# PROP Use_Debug_Libraries 0\r
+# PROP Output_Dir "SH4Rel"\r
+# PROP Intermediate_Dir "SH4Rel"\r
+# PROP CPU_ID "{D6519021-710F-11D3-99F2-00105A0DF099}"\r
+# PROP Platform_ID "{8A9A2F80-6887-11D3-842E-005004848CBA}"\r
+# PROP Ignore_Export_Lib 0\r
+# PROP Target_Dir ""\r
+RSC=rc.exe\r
+# ADD BASE RSC /l 0x409 /d UNDER_CE=$(CEVersion) /d _WIN32_WCE=$(CEVersion) /d "NDEBUG" /d "UNICODE" /d "_UNICODE" /d "$(CePlatform)" /d "SHx" /d "SH4" /d "_SH4_" /r\r
+# ADD RSC /l 0x409 /d UNDER_CE=$(CEVersion) /d _WIN32_WCE=$(CEVersion) /d "NDEBUG" /d "UNICODE" /d "_UNICODE" /d "$(CePlatform)" /d "SHx" /d "SH4" /d "_SH4_" /r\r
+CPP=shcl.exe\r
+# ADD BASE CPP /nologo /W3 /D _WIN32_WCE=$(CEVersion) /D "$(CePlatform)" /D "SHx" /D "SH4" /D "_SH4_" /D UNDER_CE=$(CEVersion) /D "UNICODE" /D "_UNICODE" /D "NDEBUG" /YX /Qsh4 /Oxs /M$(CECrtMT) /c\r
+# ADD CPP /nologo /W3 /I "../../kctrl" /I "." /I "../../expat/include" /D "SHx" /D "SH4" /D "_SH4_" /D "NDEBUG" /D "TOMBO" /D UNDER_CE=$(CEVersion) /D _WIN32_WCE=$(CEVersion) /D "$(CePlatform)" /D "UNICODE" /D "_UNICODE" /D "PLATFORM_PSPC" /YX /Qsh4 /Oxs /M$(CECrtMT) /c\r
+MTL=midl.exe\r
+# ADD BASE MTL /nologo /D "NDEBUG" /mktyplib203 /o "NUL" /win32\r
+# ADD MTL /nologo /D "NDEBUG" /mktyplib203 /o "NUL" /win32\r
+BSC32=bscmake.exe\r
+# ADD BASE BSC32 /nologo\r
+# ADD BSC32 /nologo\r
+LINK32=link.exe\r
+# ADD BASE LINK32 commctrl.lib coredll.lib /nologo /base:"0x00010000" /stack:0x10000,0x1000 /entry:"WinMainCRTStartup" /nodefaultlib:"$(CENoDefaultLib)" /subsystem:$(CESubsystem) /MACHINE:SH4\r
+# ADD LINK32 commctrl.lib coredll.lib aygshell.lib /nologo /base:"0x00010000" /stack:0x10000,0x1000 /entry:"WinMainCRTStartup" /nodefaultlib:"$(CENoDefaultLib)" /subsystem:$(CESubsystem) /MACHINE:SH4\r
+\r
+!ELSEIF  "$(CFG)" == "Tombo - Win32 (WCE SH4) Debug"\r
+\r
+# PROP BASE Use_MFC 0\r
+# PROP BASE Use_Debug_Libraries 1\r
+# PROP BASE Output_Dir "SH4Dbg"\r
+# PROP BASE Intermediate_Dir "SH4Dbg"\r
+# PROP BASE CPU_ID "{D6519021-710F-11D3-99F2-00105A0DF099}"\r
+# PROP BASE Platform_ID "{8A9A2F80-6887-11D3-842E-005004848CBA}"\r
+# PROP BASE Target_Dir ""\r
+# PROP Use_MFC 0\r
+# PROP Use_Debug_Libraries 1\r
+# PROP Output_Dir "SH4Dbg"\r
+# PROP Intermediate_Dir "SH4Dbg"\r
+# PROP CPU_ID "{D6519021-710F-11D3-99F2-00105A0DF099}"\r
+# PROP Platform_ID "{8A9A2F80-6887-11D3-842E-005004848CBA}"\r
+# PROP Ignore_Export_Lib 0\r
+# PROP Target_Dir ""\r
+RSC=rc.exe\r
+# ADD BASE RSC /l 0x409 /d UNDER_CE=$(CEVersion) /d _WIN32_WCE=$(CEVersion) /d "DEBUG" /d "UNICODE" /d "_UNICODE" /d "$(CePlatform)" /d "SHx" /d "SH4" /d "_SH4_" /r\r
+# ADD RSC /l 0x409 /d UNDER_CE=$(CEVersion) /d _WIN32_WCE=$(CEVersion) /d "DEBUG" /d "UNICODE" /d "_UNICODE" /d "$(CePlatform)" /d "SHx" /d "SH4" /d "_SH4_" /r\r
+CPP=shcl.exe\r
+# ADD BASE CPP /nologo /W3 /Zi /Od /D "DEBUG" /D "SHx" /D "SH4" /D "_SH4_" /D UNDER_CE=$(CEVersion) /D _WIN32_WCE=$(CEVersion) /D "$(CePlatform)" /D "UNICODE" /D "_UNICODE" /YX /Qsh4 /M$(CECrtMTDebug) /c\r
+# ADD CPP /nologo /W3 /Zi /Od /I "../../kctrl" /I "." /I "../../expat/include" /D "DEBUG" /D "SHx" /D "SH4" /D "_SH4_" /D "TOMBO" /D UNDER_CE=$(CEVersion) /D _WIN32_WCE=$(CEVersion) /D "$(CePlatform)" /D "UNICODE" /D "_UNICODE" /D "PLATFORM_PSPC" /YX /Qsh4 /M$(CECrtMTDebug) /c\r
+MTL=midl.exe\r
+# ADD BASE MTL /nologo /D "_DEBUG" /mktyplib203 /o "NUL" /win32\r
+# ADD MTL /nologo /D "_DEBUG" /mktyplib203 /o "NUL" /win32\r
+BSC32=bscmake.exe\r
+# ADD BASE BSC32 /nologo\r
+# ADD BSC32 /nologo\r
+LINK32=link.exe\r
+# ADD BASE LINK32 commctrl.lib coredll.lib /nologo /base:"0x00010000" /stack:0x10000,0x1000 /entry:"WinMainCRTStartup" /debug /nodefaultlib:"$(CENoDefaultLib)" /subsystem:$(CESubsystem) /MACHINE:SH4\r
+# ADD LINK32 commctrl.lib coredll.lib aygshell.lib /nologo /base:"0x00010000" /stack:0x10000,0x1000 /entry:"WinMainCRTStartup" /debug /nodefaultlib:"$(CENoDefaultLib)" /subsystem:$(CESubsystem) /MACHINE:SH4\r
+\r
+!ELSEIF  "$(CFG)" == "Tombo - Win32 (WCE SH3) Release"\r
+\r
+# PROP BASE Use_MFC 0\r
+# PROP BASE Use_Debug_Libraries 0\r
+# PROP BASE Output_Dir "SH3Rel"\r
+# PROP BASE Intermediate_Dir "SH3Rel"\r
+# PROP BASE CPU_ID "{D6519020-710F-11D3-99F2-00105A0DF099}"\r
+# PROP BASE Platform_ID "{8A9A2F80-6887-11D3-842E-005004848CBA}"\r
+# PROP BASE Target_Dir ""\r
+# PROP Use_MFC 0\r
+# PROP Use_Debug_Libraries 0\r
+# PROP Output_Dir "SH3Rel"\r
+# PROP Intermediate_Dir "SH3Rel"\r
+# PROP CPU_ID "{D6519020-710F-11D3-99F2-00105A0DF099}"\r
+# PROP Platform_ID "{8A9A2F80-6887-11D3-842E-005004848CBA}"\r
+# PROP Ignore_Export_Lib 0\r
+# PROP Target_Dir ""\r
+RSC=rc.exe\r
+# ADD BASE RSC /l 0x409 /d UNDER_CE=$(CEVersion) /d _WIN32_WCE=$(CEVersion) /d "UNICODE" /d "_UNICODE" /d "NDEBUG" /d "$(CePlatform)" /d "SHx" /d "SH3" /d "_SH3_" /r\r
+# ADD RSC /l 0x409 /d UNDER_CE=$(CEVersion) /d _WIN32_WCE=$(CEVersion) /d "UNICODE" /d "_UNICODE" /d "NDEBUG" /d "$(CePlatform)" /d "SHx" /d "SH3" /d "_SH3_" /r\r
+CPP=shcl.exe\r
+# ADD BASE CPP /nologo /W3 /D _WIN32_WCE=$(CEVersion) /D "$(CePlatform)" /D "SHx" /D "SH3" /D "_SH3_" /D UNDER_CE=$(CEVersion) /D "UNICODE" /D "_UNICODE" /D "NDEBUG" /YX /Oxs /M$(CECrtMT) /c\r
+# ADD CPP /nologo /W3 /Od /I "../../kctrl" /I "." /I "../../expat/include" /D "SHx" /D "SH3" /D "_SH3_" /D "NDEBUG" /D "TOMBO" /D UNDER_CE=$(CEVersion) /D _WIN32_WCE=$(CEVersion) /D "$(CePlatform)" /D "UNICODE" /D "_UNICODE" /D "PLATFORM_PSPC" /YX /M$(CECrtMT) /c\r
+MTL=midl.exe\r
+# ADD BASE MTL /nologo /D "NDEBUG" /mktyplib203 /o "NUL" /win32\r
+# ADD MTL /nologo /D "NDEBUG" /mktyplib203 /o "NUL" /win32\r
+BSC32=bscmake.exe\r
+# ADD BASE BSC32 /nologo\r
+# ADD BSC32 /nologo\r
+LINK32=link.exe\r
+# ADD BASE LINK32 commctrl.lib coredll.lib /nologo /base:"0x00010000" /stack:0x10000,0x1000 /entry:"WinMainCRTStartup" /nodefaultlib:"$(CENoDefaultLib)" /subsystem:$(CESubsystem) /MACHINE:SH3\r
+# ADD LINK32 commctrl.lib coredll.lib aygshell.lib /nologo /base:"0x00010000" /stack:0x10000,0x1000 /entry:"WinMainCRTStartup" /nodefaultlib:"$(CENoDefaultLib)" /subsystem:$(CESubsystem) /MACHINE:SH3\r
+\r
+!ELSEIF  "$(CFG)" == "Tombo - Win32 (WCE SH3) Debug"\r
+\r
+# PROP BASE Use_MFC 0\r
+# PROP BASE Use_Debug_Libraries 1\r
+# PROP BASE Output_Dir "SH3Dbg"\r
+# PROP BASE Intermediate_Dir "SH3Dbg"\r
+# PROP BASE CPU_ID "{D6519020-710F-11D3-99F2-00105A0DF099}"\r
+# PROP BASE Platform_ID "{8A9A2F80-6887-11D3-842E-005004848CBA}"\r
+# PROP BASE Target_Dir ""\r
+# PROP Use_MFC 0\r
+# PROP Use_Debug_Libraries 1\r
+# PROP Output_Dir "SH3Dbg"\r
+# PROP Intermediate_Dir "SH3Dbg"\r
+# PROP CPU_ID "{D6519020-710F-11D3-99F2-00105A0DF099}"\r
+# PROP Platform_ID "{8A9A2F80-6887-11D3-842E-005004848CBA}"\r
+# PROP Ignore_Export_Lib 0\r
+# PROP Target_Dir ""\r
+RSC=rc.exe\r
+# ADD BASE RSC /l 0x409 /d UNDER_CE=$(CEVersion) /d _WIN32_WCE=$(CEVersion) /d "UNICODE" /d "_UNICODE" /d "DEBUG" /d "$(CePlatform)" /d "SHx" /d "SH3" /d "_SH3_" /r\r
+# ADD RSC /l 0x409 /d UNDER_CE=$(CEVersion) /d _WIN32_WCE=$(CEVersion) /d "UNICODE" /d "_UNICODE" /d "DEBUG" /d "$(CePlatform)" /d "SHx" /d "SH3" /d "_SH3_" /r\r
+CPP=shcl.exe\r
+# ADD BASE CPP /nologo /W3 /Zi /Od /D "DEBUG" /D "SHx" /D "SH3" /D "_SH3_" /D UNDER_CE=$(CEVersion) /D _WIN32_WCE=$(CEVersion) /D "$(CePlatform)" /D "UNICODE" /D "_UNICODE" /YX /M$(CECrtMTDebug) /c\r
+# ADD CPP /nologo /W3 /Zi /Od /I "../../kctrl" /I "." /I "../../expat/include" /D "DEBUG" /D "SHx" /D "SH3" /D "_SH3_" /D "TOMBO" /D UNDER_CE=$(CEVersion) /D _WIN32_WCE=$(CEVersion) /D "$(CePlatform)" /D "UNICODE" /D "_UNICODE" /D "PLATFORM_PSPC" /YX /M$(CECrtMTDebug) /c\r
+MTL=midl.exe\r
+# ADD BASE MTL /nologo /D "_DEBUG" /mktyplib203 /o "NUL" /win32\r
+# ADD MTL /nologo /D "_DEBUG" /mktyplib203 /o "NUL" /win32\r
+BSC32=bscmake.exe\r
+# ADD BASE BSC32 /nologo\r
+# ADD BSC32 /nologo\r
+LINK32=link.exe\r
+# ADD BASE LINK32 commctrl.lib coredll.lib /nologo /base:"0x00010000" /stack:0x10000,0x1000 /entry:"WinMainCRTStartup" /debug /nodefaultlib:"$(CENoDefaultLib)" /subsystem:$(CESubsystem) /MACHINE:SH3\r
+# ADD LINK32 commctrl.lib coredll.lib aygshell.lib /nologo /base:"0x00010000" /stack:0x10000,0x1000 /entry:"WinMainCRTStartup" /debug /nodefaultlib:"$(CENoDefaultLib)" /subsystem:$(CESubsystem) /MACHINE:SH3\r
+\r
+!ELSEIF  "$(CFG)" == "Tombo - Win32 (WCE ARM) Release"\r
+\r
+# PROP BASE Use_MFC 0\r
+# PROP BASE Use_Debug_Libraries 0\r
+# PROP BASE Output_Dir "ARMRel"\r
+# PROP BASE Intermediate_Dir "ARMRel"\r
+# PROP BASE CPU_ID "{D6518FFC-710F-11D3-99F2-00105A0DF099}"\r
+# PROP BASE Platform_ID "{8A9A2F80-6887-11D3-842E-005004848CBA}"\r
+# PROP BASE Target_Dir ""\r
+# PROP Use_MFC 0\r
+# PROP Use_Debug_Libraries 0\r
+# PROP Output_Dir "ARMRel"\r
+# PROP Intermediate_Dir "ARMRel"\r
+# PROP CPU_ID "{D6518FFC-710F-11D3-99F2-00105A0DF099}"\r
+# PROP Platform_ID "{8A9A2F80-6887-11D3-842E-005004848CBA}"\r
+# PROP Ignore_Export_Lib 0\r
+# PROP Target_Dir ""\r
+RSC=rc.exe\r
+# ADD BASE RSC /l 0x409 /d UNDER_CE=$(CEVersion) /d _WIN32_WCE=$(CEVersion) /d "UNICODE" /d "_UNICODE" /d "NDEBUG" /d "$(CePlatform)" /d "ARM" /d "_ARM_" /r\r
+# ADD RSC /l 0x409 /d UNDER_CE=$(CEVersion) /d _WIN32_WCE=$(CEVersion) /d "UNICODE" /d "_UNICODE" /d "NDEBUG" /d "$(CePlatform)" /d "ARM" /d "_ARM_" /r\r
+CPP=clarm.exe\r
+# ADD BASE CPP /nologo /W3 /D _WIN32_WCE=$(CEVersion) /D "$(CePlatform)" /D "ARM" /D "_ARM_" /D UNDER_CE=$(CEVersion) /D "UNICODE" /D "_UNICODE" /D "NDEBUG" /YX /Oxs /M$(CECrtMT) /c\r
+# ADD CPP /nologo /W3 /I "../../kctrl" /I "." /I "../../expat/include" /D "ARM" /D "_ARM_" /D "NDEBUG" /D "TOMBO" /D UNDER_CE=$(CEVersion) /D _WIN32_WCE=$(CEVersion) /D "$(CePlatform)" /D "UNICODE" /D "_UNICODE" /D "PLATFORM_PSPC" /YX /Oxs /M$(CECrtMT) /c\r
+MTL=midl.exe\r
+# ADD BASE MTL /nologo /D "NDEBUG" /mktyplib203 /o "NUL" /win32\r
+# ADD MTL /nologo /D "NDEBUG" /mktyplib203 /o "NUL" /win32\r
+BSC32=bscmake.exe\r
+# ADD BASE BSC32 /nologo\r
+# ADD BSC32 /nologo\r
+LINK32=link.exe\r
+# ADD BASE LINK32 commctrl.lib coredll.lib /nologo /base:"0x00010000" /stack:0x10000,0x1000 /entry:"WinMainCRTStartup" /nodefaultlib:"$(CENoDefaultLib)" /subsystem:$(CESubsystem) /align:"4096" /MACHINE:ARM\r
+# ADD LINK32 commctrl.lib coredll.lib aygshell.lib /nologo /base:"0x00010000" /stack:0x10000,0x1000 /entry:"WinMainCRTStartup" /nodefaultlib:"$(CENoDefaultLib)" /subsystem:$(CESubsystem) /align:"4096" /MACHINE:ARM\r
+\r
+!ELSEIF  "$(CFG)" == "Tombo - Win32 (WCE ARM) Debug"\r
+\r
+# PROP BASE Use_MFC 0\r
+# PROP BASE Use_Debug_Libraries 1\r
+# PROP BASE Output_Dir "ARMDbg"\r
+# PROP BASE Intermediate_Dir "ARMDbg"\r
+# PROP BASE CPU_ID "{D6518FFC-710F-11D3-99F2-00105A0DF099}"\r
+# PROP BASE Platform_ID "{8A9A2F80-6887-11D3-842E-005004848CBA}"\r
+# PROP BASE Target_Dir ""\r
+# PROP Use_MFC 0\r
+# PROP Use_Debug_Libraries 1\r
+# PROP Output_Dir "ARMDbg"\r
+# PROP Intermediate_Dir "ARMDbg"\r
+# PROP CPU_ID "{D6518FFC-710F-11D3-99F2-00105A0DF099}"\r
+# PROP Platform_ID "{8A9A2F80-6887-11D3-842E-005004848CBA}"\r
+# PROP Ignore_Export_Lib 0\r
+# PROP Target_Dir ""\r
+RSC=rc.exe\r
+# ADD BASE RSC /l 0x409 /d UNDER_CE=$(CEVersion) /d _WIN32_WCE=$(CEVersion) /d "UNICODE" /d "_UNICODE" /d "DEBUG" /d "$(CePlatform)" /d "ARM" /d "_ARM_" /r\r
+# ADD RSC /l 0x409 /d UNDER_CE=$(CEVersion) /d _WIN32_WCE=$(CEVersion) /d "UNICODE" /d "_UNICODE" /d "DEBUG" /d "$(CePlatform)" /d "ARM" /d "_ARM_" /r\r
+CPP=clarm.exe\r
+# ADD BASE CPP /nologo /W3 /Zi /Od /D "DEBUG" /D "ARM" /D "_ARM_" /D UNDER_CE=$(CEVersion) /D _WIN32_WCE=$(CEVersion) /D "$(CePlatform)" /D "UNICODE" /D "_UNICODE" /YX /M$(CECrtMTDebug) /c\r
+# ADD CPP /nologo /W3 /Zi /Od /I "../../kctrl" /I "." /I "../../expat/include" /D "DEBUG" /D "ARM" /D "_ARM_" /D "TOMBO" /D UNDER_CE=$(CEVersion) /D _WIN32_WCE=$(CEVersion) /D "$(CePlatform)" /D "UNICODE" /D "_UNICODE" /D "PLATFORM_PSPC" /YX /M$(CECrtMTDebug) /c\r
+MTL=midl.exe\r
+# ADD BASE MTL /nologo /D "_DEBUG" /mktyplib203 /o "NUL" /win32\r
+# ADD MTL /nologo /D "_DEBUG" /mktyplib203 /o "NUL" /win32\r
+BSC32=bscmake.exe\r
+# ADD BASE BSC32 /nologo\r
+# ADD BSC32 /nologo\r
+LINK32=link.exe\r
+# ADD BASE LINK32 commctrl.lib coredll.lib /nologo /base:"0x00010000" /stack:0x10000,0x1000 /entry:"WinMainCRTStartup" /debug /nodefaultlib:"$(CENoDefaultLib)" /subsystem:$(CESubsystem) /align:"4096" /MACHINE:ARM\r
+# ADD LINK32 commctrl.lib coredll.lib aygshell.lib /nologo /base:"0x00010000" /stack:0x10000,0x1000 /entry:"WinMainCRTStartup" /debug /nodefaultlib:"$(CENoDefaultLib)" /subsystem:$(CESubsystem) /align:"4096" /MACHINE:ARM\r
+\r
+!ENDIF \r
+\r
+# Begin Target\r
+\r
+# Name "Tombo - Win32 (WCE MIPS) Release"\r
+# Name "Tombo - Win32 (WCE MIPS) Debug"\r
+# Name "Tombo - Win32 (WCE SH4) Release"\r
+# Name "Tombo - Win32 (WCE SH4) Debug"\r
+# Name "Tombo - Win32 (WCE SH3) Release"\r
+# Name "Tombo - Win32 (WCE SH3) Debug"\r
+# Name "Tombo - Win32 (WCE ARM) Release"\r
+# Name "Tombo - Win32 (WCE ARM) Debug"\r
+# Begin Group "Source Files"\r
+\r
+# PROP Default_Filter "cpp;c;cxx;rc;def;r;odl;idl;hpj;bat"\r
+# Begin Source File\r
+\r
+SOURCE=..\..\Src\AboutDialog.cpp\r
+\r
+!IF  "$(CFG)" == "Tombo - Win32 (WCE MIPS) Release"\r
+\r
+DEP_CPP_ABOUT=\\r
+       "..\..\Src\AboutDialog.h"\\r
+       "..\..\Src\Tombo.h"\\r
+       "..\..\Src\TomboLib\File.h"\\r
+       "..\..\Src\TomboLib\Logger.h"\\r
+       \r
+\r
+!ELSEIF  "$(CFG)" == "Tombo - Win32 (WCE MIPS) Debug"\r
+\r
+DEP_CPP_ABOUT=\\r
+       "..\..\Src\AboutDialog.h"\\r
+       "..\..\Src\Tombo.h"\\r
+       \r
+NODEP_CPP_ABOUT=\\r
+       "..\..\Src\Logger.h"\\r
+       \r
+\r
+!ELSEIF  "$(CFG)" == "Tombo - Win32 (WCE SH4) Release"\r
+\r
+DEP_CPP_ABOUT=\\r
+       "..\..\Src\AboutDialog.h"\\r
+       "..\..\Src\Tombo.h"\\r
+       \r
+\r
+!ELSEIF  "$(CFG)" == "Tombo - Win32 (WCE SH4) Debug"\r
+\r
+DEP_CPP_ABOUT=\\r
+       "..\..\Src\AboutDialog.h"\\r
+       "..\..\Src\Tombo.h"\\r
+       \r
+\r
+!ELSEIF  "$(CFG)" == "Tombo - Win32 (WCE SH3) Release"\r
+\r
+DEP_CPP_ABOUT=\\r
+       "..\..\Src\AboutDialog.h"\\r
+       "..\..\Src\Tombo.h"\\r
+       \r
+NODEP_CPP_ABOUT=\\r
+       "..\..\Src\File.h"\\r
+       "..\..\Src\Logger.h"\\r
+       ".\ipapi.h"\\r
+       ".\ygshell.h"\\r
+       \r
+\r
+!ELSEIF  "$(CFG)" == "Tombo - Win32 (WCE SH3) Debug"\r
+\r
+DEP_CPP_ABOUT=\\r
+       "..\..\Src\AboutDialog.h"\\r
+       "..\..\Src\Tombo.h"\\r
+       \r
+NODEP_CPP_ABOUT=\\r
+       ".\ipapi.h"\\r
+       ".\ygshell.h"\\r
+       \r
+\r
+!ELSEIF  "$(CFG)" == "Tombo - Win32 (WCE ARM) Release"\r
+\r
+DEP_CPP_ABOUT=\\r
+       "..\..\Src\AboutDialog.h"\\r
+       "..\..\Src\Tombo.h"\\r
+       \r
+NODEP_CPP_ABOUT=\\r
+       ".\ipapi.h"\\r
+       ".\ygshell.h"\\r
+       \r
+\r
+!ELSEIF  "$(CFG)" == "Tombo - Win32 (WCE ARM) Debug"\r
+\r
+DEP_CPP_ABOUT=\\r
+       "..\..\Src\AboutDialog.h"\\r
+       "..\..\Src\Tombo.h"\\r
+       \r
+NODEP_CPP_ABOUT=\\r
+       ".\ipapi.h"\\r
+       ".\ygshell.h"\\r
+       \r
+\r
+!ENDIF \r
+\r
+# End Source File\r
+# Begin Source File\r
+\r
+SOURCE=..\..\Src\TomboLib\AutoPtr.cpp\r
+\r
+!IF  "$(CFG)" == "Tombo - Win32 (WCE MIPS) Release"\r
+\r
+DEP_CPP_AUTOP=\\r
+       "..\..\Src\TomboLib\AutoPtr.h"\\r
+       \r
+\r
+!ELSEIF  "$(CFG)" == "Tombo - Win32 (WCE MIPS) Debug"\r
+\r
+DEP_CPP_AUTOP=\\r
+       "..\..\Src\TomboLib\AutoPtr.h"\\r
+       \r
+\r
+!ELSEIF  "$(CFG)" == "Tombo - Win32 (WCE SH4) Release"\r
+\r
+DEP_CPP_AUTOP=\\r
+       "..\..\Src\TomboLib\AutoPtr.h"\\r
+       \r
+\r
+!ELSEIF  "$(CFG)" == "Tombo - Win32 (WCE SH4) Debug"\r
+\r
+DEP_CPP_AUTOP=\\r
+       "..\..\Src\TomboLib\AutoPtr.h"\\r
+       \r
+\r
+!ELSEIF  "$(CFG)" == "Tombo - Win32 (WCE SH3) Release"\r
+\r
+DEP_CPP_AUTOP=\\r
+       "..\..\Src\TomboLib\AutoPtr.h"\\r
+       \r
+\r
+!ELSEIF  "$(CFG)" == "Tombo - Win32 (WCE SH3) Debug"\r
+\r
+DEP_CPP_AUTOP=\\r
+       "..\..\Src\TomboLib\AutoPtr.h"\\r
+       \r
+\r
+!ELSEIF  "$(CFG)" == "Tombo - Win32 (WCE ARM) Release"\r
+\r
+DEP_CPP_AUTOP=\\r
+       "..\..\Src\TomboLib\AutoPtr.h"\\r
+       \r
+\r
+!ELSEIF  "$(CFG)" == "Tombo - Win32 (WCE ARM) Debug"\r
+\r
+DEP_CPP_AUTOP=\\r
+       "..\..\Src\TomboLib\AutoPtr.h"\\r
+       \r
+\r
+!ENDIF \r
+\r
+# End Source File\r
+# Begin Source File\r
+\r
+SOURCE=..\..\Src\gnupg\blowfish.c\r
+\r
+!IF  "$(CFG)" == "Tombo - Win32 (WCE MIPS) Release"\r
+\r
+DEP_CPP_BLOWF=\\r
+       "..\..\Src\regex\config.h"\\r
+       "..\..\Src\regex\ctypeutil.h"\\r
+       \r
+NODEP_CPP_BLOWF=\\r
+       "..\..\Src\gnupg\blowfish.h"\\r
+       "..\..\Src\gnupg\dynload.h"\\r
+       \r
+\r
+!ELSEIF  "$(CFG)" == "Tombo - Win32 (WCE MIPS) Debug"\r
+\r
+NODEP_CPP_BLOWF=\\r
+       "..\..\Src\gnupg\blowfish.h"\\r
+       "..\..\Src\gnupg\dynload.h"\\r
+       \r
+\r
+!ELSEIF  "$(CFG)" == "Tombo - Win32 (WCE SH4) Release"\r
+\r
+NODEP_CPP_BLOWF=\\r
+       "..\..\Src\gnupg\blowfish.h"\\r
+       "..\..\Src\gnupg\dynload.h"\\r
+       \r
+\r
+!ELSEIF  "$(CFG)" == "Tombo - Win32 (WCE SH4) Debug"\r
+\r
+NODEP_CPP_BLOWF=\\r
+       "..\..\Src\gnupg\blowfish.h"\\r
+       "..\..\Src\gnupg\dynload.h"\\r
+       \r
+\r
+!ELSEIF  "$(CFG)" == "Tombo - Win32 (WCE SH3) Release"\r
+\r
+NODEP_CPP_BLOWF=\\r
+       "..\..\Src\gnupg\blowfish.h"\\r
+       "..\..\Src\gnupg\dynload.h"\\r
+       \r
+\r
+!ELSEIF  "$(CFG)" == "Tombo - Win32 (WCE SH3) Debug"\r
+\r
+NODEP_CPP_BLOWF=\\r
+       "..\..\Src\gnupg\blowfish.h"\\r
+       "..\..\Src\gnupg\dynload.h"\\r
+       \r
+\r
+!ELSEIF  "$(CFG)" == "Tombo - Win32 (WCE ARM) Release"\r
+\r
+NODEP_CPP_BLOWF=\\r
+       "..\..\Src\gnupg\blowfish.h"\\r
+       "..\..\Src\gnupg\dynload.h"\\r
+       \r
+\r
+!ELSEIF  "$(CFG)" == "Tombo - Win32 (WCE ARM) Debug"\r
+\r
+NODEP_CPP_BLOWF=\\r
+       "..\..\Src\gnupg\blowfish.h"\\r
+       "..\..\Src\gnupg\dynload.h"\\r
+       \r
+\r
+!ENDIF \r
+\r
+# End Source File\r
+# Begin Source File\r
+\r
+SOURCE=..\..\Src\BookMark.cpp\r
+\r
+!IF  "$(CFG)" == "Tombo - Win32 (WCE MIPS) Release"\r
+\r
+DEP_CPP_BOOKM=\\r
+       "..\..\Src\BookMark.h"\\r
+       "..\..\Src\Repository.h"\\r
+       "..\..\Src\Tombo.h"\\r
+       "..\..\Src\TomboLib\File.h"\\r
+       "..\..\Src\TomboLib\Logger.h"\\r
+       "..\..\Src\TomboLib\TString.h"\\r
+       "..\..\Src\TomboLib\Uniconv.h"\\r
+       "..\..\Src\TomboLib\VarBuffer.h"\\r
+       "..\..\Src\TomboURI.h"\\r
+       \r
+\r
+!ELSEIF  "$(CFG)" == "Tombo - Win32 (WCE MIPS) Debug"\r
+\r
+DEP_CPP_BOOKM=\\r
+       "..\..\Src\BookMark.h"\\r
+       "..\..\Src\MemoManager.h"\\r
+       "..\..\Src\MemoNote.h"\\r
+       "..\..\Src\TomboURI.h"\\r
+       "..\..\Src\TreeViewItem.h"\\r
+       \r
+NODEP_CPP_BOOKM=\\r
+       "..\..\Src\TString.h"\\r
+       "..\..\Src\Uniconv.h"\\r
+       "..\..\Src\VarBuffer.h"\\r
+       \r
+\r
+!ELSEIF  "$(CFG)" == "Tombo - Win32 (WCE SH4) Release"\r
+\r
+DEP_CPP_BOOKM=\\r
+       "..\..\Src\BookMark.h"\\r
+       "..\..\Src\MemoManager.h"\\r
+       "..\..\Src\MemoNote.h"\\r
+       "..\..\Src\TreeViewItem.h"\\r
+       \r
+NODEP_CPP_BOOKM=\\r
+       "..\..\Src\TString.h"\\r
+       "..\..\Src\Uniconv.h"\\r
+       "..\..\Src\VarBuffer.h"\\r
+       \r
+\r
+!ELSEIF  "$(CFG)" == "Tombo - Win32 (WCE SH4) Debug"\r
+\r
+DEP_CPP_BOOKM=\\r
+       "..\..\Src\BookMark.h"\\r
+       "..\..\Src\MemoManager.h"\\r
+       "..\..\Src\MemoNote.h"\\r
+       "..\..\Src\TreeViewItem.h"\\r
+       \r
+NODEP_CPP_BOOKM=\\r
+       "..\..\Src\TString.h"\\r
+       "..\..\Src\Uniconv.h"\\r
+       "..\..\Src\VarBuffer.h"\\r
+       \r
+\r
+!ELSEIF  "$(CFG)" == "Tombo - Win32 (WCE SH3) Release"\r
+\r
+DEP_CPP_BOOKM=\\r
+       "..\..\Src\BookMark.h"\\r
+       "..\..\Src\MemoManager.h"\\r
+       "..\..\Src\MemoNote.h"\\r
+       "..\..\Src\TreeViewItem.h"\\r
+       \r
+NODEP_CPP_BOOKM=\\r
+       "..\..\Src\TString.h"\\r
+       "..\..\Src\Uniconv.h"\\r
+       "..\..\Src\VarBuffer.h"\\r
+       \r
+\r
+!ELSEIF  "$(CFG)" == "Tombo - Win32 (WCE SH3) Debug"\r
+\r
+DEP_CPP_BOOKM=\\r
+       "..\..\Src\BookMark.h"\\r
+       "..\..\Src\MemoManager.h"\\r
+       "..\..\Src\MemoNote.h"\\r
+       "..\..\Src\TreeViewItem.h"\\r
+       \r
+NODEP_CPP_BOOKM=\\r
+       "..\..\Src\TString.h"\\r
+       "..\..\Src\Uniconv.h"\\r
+       "..\..\Src\VarBuffer.h"\\r
+       \r
+\r
+!ELSEIF  "$(CFG)" == "Tombo - Win32 (WCE ARM) Release"\r
+\r
+DEP_CPP_BOOKM=\\r
+       "..\..\Src\BookMark.h"\\r
+       "..\..\Src\MemoManager.h"\\r
+       "..\..\Src\MemoNote.h"\\r
+       "..\..\Src\TreeViewItem.h"\\r
+       \r
+NODEP_CPP_BOOKM=\\r
+       "..\..\Src\TString.h"\\r
+       "..\..\Src\Uniconv.h"\\r
+       "..\..\Src\VarBuffer.h"\\r
+       \r
+\r
+!ELSEIF  "$(CFG)" == "Tombo - Win32 (WCE ARM) Debug"\r
+\r
+DEP_CPP_BOOKM=\\r
+       "..\..\Src\BookMark.h"\\r
+       "..\..\Src\MemoManager.h"\\r
+       "..\..\Src\MemoNote.h"\\r
+       "..\..\Src\TreeViewItem.h"\\r
+       \r
+NODEP_CPP_BOOKM=\\r
+       "..\..\Src\TString.h"\\r
+       "..\..\Src\Uniconv.h"\\r
+       "..\..\Src\VarBuffer.h"\\r
+       \r
+\r
+!ENDIF \r
+\r
+# End Source File\r
+# Begin Source File\r
+\r
+SOURCE=..\..\Src\BookMarkDlg.cpp\r
+\r
+!IF  "$(CFG)" == "Tombo - Win32 (WCE MIPS) Release"\r
+\r
+DEP_CPP_BOOKMA=\\r
+       "..\..\Src\BookMark.h"\\r
+       "..\..\Src\BookMarkDlg.h"\\r
+       "..\..\Src\Message.h"\\r
+       "..\..\Src\MsgRes\MsgDef.h"\\r
+       "..\..\Src\TomboLib\DialogTemplate.h"\\r
+       "..\..\Src\TomboLib\TString.h"\\r
+       "..\..\Src\TomboLib\VarBuffer.h"\\r
+       \r
+\r
+!ELSEIF  "$(CFG)" == "Tombo - Win32 (WCE MIPS) Debug"\r
+\r
+DEP_CPP_BOOKMA=\\r
+       "..\..\Src\BookMark.h"\\r
+       "..\..\Src\BookMarkDlg.h"\\r
+       "..\..\Src\Message.h"\\r
+       \r
+NODEP_CPP_BOOKMA=\\r
+       "..\..\Src\DialogTemplate.h"\\r
+       "..\..\Src\TString.h"\\r
+       "..\..\Src\VarBuffer.h"\\r
+       \r
+\r
+!ELSEIF  "$(CFG)" == "Tombo - Win32 (WCE SH4) Release"\r
+\r
+DEP_CPP_BOOKMA=\\r
+       "..\..\Src\BookMark.h"\\r
+       "..\..\Src\BookMarkDlg.h"\\r
+       "..\..\Src\Message.h"\\r
+       \r
+NODEP_CPP_BOOKMA=\\r
+       "..\..\Src\DialogTemplate.h"\\r
+       "..\..\Src\resource.h"\\r
+       "..\..\Src\TString.h"\\r
+       "..\..\Src\VarBuffer.h"\\r
+       \r
+\r
+!ELSEIF  "$(CFG)" == "Tombo - Win32 (WCE SH4) Debug"\r
+\r
+DEP_CPP_BOOKMA=\\r
+       "..\..\Src\BookMark.h"\\r
+       "..\..\Src\BookMarkDlg.h"\\r
+       "..\..\Src\Message.h"\\r
+       \r
+NODEP_CPP_BOOKMA=\\r
+       "..\..\Src\DialogTemplate.h"\\r
+       "..\..\Src\resource.h"\\r
+       "..\..\Src\TString.h"\\r
+       "..\..\Src\VarBuffer.h"\\r
+       \r
+\r
+!ELSEIF  "$(CFG)" == "Tombo - Win32 (WCE SH3) Release"\r
+\r
+DEP_CPP_BOOKMA=\\r
+       "..\..\Src\BookMark.h"\\r
+       "..\..\Src\BookMarkDlg.h"\\r
+       "..\..\Src\Message.h"\\r
+       \r
+NODEP_CPP_BOOKMA=\\r
+       "..\..\Src\DialogTemplate.h"\\r
+       "..\..\Src\resource.h"\\r
+       "..\..\Src\TString.h"\\r
+       "..\..\Src\VarBuffer.h"\\r
+       \r
+\r
+!ELSEIF  "$(CFG)" == "Tombo - Win32 (WCE SH3) Debug"\r
+\r
+DEP_CPP_BOOKMA=\\r
+       "..\..\Src\BookMark.h"\\r
+       "..\..\Src\BookMarkDlg.h"\\r
+       "..\..\Src\Message.h"\\r
+       \r
+NODEP_CPP_BOOKMA=\\r
+       "..\..\Src\DialogTemplate.h"\\r
+       "..\..\Src\resource.h"\\r
+       "..\..\Src\TString.h"\\r
+       "..\..\Src\VarBuffer.h"\\r
+       \r
+\r
+!ELSEIF  "$(CFG)" == "Tombo - Win32 (WCE ARM) Release"\r
+\r
+DEP_CPP_BOOKMA=\\r
+       "..\..\Src\BookMark.h"\\r
+       "..\..\Src\BookMarkDlg.h"\\r
+       "..\..\Src\Message.h"\\r
+       \r
+NODEP_CPP_BOOKMA=\\r
+       "..\..\Src\DialogTemplate.h"\\r
+       "..\..\Src\resource.h"\\r
+       "..\..\Src\TString.h"\\r
+       "..\..\Src\VarBuffer.h"\\r
+       \r
+\r
+!ELSEIF  "$(CFG)" == "Tombo - Win32 (WCE ARM) Debug"\r
+\r
+DEP_CPP_BOOKMA=\\r
+       "..\..\Src\BookMark.h"\\r
+       "..\..\Src\BookMarkDlg.h"\\r
+       "..\..\Src\Message.h"\\r
+       \r
+NODEP_CPP_BOOKMA=\\r
+       "..\..\Src\DialogTemplate.h"\\r
+       "..\..\Src\resource.h"\\r
+       "..\..\Src\TString.h"\\r
+       "..\..\Src\VarBuffer.h"\\r
+       \r
+\r
+!ENDIF \r
+\r
+# End Source File\r
+# Begin Source File\r
+\r
+SOURCE=..\..\Src\TomboLib\Clipboard.cpp\r
+\r
+!IF  "$(CFG)" == "Tombo - Win32 (WCE MIPS) Release"\r
+\r
+DEP_CPP_CLIPB=\\r
+       "..\..\Src\TomboLib\Clipboard.h"\\r
+       "..\..\Src\TomboLib\Uniconv.h"\\r
+       \r
+\r
+!ELSEIF  "$(CFG)" == "Tombo - Win32 (WCE MIPS) Debug"\r
+\r
+DEP_CPP_CLIPB=\\r
+       "..\..\Src\TomboLib\Clipboard.h"\\r
+       "..\..\Src\TomboLib\Uniconv.h"\\r
+       \r
+\r
+!ELSEIF  "$(CFG)" == "Tombo - Win32 (WCE SH4) Release"\r
+\r
+DEP_CPP_CLIPB=\\r
+       "..\..\Src\TomboLib\Clipboard.h"\\r
+       "..\..\Src\TomboLib\Uniconv.h"\\r
+       \r
+\r
+!ELSEIF  "$(CFG)" == "Tombo - Win32 (WCE SH4) Debug"\r
+\r
+DEP_CPP_CLIPB=\\r
+       "..\..\Src\TomboLib\Clipboard.h"\\r
+       "..\..\Src\TomboLib\Uniconv.h"\\r
+       \r
+\r
+!ELSEIF  "$(CFG)" == "Tombo - Win32 (WCE SH3) Release"\r
+\r
+DEP_CPP_CLIPB=\\r
+       "..\..\Src\TomboLib\Clipboard.h"\\r
+       "..\..\Src\TomboLib\Uniconv.h"\\r
+       \r
+\r
+!ELSEIF  "$(CFG)" == "Tombo - Win32 (WCE SH3) Debug"\r
+\r
+DEP_CPP_CLIPB=\\r
+       "..\..\Src\TomboLib\Clipboard.h"\\r
+       "..\..\Src\TomboLib\Uniconv.h"\\r
+       \r
+\r
+!ELSEIF  "$(CFG)" == "Tombo - Win32 (WCE ARM) Release"\r
+\r
+DEP_CPP_CLIPB=\\r
+       "..\..\Src\TomboLib\Clipboard.h"\\r
+       "..\..\Src\TomboLib\Uniconv.h"\\r
+       \r
+\r
+!ELSEIF  "$(CFG)" == "Tombo - Win32 (WCE ARM) Debug"\r
+\r
+DEP_CPP_CLIPB=\\r
+       "..\..\Src\TomboLib\Clipboard.h"\\r
+       "..\..\Src\TomboLib\Uniconv.h"\\r
+       \r
+\r
+!ENDIF \r
+\r
+# End Source File\r
+# Begin Source File\r
+\r
+SOURCE=..\..\Src\Crypt.cpp\r
+\r
+!IF  "$(CFG)" == "Tombo - Win32 (WCE MIPS) Release"\r
+\r
+DEP_CPP_CRYPT=\\r
+       "..\..\Src\Crypt.h"\\r
+       \r
+\r
+!ELSEIF  "$(CFG)" == "Tombo - Win32 (WCE MIPS) Debug"\r
+\r
+DEP_CPP_CRYPT=\\r
+       "..\..\Src\Crypt.h"\\r
+       \r
+\r
+!ELSEIF  "$(CFG)" == "Tombo - Win32 (WCE SH4) Release"\r
+\r
+DEP_CPP_CRYPT=\\r
+       "..\..\Src\Crypt.h"\\r
+       \r
+\r
+!ELSEIF  "$(CFG)" == "Tombo - Win32 (WCE SH4) Debug"\r
+\r
+DEP_CPP_CRYPT=\\r
+       "..\..\Src\Crypt.h"\\r
+       \r
+\r
+!ELSEIF  "$(CFG)" == "Tombo - Win32 (WCE SH3) Release"\r
+\r
+DEP_CPP_CRYPT=\\r
+       "..\..\Src\Crypt.h"\\r
+       \r
+\r
+!ELSEIF  "$(CFG)" == "Tombo - Win32 (WCE SH3) Debug"\r
+\r
+DEP_CPP_CRYPT=\\r
+       "..\..\Src\Crypt.h"\\r
+       \r
+\r
+!ELSEIF  "$(CFG)" == "Tombo - Win32 (WCE ARM) Release"\r
+\r
+DEP_CPP_CRYPT=\\r
+       "..\..\Src\Crypt.h"\\r
+       \r
+\r
+!ELSEIF  "$(CFG)" == "Tombo - Win32 (WCE ARM) Debug"\r
+\r
+DEP_CPP_CRYPT=\\r
+       "..\..\Src\Crypt.h"\\r
+       \r
+\r
+!ENDIF \r
+\r
+# End Source File\r
+# Begin Source File\r
+\r
+SOURCE=..\..\Src\CryptManager.cpp\r
+\r
+!IF  "$(CFG)" == "Tombo - Win32 (WCE MIPS) Release"\r
+\r
+DEP_CPP_CRYPTM=\\r
+       "..\..\Src\Crypt.h"\\r
+       "..\..\Src\CryptManager.h"\\r
+       "..\..\Src\TomboLib\File.h"\\r
+       \r
+\r
+!ELSEIF  "$(CFG)" == "Tombo - Win32 (WCE MIPS) Debug"\r
+\r
+DEP_CPP_CRYPTM=\\r
+       "..\..\Src\Crypt.h"\\r
+       "..\..\Src\CryptManager.h"\\r
+       \r
+NODEP_CPP_CRYPTM=\\r
+       "..\..\Src\File.h"\\r
+       \r
+\r
+!ELSEIF  "$(CFG)" == "Tombo - Win32 (WCE SH4) Release"\r
+\r
+DEP_CPP_CRYPTM=\\r
+       "..\..\Src\Crypt.h"\\r
+       "..\..\Src\CryptManager.h"\\r
+       \r
+NODEP_CPP_CRYPTM=\\r
+       "..\..\Src\File.h"\\r
+       \r
+\r
+!ELSEIF  "$(CFG)" == "Tombo - Win32 (WCE SH4) Debug"\r
+\r
+DEP_CPP_CRYPTM=\\r
+       "..\..\Src\Crypt.h"\\r
+       "..\..\Src\CryptManager.h"\\r
+       \r
+NODEP_CPP_CRYPTM=\\r
+       "..\..\Src\File.h"\\r
+       \r
+\r
+!ELSEIF  "$(CFG)" == "Tombo - Win32 (WCE SH3) Release"\r
+\r
+DEP_CPP_CRYPTM=\\r
+       "..\..\Src\Crypt.h"\\r
+       "..\..\Src\CryptManager.h"\\r
+       \r
+NODEP_CPP_CRYPTM=\\r
+       "..\..\Src\File.h"\\r
+       \r
+\r
+!ELSEIF  "$(CFG)" == "Tombo - Win32 (WCE SH3) Debug"\r
+\r
+DEP_CPP_CRYPTM=\\r
+       "..\..\Src\Crypt.h"\\r
+       "..\..\Src\CryptManager.h"\\r
+       \r
+NODEP_CPP_CRYPTM=\\r
+       "..\..\Src\File.h"\\r
+       \r
+\r
+!ELSEIF  "$(CFG)" == "Tombo - Win32 (WCE ARM) Release"\r
+\r
+DEP_CPP_CRYPTM=\\r
+       "..\..\Src\Crypt.h"\\r
+       "..\..\Src\CryptManager.h"\\r
+       \r
+NODEP_CPP_CRYPTM=\\r
+       "..\..\Src\File.h"\\r
+       \r
+\r
+!ELSEIF  "$(CFG)" == "Tombo - Win32 (WCE ARM) Debug"\r
+\r
+DEP_CPP_CRYPTM=\\r
+       "..\..\Src\Crypt.h"\\r
+       "..\..\Src\CryptManager.h"\\r
+       \r
+NODEP_CPP_CRYPTM=\\r
+       "..\..\Src\File.h"\\r
+       \r
+\r
+!ENDIF \r
+\r
+# End Source File\r
+# Begin Source File\r
+\r
+SOURCE=..\..\Src\DetailsViewWndProc.cpp\r
+\r
+!IF  "$(CFG)" == "Tombo - Win32 (WCE MIPS) Release"\r
+\r
+DEP_CPP_DETAI=\\r
+       "..\..\Src\MemoDetailsView.h"\\r
+       "..\..\Src\PlatformLayer.h"\\r
+       "..\..\Src\PocketPCPlatform.h"\\r
+       "..\..\Src\Property.h"\\r
+       "..\..\Src\Tombo.h"\\r
+       "..\..\Src\TomboLib\File.h"\\r
+       "..\..\Src\TomboLib\Logger.h"\\r
+       \r
+\r
+!ELSEIF  "$(CFG)" == "Tombo - Win32 (WCE MIPS) Debug"\r
+\r
+DEP_CPP_DETAI=\\r
+       "..\..\Src\MemoDetailsView.h"\\r
+       "..\..\Src\MemoManager.h"\\r
+       "..\..\Src\Property.h"\\r
+       \r
+\r
+!ELSEIF  "$(CFG)" == "Tombo - Win32 (WCE SH4) Release"\r
+\r
+DEP_CPP_DETAI=\\r
+       "..\..\Src\MemoDetailsView.h"\\r
+       \r
+\r
+!ELSEIF  "$(CFG)" == "Tombo - Win32 (WCE SH4) Debug"\r
+\r
+DEP_CPP_DETAI=\\r
+       "..\..\Src\MemoDetailsView.h"\\r
+       \r
+\r
+!ELSEIF  "$(CFG)" == "Tombo - Win32 (WCE SH3) Release"\r
+\r
+DEP_CPP_DETAI=\\r
+       "..\..\Src\MemoDetailsView.h"\\r
+       \r
+NODEP_CPP_DETAI=\\r
+       ".\ipapi.h"\\r
+       ".\ygshell.h"\\r
+       \r
+\r
+!ELSEIF  "$(CFG)" == "Tombo - Win32 (WCE SH3) Debug"\r
+\r
+DEP_CPP_DETAI=\\r
+       "..\..\Src\MemoDetailsView.h"\\r
+       \r
+NODEP_CPP_DETAI=\\r
+       ".\ipapi.h"\\r
+       ".\ygshell.h"\\r
+       \r
+\r
+!ELSEIF  "$(CFG)" == "Tombo - Win32 (WCE ARM) Release"\r
+\r
+DEP_CPP_DETAI=\\r
+       "..\..\Src\MemoDetailsView.h"\\r
+       \r
+\r
+!ELSEIF  "$(CFG)" == "Tombo - Win32 (WCE ARM) Debug"\r
+\r
+DEP_CPP_DETAI=\\r
+       "..\..\Src\MemoDetailsView.h"\\r
+       \r
+\r
+!ENDIF \r
+\r
+# End Source File\r
+# Begin Source File\r
+\r
+SOURCE=..\..\Src\TomboLib\DialogTemplate.cpp\r
+\r
+!IF  "$(CFG)" == "Tombo - Win32 (WCE MIPS) Release"\r
+\r
+DEP_CPP_DIALO=\\r
+       "..\..\Src\Message.h"\\r
+       "..\..\Src\MsgRes\MsgDef.h"\\r
+       "..\..\Src\TomboLib\DialogTemplate.h"\\r
+       \r
+\r
+!ELSEIF  "$(CFG)" == "Tombo - Win32 (WCE MIPS) Debug"\r
+\r
+DEP_CPP_DIALO=\\r
+       "..\..\Src\TomboLib\DialogTemplate.h"\\r
+       \r
+\r
+!ELSEIF  "$(CFG)" == "Tombo - Win32 (WCE SH4) Release"\r
+\r
+DEP_CPP_DIALO=\\r
+       "..\..\Src\TomboLib\DialogTemplate.h"\\r
+       \r
+\r
+!ELSEIF  "$(CFG)" == "Tombo - Win32 (WCE SH4) Debug"\r
+\r
+DEP_CPP_DIALO=\\r
+       "..\..\Src\TomboLib\DialogTemplate.h"\\r
+       \r
+\r
+!ELSEIF  "$(CFG)" == "Tombo - Win32 (WCE SH3) Release"\r
+\r
+DEP_CPP_DIALO=\\r
+       "..\..\Src\TomboLib\DialogTemplate.h"\\r
+       \r
+\r
+!ELSEIF  "$(CFG)" == "Tombo - Win32 (WCE SH3) Debug"\r
+\r
+DEP_CPP_DIALO=\\r
+       "..\..\Src\TomboLib\DialogTemplate.h"\\r
+       \r
+\r
+!ELSEIF  "$(CFG)" == "Tombo - Win32 (WCE ARM) Release"\r
+\r
+DEP_CPP_DIALO=\\r
+       "..\..\Src\TomboLib\DialogTemplate.h"\\r
+       \r
+\r
+!ELSEIF  "$(CFG)" == "Tombo - Win32 (WCE ARM) Debug"\r
+\r
+DEP_CPP_DIALO=\\r
+       "..\..\Src\TomboLib\DialogTemplate.h"\\r
+       \r
+\r
+!ENDIF \r
+\r
+# End Source File\r
+# Begin Source File\r
+\r
+SOURCE=..\..\Src\TomboLib\DirectoryScanner.cpp\r
+\r
+!IF  "$(CFG)" == "Tombo - Win32 (WCE MIPS) Release"\r
+\r
+DEP_CPP_DIREC=\\r
+       "..\..\Src\TomboLib\DirectoryScanner.h"\\r
+       "..\..\Src\TomboLib\Uniconv.h"\\r
+       \r
+\r
+!ELSEIF  "$(CFG)" == "Tombo - Win32 (WCE MIPS) Debug"\r
+\r
+DEP_CPP_DIREC=\\r
+       "..\..\Src\TomboLib\DirectoryScanner.h"\\r
+       "..\..\Src\TomboLib\Uniconv.h"\\r
+       \r
+\r
+!ELSEIF  "$(CFG)" == "Tombo - Win32 (WCE SH4) Release"\r
+\r
+DEP_CPP_DIREC=\\r
+       "..\..\Src\TomboLib\DirectoryScanner.h"\\r
+       "..\..\Src\TomboLib\Uniconv.h"\\r
+       \r
+\r
+!ELSEIF  "$(CFG)" == "Tombo - Win32 (WCE SH4) Debug"\r
+\r
+DEP_CPP_DIREC=\\r
+       "..\..\Src\TomboLib\DirectoryScanner.h"\\r
+       "..\..\Src\TomboLib\Uniconv.h"\\r
+       \r
+\r
+!ELSEIF  "$(CFG)" == "Tombo - Win32 (WCE SH3) Release"\r
+\r
+DEP_CPP_DIREC=\\r
+       "..\..\Src\TomboLib\DirectoryScanner.h"\\r
+       "..\..\Src\TomboLib\Uniconv.h"\\r
+       \r
+\r
+!ELSEIF  "$(CFG)" == "Tombo - Win32 (WCE SH3) Debug"\r
+\r
+DEP_CPP_DIREC=\\r
+       "..\..\Src\TomboLib\DirectoryScanner.h"\\r
+       "..\..\Src\TomboLib\Uniconv.h"\\r
+       \r
+\r
+!ELSEIF  "$(CFG)" == "Tombo - Win32 (WCE ARM) Release"\r
+\r
+DEP_CPP_DIREC=\\r
+       "..\..\Src\TomboLib\DirectoryScanner.h"\\r
+       "..\..\Src\TomboLib\Uniconv.h"\\r
+       \r
+\r
+!ELSEIF  "$(CFG)" == "Tombo - Win32 (WCE ARM) Debug"\r
+\r
+DEP_CPP_DIREC=\\r
+       "..\..\Src\TomboLib\DirectoryScanner.h"\\r
+       "..\..\Src\TomboLib\Uniconv.h"\\r
+       \r
+\r
+!ENDIF \r
+\r
+# End Source File\r
+# Begin Source File\r
+\r
+SOURCE=..\..\Src\DirList.cpp\r
+\r
+!IF  "$(CFG)" == "Tombo - Win32 (WCE MIPS) Release"\r
+\r
+DEP_CPP_DIRLI=\\r
+       "..\..\Src\DirList.h"\\r
+       "..\..\Src\MemoNote.h"\\r
+       "..\..\Src\Repository.h"\\r
+       "..\..\Src\Tombo.h"\\r
+       "..\..\Src\TomboLib\File.h"\\r
+       "..\..\Src\TomboLib\Logger.h"\\r
+       "..\..\Src\TomboLib\TString.h"\\r
+       "..\..\Src\TomboLib\VarBuffer.h"\\r
+       "..\..\Src\TomboURI.h"\\r
+       \r
+\r
+!ELSEIF  "$(CFG)" == "Tombo - Win32 (WCE MIPS) Debug"\r
+\r
+DEP_CPP_DIRLI=\\r
+       "..\..\Src\DirList.h"\\r
+       "..\..\Src\MemoManager.h"\\r
+       "..\..\Src\MemoNote.h"\\r
+       "..\..\Src\TreeViewItem.h"\\r
+       \r
+NODEP_CPP_DIRLI=\\r
+       "..\..\Src\VarBuffer.h"\\r
+       \r
+\r
+!ELSEIF  "$(CFG)" == "Tombo - Win32 (WCE SH4) Release"\r
+\r
+DEP_CPP_DIRLI=\\r
+       "..\..\Src\DirList.h"\\r
+       "..\..\Src\MemoManager.h"\\r
+       "..\..\Src\MemoNote.h"\\r
+       "..\..\Src\TreeViewItem.h"\\r
+       \r
+NODEP_CPP_DIRLI=\\r
+       "..\..\Src\VarBuffer.h"\\r
+       \r
+\r
+!ELSEIF  "$(CFG)" == "Tombo - Win32 (WCE SH4) Debug"\r
+\r
+DEP_CPP_DIRLI=\\r
+       "..\..\Src\DirList.h"\\r
+       "..\..\Src\MemoManager.h"\\r
+       "..\..\Src\MemoNote.h"\\r
+       "..\..\Src\TreeViewItem.h"\\r
+       \r
+NODEP_CPP_DIRLI=\\r
+       "..\..\Src\VarBuffer.h"\\r
+       \r
+\r
+!ELSEIF  "$(CFG)" == "Tombo - Win32 (WCE SH3) Release"\r
+\r
+DEP_CPP_DIRLI=\\r
+       "..\..\Src\DirList.h"\\r
+       "..\..\Src\MemoManager.h"\\r
+       "..\..\Src\MemoNote.h"\\r
+       "..\..\Src\TreeViewItem.h"\\r
+       \r
+NODEP_CPP_DIRLI=\\r
+       "..\..\Src\VarBuffer.h"\\r
+       \r
+\r
+!ELSEIF  "$(CFG)" == "Tombo - Win32 (WCE SH3) Debug"\r
+\r
+DEP_CPP_DIRLI=\\r
+       "..\..\Src\DirList.h"\\r
+       "..\..\Src\MemoManager.h"\\r
+       "..\..\Src\MemoNote.h"\\r
+       "..\..\Src\TreeViewItem.h"\\r
+       \r
+NODEP_CPP_DIRLI=\\r
+       "..\..\Src\VarBuffer.h"\\r
+       \r
+\r
+!ELSEIF  "$(CFG)" == "Tombo - Win32 (WCE ARM) Release"\r
+\r
+DEP_CPP_DIRLI=\\r
+       "..\..\Src\DirList.h"\\r
+       "..\..\Src\MemoManager.h"\\r
+       "..\..\Src\MemoNote.h"\\r
+       "..\..\Src\TreeViewItem.h"\\r
+       \r
+NODEP_CPP_DIRLI=\\r
+       "..\..\Src\VarBuffer.h"\\r
+       \r
+\r
+!ELSEIF  "$(CFG)" == "Tombo - Win32 (WCE ARM) Debug"\r
+\r
+DEP_CPP_DIRLI=\\r
+       "..\..\Src\DirList.h"\\r
+       "..\..\Src\MemoManager.h"\\r
+       "..\..\Src\MemoNote.h"\\r
+       "..\..\Src\TreeViewItem.h"\\r
+       \r
+NODEP_CPP_DIRLI=\\r
+       "..\..\Src\VarBuffer.h"\\r
+       \r
+\r
+!ENDIF \r
+\r
+# End Source File\r
+# Begin Source File\r
+\r
+SOURCE=..\..\Src\TomboLib\File.cpp\r
+\r
+!IF  "$(CFG)" == "Tombo - Win32 (WCE MIPS) Release"\r
+\r
+DEP_CPP_FILE_=\\r
+       "..\..\Src\TomboLib\File.h"\\r
+       \r
+\r
+!ELSEIF  "$(CFG)" == "Tombo - Win32 (WCE MIPS) Debug"\r
+\r
+DEP_CPP_FILE_=\\r
+       "..\..\Src\TomboLib\File.h"\\r
+       \r
+\r
+!ELSEIF  "$(CFG)" == "Tombo - Win32 (WCE SH4) Release"\r
+\r
+DEP_CPP_FILE_=\\r
+       "..\..\Src\TomboLib\File.h"\\r
+       \r
+\r
+!ELSEIF  "$(CFG)" == "Tombo - Win32 (WCE SH4) Debug"\r
+\r
+DEP_CPP_FILE_=\\r
+       "..\..\Src\TomboLib\File.h"\\r
+       \r
+\r
+!ELSEIF  "$(CFG)" == "Tombo - Win32 (WCE SH3) Release"\r
+\r
+DEP_CPP_FILE_=\\r
+       "..\..\Src\TomboLib\File.h"\\r
+       \r
+\r
+!ELSEIF  "$(CFG)" == "Tombo - Win32 (WCE SH3) Debug"\r
+\r
+DEP_CPP_FILE_=\\r
+       "..\..\Src\TomboLib\File.h"\\r
+       \r
+\r
+!ELSEIF  "$(CFG)" == "Tombo - Win32 (WCE ARM) Release"\r
+\r
+DEP_CPP_FILE_=\\r
+       "..\..\Src\TomboLib\File.h"\\r
+       \r
+\r
+!ELSEIF  "$(CFG)" == "Tombo - Win32 (WCE ARM) Debug"\r
+\r
+DEP_CPP_FILE_=\\r
+       "..\..\Src\TomboLib\File.h"\\r
+       \r
+\r
+!ENDIF \r
+\r
+# End Source File\r
+# Begin Source File\r
+\r
+SOURCE=..\..\Src\TomboLib\FileInputStream.cpp\r
+\r
+!IF  "$(CFG)" == "Tombo - Win32 (WCE MIPS) Release"\r
+\r
+DEP_CPP_FILEI=\\r
+       "..\..\Src\TomboLib\FileInputStream.h"\\r
+       \r
+\r
+!ELSEIF  "$(CFG)" == "Tombo - Win32 (WCE MIPS) Debug"\r
+\r
+DEP_CPP_FILEI=\\r
+       "..\..\Src\TomboLib\FileInputStream.h"\\r
+       \r
+\r
+!ELSEIF  "$(CFG)" == "Tombo - Win32 (WCE SH4) Release"\r
+\r
+DEP_CPP_FILEI=\\r
+       "..\..\Src\TomboLib\FileInputStream.h"\\r
+       \r
+\r
+!ELSEIF  "$(CFG)" == "Tombo - Win32 (WCE SH4) Debug"\r
+\r
+DEP_CPP_FILEI=\\r
+       "..\..\Src\TomboLib\FileInputStream.h"\\r
+       \r
+\r
+!ELSEIF  "$(CFG)" == "Tombo - Win32 (WCE SH3) Release"\r
+\r
+DEP_CPP_FILEI=\\r
+       "..\..\Src\TomboLib\FileInputStream.h"\\r
+       \r
+\r
+!ELSEIF  "$(CFG)" == "Tombo - Win32 (WCE SH3) Debug"\r
+\r
+DEP_CPP_FILEI=\\r
+       "..\..\Src\TomboLib\FileInputStream.h"\\r
+       \r
+\r
+!ELSEIF  "$(CFG)" == "Tombo - Win32 (WCE ARM) Release"\r
+\r
+DEP_CPP_FILEI=\\r
+       "..\..\Src\TomboLib\FileInputStream.h"\\r
+       \r
+\r
+!ELSEIF  "$(CFG)" == "Tombo - Win32 (WCE ARM) Debug"\r
+\r
+DEP_CPP_FILEI=\\r
+       "..\..\Src\TomboLib\FileInputStream.h"\\r
+       \r
+\r
+!ENDIF \r
+\r
+# End Source File\r
+# Begin Source File\r
+\r
+SOURCE=..\..\Src\FileSelector.cpp\r
+\r
+!IF  "$(CFG)" == "Tombo - Win32 (WCE MIPS) Release"\r
+\r
+DEP_CPP_FILES=\\r
+       "..\..\Src\FileSelector.h"\\r
+       "..\..\Src\Message.h"\\r
+       "..\..\Src\MsgRes\MsgDef.h"\\r
+       "..\..\Src\TomboLib\DialogTemplate.h"\\r
+       \r
+\r
+!ELSEIF  "$(CFG)" == "Tombo - Win32 (WCE MIPS) Debug"\r
+\r
+DEP_CPP_FILES=\\r
+       "..\..\Src\FileSelector.h"\\r
+       \r
+\r
+!ELSEIF  "$(CFG)" == "Tombo - Win32 (WCE SH4) Release"\r
+\r
+DEP_CPP_FILES=\\r
+       "..\..\Src\FileSelector.h"\\r
+       \r
+\r
+!ELSEIF  "$(CFG)" == "Tombo - Win32 (WCE SH4) Debug"\r
+\r
+DEP_CPP_FILES=\\r
+       "..\..\Src\FileSelector.h"\\r
+       \r
+\r
+!ELSEIF  "$(CFG)" == "Tombo - Win32 (WCE SH3) Release"\r
+\r
+DEP_CPP_FILES=\\r
+       "..\..\Src\FileSelector.h"\\r
+       \r
+\r
+!ELSEIF  "$(CFG)" == "Tombo - Win32 (WCE SH3) Debug"\r
+\r
+DEP_CPP_FILES=\\r
+       "..\..\Src\FileSelector.h"\\r
+       \r
+\r
+!ELSEIF  "$(CFG)" == "Tombo - Win32 (WCE ARM) Release"\r
+\r
+DEP_CPP_FILES=\\r
+       "..\..\Src\FileSelector.h"\\r
+       \r
+\r
+!ELSEIF  "$(CFG)" == "Tombo - Win32 (WCE ARM) Debug"\r
+\r
+DEP_CPP_FILES=\\r
+       "..\..\Src\FileSelector.h"\\r
+       \r
+\r
+!ENDIF \r
+\r
+# End Source File\r
+# Begin Source File\r
+\r
+SOURCE=..\..\Src\FilterAddDlg.cpp\r
+\r
+!IF  "$(CFG)" == "Tombo - Win32 (WCE MIPS) Release"\r
+\r
+DEP_CPP_FILTE=\\r
+       "..\..\Src\FilterAddDlg.h"\\r
+       "..\..\Src\Message.h"\\r
+       "..\..\Src\MsgRes\MsgDef.h"\\r
+       "..\..\Src\Property.h"\\r
+       "..\..\Src\Tombo.h"\\r
+       "..\..\Src\TomboLib\DialogTemplate.h"\\r
+       "..\..\Src\TomboLib\File.h"\\r
+       "..\..\Src\TomboLib\Logger.h"\\r
+       "..\..\Src\TomboLib\TString.h"\\r
+       "..\..\Src\TomboLib\VarBuffer.h"\\r
+       "..\..\Src\VFStream.h"\\r
+       \r
+\r
+!ELSEIF  "$(CFG)" == "Tombo - Win32 (WCE MIPS) Debug"\r
+\r
+DEP_CPP_FILTE=\\r
+       "..\..\Src\FilterAddDlg.h"\\r
+       "..\..\Src\Message.h"\\r
+       "..\..\Src\Property.h"\\r
+       "..\..\Src\Tombo.h"\\r
+       "..\..\Src\VFStream.h"\\r
+       \r
+NODEP_CPP_FILTE=\\r
+       "..\..\Src\DialogTemplate.h"\\r
+       "..\..\Src\Logger.h"\\r
+       "..\..\Src\TString.h"\\r
+       "..\..\Src\VarBuffer.h"\\r
+       \r
+\r
+!ELSEIF  "$(CFG)" == "Tombo - Win32 (WCE SH4) Release"\r
+\r
+DEP_CPP_FILTE=\\r
+       "..\..\Src\FilterAddDlg.h"\\r
+       "..\..\Src\Message.h"\\r
+       "..\..\Src\Property.h"\\r
+       "..\..\Src\Tombo.h"\\r
+       "..\..\Src\VFStream.h"\\r
+       \r
+NODEP_CPP_FILTE=\\r
+       "..\..\Src\DialogTemplate.h"\\r
+       "..\..\Src\File.h"\\r
+       "..\..\Src\Logger.h"\\r
+       "..\..\Src\resource.h"\\r
+       "..\..\Src\TString.h"\\r
+       "..\..\Src\VarBuffer.h"\\r
+       \r
+\r
+!ELSEIF  "$(CFG)" == "Tombo - Win32 (WCE SH4) Debug"\r
+\r
+DEP_CPP_FILTE=\\r
+       "..\..\Src\FilterAddDlg.h"\\r
+       "..\..\Src\Message.h"\\r
+       "..\..\Src\Property.h"\\r
+       "..\..\Src\Tombo.h"\\r
+       "..\..\Src\VFStream.h"\\r
+       \r
+NODEP_CPP_FILTE=\\r
+       "..\..\Src\DialogTemplate.h"\\r
+       "..\..\Src\File.h"\\r
+       "..\..\Src\Logger.h"\\r
+       "..\..\Src\resource.h"\\r
+       "..\..\Src\TString.h"\\r
+       "..\..\Src\VarBuffer.h"\\r
+       \r
+\r
+!ELSEIF  "$(CFG)" == "Tombo - Win32 (WCE SH3) Release"\r
+\r
+DEP_CPP_FILTE=\\r
+       "..\..\Src\FilterAddDlg.h"\\r
+       "..\..\Src\Message.h"\\r
+       "..\..\Src\Property.h"\\r
+       "..\..\Src\Tombo.h"\\r
+       "..\..\Src\VFStream.h"\\r
+       \r
+NODEP_CPP_FILTE=\\r
+       "..\..\Src\DialogTemplate.h"\\r
+       "..\..\Src\File.h"\\r
+       "..\..\Src\Logger.h"\\r
+       "..\..\Src\resource.h"\\r
+       "..\..\Src\TString.h"\\r
+       "..\..\Src\VarBuffer.h"\\r
+       \r
+\r
+!ELSEIF  "$(CFG)" == "Tombo - Win32 (WCE SH3) Debug"\r
+\r
+DEP_CPP_FILTE=\\r
+       "..\..\Src\FilterAddDlg.h"\\r
+       "..\..\Src\Message.h"\\r
+       "..\..\Src\Property.h"\\r
+       "..\..\Src\Tombo.h"\\r
+       "..\..\Src\VFStream.h"\\r
+       \r
+NODEP_CPP_FILTE=\\r
+       "..\..\Src\DialogTemplate.h"\\r
+       "..\..\Src\File.h"\\r
+       "..\..\Src\Logger.h"\\r
+       "..\..\Src\resource.h"\\r
+       "..\..\Src\TString.h"\\r
+       "..\..\Src\VarBuffer.h"\\r
+       \r
+\r
+!ELSEIF  "$(CFG)" == "Tombo - Win32 (WCE ARM) Release"\r
+\r
+DEP_CPP_FILTE=\\r
+       "..\..\Src\FilterAddDlg.h"\\r
+       "..\..\Src\Message.h"\\r
+       "..\..\Src\Property.h"\\r
+       "..\..\Src\Tombo.h"\\r
+       "..\..\Src\VFStream.h"\\r
+       \r
+NODEP_CPP_FILTE=\\r
+       "..\..\Src\DialogTemplate.h"\\r
+       "..\..\Src\File.h"\\r
+       "..\..\Src\Logger.h"\\r
+       "..\..\Src\resource.h"\\r
+       "..\..\Src\TString.h"\\r
+       "..\..\Src\VarBuffer.h"\\r
+       \r
+\r
+!ELSEIF  "$(CFG)" == "Tombo - Win32 (WCE ARM) Debug"\r
+\r
+DEP_CPP_FILTE=\\r
+       "..\..\Src\FilterAddDlg.h"\\r
+       "..\..\Src\Message.h"\\r
+       "..\..\Src\Property.h"\\r
+       "..\..\Src\Tombo.h"\\r
+       "..\..\Src\VFStream.h"\\r
+       \r
+NODEP_CPP_FILTE=\\r
+       "..\..\Src\DialogTemplate.h"\\r
+       "..\..\Src\File.h"\\r
+       "..\..\Src\Logger.h"\\r
+       "..\..\Src\resource.h"\\r
+       "..\..\Src\TString.h"\\r
+       "..\..\Src\VarBuffer.h"\\r
+       \r
+\r
+!ENDIF \r
+\r
+# End Source File\r
+# Begin Source File\r
+\r
+SOURCE=..\..\Src\FilterCtlDlg.cpp\r
+\r
+!IF  "$(CFG)" == "Tombo - Win32 (WCE MIPS) Release"\r
+\r
+DEP_CPP_FILTER=\\r
+       "..\..\Src\FilterCtlDlg.h"\\r
+       "..\..\Src\FilterDefDlg.h"\\r
+       "..\..\Src\MemoManager.h"\\r
+       "..\..\Src\MemoSelectView.h"\\r
+       "..\..\Src\Message.h"\\r
+       "..\..\Src\MsgRes\MsgDef.h"\\r
+       "..\..\Src\Tombo.h"\\r
+       "..\..\Src\TomboLib\DialogTemplate.h"\\r
+       "..\..\Src\TomboLib\File.h"\\r
+       "..\..\Src\TomboLib\Logger.h"\\r
+       "..\..\Src\TomboLib\TString.h"\\r
+       "..\..\Src\TomboLib\Uniconv.h"\\r
+       "..\..\Src\TomboLib\VarBuffer.h"\\r
+       "..\..\Src\TreeViewItem.h"\\r
+       "..\..\Src\VFManager.h"\\r
+       "..\..\Src\VFStream.h"\\r
+       \r
+\r
+!ELSEIF  "$(CFG)" == "Tombo - Win32 (WCE MIPS) Debug"\r
+\r
+DEP_CPP_FILTER=\\r
+       "..\..\Src\FilterCtlDlg.h"\\r
+       "..\..\Src\FilterDefDlg.h"\\r
+       "..\..\Src\MemoManager.h"\\r
+       "..\..\Src\MemoSelectView.h"\\r
+       "..\..\Src\Message.h"\\r
+       "..\..\Src\Tombo.h"\\r
+       "..\..\Src\TreeViewItem.h"\\r
+       "..\..\Src\VFManager.h"\\r
+       "..\..\Src\VFStream.h"\\r
+       \r
+NODEP_CPP_FILTER=\\r
+       "..\..\Src\Logger.h"\\r
+       "..\..\Src\TString.h"\\r
+       "..\..\Src\Uniconv.h"\\r
+       "..\..\Src\VarBuffer.h"\\r
+       \r
+\r
+!ELSEIF  "$(CFG)" == "Tombo - Win32 (WCE SH4) Release"\r
+\r
+DEP_CPP_FILTER=\\r
+       "..\..\Src\FilterCtlDlg.h"\\r
+       "..\..\Src\MemoManager.h"\\r
+       "..\..\Src\MemoSelectView.h"\\r
+       "..\..\Src\Message.h"\\r
+       "..\..\Src\TreeViewItem.h"\\r
+       \r
+NODEP_CPP_FILTER=\\r
+       "..\..\Src\resource.h"\\r
+       "..\..\Src\TString.h"\\r
+       "..\..\Src\VarBuffer.h"\\r
+       \r
+\r
+!ELSEIF  "$(CFG)" == "Tombo - Win32 (WCE SH4) Debug"\r
+\r
+DEP_CPP_FILTER=\\r
+       "..\..\Src\FilterCtlDlg.h"\\r
+       "..\..\Src\MemoManager.h"\\r
+       "..\..\Src\MemoSelectView.h"\\r
+       "..\..\Src\Message.h"\\r
+       "..\..\Src\TreeViewItem.h"\\r
+       \r
+NODEP_CPP_FILTER=\\r
+       "..\..\Src\resource.h"\\r
+       "..\..\Src\TString.h"\\r
+       "..\..\Src\VarBuffer.h"\\r
+       \r
+\r
+!ELSEIF  "$(CFG)" == "Tombo - Win32 (WCE SH3) Release"\r
+\r
+DEP_CPP_FILTER=\\r
+       "..\..\Src\FilterCtlDlg.h"\\r
+       "..\..\Src\MemoManager.h"\\r
+       "..\..\Src\MemoSelectView.h"\\r
+       "..\..\Src\Message.h"\\r
+       "..\..\Src\TreeViewItem.h"\\r
+       \r
+NODEP_CPP_FILTER=\\r
+       "..\..\Src\resource.h"\\r
+       "..\..\Src\TString.h"\\r
+       "..\..\Src\VarBuffer.h"\\r
+       \r
+\r
+!ELSEIF  "$(CFG)" == "Tombo - Win32 (WCE SH3) Debug"\r
+\r
+DEP_CPP_FILTER=\\r
+       "..\..\Src\FilterCtlDlg.h"\\r
+       "..\..\Src\MemoManager.h"\\r
+       "..\..\Src\MemoSelectView.h"\\r
+       "..\..\Src\Message.h"\\r
+       "..\..\Src\TreeViewItem.h"\\r
+       \r
+NODEP_CPP_FILTER=\\r
+       "..\..\Src\resource.h"\\r
+       "..\..\Src\TString.h"\\r
+       "..\..\Src\VarBuffer.h"\\r
+       \r
+\r
+!ELSEIF  "$(CFG)" == "Tombo - Win32 (WCE ARM) Release"\r
+\r
+DEP_CPP_FILTER=\\r
+       "..\..\Src\FilterCtlDlg.h"\\r
+       "..\..\Src\MemoManager.h"\\r
+       "..\..\Src\MemoSelectView.h"\\r
+       "..\..\Src\Message.h"\\r
+       "..\..\Src\TreeViewItem.h"\\r
+       \r
+NODEP_CPP_FILTER=\\r
+       "..\..\Src\resource.h"\\r
+       "..\..\Src\TString.h"\\r
+       "..\..\Src\VarBuffer.h"\\r
+       \r
+\r
+!ELSEIF  "$(CFG)" == "Tombo - Win32 (WCE ARM) Debug"\r
+\r
+DEP_CPP_FILTER=\\r
+       "..\..\Src\FilterCtlDlg.h"\\r
+       "..\..\Src\MemoManager.h"\\r
+       "..\..\Src\MemoSelectView.h"\\r
+       "..\..\Src\Message.h"\\r
+       "..\..\Src\TreeViewItem.h"\\r
+       \r
+NODEP_CPP_FILTER=\\r
+       "..\..\Src\resource.h"\\r
+       "..\..\Src\TString.h"\\r
+       "..\..\Src\VarBuffer.h"\\r
+       \r
+\r
+!ENDIF \r
+\r
+# End Source File\r
+# Begin Source File\r
+\r
+SOURCE=..\..\Src\FilterDefDlg.cpp\r
+\r
+!IF  "$(CFG)" == "Tombo - Win32 (WCE MIPS) Release"\r
+\r
+DEP_CPP_FILTERD=\\r
+       "..\..\Src\FilterAddDlg.h"\\r
+       "..\..\Src\FilterDefDlg.h"\\r
+       "..\..\Src\Message.h"\\r
+       "..\..\Src\MsgRes\MsgDef.h"\\r
+       "..\..\Src\Tombo.h"\\r
+       "..\..\Src\TomboLib\DialogTemplate.h"\\r
+       "..\..\Src\TomboLib\File.h"\\r
+       "..\..\Src\TomboLib\Logger.h"\\r
+       "..\..\Src\TomboLib\PropertyPage.h"\\r
+       "..\..\Src\TomboLib\TString.h"\\r
+       "..\..\Src\TomboLib\VarBuffer.h"\\r
+       "..\..\Src\TomboURI.h"\\r
+       "..\..\Src\VFManager.h"\\r
+       "..\..\Src\VFStream.h"\\r
+       \r
+\r
+!ELSEIF  "$(CFG)" == "Tombo - Win32 (WCE MIPS) Debug"\r
+\r
+DEP_CPP_FILTERD=\\r
+       "..\..\Src\FilterAddDlg.h"\\r
+       "..\..\Src\FilterDefDlg.h"\\r
+       "..\..\Src\Message.h"\\r
+       "..\..\Src\Tombo.h"\\r
+       "..\..\Src\VFManager.h"\\r
+       "..\..\Src\VFStream.h"\\r
+       \r
+NODEP_CPP_FILTERD=\\r
+       "..\..\Src\DialogTemplate.h"\\r
+       "..\..\Src\Logger.h"\\r
+       "..\..\Src\PropertyPage.h"\\r
+       "..\..\Src\TString.h"\\r
+       "..\..\Src\VarBuffer.h"\\r
+       \r
+\r
+!ELSEIF  "$(CFG)" == "Tombo - Win32 (WCE SH4) Release"\r
+\r
+DEP_CPP_FILTERD=\\r
+       "..\..\Src\FilterAddDlg.h"\\r
+       "..\..\Src\FilterDefDlg.h"\\r
+       "..\..\Src\Message.h"\\r
+       "..\..\Src\Tombo.h"\\r
+       "..\..\Src\VFManager.h"\\r
+       "..\..\Src\VFStream.h"\\r
+       \r
+NODEP_CPP_FILTERD=\\r
+       "..\..\Src\DialogTemplate.h"\\r
+       "..\..\Src\File.h"\\r
+       "..\..\Src\Logger.h"\\r
+       "..\..\Src\PropertyPage.h"\\r
+       "..\..\Src\resource.h"\\r
+       "..\..\Src\TString.h"\\r
+       "..\..\Src\VarBuffer.h"\\r
+       \r
+\r
+!ELSEIF  "$(CFG)" == "Tombo - Win32 (WCE SH4) Debug"\r
+\r
+DEP_CPP_FILTERD=\\r
+       "..\..\Src\FilterAddDlg.h"\\r
+       "..\..\Src\FilterDefDlg.h"\\r
+       "..\..\Src\Message.h"\\r
+       "..\..\Src\Tombo.h"\\r
+       "..\..\Src\VFManager.h"\\r
+       "..\..\Src\VFStream.h"\\r
+       \r
+NODEP_CPP_FILTERD=\\r
+       "..\..\Src\DialogTemplate.h"\\r
+       "..\..\Src\File.h"\\r
+       "..\..\Src\Logger.h"\\r
+       "..\..\Src\PropertyPage.h"\\r
+       "..\..\Src\resource.h"\\r
+       "..\..\Src\TString.h"\\r
+       "..\..\Src\VarBuffer.h"\\r
+       \r
+\r
+!ELSEIF  "$(CFG)" == "Tombo - Win32 (WCE SH3) Release"\r
+\r
+DEP_CPP_FILTERD=\\r
+       "..\..\Src\FilterAddDlg.h"\\r
+       "..\..\Src\FilterDefDlg.h"\\r
+       "..\..\Src\Message.h"\\r
+       "..\..\Src\Tombo.h"\\r
+       "..\..\Src\VFManager.h"\\r
+       "..\..\Src\VFStream.h"\\r
+       \r
+NODEP_CPP_FILTERD=\\r
+       "..\..\Src\DialogTemplate.h"\\r
+       "..\..\Src\File.h"\\r
+       "..\..\Src\Logger.h"\\r
+       "..\..\Src\PropertyPage.h"\\r
+       "..\..\Src\resource.h"\\r
+       "..\..\Src\TString.h"\\r
+       "..\..\Src\VarBuffer.h"\\r
+       \r
+\r
+!ELSEIF  "$(CFG)" == "Tombo - Win32 (WCE SH3) Debug"\r
+\r
+DEP_CPP_FILTERD=\\r
+       "..\..\Src\FilterAddDlg.h"\\r
+       "..\..\Src\FilterDefDlg.h"\\r
+       "..\..\Src\Message.h"\\r
+       "..\..\Src\Tombo.h"\\r
+       "..\..\Src\VFManager.h"\\r
+       "..\..\Src\VFStream.h"\\r
+       \r
+NODEP_CPP_FILTERD=\\r
+       "..\..\Src\DialogTemplate.h"\\r
+       "..\..\Src\File.h"\\r
+       "..\..\Src\Logger.h"\\r
+       "..\..\Src\PropertyPage.h"\\r
+       "..\..\Src\resource.h"\\r
+       "..\..\Src\TString.h"\\r
+       "..\..\Src\VarBuffer.h"\\r
+       \r
+\r
+!ELSEIF  "$(CFG)" == "Tombo - Win32 (WCE ARM) Release"\r
+\r
+DEP_CPP_FILTERD=\\r
+       "..\..\Src\FilterAddDlg.h"\\r
+       "..\..\Src\FilterDefDlg.h"\\r
+       "..\..\Src\Message.h"\\r
+       "..\..\Src\Tombo.h"\\r
+       "..\..\Src\VFManager.h"\\r
+       "..\..\Src\VFStream.h"\\r
+       \r
+NODEP_CPP_FILTERD=\\r
+       "..\..\Src\DialogTemplate.h"\\r
+       "..\..\Src\File.h"\\r
+       "..\..\Src\Logger.h"\\r
+       "..\..\Src\PropertyPage.h"\\r
+       "..\..\Src\resource.h"\\r
+       "..\..\Src\TString.h"\\r
+       "..\..\Src\VarBuffer.h"\\r
+       \r
+\r
+!ELSEIF  "$(CFG)" == "Tombo - Win32 (WCE ARM) Debug"\r
+\r
+DEP_CPP_FILTERD=\\r
+       "..\..\Src\FilterAddDlg.h"\\r
+       "..\..\Src\FilterDefDlg.h"\\r
+       "..\..\Src\Message.h"\\r
+       "..\..\Src\Tombo.h"\\r
+       "..\..\Src\VFManager.h"\\r
+       "..\..\Src\VFStream.h"\\r
+       \r
+NODEP_CPP_FILTERD=\\r
+       "..\..\Src\DialogTemplate.h"\\r
+       "..\..\Src\File.h"\\r
+       "..\..\Src\Logger.h"\\r
+       "..\..\Src\PropertyPage.h"\\r
+       "..\..\Src\resource.h"\\r
+       "..\..\Src\TString.h"\\r
+       "..\..\Src\VarBuffer.h"\\r
+       \r
+\r
+!ENDIF \r
+\r
+# End Source File\r
+# Begin Source File\r
+\r
+SOURCE=..\..\Src\YAEdit\FontWidthCache.cpp\r
+\r
+!IF  "$(CFG)" == "Tombo - Win32 (WCE MIPS) Release"\r
+\r
+DEP_CPP_FONTW=\\r
+       "..\..\Src\YAEdit\FontWidthCache.h"\\r
+       \r
+\r
+!ELSEIF  "$(CFG)" == "Tombo - Win32 (WCE MIPS) Debug"\r
+\r
+DEP_CPP_FONTW=\\r
+       "..\..\Src\YAEdit\FontWidthCache.h"\\r
+       \r
+\r
+!ELSEIF  "$(CFG)" == "Tombo - Win32 (WCE SH4) Release"\r
+\r
+DEP_CPP_FONTW=\\r
+       "..\..\Src\YAEdit\FontWidthCache.h"\\r
+       \r
+\r
+!ELSEIF  "$(CFG)" == "Tombo - Win32 (WCE SH4) Debug"\r
+\r
+DEP_CPP_FONTW=\\r
+       "..\..\Src\YAEdit\FontWidthCache.h"\\r
+       \r
+\r
+!ELSEIF  "$(CFG)" == "Tombo - Win32 (WCE SH3) Release"\r
+\r
+DEP_CPP_FONTW=\\r
+       "..\..\Src\YAEdit\FontWidthCache.h"\\r
+       \r
+\r
+!ELSEIF  "$(CFG)" == "Tombo - Win32 (WCE SH3) Debug"\r
+\r
+DEP_CPP_FONTW=\\r
+       "..\..\Src\YAEdit\FontWidthCache.h"\\r
+       \r
+\r
+!ELSEIF  "$(CFG)" == "Tombo - Win32 (WCE ARM) Release"\r
+\r
+DEP_CPP_FONTW=\\r
+       "..\..\Src\YAEdit\FontWidthCache.h"\\r
+       \r
+\r
+!ELSEIF  "$(CFG)" == "Tombo - Win32 (WCE ARM) Debug"\r
+\r
+DEP_CPP_FONTW=\\r
+       "..\..\Src\YAEdit\FontWidthCache.h"\\r
+       \r
+\r
+!ENDIF \r
+\r
+# End Source File\r
+# Begin Source File\r
+\r
+SOURCE=..\..\Src\GrepDialog.cpp\r
+\r
+!IF  "$(CFG)" == "Tombo - Win32 (WCE MIPS) Release"\r
+\r
+DEP_CPP_GREPD=\\r
+       "..\..\Src\GrepDialog.h"\\r
+       "..\..\Src\Message.h"\\r
+       "..\..\Src\MsgRes\MsgDef.h"\\r
+       "..\..\Src\Property.h"\\r
+       "..\..\Src\Tombo.h"\\r
+       "..\..\Src\TomboLib\DialogTemplate.h"\\r
+       "..\..\Src\TomboLib\File.h"\\r
+       "..\..\Src\TomboLib\Logger.h"\\r
+       "..\..\Src\TomboLib\PropertyPage.h"\\r
+       "..\..\Src\TomboLib\TString.h"\\r
+       \r
+\r
+!ELSEIF  "$(CFG)" == "Tombo - Win32 (WCE MIPS) Debug"\r
+\r
+DEP_CPP_GREPD=\\r
+       "..\..\Src\GrepDialog.h"\\r
+       "..\..\Src\Message.h"\\r
+       "..\..\Src\Property.h"\\r
+       "..\..\Src\Tombo.h"\\r
+       \r
+NODEP_CPP_GREPD=\\r
+       "..\..\Src\Logger.h"\\r
+       "..\..\Src\PropertyPage.h"\\r
+       "..\..\Src\TString.h"\\r
+       \r
+\r
+!ELSEIF  "$(CFG)" == "Tombo - Win32 (WCE SH4) Release"\r
+\r
+DEP_CPP_GREPD=\\r
+       "..\..\Src\GrepDialog.h"\\r
+       "..\..\Src\Message.h"\\r
+       "..\..\Src\Property.h"\\r
+       \r
+NODEP_CPP_GREPD=\\r
+       "..\..\Src\PropertyPage.h"\\r
+       "..\..\Src\resource.h"\\r
+       \r
+\r
+!ELSEIF  "$(CFG)" == "Tombo - Win32 (WCE SH4) Debug"\r
+\r
+DEP_CPP_GREPD=\\r
+       "..\..\Src\GrepDialog.h"\\r
+       "..\..\Src\Message.h"\\r
+       "..\..\Src\Property.h"\\r
+       \r
+NODEP_CPP_GREPD=\\r
+       "..\..\Src\PropertyPage.h"\\r
+       "..\..\Src\resource.h"\\r
+       \r
+\r
+!ELSEIF  "$(CFG)" == "Tombo - Win32 (WCE SH3) Release"\r
+\r
+DEP_CPP_GREPD=\\r
+       "..\..\Src\GrepDialog.h"\\r
+       "..\..\Src\Message.h"\\r
+       "..\..\Src\Property.h"\\r
+       \r
+NODEP_CPP_GREPD=\\r
+       "..\..\Src\PropertyPage.h"\\r
+       "..\..\Src\resource.h"\\r
+       \r
+\r
+!ELSEIF  "$(CFG)" == "Tombo - Win32 (WCE SH3) Debug"\r
+\r
+DEP_CPP_GREPD=\\r
+       "..\..\Src\GrepDialog.h"\\r
+       "..\..\Src\Message.h"\\r
+       "..\..\Src\Property.h"\\r
+       \r
+NODEP_CPP_GREPD=\\r
+       "..\..\Src\PropertyPage.h"\\r
+       "..\..\Src\resource.h"\\r
+       \r
+\r
+!ELSEIF  "$(CFG)" == "Tombo - Win32 (WCE ARM) Release"\r
+\r
+DEP_CPP_GREPD=\\r
+       "..\..\Src\GrepDialog.h"\\r
+       "..\..\Src\Message.h"\\r
+       "..\..\Src\Property.h"\\r
+       \r
+NODEP_CPP_GREPD=\\r
+       "..\..\Src\PropertyPage.h"\\r
+       "..\..\Src\resource.h"\\r
+       \r
+\r
+!ELSEIF  "$(CFG)" == "Tombo - Win32 (WCE ARM) Debug"\r
+\r
+DEP_CPP_GREPD=\\r
+       "..\..\Src\GrepDialog.h"\\r
+       "..\..\Src\Message.h"\\r
+       "..\..\Src\Property.h"\\r
+       \r
+NODEP_CPP_GREPD=\\r
+       "..\..\Src\PropertyPage.h"\\r
+       "..\..\Src\resource.h"\\r
+       \r
+\r
+!ENDIF \r
+\r
+# End Source File\r
+# Begin Source File\r
+\r
+SOURCE=..\..\Src\LagendaPlatform.cpp\r
+\r
+!IF  "$(CFG)" == "Tombo - Win32 (WCE MIPS) Release"\r
+\r
+DEP_CPP_LAGEN=\\r
+       "..\..\Src\LagendaPlatform.h"\\r
+       "..\..\Src\Message.h"\\r
+       "..\..\Src\MsgRes\MsgDef.h"\\r
+       "..\..\Src\PlatformLayer.h"\\r
+       "..\..\Src\TomboLib\SipControl.h"\\r
+       {$(INCLUDE)}"CSO.h"\\r
+       {$(INCLUDE)}"CSOBar.h"\\r
+       {$(INCLUDE)}"CSOButton.h"\\r
+       {$(INCLUDE)}"CWind.h"\\r
+       \r
+\r
+!ELSEIF  "$(CFG)" == "Tombo - Win32 (WCE MIPS) Debug"\r
+\r
+DEP_CPP_LAGEN=\\r
+       "..\..\Src\LagendaPlatform.h"\\r
+       "..\..\Src\Message.h"\\r
+       "..\..\Src\PlatformLayer.h"\\r
+       \r
+NODEP_CPP_LAGEN=\\r
+       ".\SO.h"\\r
+       ".\SOBar.h"\\r
+       ".\SOButton.h"\\r
+       ".\Wind.h"\\r
+       \r
+\r
+!ELSEIF  "$(CFG)" == "Tombo - Win32 (WCE SH4) Release"\r
+\r
+DEP_CPP_LAGEN=\\r
+       "..\..\Src\LagendaPlatform.h"\\r
+       "..\..\Src\Message.h"\\r
+       "..\..\Src\PlatformLayer.h"\\r
+       \r
+NODEP_CPP_LAGEN=\\r
+       "..\..\Src\resource.h"\\r
+       \r
+\r
+!ELSEIF  "$(CFG)" == "Tombo - Win32 (WCE SH4) Debug"\r
+\r
+DEP_CPP_LAGEN=\\r
+       "..\..\Src\LagendaPlatform.h"\\r
+       "..\..\Src\Message.h"\\r
+       "..\..\Src\PlatformLayer.h"\\r
+       \r
+NODEP_CPP_LAGEN=\\r
+       "..\..\Src\resource.h"\\r
+       \r
+\r
+!ELSEIF  "$(CFG)" == "Tombo - Win32 (WCE SH3) Release"\r
+\r
+DEP_CPP_LAGEN=\\r
+       "..\..\Src\LagendaPlatform.h"\\r
+       "..\..\Src\Message.h"\\r
+       "..\..\Src\PlatformLayer.h"\\r
+       \r
+NODEP_CPP_LAGEN=\\r
+       "..\..\Src\resource.h"\\r
+       \r
+\r
+!ELSEIF  "$(CFG)" == "Tombo - Win32 (WCE SH3) Debug"\r
+\r
+DEP_CPP_LAGEN=\\r
+       "..\..\Src\LagendaPlatform.h"\\r
+       "..\..\Src\Message.h"\\r
+       "..\..\Src\PlatformLayer.h"\\r
+       \r
+NODEP_CPP_LAGEN=\\r
+       "..\..\Src\resource.h"\\r
+       \r
+\r
+!ELSEIF  "$(CFG)" == "Tombo - Win32 (WCE ARM) Release"\r
+\r
+DEP_CPP_LAGEN=\\r
+       "..\..\Src\LagendaPlatform.h"\\r
+       "..\..\Src\Message.h"\\r
+       "..\..\Src\PlatformLayer.h"\\r
+       \r
+NODEP_CPP_LAGEN=\\r
+       "..\..\Src\resource.h"\\r
+       \r
+\r
+!ELSEIF  "$(CFG)" == "Tombo - Win32 (WCE ARM) Debug"\r
+\r
+DEP_CPP_LAGEN=\\r
+       "..\..\Src\LagendaPlatform.h"\\r
+       "..\..\Src\Message.h"\\r
+       "..\..\Src\PlatformLayer.h"\\r
+       \r
+NODEP_CPP_LAGEN=\\r
+       "..\..\Src\resource.h"\\r
+       \r
+\r
+!ENDIF \r
+\r
+# End Source File\r
+# Begin Source File\r
+\r
+SOURCE=..\..\Src\YAEdit\LineManager.cpp\r
+\r
+!IF  "$(CFG)" == "Tombo - Win32 (WCE MIPS) Release"\r
+\r
+DEP_CPP_LINEM=\\r
+       "..\..\Src\TomboLib\VarBuffer.h"\\r
+       "..\..\Src\YAEdit\LineManager.h"\\r
+       "..\..\Src\YAEdit\LineWrapper.h"\\r
+       "..\..\Src\YAEdit\MemManager.h"\\r
+       "..\..\Src\YAEdit\PhysicalLineManager.h"\\r
+       "..\..\Src\YAEdit\Region.h"\\r
+       "..\..\Src\YAEdit\YAEdit.h"\\r
+       "..\..\Src\YAEdit\YAEditDoc.h"\\r
+       \r
+\r
+!ELSEIF  "$(CFG)" == "Tombo - Win32 (WCE MIPS) Debug"\r
+\r
+DEP_CPP_LINEM=\\r
+       "..\..\Src\YAEdit\LineManager.h"\\r
+       "..\..\Src\YAEdit\LineWrapper.h"\\r
+       "..\..\Src\YAEdit\MemManager.h"\\r
+       "..\..\Src\YAEdit\PhysicalLineManager.h"\\r
+       "..\..\Src\YAEdit\Region.h"\\r
+       "..\..\Src\YAEdit\YAEdit.h"\\r
+       "..\..\Src\YAEdit\YAEditDoc.h"\\r
+       \r
+NODEP_CPP_LINEM=\\r
+       "..\..\Src\YAEdit\VarBuffer.h"\\r
+       \r
+\r
+!ELSEIF  "$(CFG)" == "Tombo - Win32 (WCE SH4) Release"\r
+\r
+DEP_CPP_LINEM=\\r
+       "..\..\Src\YAEdit\LineManager.h"\\r
+       "..\..\Src\YAEdit\LineWrapper.h"\\r
+       "..\..\Src\YAEdit\MemManager.h"\\r
+       "..\..\Src\YAEdit\PhysicalLineManager.h"\\r
+       "..\..\Src\YAEdit\Region.h"\\r
+       "..\..\Src\YAEdit\YAEdit.h"\\r
+       "..\..\Src\YAEdit\YAEditDoc.h"\\r
+       \r
+NODEP_CPP_LINEM=\\r
+       "..\..\Src\YAEdit\VarBuffer.h"\\r
+       \r
+\r
+!ELSEIF  "$(CFG)" == "Tombo - Win32 (WCE SH4) Debug"\r
+\r
+DEP_CPP_LINEM=\\r
+       "..\..\Src\YAEdit\LineManager.h"\\r
+       "..\..\Src\YAEdit\LineWrapper.h"\\r
+       "..\..\Src\YAEdit\MemManager.h"\\r
+       "..\..\Src\YAEdit\PhysicalLineManager.h"\\r
+       "..\..\Src\YAEdit\Region.h"\\r
+       "..\..\Src\YAEdit\YAEdit.h"\\r
+       "..\..\Src\YAEdit\YAEditDoc.h"\\r
+       \r
+NODEP_CPP_LINEM=\\r
+       "..\..\Src\YAEdit\VarBuffer.h"\\r
+       \r
+\r
+!ELSEIF  "$(CFG)" == "Tombo - Win32 (WCE SH3) Release"\r
+\r
+DEP_CPP_LINEM=\\r
+       "..\..\Src\YAEdit\LineManager.h"\\r
+       "..\..\Src\YAEdit\LineWrapper.h"\\r
+       "..\..\Src\YAEdit\MemManager.h"\\r
+       "..\..\Src\YAEdit\PhysicalLineManager.h"\\r
+       "..\..\Src\YAEdit\Region.h"\\r
+       "..\..\Src\YAEdit\YAEdit.h"\\r
+       "..\..\Src\YAEdit\YAEditDoc.h"\\r
+       \r
+NODEP_CPP_LINEM=\\r
+       "..\..\Src\YAEdit\VarBuffer.h"\\r
+       \r
+\r
+!ELSEIF  "$(CFG)" == "Tombo - Win32 (WCE SH3) Debug"\r
+\r
+DEP_CPP_LINEM=\\r
+       "..\..\Src\YAEdit\LineManager.h"\\r
+       "..\..\Src\YAEdit\LineWrapper.h"\\r
+       "..\..\Src\YAEdit\MemManager.h"\\r
+       "..\..\Src\YAEdit\PhysicalLineManager.h"\\r
+       "..\..\Src\YAEdit\Region.h"\\r
+       "..\..\Src\YAEdit\YAEdit.h"\\r
+       "..\..\Src\YAEdit\YAEditDoc.h"\\r
+       \r
+NODEP_CPP_LINEM=\\r
+       "..\..\Src\YAEdit\VarBuffer.h"\\r
+       \r
+\r
+!ELSEIF  "$(CFG)" == "Tombo - Win32 (WCE ARM) Release"\r
+\r
+DEP_CPP_LINEM=\\r
+       "..\..\Src\YAEdit\LineManager.h"\\r
+       "..\..\Src\YAEdit\LineWrapper.h"\\r
+       "..\..\Src\YAEdit\MemManager.h"\\r
+       "..\..\Src\YAEdit\PhysicalLineManager.h"\\r
+       "..\..\Src\YAEdit\Region.h"\\r
+       "..\..\Src\YAEdit\YAEdit.h"\\r
+       "..\..\Src\YAEdit\YAEditDoc.h"\\r
+       \r
+NODEP_CPP_LINEM=\\r
+       "..\..\Src\YAEdit\VarBuffer.h"\\r
+       \r
+\r
+!ELSEIF  "$(CFG)" == "Tombo - Win32 (WCE ARM) Debug"\r
+\r
+DEP_CPP_LINEM=\\r
+       "..\..\Src\YAEdit\LineManager.h"\\r
+       "..\..\Src\YAEdit\LineWrapper.h"\\r
+       "..\..\Src\YAEdit\MemManager.h"\\r
+       "..\..\Src\YAEdit\PhysicalLineManager.h"\\r
+       "..\..\Src\YAEdit\Region.h"\\r
+       "..\..\Src\YAEdit\YAEdit.h"\\r
+       "..\..\Src\YAEdit\YAEditDoc.h"\\r
+       \r
+NODEP_CPP_LINEM=\\r
+       "..\..\Src\YAEdit\VarBuffer.h"\\r
+       \r
+\r
+!ENDIF \r
+\r
+# End Source File\r
+# Begin Source File\r
+\r
+SOURCE=..\..\Src\YAEdit\LineWrapper.cpp\r
+\r
+!IF  "$(CFG)" == "Tombo - Win32 (WCE MIPS) Release"\r
+\r
+DEP_CPP_LINEW=\\r
+       "..\..\Src\TomboLib\VarBuffer.h"\\r
+       "..\..\Src\YAEdit\LineWrapper.h"\\r
+       "..\..\Src\YAEdit\Region.h"\\r
+       "..\..\Src\YAEdit\YAEdit.h"\\r
+       \r
+\r
+!ELSEIF  "$(CFG)" == "Tombo - Win32 (WCE MIPS) Debug"\r
+\r
+DEP_CPP_LINEW=\\r
+       "..\..\Src\YAEdit\LineWrapper.h"\\r
+       "..\..\Src\YAEdit\Region.h"\\r
+       "..\..\Src\YAEdit\YAEdit.h"\\r
+       \r
+NODEP_CPP_LINEW=\\r
+       "..\..\Src\YAEdit\VarBuffer.h"\\r
+       \r
+\r
+!ELSEIF  "$(CFG)" == "Tombo - Win32 (WCE SH4) Release"\r
+\r
+DEP_CPP_LINEW=\\r
+       "..\..\Src\YAEdit\LineWrapper.h"\\r
+       "..\..\Src\YAEdit\Region.h"\\r
+       "..\..\Src\YAEdit\YAEdit.h"\\r
+       \r
+NODEP_CPP_LINEW=\\r
+       "..\..\Src\YAEdit\VarBuffer.h"\\r
+       \r
+\r
+!ELSEIF  "$(CFG)" == "Tombo - Win32 (WCE SH4) Debug"\r
+\r
+DEP_CPP_LINEW=\\r
+       "..\..\Src\YAEdit\LineWrapper.h"\\r
+       "..\..\Src\YAEdit\Region.h"\\r
+       "..\..\Src\YAEdit\YAEdit.h"\\r
+       \r
+NODEP_CPP_LINEW=\\r
+       "..\..\Src\YAEdit\VarBuffer.h"\\r
+       \r
+\r
+!ELSEIF  "$(CFG)" == "Tombo - Win32 (WCE SH3) Release"\r
+\r
+DEP_CPP_LINEW=\\r
+       "..\..\Src\YAEdit\LineWrapper.h"\\r
+       "..\..\Src\YAEdit\Region.h"\\r
+       "..\..\Src\YAEdit\YAEdit.h"\\r
+       \r
+NODEP_CPP_LINEW=\\r
+       "..\..\Src\YAEdit\VarBuffer.h"\\r
+       \r
+\r
+!ELSEIF  "$(CFG)" == "Tombo - Win32 (WCE SH3) Debug"\r
+\r
+DEP_CPP_LINEW=\\r
+       "..\..\Src\YAEdit\LineWrapper.h"\\r
+       "..\..\Src\YAEdit\Region.h"\\r
+       "..\..\Src\YAEdit\YAEdit.h"\\r
+       \r
+NODEP_CPP_LINEW=\\r
+       "..\..\Src\YAEdit\VarBuffer.h"\\r
+       \r
+\r
+!ELSEIF  "$(CFG)" == "Tombo - Win32 (WCE ARM) Release"\r
+\r
+DEP_CPP_LINEW=\\r
+       "..\..\Src\YAEdit\LineWrapper.h"\\r
+       "..\..\Src\YAEdit\Region.h"\\r
+       "..\..\Src\YAEdit\YAEdit.h"\\r
+       \r
+NODEP_CPP_LINEW=\\r
+       "..\..\Src\YAEdit\VarBuffer.h"\\r
+       \r
+\r
+!ELSEIF  "$(CFG)" == "Tombo - Win32 (WCE ARM) Debug"\r
+\r
+DEP_CPP_LINEW=\\r
+       "..\..\Src\YAEdit\LineWrapper.h"\\r
+       "..\..\Src\YAEdit\Region.h"\\r
+       "..\..\Src\YAEdit\YAEdit.h"\\r
+       \r
+NODEP_CPP_LINEW=\\r
+       "..\..\Src\YAEdit\VarBuffer.h"\\r
+       \r
+\r
+!ENDIF \r
+\r
+# End Source File\r
+# Begin Source File\r
+\r
+SOURCE=..\..\Src\YAEdit\LineWrapperImpl.cpp\r
+\r
+!IF  "$(CFG)" == "Tombo - Win32 (WCE MIPS) Release"\r
+\r
+DEP_CPP_LINEWR=\\r
+       "..\..\Src\TomboLib\VarBuffer.h"\\r
+       "..\..\Src\YAEdit\LineWrapper.h"\\r
+       "..\..\Src\YAEdit\LineWrapperImpl.h"\\r
+       "..\..\Src\YAEdit\Region.h"\\r
+       "..\..\Src\YAEdit\YAEdit.h"\\r
+       \r
+\r
+!ELSEIF  "$(CFG)" == "Tombo - Win32 (WCE MIPS) Debug"\r
+\r
+DEP_CPP_LINEWR=\\r
+       "..\..\Src\YAEdit\LineWrapper.h"\\r
+       "..\..\Src\YAEdit\LineWrapperImpl.h"\\r
+       "..\..\Src\YAEdit\Region.h"\\r
+       "..\..\Src\YAEdit\YAEdit.h"\\r
+       \r
+NODEP_CPP_LINEWR=\\r
+       "..\..\Src\YAEdit\VarBuffer.h"\\r
+       \r
+\r
+!ELSEIF  "$(CFG)" == "Tombo - Win32 (WCE SH4) Release"\r
+\r
+DEP_CPP_LINEWR=\\r
+       "..\..\Src\YAEdit\LineWrapper.h"\\r
+       "..\..\Src\YAEdit\LineWrapperImpl.h"\\r
+       "..\..\Src\YAEdit\Region.h"\\r
+       "..\..\Src\YAEdit\YAEdit.h"\\r
+       \r
+NODEP_CPP_LINEWR=\\r
+       "..\..\Src\YAEdit\VarBuffer.h"\\r
+       \r
+\r
+!ELSEIF  "$(CFG)" == "Tombo - Win32 (WCE SH4) Debug"\r
+\r
+DEP_CPP_LINEWR=\\r
+       "..\..\Src\YAEdit\LineWrapper.h"\\r
+       "..\..\Src\YAEdit\LineWrapperImpl.h"\\r
+       "..\..\Src\YAEdit\Region.h"\\r
+       "..\..\Src\YAEdit\YAEdit.h"\\r
+       \r
+NODEP_CPP_LINEWR=\\r
+       "..\..\Src\YAEdit\VarBuffer.h"\\r
+       \r
+\r
+!ELSEIF  "$(CFG)" == "Tombo - Win32 (WCE SH3) Release"\r
+\r
+DEP_CPP_LINEWR=\\r
+       "..\..\Src\YAEdit\LineWrapper.h"\\r
+       "..\..\Src\YAEdit\LineWrapperImpl.h"\\r
+       "..\..\Src\YAEdit\Region.h"\\r
+       "..\..\Src\YAEdit\YAEdit.h"\\r
+       \r
+NODEP_CPP_LINEWR=\\r
+       "..\..\Src\YAEdit\VarBuffer.h"\\r
+       \r
+\r
+!ELSEIF  "$(CFG)" == "Tombo - Win32 (WCE SH3) Debug"\r
+\r
+DEP_CPP_LINEWR=\\r
+       "..\..\Src\YAEdit\LineWrapper.h"\\r
+       "..\..\Src\YAEdit\LineWrapperImpl.h"\\r
+       "..\..\Src\YAEdit\Region.h"\\r
+       "..\..\Src\YAEdit\YAEdit.h"\\r
+       \r
+NODEP_CPP_LINEWR=\\r
+       "..\..\Src\YAEdit\VarBuffer.h"\\r
+       \r
+\r
+!ELSEIF  "$(CFG)" == "Tombo - Win32 (WCE ARM) Release"\r
+\r
+DEP_CPP_LINEWR=\\r
+       "..\..\Src\YAEdit\LineWrapper.h"\\r
+       "..\..\Src\YAEdit\LineWrapperImpl.h"\\r
+       "..\..\Src\YAEdit\Region.h"\\r
+       "..\..\Src\YAEdit\YAEdit.h"\\r
+       \r
+NODEP_CPP_LINEWR=\\r
+       "..\..\Src\YAEdit\VarBuffer.h"\\r
+       \r
+\r
+!ELSEIF  "$(CFG)" == "Tombo - Win32 (WCE ARM) Debug"\r
+\r
+DEP_CPP_LINEWR=\\r
+       "..\..\Src\YAEdit\LineWrapper.h"\\r
+       "..\..\Src\YAEdit\LineWrapperImpl.h"\\r
+       "..\..\Src\YAEdit\Region.h"\\r
+       "..\..\Src\YAEdit\YAEdit.h"\\r
+       \r
+NODEP_CPP_LINEWR=\\r
+       "..\..\Src\YAEdit\VarBuffer.h"\\r
+       \r
+\r
+!ENDIF \r
+\r
+# End Source File\r
+# Begin Source File\r
+\r
+SOURCE=..\..\Src\TomboLib\List.cpp\r
+\r
+!IF  "$(CFG)" == "Tombo - Win32 (WCE MIPS) Release"\r
+\r
+!ELSEIF  "$(CFG)" == "Tombo - Win32 (WCE MIPS) Debug"\r
+\r
+!ELSEIF  "$(CFG)" == "Tombo - Win32 (WCE SH4) Release"\r
+\r
+!ELSEIF  "$(CFG)" == "Tombo - Win32 (WCE SH4) Debug"\r
+\r
+!ELSEIF  "$(CFG)" == "Tombo - Win32 (WCE SH3) Release"\r
+\r
+!ELSEIF  "$(CFG)" == "Tombo - Win32 (WCE SH3) Debug"\r
+\r
+!ELSEIF  "$(CFG)" == "Tombo - Win32 (WCE ARM) Release"\r
+\r
+!ELSEIF  "$(CFG)" == "Tombo - Win32 (WCE ARM) Debug"\r
+\r
+!ENDIF \r
+\r
+# End Source File\r
+# Begin Source File\r
+\r
+SOURCE=..\..\Src\TomboLib\Logger.cpp\r
+\r
+!IF  "$(CFG)" == "Tombo - Win32 (WCE MIPS) Release"\r
+\r
+DEP_CPP_LOGGE=\\r
+       "..\..\Src\TomboLib\File.h"\\r
+       "..\..\Src\TomboLib\Logger.h"\\r
+       \r
+\r
+!ELSEIF  "$(CFG)" == "Tombo - Win32 (WCE MIPS) Debug"\r
+\r
+DEP_CPP_LOGGE=\\r
+       "..\..\Src\TomboLib\File.h"\\r
+       "..\..\Src\TomboLib\Logger.h"\\r
+       \r
+\r
+!ELSEIF  "$(CFG)" == "Tombo - Win32 (WCE SH4) Release"\r
+\r
+DEP_CPP_LOGGE=\\r
+       "..\..\Src\TomboLib\File.h"\\r
+       "..\..\Src\TomboLib\Logger.h"\\r
+       "..\..\Src\TomboLib\Uniconv.h"\\r
+       \r
+NODEP_CPP_LOGGE=\\r
+       "..\..\Src\TomboLib\Tombo.h"\\r
+       \r
+\r
+!ELSEIF  "$(CFG)" == "Tombo - Win32 (WCE SH4) Debug"\r
+\r
+DEP_CPP_LOGGE=\\r
+       "..\..\Src\TomboLib\File.h"\\r
+       "..\..\Src\TomboLib\Logger.h"\\r
+       "..\..\Src\TomboLib\Uniconv.h"\\r
+       \r
+NODEP_CPP_LOGGE=\\r
+       "..\..\Src\TomboLib\Tombo.h"\\r
+       \r
+\r
+!ELSEIF  "$(CFG)" == "Tombo - Win32 (WCE SH3) Release"\r
+\r
+DEP_CPP_LOGGE=\\r
+       "..\..\Src\TomboLib\File.h"\\r
+       "..\..\Src\TomboLib\Logger.h"\\r
+       "..\..\Src\TomboLib\Uniconv.h"\\r
+       \r
+NODEP_CPP_LOGGE=\\r
+       "..\..\Src\TomboLib\Tombo.h"\\r
+       \r
+\r
+!ELSEIF  "$(CFG)" == "Tombo - Win32 (WCE SH3) Debug"\r
+\r
+DEP_CPP_LOGGE=\\r
+       "..\..\Src\TomboLib\File.h"\\r
+       "..\..\Src\TomboLib\Logger.h"\\r
+       "..\..\Src\TomboLib\Uniconv.h"\\r
+       \r
+NODEP_CPP_LOGGE=\\r
+       "..\..\Src\TomboLib\Tombo.h"\\r
+       \r
+\r
+!ELSEIF  "$(CFG)" == "Tombo - Win32 (WCE ARM) Release"\r
+\r
+DEP_CPP_LOGGE=\\r
+       "..\..\Src\TomboLib\File.h"\\r
+       "..\..\Src\TomboLib\Logger.h"\\r
+       "..\..\Src\TomboLib\Uniconv.h"\\r
+       \r
+NODEP_CPP_LOGGE=\\r
+       "..\..\Src\TomboLib\Tombo.h"\\r
+       \r
+\r
+!ELSEIF  "$(CFG)" == "Tombo - Win32 (WCE ARM) Debug"\r
+\r
+DEP_CPP_LOGGE=\\r
+       "..\..\Src\TomboLib\File.h"\\r
+       "..\..\Src\TomboLib\Logger.h"\\r
+       "..\..\Src\TomboLib\Uniconv.h"\\r
+       \r
+NODEP_CPP_LOGGE=\\r
+       "..\..\Src\TomboLib\Tombo.h"\\r
+       \r
+\r
+!ENDIF \r
+\r
+# End Source File\r
+# Begin Source File\r
+\r
+SOURCE=..\..\Src\main.cpp\r
+\r
+!IF  "$(CFG)" == "Tombo - Win32 (WCE MIPS) Release"\r
+\r
+DEP_CPP_MAIN_=\\r
+       "..\..\Src\HPCPlatform.h"\\r
+       "..\..\Src\LagendaPlatform.h"\\r
+       "..\..\Src\MainFrame.h"\\r
+       "..\..\Src\MemoDetailsView.h"\\r
+       "..\..\Src\MemoManager.h"\\r
+       "..\..\Src\MemoSelectView.h"\\r
+       "..\..\Src\Message.h"\\r
+       "..\..\Src\MsgRes\MsgDef.h"\\r
+       "..\..\Src\PasswordManager.h"\\r
+       "..\..\Src\PlatformLayer.h"\\r
+       "..\..\Src\PocketPCPlatform.h"\\r
+       "..\..\Src\Property.h"\\r
+       "..\..\Src\PsPCPlatform.h"\\r
+       "..\..\Src\Tombo.h"\\r
+       "..\..\Src\TomboLib\File.h"\\r
+       "..\..\Src\TomboLib\Logger.h"\\r
+       "..\..\Src\TomboLib\Uniconv.h"\\r
+       "..\..\Src\TomboLib\VarBuffer.h"\\r
+       "..\..\Src\Win32Platform.h"\\r
+       \r
+\r
+!ELSEIF  "$(CFG)" == "Tombo - Win32 (WCE MIPS) Debug"\r
+\r
+DEP_CPP_MAIN_=\\r
+       "..\..\Src\MainFrame.h"\\r
+       "..\..\Src\MemoDetailsView.h"\\r
+       "..\..\Src\MemoManager.h"\\r
+       "..\..\Src\MemoSelectView.h"\\r
+       "..\..\Src\Message.h"\\r
+       "..\..\Src\PasswordManager.h"\\r
+       "..\..\Src\Property.h"\\r
+       "..\..\Src\Tombo.h"\\r
+       \r
+NODEP_CPP_MAIN_=\\r
+       "..\..\Src\Logger.h"\\r
+       "..\..\Src\Uniconv.h"\\r
+       "..\..\Src\VarBuffer.h"\\r
+       \r
+\r
+!ELSEIF  "$(CFG)" == "Tombo - Win32 (WCE SH4) Release"\r
+\r
+DEP_CPP_MAIN_=\\r
+       "..\..\Src\Chipher.h"\\r
+       "..\..\Src\MainFrame.h"\\r
+       "..\..\Src\MemoDetailsView.h"\\r
+       "..\..\Src\MemoSelectView.h"\\r
+       "..\..\Src\PasswordManager.h"\\r
+       \r
+NODEP_CPP_MAIN_=\\r
+       "..\..\kctrl\kctrl.h"\\r
+       \r
+\r
+!ELSEIF  "$(CFG)" == "Tombo - Win32 (WCE SH4) Debug"\r
+\r
+DEP_CPP_MAIN_=\\r
+       "..\..\Src\Chipher.h"\\r
+       "..\..\Src\MainFrame.h"\\r
+       "..\..\Src\MemoDetailsView.h"\\r
+       "..\..\Src\MemoSelectView.h"\\r
+       "..\..\Src\PasswordManager.h"\\r
+       \r
+NODEP_CPP_MAIN_=\\r
+       "..\..\kctrl\kctrl.h"\\r
+       \r
+\r
+!ELSEIF  "$(CFG)" == "Tombo - Win32 (WCE SH3) Release"\r
+\r
+DEP_CPP_MAIN_=\\r
+       "..\..\Src\MainFrame.h"\\r
+       "..\..\Src\MemoDetailsView.h"\\r
+       "..\..\Src\MemoManager.h"\\r
+       "..\..\Src\MemoSelectView.h"\\r
+       "..\..\Src\PasswordManager.h"\\r
+       "..\..\Src\Property.h"\\r
+       "..\..\Src\Tombo.h"\\r
+       \r
+NODEP_CPP_MAIN_=\\r
+       "..\..\kctrl\kctrl.h"\\r
+       "..\..\Src\File.h"\\r
+       "..\..\Src\Logger.h"\\r
+       \r
+\r
+!ELSEIF  "$(CFG)" == "Tombo - Win32 (WCE SH3) Debug"\r
+\r
+DEP_CPP_MAIN_=\\r
+       "..\..\Src\Chipher.h"\\r
+       "..\..\Src\MainFrame.h"\\r
+       "..\..\Src\MemoDetailsView.h"\\r
+       "..\..\Src\MemoSelectView.h"\\r
+       "..\..\Src\PasswordManager.h"\\r
+       \r
+NODEP_CPP_MAIN_=\\r
+       "..\..\kctrl\kctrl.h"\\r
+       \r
+\r
+!ELSEIF  "$(CFG)" == "Tombo - Win32 (WCE ARM) Release"\r
+\r
+DEP_CPP_MAIN_=\\r
+       "..\..\Src\Chipher.h"\\r
+       "..\..\Src\MainFrame.h"\\r
+       "..\..\Src\MemoDetailsView.h"\\r
+       "..\..\Src\MemoSelectView.h"\\r
+       "..\..\Src\PasswordManager.h"\\r
+       \r
+NODEP_CPP_MAIN_=\\r
+       "..\..\kctrl\kctrl.h"\\r
+       \r
+\r
+!ELSEIF  "$(CFG)" == "Tombo - Win32 (WCE ARM) Debug"\r
+\r
+DEP_CPP_MAIN_=\\r
+       "..\..\Src\Chipher.h"\\r
+       "..\..\Src\MainFrame.h"\\r
+       "..\..\Src\MemoDetailsView.h"\\r
+       "..\..\Src\MemoSelectView.h"\\r
+       "..\..\Src\PasswordManager.h"\\r
+       \r
+NODEP_CPP_MAIN_=\\r
+       "..\..\kctrl\kctrl.h"\\r
+       \r
+\r
+!ENDIF \r
+\r
+# End Source File\r
+# Begin Source File\r
+\r
+SOURCE=..\..\Src\MainFrame.cpp\r
+\r
+!IF  "$(CFG)" == "Tombo - Win32 (WCE MIPS) Release"\r
+\r
+DEP_CPP_MAINF=\\r
+       "..\..\Src\AboutDialog.h"\\r
+       "..\..\Src\BookMark.h"\\r
+       "..\..\Src\BookMarkDlg.h"\\r
+       "..\..\Src\DetailsViewDlg.h"\\r
+       "..\..\Src\FilterCtlDlg.h"\\r
+       "..\..\Src\GrepDialog.h"\\r
+       "..\..\Src\HPCPlatform.h"\\r
+       "..\..\Src\LagendaPlatform.h"\\r
+       "..\..\Src\MainFrame.h"\\r
+       "..\..\Src\MemoDetailsView.h"\\r
+       "..\..\Src\MemoManager.h"\\r
+       "..\..\Src\MemoSelectView.h"\\r
+       "..\..\Src\Message.h"\\r
+       "..\..\Src\MsgRes\MsgDef.h"\\r
+       "..\..\Src\PasswordManager.h"\\r
+       "..\..\Src\PlatformLayer.h"\\r
+       "..\..\Src\PocketPCPlatform.h"\\r
+       "..\..\Src\Property.h"\\r
+       "..\..\Src\PsPCPlatform.h"\\r
+       "..\..\Src\Repository.h"\\r
+       "..\..\Src\SearchDlg.h"\\r
+       "..\..\Src\SearchEngine.h"\\r
+       "..\..\Src\SearchTree.h"\\r
+       "..\..\Src\StatusBar.h"\\r
+       "..\..\Src\Tombo.h"\\r
+       "..\..\Src\TomboLib\DialogTemplate.h"\\r
+       "..\..\Src\TomboLib\File.h"\\r
+       "..\..\Src\TomboLib\Logger.h"\\r
+       "..\..\Src\TomboLib\SipControl.h"\\r
+       "..\..\Src\TomboLib\TString.h"\\r
+       "..\..\Src\TomboLib\Uniconv.h"\\r
+       "..\..\Src\TomboLib\VarBuffer.h"\\r
+       "..\..\Src\TomboURI.h"\\r
+       "..\..\Src\TreeViewItem.h"\\r
+       "..\..\Src\VFManager.h"\\r
+       "..\..\Src\Win32Platform.h"\\r
+       "..\..\Src\YAEdit\Region.h"\\r
+       "..\..\Src\YAEdit\YAEdit.h"\\r
+       "..\..\Src\YAEditor.h"\\r
+       {$(INCLUDE)}"CSO.h"\\r
+       {$(INCLUDE)}"CSOBar.h"\\r
+       {$(INCLUDE)}"CSOButton.h"\\r
+       {$(INCLUDE)}"CWind.h"\\r
+       \r
+\r
+!ELSEIF  "$(CFG)" == "Tombo - Win32 (WCE MIPS) Debug"\r
+\r
+DEP_CPP_MAINF=\\r
+       "..\..\Src\AboutDialog.h"\\r
+       "..\..\Src\BookMark.h"\\r
+       "..\..\Src\BookMarkDlg.h"\\r
+       "..\..\Src\FilterCtlDlg.h"\\r
+       "..\..\Src\GrepDialog.h"\\r
+       "..\..\Src\HPCPlatform.h"\\r
+       "..\..\Src\LagendaPlatform.h"\\r
+       "..\..\Src\MainFrame.h"\\r
+       "..\..\Src\MemoDetailsView.h"\\r
+       "..\..\Src\MemoManager.h"\\r
+       "..\..\Src\MemoNote.h"\\r
+       "..\..\Src\MemoSelectView.h"\\r
+       "..\..\Src\Message.h"\\r
+       "..\..\Src\PasswordManager.h"\\r
+       "..\..\Src\PlatformLayer.h"\\r
+       "..\..\Src\PocketPCPlatform.h"\\r
+       "..\..\Src\Property.h"\\r
+       "..\..\Src\PsPCPlatform.h"\\r
+       "..\..\Src\SearchDlg.h"\\r
+       "..\..\Src\SearchEngine.h"\\r
+       "..\..\Src\SearchTree.h"\\r
+       "..\..\Src\StatusBar.h"\\r
+       "..\..\Src\Tombo.h"\\r
+       "..\..\Src\TomboURI.h"\\r
+       "..\..\Src\TreeViewItem.h"\\r
+       "..\..\Src\VFManager.h"\\r
+       "..\..\Src\Win32Platform.h"\\r
+       \r
+NODEP_CPP_MAINF=\\r
+       "..\..\Src\DialogTemplate.h"\\r
+       "..\..\Src\File.h"\\r
+       "..\..\Src\Logger.h"\\r
+       "..\..\Src\SipControl.h"\\r
+       "..\..\Src\TString.h"\\r
+       "..\..\Src\Uniconv.h"\\r
+       "..\..\Src\VarBuffer.h"\\r
+       ".\SO.h"\\r
+       ".\SOBar.h"\\r
+       ".\SOButton.h"\\r
+       ".\Wind.h"\\r
+       \r
+\r
+!ELSEIF  "$(CFG)" == "Tombo - Win32 (WCE SH4) Release"\r
+\r
+DEP_CPP_MAINF=\\r
+       "..\..\Src\MainFrame.h"\\r
+       "..\..\Src\MemoDetailsView.h"\\r
+       "..\..\Src\MemoNote.h"\\r
+       "..\..\Src\MemoSelectView.h"\\r
+       "..\..\Src\PasswordManager.h"\\r
+       "..\..\Src\Tombo.h"\\r
+       \r
+\r
+!ELSEIF  "$(CFG)" == "Tombo - Win32 (WCE SH4) Debug"\r
+\r
+DEP_CPP_MAINF=\\r
+       "..\..\Src\MainFrame.h"\\r
+       "..\..\Src\MemoDetailsView.h"\\r
+       "..\..\Src\MemoNote.h"\\r
+       "..\..\Src\MemoSelectView.h"\\r
+       "..\..\Src\PasswordManager.h"\\r
+       "..\..\Src\Tombo.h"\\r
+       \r
+\r
+!ELSEIF  "$(CFG)" == "Tombo - Win32 (WCE SH3) Release"\r
+\r
+DEP_CPP_MAINF=\\r
+       "..\..\Src\AboutDialog.h"\\r
+       "..\..\Src\MainFrame.h"\\r
+       "..\..\Src\MemoDetailsView.h"\\r
+       "..\..\Src\MemoManager.h"\\r
+       "..\..\Src\MemoNote.h"\\r
+       "..\..\Src\MemoSelectView.h"\\r
+       "..\..\Src\PasswordManager.h"\\r
+       "..\..\Src\Property.h"\\r
+       "..\..\Src\Tombo.h"\\r
+       \r
+NODEP_CPP_MAINF=\\r
+       "..\..\Src\File.h"\\r
+       "..\..\Src\Logger.h"\\r
+       "..\..\Src\SipControl.h"\\r
+       "..\..\Src\Uniconv.h"\\r
+       ".\ipapi.h"\\r
+       ".\ygshell.h"\\r
+       \r
+\r
+!ELSEIF  "$(CFG)" == "Tombo - Win32 (WCE SH3) Debug"\r
+\r
+DEP_CPP_MAINF=\\r
+       "..\..\Src\MainFrame.h"\\r
+       "..\..\Src\MemoDetailsView.h"\\r
+       "..\..\Src\MemoNote.h"\\r
+       "..\..\Src\MemoSelectView.h"\\r
+       "..\..\Src\PasswordManager.h"\\r
+       "..\..\Src\Tombo.h"\\r
+       \r
+\r
+!ELSEIF  "$(CFG)" == "Tombo - Win32 (WCE ARM) Release"\r
+\r
+DEP_CPP_MAINF=\\r
+       "..\..\Src\MainFrame.h"\\r
+       "..\..\Src\MemoDetailsView.h"\\r
+       "..\..\Src\MemoNote.h"\\r
+       "..\..\Src\MemoSelectView.h"\\r
+       "..\..\Src\PasswordManager.h"\\r
+       "..\..\Src\Tombo.h"\\r
+       \r
+\r
+!ELSEIF  "$(CFG)" == "Tombo - Win32 (WCE ARM) Debug"\r
+\r
+DEP_CPP_MAINF=\\r
+       "..\..\Src\MainFrame.h"\\r
+       "..\..\Src\MemoDetailsView.h"\\r
+       "..\..\Src\MemoNote.h"\\r
+       "..\..\Src\MemoSelectView.h"\\r
+       "..\..\Src\PasswordManager.h"\\r
+       "..\..\Src\Tombo.h"\\r
+       \r
+\r
+!ENDIF \r
+\r
+# End Source File\r
+# Begin Source File\r
+\r
+SOURCE=..\..\Src\gnupg\md5.c\r
+\r
+!IF  "$(CFG)" == "Tombo - Win32 (WCE MIPS) Release"\r
+\r
+DEP_CPP_MD5_C=\\r
+       "..\..\Src\gnupg\bithelp.h"\\r
+       "..\..\Src\regex\config.h"\\r
+       "..\..\Src\regex\ctypeutil.h"\\r
+       \r
+NODEP_CPP_MD5_C=\\r
+       "..\..\Src\gnupg\dynload.h"\\r
+       \r
+\r
+!ELSEIF  "$(CFG)" == "Tombo - Win32 (WCE MIPS) Debug"\r
+\r
+DEP_CPP_MD5_C=\\r
+       "..\..\Src\gnupg\bithelp.h"\\r
+       \r
+NODEP_CPP_MD5_C=\\r
+       "..\..\Src\gnupg\dynload.h"\\r
+       \r
+\r
+!ELSEIF  "$(CFG)" == "Tombo - Win32 (WCE SH4) Release"\r
+\r
+DEP_CPP_MD5_C=\\r
+       "..\..\Src\gnupg\bithelp.h"\\r
+       \r
+NODEP_CPP_MD5_C=\\r
+       "..\..\Src\gnupg\dynload.h"\\r
+       \r
+\r
+!ELSEIF  "$(CFG)" == "Tombo - Win32 (WCE SH4) Debug"\r
+\r
+DEP_CPP_MD5_C=\\r
+       "..\..\Src\gnupg\bithelp.h"\\r
+       \r
+NODEP_CPP_MD5_C=\\r
+       "..\..\Src\gnupg\dynload.h"\\r
+       \r
+\r
+!ELSEIF  "$(CFG)" == "Tombo - Win32 (WCE SH3) Release"\r
+\r
+DEP_CPP_MD5_C=\\r
+       "..\..\Src\gnupg\bithelp.h"\\r
+       \r
+NODEP_CPP_MD5_C=\\r
+       "..\..\Src\gnupg\dynload.h"\\r
+       \r
+\r
+!ELSEIF  "$(CFG)" == "Tombo - Win32 (WCE SH3) Debug"\r
+\r
+DEP_CPP_MD5_C=\\r
+       "..\..\Src\gnupg\bithelp.h"\\r
+       \r
+NODEP_CPP_MD5_C=\\r
+       "..\..\Src\gnupg\dynload.h"\\r
+       \r
+\r
+!ELSEIF  "$(CFG)" == "Tombo - Win32 (WCE ARM) Release"\r
+\r
+DEP_CPP_MD5_C=\\r
+       "..\..\Src\gnupg\bithelp.h"\\r
+       \r
+NODEP_CPP_MD5_C=\\r
+       "..\..\Src\gnupg\dynload.h"\\r
+       \r
+\r
+!ELSEIF  "$(CFG)" == "Tombo - Win32 (WCE ARM) Debug"\r
+\r
+DEP_CPP_MD5_C=\\r
+       "..\..\Src\gnupg\bithelp.h"\\r
+       \r
+NODEP_CPP_MD5_C=\\r
+       "..\..\Src\gnupg\dynload.h"\\r
+       \r
+\r
+!ENDIF \r
+\r
+# End Source File\r
+# Begin Source File\r
+\r
+SOURCE=..\..\Src\YAEdit\MemManager.cpp\r
+\r
+!IF  "$(CFG)" == "Tombo - Win32 (WCE MIPS) Release"\r
+\r
+DEP_CPP_MEMMA=\\r
+       "..\..\Src\YAEdit\MemManager.h"\\r
+       \r
+\r
+!ELSEIF  "$(CFG)" == "Tombo - Win32 (WCE MIPS) Debug"\r
+\r
+DEP_CPP_MEMMA=\\r
+       "..\..\Src\YAEdit\MemManager.h"\\r
+       \r
+\r
+!ELSEIF  "$(CFG)" == "Tombo - Win32 (WCE SH4) Release"\r
+\r
+DEP_CPP_MEMMA=\\r
+       "..\..\Src\YAEdit\MemManager.h"\\r
+       \r
+\r
+!ELSEIF  "$(CFG)" == "Tombo - Win32 (WCE SH4) Debug"\r
+\r
+DEP_CPP_MEMMA=\\r
+       "..\..\Src\YAEdit\MemManager.h"\\r
+       \r
+\r
+!ELSEIF  "$(CFG)" == "Tombo - Win32 (WCE SH3) Release"\r
+\r
+DEP_CPP_MEMMA=\\r
+       "..\..\Src\YAEdit\MemManager.h"\\r
+       \r
+\r
+!ELSEIF  "$(CFG)" == "Tombo - Win32 (WCE SH3) Debug"\r
+\r
+DEP_CPP_MEMMA=\\r
+       "..\..\Src\YAEdit\MemManager.h"\\r
+       \r
+\r
+!ELSEIF  "$(CFG)" == "Tombo - Win32 (WCE ARM) Release"\r
+\r
+DEP_CPP_MEMMA=\\r
+       "..\..\Src\YAEdit\MemManager.h"\\r
+       \r
+\r
+!ELSEIF  "$(CFG)" == "Tombo - Win32 (WCE ARM) Debug"\r
+\r
+DEP_CPP_MEMMA=\\r
+       "..\..\Src\YAEdit\MemManager.h"\\r
+       \r
+\r
+!ENDIF \r
+\r
+# End Source File\r
+# Begin Source File\r
+\r
+SOURCE=..\..\Src\MemoDetailsView.cpp\r
+\r
+!IF  "$(CFG)" == "Tombo - Win32 (WCE MIPS) Release"\r
+\r
+DEP_CPP_MEMOD=\\r
+       "..\..\Src\HPCPlatform.h"\\r
+       "..\..\Src\LagendaPlatform.h"\\r
+       "..\..\Src\MainFrame.h"\\r
+       "..\..\Src\MemoDetailsView.h"\\r
+       "..\..\Src\MemoManager.h"\\r
+       "..\..\Src\MemoSelectView.h"\\r
+       "..\..\Src\Message.h"\\r
+       "..\..\Src\MsgRes\MsgDef.h"\\r
+       "..\..\Src\PasswordManager.h"\\r
+       "..\..\Src\PlatformLayer.h"\\r
+       "..\..\Src\PocketPCPlatform.h"\\r
+       "..\..\Src\Property.h"\\r
+       "..\..\Src\PsPCPlatform.h"\\r
+       "..\..\Src\Repository.h"\\r
+       "..\..\Src\SearchEngine.h"\\r
+       "..\..\Src\Tombo.h"\\r
+       "..\..\Src\TomboLib\AutoPtr.h"\\r
+       "..\..\Src\TomboLib\File.h"\\r
+       "..\..\Src\TomboLib\Logger.h"\\r
+       "..\..\Src\TomboLib\TString.h"\\r
+       "..\..\Src\TomboLib\Uniconv.h"\\r
+       "..\..\Src\TomboLib\VarBuffer.h"\\r
+       "..\..\Src\TomboURI.h"\\r
+       "..\..\Src\Win32Platform.h"\\r
+       \r
+\r
+!ELSEIF  "$(CFG)" == "Tombo - Win32 (WCE MIPS) Debug"\r
+\r
+DEP_CPP_MEMOD=\\r
+       "..\..\Src\MainFrame.h"\\r
+       "..\..\Src\MemoDetailsView.h"\\r
+       "..\..\Src\MemoManager.h"\\r
+       "..\..\Src\MemoSelectView.h"\\r
+       "..\..\Src\Message.h"\\r
+       "..\..\Src\PasswordManager.h"\\r
+       "..\..\Src\Property.h"\\r
+       "..\..\Src\SearchEngine.h"\\r
+       "..\..\Src\Tombo.h"\\r
+       \r
+NODEP_CPP_MEMOD=\\r
+       "..\..\Src\Logger.h"\\r
+       "..\..\Src\TString.h"\\r
+       "..\..\Src\Uniconv.h"\\r
+       "..\..\Src\VarBuffer.h"\\r
+       \r
+\r
+!ELSEIF  "$(CFG)" == "Tombo - Win32 (WCE SH4) Release"\r
+\r
+DEP_CPP_MEMOD=\\r
+       "..\..\Src\MemoDetailsView.h"\\r
+       "..\..\Src\MemoNote.h"\\r
+       "..\..\Src\PasswordManager.h"\\r
+       \r
+\r
+!ELSEIF  "$(CFG)" == "Tombo - Win32 (WCE SH4) Debug"\r
+\r
+DEP_CPP_MEMOD=\\r
+       "..\..\Src\MemoDetailsView.h"\\r
+       "..\..\Src\MemoNote.h"\\r
+       "..\..\Src\PasswordManager.h"\\r
+       \r
+\r
+!ELSEIF  "$(CFG)" == "Tombo - Win32 (WCE SH3) Release"\r
+\r
+DEP_CPP_MEMOD=\\r
+       "..\..\Src\MainFrame.h"\\r
+       "..\..\Src\MemoDetailsView.h"\\r
+       "..\..\Src\MemoManager.h"\\r
+       "..\..\Src\MemoSelectView.h"\\r
+       "..\..\Src\PasswordManager.h"\\r
+       "..\..\Src\Property.h"\\r
+       "..\..\Src\Tombo.h"\\r
+       \r
+NODEP_CPP_MEMOD=\\r
+       "..\..\Src\File.h"\\r
+       "..\..\Src\Logger.h"\\r
+       "..\..\Src\TString.h"\\r
+       "..\..\Src\Uniconv.h"\\r
+       ".\ipapi.h"\\r
+       ".\ygshell.h"\\r
+       \r
+\r
+!ELSEIF  "$(CFG)" == "Tombo - Win32 (WCE SH3) Debug"\r
+\r
+DEP_CPP_MEMOD=\\r
+       "..\..\Src\MemoDetailsView.h"\\r
+       "..\..\Src\MemoNote.h"\\r
+       "..\..\Src\PasswordManager.h"\\r
+       \r
+\r
+!ELSEIF  "$(CFG)" == "Tombo - Win32 (WCE ARM) Release"\r
+\r
+DEP_CPP_MEMOD=\\r
+       "..\..\Src\MemoDetailsView.h"\\r
+       "..\..\Src\MemoNote.h"\\r
+       "..\..\Src\PasswordManager.h"\\r
+       \r
+\r
+!ELSEIF  "$(CFG)" == "Tombo - Win32 (WCE ARM) Debug"\r
+\r
+DEP_CPP_MEMOD=\\r
+       "..\..\Src\MemoDetailsView.h"\\r
+       "..\..\Src\MemoNote.h"\\r
+       "..\..\Src\PasswordManager.h"\\r
+       \r
+\r
+!ENDIF \r
+\r
+# End Source File\r
+# Begin Source File\r
+\r
+SOURCE=..\..\Src\MemoFolder.cpp\r
+\r
+!IF  "$(CFG)" == "Tombo - Win32 (WCE MIPS) Release"\r
+\r
+DEP_CPP_MEMOF=\\r
+       "..\..\Src\MemoFolder.h"\\r
+       "..\..\Src\MemoNote.h"\\r
+       "..\..\Src\Message.h"\\r
+       "..\..\Src\MsgRes\MsgDef.h"\\r
+       "..\..\Src\PasswordManager.h"\\r
+       "..\..\Src\Repository.h"\\r
+       "..\..\Src\Tombo.h"\\r
+       "..\..\Src\TomboLib\DirectoryScanner.h"\\r
+       "..\..\Src\TomboLib\File.h"\\r
+       "..\..\Src\TomboLib\Logger.h"\\r
+       "..\..\Src\TomboLib\TString.h"\\r
+       "..\..\Src\TomboLib\Uniconv.h"\\r
+       "..\..\Src\TomboURI.h"\\r
+       \r
+\r
+!ELSEIF  "$(CFG)" == "Tombo - Win32 (WCE MIPS) Debug"\r
+\r
+DEP_CPP_MEMOF=\\r
+       "..\..\Src\MemoFolder.h"\\r
+       "..\..\Src\MemoManager.h"\\r
+       "..\..\Src\MemoNote.h"\\r
+       "..\..\Src\Message.h"\\r
+       "..\..\Src\PasswordManager.h"\\r
+       "..\..\Src\Property.h"\\r
+       "..\..\Src\Tombo.h"\\r
+       "..\..\Src\TreeViewItem.h"\\r
+       \r
+NODEP_CPP_MEMOF=\\r
+       "..\..\Src\DirectoryScanner.h"\\r
+       "..\..\Src\Logger.h"\\r
+       "..\..\Src\TString.h"\\r
+       "..\..\Src\Uniconv.h"\\r
+       "..\..\Src\VarBuffer.h"\\r
+       \r
+\r
+!ELSEIF  "$(CFG)" == "Tombo - Win32 (WCE SH4) Release"\r
+\r
+DEP_CPP_MEMOF=\\r
+       "..\..\Src\MemoFolder.h"\\r
+       "..\..\Src\Tombo.h"\\r
+       \r
+NODEP_CPP_MEMOF=\\r
+       "..\..\Src\DirectoryScanner.h"\\r
+       "..\..\Src\File.h"\\r
+       "..\..\Src\Logger.h"\\r
+       "..\..\Src\TString.h"\\r
+       "..\..\Src\Uniconv.h"\\r
+       \r
+\r
+!ELSEIF  "$(CFG)" == "Tombo - Win32 (WCE SH4) Debug"\r
+\r
+DEP_CPP_MEMOF=\\r
+       "..\..\Src\MemoFolder.h"\\r
+       "..\..\Src\Tombo.h"\\r
+       \r
+NODEP_CPP_MEMOF=\\r
+       "..\..\Src\DirectoryScanner.h"\\r
+       "..\..\Src\File.h"\\r
+       "..\..\Src\Logger.h"\\r
+       "..\..\Src\TString.h"\\r
+       "..\..\Src\Uniconv.h"\\r
+       \r
+\r
+!ELSEIF  "$(CFG)" == "Tombo - Win32 (WCE SH3) Release"\r
+\r
+DEP_CPP_MEMOF=\\r
+       "..\..\Src\MemoFolder.h"\\r
+       "..\..\Src\Tombo.h"\\r
+       \r
+NODEP_CPP_MEMOF=\\r
+       "..\..\Src\DirectoryScanner.h"\\r
+       "..\..\Src\File.h"\\r
+       "..\..\Src\Logger.h"\\r
+       "..\..\Src\TString.h"\\r
+       "..\..\Src\Uniconv.h"\\r
+       \r
+\r
+!ELSEIF  "$(CFG)" == "Tombo - Win32 (WCE SH3) Debug"\r
+\r
+DEP_CPP_MEMOF=\\r
+       "..\..\Src\MemoFolder.h"\\r
+       "..\..\Src\Tombo.h"\\r
+       \r
+NODEP_CPP_MEMOF=\\r
+       "..\..\Src\DirectoryScanner.h"\\r
+       "..\..\Src\File.h"\\r
+       "..\..\Src\Logger.h"\\r
+       "..\..\Src\TString.h"\\r
+       "..\..\Src\Uniconv.h"\\r
+       \r
+\r
+!ELSEIF  "$(CFG)" == "Tombo - Win32 (WCE ARM) Release"\r
+\r
+DEP_CPP_MEMOF=\\r
+       "..\..\Src\MemoFolder.h"\\r
+       "..\..\Src\Tombo.h"\\r
+       \r
+NODEP_CPP_MEMOF=\\r
+       "..\..\Src\DirectoryScanner.h"\\r
+       "..\..\Src\File.h"\\r
+       "..\..\Src\Logger.h"\\r
+       "..\..\Src\TString.h"\\r
+       "..\..\Src\Uniconv.h"\\r
+       \r
+\r
+!ELSEIF  "$(CFG)" == "Tombo - Win32 (WCE ARM) Debug"\r
+\r
+DEP_CPP_MEMOF=\\r
+       "..\..\Src\MemoFolder.h"\\r
+       "..\..\Src\Tombo.h"\\r
+       \r
+NODEP_CPP_MEMOF=\\r
+       "..\..\Src\DirectoryScanner.h"\\r
+       "..\..\Src\File.h"\\r
+       "..\..\Src\Logger.h"\\r
+       "..\..\Src\TString.h"\\r
+       "..\..\Src\Uniconv.h"\\r
+       \r
+\r
+!ENDIF \r
+\r
+# End Source File\r
+# Begin Source File\r
+\r
+SOURCE=..\..\Src\MemoInfo.cpp\r
+\r
+!IF  "$(CFG)" == "Tombo - Win32 (WCE MIPS) Release"\r
+\r
+DEP_CPP_MEMOI=\\r
+       "..\..\Src\MemoInfo.h"\\r
+       "..\..\Src\Tombo.h"\\r
+       "..\..\Src\TomboLib\File.h"\\r
+       "..\..\Src\TomboLib\Logger.h"\\r
+       "..\..\Src\TomboLib\TString.h"\\r
+       \r
+\r
+!ELSEIF  "$(CFG)" == "Tombo - Win32 (WCE MIPS) Debug"\r
+\r
+DEP_CPP_MEMOI=\\r
+       "..\..\Src\MemoInfo.h"\\r
+       "..\..\Src\Property.h"\\r
+       "..\..\Src\Tombo.h"\\r
+       \r
+NODEP_CPP_MEMOI=\\r
+       "..\..\Src\File.h"\\r
+       "..\..\Src\Logger.h"\\r
+       "..\..\Src\TString.h"\\r
+       \r
+\r
+!ELSEIF  "$(CFG)" == "Tombo - Win32 (WCE SH4) Release"\r
+\r
+DEP_CPP_MEMOI=\\r
+       "..\..\Src\MemoInfo.h"\\r
+       "..\..\Src\Property.h"\\r
+       "..\..\Src\Tombo.h"\\r
+       \r
+NODEP_CPP_MEMOI=\\r
+       "..\..\Src\File.h"\\r
+       "..\..\Src\TString.h"\\r
+       \r
+\r
+!ELSEIF  "$(CFG)" == "Tombo - Win32 (WCE SH4) Debug"\r
+\r
+DEP_CPP_MEMOI=\\r
+       "..\..\Src\MemoInfo.h"\\r
+       "..\..\Src\Property.h"\\r
+       "..\..\Src\Tombo.h"\\r
+       \r
+NODEP_CPP_MEMOI=\\r
+       "..\..\Src\File.h"\\r
+       "..\..\Src\TString.h"\\r
+       \r
+\r
+!ELSEIF  "$(CFG)" == "Tombo - Win32 (WCE SH3) Release"\r
+\r
+DEP_CPP_MEMOI=\\r
+       "..\..\Src\MemoInfo.h"\\r
+       "..\..\Src\Property.h"\\r
+       "..\..\Src\Tombo.h"\\r
+       \r
+NODEP_CPP_MEMOI=\\r
+       "..\..\Src\File.h"\\r
+       "..\..\Src\Logger.h"\\r
+       "..\..\Src\TString.h"\\r
+       \r
+\r
+!ELSEIF  "$(CFG)" == "Tombo - Win32 (WCE SH3) Debug"\r
+\r
+DEP_CPP_MEMOI=\\r
+       "..\..\Src\MemoInfo.h"\\r
+       "..\..\Src\Property.h"\\r
+       "..\..\Src\Tombo.h"\\r
+       \r
+NODEP_CPP_MEMOI=\\r
+       "..\..\Src\File.h"\\r
+       "..\..\Src\TString.h"\\r
+       \r
+\r
+!ELSEIF  "$(CFG)" == "Tombo - Win32 (WCE ARM) Release"\r
+\r
+DEP_CPP_MEMOI=\\r
+       "..\..\Src\MemoInfo.h"\\r
+       "..\..\Src\Property.h"\\r
+       "..\..\Src\Tombo.h"\\r
+       \r
+NODEP_CPP_MEMOI=\\r
+       "..\..\Src\File.h"\\r
+       "..\..\Src\TString.h"\\r
+       \r
+\r
+!ELSEIF  "$(CFG)" == "Tombo - Win32 (WCE ARM) Debug"\r
+\r
+DEP_CPP_MEMOI=\\r
+       "..\..\Src\MemoInfo.h"\\r
+       "..\..\Src\Property.h"\\r
+       "..\..\Src\Tombo.h"\\r
+       \r
+NODEP_CPP_MEMOI=\\r
+       "..\..\Src\File.h"\\r
+       "..\..\Src\TString.h"\\r
+       \r
+\r
+!ENDIF \r
+\r
+# End Source File\r
+# Begin Source File\r
+\r
+SOURCE=..\..\Src\MemoManager.cpp\r
+\r
+!IF  "$(CFG)" == "Tombo - Win32 (WCE MIPS) Release"\r
+\r
+DEP_CPP_MEMOM=\\r
+       "..\..\Src\HPCPlatform.h"\\r
+       "..\..\Src\LagendaPlatform.h"\\r
+       "..\..\Src\MainFrame.h"\\r
+       "..\..\Src\MemoDetailsView.h"\\r
+       "..\..\Src\MemoManager.h"\\r
+       "..\..\Src\MemoSelectView.h"\\r
+       "..\..\Src\Message.h"\\r
+       "..\..\Src\MsgRes\MsgDef.h"\\r
+       "..\..\Src\PasswordManager.h"\\r
+       "..\..\Src\PlatformLayer.h"\\r
+       "..\..\Src\PocketPCPlatform.h"\\r
+       "..\..\Src\Property.h"\\r
+       "..\..\Src\PsPCPlatform.h"\\r
+       "..\..\Src\Repository.h"\\r
+       "..\..\Src\SearchEngine.h"\\r
+       "..\..\Src\Tombo.h"\\r
+       "..\..\Src\TomboLib\AutoPtr.h"\\r
+       "..\..\Src\TomboLib\File.h"\\r
+       "..\..\Src\TomboLib\Logger.h"\\r
+       "..\..\Src\TomboLib\TString.h"\\r
+       "..\..\Src\TomboLib\Uniconv.h"\\r
+       "..\..\Src\TomboLib\VarBuffer.h"\\r
+       "..\..\Src\TomboURI.h"\\r
+       "..\..\Src\TreeViewItem.h"\\r
+       "..\..\Src\Win32Platform.h"\\r
+       \r
+\r
+!ELSEIF  "$(CFG)" == "Tombo - Win32 (WCE MIPS) Debug"\r
+\r
+DEP_CPP_MEMOM=\\r
+       "..\..\Src\MainFrame.h"\\r
+       "..\..\Src\MemoDetailsView.h"\\r
+       "..\..\Src\MemoInfo.h"\\r
+       "..\..\Src\MemoManager.h"\\r
+       "..\..\Src\MemoNote.h"\\r
+       "..\..\Src\MemoSelectView.h"\\r
+       "..\..\Src\Message.h"\\r
+       "..\..\Src\NewFolderDialog.h"\\r
+       "..\..\Src\PasswordManager.h"\\r
+       "..\..\Src\Property.h"\\r
+       "..\..\Src\SearchEngine.h"\\r
+       "..\..\Src\Tombo.h"\\r
+       "..\..\Src\TomboURI.h"\\r
+       "..\..\Src\TreeViewItem.h"\\r
+       \r
+NODEP_CPP_MEMOM=\\r
+       "..\..\Src\File.h"\\r
+       "..\..\Src\Logger.h"\\r
+       "..\..\Src\TString.h"\\r
+       "..\..\Src\Uniconv.h"\\r
+       "..\..\Src\VarBuffer.h"\\r
+       \r
+\r
+!ELSEIF  "$(CFG)" == "Tombo - Win32 (WCE SH4) Release"\r
+\r
+DEP_CPP_MEMOM=\\r
+       "..\..\Src\MemoDetailsView.h"\\r
+       "..\..\Src\MemoManager.h"\\r
+       "..\..\Src\MemoNote.h"\\r
+       "..\..\Src\MemoSelectView.h"\\r
+       "..\..\Src\Tombo.h"\\r
+       \r
+NODEP_CPP_MEMOM=\\r
+       "..\..\Src\Uniconv.h"\\r
+       \r
+\r
+!ELSEIF  "$(CFG)" == "Tombo - Win32 (WCE SH4) Debug"\r
+\r
+DEP_CPP_MEMOM=\\r
+       "..\..\Src\MemoDetailsView.h"\\r
+       "..\..\Src\MemoManager.h"\\r
+       "..\..\Src\MemoNote.h"\\r
+       "..\..\Src\MemoSelectView.h"\\r
+       "..\..\Src\Tombo.h"\\r
+       \r
+NODEP_CPP_MEMOM=\\r
+       "..\..\Src\Uniconv.h"\\r
+       \r
+\r
+!ELSEIF  "$(CFG)" == "Tombo - Win32 (WCE SH3) Release"\r
+\r
+DEP_CPP_MEMOM=\\r
+       "..\..\Src\MainFrame.h"\\r
+       "..\..\Src\MemoDetailsView.h"\\r
+       "..\..\Src\MemoInfo.h"\\r
+       "..\..\Src\MemoManager.h"\\r
+       "..\..\Src\MemoNote.h"\\r
+       "..\..\Src\MemoSelectView.h"\\r
+       "..\..\Src\NewFolderDialog.h"\\r
+       "..\..\Src\PasswordManager.h"\\r
+       "..\..\Src\Property.h"\\r
+       "..\..\Src\Tombo.h"\\r
+       \r
+NODEP_CPP_MEMOM=\\r
+       "..\..\Src\File.h"\\r
+       "..\..\Src\Logger.h"\\r
+       "..\..\Src\TString.h"\\r
+       "..\..\Src\Uniconv.h"\\r
+       \r
+\r
+!ELSEIF  "$(CFG)" == "Tombo - Win32 (WCE SH3) Debug"\r
+\r
+DEP_CPP_MEMOM=\\r
+       "..\..\Src\MemoDetailsView.h"\\r
+       "..\..\Src\MemoManager.h"\\r
+       "..\..\Src\MemoNote.h"\\r
+       "..\..\Src\MemoSelectView.h"\\r
+       "..\..\Src\Tombo.h"\\r
+       \r
+NODEP_CPP_MEMOM=\\r
+       "..\..\Src\Uniconv.h"\\r
+       \r
+\r
+!ELSEIF  "$(CFG)" == "Tombo - Win32 (WCE ARM) Release"\r
+\r
+DEP_CPP_MEMOM=\\r
+       "..\..\Src\MemoDetailsView.h"\\r
+       "..\..\Src\MemoManager.h"\\r
+       "..\..\Src\MemoNote.h"\\r
+       "..\..\Src\MemoSelectView.h"\\r
+       "..\..\Src\Tombo.h"\\r
+       \r
+NODEP_CPP_MEMOM=\\r
+       "..\..\Src\Uniconv.h"\\r
+       \r
+\r
+!ELSEIF  "$(CFG)" == "Tombo - Win32 (WCE ARM) Debug"\r
+\r
+DEP_CPP_MEMOM=\\r
+       "..\..\Src\MemoDetailsView.h"\\r
+       "..\..\Src\MemoManager.h"\\r
+       "..\..\Src\MemoNote.h"\\r
+       "..\..\Src\MemoSelectView.h"\\r
+       "..\..\Src\Tombo.h"\\r
+       \r
+NODEP_CPP_MEMOM=\\r
+       "..\..\Src\Uniconv.h"\\r
+       \r
+\r
+!ENDIF \r
+\r
+# End Source File\r
+# Begin Source File\r
+\r
+SOURCE=..\..\Src\MemoNote.cpp\r
+\r
+!IF  "$(CFG)" == "Tombo - Win32 (WCE MIPS) Release"\r
+\r
+DEP_CPP_MEMON=\\r
+       "..\..\Src\Crypt.h"\\r
+       "..\..\Src\CryptManager.h"\\r
+       "..\..\Src\MemoInfo.h"\\r
+       "..\..\Src\MemoManager.h"\\r
+       "..\..\Src\MemoNote.h"\\r
+       "..\..\Src\Message.h"\\r
+       "..\..\Src\MsgRes\MsgDef.h"\\r
+       "..\..\Src\PasswordManager.h"\\r
+       "..\..\Src\Property.h"\\r
+       "..\..\Src\Repository.h"\\r
+       "..\..\Src\Tombo.h"\\r
+       "..\..\Src\TomboLib\AutoPtr.h"\\r
+       "..\..\Src\TomboLib\File.h"\\r
+       "..\..\Src\TomboLib\Logger.h"\\r
+       "..\..\Src\TomboLib\TString.h"\\r
+       "..\..\Src\TomboLib\Uniconv.h"\\r
+       "..\..\Src\TomboURI.h"\\r
+       \r
+\r
+!ELSEIF  "$(CFG)" == "Tombo - Win32 (WCE MIPS) Debug"\r
+\r
+DEP_CPP_MEMON=\\r
+       "..\..\Src\Crypt.h"\\r
+       "..\..\Src\CryptManager.h"\\r
+       "..\..\Src\MemoInfo.h"\\r
+       "..\..\Src\MemoManager.h"\\r
+       "..\..\Src\MemoNote.h"\\r
+       "..\..\Src\Message.h"\\r
+       "..\..\Src\PasswordManager.h"\\r
+       "..\..\Src\Property.h"\\r
+       "..\..\Src\Tombo.h"\\r
+       "..\..\Src\TomboURI.h"\\r
+       "..\..\Src\TreeViewItem.h"\\r
+       \r
+NODEP_CPP_MEMON=\\r
+       "..\..\Src\File.h"\\r
+       "..\..\Src\Logger.h"\\r
+       "..\..\Src\TString.h"\\r
+       "..\..\Src\Uniconv.h"\\r
+       "..\..\Src\VarBuffer.h"\\r
+       \r
+\r
+!ELSEIF  "$(CFG)" == "Tombo - Win32 (WCE SH4) Release"\r
+\r
+DEP_CPP_MEMON=\\r
+       "..\..\Src\Crypt.h"\\r
+       "..\..\Src\CryptManager.h"\\r
+       "..\..\Src\MemoNote.h"\\r
+       "..\..\Src\PasswordManager.h"\\r
+       "..\..\Src\Tombo.h"\\r
+       \r
+NODEP_CPP_MEMON=\\r
+       "..\..\Src\File.h"\\r
+       "..\..\Src\Uniconv.h"\\r
+       \r
+\r
+!ELSEIF  "$(CFG)" == "Tombo - Win32 (WCE SH4) Debug"\r
+\r
+DEP_CPP_MEMON=\\r
+       "..\..\Src\Crypt.h"\\r
+       "..\..\Src\CryptManager.h"\\r
+       "..\..\Src\MemoNote.h"\\r
+       "..\..\Src\PasswordManager.h"\\r
+       "..\..\Src\Tombo.h"\\r
+       \r
+NODEP_CPP_MEMON=\\r
+       "..\..\Src\File.h"\\r
+       "..\..\Src\Uniconv.h"\\r
+       \r
+\r
+!ELSEIF  "$(CFG)" == "Tombo - Win32 (WCE SH3) Release"\r
+\r
+DEP_CPP_MEMON=\\r
+       "..\..\Src\Crypt.h"\\r
+       "..\..\Src\CryptManager.h"\\r
+       "..\..\Src\MemoInfo.h"\\r
+       "..\..\Src\MemoManager.h"\\r
+       "..\..\Src\MemoNote.h"\\r
+       "..\..\Src\PasswordManager.h"\\r
+       "..\..\Src\Property.h"\\r
+       "..\..\Src\Tombo.h"\\r
+       \r
+NODEP_CPP_MEMON=\\r
+       "..\..\Src\File.h"\\r
+       "..\..\Src\Logger.h"\\r
+       "..\..\Src\TString.h"\\r
+       "..\..\Src\Uniconv.h"\\r
+       \r
+\r
+!ELSEIF  "$(CFG)" == "Tombo - Win32 (WCE SH3) Debug"\r
+\r
+DEP_CPP_MEMON=\\r
+       "..\..\Src\Crypt.h"\\r
+       "..\..\Src\CryptManager.h"\\r
+       "..\..\Src\MemoNote.h"\\r
+       "..\..\Src\PasswordManager.h"\\r
+       "..\..\Src\Tombo.h"\\r
+       \r
+NODEP_CPP_MEMON=\\r
+       "..\..\Src\File.h"\\r
+       "..\..\Src\Uniconv.h"\\r
+       \r
+\r
+!ELSEIF  "$(CFG)" == "Tombo - Win32 (WCE ARM) Release"\r
+\r
+DEP_CPP_MEMON=\\r
+       "..\..\Src\Crypt.h"\\r
+       "..\..\Src\CryptManager.h"\\r
+       "..\..\Src\MemoNote.h"\\r
+       "..\..\Src\PasswordManager.h"\\r
+       "..\..\Src\Tombo.h"\\r
+       \r
+NODEP_CPP_MEMON=\\r
+       "..\..\Src\File.h"\\r
+       "..\..\Src\Uniconv.h"\\r
+       \r
+\r
+!ELSEIF  "$(CFG)" == "Tombo - Win32 (WCE ARM) Debug"\r
+\r
+DEP_CPP_MEMON=\\r
+       "..\..\Src\Crypt.h"\\r
+       "..\..\Src\CryptManager.h"\\r
+       "..\..\Src\MemoNote.h"\\r
+       "..\..\Src\PasswordManager.h"\\r
+       "..\..\Src\Tombo.h"\\r
+       \r
+NODEP_CPP_MEMON=\\r
+       "..\..\Src\File.h"\\r
+       "..\..\Src\Uniconv.h"\\r
+       \r
+\r
+!ENDIF \r
+\r
+# End Source File\r
+# Begin Source File\r
+\r
+SOURCE=..\..\Src\MemoSelectView.cpp\r
+\r
+!IF  "$(CFG)" == "Tombo - Win32 (WCE MIPS) Release"\r
+\r
+DEP_CPP_MEMOS=\\r
+       "..\..\Src\HPCPlatform.h"\\r
+       "..\..\Src\LagendaPlatform.h"\\r
+       "..\..\Src\MainFrame.h"\\r
+       "..\..\Src\MemoDetailsView.h"\\r
+       "..\..\Src\MemoManager.h"\\r
+       "..\..\Src\MemoSelectView.h"\\r
+       "..\..\Src\Message.h"\\r
+       "..\..\Src\MsgRes\MsgDef.h"\\r
+       "..\..\Src\NewFolderDialog.h"\\r
+       "..\..\Src\PasswordManager.h"\\r
+       "..\..\Src\PlatformLayer.h"\\r
+       "..\..\Src\PocketPCPlatform.h"\\r
+       "..\..\Src\Property.h"\\r
+       "..\..\Src\PsPCPlatform.h"\\r
+       "..\..\Src\Repository.h"\\r
+       "..\..\Src\Tombo.h"\\r
+       "..\..\Src\TomboLib\AutoPtr.h"\\r
+       "..\..\Src\TomboLib\File.h"\\r
+       "..\..\Src\TomboLib\Logger.h"\\r
+       "..\..\Src\TomboLib\TString.h"\\r
+       "..\..\Src\TomboLib\Uniconv.h"\\r
+       "..\..\Src\TomboLib\VarBuffer.h"\\r
+       "..\..\Src\TomboURI.h"\\r
+       "..\..\Src\TreeViewItem.h"\\r
+       "..\..\Src\Win32Platform.h"\\r
+       \r
+\r
+!ELSEIF  "$(CFG)" == "Tombo - Win32 (WCE MIPS) Debug"\r
+\r
+DEP_CPP_MEMOS=\\r
+       "..\..\Src\MainFrame.h"\\r
+       "..\..\Src\MemoDetailsView.h"\\r
+       "..\..\Src\MemoManager.h"\\r
+       "..\..\Src\MemoNote.h"\\r
+       "..\..\Src\MemoSelectView.h"\\r
+       "..\..\Src\Message.h"\\r
+       "..\..\Src\PasswordManager.h"\\r
+       "..\..\Src\Property.h"\\r
+       "..\..\Src\Tombo.h"\\r
+       "..\..\Src\TomboURI.h"\\r
+       "..\..\Src\TreeViewItem.h"\\r
+       \r
+NODEP_CPP_MEMOS=\\r
+       "..\..\Src\Logger.h"\\r
+       "..\..\Src\TString.h"\\r
+       "..\..\Src\Uniconv.h"\\r
+       "..\..\Src\VarBuffer.h"\\r
+       \r
+\r
+!ELSEIF  "$(CFG)" == "Tombo - Win32 (WCE SH4) Release"\r
+\r
+DEP_CPP_MEMOS=\\r
+       "..\..\Src\MemoNote.h"\\r
+       "..\..\Src\MemoSelectView.h"\\r
+       "..\..\Src\Tombo.h"\\r
+       \r
+\r
+!ELSEIF  "$(CFG)" == "Tombo - Win32 (WCE SH4) Debug"\r
+\r
+DEP_CPP_MEMOS=\\r
+       "..\..\Src\MemoNote.h"\\r
+       "..\..\Src\MemoSelectView.h"\\r
+       "..\..\Src\Tombo.h"\\r
+       \r
+\r
+!ELSEIF  "$(CFG)" == "Tombo - Win32 (WCE SH3) Release"\r
+\r
+DEP_CPP_MEMOS=\\r
+       "..\..\Src\MainFrame.h"\\r
+       "..\..\Src\MemoDetailsView.h"\\r
+       "..\..\Src\MemoManager.h"\\r
+       "..\..\Src\MemoNote.h"\\r
+       "..\..\Src\MemoSelectView.h"\\r
+       "..\..\Src\PasswordManager.h"\\r
+       "..\..\Src\Property.h"\\r
+       "..\..\Src\Tombo.h"\\r
+       \r
+NODEP_CPP_MEMOS=\\r
+       "..\..\Src\File.h"\\r
+       "..\..\Src\Logger.h"\\r
+       "..\..\Src\TString.h"\\r
+       "..\..\Src\Uniconv.h"\\r
+       \r
+\r
+!ELSEIF  "$(CFG)" == "Tombo - Win32 (WCE SH3) Debug"\r
+\r
+DEP_CPP_MEMOS=\\r
+       "..\..\Src\MemoNote.h"\\r
+       "..\..\Src\MemoSelectView.h"\\r
+       "..\..\Src\Tombo.h"\\r
+       \r
+\r
+!ELSEIF  "$(CFG)" == "Tombo - Win32 (WCE ARM) Release"\r
+\r
+DEP_CPP_MEMOS=\\r
+       "..\..\Src\MemoNote.h"\\r
+       "..\..\Src\MemoSelectView.h"\\r
+       "..\..\Src\Tombo.h"\\r
+       \r
+\r
+!ELSEIF  "$(CFG)" == "Tombo - Win32 (WCE ARM) Debug"\r
+\r
+DEP_CPP_MEMOS=\\r
+       "..\..\Src\MemoNote.h"\\r
+       "..\..\Src\MemoSelectView.h"\\r
+       "..\..\Src\Tombo.h"\\r
+       \r
+\r
+!ENDIF \r
+\r
+# End Source File\r
+# Begin Source File\r
+\r
+SOURCE=..\..\Src\Message.cpp\r
+\r
+!IF  "$(CFG)" == "Tombo - Win32 (WCE MIPS) Release"\r
+\r
+DEP_CPP_MESSA=\\r
+       "..\..\Src\Message.h"\\r
+       "..\..\Src\MsgRes\DefaultMsg.cpp"\\r
+       "..\..\Src\MsgRes\MsgDef.h"\\r
+       "..\..\Src\Tombo.h"\\r
+       "..\..\Src\TomboLib\File.h"\\r
+       "..\..\Src\TomboLib\Logger.h"\\r
+       "..\..\Src\TomboLib\TString.h"\\r
+       "..\..\Src\TomboLib\Uniconv.h"\\r
+       \r
+\r
+!ELSEIF  "$(CFG)" == "Tombo - Win32 (WCE MIPS) Debug"\r
+\r
+DEP_CPP_MESSA=\\r
+       "..\..\Src\Message.h"\\r
+       "..\..\Src\MsgRes\DefaultMsg.cpp"\\r
+       "..\..\Src\MsgRes\MsgDef.h"\\r
+       "..\..\Src\Tombo.h"\\r
+       \r
+NODEP_CPP_MESSA=\\r
+       "..\..\Src\Logger.h"\\r
+       "..\..\Src\TString.h"\\r
+       "..\..\Src\Uniconv.h"\\r
+       \r
+\r
+!ELSEIF  "$(CFG)" == "Tombo - Win32 (WCE SH4) Release"\r
+\r
+DEP_CPP_MESSA=\\r
+       "..\..\Src\Message.h"\\r
+       "..\..\Src\MsgRes\DefaultMsg.cpp"\\r
+       "..\..\Src\MsgRes\MsgDef.h"\\r
+       "..\..\Src\Tombo.h"\\r
+       \r
+NODEP_CPP_MESSA=\\r
+       "..\..\Src\Logger.h"\\r
+       "..\..\Src\TString.h"\\r
+       "..\..\Src\Uniconv.h"\\r
+       \r
+\r
+!ELSEIF  "$(CFG)" == "Tombo - Win32 (WCE SH4) Debug"\r
+\r
+DEP_CPP_MESSA=\\r
+       "..\..\Src\Message.h"\\r
+       "..\..\Src\MsgRes\DefaultMsg.cpp"\\r
+       "..\..\Src\MsgRes\MsgDef.h"\\r
+       "..\..\Src\Tombo.h"\\r
+       \r
+NODEP_CPP_MESSA=\\r
+       "..\..\Src\Logger.h"\\r
+       "..\..\Src\TString.h"\\r
+       "..\..\Src\Uniconv.h"\\r
+       \r
+\r
+!ELSEIF  "$(CFG)" == "Tombo - Win32 (WCE SH3) Release"\r
+\r
+DEP_CPP_MESSA=\\r
+       "..\..\Src\Message.h"\\r
+       "..\..\Src\MsgRes\DefaultMsg.cpp"\\r
+       "..\..\Src\MsgRes\MsgDef.h"\\r
+       "..\..\Src\Tombo.h"\\r
+       \r
+NODEP_CPP_MESSA=\\r
+       "..\..\Src\Logger.h"\\r
+       "..\..\Src\TString.h"\\r
+       "..\..\Src\Uniconv.h"\\r
+       \r
+\r
+!ELSEIF  "$(CFG)" == "Tombo - Win32 (WCE SH3) Debug"\r
+\r
+DEP_CPP_MESSA=\\r
+       "..\..\Src\Message.h"\\r
+       "..\..\Src\MsgRes\DefaultMsg.cpp"\\r
+       "..\..\Src\MsgRes\MsgDef.h"\\r
+       "..\..\Src\Tombo.h"\\r
+       \r
+NODEP_CPP_MESSA=\\r
+       "..\..\Src\Logger.h"\\r
+       "..\..\Src\TString.h"\\r
+       "..\..\Src\Uniconv.h"\\r
+       \r
+\r
+!ELSEIF  "$(CFG)" == "Tombo - Win32 (WCE ARM) Release"\r
+\r
+DEP_CPP_MESSA=\\r
+       "..\..\Src\Message.h"\\r
+       "..\..\Src\MsgRes\DefaultMsg.cpp"\\r
+       "..\..\Src\MsgRes\MsgDef.h"\\r
+       "..\..\Src\Tombo.h"\\r
+       \r
+NODEP_CPP_MESSA=\\r
+       "..\..\Src\Logger.h"\\r
+       "..\..\Src\TString.h"\\r
+       "..\..\Src\Uniconv.h"\\r
+       \r
+\r
+!ELSEIF  "$(CFG)" == "Tombo - Win32 (WCE ARM) Debug"\r
+\r
+DEP_CPP_MESSA=\\r
+       "..\..\Src\Message.h"\\r
+       "..\..\Src\MsgRes\DefaultMsg.cpp"\\r
+       "..\..\Src\MsgRes\MsgDef.h"\\r
+       "..\..\Src\Tombo.h"\\r
+       \r
+NODEP_CPP_MESSA=\\r
+       "..\..\Src\Logger.h"\\r
+       "..\..\Src\TString.h"\\r
+       "..\..\Src\Uniconv.h"\\r
+       \r
+\r
+!ENDIF \r
+\r
+# End Source File\r
+# Begin Source File\r
+\r
+SOURCE=..\..\Src\NewFolderDialog.cpp\r
+\r
+!IF  "$(CFG)" == "Tombo - Win32 (WCE MIPS) Release"\r
+\r
+DEP_CPP_NEWFO=\\r
+       "..\..\Src\Message.h"\\r
+       "..\..\Src\MsgRes\MsgDef.h"\\r
+       "..\..\Src\NewFolderDialog.h"\\r
+       "..\..\Src\TomboLib\DialogTemplate.h"\\r
+       "..\..\Src\TomboLib\SipControl.h"\\r
+       \r
+\r
+!ELSEIF  "$(CFG)" == "Tombo - Win32 (WCE MIPS) Debug"\r
+\r
+DEP_CPP_NEWFO=\\r
+       "..\..\Src\NewFolderDialog.h"\\r
+       \r
+NODEP_CPP_NEWFO=\\r
+       "..\..\Src\SipControl.h"\\r
+       \r
+\r
+!ELSEIF  "$(CFG)" == "Tombo - Win32 (WCE SH4) Release"\r
+\r
+DEP_CPP_NEWFO=\\r
+       "..\..\Src\NewFolderDialog.h"\\r
+       \r
+\r
+!ELSEIF  "$(CFG)" == "Tombo - Win32 (WCE SH4) Debug"\r
+\r
+DEP_CPP_NEWFO=\\r
+       "..\..\Src\NewFolderDialog.h"\\r
+       \r
+\r
+!ELSEIF  "$(CFG)" == "Tombo - Win32 (WCE SH3) Release"\r
+\r
+DEP_CPP_NEWFO=\\r
+       "..\..\Src\NewFolderDialog.h"\\r
+       \r
+NODEP_CPP_NEWFO=\\r
+       "..\..\Src\SipControl.h"\\r
+       \r
+\r
+!ELSEIF  "$(CFG)" == "Tombo - Win32 (WCE SH3) Debug"\r
+\r
+DEP_CPP_NEWFO=\\r
+       "..\..\Src\NewFolderDialog.h"\\r
+       \r
+\r
+!ELSEIF  "$(CFG)" == "Tombo - Win32 (WCE ARM) Release"\r
+\r
+DEP_CPP_NEWFO=\\r
+       "..\..\Src\NewFolderDialog.h"\\r
+       \r
+\r
+!ELSEIF  "$(CFG)" == "Tombo - Win32 (WCE ARM) Debug"\r
+\r
+DEP_CPP_NEWFO=\\r
+       "..\..\Src\NewFolderDialog.h"\\r
+       \r
+\r
+!ENDIF \r
+\r
+# End Source File\r
+# Begin Source File\r
+\r
+SOURCE=..\..\Src\PasswordDialog.cpp\r
+\r
+!IF  "$(CFG)" == "Tombo - Win32 (WCE MIPS) Release"\r
+\r
+DEP_CPP_PASSW=\\r
+       "..\..\Src\Message.h"\\r
+       "..\..\Src\MsgRes\MsgDef.h"\\r
+       "..\..\Src\PasswordDialog.h"\\r
+       "..\..\Src\Tombo.h"\\r
+       "..\..\Src\TomboLib\DialogTemplate.h"\\r
+       "..\..\Src\TomboLib\File.h"\\r
+       "..\..\Src\TomboLib\Logger.h"\\r
+       "..\..\Src\TomboLib\SipControl.h"\\r
+       "..\..\Src\TomboLib\Uniconv.h"\\r
+       \r
+\r
+!ELSEIF  "$(CFG)" == "Tombo - Win32 (WCE MIPS) Debug"\r
+\r
+DEP_CPP_PASSW=\\r
+       "..\..\Src\MemoManager.h"\\r
+       "..\..\Src\MemoNote.h"\\r
+       "..\..\Src\Message.h"\\r
+       "..\..\Src\PasswordDialog.h"\\r
+       "..\..\Src\Tombo.h"\\r
+       "..\..\Src\TreeViewItem.h"\\r
+       \r
+NODEP_CPP_PASSW=\\r
+       "..\..\Src\Logger.h"\\r
+       "..\..\Src\SipControl.h"\\r
+       "..\..\Src\Uniconv.h"\\r
+       "..\..\Src\VarBuffer.h"\\r
+       \r
+\r
+!ELSEIF  "$(CFG)" == "Tombo - Win32 (WCE SH4) Release"\r
+\r
+DEP_CPP_PASSW=\\r
+       "..\..\Src\PasswordDialog.h"\\r
+       \r
+NODEP_CPP_PASSW=\\r
+       "..\..\Src\Uniconv.h"\\r
+       \r
+\r
+!ELSEIF  "$(CFG)" == "Tombo - Win32 (WCE SH4) Debug"\r
+\r
+DEP_CPP_PASSW=\\r
+       "..\..\Src\PasswordDialog.h"\\r
+       \r
+NODEP_CPP_PASSW=\\r
+       "..\..\Src\Uniconv.h"\\r
+       \r
+\r
+!ELSEIF  "$(CFG)" == "Tombo - Win32 (WCE SH3) Release"\r
+\r
+DEP_CPP_PASSW=\\r
+       "..\..\Src\MemoNote.h"\\r
+       "..\..\Src\PasswordDialog.h"\\r
+       "..\..\Src\Tombo.h"\\r
+       \r
+NODEP_CPP_PASSW=\\r
+       "..\..\Src\File.h"\\r
+       "..\..\Src\Logger.h"\\r
+       "..\..\Src\SipControl.h"\\r
+       "..\..\Src\Uniconv.h"\\r
+       \r
+\r
+!ELSEIF  "$(CFG)" == "Tombo - Win32 (WCE SH3) Debug"\r
+\r
+DEP_CPP_PASSW=\\r
+       "..\..\Src\PasswordDialog.h"\\r
+       \r
+NODEP_CPP_PASSW=\\r
+       "..\..\Src\Uniconv.h"\\r
+       \r
+\r
+!ELSEIF  "$(CFG)" == "Tombo - Win32 (WCE ARM) Release"\r
+\r
+DEP_CPP_PASSW=\\r
+       "..\..\Src\PasswordDialog.h"\\r
+       \r
+NODEP_CPP_PASSW=\\r
+       "..\..\Src\Uniconv.h"\\r
+       \r
+\r
+!ELSEIF  "$(CFG)" == "Tombo - Win32 (WCE ARM) Debug"\r
+\r
+DEP_CPP_PASSW=\\r
+       "..\..\Src\PasswordDialog.h"\\r
+       \r
+NODEP_CPP_PASSW=\\r
+       "..\..\Src\Uniconv.h"\\r
+       \r
+\r
+!ENDIF \r
+\r
+# End Source File\r
+# Begin Source File\r
+\r
+SOURCE=..\..\Src\PasswordManager.cpp\r
+\r
+!IF  "$(CFG)" == "Tombo - Win32 (WCE MIPS) Release"\r
+\r
+DEP_CPP_PASSWO=\\r
+       "..\..\Src\Crypt.h"\\r
+       "..\..\Src\CryptManager.h"\\r
+       "..\..\Src\Message.h"\\r
+       "..\..\Src\MsgRes\MsgDef.h"\\r
+       "..\..\Src\PasswordDialog.h"\\r
+       "..\..\Src\PasswordManager.h"\\r
+       "..\..\Src\Property.h"\\r
+       "..\..\Src\Tombo.h"\\r
+       "..\..\Src\TomboLib\File.h"\\r
+       "..\..\Src\TomboLib\Logger.h"\\r
+       \r
+\r
+!ELSEIF  "$(CFG)" == "Tombo - Win32 (WCE MIPS) Debug"\r
+\r
+DEP_CPP_PASSWO=\\r
+       "..\..\Src\Crypt.h"\\r
+       "..\..\Src\CryptManager.h"\\r
+       "..\..\Src\Message.h"\\r
+       "..\..\Src\PasswordDialog.h"\\r
+       "..\..\Src\PasswordManager.h"\\r
+       "..\..\Src\Property.h"\\r
+       "..\..\Src\Tombo.h"\\r
+       \r
+NODEP_CPP_PASSWO=\\r
+       "..\..\Src\Logger.h"\\r
+       \r
+\r
+!ELSEIF  "$(CFG)" == "Tombo - Win32 (WCE SH4) Release"\r
+\r
+DEP_CPP_PASSWO=\\r
+       "..\..\Src\PasswordDialog.h"\\r
+       "..\..\Src\PasswordManager.h"\\r
+       \r
+\r
+!ELSEIF  "$(CFG)" == "Tombo - Win32 (WCE SH4) Debug"\r
+\r
+DEP_CPP_PASSWO=\\r
+       "..\..\Src\PasswordDialog.h"\\r
+       "..\..\Src\PasswordManager.h"\\r
+       \r
+\r
+!ELSEIF  "$(CFG)" == "Tombo - Win32 (WCE SH3) Release"\r
+\r
+DEP_CPP_PASSWO=\\r
+       "..\..\Src\Crypt.h"\\r
+       "..\..\Src\CryptManager.h"\\r
+       "..\..\Src\PasswordDialog.h"\\r
+       "..\..\Src\PasswordManager.h"\\r
+       "..\..\Src\Property.h"\\r
+       "..\..\Src\Tombo.h"\\r
+       \r
+NODEP_CPP_PASSWO=\\r
+       "..\..\Src\File.h"\\r
+       "..\..\Src\Logger.h"\\r
+       \r
+\r
+!ELSEIF  "$(CFG)" == "Tombo - Win32 (WCE SH3) Debug"\r
+\r
+DEP_CPP_PASSWO=\\r
+       "..\..\Src\PasswordDialog.h"\\r
+       "..\..\Src\PasswordManager.h"\\r
+       \r
+\r
+!ELSEIF  "$(CFG)" == "Tombo - Win32 (WCE ARM) Release"\r
+\r
+DEP_CPP_PASSWO=\\r
+       "..\..\Src\PasswordDialog.h"\\r
+       "..\..\Src\PasswordManager.h"\\r
+       \r
+\r
+!ELSEIF  "$(CFG)" == "Tombo - Win32 (WCE ARM) Debug"\r
+\r
+DEP_CPP_PASSWO=\\r
+       "..\..\Src\PasswordDialog.h"\\r
+       "..\..\Src\PasswordManager.h"\\r
+       \r
+\r
+!ENDIF \r
+\r
+# End Source File\r
+# Begin Source File\r
+\r
+SOURCE=..\..\Src\YAEdit\PhysicalLineManager.cpp\r
+\r
+!IF  "$(CFG)" == "Tombo - Win32 (WCE MIPS) Release"\r
+\r
+DEP_CPP_PHYSI=\\r
+       "..\..\Src\TomboLib\TString.h"\\r
+       "..\..\Src\TomboLib\Uniconv.h"\\r
+       "..\..\Src\TomboLib\VarBuffer.h"\\r
+       "..\..\Src\YAEdit\MemManager.h"\\r
+       "..\..\Src\YAEdit\PhysicalLineManager.h"\\r
+       "..\..\Src\YAEdit\Region.h"\\r
+       "..\..\Src\YAEdit\StringSplitter.h"\\r
+       \r
+\r
+!ELSEIF  "$(CFG)" == "Tombo - Win32 (WCE MIPS) Debug"\r
+\r
+DEP_CPP_PHYSI=\\r
+       "..\..\Src\YAEdit\MemManager.h"\\r
+       "..\..\Src\YAEdit\PhysicalLineManager.h"\\r
+       "..\..\Src\YAEdit\Region.h"\\r
+       "..\..\Src\YAEdit\StringSplitter.h"\\r
+       \r
+NODEP_CPP_PHYSI=\\r
+       "..\..\Src\YAEdit\TomboLib\Uniconv.h"\\r
+       "..\..\Src\YAEdit\TString.h"\\r
+       "..\..\Src\YAEdit\VarBuffer.h"\\r
+       \r
+\r
+!ELSEIF  "$(CFG)" == "Tombo - Win32 (WCE SH4) Release"\r
+\r
+DEP_CPP_PHYSI=\\r
+       "..\..\Src\YAEdit\MemManager.h"\\r
+       "..\..\Src\YAEdit\PhysicalLineManager.h"\\r
+       "..\..\Src\YAEdit\Region.h"\\r
+       "..\..\Src\YAEdit\StringSplitter.h"\\r
+       \r
+NODEP_CPP_PHYSI=\\r
+       "..\..\Src\YAEdit\TomboLib\Uniconv.h"\\r
+       "..\..\Src\YAEdit\TString.h"\\r
+       "..\..\Src\YAEdit\VarBuffer.h"\\r
+       \r
+\r
+!ELSEIF  "$(CFG)" == "Tombo - Win32 (WCE SH4) Debug"\r
+\r
+DEP_CPP_PHYSI=\\r
+       "..\..\Src\YAEdit\MemManager.h"\\r
+       "..\..\Src\YAEdit\PhysicalLineManager.h"\\r
+       "..\..\Src\YAEdit\Region.h"\\r
+       "..\..\Src\YAEdit\StringSplitter.h"\\r
+       \r
+NODEP_CPP_PHYSI=\\r
+       "..\..\Src\YAEdit\TomboLib\Uniconv.h"\\r
+       "..\..\Src\YAEdit\TString.h"\\r
+       "..\..\Src\YAEdit\VarBuffer.h"\\r
+       \r
+\r
+!ELSEIF  "$(CFG)" == "Tombo - Win32 (WCE SH3) Release"\r
+\r
+DEP_CPP_PHYSI=\\r
+       "..\..\Src\YAEdit\MemManager.h"\\r
+       "..\..\Src\YAEdit\PhysicalLineManager.h"\\r
+       "..\..\Src\YAEdit\Region.h"\\r
+       "..\..\Src\YAEdit\StringSplitter.h"\\r
+       \r
+NODEP_CPP_PHYSI=\\r
+       "..\..\Src\YAEdit\TomboLib\Uniconv.h"\\r
+       "..\..\Src\YAEdit\TString.h"\\r
+       "..\..\Src\YAEdit\VarBuffer.h"\\r
+       \r
+\r
+!ELSEIF  "$(CFG)" == "Tombo - Win32 (WCE SH3) Debug"\r
+\r
+DEP_CPP_PHYSI=\\r
+       "..\..\Src\YAEdit\MemManager.h"\\r
+       "..\..\Src\YAEdit\PhysicalLineManager.h"\\r
+       "..\..\Src\YAEdit\Region.h"\\r
+       "..\..\Src\YAEdit\StringSplitter.h"\\r
+       \r
+NODEP_CPP_PHYSI=\\r
+       "..\..\Src\YAEdit\TomboLib\Uniconv.h"\\r
+       "..\..\Src\YAEdit\TString.h"\\r
+       "..\..\Src\YAEdit\VarBuffer.h"\\r
+       \r
+\r
+!ELSEIF  "$(CFG)" == "Tombo - Win32 (WCE ARM) Release"\r
+\r
+DEP_CPP_PHYSI=\\r
+       "..\..\Src\YAEdit\MemManager.h"\\r
+       "..\..\Src\YAEdit\PhysicalLineManager.h"\\r
+       "..\..\Src\YAEdit\Region.h"\\r
+       "..\..\Src\YAEdit\StringSplitter.h"\\r
+       \r
+NODEP_CPP_PHYSI=\\r
+       "..\..\Src\YAEdit\TomboLib\Uniconv.h"\\r
+       "..\..\Src\YAEdit\TString.h"\\r
+       "..\..\Src\YAEdit\VarBuffer.h"\\r
+       \r
+\r
+!ELSEIF  "$(CFG)" == "Tombo - Win32 (WCE ARM) Debug"\r
+\r
+DEP_CPP_PHYSI=\\r
+       "..\..\Src\YAEdit\MemManager.h"\\r
+       "..\..\Src\YAEdit\PhysicalLineManager.h"\\r
+       "..\..\Src\YAEdit\Region.h"\\r
+       "..\..\Src\YAEdit\StringSplitter.h"\\r
+       \r
+NODEP_CPP_PHYSI=\\r
+       "..\..\Src\YAEdit\TomboLib\Uniconv.h"\\r
+       "..\..\Src\YAEdit\TString.h"\\r
+       "..\..\Src\YAEdit\VarBuffer.h"\\r
+       \r
+\r
+!ENDIF \r
+\r
+# End Source File\r
+# Begin Source File\r
+\r
+SOURCE=..\..\Src\PlatformLayer.cpp\r
+\r
+!IF  "$(CFG)" == "Tombo - Win32 (WCE MIPS) Release"\r
+\r
+DEP_CPP_PLATF=\\r
+       "..\..\Src\Message.h"\\r
+       "..\..\Src\MsgRes\MsgDef.h"\\r
+       "..\..\Src\PlatformLayer.h"\\r
+       "..\..\Src\Property.h"\\r
+       "..\..\Src\Tombo.h"\\r
+       "..\..\Src\TomboLib\File.h"\\r
+       "..\..\Src\TomboLib\Logger.h"\\r
+       {$(INCLUDE)}"CSO.h"\\r
+       {$(INCLUDE)}"CSOBar.h"\\r
+       {$(INCLUDE)}"CSOButton.h"\\r
+       {$(INCLUDE)}"CWind.h"\\r
+       \r
+\r
+!ELSEIF  "$(CFG)" == "Tombo - Win32 (WCE MIPS) Debug"\r
+\r
+DEP_CPP_PLATF=\\r
+       "..\..\Src\PlatformLayer.h"\\r
+       "..\..\Src\Tombo.h"\\r
+       \r
+NODEP_CPP_PLATF=\\r
+       "..\..\Src\Logger.h"\\r
+       ".\SO.h"\\r
+       ".\SOBar.h"\\r
+       ".\SOButton.h"\\r
+       ".\Wind.h"\\r
+       \r
+\r
+!ELSEIF  "$(CFG)" == "Tombo - Win32 (WCE SH4) Release"\r
+\r
+DEP_CPP_PLATF=\\r
+       "..\..\Src\PlatformLayer.h"\\r
+       "..\..\Src\Tombo.h"\\r
+       \r
+NODEP_CPP_PLATF=\\r
+       "..\..\Src\Logger.h"\\r
+       "..\..\Src\resource.h"\\r
+       \r
+\r
+!ELSEIF  "$(CFG)" == "Tombo - Win32 (WCE SH4) Debug"\r
+\r
+DEP_CPP_PLATF=\\r
+       "..\..\Src\PlatformLayer.h"\\r
+       "..\..\Src\Tombo.h"\\r
+       \r
+NODEP_CPP_PLATF=\\r
+       "..\..\Src\Logger.h"\\r
+       "..\..\Src\resource.h"\\r
+       \r
+\r
+!ELSEIF  "$(CFG)" == "Tombo - Win32 (WCE SH3) Release"\r
+\r
+DEP_CPP_PLATF=\\r
+       "..\..\Src\PlatformLayer.h"\\r
+       "..\..\Src\Tombo.h"\\r
+       \r
+NODEP_CPP_PLATF=\\r
+       "..\..\Src\Logger.h"\\r
+       "..\..\Src\resource.h"\\r
+       \r
+\r
+!ELSEIF  "$(CFG)" == "Tombo - Win32 (WCE SH3) Debug"\r
+\r
+DEP_CPP_PLATF=\\r
+       "..\..\Src\PlatformLayer.h"\\r
+       "..\..\Src\Tombo.h"\\r
+       \r
+NODEP_CPP_PLATF=\\r
+       "..\..\Src\Logger.h"\\r
+       "..\..\Src\resource.h"\\r
+       \r
+\r
+!ELSEIF  "$(CFG)" == "Tombo - Win32 (WCE ARM) Release"\r
+\r
+DEP_CPP_PLATF=\\r
+       "..\..\Src\PlatformLayer.h"\\r
+       "..\..\Src\Tombo.h"\\r
+       \r
+NODEP_CPP_PLATF=\\r
+       "..\..\Src\Logger.h"\\r
+       "..\..\Src\resource.h"\\r
+       \r
+\r
+!ELSEIF  "$(CFG)" == "Tombo - Win32 (WCE ARM) Debug"\r
+\r
+DEP_CPP_PLATF=\\r
+       "..\..\Src\PlatformLayer.h"\\r
+       "..\..\Src\Tombo.h"\\r
+       \r
+NODEP_CPP_PLATF=\\r
+       "..\..\Src\Logger.h"\\r
+       "..\..\Src\resource.h"\\r
+       \r
+\r
+!ENDIF \r
+\r
+# End Source File\r
+# Begin Source File\r
+\r
+SOURCE=..\..\Src\Property.cpp\r
+\r
+!IF  "$(CFG)" == "Tombo - Win32 (WCE MIPS) Release"\r
+\r
+DEP_CPP_PROPE=\\r
+       "..\..\expat\include\expat.h"\\r
+       "..\..\Src\FileSelector.h"\\r
+       "..\..\Src\Message.h"\\r
+       "..\..\Src\MsgRes\MsgDef.h"\\r
+       "..\..\Src\PasswordManager.h"\\r
+       "..\..\Src\Property.h"\\r
+       "..\..\Src\Tombo.h"\\r
+       "..\..\Src\TomboLib\AutoPtr.h"\\r
+       "..\..\Src\TomboLib\DialogTemplate.h"\\r
+       "..\..\Src\TomboLib\File.h"\\r
+       "..\..\Src\TomboLib\Logger.h"\\r
+       "..\..\Src\TomboLib\PropertyPage.h"\\r
+       "..\..\Src\TomboLib\TString.h"\\r
+       "..\..\Src\TomboLib\Uniconv.h"\\r
+       "..\..\Src\TomboPropertyTab.h"\\r
+       {$(INCLUDE)}"GetDisk.h"\\r
+       {$(INCLUDE)}"notify.h"\\r
+       \r
+\r
+!ELSEIF  "$(CFG)" == "Tombo - Win32 (WCE MIPS) Debug"\r
+\r
+DEP_CPP_PROPE=\\r
+       "..\..\Src\FileSelector.h"\\r
+       "..\..\Src\MemoManager.h"\\r
+       "..\..\Src\MemoNote.h"\\r
+       "..\..\Src\Message.h"\\r
+       "..\..\Src\PasswordManager.h"\\r
+       "..\..\Src\Property.h"\\r
+       "..\..\Src\Tombo.h"\\r
+       "..\..\Src\TreeViewItem.h"\\r
+       \r
+NODEP_CPP_PROPE=\\r
+       "..\..\Src\Logger.h"\\r
+       "..\..\Src\PropertyPage.h"\\r
+       "..\..\Src\Uniconv.h"\\r
+       "..\..\Src\VarBuffer.h"\\r
+       ".\etDisk.h"\\r
+       ".\otify.h"\\r
+       \r
+\r
+!ELSEIF  "$(CFG)" == "Tombo - Win32 (WCE SH4) Release"\r
+\r
+DEP_CPP_PROPE=\\r
+       "..\..\Src\FileSelector.h"\\r
+       "..\..\Src\Property.h"\\r
+       "..\..\Src\Tombo.h"\\r
+       \r
+\r
+!ELSEIF  "$(CFG)" == "Tombo - Win32 (WCE SH4) Debug"\r
+\r
+DEP_CPP_PROPE=\\r
+       "..\..\Src\FileSelector.h"\\r
+       "..\..\Src\Property.h"\\r
+       "..\..\Src\Tombo.h"\\r
+       \r
+\r
+!ELSEIF  "$(CFG)" == "Tombo - Win32 (WCE SH3) Release"\r
+\r
+DEP_CPP_PROPE=\\r
+       "..\..\Src\FileSelector.h"\\r
+       "..\..\Src\MemoNote.h"\\r
+       "..\..\Src\PasswordManager.h"\\r
+       "..\..\Src\Property.h"\\r
+       "..\..\Src\Tombo.h"\\r
+       \r
+NODEP_CPP_PROPE=\\r
+       "..\..\Src\File.h"\\r
+       "..\..\Src\Logger.h"\\r
+       "..\..\Src\Uniconv.h"\\r
+       \r
+\r
+!ELSEIF  "$(CFG)" == "Tombo - Win32 (WCE SH3) Debug"\r
+\r
+DEP_CPP_PROPE=\\r
+       "..\..\Src\FileSelector.h"\\r
+       "..\..\Src\Property.h"\\r
+       "..\..\Src\Tombo.h"\\r
+       \r
+\r
+!ELSEIF  "$(CFG)" == "Tombo - Win32 (WCE ARM) Release"\r
+\r
+DEP_CPP_PROPE=\\r
+       "..\..\Src\FileSelector.h"\\r
+       "..\..\Src\Property.h"\\r
+       "..\..\Src\Tombo.h"\\r
+       \r
+\r
+!ELSEIF  "$(CFG)" == "Tombo - Win32 (WCE ARM) Debug"\r
+\r
+DEP_CPP_PROPE=\\r
+       "..\..\Src\FileSelector.h"\\r
+       "..\..\Src\Property.h"\\r
+       "..\..\Src\Tombo.h"\\r
+       \r
+\r
+!ENDIF \r
+\r
+# End Source File\r
+# Begin Source File\r
+\r
+SOURCE=..\..\Src\TomboLib\PropertyPage.cpp\r
+\r
+!IF  "$(CFG)" == "Tombo - Win32 (WCE MIPS) Release"\r
+\r
+DEP_CPP_PROPER=\\r
+       "..\..\Src\TomboLib\PropertyPage.h"\\r
+       \r
+\r
+!ELSEIF  "$(CFG)" == "Tombo - Win32 (WCE MIPS) Debug"\r
+\r
+DEP_CPP_PROPER=\\r
+       "..\..\Src\TomboLib\PropertyPage.h"\\r
+       \r
+\r
+!ELSEIF  "$(CFG)" == "Tombo - Win32 (WCE SH4) Release"\r
+\r
+DEP_CPP_PROPER=\\r
+       "..\..\Src\TomboLib\PropertyPage.h"\\r
+       \r
+\r
+!ELSEIF  "$(CFG)" == "Tombo - Win32 (WCE SH4) Debug"\r
+\r
+DEP_CPP_PROPER=\\r
+       "..\..\Src\TomboLib\PropertyPage.h"\\r
+       \r
+\r
+!ELSEIF  "$(CFG)" == "Tombo - Win32 (WCE SH3) Release"\r
+\r
+DEP_CPP_PROPER=\\r
+       "..\..\Src\TomboLib\PropertyPage.h"\\r
+       \r
+\r
+!ELSEIF  "$(CFG)" == "Tombo - Win32 (WCE SH3) Debug"\r
+\r
+DEP_CPP_PROPER=\\r
+       "..\..\Src\TomboLib\PropertyPage.h"\\r
+       \r
+\r
+!ELSEIF  "$(CFG)" == "Tombo - Win32 (WCE ARM) Release"\r
+\r
+DEP_CPP_PROPER=\\r
+       "..\..\Src\TomboLib\PropertyPage.h"\\r
+       \r
+\r
+!ELSEIF  "$(CFG)" == "Tombo - Win32 (WCE ARM) Debug"\r
+\r
+DEP_CPP_PROPER=\\r
+       "..\..\Src\TomboLib\PropertyPage.h"\\r
+       \r
+\r
+!ENDIF \r
+\r
+# End Source File\r
+# Begin Source File\r
+\r
+SOURCE=..\..\Src\YAEdit\Region.cpp\r
+\r
+!IF  "$(CFG)" == "Tombo - Win32 (WCE MIPS) Release"\r
+\r
+DEP_CPP_REGIO=\\r
+       "..\..\Src\YAEdit\Region.h"\\r
+       \r
+\r
+!ELSEIF  "$(CFG)" == "Tombo - Win32 (WCE MIPS) Debug"\r
+\r
+DEP_CPP_REGIO=\\r
+       "..\..\Src\YAEdit\Region.h"\\r
+       \r
+\r
+!ELSEIF  "$(CFG)" == "Tombo - Win32 (WCE SH4) Release"\r
+\r
+DEP_CPP_REGIO=\\r
+       "..\..\Src\YAEdit\Region.h"\\r
+       \r
+\r
+!ELSEIF  "$(CFG)" == "Tombo - Win32 (WCE SH4) Debug"\r
+\r
+DEP_CPP_REGIO=\\r
+       "..\..\Src\YAEdit\Region.h"\\r
+       \r
+\r
+!ELSEIF  "$(CFG)" == "Tombo - Win32 (WCE SH3) Release"\r
+\r
+DEP_CPP_REGIO=\\r
+       "..\..\Src\YAEdit\Region.h"\\r
+       \r
+\r
+!ELSEIF  "$(CFG)" == "Tombo - Win32 (WCE SH3) Debug"\r
+\r
+DEP_CPP_REGIO=\\r
+       "..\..\Src\YAEdit\Region.h"\\r
+       \r
+\r
+!ELSEIF  "$(CFG)" == "Tombo - Win32 (WCE ARM) Release"\r
+\r
+DEP_CPP_REGIO=\\r
+       "..\..\Src\YAEdit\Region.h"\\r
+       \r
+\r
+!ELSEIF  "$(CFG)" == "Tombo - Win32 (WCE ARM) Debug"\r
+\r
+DEP_CPP_REGIO=\\r
+       "..\..\Src\YAEdit\Region.h"\\r
+       \r
+\r
+!ENDIF \r
+\r
+# End Source File\r
+# Begin Source File\r
+\r
+SOURCE=..\..\Src\Repository.cpp\r
+\r
+!IF  "$(CFG)" == "Tombo - Win32 (WCE MIPS) Release"\r
+\r
+DEP_CPP_REPOS=\\r
+       "..\..\Src\MemoNote.h"\\r
+       "..\..\Src\Repository.h"\\r
+       "..\..\Src\RepositoryImpl.h"\\r
+       "..\..\Src\Tombo.h"\\r
+       "..\..\Src\TomboLib\File.h"\\r
+       "..\..\Src\TomboLib\Logger.h"\\r
+       "..\..\Src\TomboLib\TString.h"\\r
+       "..\..\Src\TomboLib\Uniconv.h"\\r
+       "..\..\Src\TomboURI.h"\\r
+       \r
+\r
+!ELSEIF  "$(CFG)" == "Tombo - Win32 (WCE MIPS) Debug"\r
+\r
+DEP_CPP_REPOS=\\r
+       "..\..\Src\MemoManager.h"\\r
+       "..\..\Src\MemoNote.h"\\r
+       "..\..\Src\PasswordManager.h"\\r
+       "..\..\Src\Repository.h"\\r
+       "..\..\Src\TomboURI.h"\\r
+       "..\..\Src\TreeViewItem.h"\\r
+       \r
+NODEP_CPP_REPOS=\\r
+       "..\..\Src\TString.h"\\r
+       "..\..\Src\Uniconv.h"\\r
+       "..\..\Src\VarBuffer.h"\\r
+       \r
+\r
+!ELSEIF  "$(CFG)" == "Tombo - Win32 (WCE SH4) Release"\r
+\r
+DEP_CPP_REPOS=\\r
+       "..\..\Src\MemoManager.h"\\r
+       "..\..\Src\MemoNote.h"\\r
+       "..\..\Src\PasswordManager.h"\\r
+       "..\..\Src\Repository.h"\\r
+       "..\..\Src\TomboURI.h"\\r
+       "..\..\Src\TreeViewItem.h"\\r
+       \r
+NODEP_CPP_REPOS=\\r
+       "..\..\Src\TString.h"\\r
+       "..\..\Src\Uniconv.h"\\r
+       "..\..\Src\VarBuffer.h"\\r
+       \r
+\r
+!ELSEIF  "$(CFG)" == "Tombo - Win32 (WCE SH4) Debug"\r
+\r
+DEP_CPP_REPOS=\\r
+       "..\..\Src\MemoManager.h"\\r
+       "..\..\Src\MemoNote.h"\\r
+       "..\..\Src\PasswordManager.h"\\r
+       "..\..\Src\Repository.h"\\r
+       "..\..\Src\TomboURI.h"\\r
+       "..\..\Src\TreeViewItem.h"\\r
+       \r
+NODEP_CPP_REPOS=\\r
+       "..\..\Src\TString.h"\\r
+       "..\..\Src\Uniconv.h"\\r
+       "..\..\Src\VarBuffer.h"\\r
+       \r
+\r
+!ELSEIF  "$(CFG)" == "Tombo - Win32 (WCE SH3) Release"\r
+\r
+DEP_CPP_REPOS=\\r
+       "..\..\Src\MemoManager.h"\\r
+       "..\..\Src\MemoNote.h"\\r
+       "..\..\Src\PasswordManager.h"\\r
+       "..\..\Src\Repository.h"\\r
+       "..\..\Src\TomboURI.h"\\r
+       "..\..\Src\TreeViewItem.h"\\r
+       \r
+NODEP_CPP_REPOS=\\r
+       "..\..\Src\TString.h"\\r
+       "..\..\Src\Uniconv.h"\\r
+       "..\..\Src\VarBuffer.h"\\r
+       \r
+\r
+!ELSEIF  "$(CFG)" == "Tombo - Win32 (WCE SH3) Debug"\r
+\r
+DEP_CPP_REPOS=\\r
+       "..\..\Src\MemoManager.h"\\r
+       "..\..\Src\MemoNote.h"\\r
+       "..\..\Src\PasswordManager.h"\\r
+       "..\..\Src\Repository.h"\\r
+       "..\..\Src\TomboURI.h"\\r
+       "..\..\Src\TreeViewItem.h"\\r
+       \r
+NODEP_CPP_REPOS=\\r
+       "..\..\Src\TString.h"\\r
+       "..\..\Src\Uniconv.h"\\r
+       "..\..\Src\VarBuffer.h"\\r
+       \r
+\r
+!ELSEIF  "$(CFG)" == "Tombo - Win32 (WCE ARM) Release"\r
+\r
+DEP_CPP_REPOS=\\r
+       "..\..\Src\MemoManager.h"\\r
+       "..\..\Src\MemoNote.h"\\r
+       "..\..\Src\PasswordManager.h"\\r
+       "..\..\Src\Repository.h"\\r
+       "..\..\Src\TomboURI.h"\\r
+       "..\..\Src\TreeViewItem.h"\\r
+       \r
+NODEP_CPP_REPOS=\\r
+       "..\..\Src\TString.h"\\r
+       "..\..\Src\Uniconv.h"\\r
+       "..\..\Src\VarBuffer.h"\\r
+       \r
+\r
+!ELSEIF  "$(CFG)" == "Tombo - Win32 (WCE ARM) Debug"\r
+\r
+DEP_CPP_REPOS=\\r
+       "..\..\Src\MemoManager.h"\\r
+       "..\..\Src\MemoNote.h"\\r
+       "..\..\Src\PasswordManager.h"\\r
+       "..\..\Src\Repository.h"\\r
+       "..\..\Src\TomboURI.h"\\r
+       "..\..\Src\TreeViewItem.h"\\r
+       \r
+NODEP_CPP_REPOS=\\r
+       "..\..\Src\TString.h"\\r
+       "..\..\Src\Uniconv.h"\\r
+       "..\..\Src\VarBuffer.h"\\r
+       \r
+\r
+!ENDIF \r
+\r
+# End Source File\r
+# Begin Source File\r
+\r
+SOURCE=..\..\Src\RepositoryImpl.cpp\r
+\r
+!IF  "$(CFG)" == "Tombo - Win32 (WCE MIPS) Release"\r
+\r
+DEP_CPP_REPOSI=\\r
+       "..\..\Src\DirList.h"\\r
+       "..\..\Src\MemoFolder.h"\\r
+       "..\..\Src\MemoInfo.h"\\r
+       "..\..\Src\MemoNote.h"\\r
+       "..\..\Src\Message.h"\\r
+       "..\..\Src\MsgRes\MsgDef.h"\\r
+       "..\..\Src\PasswordManager.h"\\r
+       "..\..\Src\Property.h"\\r
+       "..\..\Src\Repository.h"\\r
+       "..\..\Src\RepositoryImpl.h"\\r
+       "..\..\Src\Tombo.h"\\r
+       "..\..\Src\TomboLib\AutoPtr.h"\\r
+       "..\..\Src\TomboLib\DirectoryScanner.h"\\r
+       "..\..\Src\TomboLib\File.h"\\r
+       "..\..\Src\TomboLib\Logger.h"\\r
+       "..\..\Src\TomboLib\TString.h"\\r
+       "..\..\Src\TomboLib\Uniconv.h"\\r
+       "..\..\Src\TomboLib\VarBuffer.h"\\r
+       "..\..\Src\TomboURI.h"\\r
+       "..\..\Src\URIScanner.h"\\r
+       {$(INCLUDE)}"COShellAPI.h"\\r
+       \r
+\r
+!ELSEIF  "$(CFG)" == "Tombo - Win32 (WCE MIPS) Debug"\r
+\r
+DEP_CPP_REPOSI=\\r
+       "..\..\Src\MemoInfo.h"\\r
+       "..\..\Src\MemoManager.h"\\r
+       "..\..\Src\MemoNote.h"\\r
+       "..\..\Src\Message.h"\\r
+       "..\..\Src\MsgRes\MsgDef.h"\\r
+       "..\..\Src\PasswordManager.h"\\r
+       "..\..\Src\Repository.h"\\r
+       "..\..\Src\RepositoryImpl.h"\\r
+       "..\..\Src\TomboURI.h"\\r
+       "..\..\Src\TreeViewItem.h"\\r
+       \r
+NODEP_CPP_REPOSI=\\r
+       "..\..\Src\AutoPtr.h"\\r
+       "..\..\Src\TString.h"\\r
+       "..\..\Src\Uniconv.h"\\r
+       "..\..\Src\VarBuffer.h"\\r
+       \r
+\r
+!ELSEIF  "$(CFG)" == "Tombo - Win32 (WCE SH4) Release"\r
+\r
+DEP_CPP_REPOSI=\\r
+       "..\..\Src\MemoInfo.h"\\r
+       "..\..\Src\MemoManager.h"\\r
+       "..\..\Src\MemoNote.h"\\r
+       "..\..\Src\Message.h"\\r
+       "..\..\Src\MsgRes\MsgDef.h"\\r
+       "..\..\Src\PasswordManager.h"\\r
+       "..\..\Src\Repository.h"\\r
+       "..\..\Src\RepositoryImpl.h"\\r
+       "..\..\Src\TomboURI.h"\\r
+       "..\..\Src\TreeViewItem.h"\\r
+       \r
+NODEP_CPP_REPOSI=\\r
+       "..\..\Src\AutoPtr.h"\\r
+       "..\..\Src\TString.h"\\r
+       "..\..\Src\Uniconv.h"\\r
+       "..\..\Src\VarBuffer.h"\\r
+       \r
+\r
+!ELSEIF  "$(CFG)" == "Tombo - Win32 (WCE SH4) Debug"\r
+\r
+DEP_CPP_REPOSI=\\r
+       "..\..\Src\MemoInfo.h"\\r
+       "..\..\Src\MemoManager.h"\\r
+       "..\..\Src\MemoNote.h"\\r
+       "..\..\Src\Message.h"\\r
+       "..\..\Src\MsgRes\MsgDef.h"\\r
+       "..\..\Src\PasswordManager.h"\\r
+       "..\..\Src\Repository.h"\\r
+       "..\..\Src\RepositoryImpl.h"\\r
+       "..\..\Src\TomboURI.h"\\r
+       "..\..\Src\TreeViewItem.h"\\r
+       \r
+NODEP_CPP_REPOSI=\\r
+       "..\..\Src\AutoPtr.h"\\r
+       "..\..\Src\TString.h"\\r
+       "..\..\Src\Uniconv.h"\\r
+       "..\..\Src\VarBuffer.h"\\r
+       \r
+\r
+!ELSEIF  "$(CFG)" == "Tombo - Win32 (WCE SH3) Release"\r
+\r
+DEP_CPP_REPOSI=\\r
+       "..\..\Src\MemoInfo.h"\\r
+       "..\..\Src\MemoManager.h"\\r
+       "..\..\Src\MemoNote.h"\\r
+       "..\..\Src\Message.h"\\r
+       "..\..\Src\MsgRes\MsgDef.h"\\r
+       "..\..\Src\PasswordManager.h"\\r
+       "..\..\Src\Repository.h"\\r
+       "..\..\Src\RepositoryImpl.h"\\r
+       "..\..\Src\TomboURI.h"\\r
+       "..\..\Src\TreeViewItem.h"\\r
+       \r
+NODEP_CPP_REPOSI=\\r
+       "..\..\Src\AutoPtr.h"\\r
+       "..\..\Src\TString.h"\\r
+       "..\..\Src\Uniconv.h"\\r
+       "..\..\Src\VarBuffer.h"\\r
+       \r
+\r
+!ELSEIF  "$(CFG)" == "Tombo - Win32 (WCE SH3) Debug"\r
+\r
+DEP_CPP_REPOSI=\\r
+       "..\..\Src\MemoInfo.h"\\r
+       "..\..\Src\MemoManager.h"\\r
+       "..\..\Src\MemoNote.h"\\r
+       "..\..\Src\Message.h"\\r
+       "..\..\Src\MsgRes\MsgDef.h"\\r
+       "..\..\Src\PasswordManager.h"\\r
+       "..\..\Src\Repository.h"\\r
+       "..\..\Src\RepositoryImpl.h"\\r
+       "..\..\Src\TomboURI.h"\\r
+       "..\..\Src\TreeViewItem.h"\\r
+       \r
+NODEP_CPP_REPOSI=\\r
+       "..\..\Src\AutoPtr.h"\\r
+       "..\..\Src\TString.h"\\r
+       "..\..\Src\Uniconv.h"\\r
+       "..\..\Src\VarBuffer.h"\\r
+       \r
+\r
+!ELSEIF  "$(CFG)" == "Tombo - Win32 (WCE ARM) Release"\r
+\r
+DEP_CPP_REPOSI=\\r
+       "..\..\Src\MemoInfo.h"\\r
+       "..\..\Src\MemoManager.h"\\r
+       "..\..\Src\MemoNote.h"\\r
+       "..\..\Src\Message.h"\\r
+       "..\..\Src\MsgRes\MsgDef.h"\\r
+       "..\..\Src\PasswordManager.h"\\r
+       "..\..\Src\Repository.h"\\r
+       "..\..\Src\RepositoryImpl.h"\\r
+       "..\..\Src\TomboURI.h"\\r
+       "..\..\Src\TreeViewItem.h"\\r
+       \r
+NODEP_CPP_REPOSI=\\r
+       "..\..\Src\AutoPtr.h"\\r
+       "..\..\Src\TString.h"\\r
+       "..\..\Src\Uniconv.h"\\r
+       "..\..\Src\VarBuffer.h"\\r
+       \r
+\r
+!ELSEIF  "$(CFG)" == "Tombo - Win32 (WCE ARM) Debug"\r
+\r
+DEP_CPP_REPOSI=\\r
+       "..\..\Src\MemoInfo.h"\\r
+       "..\..\Src\MemoManager.h"\\r
+       "..\..\Src\MemoNote.h"\\r
+       "..\..\Src\Message.h"\\r
+       "..\..\Src\MsgRes\MsgDef.h"\\r
+       "..\..\Src\PasswordManager.h"\\r
+       "..\..\Src\Repository.h"\\r
+       "..\..\Src\RepositoryImpl.h"\\r
+       "..\..\Src\TomboURI.h"\\r
+       "..\..\Src\TreeViewItem.h"\\r
+       \r
+NODEP_CPP_REPOSI=\\r
+       "..\..\Src\AutoPtr.h"\\r
+       "..\..\Src\TString.h"\\r
+       "..\..\Src\Uniconv.h"\\r
+       "..\..\Src\VarBuffer.h"\\r
+       \r
+\r
+!ENDIF \r
+\r
+# End Source File\r
+# Begin Source File\r
+\r
+SOURCE=..\..\Src\SearchDlg.cpp\r
+\r
+!IF  "$(CFG)" == "Tombo - Win32 (WCE MIPS) Release"\r
+\r
+DEP_CPP_SEARC=\\r
+       "..\..\Src\Message.h"\\r
+       "..\..\Src\MsgRes\MsgDef.h"\\r
+       "..\..\Src\Property.h"\\r
+       "..\..\Src\SearchDlg.h"\\r
+       "..\..\Src\Tombo.h"\\r
+       "..\..\Src\TomboLib\DialogTemplate.h"\\r
+       "..\..\Src\TomboLib\File.h"\\r
+       "..\..\Src\TomboLib\Logger.h"\\r
+       "..\..\Src\TomboLib\SipControl.h"\\r
+       "..\..\Src\TomboLib\Uniconv.h"\\r
+       \r
+\r
+!ELSEIF  "$(CFG)" == "Tombo - Win32 (WCE MIPS) Debug"\r
+\r
+DEP_CPP_SEARC=\\r
+       "..\..\Src\Property.h"\\r
+       "..\..\Src\SearchDlg.h"\\r
+       "..\..\Src\Tombo.h"\\r
+       \r
+NODEP_CPP_SEARC=\\r
+       "..\..\Src\Logger.h"\\r
+       "..\..\Src\SipControl.h"\\r
+       "..\..\Src\Uniconv.h"\\r
+       \r
+\r
+!ELSEIF  "$(CFG)" == "Tombo - Win32 (WCE SH4) Release"\r
+\r
+DEP_CPP_SEARC=\\r
+       "..\..\Src\Property.h"\\r
+       "..\..\Src\SearchDlg.h"\\r
+       "..\..\Src\Tombo.h"\\r
+       \r
+NODEP_CPP_SEARC=\\r
+       "..\..\Src\File.h"\\r
+       "..\..\Src\Logger.h"\\r
+       "..\..\Src\resource.h"\\r
+       "..\..\Src\SipControl.h"\\r
+       "..\..\Src\Uniconv.h"\\r
+       \r
+\r
+!ELSEIF  "$(CFG)" == "Tombo - Win32 (WCE SH4) Debug"\r
+\r
+DEP_CPP_SEARC=\\r
+       "..\..\Src\Property.h"\\r
+       "..\..\Src\SearchDlg.h"\\r
+       "..\..\Src\Tombo.h"\\r
+       \r
+NODEP_CPP_SEARC=\\r
+       "..\..\Src\File.h"\\r
+       "..\..\Src\Logger.h"\\r
+       "..\..\Src\resource.h"\\r
+       "..\..\Src\SipControl.h"\\r
+       "..\..\Src\Uniconv.h"\\r
+       \r
+\r
+!ELSEIF  "$(CFG)" == "Tombo - Win32 (WCE SH3) Release"\r
+\r
+DEP_CPP_SEARC=\\r
+       "..\..\Src\Property.h"\\r
+       "..\..\Src\SearchDlg.h"\\r
+       "..\..\Src\Tombo.h"\\r
+       \r
+NODEP_CPP_SEARC=\\r
+       "..\..\Src\File.h"\\r
+       "..\..\Src\Logger.h"\\r
+       "..\..\Src\resource.h"\\r
+       "..\..\Src\SipControl.h"\\r
+       "..\..\Src\Uniconv.h"\\r
+       \r
+\r
+!ELSEIF  "$(CFG)" == "Tombo - Win32 (WCE SH3) Debug"\r
+\r
+DEP_CPP_SEARC=\\r
+       "..\..\Src\Property.h"\\r
+       "..\..\Src\SearchDlg.h"\\r
+       "..\..\Src\Tombo.h"\\r
+       \r
+NODEP_CPP_SEARC=\\r
+       "..\..\Src\File.h"\\r
+       "..\..\Src\Logger.h"\\r
+       "..\..\Src\resource.h"\\r
+       "..\..\Src\SipControl.h"\\r
+       "..\..\Src\Uniconv.h"\\r
+       \r
+\r
+!ELSEIF  "$(CFG)" == "Tombo - Win32 (WCE ARM) Release"\r
+\r
+DEP_CPP_SEARC=\\r
+       "..\..\Src\Property.h"\\r
+       "..\..\Src\SearchDlg.h"\\r
+       "..\..\Src\Tombo.h"\\r
+       \r
+NODEP_CPP_SEARC=\\r
+       "..\..\Src\File.h"\\r
+       "..\..\Src\Logger.h"\\r
+       "..\..\Src\resource.h"\\r
+       "..\..\Src\SipControl.h"\\r
+       "..\..\Src\Uniconv.h"\\r
+       \r
+\r
+!ELSEIF  "$(CFG)" == "Tombo - Win32 (WCE ARM) Debug"\r
+\r
+DEP_CPP_SEARC=\\r
+       "..\..\Src\Property.h"\\r
+       "..\..\Src\SearchDlg.h"\\r
+       "..\..\Src\Tombo.h"\\r
+       \r
+NODEP_CPP_SEARC=\\r
+       "..\..\Src\File.h"\\r
+       "..\..\Src\Logger.h"\\r
+       "..\..\Src\resource.h"\\r
+       "..\..\Src\SipControl.h"\\r
+       "..\..\Src\Uniconv.h"\\r
+       \r
+\r
+!ENDIF \r
+\r
+# End Source File\r
+# Begin Source File\r
+\r
+SOURCE=..\..\Src\SearchEngine.cpp\r
+\r
+!IF  "$(CFG)" == "Tombo - Win32 (WCE MIPS) Release"\r
+\r
+DEP_CPP_SEARCH=\\r
+       "..\..\Src\Property.h"\\r
+       "..\..\Src\Repository.h"\\r
+       "..\..\Src\SearchEngine.h"\\r
+       "..\..\Src\Tombo.h"\\r
+       "..\..\Src\TomboLib\AutoPtr.h"\\r
+       "..\..\Src\TomboLib\File.h"\\r
+       "..\..\Src\TomboLib\Logger.h"\\r
+       "..\..\Src\TomboLib\TString.h"\\r
+       "..\..\Src\TomboLib\Uniconv.h"\\r
+       "..\..\Src\TomboURI.h"\\r
+       \r
+\r
+!ELSEIF  "$(CFG)" == "Tombo - Win32 (WCE MIPS) Debug"\r
+\r
+DEP_CPP_SEARCH=\\r
+       "..\..\Src\MemoManager.h"\\r
+       "..\..\Src\MemoNote.h"\\r
+       "..\..\Src\SearchEngine.h"\\r
+       "..\..\Src\Tombo.h"\\r
+       "..\..\Src\TreeViewItem.h"\\r
+       \r
+NODEP_CPP_SEARCH=\\r
+       "..\..\Src\Logger.h"\\r
+       "..\..\Src\TString.h"\\r
+       "..\..\Src\Uniconv.h"\\r
+       "..\..\Src\VarBuffer.h"\\r
+       \r
+\r
+!ELSEIF  "$(CFG)" == "Tombo - Win32 (WCE SH4) Release"\r
+\r
+DEP_CPP_SEARCH=\\r
+       "..\..\Src\SearchEngine.h"\\r
+       \r
+\r
+!ELSEIF  "$(CFG)" == "Tombo - Win32 (WCE SH4) Debug"\r
+\r
+DEP_CPP_SEARCH=\\r
+       "..\..\Src\SearchEngine.h"\\r
+       \r
+\r
+!ELSEIF  "$(CFG)" == "Tombo - Win32 (WCE SH3) Release"\r
+\r
+DEP_CPP_SEARCH=\\r
+       "..\..\Src\SearchEngine.h"\\r
+       \r
+\r
+!ELSEIF  "$(CFG)" == "Tombo - Win32 (WCE SH3) Debug"\r
+\r
+DEP_CPP_SEARCH=\\r
+       "..\..\Src\SearchEngine.h"\\r
+       \r
+\r
+!ELSEIF  "$(CFG)" == "Tombo - Win32 (WCE ARM) Release"\r
+\r
+DEP_CPP_SEARCH=\\r
+       "..\..\Src\SearchEngine.h"\\r
+       \r
+\r
+!ELSEIF  "$(CFG)" == "Tombo - Win32 (WCE ARM) Debug"\r
+\r
+DEP_CPP_SEARCH=\\r
+       "..\..\Src\SearchEngine.h"\\r
+       \r
+\r
+!ENDIF \r
+\r
+# End Source File\r
+# Begin Source File\r
+\r
+SOURCE=..\..\Src\SearchTree.cpp\r
+\r
+!IF  "$(CFG)" == "Tombo - Win32 (WCE MIPS) Release"\r
+\r
+DEP_CPP_SEARCHT=\\r
+       "..\..\Src\Message.h"\\r
+       "..\..\Src\MsgRes\MsgDef.h"\\r
+       "..\..\Src\Property.h"\\r
+       "..\..\Src\Repository.h"\\r
+       "..\..\Src\SearchEngine.h"\\r
+       "..\..\Src\SearchTree.h"\\r
+       "..\..\Src\Tombo.h"\\r
+       "..\..\Src\TomboLib\DialogTemplate.h"\\r
+       "..\..\Src\TomboLib\File.h"\\r
+       "..\..\Src\TomboLib\Logger.h"\\r
+       "..\..\Src\TomboLib\TString.h"\\r
+       "..\..\Src\TomboLib\Uniconv.h"\\r
+       "..\..\Src\TomboLib\VarBuffer.h"\\r
+       "..\..\Src\TomboURI.h"\\r
+       "..\..\Src\URIScanner.h"\\r
+       \r
+\r
+!ELSEIF  "$(CFG)" == "Tombo - Win32 (WCE MIPS) Debug"\r
+\r
+DEP_CPP_SEARCHT=\\r
+       "..\..\Src\DirList.h"\\r
+       "..\..\Src\MemoManager.h"\\r
+       "..\..\Src\MemoNote.h"\\r
+       "..\..\Src\Message.h"\\r
+       "..\..\Src\SearchEngine.h"\\r
+       "..\..\Src\SearchTree.h"\\r
+       "..\..\Src\Tombo.h"\\r
+       "..\..\Src\TreeViewItem.h"\\r
+       \r
+NODEP_CPP_SEARCHT=\\r
+       "..\..\Src\Logger.h"\\r
+       "..\..\Src\TString.h"\\r
+       "..\..\Src\Uniconv.h"\\r
+       "..\..\Src\VarBuffer.h"\\r
+       \r
+\r
+!ELSEIF  "$(CFG)" == "Tombo - Win32 (WCE SH4) Release"\r
+\r
+DEP_CPP_SEARCHT=\\r
+       "..\..\Src\DirList.h"\\r
+       "..\..\Src\MemoManager.h"\\r
+       "..\..\Src\MemoNote.h"\\r
+       "..\..\Src\Message.h"\\r
+       "..\..\Src\SearchEngine.h"\\r
+       "..\..\Src\SearchTree.h"\\r
+       "..\..\Src\TreeViewItem.h"\\r
+       \r
+NODEP_CPP_SEARCHT=\\r
+       "..\..\Src\resource.h"\\r
+       "..\..\Src\TString.h"\\r
+       "..\..\Src\VarBuffer.h"\\r
+       \r
+\r
+!ELSEIF  "$(CFG)" == "Tombo - Win32 (WCE SH4) Debug"\r
+\r
+DEP_CPP_SEARCHT=\\r
+       "..\..\Src\DirList.h"\\r
+       "..\..\Src\MemoManager.h"\\r
+       "..\..\Src\MemoNote.h"\\r
+       "..\..\Src\Message.h"\\r
+       "..\..\Src\SearchEngine.h"\\r
+       "..\..\Src\SearchTree.h"\\r
+       "..\..\Src\TreeViewItem.h"\\r
+       \r
+NODEP_CPP_SEARCHT=\\r
+       "..\..\Src\resource.h"\\r
+       "..\..\Src\TString.h"\\r
+       "..\..\Src\VarBuffer.h"\\r
+       \r
+\r
+!ELSEIF  "$(CFG)" == "Tombo - Win32 (WCE SH3) Release"\r
+\r
+DEP_CPP_SEARCHT=\\r
+       "..\..\Src\DirList.h"\\r
+       "..\..\Src\MemoManager.h"\\r
+       "..\..\Src\MemoNote.h"\\r
+       "..\..\Src\Message.h"\\r
+       "..\..\Src\SearchEngine.h"\\r
+       "..\..\Src\SearchTree.h"\\r
+       "..\..\Src\TreeViewItem.h"\\r
+       \r
+NODEP_CPP_SEARCHT=\\r
+       "..\..\Src\resource.h"\\r
+       "..\..\Src\TString.h"\\r
+       "..\..\Src\VarBuffer.h"\\r
+       \r
+\r
+!ELSEIF  "$(CFG)" == "Tombo - Win32 (WCE SH3) Debug"\r
+\r
+DEP_CPP_SEARCHT=\\r
+       "..\..\Src\DirList.h"\\r
+       "..\..\Src\MemoManager.h"\\r
+       "..\..\Src\MemoNote.h"\\r
+       "..\..\Src\Message.h"\\r
+       "..\..\Src\SearchEngine.h"\\r
+       "..\..\Src\SearchTree.h"\\r
+       "..\..\Src\TreeViewItem.h"\\r
+       \r
+NODEP_CPP_SEARCHT=\\r
+       "..\..\Src\resource.h"\\r
+       "..\..\Src\TString.h"\\r
+       "..\..\Src\VarBuffer.h"\\r
+       \r
+\r
+!ELSEIF  "$(CFG)" == "Tombo - Win32 (WCE ARM) Release"\r
+\r
+DEP_CPP_SEARCHT=\\r
+       "..\..\Src\DirList.h"\\r
+       "..\..\Src\MemoManager.h"\\r
+       "..\..\Src\MemoNote.h"\\r
+       "..\..\Src\Message.h"\\r
+       "..\..\Src\SearchEngine.h"\\r
+       "..\..\Src\SearchTree.h"\\r
+       "..\..\Src\TreeViewItem.h"\\r
+       \r
+NODEP_CPP_SEARCHT=\\r
+       "..\..\Src\resource.h"\\r
+       "..\..\Src\TString.h"\\r
+       "..\..\Src\VarBuffer.h"\\r
+       \r
+\r
+!ELSEIF  "$(CFG)" == "Tombo - Win32 (WCE ARM) Debug"\r
+\r
+DEP_CPP_SEARCHT=\\r
+       "..\..\Src\DirList.h"\\r
+       "..\..\Src\MemoManager.h"\\r
+       "..\..\Src\MemoNote.h"\\r
+       "..\..\Src\Message.h"\\r
+       "..\..\Src\SearchEngine.h"\\r
+       "..\..\Src\SearchTree.h"\\r
+       "..\..\Src\TreeViewItem.h"\\r
+       \r
+NODEP_CPP_SEARCHT=\\r
+       "..\..\Src\resource.h"\\r
+       "..\..\Src\TString.h"\\r
+       "..\..\Src\VarBuffer.h"\\r
+       \r
+\r
+!ENDIF \r
+\r
+# End Source File\r
+# Begin Source File\r
+\r
+SOURCE=..\..\Src\SelectViewWndProc.cpp\r
+\r
+!IF  "$(CFG)" == "Tombo - Win32 (WCE MIPS) Release"\r
+\r
+DEP_CPP_SELEC=\\r
+       "..\..\Src\MemoSelectView.h"\\r
+       "..\..\Src\Property.h"\\r
+       "..\..\Src\Tombo.h"\\r
+       "..\..\Src\TomboLib\File.h"\\r
+       "..\..\Src\TomboLib\Logger.h"\\r
+       \r
+\r
+!ELSEIF  "$(CFG)" == "Tombo - Win32 (WCE MIPS) Debug"\r
+\r
+DEP_CPP_SELEC=\\r
+       "..\..\Src\MemoSelectView.h"\\r
+       "..\..\Src\Property.h"\\r
+       \r
+\r
+!ELSEIF  "$(CFG)" == "Tombo - Win32 (WCE SH4) Release"\r
+\r
+DEP_CPP_SELEC=\\r
+       "..\..\Src\MemoSelectView.h"\\r
+       \r
+\r
+!ELSEIF  "$(CFG)" == "Tombo - Win32 (WCE SH4) Debug"\r
+\r
+DEP_CPP_SELEC=\\r
+       "..\..\Src\MemoSelectView.h"\\r
+       \r
+\r
+!ELSEIF  "$(CFG)" == "Tombo - Win32 (WCE SH3) Release"\r
+\r
+DEP_CPP_SELEC=\\r
+       "..\..\Src\MemoSelectView.h"\\r
+       \r
+NODEP_CPP_SELEC=\\r
+       ".\ipapi.h"\\r
+       ".\ygshell.h"\\r
+       \r
+\r
+!ELSEIF  "$(CFG)" == "Tombo - Win32 (WCE SH3) Debug"\r
+\r
+DEP_CPP_SELEC=\\r
+       "..\..\Src\MemoSelectView.h"\\r
+       \r
+NODEP_CPP_SELEC=\\r
+       ".\ipapi.h"\\r
+       ".\ygshell.h"\\r
+       \r
+\r
+!ELSEIF  "$(CFG)" == "Tombo - Win32 (WCE ARM) Release"\r
+\r
+DEP_CPP_SELEC=\\r
+       "..\..\Src\MemoSelectView.h"\\r
+       \r
+\r
+!ELSEIF  "$(CFG)" == "Tombo - Win32 (WCE ARM) Debug"\r
+\r
+DEP_CPP_SELEC=\\r
+       "..\..\Src\MemoSelectView.h"\\r
+       \r
+\r
+!ENDIF \r
+\r
+# End Source File\r
+# Begin Source File\r
+\r
+SOURCE=..\..\Src\TomboLib\SipControl.cpp\r
+\r
+!IF  "$(CFG)" == "Tombo - Win32 (WCE MIPS) Release"\r
+\r
+DEP_CPP_SIPCO=\\r
+       "..\..\Src\Tombo.h"\\r
+       "..\..\Src\TomboLib\File.h"\\r
+       "..\..\Src\TomboLib\Logger.h"\\r
+       "..\..\Src\TomboLib\SipControl.h"\\r
+       {$(INCLUDE)}"sip.h"\\r
+       {$(INCLUDE)}"sipapi.h"\\r
+       \r
+\r
+!ELSEIF  "$(CFG)" == "Tombo - Win32 (WCE MIPS) Debug"\r
+\r
+DEP_CPP_SIPCO=\\r
+       "..\..\Src\TomboLib\SipControl.h"\\r
+       \r
+NODEP_CPP_SIPCO=\\r
+       "..\..\Src\TomboLib\Tombo.h"\\r
+       ".\ip.h"\\r
+       ".\ipapi.h"\\r
+       \r
+\r
+!ELSEIF  "$(CFG)" == "Tombo - Win32 (WCE SH4) Release"\r
+\r
+DEP_CPP_SIPCO=\\r
+       "..\..\Src\TomboLib\SipControl.h"\\r
+       \r
+NODEP_CPP_SIPCO=\\r
+       "..\..\Src\TomboLib\Tombo.h"\\r
+       \r
+\r
+!ELSEIF  "$(CFG)" == "Tombo - Win32 (WCE SH4) Debug"\r
+\r
+DEP_CPP_SIPCO=\\r
+       "..\..\Src\TomboLib\SipControl.h"\\r
+       \r
+NODEP_CPP_SIPCO=\\r
+       "..\..\Src\TomboLib\Tombo.h"\\r
+       \r
+\r
+!ELSEIF  "$(CFG)" == "Tombo - Win32 (WCE SH3) Release"\r
+\r
+DEP_CPP_SIPCO=\\r
+       "..\..\Src\TomboLib\SipControl.h"\\r
+       \r
+NODEP_CPP_SIPCO=\\r
+       "..\..\Src\TomboLib\Tombo.h"\\r
+       \r
+\r
+!ELSEIF  "$(CFG)" == "Tombo - Win32 (WCE SH3) Debug"\r
+\r
+DEP_CPP_SIPCO=\\r
+       "..\..\Src\TomboLib\SipControl.h"\\r
+       \r
+NODEP_CPP_SIPCO=\\r
+       "..\..\Src\TomboLib\Tombo.h"\\r
+       \r
+\r
+!ELSEIF  "$(CFG)" == "Tombo - Win32 (WCE ARM) Release"\r
+\r
+DEP_CPP_SIPCO=\\r
+       "..\..\Src\TomboLib\SipControl.h"\\r
+       \r
+NODEP_CPP_SIPCO=\\r
+       "..\..\Src\TomboLib\Tombo.h"\\r
+       \r
+\r
+!ELSEIF  "$(CFG)" == "Tombo - Win32 (WCE ARM) Debug"\r
+\r
+DEP_CPP_SIPCO=\\r
+       "..\..\Src\TomboLib\SipControl.h"\\r
+       \r
+NODEP_CPP_SIPCO=\\r
+       "..\..\Src\TomboLib\Tombo.h"\\r
+       \r
+\r
+!ENDIF \r
+\r
+# End Source File\r
+# Begin Source File\r
+\r
+SOURCE=..\..\Src\StatusBar.cpp\r
+\r
+!IF  "$(CFG)" == "Tombo - Win32 (WCE MIPS) Release"\r
+\r
+DEP_CPP_STATU=\\r
+       "..\..\Src\StatusBar.h"\\r
+       \r
+\r
+!ELSEIF  "$(CFG)" == "Tombo - Win32 (WCE MIPS) Debug"\r
+\r
+DEP_CPP_STATU=\\r
+       "..\..\Src\StatusBar.h"\\r
+       \r
+\r
+!ELSEIF  "$(CFG)" == "Tombo - Win32 (WCE SH4) Release"\r
+\r
+DEP_CPP_STATU=\\r
+       "..\..\Src\StatusBar.h"\\r
+       \r
+NODEP_CPP_STATU=\\r
+       "..\..\Src\resource.h"\\r
+       \r
+\r
+!ELSEIF  "$(CFG)" == "Tombo - Win32 (WCE SH4) Debug"\r
+\r
+DEP_CPP_STATU=\\r
+       "..\..\Src\StatusBar.h"\\r
+       \r
+NODEP_CPP_STATU=\\r
+       "..\..\Src\resource.h"\\r
+       \r
+\r
+!ELSEIF  "$(CFG)" == "Tombo - Win32 (WCE SH3) Release"\r
+\r
+DEP_CPP_STATU=\\r
+       "..\..\Src\StatusBar.h"\\r
+       \r
+NODEP_CPP_STATU=\\r
+       "..\..\Src\resource.h"\\r
+       \r
+\r
+!ELSEIF  "$(CFG)" == "Tombo - Win32 (WCE SH3) Debug"\r
+\r
+DEP_CPP_STATU=\\r
+       "..\..\Src\StatusBar.h"\\r
+       \r
+NODEP_CPP_STATU=\\r
+       "..\..\Src\resource.h"\\r
+       \r
+\r
+!ELSEIF  "$(CFG)" == "Tombo - Win32 (WCE ARM) Release"\r
+\r
+DEP_CPP_STATU=\\r
+       "..\..\Src\StatusBar.h"\\r
+       \r
+NODEP_CPP_STATU=\\r
+       "..\..\Src\resource.h"\\r
+       \r
+\r
+!ELSEIF  "$(CFG)" == "Tombo - Win32 (WCE ARM) Debug"\r
+\r
+DEP_CPP_STATU=\\r
+       "..\..\Src\StatusBar.h"\\r
+       \r
+NODEP_CPP_STATU=\\r
+       "..\..\Src\resource.h"\\r
+       \r
+\r
+!ENDIF \r
+\r
+# End Source File\r
+# Begin Source File\r
+\r
+SOURCE=..\..\Src\YAEdit\StringSplitter.cpp\r
+\r
+!IF  "$(CFG)" == "Tombo - Win32 (WCE MIPS) Release"\r
+\r
+DEP_CPP_STRIN=\\r
+       "..\..\Src\TomboLib\VarBuffer.h"\\r
+       "..\..\Src\YAEdit\StringSplitter.h"\\r
+       \r
+\r
+!ELSEIF  "$(CFG)" == "Tombo - Win32 (WCE MIPS) Debug"\r
+\r
+DEP_CPP_STRIN=\\r
+       "..\..\Src\YAEdit\StringSplitter.h"\\r
+       \r
+NODEP_CPP_STRIN=\\r
+       "..\..\Src\YAEdit\VarBuffer.h"\\r
+       \r
+\r
+!ELSEIF  "$(CFG)" == "Tombo - Win32 (WCE SH4) Release"\r
+\r
+DEP_CPP_STRIN=\\r
+       "..\..\Src\YAEdit\StringSplitter.h"\\r
+       \r
+NODEP_CPP_STRIN=\\r
+       "..\..\Src\YAEdit\VarBuffer.h"\\r
+       \r
+\r
+!ELSEIF  "$(CFG)" == "Tombo - Win32 (WCE SH4) Debug"\r
+\r
+DEP_CPP_STRIN=\\r
+       "..\..\Src\YAEdit\StringSplitter.h"\\r
+       \r
+NODEP_CPP_STRIN=\\r
+       "..\..\Src\YAEdit\VarBuffer.h"\\r
+       \r
+\r
+!ELSEIF  "$(CFG)" == "Tombo - Win32 (WCE SH3) Release"\r
+\r
+DEP_CPP_STRIN=\\r
+       "..\..\Src\YAEdit\StringSplitter.h"\\r
+       \r
+NODEP_CPP_STRIN=\\r
+       "..\..\Src\YAEdit\VarBuffer.h"\\r
+       \r
+\r
+!ELSEIF  "$(CFG)" == "Tombo - Win32 (WCE SH3) Debug"\r
+\r
+DEP_CPP_STRIN=\\r
+       "..\..\Src\YAEdit\StringSplitter.h"\\r
+       \r
+NODEP_CPP_STRIN=\\r
+       "..\..\Src\YAEdit\VarBuffer.h"\\r
+       \r
+\r
+!ELSEIF  "$(CFG)" == "Tombo - Win32 (WCE ARM) Release"\r
+\r
+DEP_CPP_STRIN=\\r
+       "..\..\Src\YAEdit\StringSplitter.h"\\r
+       \r
+NODEP_CPP_STRIN=\\r
+       "..\..\Src\YAEdit\VarBuffer.h"\\r
+       \r
+\r
+!ELSEIF  "$(CFG)" == "Tombo - Win32 (WCE ARM) Debug"\r
+\r
+DEP_CPP_STRIN=\\r
+       "..\..\Src\YAEdit\StringSplitter.h"\\r
+       \r
+NODEP_CPP_STRIN=\\r
+       "..\..\Src\YAEdit\VarBuffer.h"\\r
+       \r
+\r
+!ENDIF \r
+\r
+# End Source File\r
+# Begin Source File\r
+\r
+SOURCE=.\res\TomboE.rc\r
+\r
+!IF  "$(CFG)" == "Tombo - Win32 (WCE MIPS) Release"\r
+\r
+!ELSEIF  "$(CFG)" == "Tombo - Win32 (WCE MIPS) Debug"\r
+\r
+!ELSEIF  "$(CFG)" == "Tombo - Win32 (WCE SH4) Release"\r
+\r
+!ELSEIF  "$(CFG)" == "Tombo - Win32 (WCE SH4) Debug"\r
+\r
+!ELSEIF  "$(CFG)" == "Tombo - Win32 (WCE SH3) Release"\r
+\r
+!ELSEIF  "$(CFG)" == "Tombo - Win32 (WCE SH3) Debug"\r
+\r
+!ELSEIF  "$(CFG)" == "Tombo - Win32 (WCE ARM) Release"\r
+\r
+!ELSEIF  "$(CFG)" == "Tombo - Win32 (WCE ARM) Debug"\r
+\r
+!ENDIF \r
+\r
+# End Source File\r
+# Begin Source File\r
+\r
+SOURCE=..\..\Src\TomboPropertyTab.cpp\r
+\r
+!IF  "$(CFG)" == "Tombo - Win32 (WCE MIPS) Release"\r
+\r
+DEP_CPP_TOMBO=\\r
+       "..\..\Src\FileSelector.h"\\r
+       "..\..\Src\Message.h"\\r
+       "..\..\Src\MsgRes\MsgDef.h"\\r
+       "..\..\Src\Property.h"\\r
+       "..\..\Src\Tombo.h"\\r
+       "..\..\Src\TomboLib\DialogTemplate.h"\\r
+       "..\..\Src\TomboLib\File.h"\\r
+       "..\..\Src\TomboLib\Logger.h"\\r
+       "..\..\Src\TomboLib\PropertyPage.h"\\r
+       "..\..\Src\TomboLib\TString.h"\\r
+       "..\..\Src\TomboLib\Uniconv.h"\\r
+       "..\..\Src\TomboPropertyTab.h"\\r
+       \r
+\r
+!ELSEIF  "$(CFG)" == "Tombo - Win32 (WCE MIPS) Debug"\r
+\r
+DEP_CPP_TOMBO=\\r
+       "..\..\Src\FileSelector.h"\\r
+       "..\..\Src\Message.h"\\r
+       "..\..\Src\MsgRes\MsgDef.h"\\r
+       "..\..\Src\Property.h"\\r
+       "..\..\Src\Tombo.h"\\r
+       "..\..\Src\TomboPropertyTab.h"\\r
+       \r
+NODEP_CPP_TOMBO=\\r
+       "..\..\Src\DialogTemplate.h"\\r
+       "..\..\Src\Logger.h"\\r
+       "..\..\Src\PropertyPage.h"\\r
+       "..\..\Src\TString.h"\\r
+       "..\..\Src\Uniconv.h"\\r
+       \r
+\r
+!ELSEIF  "$(CFG)" == "Tombo - Win32 (WCE SH4) Release"\r
+\r
+DEP_CPP_TOMBO=\\r
+       "..\..\Src\FileSelector.h"\\r
+       "..\..\Src\Message.h"\\r
+       "..\..\Src\MsgRes\MsgDef.h"\\r
+       "..\..\Src\Property.h"\\r
+       "..\..\Src\Tombo.h"\\r
+       "..\..\Src\TomboPropertyTab.h"\\r
+       \r
+NODEP_CPP_TOMBO=\\r
+       "..\..\Src\DialogTemplate.h"\\r
+       "..\..\Src\Logger.h"\\r
+       "..\..\Src\PropertyPage.h"\\r
+       "..\..\Src\resource.h"\\r
+       "..\..\Src\TString.h"\\r
+       "..\..\Src\Uniconv.h"\\r
+       \r
+\r
+!ELSEIF  "$(CFG)" == "Tombo - Win32 (WCE SH4) Debug"\r
+\r
+DEP_CPP_TOMBO=\\r
+       "..\..\Src\FileSelector.h"\\r
+       "..\..\Src\Message.h"\\r
+       "..\..\Src\MsgRes\MsgDef.h"\\r
+       "..\..\Src\Property.h"\\r
+       "..\..\Src\Tombo.h"\\r
+       "..\..\Src\TomboPropertyTab.h"\\r
+       \r
+NODEP_CPP_TOMBO=\\r
+       "..\..\Src\DialogTemplate.h"\\r
+       "..\..\Src\Logger.h"\\r
+       "..\..\Src\PropertyPage.h"\\r
+       "..\..\Src\resource.h"\\r
+       "..\..\Src\TString.h"\\r
+       "..\..\Src\Uniconv.h"\\r
+       \r
+\r
+!ELSEIF  "$(CFG)" == "Tombo - Win32 (WCE SH3) Release"\r
+\r
+DEP_CPP_TOMBO=\\r
+       "..\..\Src\FileSelector.h"\\r
+       "..\..\Src\Message.h"\\r
+       "..\..\Src\MsgRes\MsgDef.h"\\r
+       "..\..\Src\Property.h"\\r
+       "..\..\Src\Tombo.h"\\r
+       "..\..\Src\TomboPropertyTab.h"\\r
+       \r
+NODEP_CPP_TOMBO=\\r
+       "..\..\Src\DialogTemplate.h"\\r
+       "..\..\Src\Logger.h"\\r
+       "..\..\Src\PropertyPage.h"\\r
+       "..\..\Src\resource.h"\\r
+       "..\..\Src\TString.h"\\r
+       "..\..\Src\Uniconv.h"\\r
+       \r
+\r
+!ELSEIF  "$(CFG)" == "Tombo - Win32 (WCE SH3) Debug"\r
+\r
+DEP_CPP_TOMBO=\\r
+       "..\..\Src\FileSelector.h"\\r
+       "..\..\Src\Message.h"\\r
+       "..\..\Src\MsgRes\MsgDef.h"\\r
+       "..\..\Src\Property.h"\\r
+       "..\..\Src\Tombo.h"\\r
+       "..\..\Src\TomboPropertyTab.h"\\r
+       \r
+NODEP_CPP_TOMBO=\\r
+       "..\..\Src\DialogTemplate.h"\\r
+       "..\..\Src\Logger.h"\\r
+       "..\..\Src\PropertyPage.h"\\r
+       "..\..\Src\resource.h"\\r
+       "..\..\Src\TString.h"\\r
+       "..\..\Src\Uniconv.h"\\r
+       \r
+\r
+!ELSEIF  "$(CFG)" == "Tombo - Win32 (WCE ARM) Release"\r
+\r
+DEP_CPP_TOMBO=\\r
+       "..\..\Src\FileSelector.h"\\r
+       "..\..\Src\Message.h"\\r
+       "..\..\Src\MsgRes\MsgDef.h"\\r
+       "..\..\Src\Property.h"\\r
+       "..\..\Src\Tombo.h"\\r
+       "..\..\Src\TomboPropertyTab.h"\\r
+       \r
+NODEP_CPP_TOMBO=\\r
+       "..\..\Src\DialogTemplate.h"\\r
+       "..\..\Src\Logger.h"\\r
+       "..\..\Src\PropertyPage.h"\\r
+       "..\..\Src\resource.h"\\r
+       "..\..\Src\TString.h"\\r
+       "..\..\Src\Uniconv.h"\\r
+       \r
+\r
+!ELSEIF  "$(CFG)" == "Tombo - Win32 (WCE ARM) Debug"\r
+\r
+DEP_CPP_TOMBO=\\r
+       "..\..\Src\FileSelector.h"\\r
+       "..\..\Src\Message.h"\\r
+       "..\..\Src\MsgRes\MsgDef.h"\\r
+       "..\..\Src\Property.h"\\r
+       "..\..\Src\Tombo.h"\\r
+       "..\..\Src\TomboPropertyTab.h"\\r
+       \r
+NODEP_CPP_TOMBO=\\r
+       "..\..\Src\DialogTemplate.h"\\r
+       "..\..\Src\Logger.h"\\r
+       "..\..\Src\PropertyPage.h"\\r
+       "..\..\Src\resource.h"\\r
+       "..\..\Src\TString.h"\\r
+       "..\..\Src\Uniconv.h"\\r
+       \r
+\r
+!ENDIF \r
+\r
+# End Source File\r
+# Begin Source File\r
+\r
+SOURCE=..\..\Src\TomboURI.cpp\r
+\r
+!IF  "$(CFG)" == "Tombo - Win32 (WCE MIPS) Release"\r
+\r
+DEP_CPP_TOMBOU=\\r
+       "..\..\Src\TomboLib\TString.h"\\r
+       "..\..\Src\TomboURI.h"\\r
+       \r
+\r
+!ELSEIF  "$(CFG)" == "Tombo - Win32 (WCE MIPS) Debug"\r
+\r
+DEP_CPP_TOMBOU=\\r
+       "..\..\Src\TomboURI.h"\\r
+       \r
+NODEP_CPP_TOMBOU=\\r
+       "..\..\Src\TString.h"\\r
+       \r
+\r
+!ELSEIF  "$(CFG)" == "Tombo - Win32 (WCE SH4) Release"\r
+\r
+DEP_CPP_TOMBOU=\\r
+       "..\..\Src\TomboURI.h"\\r
+       \r
+NODEP_CPP_TOMBOU=\\r
+       "..\..\Src\TString.h"\\r
+       \r
+\r
+!ELSEIF  "$(CFG)" == "Tombo - Win32 (WCE SH4) Debug"\r
+\r
+DEP_CPP_TOMBOU=\\r
+       "..\..\Src\TomboURI.h"\\r
+       \r
+NODEP_CPP_TOMBOU=\\r
+       "..\..\Src\TString.h"\\r
+       \r
+\r
+!ELSEIF  "$(CFG)" == "Tombo - Win32 (WCE SH3) Release"\r
+\r
+DEP_CPP_TOMBOU=\\r
+       "..\..\Src\TomboURI.h"\\r
+       \r
+NODEP_CPP_TOMBOU=\\r
+       "..\..\Src\TString.h"\\r
+       \r
+\r
+!ELSEIF  "$(CFG)" == "Tombo - Win32 (WCE SH3) Debug"\r
+\r
+DEP_CPP_TOMBOU=\\r
+       "..\..\Src\TomboURI.h"\\r
+       \r
+NODEP_CPP_TOMBOU=\\r
+       "..\..\Src\TString.h"\\r
+       \r
+\r
+!ELSEIF  "$(CFG)" == "Tombo - Win32 (WCE ARM) Release"\r
+\r
+DEP_CPP_TOMBOU=\\r
+       "..\..\Src\TomboURI.h"\\r
+       \r
+NODEP_CPP_TOMBOU=\\r
+       "..\..\Src\TString.h"\\r
+       \r
+\r
+!ELSEIF  "$(CFG)" == "Tombo - Win32 (WCE ARM) Debug"\r
+\r
+DEP_CPP_TOMBOU=\\r
+       "..\..\Src\TomboURI.h"\\r
+       \r
+NODEP_CPP_TOMBOU=\\r
+       "..\..\Src\TString.h"\\r
+       \r
+\r
+!ENDIF \r
+\r
+# End Source File\r
+# Begin Source File\r
+\r
+SOURCE=..\..\Src\TreeViewItem.cpp\r
+\r
+!IF  "$(CFG)" == "Tombo - Win32 (WCE MIPS) Release"\r
+\r
+DEP_CPP_TREEV=\\r
+       "..\..\Src\HPCPlatform.h"\\r
+       "..\..\Src\LagendaPlatform.h"\\r
+       "..\..\Src\MainFrame.h"\\r
+       "..\..\Src\MemoDetailsView.h"\\r
+       "..\..\Src\MemoManager.h"\\r
+       "..\..\Src\MemoSelectView.h"\\r
+       "..\..\Src\Message.h"\\r
+       "..\..\Src\MsgRes\MsgDef.h"\\r
+       "..\..\Src\PasswordManager.h"\\r
+       "..\..\Src\PlatformLayer.h"\\r
+       "..\..\Src\PocketPCPlatform.h"\\r
+       "..\..\Src\Property.h"\\r
+       "..\..\Src\PsPCPlatform.h"\\r
+       "..\..\Src\Repository.h"\\r
+       "..\..\Src\Tombo.h"\\r
+       "..\..\Src\TomboLib\AutoPtr.h"\\r
+       "..\..\Src\TomboLib\DirectoryScanner.h"\\r
+       "..\..\Src\TomboLib\File.h"\\r
+       "..\..\Src\TomboLib\Logger.h"\\r
+       "..\..\Src\TomboLib\TString.h"\\r
+       "..\..\Src\TomboLib\Uniconv.h"\\r
+       "..\..\Src\TomboLib\VarBuffer.h"\\r
+       "..\..\Src\TomboURI.h"\\r
+       "..\..\Src\TreeViewItem.h"\\r
+       "..\..\Src\TSParser.h"\\r
+       "..\..\Src\URIScanner.h"\\r
+       "..\..\Src\VFManager.h"\\r
+       "..\..\Src\VFStream.h"\\r
+       "..\..\Src\Win32Platform.h"\\r
+       {$(INCLUDE)}"COShellAPI.h"\\r
+       \r
+\r
+!ELSEIF  "$(CFG)" == "Tombo - Win32 (WCE MIPS) Debug"\r
+\r
+DEP_CPP_TREEV=\\r
+       "..\..\Src\DirList.h"\\r
+       "..\..\Src\MainFrame.h"\\r
+       "..\..\Src\MemoDetailsView.h"\\r
+       "..\..\Src\MemoFolder.h"\\r
+       "..\..\Src\MemoManager.h"\\r
+       "..\..\Src\MemoNote.h"\\r
+       "..\..\Src\MemoSelectView.h"\\r
+       "..\..\Src\Message.h"\\r
+       "..\..\Src\PasswordManager.h"\\r
+       "..\..\Src\Property.h"\\r
+       "..\..\Src\Tombo.h"\\r
+       "..\..\Src\TreeViewItem.h"\\r
+       "..\..\Src\TSParser.h"\\r
+       "..\..\Src\VFManager.h"\\r
+       "..\..\Src\VFStream.h"\\r
+       \r
+NODEP_CPP_TREEV=\\r
+       "..\..\Src\DirectoryScanner.h"\\r
+       "..\..\Src\Logger.h"\\r
+       "..\..\Src\TString.h"\\r
+       "..\..\Src\Uniconv.h"\\r
+       "..\..\Src\VarBuffer.h"\\r
+       \r
+\r
+!ELSEIF  "$(CFG)" == "Tombo - Win32 (WCE SH4) Release"\r
+\r
+DEP_CPP_TREEV=\\r
+       "..\..\Src\MemoFolder.h"\\r
+       "..\..\Src\MemoManager.h"\\r
+       "..\..\Src\MemoNote.h"\\r
+       "..\..\Src\MemoSelectView.h"\\r
+       "..\..\Src\PasswordManager.h"\\r
+       "..\..\Src\Property.h"\\r
+       "..\..\Src\Tombo.h"\\r
+       "..\..\Src\TreeViewItem.h"\\r
+       \r
+NODEP_CPP_TREEV=\\r
+       "..\..\Src\DirectoryScanner.h"\\r
+       "..\..\Src\File.h"\\r
+       "..\..\Src\Logger.h"\\r
+       "..\..\Src\TString.h"\\r
+       "..\..\Src\Uniconv.h"\\r
+       \r
+\r
+!ELSEIF  "$(CFG)" == "Tombo - Win32 (WCE SH4) Debug"\r
+\r
+DEP_CPP_TREEV=\\r
+       "..\..\Src\MemoFolder.h"\\r
+       "..\..\Src\MemoManager.h"\\r
+       "..\..\Src\MemoNote.h"\\r
+       "..\..\Src\MemoSelectView.h"\\r
+       "..\..\Src\PasswordManager.h"\\r
+       "..\..\Src\Property.h"\\r
+       "..\..\Src\Tombo.h"\\r
+       "..\..\Src\TreeViewItem.h"\\r
+       \r
+NODEP_CPP_TREEV=\\r
+       "..\..\Src\DirectoryScanner.h"\\r
+       "..\..\Src\File.h"\\r
+       "..\..\Src\Logger.h"\\r
+       "..\..\Src\TString.h"\\r
+       "..\..\Src\Uniconv.h"\\r
+       \r
+\r
+!ELSEIF  "$(CFG)" == "Tombo - Win32 (WCE SH3) Release"\r
+\r
+DEP_CPP_TREEV=\\r
+       "..\..\Src\MemoFolder.h"\\r
+       "..\..\Src\MemoManager.h"\\r
+       "..\..\Src\MemoNote.h"\\r
+       "..\..\Src\MemoSelectView.h"\\r
+       "..\..\Src\PasswordManager.h"\\r
+       "..\..\Src\Property.h"\\r
+       "..\..\Src\Tombo.h"\\r
+       "..\..\Src\TreeViewItem.h"\\r
+       \r
+NODEP_CPP_TREEV=\\r
+       "..\..\Src\DirectoryScanner.h"\\r
+       "..\..\Src\File.h"\\r
+       "..\..\Src\Logger.h"\\r
+       "..\..\Src\TString.h"\\r
+       "..\..\Src\Uniconv.h"\\r
+       \r
+\r
+!ELSEIF  "$(CFG)" == "Tombo - Win32 (WCE SH3) Debug"\r
+\r
+DEP_CPP_TREEV=\\r
+       "..\..\Src\MemoFolder.h"\\r
+       "..\..\Src\MemoManager.h"\\r
+       "..\..\Src\MemoNote.h"\\r
+       "..\..\Src\MemoSelectView.h"\\r
+       "..\..\Src\PasswordManager.h"\\r
+       "..\..\Src\Property.h"\\r
+       "..\..\Src\Tombo.h"\\r
+       "..\..\Src\TreeViewItem.h"\\r
+       \r
+NODEP_CPP_TREEV=\\r
+       "..\..\Src\DirectoryScanner.h"\\r
+       "..\..\Src\File.h"\\r
+       "..\..\Src\Logger.h"\\r
+       "..\..\Src\TString.h"\\r
+       "..\..\Src\Uniconv.h"\\r
+       \r
+\r
+!ELSEIF  "$(CFG)" == "Tombo - Win32 (WCE ARM) Release"\r
+\r
+DEP_CPP_TREEV=\\r
+       "..\..\Src\MemoFolder.h"\\r
+       "..\..\Src\MemoManager.h"\\r
+       "..\..\Src\MemoNote.h"\\r
+       "..\..\Src\MemoSelectView.h"\\r
+       "..\..\Src\PasswordManager.h"\\r
+       "..\..\Src\Property.h"\\r
+       "..\..\Src\Tombo.h"\\r
+       "..\..\Src\TreeViewItem.h"\\r
+       \r
+NODEP_CPP_TREEV=\\r
+       "..\..\Src\DirectoryScanner.h"\\r
+       "..\..\Src\File.h"\\r
+       "..\..\Src\Logger.h"\\r
+       "..\..\Src\TString.h"\\r
+       "..\..\Src\Uniconv.h"\\r
+       \r
+\r
+!ELSEIF  "$(CFG)" == "Tombo - Win32 (WCE ARM) Debug"\r
+\r
+DEP_CPP_TREEV=\\r
+       "..\..\Src\MemoFolder.h"\\r
+       "..\..\Src\MemoManager.h"\\r
+       "..\..\Src\MemoNote.h"\\r
+       "..\..\Src\MemoSelectView.h"\\r
+       "..\..\Src\PasswordManager.h"\\r
+       "..\..\Src\Property.h"\\r
+       "..\..\Src\Tombo.h"\\r
+       "..\..\Src\TreeViewItem.h"\\r
+       \r
+NODEP_CPP_TREEV=\\r
+       "..\..\Src\DirectoryScanner.h"\\r
+       "..\..\Src\File.h"\\r
+       "..\..\Src\Logger.h"\\r
+       "..\..\Src\TString.h"\\r
+       "..\..\Src\Uniconv.h"\\r
+       \r
+\r
+!ENDIF \r
+\r
+# End Source File\r
+# Begin Source File\r
+\r
+SOURCE=..\..\Src\TSParser.cpp\r
+\r
+!IF  "$(CFG)" == "Tombo - Win32 (WCE MIPS) Release"\r
+\r
+DEP_CPP_TSPAR=\\r
+       "..\..\expat\include\expat.h"\\r
+       "..\..\Src\Tombo.h"\\r
+       "..\..\Src\TomboLib\AutoPtr.h"\\r
+       "..\..\Src\TomboLib\File.h"\\r
+       "..\..\Src\TomboLib\Logger.h"\\r
+       "..\..\Src\TomboLib\TString.h"\\r
+       "..\..\Src\TomboLib\Uniconv.h"\\r
+       "..\..\Src\TomboLib\VarBuffer.h"\\r
+       "..\..\Src\TomboURI.h"\\r
+       "..\..\Src\TSParser.h"\\r
+       "..\..\Src\VFManager.h"\\r
+       "..\..\Src\VFStream.h"\\r
+       \r
+\r
+!ELSEIF  "$(CFG)" == "Tombo - Win32 (WCE MIPS) Debug"\r
+\r
+DEP_CPP_TSPAR=\\r
+       "..\..\expat\include\expat.h"\\r
+       "..\..\Src\Tombo.h"\\r
+       "..\..\Src\TSParser.h"\\r
+       "..\..\Src\VFManager.h"\\r
+       "..\..\Src\VFStream.h"\\r
+       \r
+NODEP_CPP_TSPAR=\\r
+       "..\..\Src\Logger.h"\\r
+       "..\..\Src\Uniconv.h"\\r
+       "..\..\Src\VarBuffer.h"\\r
+       \r
+\r
+!ELSEIF  "$(CFG)" == "Tombo - Win32 (WCE SH4) Release"\r
+\r
+DEP_CPP_TSPAR=\\r
+       "..\..\Src\MemoSelectView.h"\\r
+       "..\..\Src\TreeViewItem.h"\\r
+       "..\..\Src\TSParser.h"\\r
+       "..\..\Src\VFStream.h"\\r
+       \r
+NODEP_CPP_TSPAR=\\r
+       "..\..\Src\ctypeutil.h"\\r
+       "..\..\Src\File.h"\\r
+       "..\..\Src\Uniconv.h"\\r
+       \r
+\r
+!ELSEIF  "$(CFG)" == "Tombo - Win32 (WCE SH4) Debug"\r
+\r
+DEP_CPP_TSPAR=\\r
+       "..\..\Src\MemoSelectView.h"\\r
+       "..\..\Src\TreeViewItem.h"\\r
+       "..\..\Src\TSParser.h"\\r
+       "..\..\Src\VFStream.h"\\r
+       \r
+NODEP_CPP_TSPAR=\\r
+       "..\..\Src\ctypeutil.h"\\r
+       "..\..\Src\File.h"\\r
+       "..\..\Src\Uniconv.h"\\r
+       \r
+\r
+!ELSEIF  "$(CFG)" == "Tombo - Win32 (WCE SH3) Release"\r
+\r
+DEP_CPP_TSPAR=\\r
+       "..\..\Src\MemoSelectView.h"\\r
+       "..\..\Src\TreeViewItem.h"\\r
+       "..\..\Src\TSParser.h"\\r
+       "..\..\Src\VFStream.h"\\r
+       \r
+NODEP_CPP_TSPAR=\\r
+       "..\..\Src\ctypeutil.h"\\r
+       "..\..\Src\File.h"\\r
+       "..\..\Src\Uniconv.h"\\r
+       \r
+\r
+!ELSEIF  "$(CFG)" == "Tombo - Win32 (WCE SH3) Debug"\r
+\r
+DEP_CPP_TSPAR=\\r
+       "..\..\Src\MemoSelectView.h"\\r
+       "..\..\Src\TreeViewItem.h"\\r
+       "..\..\Src\TSParser.h"\\r
+       "..\..\Src\VFStream.h"\\r
+       \r
+NODEP_CPP_TSPAR=\\r
+       "..\..\Src\ctypeutil.h"\\r
+       "..\..\Src\File.h"\\r
+       "..\..\Src\Uniconv.h"\\r
+       \r
+\r
+!ELSEIF  "$(CFG)" == "Tombo - Win32 (WCE ARM) Release"\r
+\r
+DEP_CPP_TSPAR=\\r
+       "..\..\Src\MemoSelectView.h"\\r
+       "..\..\Src\TreeViewItem.h"\\r
+       "..\..\Src\TSParser.h"\\r
+       "..\..\Src\VFStream.h"\\r
+       \r
+NODEP_CPP_TSPAR=\\r
+       "..\..\Src\ctypeutil.h"\\r
+       "..\..\Src\File.h"\\r
+       "..\..\Src\Uniconv.h"\\r
+       \r
+\r
+!ELSEIF  "$(CFG)" == "Tombo - Win32 (WCE ARM) Debug"\r
+\r
+DEP_CPP_TSPAR=\\r
+       "..\..\Src\MemoSelectView.h"\\r
+       "..\..\Src\TreeViewItem.h"\\r
+       "..\..\Src\TSParser.h"\\r
+       "..\..\Src\VFStream.h"\\r
+       \r
+NODEP_CPP_TSPAR=\\r
+       "..\..\Src\ctypeutil.h"\\r
+       "..\..\Src\File.h"\\r
+       "..\..\Src\Uniconv.h"\\r
+       \r
+\r
+!ENDIF \r
+\r
+# End Source File\r
+# Begin Source File\r
+\r
+SOURCE=..\..\Src\TomboLib\TString.cpp\r
+\r
+!IF  "$(CFG)" == "Tombo - Win32 (WCE MIPS) Release"\r
+\r
+DEP_CPP_TSTRI=\\r
+       "..\..\Src\TomboLib\TString.h"\\r
+       "..\..\Src\TomboLib\Uniconv.h"\\r
+       \r
+\r
+!ELSEIF  "$(CFG)" == "Tombo - Win32 (WCE MIPS) Debug"\r
+\r
+DEP_CPP_TSTRI=\\r
+       "..\..\Src\TomboLib\TString.h"\\r
+       "..\..\Src\TomboLib\Uniconv.h"\\r
+       \r
+\r
+!ELSEIF  "$(CFG)" == "Tombo - Win32 (WCE SH4) Release"\r
+\r
+DEP_CPP_TSTRI=\\r
+       "..\..\Src\TomboLib\TString.h"\\r
+       "..\..\Src\TomboLib\Uniconv.h"\\r
+       \r
+NODEP_CPP_TSTRI=\\r
+       "..\..\Src\TomboLib\Property.h"\\r
+       "..\..\Src\TomboLib\Tombo.h"\\r
+       \r
+\r
+!ELSEIF  "$(CFG)" == "Tombo - Win32 (WCE SH4) Debug"\r
+\r
+DEP_CPP_TSTRI=\\r
+       "..\..\Src\TomboLib\TString.h"\\r
+       "..\..\Src\TomboLib\Uniconv.h"\\r
+       \r
+NODEP_CPP_TSTRI=\\r
+       "..\..\Src\TomboLib\Property.h"\\r
+       "..\..\Src\TomboLib\Tombo.h"\\r
+       \r
+\r
+!ELSEIF  "$(CFG)" == "Tombo - Win32 (WCE SH3) Release"\r
+\r
+DEP_CPP_TSTRI=\\r
+       "..\..\Src\TomboLib\TString.h"\\r
+       "..\..\Src\TomboLib\Uniconv.h"\\r
+       \r
+NODEP_CPP_TSTRI=\\r
+       "..\..\Src\TomboLib\Property.h"\\r
+       "..\..\Src\TomboLib\Tombo.h"\\r
+       \r
+\r
+!ELSEIF  "$(CFG)" == "Tombo - Win32 (WCE SH3) Debug"\r
+\r
+DEP_CPP_TSTRI=\\r
+       "..\..\Src\TomboLib\TString.h"\\r
+       "..\..\Src\TomboLib\Uniconv.h"\\r
+       \r
+NODEP_CPP_TSTRI=\\r
+       "..\..\Src\TomboLib\Property.h"\\r
+       "..\..\Src\TomboLib\Tombo.h"\\r
+       \r
+\r
+!ELSEIF  "$(CFG)" == "Tombo - Win32 (WCE ARM) Release"\r
+\r
+DEP_CPP_TSTRI=\\r
+       "..\..\Src\TomboLib\TString.h"\\r
+       "..\..\Src\TomboLib\Uniconv.h"\\r
+       \r
+NODEP_CPP_TSTRI=\\r
+       "..\..\Src\TomboLib\Property.h"\\r
+       "..\..\Src\TomboLib\Tombo.h"\\r
+       \r
+\r
+!ELSEIF  "$(CFG)" == "Tombo - Win32 (WCE ARM) Debug"\r
+\r
+DEP_CPP_TSTRI=\\r
+       "..\..\Src\TomboLib\TString.h"\\r
+       "..\..\Src\TomboLib\Uniconv.h"\\r
+       \r
+NODEP_CPP_TSTRI=\\r
+       "..\..\Src\TomboLib\Property.h"\\r
+       "..\..\Src\TomboLib\Tombo.h"\\r
+       \r
+\r
+!ENDIF \r
+\r
+# End Source File\r
+# Begin Source File\r
+\r
+SOURCE=..\..\Src\TomboLib\Uniconv.cpp\r
+\r
+!IF  "$(CFG)" == "Tombo - Win32 (WCE MIPS) Release"\r
+\r
+DEP_CPP_UNICO=\\r
+       "..\..\Src\Property.h"\\r
+       "..\..\Src\Tombo.h"\\r
+       "..\..\Src\TomboLib\AutoPtr.h"\\r
+       "..\..\Src\TomboLib\File.h"\\r
+       "..\..\Src\TomboLib\Logger.h"\\r
+       "..\..\Src\TomboLib\TString.h"\\r
+       "..\..\Src\TomboLib\Uniconv.h"\\r
+       \r
+\r
+!ELSEIF  "$(CFG)" == "Tombo - Win32 (WCE MIPS) Debug"\r
+\r
+DEP_CPP_UNICO=\\r
+       "..\..\Src\TomboLib\Uniconv.h"\\r
+       \r
+NODEP_CPP_UNICO=\\r
+       "..\..\Src\TomboLib\Property.h"\\r
+       "..\..\Src\TomboLib\Tombo.h"\\r
+       \r
+\r
+!ELSEIF  "$(CFG)" == "Tombo - Win32 (WCE SH4) Release"\r
+\r
+DEP_CPP_UNICO=\\r
+       "..\..\Src\TomboLib\Uniconv.h"\\r
+       \r
+NODEP_CPP_UNICO=\\r
+       "..\..\Src\TomboLib\Property.h"\\r
+       "..\..\Src\TomboLib\Tombo.h"\\r
+       \r
+\r
+!ELSEIF  "$(CFG)" == "Tombo - Win32 (WCE SH4) Debug"\r
+\r
+DEP_CPP_UNICO=\\r
+       "..\..\Src\TomboLib\Uniconv.h"\\r
+       \r
+NODEP_CPP_UNICO=\\r
+       "..\..\Src\TomboLib\Property.h"\\r
+       "..\..\Src\TomboLib\Tombo.h"\\r
+       \r
+\r
+!ELSEIF  "$(CFG)" == "Tombo - Win32 (WCE SH3) Release"\r
+\r
+DEP_CPP_UNICO=\\r
+       "..\..\Src\TomboLib\Uniconv.h"\\r
+       \r
+NODEP_CPP_UNICO=\\r
+       "..\..\Src\TomboLib\Property.h"\\r
+       "..\..\Src\TomboLib\Tombo.h"\\r
+       \r
+\r
+!ELSEIF  "$(CFG)" == "Tombo - Win32 (WCE SH3) Debug"\r
+\r
+DEP_CPP_UNICO=\\r
+       "..\..\Src\TomboLib\Uniconv.h"\\r
+       \r
+NODEP_CPP_UNICO=\\r
+       "..\..\Src\TomboLib\Property.h"\\r
+       "..\..\Src\TomboLib\Tombo.h"\\r
+       \r
+\r
+!ELSEIF  "$(CFG)" == "Tombo - Win32 (WCE ARM) Release"\r
+\r
+DEP_CPP_UNICO=\\r
+       "..\..\Src\TomboLib\Uniconv.h"\\r
+       \r
+NODEP_CPP_UNICO=\\r
+       "..\..\Src\TomboLib\Property.h"\\r
+       "..\..\Src\TomboLib\Tombo.h"\\r
+       \r
+\r
+!ELSEIF  "$(CFG)" == "Tombo - Win32 (WCE ARM) Debug"\r
+\r
+DEP_CPP_UNICO=\\r
+       "..\..\Src\TomboLib\Uniconv.h"\\r
+       \r
+NODEP_CPP_UNICO=\\r
+       "..\..\Src\TomboLib\Property.h"\\r
+       "..\..\Src\TomboLib\Tombo.h"\\r
+       \r
+\r
+!ENDIF \r
+\r
+# End Source File\r
+# Begin Source File\r
+\r
+SOURCE=..\..\Src\URIScanner.cpp\r
+\r
+!IF  "$(CFG)" == "Tombo - Win32 (WCE MIPS) Release"\r
+\r
+DEP_CPP_URISC=\\r
+       "..\..\Src\Repository.h"\\r
+       "..\..\Src\Tombo.h"\\r
+       "..\..\Src\TomboLib\File.h"\\r
+       "..\..\Src\TomboLib\Logger.h"\\r
+       "..\..\Src\TomboLib\TString.h"\\r
+       "..\..\Src\TomboLib\Uniconv.h"\\r
+       "..\..\Src\TomboLib\VarBuffer.h"\\r
+       "..\..\Src\TomboURI.h"\\r
+       "..\..\Src\URIScanner.h"\\r
+       \r
+\r
+!ELSEIF  "$(CFG)" == "Tombo - Win32 (WCE MIPS) Debug"\r
+\r
+DEP_CPP_URISC=\\r
+       "..\..\Src\Repository.h"\\r
+       "..\..\Src\Tombo.h"\\r
+       "..\..\Src\TomboURI.h"\\r
+       "..\..\Src\URIScanner.h"\\r
+       \r
+NODEP_CPP_URISC=\\r
+       "..\..\Src\Logger.h"\\r
+       "..\..\Src\TString.h"\\r
+       "..\..\Src\Uniconv.h"\\r
+       "..\..\Src\VarBuffer.h"\\r
+       \r
+\r
+!ELSEIF  "$(CFG)" == "Tombo - Win32 (WCE SH4) Release"\r
+\r
+DEP_CPP_URISC=\\r
+       "..\..\Src\Repository.h"\\r
+       "..\..\Src\Tombo.h"\\r
+       "..\..\Src\TomboURI.h"\\r
+       "..\..\Src\URIScanner.h"\\r
+       \r
+NODEP_CPP_URISC=\\r
+       "..\..\Src\Logger.h"\\r
+       "..\..\Src\TString.h"\\r
+       "..\..\Src\Uniconv.h"\\r
+       "..\..\Src\VarBuffer.h"\\r
+       \r
+\r
+!ELSEIF  "$(CFG)" == "Tombo - Win32 (WCE SH4) Debug"\r
+\r
+DEP_CPP_URISC=\\r
+       "..\..\Src\Repository.h"\\r
+       "..\..\Src\Tombo.h"\\r
+       "..\..\Src\TomboURI.h"\\r
+       "..\..\Src\URIScanner.h"\\r
+       \r
+NODEP_CPP_URISC=\\r
+       "..\..\Src\Logger.h"\\r
+       "..\..\Src\TString.h"\\r
+       "..\..\Src\Uniconv.h"\\r
+       "..\..\Src\VarBuffer.h"\\r
+       \r
+\r
+!ELSEIF  "$(CFG)" == "Tombo - Win32 (WCE SH3) Release"\r
+\r
+DEP_CPP_URISC=\\r
+       "..\..\Src\Repository.h"\\r
+       "..\..\Src\Tombo.h"\\r
+       "..\..\Src\TomboURI.h"\\r
+       "..\..\Src\URIScanner.h"\\r
+       \r
+NODEP_CPP_URISC=\\r
+       "..\..\Src\Logger.h"\\r
+       "..\..\Src\TString.h"\\r
+       "..\..\Src\Uniconv.h"\\r
+       "..\..\Src\VarBuffer.h"\\r
+       \r
+\r
+!ELSEIF  "$(CFG)" == "Tombo - Win32 (WCE SH3) Debug"\r
+\r
+DEP_CPP_URISC=\\r
+       "..\..\Src\Repository.h"\\r
+       "..\..\Src\Tombo.h"\\r
+       "..\..\Src\TomboURI.h"\\r
+       "..\..\Src\URIScanner.h"\\r
+       \r
+NODEP_CPP_URISC=\\r
+       "..\..\Src\Logger.h"\\r
+       "..\..\Src\TString.h"\\r
+       "..\..\Src\Uniconv.h"\\r
+       "..\..\Src\VarBuffer.h"\\r
+       \r
+\r
+!ELSEIF  "$(CFG)" == "Tombo - Win32 (WCE ARM) Release"\r
+\r
+DEP_CPP_URISC=\\r
+       "..\..\Src\Repository.h"\\r
+       "..\..\Src\Tombo.h"\\r
+       "..\..\Src\TomboURI.h"\\r
+       "..\..\Src\URIScanner.h"\\r
+       \r
+NODEP_CPP_URISC=\\r
+       "..\..\Src\Logger.h"\\r
+       "..\..\Src\TString.h"\\r
+       "..\..\Src\Uniconv.h"\\r
+       "..\..\Src\VarBuffer.h"\\r
+       \r
+\r
+!ELSEIF  "$(CFG)" == "Tombo - Win32 (WCE ARM) Debug"\r
+\r
+DEP_CPP_URISC=\\r
+       "..\..\Src\Repository.h"\\r
+       "..\..\Src\Tombo.h"\\r
+       "..\..\Src\TomboURI.h"\\r
+       "..\..\Src\URIScanner.h"\\r
+       \r
+NODEP_CPP_URISC=\\r
+       "..\..\Src\Logger.h"\\r
+       "..\..\Src\TString.h"\\r
+       "..\..\Src\Uniconv.h"\\r
+       "..\..\Src\VarBuffer.h"\\r
+       \r
+\r
+!ENDIF \r
+\r
+# End Source File\r
+# Begin Source File\r
+\r
+SOURCE=..\..\Src\regex\util.c\r
+\r
+!IF  "$(CFG)" == "Tombo - Win32 (WCE MIPS) Release"\r
+\r
+DEP_CPP_UTIL_=\\r
+       "..\..\oniguruma\oniguruma.h"\\r
+       \r
+\r
+!ELSEIF  "$(CFG)" == "Tombo - Win32 (WCE MIPS) Debug"\r
+\r
+DEP_CPP_UTIL_=\\r
+       "..\..\Src\regex\regex.h"\\r
+       \r
+\r
+!ELSEIF  "$(CFG)" == "Tombo - Win32 (WCE SH4) Release"\r
+\r
+DEP_CPP_UTIL_=\\r
+       "..\..\Src\regex\regex.h"\\r
+       \r
+\r
+!ELSEIF  "$(CFG)" == "Tombo - Win32 (WCE SH4) Debug"\r
+\r
+DEP_CPP_UTIL_=\\r
+       "..\..\Src\regex\regex.h"\\r
+       \r
+\r
+!ELSEIF  "$(CFG)" == "Tombo - Win32 (WCE SH3) Release"\r
+\r
+DEP_CPP_UTIL_=\\r
+       "..\..\Src\regex\regex.h"\\r
+       \r
+\r
+!ELSEIF  "$(CFG)" == "Tombo - Win32 (WCE SH3) Debug"\r
+\r
+DEP_CPP_UTIL_=\\r
+       "..\..\Src\regex\regex.h"\\r
+       \r
+\r
+!ELSEIF  "$(CFG)" == "Tombo - Win32 (WCE ARM) Release"\r
+\r
+DEP_CPP_UTIL_=\\r
+       "..\..\Src\regex\regex.h"\\r
+       \r
+\r
+!ELSEIF  "$(CFG)" == "Tombo - Win32 (WCE ARM) Debug"\r
+\r
+DEP_CPP_UTIL_=\\r
+       "..\..\Src\regex\regex.h"\\r
+       \r
+\r
+!ENDIF \r
+\r
+# End Source File\r
+# Begin Source File\r
+\r
+SOURCE=..\..\Src\TomboLib\VarBuffer.cpp\r
+\r
+!IF  "$(CFG)" == "Tombo - Win32 (WCE MIPS) Release"\r
+\r
+DEP_CPP_VARBU=\\r
+       "..\..\Src\TomboLib\VarBuffer.h"\\r
+       \r
+\r
+!ELSEIF  "$(CFG)" == "Tombo - Win32 (WCE MIPS) Debug"\r
+\r
+DEP_CPP_VARBU=\\r
+       "..\..\Src\TomboLib\VarBuffer.h"\\r
+       \r
+\r
+!ELSEIF  "$(CFG)" == "Tombo - Win32 (WCE SH4) Release"\r
+\r
+DEP_CPP_VARBU=\\r
+       "..\..\Src\TomboLib\VarBuffer.h"\\r
+       \r
+\r
+!ELSEIF  "$(CFG)" == "Tombo - Win32 (WCE SH4) Debug"\r
+\r
+DEP_CPP_VARBU=\\r
+       "..\..\Src\TomboLib\VarBuffer.h"\\r
+       \r
+\r
+!ELSEIF  "$(CFG)" == "Tombo - Win32 (WCE SH3) Release"\r
+\r
+DEP_CPP_VARBU=\\r
+       "..\..\Src\TomboLib\VarBuffer.h"\\r
+       \r
+\r
+!ELSEIF  "$(CFG)" == "Tombo - Win32 (WCE SH3) Debug"\r
+\r
+DEP_CPP_VARBU=\\r
+       "..\..\Src\TomboLib\VarBuffer.h"\\r
+       \r
+\r
+!ELSEIF  "$(CFG)" == "Tombo - Win32 (WCE ARM) Release"\r
+\r
+DEP_CPP_VARBU=\\r
+       "..\..\Src\TomboLib\VarBuffer.h"\\r
+       \r
+\r
+!ELSEIF  "$(CFG)" == "Tombo - Win32 (WCE ARM) Debug"\r
+\r
+DEP_CPP_VARBU=\\r
+       "..\..\Src\TomboLib\VarBuffer.h"\\r
+       \r
+\r
+!ENDIF \r
+\r
+# End Source File\r
+# Begin Source File\r
+\r
+SOURCE=..\..\Src\VFManager.cpp\r
+\r
+!IF  "$(CFG)" == "Tombo - Win32 (WCE MIPS) Release"\r
+\r
+DEP_CPP_VFMAN=\\r
+       "..\..\Src\Message.h"\\r
+       "..\..\Src\MsgRes\MsgDef.h"\\r
+       "..\..\Src\PasswordManager.h"\\r
+       "..\..\Src\Tombo.h"\\r
+       "..\..\Src\TomboLib\File.h"\\r
+       "..\..\Src\TomboLib\Logger.h"\\r
+       "..\..\Src\TomboLib\TString.h"\\r
+       "..\..\Src\TomboLib\Uniconv.h"\\r
+       "..\..\Src\TomboLib\VarBuffer.h"\\r
+       "..\..\Src\TSParser.h"\\r
+       "..\..\Src\VFManager.h"\\r
+       "..\..\Src\VFStream.h"\\r
+       \r
+\r
+!ELSEIF  "$(CFG)" == "Tombo - Win32 (WCE MIPS) Debug"\r
+\r
+DEP_CPP_VFMAN=\\r
+       "..\..\Src\Message.h"\\r
+       "..\..\Src\PasswordManager.h"\\r
+       "..\..\Src\Tombo.h"\\r
+       "..\..\Src\TSParser.h"\\r
+       "..\..\Src\VFManager.h"\\r
+       "..\..\Src\VFStream.h"\\r
+       \r
+NODEP_CPP_VFMAN=\\r
+       "..\..\Src\File.h"\\r
+       "..\..\Src\Logger.h"\\r
+       "..\..\Src\TString.h"\\r
+       "..\..\Src\Uniconv.h"\\r
+       "..\..\Src\VarBuffer.h"\\r
+       \r
+\r
+!ELSEIF  "$(CFG)" == "Tombo - Win32 (WCE SH4) Release"\r
+\r
+DEP_CPP_VFMAN=\\r
+       "..\..\Src\Message.h"\\r
+       "..\..\Src\PasswordManager.h"\\r
+       "..\..\Src\Tombo.h"\\r
+       "..\..\Src\TSParser.h"\\r
+       "..\..\Src\VFManager.h"\\r
+       "..\..\Src\VFStream.h"\\r
+       \r
+NODEP_CPP_VFMAN=\\r
+       "..\..\Src\File.h"\\r
+       "..\..\Src\Logger.h"\\r
+       "..\..\Src\TString.h"\\r
+       "..\..\Src\Uniconv.h"\\r
+       "..\..\Src\VarBuffer.h"\\r
+       \r
+\r
+!ELSEIF  "$(CFG)" == "Tombo - Win32 (WCE SH4) Debug"\r
+\r
+DEP_CPP_VFMAN=\\r
+       "..\..\Src\Message.h"\\r
+       "..\..\Src\PasswordManager.h"\\r
+       "..\..\Src\Tombo.h"\\r
+       "..\..\Src\TSParser.h"\\r
+       "..\..\Src\VFManager.h"\\r
+       "..\..\Src\VFStream.h"\\r
+       \r
+NODEP_CPP_VFMAN=\\r
+       "..\..\Src\File.h"\\r
+       "..\..\Src\Logger.h"\\r
+       "..\..\Src\TString.h"\\r
+       "..\..\Src\Uniconv.h"\\r
+       "..\..\Src\VarBuffer.h"\\r
+       \r
+\r
+!ELSEIF  "$(CFG)" == "Tombo - Win32 (WCE SH3) Release"\r
+\r
+DEP_CPP_VFMAN=\\r
+       "..\..\Src\Message.h"\\r
+       "..\..\Src\PasswordManager.h"\\r
+       "..\..\Src\Tombo.h"\\r
+       "..\..\Src\TSParser.h"\\r
+       "..\..\Src\VFManager.h"\\r
+       "..\..\Src\VFStream.h"\\r
+       \r
+NODEP_CPP_VFMAN=\\r
+       "..\..\Src\File.h"\\r
+       "..\..\Src\Logger.h"\\r
+       "..\..\Src\TString.h"\\r
+       "..\..\Src\Uniconv.h"\\r
+       "..\..\Src\VarBuffer.h"\\r
+       \r
+\r
+!ELSEIF  "$(CFG)" == "Tombo - Win32 (WCE SH3) Debug"\r
+\r
+DEP_CPP_VFMAN=\\r
+       "..\..\Src\Message.h"\\r
+       "..\..\Src\PasswordManager.h"\\r
+       "..\..\Src\Tombo.h"\\r
+       "..\..\Src\TSParser.h"\\r
+       "..\..\Src\VFManager.h"\\r
+       "..\..\Src\VFStream.h"\\r
+       \r
+NODEP_CPP_VFMAN=\\r
+       "..\..\Src\File.h"\\r
+       "..\..\Src\Logger.h"\\r
+       "..\..\Src\TString.h"\\r
+       "..\..\Src\Uniconv.h"\\r
+       "..\..\Src\VarBuffer.h"\\r
+       \r
+\r
+!ELSEIF  "$(CFG)" == "Tombo - Win32 (WCE ARM) Release"\r
+\r
+DEP_CPP_VFMAN=\\r
+       "..\..\Src\Message.h"\\r
+       "..\..\Src\PasswordManager.h"\\r
+       "..\..\Src\Tombo.h"\\r
+       "..\..\Src\TSParser.h"\\r
+       "..\..\Src\VFManager.h"\\r
+       "..\..\Src\VFStream.h"\\r
+       \r
+NODEP_CPP_VFMAN=\\r
+       "..\..\Src\File.h"\\r
+       "..\..\Src\Logger.h"\\r
+       "..\..\Src\TString.h"\\r
+       "..\..\Src\Uniconv.h"\\r
+       "..\..\Src\VarBuffer.h"\\r
+       \r
+\r
+!ELSEIF  "$(CFG)" == "Tombo - Win32 (WCE ARM) Debug"\r
+\r
+DEP_CPP_VFMAN=\\r
+       "..\..\Src\Message.h"\\r
+       "..\..\Src\PasswordManager.h"\\r
+       "..\..\Src\Tombo.h"\\r
+       "..\..\Src\TSParser.h"\\r
+       "..\..\Src\VFManager.h"\\r
+       "..\..\Src\VFStream.h"\\r
+       \r
+NODEP_CPP_VFMAN=\\r
+       "..\..\Src\File.h"\\r
+       "..\..\Src\Logger.h"\\r
+       "..\..\Src\TString.h"\\r
+       "..\..\Src\Uniconv.h"\\r
+       "..\..\Src\VarBuffer.h"\\r
+       \r
+\r
+!ENDIF \r
+\r
+# End Source File\r
+# Begin Source File\r
+\r
+SOURCE=..\..\Src\VFStream.cpp\r
+\r
+!IF  "$(CFG)" == "Tombo - Win32 (WCE MIPS) Release"\r
+\r
+DEP_CPP_VFSTR=\\r
+       "..\..\Src\FilterAddDlg.h"\\r
+       "..\..\Src\MemoSelectView.h"\\r
+       "..\..\Src\Message.h"\\r
+       "..\..\Src\MsgRes\MsgDef.h"\\r
+       "..\..\Src\Property.h"\\r
+       "..\..\Src\Repository.h"\\r
+       "..\..\Src\SearchEngine.h"\\r
+       "..\..\Src\Tombo.h"\\r
+       "..\..\Src\TomboLib\AutoPtr.h"\\r
+       "..\..\Src\TomboLib\DialogTemplate.h"\\r
+       "..\..\Src\TomboLib\DirectoryScanner.h"\\r
+       "..\..\Src\TomboLib\File.h"\\r
+       "..\..\Src\TomboLib\Logger.h"\\r
+       "..\..\Src\TomboLib\TString.h"\\r
+       "..\..\Src\TomboLib\Uniconv.h"\\r
+       "..\..\Src\TomboLib\VarBuffer.h"\\r
+       "..\..\Src\TomboURI.h"\\r
+       "..\..\Src\URIScanner.h"\\r
+       "..\..\Src\VFStream.h"\\r
+       \r
+\r
+!ELSEIF  "$(CFG)" == "Tombo - Win32 (WCE MIPS) Debug"\r
+\r
+DEP_CPP_VFSTR=\\r
+       "..\..\Src\FilterAddDlg.h"\\r
+       "..\..\Src\MemoManager.h"\\r
+       "..\..\Src\MemoNote.h"\\r
+       "..\..\Src\MemoSelectView.h"\\r
+       "..\..\Src\Message.h"\\r
+       "..\..\Src\Property.h"\\r
+       "..\..\Src\SearchEngine.h"\\r
+       "..\..\Src\Tombo.h"\\r
+       "..\..\Src\TreeViewItem.h"\\r
+       "..\..\Src\VFStream.h"\\r
+       \r
+NODEP_CPP_VFSTR=\\r
+       "..\..\Src\DialogTemplate.h"\\r
+       "..\..\Src\DirectoryScanner.h"\\r
+       "..\..\Src\File.h"\\r
+       "..\..\Src\Logger.h"\\r
+       "..\..\Src\TString.h"\\r
+       "..\..\Src\Uniconv.h"\\r
+       "..\..\Src\VarBuffer.h"\\r
+       \r
+\r
+!ELSEIF  "$(CFG)" == "Tombo - Win32 (WCE SH4) Release"\r
+\r
+DEP_CPP_VFSTR=\\r
+       "..\..\Src\MemoNote.h"\\r
+       "..\..\Src\MemoSelectView.h"\\r
+       "..\..\Src\Property.h"\\r
+       "..\..\Src\Tombo.h"\\r
+       "..\..\Src\TreeViewItem.h"\\r
+       "..\..\Src\VFStream.h"\\r
+       \r
+NODEP_CPP_VFSTR=\\r
+       "..\..\Src\DirectoryScanner.h"\\r
+       "..\..\Src\File.h"\\r
+       "..\..\Src\Logger.h"\\r
+       "..\..\Src\Uniconv.h"\\r
+       \r
+\r
+!ELSEIF  "$(CFG)" == "Tombo - Win32 (WCE SH4) Debug"\r
+\r
+DEP_CPP_VFSTR=\\r
+       "..\..\Src\MemoNote.h"\\r
+       "..\..\Src\MemoSelectView.h"\\r
+       "..\..\Src\Property.h"\\r
+       "..\..\Src\Tombo.h"\\r
+       "..\..\Src\TreeViewItem.h"\\r
+       "..\..\Src\VFStream.h"\\r
+       \r
+NODEP_CPP_VFSTR=\\r
+       "..\..\Src\DirectoryScanner.h"\\r
+       "..\..\Src\File.h"\\r
+       "..\..\Src\Logger.h"\\r
+       "..\..\Src\Uniconv.h"\\r
+       \r
+\r
+!ELSEIF  "$(CFG)" == "Tombo - Win32 (WCE SH3) Release"\r
+\r
+DEP_CPP_VFSTR=\\r
+       "..\..\Src\MemoNote.h"\\r
+       "..\..\Src\MemoSelectView.h"\\r
+       "..\..\Src\Property.h"\\r
+       "..\..\Src\Tombo.h"\\r
+       "..\..\Src\TreeViewItem.h"\\r
+       "..\..\Src\VFStream.h"\\r
+       \r
+NODEP_CPP_VFSTR=\\r
+       "..\..\Src\DirectoryScanner.h"\\r
+       "..\..\Src\File.h"\\r
+       "..\..\Src\Logger.h"\\r
+       "..\..\Src\Uniconv.h"\\r
+       \r
+\r
+!ELSEIF  "$(CFG)" == "Tombo - Win32 (WCE SH3) Debug"\r
+\r
+DEP_CPP_VFSTR=\\r
+       "..\..\Src\MemoNote.h"\\r
+       "..\..\Src\MemoSelectView.h"\\r
+       "..\..\Src\Property.h"\\r
+       "..\..\Src\Tombo.h"\\r
+       "..\..\Src\TreeViewItem.h"\\r
+       "..\..\Src\VFStream.h"\\r
+       \r
+NODEP_CPP_VFSTR=\\r
+       "..\..\Src\DirectoryScanner.h"\\r
+       "..\..\Src\File.h"\\r
+       "..\..\Src\Logger.h"\\r
+       "..\..\Src\Uniconv.h"\\r
+       \r
+\r
+!ELSEIF  "$(CFG)" == "Tombo - Win32 (WCE ARM) Release"\r
+\r
+DEP_CPP_VFSTR=\\r
+       "..\..\Src\MemoNote.h"\\r
+       "..\..\Src\MemoSelectView.h"\\r
+       "..\..\Src\Property.h"\\r
+       "..\..\Src\Tombo.h"\\r
+       "..\..\Src\TreeViewItem.h"\\r
+       "..\..\Src\VFStream.h"\\r
+       \r
+NODEP_CPP_VFSTR=\\r
+       "..\..\Src\DirectoryScanner.h"\\r
+       "..\..\Src\File.h"\\r
+       "..\..\Src\Logger.h"\\r
+       "..\..\Src\Uniconv.h"\\r
+       \r
+\r
+!ELSEIF  "$(CFG)" == "Tombo - Win32 (WCE ARM) Debug"\r
+\r
+DEP_CPP_VFSTR=\\r
+       "..\..\Src\MemoNote.h"\\r
+       "..\..\Src\MemoSelectView.h"\\r
+       "..\..\Src\Property.h"\\r
+       "..\..\Src\Tombo.h"\\r
+       "..\..\Src\TreeViewItem.h"\\r
+       "..\..\Src\VFStream.h"\\r
+       \r
+NODEP_CPP_VFSTR=\\r
+       "..\..\Src\DirectoryScanner.h"\\r
+       "..\..\Src\File.h"\\r
+       "..\..\Src\Logger.h"\\r
+       "..\..\Src\Uniconv.h"\\r
+       \r
+\r
+!ENDIF \r
+\r
+# End Source File\r
+# Begin Source File\r
+\r
+SOURCE=..\..\Src\YAEdit\YAEdit.cpp\r
+\r
+!IF  "$(CFG)" == "Tombo - Win32 (WCE MIPS) Release"\r
+\r
+DEP_CPP_YAEDI=\\r
+       "..\..\Src\TomboLib\Clipboard.h"\\r
+       "..\..\Src\TomboLib\File.h"\\r
+       "..\..\Src\TomboLib\Logger.h"\\r
+       "..\..\Src\TomboLib\TString.h"\\r
+       "..\..\Src\TomboLib\Uniconv.h"\\r
+       "..\..\Src\TomboLib\VarBuffer.h"\\r
+       "..\..\Src\YAEdit\FontWidthCache.h"\\r
+       "..\..\Src\YAEdit\LineManager.h"\\r
+       "..\..\Src\YAEdit\LineWrapper.h"\\r
+       "..\..\Src\YAEdit\LineWrapperImpl.h"\\r
+       "..\..\Src\YAEdit\Region.h"\\r
+       "..\..\Src\YAEdit\YAEdit.h"\\r
+       "..\..\Src\YAEdit\YAEditDoc.h"\\r
+       "..\..\Src\YAEdit\YAEditView.h"\\r
+       \r
+\r
+!ELSEIF  "$(CFG)" == "Tombo - Win32 (WCE MIPS) Debug"\r
+\r
+DEP_CPP_YAEDI=\\r
+       "..\..\Src\YAEdit\FontWidthCache.h"\\r
+       "..\..\Src\YAEdit\LineManager.h"\\r
+       "..\..\Src\YAEdit\LineWrapper.h"\\r
+       "..\..\Src\YAEdit\LineWrapperImpl.h"\\r
+       "..\..\Src\YAEdit\Region.h"\\r
+       "..\..\Src\YAEdit\YAEdit.h"\\r
+       "..\..\Src\YAEdit\YAEditDoc.h"\\r
+       "..\..\Src\YAEdit\YAEditView.h"\\r
+       \r
+NODEP_CPP_YAEDI=\\r
+       "..\..\Src\YAEdit\Logger.h"\\r
+       "..\..\Src\YAEdit\TomboLib\Clipboard.h"\\r
+       "..\..\Src\YAEdit\TomboLib\Uniconv.h"\\r
+       "..\..\Src\YAEdit\TString.h"\\r
+       "..\..\Src\YAEdit\VarBuffer.h"\\r
+       \r
+\r
+!ELSEIF  "$(CFG)" == "Tombo - Win32 (WCE SH4) Release"\r
+\r
+DEP_CPP_YAEDI=\\r
+       "..\..\Src\YAEdit\FontWidthCache.h"\\r
+       "..\..\Src\YAEdit\LineManager.h"\\r
+       "..\..\Src\YAEdit\LineWrapper.h"\\r
+       "..\..\Src\YAEdit\LineWrapperImpl.h"\\r
+       "..\..\Src\YAEdit\Region.h"\\r
+       "..\..\Src\YAEdit\YAEdit.h"\\r
+       "..\..\Src\YAEdit\YAEditDoc.h"\\r
+       "..\..\Src\YAEdit\YAEditView.h"\\r
+       \r
+NODEP_CPP_YAEDI=\\r
+       "..\..\Src\YAEdit\Logger.h"\\r
+       "..\..\Src\YAEdit\resource.h"\\r
+       "..\..\Src\YAEdit\TomboLib\Clipboard.h"\\r
+       "..\..\Src\YAEdit\TomboLib\Uniconv.h"\\r
+       "..\..\Src\YAEdit\TString.h"\\r
+       "..\..\Src\YAEdit\VarBuffer.h"\\r
+       \r
+\r
+!ELSEIF  "$(CFG)" == "Tombo - Win32 (WCE SH4) Debug"\r
+\r
+DEP_CPP_YAEDI=\\r
+       "..\..\Src\YAEdit\FontWidthCache.h"\\r
+       "..\..\Src\YAEdit\LineManager.h"\\r
+       "..\..\Src\YAEdit\LineWrapper.h"\\r
+       "..\..\Src\YAEdit\LineWrapperImpl.h"\\r
+       "..\..\Src\YAEdit\Region.h"\\r
+       "..\..\Src\YAEdit\YAEdit.h"\\r
+       "..\..\Src\YAEdit\YAEditDoc.h"\\r
+       "..\..\Src\YAEdit\YAEditView.h"\\r
+       \r
+NODEP_CPP_YAEDI=\\r
+       "..\..\Src\YAEdit\Logger.h"\\r
+       "..\..\Src\YAEdit\resource.h"\\r
+       "..\..\Src\YAEdit\TomboLib\Clipboard.h"\\r
+       "..\..\Src\YAEdit\TomboLib\Uniconv.h"\\r
+       "..\..\Src\YAEdit\TString.h"\\r
+       "..\..\Src\YAEdit\VarBuffer.h"\\r
+       \r
+\r
+!ELSEIF  "$(CFG)" == "Tombo - Win32 (WCE SH3) Release"\r
+\r
+DEP_CPP_YAEDI=\\r
+       "..\..\Src\YAEdit\FontWidthCache.h"\\r
+       "..\..\Src\YAEdit\LineManager.h"\\r
+       "..\..\Src\YAEdit\LineWrapper.h"\\r
+       "..\..\Src\YAEdit\LineWrapperImpl.h"\\r
+       "..\..\Src\YAEdit\Region.h"\\r
+       "..\..\Src\YAEdit\YAEdit.h"\\r
+       "..\..\Src\YAEdit\YAEditDoc.h"\\r
+       "..\..\Src\YAEdit\YAEditView.h"\\r
+       \r
+NODEP_CPP_YAEDI=\\r
+       "..\..\Src\YAEdit\Logger.h"\\r
+       "..\..\Src\YAEdit\resource.h"\\r
+       "..\..\Src\YAEdit\TomboLib\Clipboard.h"\\r
+       "..\..\Src\YAEdit\TomboLib\Uniconv.h"\\r
+       "..\..\Src\YAEdit\TString.h"\\r
+       "..\..\Src\YAEdit\VarBuffer.h"\\r
+       \r
+\r
+!ELSEIF  "$(CFG)" == "Tombo - Win32 (WCE SH3) Debug"\r
+\r
+DEP_CPP_YAEDI=\\r
+       "..\..\Src\YAEdit\FontWidthCache.h"\\r
+       "..\..\Src\YAEdit\LineManager.h"\\r
+       "..\..\Src\YAEdit\LineWrapper.h"\\r
+       "..\..\Src\YAEdit\LineWrapperImpl.h"\\r
+       "..\..\Src\YAEdit\Region.h"\\r
+       "..\..\Src\YAEdit\YAEdit.h"\\r
+       "..\..\Src\YAEdit\YAEditDoc.h"\\r
+       "..\..\Src\YAEdit\YAEditView.h"\\r
+       \r
+NODEP_CPP_YAEDI=\\r
+       "..\..\Src\YAEdit\Logger.h"\\r
+       "..\..\Src\YAEdit\resource.h"\\r
+       "..\..\Src\YAEdit\TomboLib\Clipboard.h"\\r
+       "..\..\Src\YAEdit\TomboLib\Uniconv.h"\\r
+       "..\..\Src\YAEdit\TString.h"\\r
+       "..\..\Src\YAEdit\VarBuffer.h"\\r
+       \r
+\r
+!ELSEIF  "$(CFG)" == "Tombo - Win32 (WCE ARM) Release"\r
+\r
+DEP_CPP_YAEDI=\\r
+       "..\..\Src\YAEdit\FontWidthCache.h"\\r
+       "..\..\Src\YAEdit\LineManager.h"\\r
+       "..\..\Src\YAEdit\LineWrapper.h"\\r
+       "..\..\Src\YAEdit\LineWrapperImpl.h"\\r
+       "..\..\Src\YAEdit\Region.h"\\r
+       "..\..\Src\YAEdit\YAEdit.h"\\r
+       "..\..\Src\YAEdit\YAEditDoc.h"\\r
+       "..\..\Src\YAEdit\YAEditView.h"\\r
+       \r
+NODEP_CPP_YAEDI=\\r
+       "..\..\Src\YAEdit\Logger.h"\\r
+       "..\..\Src\YAEdit\resource.h"\\r
+       "..\..\Src\YAEdit\TomboLib\Clipboard.h"\\r
+       "..\..\Src\YAEdit\TomboLib\Uniconv.h"\\r
+       "..\..\Src\YAEdit\TString.h"\\r
+       "..\..\Src\YAEdit\VarBuffer.h"\\r
+       \r
+\r
+!ELSEIF  "$(CFG)" == "Tombo - Win32 (WCE ARM) Debug"\r
+\r
+DEP_CPP_YAEDI=\\r
+       "..\..\Src\YAEdit\FontWidthCache.h"\\r
+       "..\..\Src\YAEdit\LineManager.h"\\r
+       "..\..\Src\YAEdit\LineWrapper.h"\\r
+       "..\..\Src\YAEdit\LineWrapperImpl.h"\\r
+       "..\..\Src\YAEdit\Region.h"\\r
+       "..\..\Src\YAEdit\YAEdit.h"\\r
+       "..\..\Src\YAEdit\YAEditDoc.h"\\r
+       "..\..\Src\YAEdit\YAEditView.h"\\r
+       \r
+NODEP_CPP_YAEDI=\\r
+       "..\..\Src\YAEdit\Logger.h"\\r
+       "..\..\Src\YAEdit\resource.h"\\r
+       "..\..\Src\YAEdit\TomboLib\Clipboard.h"\\r
+       "..\..\Src\YAEdit\TomboLib\Uniconv.h"\\r
+       "..\..\Src\YAEdit\TString.h"\\r
+       "..\..\Src\YAEdit\VarBuffer.h"\\r
+       \r
+\r
+!ENDIF \r
+\r
+# End Source File\r
+# Begin Source File\r
+\r
+SOURCE=..\..\Src\YAEdit\YAEditDoc.cpp\r
+\r
+!IF  "$(CFG)" == "Tombo - Win32 (WCE MIPS) Release"\r
+\r
+DEP_CPP_YAEDIT=\\r
+       "..\..\Src\TomboLib\Uniconv.h"\\r
+       "..\..\Src\TomboLib\VarBuffer.h"\\r
+       "..\..\Src\YAEdit\LineManager.h"\\r
+       "..\..\Src\YAEdit\LineWrapper.h"\\r
+       "..\..\Src\YAEdit\LineWrapperImpl.h"\\r
+       "..\..\Src\YAEdit\MemManager.h"\\r
+       "..\..\Src\YAEdit\PhysicalLineManager.h"\\r
+       "..\..\Src\YAEdit\Region.h"\\r
+       "..\..\Src\YAEdit\StringSplitter.h"\\r
+       "..\..\Src\YAEdit\YAEdit.h"\\r
+       "..\..\Src\YAEdit\YAEditDoc.h"\\r
+       \r
+\r
+!ELSEIF  "$(CFG)" == "Tombo - Win32 (WCE MIPS) Debug"\r
+\r
+DEP_CPP_YAEDIT=\\r
+       "..\..\Src\YAEdit\LineManager.h"\\r
+       "..\..\Src\YAEdit\LineWrapper.h"\\r
+       "..\..\Src\YAEdit\LineWrapperImpl.h"\\r
+       "..\..\Src\YAEdit\MemManager.h"\\r
+       "..\..\Src\YAEdit\PhysicalLineManager.h"\\r
+       "..\..\Src\YAEdit\Region.h"\\r
+       "..\..\Src\YAEdit\StringSplitter.h"\\r
+       "..\..\Src\YAEdit\YAEdit.h"\\r
+       "..\..\Src\YAEdit\YAEditDoc.h"\\r
+       \r
+NODEP_CPP_YAEDIT=\\r
+       "..\..\Src\YAEdit\TomboLib\Uniconv.h"\\r
+       "..\..\Src\YAEdit\VarBuffer.h"\\r
+       \r
+\r
+!ELSEIF  "$(CFG)" == "Tombo - Win32 (WCE SH4) Release"\r
+\r
+DEP_CPP_YAEDIT=\\r
+       "..\..\Src\YAEdit\LineManager.h"\\r
+       "..\..\Src\YAEdit\LineWrapper.h"\\r
+       "..\..\Src\YAEdit\LineWrapperImpl.h"\\r
+       "..\..\Src\YAEdit\MemManager.h"\\r
+       "..\..\Src\YAEdit\PhysicalLineManager.h"\\r
+       "..\..\Src\YAEdit\Region.h"\\r
+       "..\..\Src\YAEdit\StringSplitter.h"\\r
+       "..\..\Src\YAEdit\YAEdit.h"\\r
+       "..\..\Src\YAEdit\YAEditDoc.h"\\r
+       \r
+NODEP_CPP_YAEDIT=\\r
+       "..\..\Src\YAEdit\TomboLib\Uniconv.h"\\r
+       "..\..\Src\YAEdit\VarBuffer.h"\\r
+       \r
+\r
+!ELSEIF  "$(CFG)" == "Tombo - Win32 (WCE SH4) Debug"\r
+\r
+DEP_CPP_YAEDIT=\\r
+       "..\..\Src\YAEdit\LineManager.h"\\r
+       "..\..\Src\YAEdit\LineWrapper.h"\\r
+       "..\..\Src\YAEdit\LineWrapperImpl.h"\\r
+       "..\..\Src\YAEdit\MemManager.h"\\r
+       "..\..\Src\YAEdit\PhysicalLineManager.h"\\r
+       "..\..\Src\YAEdit\Region.h"\\r
+       "..\..\Src\YAEdit\StringSplitter.h"\\r
+       "..\..\Src\YAEdit\YAEdit.h"\\r
+       "..\..\Src\YAEdit\YAEditDoc.h"\\r
+       \r
+NODEP_CPP_YAEDIT=\\r
+       "..\..\Src\YAEdit\TomboLib\Uniconv.h"\\r
+       "..\..\Src\YAEdit\VarBuffer.h"\\r
+       \r
+\r
+!ELSEIF  "$(CFG)" == "Tombo - Win32 (WCE SH3) Release"\r
+\r
+DEP_CPP_YAEDIT=\\r
+       "..\..\Src\YAEdit\LineManager.h"\\r
+       "..\..\Src\YAEdit\LineWrapper.h"\\r
+       "..\..\Src\YAEdit\LineWrapperImpl.h"\\r
+       "..\..\Src\YAEdit\MemManager.h"\\r
+       "..\..\Src\YAEdit\PhysicalLineManager.h"\\r
+       "..\..\Src\YAEdit\Region.h"\\r
+       "..\..\Src\YAEdit\StringSplitter.h"\\r
+       "..\..\Src\YAEdit\YAEdit.h"\\r
+       "..\..\Src\YAEdit\YAEditDoc.h"\\r
+       \r
+NODEP_CPP_YAEDIT=\\r
+       "..\..\Src\YAEdit\TomboLib\Uniconv.h"\\r
+       "..\..\Src\YAEdit\VarBuffer.h"\\r
+       \r
+\r
+!ELSEIF  "$(CFG)" == "Tombo - Win32 (WCE SH3) Debug"\r
+\r
+DEP_CPP_YAEDIT=\\r
+       "..\..\Src\YAEdit\LineManager.h"\\r
+       "..\..\Src\YAEdit\LineWrapper.h"\\r
+       "..\..\Src\YAEdit\LineWrapperImpl.h"\\r
+       "..\..\Src\YAEdit\MemManager.h"\\r
+       "..\..\Src\YAEdit\PhysicalLineManager.h"\\r
+       "..\..\Src\YAEdit\Region.h"\\r
+       "..\..\Src\YAEdit\StringSplitter.h"\\r
+       "..\..\Src\YAEdit\YAEdit.h"\\r
+       "..\..\Src\YAEdit\YAEditDoc.h"\\r
+       \r
+NODEP_CPP_YAEDIT=\\r
+       "..\..\Src\YAEdit\TomboLib\Uniconv.h"\\r
+       "..\..\Src\YAEdit\VarBuffer.h"\\r
+       \r
+\r
+!ELSEIF  "$(CFG)" == "Tombo - Win32 (WCE ARM) Release"\r
+\r
+DEP_CPP_YAEDIT=\\r
+       "..\..\Src\YAEdit\LineManager.h"\\r
+       "..\..\Src\YAEdit\LineWrapper.h"\\r
+       "..\..\Src\YAEdit\LineWrapperImpl.h"\\r
+       "..\..\Src\YAEdit\MemManager.h"\\r
+       "..\..\Src\YAEdit\PhysicalLineManager.h"\\r
+       "..\..\Src\YAEdit\Region.h"\\r
+       "..\..\Src\YAEdit\StringSplitter.h"\\r
+       "..\..\Src\YAEdit\YAEdit.h"\\r
+       "..\..\Src\YAEdit\YAEditDoc.h"\\r
+       \r
+NODEP_CPP_YAEDIT=\\r
+       "..\..\Src\YAEdit\TomboLib\Uniconv.h"\\r
+       "..\..\Src\YAEdit\VarBuffer.h"\\r
+       \r
+\r
+!ELSEIF  "$(CFG)" == "Tombo - Win32 (WCE ARM) Debug"\r
+\r
+DEP_CPP_YAEDIT=\\r
+       "..\..\Src\YAEdit\LineManager.h"\\r
+       "..\..\Src\YAEdit\LineWrapper.h"\\r
+       "..\..\Src\YAEdit\LineWrapperImpl.h"\\r
+       "..\..\Src\YAEdit\MemManager.h"\\r
+       "..\..\Src\YAEdit\PhysicalLineManager.h"\\r
+       "..\..\Src\YAEdit\Region.h"\\r
+       "..\..\Src\YAEdit\StringSplitter.h"\\r
+       "..\..\Src\YAEdit\YAEdit.h"\\r
+       "..\..\Src\YAEdit\YAEditDoc.h"\\r
+       \r
+NODEP_CPP_YAEDIT=\\r
+       "..\..\Src\YAEdit\TomboLib\Uniconv.h"\\r
+       "..\..\Src\YAEdit\VarBuffer.h"\\r
+       \r
+\r
+!ENDIF \r
+\r
+# End Source File\r
+# Begin Source File\r
+\r
+SOURCE=..\..\Src\YAEditor.cpp\r
+\r
+!IF  "$(CFG)" == "Tombo - Win32 (WCE MIPS) Release"\r
+\r
+DEP_CPP_YAEDITO=\\r
+       "..\..\Src\HPCPlatform.h"\\r
+       "..\..\Src\LagendaPlatform.h"\\r
+       "..\..\Src\MainFrame.h"\\r
+       "..\..\Src\MemoDetailsView.h"\\r
+       "..\..\Src\MemoManager.h"\\r
+       "..\..\Src\MemoSelectView.h"\\r
+       "..\..\Src\Message.h"\\r
+       "..\..\Src\MsgRes\MsgDef.h"\\r
+       "..\..\Src\PasswordManager.h"\\r
+       "..\..\Src\PlatformLayer.h"\\r
+       "..\..\Src\PocketPCPlatform.h"\\r
+       "..\..\Src\Property.h"\\r
+       "..\..\Src\PsPCPlatform.h"\\r
+       "..\..\Src\Tombo.h"\\r
+       "..\..\Src\TomboLib\File.h"\\r
+       "..\..\Src\TomboLib\Logger.h"\\r
+       "..\..\Src\TomboLib\Uniconv.h"\\r
+       "..\..\Src\Win32Platform.h"\\r
+       "..\..\Src\YAEdit\Region.h"\\r
+       "..\..\Src\YAEdit\YAEdit.h"\\r
+       "..\..\Src\YAEdit\YAEditDoc.h"\\r
+       "..\..\Src\YAEdit\YAEditView.h"\\r
+       "..\..\Src\YAEditor.h"\\r
+       \r
+\r
+!ELSEIF  "$(CFG)" == "Tombo - Win32 (WCE MIPS) Debug"\r
+\r
+DEP_CPP_YAEDITO=\\r
+       "..\..\Src\HPCPlatform.h"\\r
+       "..\..\Src\LagendaPlatform.h"\\r
+       "..\..\Src\MainFrame.h"\\r
+       "..\..\Src\MemoDetailsView.h"\\r
+       "..\..\Src\MemoManager.h"\\r
+       "..\..\Src\MemoSelectView.h"\\r
+       "..\..\Src\Message.h"\\r
+       "..\..\Src\MsgRes\MsgDef.h"\\r
+       "..\..\Src\PasswordManager.h"\\r
+       "..\..\Src\PlatformLayer.h"\\r
+       "..\..\Src\PocketPCPlatform.h"\\r
+       "..\..\Src\Property.h"\\r
+       "..\..\Src\PsPCPlatform.h"\\r
+       "..\..\Src\Tombo.h"\\r
+       "..\..\Src\Win32Platform.h"\\r
+       "..\..\Src\YAEditor.h"\\r
+       \r
+NODEP_CPP_YAEDITO=\\r
+       "..\..\Src\Logger.h"\\r
+       "..\..\Src\Region.h"\\r
+       "..\..\Src\Uniconv.h"\\r
+       "..\..\Src\YAEdit.h"\\r
+       "..\..\Src\YAEditDoc.h"\\r
+       "..\..\Src\YAEditView.h"\\r
+       \r
+\r
+!ELSEIF  "$(CFG)" == "Tombo - Win32 (WCE SH4) Release"\r
+\r
+DEP_CPP_YAEDITO=\\r
+       "..\..\Src\HPCPlatform.h"\\r
+       "..\..\Src\LagendaPlatform.h"\\r
+       "..\..\Src\MainFrame.h"\\r
+       "..\..\Src\MemoDetailsView.h"\\r
+       "..\..\Src\MemoManager.h"\\r
+       "..\..\Src\MemoSelectView.h"\\r
+       "..\..\Src\Message.h"\\r
+       "..\..\Src\MsgRes\MsgDef.h"\\r
+       "..\..\Src\PasswordManager.h"\\r
+       "..\..\Src\PlatformLayer.h"\\r
+       "..\..\Src\PocketPCPlatform.h"\\r
+       "..\..\Src\Property.h"\\r
+       "..\..\Src\PsPCPlatform.h"\\r
+       "..\..\Src\Tombo.h"\\r
+       "..\..\Src\Win32Platform.h"\\r
+       "..\..\Src\YAEditor.h"\\r
+       \r
+NODEP_CPP_YAEDITO=\\r
+       "..\..\Src\Logger.h"\\r
+       "..\..\Src\Region.h"\\r
+       "..\..\Src\Uniconv.h"\\r
+       "..\..\Src\YAEdit.h"\\r
+       "..\..\Src\YAEditDoc.h"\\r
+       "..\..\Src\YAEditView.h"\\r
+       \r
+\r
+!ELSEIF  "$(CFG)" == "Tombo - Win32 (WCE SH4) Debug"\r
+\r
+DEP_CPP_YAEDITO=\\r
+       "..\..\Src\HPCPlatform.h"\\r
+       "..\..\Src\LagendaPlatform.h"\\r
+       "..\..\Src\MainFrame.h"\\r
+       "..\..\Src\MemoDetailsView.h"\\r
+       "..\..\Src\MemoManager.h"\\r
+       "..\..\Src\MemoSelectView.h"\\r
+       "..\..\Src\Message.h"\\r
+       "..\..\Src\MsgRes\MsgDef.h"\\r
+       "..\..\Src\PasswordManager.h"\\r
+       "..\..\Src\PlatformLayer.h"\\r
+       "..\..\Src\PocketPCPlatform.h"\\r
+       "..\..\Src\Property.h"\\r
+       "..\..\Src\PsPCPlatform.h"\\r
+       "..\..\Src\Tombo.h"\\r
+       "..\..\Src\Win32Platform.h"\\r
+       "..\..\Src\YAEditor.h"\\r
+       \r
+NODEP_CPP_YAEDITO=\\r
+       "..\..\Src\Logger.h"\\r
+       "..\..\Src\Region.h"\\r
+       "..\..\Src\Uniconv.h"\\r
+       "..\..\Src\YAEdit.h"\\r
+       "..\..\Src\YAEditDoc.h"\\r
+       "..\..\Src\YAEditView.h"\\r
+       \r
+\r
+!ELSEIF  "$(CFG)" == "Tombo - Win32 (WCE SH3) Release"\r
+\r
+DEP_CPP_YAEDITO=\\r
+       "..\..\Src\HPCPlatform.h"\\r
+       "..\..\Src\LagendaPlatform.h"\\r
+       "..\..\Src\MainFrame.h"\\r
+       "..\..\Src\MemoDetailsView.h"\\r
+       "..\..\Src\MemoManager.h"\\r
+       "..\..\Src\MemoSelectView.h"\\r
+       "..\..\Src\Message.h"\\r
+       "..\..\Src\MsgRes\MsgDef.h"\\r
+       "..\..\Src\PasswordManager.h"\\r
+       "..\..\Src\PlatformLayer.h"\\r
+       "..\..\Src\PocketPCPlatform.h"\\r
+       "..\..\Src\Property.h"\\r
+       "..\..\Src\PsPCPlatform.h"\\r
+       "..\..\Src\Tombo.h"\\r
+       "..\..\Src\Win32Platform.h"\\r
+       "..\..\Src\YAEditor.h"\\r
+       \r
+NODEP_CPP_YAEDITO=\\r
+       "..\..\Src\Logger.h"\\r
+       "..\..\Src\Region.h"\\r
+       "..\..\Src\Uniconv.h"\\r
+       "..\..\Src\YAEdit.h"\\r
+       "..\..\Src\YAEditDoc.h"\\r
+       "..\..\Src\YAEditView.h"\\r
+       \r
+\r
+!ELSEIF  "$(CFG)" == "Tombo - Win32 (WCE SH3) Debug"\r
+\r
+DEP_CPP_YAEDITO=\\r
+       "..\..\Src\HPCPlatform.h"\\r
+       "..\..\Src\LagendaPlatform.h"\\r
+       "..\..\Src\MainFrame.h"\\r
+       "..\..\Src\MemoDetailsView.h"\\r
+       "..\..\Src\MemoManager.h"\\r
+       "..\..\Src\MemoSelectView.h"\\r
+       "..\..\Src\Message.h"\\r
+       "..\..\Src\MsgRes\MsgDef.h"\\r
+       "..\..\Src\PasswordManager.h"\\r
+       "..\..\Src\PlatformLayer.h"\\r
+       "..\..\Src\PocketPCPlatform.h"\\r
+       "..\..\Src\Property.h"\\r
+       "..\..\Src\PsPCPlatform.h"\\r
+       "..\..\Src\Tombo.h"\\r
+       "..\..\Src\Win32Platform.h"\\r
+       "..\..\Src\YAEditor.h"\\r
+       \r
+NODEP_CPP_YAEDITO=\\r
+       "..\..\Src\Logger.h"\\r
+       "..\..\Src\Region.h"\\r
+       "..\..\Src\Uniconv.h"\\r
+       "..\..\Src\YAEdit.h"\\r
+       "..\..\Src\YAEditDoc.h"\\r
+       "..\..\Src\YAEditView.h"\\r
+       \r
+\r
+!ELSEIF  "$(CFG)" == "Tombo - Win32 (WCE ARM) Release"\r
+\r
+DEP_CPP_YAEDITO=\\r
+       "..\..\Src\HPCPlatform.h"\\r
+       "..\..\Src\LagendaPlatform.h"\\r
+       "..\..\Src\MainFrame.h"\\r
+       "..\..\Src\MemoDetailsView.h"\\r
+       "..\..\Src\MemoManager.h"\\r
+       "..\..\Src\MemoSelectView.h"\\r
+       "..\..\Src\Message.h"\\r
+       "..\..\Src\MsgRes\MsgDef.h"\\r
+       "..\..\Src\PasswordManager.h"\\r
+       "..\..\Src\PlatformLayer.h"\\r
+       "..\..\Src\PocketPCPlatform.h"\\r
+       "..\..\Src\Property.h"\\r
+       "..\..\Src\PsPCPlatform.h"\\r
+       "..\..\Src\Tombo.h"\\r
+       "..\..\Src\Win32Platform.h"\\r
+       "..\..\Src\YAEditor.h"\\r
+       \r
+NODEP_CPP_YAEDITO=\\r
+       "..\..\Src\Logger.h"\\r
+       "..\..\Src\Region.h"\\r
+       "..\..\Src\Uniconv.h"\\r
+       "..\..\Src\YAEdit.h"\\r
+       "..\..\Src\YAEditDoc.h"\\r
+       "..\..\Src\YAEditView.h"\\r
+       \r
+\r
+!ELSEIF  "$(CFG)" == "Tombo - Win32 (WCE ARM) Debug"\r
+\r
+DEP_CPP_YAEDITO=\\r
+       "..\..\Src\HPCPlatform.h"\\r
+       "..\..\Src\LagendaPlatform.h"\\r
+       "..\..\Src\MainFrame.h"\\r
+       "..\..\Src\MemoDetailsView.h"\\r
+       "..\..\Src\MemoManager.h"\\r
+       "..\..\Src\MemoSelectView.h"\\r
+       "..\..\Src\Message.h"\\r
+       "..\..\Src\MsgRes\MsgDef.h"\\r
+       "..\..\Src\PasswordManager.h"\\r
+       "..\..\Src\PlatformLayer.h"\\r
+       "..\..\Src\PocketPCPlatform.h"\\r
+       "..\..\Src\Property.h"\\r
+       "..\..\Src\PsPCPlatform.h"\\r
+       "..\..\Src\Tombo.h"\\r
+       "..\..\Src\Win32Platform.h"\\r
+       "..\..\Src\YAEditor.h"\\r
+       \r
+NODEP_CPP_YAEDITO=\\r
+       "..\..\Src\Logger.h"\\r
+       "..\..\Src\Region.h"\\r
+       "..\..\Src\Uniconv.h"\\r
+       "..\..\Src\YAEdit.h"\\r
+       "..\..\Src\YAEditDoc.h"\\r
+       "..\..\Src\YAEditView.h"\\r
+       \r
+\r
+!ENDIF \r
+\r
+# End Source File\r
+# Begin Source File\r
+\r
+SOURCE=..\..\Src\YAEdit\YAEditView.cpp\r
+\r
+!IF  "$(CFG)" == "Tombo - Win32 (WCE MIPS) Release"\r
+\r
+DEP_CPP_YAEDITV=\\r
+       "..\..\Src\TomboLib\Clipboard.h"\\r
+       "..\..\Src\TomboLib\File.h"\\r
+       "..\..\Src\TomboLib\Logger.h"\\r
+       "..\..\Src\TomboLib\TString.h"\\r
+       "..\..\Src\TomboLib\Uniconv.h"\\r
+       "..\..\Src\TomboLib\VarBuffer.h"\\r
+       "..\..\Src\YAEdit\FontWidthCache.h"\\r
+       "..\..\Src\YAEdit\LineManager.h"\\r
+       "..\..\Src\YAEdit\LineWrapper.h"\\r
+       "..\..\Src\YAEdit\Region.h"\\r
+       "..\..\Src\YAEdit\YAEdit.h"\\r
+       "..\..\Src\YAEdit\YAEditDoc.h"\\r
+       "..\..\Src\YAEdit\YAEditView.h"\\r
+       \r
+\r
+!ELSEIF  "$(CFG)" == "Tombo - Win32 (WCE MIPS) Debug"\r
+\r
+DEP_CPP_YAEDITV=\\r
+       "..\..\Src\YAEdit\FontWidthCache.h"\\r
+       "..\..\Src\YAEdit\LineManager.h"\\r
+       "..\..\Src\YAEdit\LineWrapper.h"\\r
+       "..\..\Src\YAEdit\Region.h"\\r
+       "..\..\Src\YAEdit\YAEdit.h"\\r
+       "..\..\Src\YAEdit\YAEditDoc.h"\\r
+       "..\..\Src\YAEdit\YAEditView.h"\\r
+       \r
+NODEP_CPP_YAEDITV=\\r
+       "..\..\Src\YAEdit\Logger.h"\\r
+       "..\..\Src\YAEdit\TomboLib\Clipboard.h"\\r
+       "..\..\Src\YAEdit\TomboLib\Uniconv.h"\\r
+       "..\..\Src\YAEdit\TString.h"\\r
+       "..\..\Src\YAEdit\VarBuffer.h"\\r
+       \r
+\r
+!ELSEIF  "$(CFG)" == "Tombo - Win32 (WCE SH4) Release"\r
+\r
+DEP_CPP_YAEDITV=\\r
+       "..\..\Src\YAEdit\FontWidthCache.h"\\r
+       "..\..\Src\YAEdit\LineManager.h"\\r
+       "..\..\Src\YAEdit\LineWrapper.h"\\r
+       "..\..\Src\YAEdit\Region.h"\\r
+       "..\..\Src\YAEdit\YAEdit.h"\\r
+       "..\..\Src\YAEdit\YAEditDoc.h"\\r
+       "..\..\Src\YAEdit\YAEditView.h"\\r
+       \r
+NODEP_CPP_YAEDITV=\\r
+       "..\..\Src\YAEdit\Logger.h"\\r
+       "..\..\Src\YAEdit\resource.h"\\r
+       "..\..\Src\YAEdit\TomboLib\Clipboard.h"\\r
+       "..\..\Src\YAEdit\TomboLib\Uniconv.h"\\r
+       "..\..\Src\YAEdit\TString.h"\\r
+       "..\..\Src\YAEdit\VarBuffer.h"\\r
+       \r
+\r
+!ELSEIF  "$(CFG)" == "Tombo - Win32 (WCE SH4) Debug"\r
+\r
+DEP_CPP_YAEDITV=\\r
+       "..\..\Src\YAEdit\FontWidthCache.h"\\r
+       "..\..\Src\YAEdit\LineManager.h"\\r
+       "..\..\Src\YAEdit\LineWrapper.h"\\r
+       "..\..\Src\YAEdit\Region.h"\\r
+       "..\..\Src\YAEdit\YAEdit.h"\\r
+       "..\..\Src\YAEdit\YAEditDoc.h"\\r
+       "..\..\Src\YAEdit\YAEditView.h"\\r
+       \r
+NODEP_CPP_YAEDITV=\\r
+       "..\..\Src\YAEdit\Logger.h"\\r
+       "..\..\Src\YAEdit\resource.h"\\r
+       "..\..\Src\YAEdit\TomboLib\Clipboard.h"\\r
+       "..\..\Src\YAEdit\TomboLib\Uniconv.h"\\r
+       "..\..\Src\YAEdit\TString.h"\\r
+       "..\..\Src\YAEdit\VarBuffer.h"\\r
+       \r
+\r
+!ELSEIF  "$(CFG)" == "Tombo - Win32 (WCE SH3) Release"\r
+\r
+DEP_CPP_YAEDITV=\\r
+       "..\..\Src\YAEdit\FontWidthCache.h"\\r
+       "..\..\Src\YAEdit\LineManager.h"\\r
+       "..\..\Src\YAEdit\LineWrapper.h"\\r
+       "..\..\Src\YAEdit\Region.h"\\r
+       "..\..\Src\YAEdit\YAEdit.h"\\r
+       "..\..\Src\YAEdit\YAEditDoc.h"\\r
+       "..\..\Src\YAEdit\YAEditView.h"\\r
+       \r
+NODEP_CPP_YAEDITV=\\r
+       "..\..\Src\YAEdit\Logger.h"\\r
+       "..\..\Src\YAEdit\resource.h"\\r
+       "..\..\Src\YAEdit\TomboLib\Clipboard.h"\\r
+       "..\..\Src\YAEdit\TomboLib\Uniconv.h"\\r
+       "..\..\Src\YAEdit\TString.h"\\r
+       "..\..\Src\YAEdit\VarBuffer.h"\\r
+       \r
+\r
+!ELSEIF  "$(CFG)" == "Tombo - Win32 (WCE SH3) Debug"\r
+\r
+DEP_CPP_YAEDITV=\\r
+       "..\..\Src\YAEdit\FontWidthCache.h"\\r
+       "..\..\Src\YAEdit\LineManager.h"\\r
+       "..\..\Src\YAEdit\LineWrapper.h"\\r
+       "..\..\Src\YAEdit\Region.h"\\r
+       "..\..\Src\YAEdit\YAEdit.h"\\r
+       "..\..\Src\YAEdit\YAEditDoc.h"\\r
+       "..\..\Src\YAEdit\YAEditView.h"\\r
+       \r
+NODEP_CPP_YAEDITV=\\r
+       "..\..\Src\YAEdit\Logger.h"\\r
+       "..\..\Src\YAEdit\resource.h"\\r
+       "..\..\Src\YAEdit\TomboLib\Clipboard.h"\\r
+       "..\..\Src\YAEdit\TomboLib\Uniconv.h"\\r
+       "..\..\Src\YAEdit\TString.h"\\r
+       "..\..\Src\YAEdit\VarBuffer.h"\\r
+       \r
+\r
+!ELSEIF  "$(CFG)" == "Tombo - Win32 (WCE ARM) Release"\r
+\r
+DEP_CPP_YAEDITV=\\r
+       "..\..\Src\YAEdit\FontWidthCache.h"\\r
+       "..\..\Src\YAEdit\LineManager.h"\\r
+       "..\..\Src\YAEdit\LineWrapper.h"\\r
+       "..\..\Src\YAEdit\Region.h"\\r
+       "..\..\Src\YAEdit\YAEdit.h"\\r
+       "..\..\Src\YAEdit\YAEditDoc.h"\\r
+       "..\..\Src\YAEdit\YAEditView.h"\\r
+       \r
+NODEP_CPP_YAEDITV=\\r
+       "..\..\Src\YAEdit\Logger.h"\\r
+       "..\..\Src\YAEdit\resource.h"\\r
+       "..\..\Src\YAEdit\TomboLib\Clipboard.h"\\r
+       "..\..\Src\YAEdit\TomboLib\Uniconv.h"\\r
+       "..\..\Src\YAEdit\TString.h"\\r
+       "..\..\Src\YAEdit\VarBuffer.h"\\r
+       \r
+\r
+!ELSEIF  "$(CFG)" == "Tombo - Win32 (WCE ARM) Debug"\r
+\r
+DEP_CPP_YAEDITV=\\r
+       "..\..\Src\YAEdit\FontWidthCache.h"\\r
+       "..\..\Src\YAEdit\LineManager.h"\\r
+       "..\..\Src\YAEdit\LineWrapper.h"\\r
+       "..\..\Src\YAEdit\Region.h"\\r
+       "..\..\Src\YAEdit\YAEdit.h"\\r
+       "..\..\Src\YAEdit\YAEditDoc.h"\\r
+       "..\..\Src\YAEdit\YAEditView.h"\\r
+       \r
+NODEP_CPP_YAEDITV=\\r
+       "..\..\Src\YAEdit\Logger.h"\\r
+       "..\..\Src\YAEdit\resource.h"\\r
+       "..\..\Src\YAEdit\TomboLib\Clipboard.h"\\r
+       "..\..\Src\YAEdit\TomboLib\Uniconv.h"\\r
+       "..\..\Src\YAEdit\TString.h"\\r
+       "..\..\Src\YAEdit\VarBuffer.h"\\r
+       \r
+\r
+!ENDIF \r
+\r
+# End Source File\r
+# End Group\r
+# Begin Group "Header Files"\r
+\r
+# PROP Default_Filter "h;hpp;hxx;hm;inl"\r
+# Begin Source File\r
+\r
+SOURCE=..\..\Src\AboutDialog.h\r
+# End Source File\r
+# Begin Source File\r
+\r
+SOURCE=..\..\Src\TomboLib\AutoPtr.h\r
+# End Source File\r
+# Begin Source File\r
+\r
+SOURCE=..\..\Src\gnupg\bithelp.h\r
+# End Source File\r
+# Begin Source File\r
+\r
+SOURCE=..\..\Src\BookMark.h\r
+# End Source File\r
+# Begin Source File\r
+\r
+SOURCE=..\..\Src\BookMarkDlg.h\r
+# End Source File\r
+# Begin Source File\r
+\r
+SOURCE=..\..\Src\Chipher.h\r
+# End Source File\r
+# Begin Source File\r
+\r
+SOURCE=..\..\Src\TomboLib\Clipboard.h\r
+# End Source File\r
+# Begin Source File\r
+\r
+SOURCE=..\..\Src\regex\config.h\r
+# End Source File\r
+# Begin Source File\r
+\r
+SOURCE=..\..\Src\Crypt.h\r
+# End Source File\r
+# Begin Source File\r
+\r
+SOURCE=..\..\Src\CryptManager.h\r
+# End Source File\r
+# Begin Source File\r
+\r
+SOURCE=..\..\Src\TomboLib\DialogTemplate.h\r
+# End Source File\r
+# Begin Source File\r
+\r
+SOURCE=..\..\Src\TomboLib\DirectoryScanner.h\r
+# End Source File\r
+# Begin Source File\r
+\r
+SOURCE=..\..\Src\DirList.h\r
+# End Source File\r
+# Begin Source File\r
+\r
+SOURCE=..\..\Src\TomboLib\File.h\r
+# End Source File\r
+# Begin Source File\r
+\r
+SOURCE=..\..\Src\TomboLib\FileInputStream.h\r
+# End Source File\r
+# Begin Source File\r
+\r
+SOURCE=..\..\Src\FileSelector.h\r
+# End Source File\r
+# Begin Source File\r
+\r
+SOURCE=..\..\Src\FilterAddDlg.h\r
+# End Source File\r
+# Begin Source File\r
+\r
+SOURCE=..\..\Src\FilterCtlDlg.h\r
+# End Source File\r
+# Begin Source File\r
+\r
+SOURCE=..\..\Src\FilterDefDlg.h\r
+# End Source File\r
+# Begin Source File\r
+\r
+SOURCE=..\..\Src\YAEdit\FontWidthCache.h\r
+# End Source File\r
+# Begin Source File\r
+\r
+SOURCE=..\..\Src\GrepDialog.h\r
+# End Source File\r
+# Begin Source File\r
+\r
+SOURCE=..\..\Src\LagendaPlatform.h\r
+# End Source File\r
+# Begin Source File\r
+\r
+SOURCE=..\..\Src\YAEdit\LineManager.h\r
+# End Source File\r
+# Begin Source File\r
+\r
+SOURCE=..\..\Src\YAEdit\LineWrapper.h\r
+# End Source File\r
+# Begin Source File\r
+\r
+SOURCE=..\..\Src\YAEdit\LineWrapperImpl.h\r
+# End Source File\r
+# Begin Source File\r
+\r
+SOURCE=..\..\Src\TomboLib\List.h\r
+# End Source File\r
+# Begin Source File\r
+\r
+SOURCE=..\..\Src\TomboLib\Logger.h\r
+# End Source File\r
+# Begin Source File\r
+\r
+SOURCE=..\..\Src\MainFrame.h\r
+# End Source File\r
+# Begin Source File\r
+\r
+SOURCE=..\..\Src\YAEdit\MemManager.h\r
+# End Source File\r
+# Begin Source File\r
+\r
+SOURCE=..\..\Src\MemoDetailsView.h\r
+# End Source File\r
+# Begin Source File\r
+\r
+SOURCE=..\..\Src\MemoFolder.h\r
+# End Source File\r
+# Begin Source File\r
+\r
+SOURCE=..\..\Src\MemoInfo.h\r
+# End Source File\r
+# Begin Source File\r
+\r
+SOURCE=..\..\Src\MemoManager.h\r
+# End Source File\r
+# Begin Source File\r
+\r
+SOURCE=..\..\Src\MemoNote.h\r
+# End Source File\r
+# Begin Source File\r
+\r
+SOURCE=..\..\Src\MemoSelectView.h\r
+# End Source File\r
+# Begin Source File\r
+\r
+SOURCE=..\..\Src\NewFolderDialog.h\r
+# End Source File\r
+# Begin Source File\r
+\r
+SOURCE=..\..\Src\PasswordDialog.h\r
+# End Source File\r
+# Begin Source File\r
+\r
+SOURCE=..\..\Src\PasswordManager.h\r
+# End Source File\r
+# Begin Source File\r
+\r
+SOURCE=..\..\Src\YAEdit\PhysicalLineManager.h\r
+# End Source File\r
+# Begin Source File\r
+\r
+SOURCE=..\..\Src\PlatformLayer.h\r
+# End Source File\r
+# Begin Source File\r
+\r
+SOURCE=..\..\Src\Property.h\r
+# End Source File\r
+# Begin Source File\r
+\r
+SOURCE=..\..\Src\TomboLib\PropertyPage.h\r
+# End Source File\r
+# Begin Source File\r
+\r
+SOURCE=..\..\Src\regex\regex.h\r
+# End Source File\r
+# Begin Source File\r
+\r
+SOURCE=..\..\Src\YAEdit\Region.h\r
+# End Source File\r
+# Begin Source File\r
+\r
+SOURCE=..\..\Src\Repository.h\r
+# End Source File\r
+# Begin Source File\r
+\r
+SOURCE=..\..\Src\RepositoryImpl.h\r
+# End Source File\r
+# Begin Source File\r
+\r
+SOURCE=.\res\resource.h\r
+# End Source File\r
+# Begin Source File\r
+\r
+SOURCE=..\..\Src\SearchDlg.h\r
+# End Source File\r
+# Begin Source File\r
+\r
+SOURCE=..\..\Src\SearchEngine.h\r
+# End Source File\r
+# Begin Source File\r
+\r
+SOURCE=..\..\Src\SearchTree.h\r
+# End Source File\r
+# Begin Source File\r
+\r
+SOURCE=..\..\Src\TomboLib\SipControl.h\r
+# End Source File\r
+# Begin Source File\r
+\r
+SOURCE=..\..\Src\StatusBar.h\r
+# End Source File\r
+# Begin Source File\r
+\r
+SOURCE=..\..\Src\YAEdit\StringSplitter.h\r
+# End Source File\r
+# Begin Source File\r
+\r
+SOURCE=..\..\Src\Tombo.h\r
+# End Source File\r
+# Begin Source File\r
+\r
+SOURCE=..\..\Src\TomboPropertyTab.h\r
+# End Source File\r
+# Begin Source File\r
+\r
+SOURCE=..\..\Src\TomboURI.h\r
+# End Source File\r
+# Begin Source File\r
+\r
+SOURCE=..\..\Src\TreeViewItem.h\r
+# End Source File\r
+# Begin Source File\r
+\r
+SOURCE=..\..\Src\TSParser.h\r
+# End Source File\r
+# Begin Source File\r
+\r
+SOURCE=..\..\Src\TomboLib\TString.h\r
+# End Source File\r
+# Begin Source File\r
+\r
+SOURCE=..\..\Src\TomboLib\Uniconv.h\r
+# End Source File\r
+# Begin Source File\r
+\r
+SOURCE=..\..\Src\URIScanner.h\r
+# End Source File\r
+# Begin Source File\r
+\r
+SOURCE=..\..\Src\TomboLib\VarBuffer.h\r
+# End Source File\r
+# Begin Source File\r
+\r
+SOURCE=..\..\Src\VFManager.h\r
+# End Source File\r
+# Begin Source File\r
+\r
+SOURCE=..\..\Src\VFStream.h\r
+# End Source File\r
+# Begin Source File\r
+\r
+SOURCE=..\..\Src\YAEdit\YAEdit.h\r
+# End Source File\r
+# Begin Source File\r
+\r
+SOURCE=..\..\Src\YAEdit\YAEditDoc.h\r
+# End Source File\r
+# Begin Source File\r
+\r
+SOURCE=..\..\Src\YAEditor.h\r
+# End Source File\r
+# Begin Source File\r
+\r
+SOURCE=..\..\Src\YAEdit\YAEditView.h\r
+# End Source File\r
+# End Group\r
+# Begin Group "Resource Files"\r
+\r
+# PROP Default_Filter "ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe"\r
+# Begin Source File\r
+\r
+SOURCE=.\res\bitmap1.bmp\r
+# End Source File\r
+# Begin Source File\r
+\r
+SOURCE=..\..\Src\bitmap1.bmp\r
+# End Source File\r
+# Begin Source File\r
+\r
+SOURCE=..\..\Src\image\bookmark.bmp\r
+# End Source File\r
+# Begin Source File\r
+\r
+SOURCE=.\res\copy.bmp\r
+# End Source File\r
+# Begin Source File\r
+\r
+SOURCE=..\..\Src\image\copy.bmp\r
+# End Source File\r
+# Begin Source File\r
+\r
+SOURCE=.\res\cut.bmp\r
+# End Source File\r
+# Begin Source File\r
+\r
+SOURCE=..\..\Src\image\delete.bmp\r
+# End Source File\r
+# Begin Source File\r
+\r
+SOURCE=..\draftimg.bmp\r
+# End Source File\r
+# Begin Source File\r
+\r
+SOURCE=.\draftimg.bmp\r
+# End Source File\r
+# Begin Source File\r
+\r
+SOURCE=.\res\draftimg.bmp\r
+# End Source File\r
+# Begin Source File\r
+\r
+SOURCE=..\..\Src\image\draftimg.bmp\r
+# End Source File\r
+# Begin Source File\r
+\r
+SOURCE=.\res\find.bmp\r
+# End Source File\r
+# Begin Source File\r
+\r
+SOURCE=.\res\findnext.bmp\r
+# End Source File\r
+# Begin Source File\r
+\r
+SOURCE=.\res\findprev.bmp\r
+# End Source File\r
+# Begin Source File\r
+\r
+SOURCE=..\hellowince.ico\r
+# End Source File\r
+# Begin Source File\r
+\r
+SOURCE=.\res\insdate1.bmp\r
+# End Source File\r
+# Begin Source File\r
+\r
+SOURCE=.\res\insdate2.bmp\r
+# End Source File\r
+# Begin Source File\r
+\r
+SOURCE=.\mdtoolbar.bmp\r
+# End Source File\r
+# Begin Source File\r
+\r
+SOURCE=.\res\mdtoolbar.bmp\r
+# End Source File\r
+# Begin Source File\r
+\r
+SOURCE=..\memoimg.bmp\r
+# End Source File\r
+# Begin Source File\r
+\r
+SOURCE=.\memoimg.bmp\r
+# End Source File\r
+# Begin Source File\r
+\r
+SOURCE=.\res\memoimg.bmp\r
+# End Source File\r
+# Begin Source File\r
+\r
+SOURCE=..\..\Src\memoimg.bmp\r
+# End Source File\r
+# Begin Source File\r
+\r
+SOURCE=.\res\newmemo.bmp\r
+# End Source File\r
+# Begin Source File\r
+\r
+SOURCE=.\res\paste.bmp\r
+# End Source File\r
+# Begin Source File\r
+\r
+SOURCE=..\Tombo.ICO\r
+# End Source File\r
+# Begin Source File\r
+\r
+SOURCE=.\res\Tombo.ICO\r
+# End Source File\r
+# Begin Source File\r
+\r
+SOURCE=.\Tombo.ICO\r
+# End Source File\r
+# Begin Source File\r
+\r
+SOURCE=..\..\Src\image\Tombo.ico\r
+# End Source File\r
+# Begin Source File\r
+\r
+SOURCE=..\..\Src\image\tool.bmp\r
+# End Source File\r
+# Begin Source File\r
+\r
+SOURCE=.\res\toolbar.bmp\r
+# End Source File\r
+# Begin Source File\r
+\r
+SOURCE=.\toolbar.bmp\r
+# End Source File\r
+# Begin Source File\r
+\r
+SOURCE=..\..\Src\toolbar.bmp\r
+# End Source File\r
+# Begin Source File\r
+\r
+SOURCE=.\res\Xdelete.bmp\r
+# End Source File\r
+# End Group\r
+# Begin Source File\r
+\r
+SOURCE=..\..\expat\lib\MIPS\libexpatw.lib\r
+# End Source File\r
+# Begin Source File\r
+\r
+SOURCE=..\..\oniguruma\mips\oniguruma.lib\r
+# End Source File\r
+# End Target\r
+# End Project\r
diff --git a/BE300/Tombo/Tombo.vcw b/BE300/Tombo/Tombo.vcw
new file mode 100644 (file)
index 0000000..5f2abfc
--- /dev/null
@@ -0,0 +1,29 @@
+Microsoft eMbedded Visual Tools Workspace File, Format Version 3.00\r
+# WARNING: DO NOT EDIT OR DELETE THIS WORKSPACE FILE!\r
+\r
+###############################################################################\r
+\r
+Project: "Tombo"=.\Tombo.vcp - Package Owner=<4>\r
+\r
+Package=<5>\r
+{{{\r
+}}}\r
+\r
+Package=<4>\r
+{{{\r
+}}}\r
+\r
+###############################################################################\r
+\r
+Global:\r
+\r
+Package=<5>\r
+{{{\r
+}}}\r
+\r
+Package=<3>\r
+{{{\r
+}}}\r
+\r
+###############################################################################\r
+\r
diff --git a/BE300/Tombo/res/TomboE.rc b/BE300/Tombo/res/TomboE.rc
new file mode 100644 (file)
index 0000000..923d371
--- /dev/null
@@ -0,0 +1,647 @@
+//Microsoft Developer Studio generated resource script.\r
+//\r
+#include "resource.h"\r
+\r
+#define APSTUDIO_READONLY_SYMBOLS\r
+/////////////////////////////////////////////////////////////////////////////\r
+//\r
+// Generated from the TEXTINCLUDE 2 resource.\r
+//\r
+#include "afxres.h"\r
+\r
+/////////////////////////////////////////////////////////////////////////////\r
+#undef APSTUDIO_READONLY_SYMBOLS\r
+\r
+/////////////////////////////////////////////////////////////////////////////\r
+// Japanese resources\r
+\r
+#if !defined(AFX_RESOURCE_DLL) || defined(AFX_TARG_JPN)\r
+#ifdef _WIN32\r
+LANGUAGE LANG_JAPANESE, SUBLANG_DEFAULT\r
+#pragma code_page(932)\r
+#endif //_WIN32\r
+\r
+/////////////////////////////////////////////////////////////////////////////\r
+//\r
+// Bitmap\r
+//\r
+\r
+IDB_MEMOSELECT_IMAGES   BITMAP  DISCARDABLE     "../../../Src/image/memoimg.bmp"\r
+IDB_ARTICLEBOX          BITMAP  DISCARDABLE     "../../../Src/image/draftimg.bmp"\r
+IDB_NEWMEMO             BITMAP  DISCARDABLE     "../../../Src/image/newmemo.bmp"\r
+IDB_INSDATE1            BITMAP  DISCARDABLE     "../../../Src/image/insdate1.bmp"\r
+IDB_INSDATE2            BITMAP  DISCARDABLE     "../../../Src/image/insdate2.bmp"\r
+IDB_SAVE                BITMAP  DISCARDABLE     "../../../Src/image/save.bmp"\r
+IDB_CUT                 BITMAP  DISCARDABLE     "../../../Src/image/cut.bmp"\r
+IDB_COPY                BITMAP  DISCARDABLE     "../../../Src/image/copy.bmp"\r
+IDB_PASTE               BITMAP  DISCARDABLE     "../../../Src/image/paste.bmp"\r
+IDB_FINDNEXT            BITMAP  DISCARDABLE     "../../../Src/image/findnext.bmp"\r
+IDB_FINDPREV            BITMAP  DISCARDABLE     "../../../Src/image/findprev.bmp"\r
+IDB_FIND                BITMAP  DISCARDABLE     "../../../Src/image/find.bmp"\r
+IDB_DELETE              BITMAP  DISCARDABLE     "../../../Src/image/delete.bmp"\r
+IDB_BOOKMARK            BITMAP  DISCARDABLE     "../../../src/image/bookmark.bmp"\r
+IDB_TOOL                BITMAP  DISCARDABLE     "../../../src/image/tool.bmp"\r
+\r
+/////////////////////////////////////////////////////////////////////////////\r
+//\r
+// Icon\r
+//\r
+\r
+// Icon with lowest ID value placed first to ensure application icon\r
+// remains consistent on all systems.\r
+IDI_TOMBO               ICON    DISCARDABLE     "../../../Src/image/Tombo.ICO"\r
+\r
+/////////////////////////////////////////////////////////////////////////////\r
+//\r
+// Dialog\r
+//\r
+\r
+IDD_ABOUTBOX DIALOG DISCARDABLE  0, 0, 134, 159\r
+STYLE DS_MODALFRAME | DS_CENTER | WS_POPUP | WS_CAPTION | WS_SYSMENU\r
+EXSTYLE 0x80000000L\r
+CAPTION "About TOMBO"\r
+FONT 9, "Tahoma"\r
+BEGIN\r
+    ICON            IDI_TOMBO,IDC_STATIC,5,10,20,20\r
+    LTEXT           "Tombo Ver. 1.4",IDC_VERSIONINFO,35,10,95,8,SS_NOPREFIX\r
+    EDITTEXT        IDC_COPYRIGHT,5,30,120,125,ES_MULTILINE | ES_AUTOVSCROLL | \r
+                    ES_AUTOHSCROLL | ES_READONLY | WS_VSCROLL | WS_HSCROLL | \r
+                    NOT WS_TABSTOP\r
+END\r
+\r
+IDD_PASSWORD DIALOG DISCARDABLE  0, 0, 115, 83\r
+STYLE DS_MODALFRAME | DS_CENTER | WS_POPUP | WS_CAPTION | WS_SYSMENU\r
+CAPTION "Password"\r
+FONT 9, "Tahoma"\r
+BEGIN\r
+    EDITTEXT        IDC_PASS,5,5,105,12,ES_PASSWORD | ES_AUTOHSCROLL\r
+    EDITTEXT        IDC_PASS2,5,20,105,12,ES_PASSWORD | ES_AUTOHSCROLL\r
+    DEFPUSHBUTTON   "OK",IDOK,25,35,40,12\r
+    PUSHBUTTON      "Cancel",IDCANCEL,70,35,40,12\r
+END\r
+\r
+IDD_PROPTAB_FOLDER DIALOG DISCARDABLE  0, 0, 131, 111\r
+STYLE WS_CHILD | WS_BORDER\r
+FONT 9, "Tahoma"\r
+BEGIN\r
+    LTEXT           "Memo folder:",IDC_PROPTAB_FOLDER_LABEL,5,5,65,10\r
+    PUSHBUTTON      "...",IDC_FOLDERSEL,100,20,20,10\r
+    LTEXT           "Folder to store Tombo Notes",IDC_PROPTAB_FOLDER_HELP1,5,\r
+                    40,115,10\r
+    CONTROL         "Sync file name and title",IDC_KEEPTITLE,"Button",\r
+                    BS_AUTOCHECKBOX | WS_TABSTOP,5,55,115,8\r
+    LTEXT           "Rename file name if headline changed.",\r
+                    IDC_PROPTAB_FOLDER_HELP2,10,65,115,25\r
+    COMBOBOX        IDC_TOPFOLDER,5,20,90,75,CBS_DROPDOWN | CBS_AUTOHSCROLL | \r
+                    WS_VSCROLL | WS_TABSTOP\r
+    CONTROL         "Open notes read-only mode",IDC_PROP_READONLY,"Button",\r
+                    BS_AUTOCHECKBOX | WS_TABSTOP,5,95,120,10\r
+END\r
+\r
+IDD_FILESELECT DIALOG DISCARDABLE  0, 0, 134, 89\r
+STYLE DS_MODALFRAME | DS_CENTER | WS_POPUP | WS_CAPTION | WS_SYSMENU\r
+CAPTION "Select File"\r
+FONT 9, "Tahoma"\r
+BEGIN\r
+    PUSHBUTTON      "OK",IDOK,55,70,35,15\r
+    PUSHBUTTON      "CANCEL",IDCANCEL,95,70,35,15\r
+    CONTROL         "Tree1",IDC_FILESELECT_TREE,"SysTreeView32",\r
+                    TVS_HASBUTTONS | TVS_HASLINES | TVS_LINESATROOT | \r
+                    WS_BORDER | WS_TABSTOP,5,0,125,65\r
+END\r
+\r
+IDD_PROPTAB_PASSWORD DIALOG DISCARDABLE  0, 0, 131, 121\r
+STYLE WS_CHILD | WS_BORDER\r
+FONT 9, "Tahoma"\r
+BEGIN\r
+    EDITTEXT        IDC_PASS1,5,15,90,12,ES_PASSWORD | ES_AUTOHSCROLL\r
+    EDITTEXT        IDC_PASS2,5,40,90,12,ES_PASSWORD | ES_AUTOHSCROLL\r
+    LTEXT           "Password",IDC_STATIC,5,5,105,10\r
+    LTEXT           "ReEnter:",IDC_STATIC,5,30,75,10\r
+    EDITTEXT        IDC_PROP_PASSWORD_DESC,5,55,120,60,ES_MULTILINE | \r
+                    ES_AUTOVSCROLL | ES_READONLY\r
+    PUSHBUTTON      "Option",IDC_PROP_SETPASS,100,40,25,12\r
+END\r
+\r
+IDD_NEWFOLDER DIALOG DISCARDABLE  0, 0, 103, 68\r
+STYLE DS_MODALFRAME | DS_CENTER | WS_POPUP | WS_CAPTION | WS_SYSMENU\r
+CAPTION "NewFolder"\r
+FONT 9, "Tahoma"\r
+BEGIN\r
+    EDITTEXT        IDC_NEWFOLDER_NAME,5,5,95,10,ES_AUTOHSCROLL\r
+    DEFPUSHBUTTON   "OK",IDOK,15,20,40,15\r
+    PUSHBUTTON      "Cancel",IDCANCEL,60,20,40,14\r
+END\r
+\r
+IDD_PROPTAB_PASS_TIMEOUT DIALOG DISCARDABLE  0, 0, 121, 121\r
+STYLE WS_CHILD | WS_BORDER\r
+FONT 9, "Tahoma"\r
+BEGIN\r
+    LTEXT           "Password timeout(min):",IDC_PROPTAB_PASS_TIMEOUT_LABEL,\r
+                    5,10,115,10\r
+    EDITTEXT        IDC_PASS_TIMEOUT,60,25,35,12,ES_AUTOHSCROLL\r
+    LTEXT           "Timeout length(1-60).",IDC_PROPTAB_PASS_TIMEOUT_HELP,5,\r
+                    45,110,30\r
+    CONTROL         "Check1",IDC_PASS_TIMEOUT_USE_SAFEFILE,"Button",\r
+                    BS_AUTOCHECKBOX | WS_TABSTOP,5,80,100,10\r
+    LTEXT           "Static",IDC_PROPTAB_PASS_TIMEOUT_SAFEFILE_HELP,5,95,110,\r
+                    20\r
+END\r
+\r
+IDD_PROPTAB_FONT DIALOG DISCARDABLE  0, 0, 132, 132\r
+STYLE WS_CHILD\r
+FONT 9, "Tahoma"\r
+BEGIN\r
+    LTEXT           "Tree:",IDC_PROPTAB_FONT_TREE_LABEL,5,5,25,10\r
+    LTEXT           "Memo:",IDC_PROPTAB_FONT_EDIT_LABEL,5,55,25,10\r
+    COMBOBOX        IDC_FONT_SELECT_NAME,35,20,90,65,CBS_DROPDOWNLIST | \r
+                    CBS_SORT | WS_VSCROLL | WS_TABSTOP\r
+    COMBOBOX        IDC_FONT_DETAILS_NAME,35,71,90,65,CBS_DROPDOWNLIST | \r
+                    CBS_SORT | WS_VSCROLL | WS_TABSTOP\r
+    COMBOBOX        IDC_FONT_SELECT_SIZE,35,35,35,65,CBS_DROPDOWN | \r
+                    WS_VSCROLL | WS_TABSTOP\r
+    COMBOBOX        IDC_FONT_DETAILS_SIZE,35,85,35,65,CBS_DROPDOWN | \r
+                    WS_VSCROLL | WS_TABSTOP\r
+    CONTROL         "Use default",IDC_FONT_SELECT_USEDEFAULT,"Button",\r
+                    BS_AUTOCHECKBOX | WS_TABSTOP,30,5,95,10\r
+    CONTROL         "Use default",IDC_FONT_DETAILS_USEDEFAULT,"Button",\r
+                    BS_AUTOCHECKBOX | WS_TABSTOP,30,55,90,10\r
+    CONTROL         "ClearType",IDC_FONT_SELECT_CLEARTYPE,"Button",\r
+                    BS_AUTOCHECKBOX | NOT WS_VISIBLE,79,39,47,10\r
+    CONTROL         "ClearType",IDC_FONT_DETAILS_CLEARTYPE,"Button",\r
+                    BS_AUTOCHECKBOX | NOT WS_VISIBLE,75,90,47,10\r
+END\r
+\r
+IDD_PROPTAB_INSDATE DIALOG DISCARDABLE  0, 0, 132, 122\r
+STYLE WS_CHILD\r
+FONT 9, "Tahoma"\r
+BEGIN\r
+    LTEXT           "Date1:",IDC_PROPTAB_INSDATE_DATE1,5,5,25,10\r
+    LTEXT           "Date2:",IDC_PROPTAB_INSDATE_DATE2,5,20,25,10\r
+    EDITTEXT        IDC_PROP_DATEFORMAT1,35,5,80,12,ES_AUTOHSCROLL\r
+    EDITTEXT        IDC_PROP_DATEFORMAT2,35,20,80,12,ES_AUTOHSCROLL\r
+    EDITTEXT        IDC_DATEFORMAT_DESC,5,40,120,75,ES_MULTILINE | \r
+                    ES_AUTOHSCROLL | ES_READONLY | WS_VSCROLL | NOT \r
+                    WS_TABSTOP\r
+END\r
+\r
+IDD_PROPTAB_KEEPCARET DIALOG DISCARDABLE  0, 0, 112, 77\r
+STYLE WS_CHILD\r
+FONT 9, "Tahoma"\r
+BEGIN\r
+    CONTROL         "Keep Caret",IDC_PROP_KEEPCARET,"Button",BS_AUTOCHECKBOX | \r
+                    WS_TABSTOP,10,10,90,10\r
+    LTEXT           "Tab stop:",IDC_STATIC,10,35,40,10\r
+    EDITTEXT        IDC_PROP_TABSTOP,55,35,35,12,ES_AUTOHSCROLL\r
+    CONTROL         "Disable save dialog",IDC_PROPTAB_DISABLESAVEDLG,"Button",\r
+                    BS_AUTOCHECKBOX | WS_TABSTOP,10,60,73,10\r
+END\r
+\r
+IDD_SEARCH DIALOG DISCARDABLE  0, 0, 119, 138\r
+STYLE DS_MODALFRAME | DS_CENTER | WS_POPUP | WS_CAPTION | WS_SYSMENU\r
+CAPTION "Find"\r
+FONT 9, "Tahoma"\r
+BEGIN\r
+    COMBOBOX        IDC_SEARCH_STRING,5,20,105,85,CBS_DROPDOWN | WS_VSCROLL | \r
+                    WS_TABSTOP\r
+    CONTROL         "Case sensitive",IDC_SEARCH_CASESENSITIVE,"Button",\r
+                    BS_AUTOCHECKBOX | WS_TABSTOP,5,40,75,10\r
+    DEFPUSHBUTTON   "OK",IDOK,85,35,30,15\r
+    LTEXT           "Search Str:",IDC_SEARCH_FIND_LABEL,5,5,45,10\r
+    CONTROL         "Include encrypted memo",IDC_SEARCH_ENCRYPTMEMO,"Button",\r
+                    BS_AUTOCHECKBOX | WS_TABSTOP,5,85,100,10\r
+    CONTROL         "Find to file name",IDC_FILENAMEONLY,"Button",\r
+                    BS_AUTOCHECKBOX | WS_TABSTOP,5,101,105,10\r
+    CONTROL         "Up",IDC_SEARCH_DIRECTION_UP,"Button",BS_AUTORADIOBUTTON,\r
+                    20,65,30,10\r
+    CONTROL         "Down",IDC_SEARCH_DIRECTION_DOWN,"Button",\r
+                    BS_AUTORADIOBUTTON,65,65,40,10\r
+    GROUPBOX        "Direction",IDC_SEARCH_DIRECT_LABEL,10,55,100,25\r
+END\r
+\r
+IDD_PROPTAB_CODEPAGE DIALOG DISCARDABLE  0, 0, 106, 96\r
+STYLE WS_CHILD | WS_BORDER\r
+FONT 9, "Tahoma"\r
+BEGIN\r
+    LTEXT           "Codepage:",IDC_PROPTAB_CODEPAGE_LABEL,10,10,35,8\r
+    COMBOBOX        IDC_PROPTAB_CODEPAGE_CODEPAGE,7,23,83,66,\r
+                    CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP\r
+    EDITTEXT        IDC_PROPTAB_CODEPAGE_NOTICE,0,40,105,55,ES_MULTILINE | \r
+                    ES_AUTOVSCROLL | ES_READONLY\r
+END\r
+\r
+IDD_SEARCHING DIALOG DISCARDABLE  0, 0, 74, 54\r
+STYLE DS_MODALFRAME | DS_CENTER | WS_POPUP\r
+FONT 9, "Tahoma"\r
+BEGIN\r
+    PUSHBUTTON      "Cancel",IDCANCEL,10,35,50,14\r
+    CTEXT           "Searching...",IDC_SEARCHMSG,5,16,65,8\r
+END\r
+\r
+IDD_GREPTAB_MAIN DIALOG DISCARDABLE  0, 0, 116, 136\r
+STYLE WS_CHILD | WS_BORDER\r
+FONT 9, "Tahoma"\r
+BEGIN\r
+    LTEXT           "Target dir:",IDC_GREPTAB_MAIN_POSLABEL,5,5,34,8\r
+    LTEXT           "Static",IDC_GREPTAB_MAIN_STARTDIR,45,5,65,8\r
+    LTEXT           "Search str:",IDC_GREPTAB_MAIN_STRLABEL,5,20,75,8\r
+    COMBOBOX        IDC_GREPTAB_MAIN_SEARCHSTRING,10,35,90,115,CBS_DROPDOWN | \r
+                    WS_VSCROLL | WS_TABSTOP\r
+    CONTROL         "Case sensitive",IDC_GREPTAB_MAIN_CASESENSITIVE,"Button",\r
+                    BS_AUTOCHECKBOX | WS_TABSTOP,5,70,105,10\r
+    CONTROL         "Include encrypted memo",IDC_GREPTAB_MAIN_ENCRYPTNOTE,\r
+                    "Button",BS_AUTOCHECKBOX | WS_TABSTOP,5,85,105,10\r
+    CONTROL         "Find to file name",IDC_GREPTAB_MAIN_FILENAME,"Button",\r
+                    BS_AUTOCHECKBOX | WS_TABSTOP,5,100,105,10\r
+END\r
+\r
+IDD_GREPTAB_PERSIST DIALOG DISCARDABLE  0, 0, 131, 136\r
+STYLE WS_CHILD | WS_BORDER\r
+FONT 9, "Tahoma"\r
+BEGIN\r
+END\r
+\r
+IDD_FILTERCTL DIALOG DISCARDABLE  0, 0, 134, 108\r
+STYLE DS_MODALFRAME | DS_CENTER | WS_POPUP | WS_CAPTION | WS_SYSMENU\r
+CAPTION "Virtual folder"\r
+FONT 9, "Tahoma"\r
+BEGIN\r
+    DEFPUSHBUTTON   "OK",IDOK,20,90,40,14\r
+    PUSHBUTTON      "Cancel",IDCANCEL,65,90,40,14\r
+    CONTROL         "List1",IDC_FILTERCTL_LIST,"SysListView32",LVS_REPORT | \r
+                    LVS_SINGLESEL | LVS_SHOWSELALWAYS | LVS_EDITLABELS | \r
+                    WS_BORDER | WS_TABSTOP,30,5,65,80\r
+    CONTROL         "Save",IDC_FILTERCTL_KEEP,"Button",BS_AUTOCHECKBOX | \r
+                    WS_TABSTOP,100,5,31,10\r
+    PUSHBUTTON      "Up",IDC_FILTERCTL_UP,5,20,20,14\r
+    PUSHBUTTON      "DN",IDC_FILTERCTL_DOWN,5,40,20,14\r
+    PUSHBUTTON      "New",IDC_FILTERCTL_NEW,100,25,30,14\r
+    PUSHBUTTON      "Del",IDC_FILTERCTL_DELETE,100,45,30,14\r
+    PUSHBUTTON      "Ren",IDC_FILTERCTL_RENAME,100,65,30,14\r
+END\r
+\r
+IDD_FILTERDEF_ADD_LIMIT DIALOG DISCARDABLE  0, 0, 134, 66\r
+STYLE DS_MODALFRAME | DS_CENTER | WS_POPUP | WS_CAPTION | WS_SYSMENU\r
+CAPTION "Number filter"\r
+FONT 9, "Tahoma"\r
+BEGIN\r
+    DEFPUSHBUTTON   "OK",IDOK,20,45,50,14\r
+    PUSHBUTTON      "CANCEL",IDCANCEL,75,45,50,14\r
+    LTEXT           "Num Items:",IDC_FILTERDEF_ADD_LIMIT_ITEMS,5,15,50,8\r
+    EDITTEXT        IDC_FILTERDEF_LIMIT_NUMLIMIT,60,15,40,14,ES_AUTOHSCROLL\r
+END\r
+\r
+IDD_FILTERDEF_ADD_REGEX DIALOG DISCARDABLE  0, 0, 134, 119\r
+STYLE DS_MODALFRAME | DS_CENTER | WS_POPUP | WS_CAPTION | WS_SYSMENU\r
+CAPTION "Find filter"\r
+FONT 9, "Tahoma"\r
+BEGIN\r
+    DEFPUSHBUTTON   "OK",IDOK,15,95,50,14\r
+    PUSHBUTTON      "CANCEL",IDCANCEL,70,95,50,14\r
+    LTEXT           "Search str:",IDC_FILTERDEF_ADD_REGEX_LABEL,5,10,40,8\r
+    COMBOBOX        IDC_FILTERDEF_REGEX_SEARCHSTR,50,10,75,80,CBS_DROPDOWN | \r
+                    CBS_SORT | WS_VSCROLL | WS_TABSTOP\r
+    CONTROL         "Case sensitive",IDC_FILTERDEF_REGEX_CASESENSITIVE,\r
+                    "Button",BS_AUTOCHECKBOX | WS_TABSTOP,10,30,115,10\r
+    CONTROL         "Include encrypted memo",IDC_FILTERDEF_REGEX_CRYPTMEMO,\r
+                    "Button",BS_AUTOCHECKBOX | WS_TABSTOP,10,45,115,10\r
+    CONTROL         "Find to file name",IDC_FILTERDEF_REGEX_FILENAME,"Button",\r
+                    BS_AUTOCHECKBOX | WS_TABSTOP,10,60,110,10\r
+    CONTROL         "Invert match",IDC_FILTERDEF_REGEX_NEGATE,"Button",\r
+                    BS_AUTOCHECKBOX | WS_TABSTOP,10,75,110,10\r
+END\r
+\r
+IDD_FILTERDEF_ADD_SORT DIALOG DISCARDABLE  0, 0, 139, 61\r
+STYLE DS_MODALFRAME | DS_CENTER | WS_POPUP | WS_CAPTION | WS_SYSMENU\r
+CAPTION "Sort filter"\r
+FONT 9, "Tahoma"\r
+BEGIN\r
+    DEFPUSHBUTTON   "OK",IDOK,20,40,50,14\r
+    PUSHBUTTON      "CANCEL",IDCANCEL,75,40,50,14\r
+    COMBOBOX        IDC_FILTERDEF_SORT_TYPE,55,15,75,85,CBS_DROPDOWNLIST | \r
+                    WS_VSCROLL | WS_TABSTOP\r
+    LTEXT           "Sort Type:",IDC_FILTERDEF_ADD_SORT_LABEL,5,15,45,8\r
+END\r
+\r
+IDD_FILTERDEF_ADD_TIMESTAMP DIALOG DISCARDABLE  0, 0, 134, 87\r
+STYLE DS_MODALFRAME | DS_CENTER | WS_POPUP | WS_CAPTION | WS_SYSMENU\r
+CAPTION "Timestamp filter"\r
+FONT 9, "Tahoma"\r
+BEGIN\r
+    EDITTEXT        IDC_FILTERDEF_TS_DELTADAY,25,10,30,14,ES_AUTOHSCROLL\r
+    CONTROL         "Newer",IDC_FILTERDEF_TS_NEWER,"Button",\r
+                    BS_AUTORADIOBUTTON,35,35,70,10\r
+    CONTROL         "Older",IDC_FILTERDEF_TS_OLDER,"Button",\r
+                    BS_AUTORADIOBUTTON,35,45,70,10\r
+    DEFPUSHBUTTON   "OK",IDOK,25,65,50,14\r
+    PUSHBUTTON      "CANCEL",IDCANCEL,81,65,50,14\r
+    LTEXT           "days before",IDC_FILTERDEF_ADD_TIMESTAMP_BASEPOINT,60,\r
+                    15,50,8\r
+END\r
+\r
+IDD_FILTERDEF_FILTER DIALOG DISCARDABLE  0, 0, 126, 131\r
+STYLE WS_CHILD | WS_BORDER\r
+FONT 9, "Tahoma"\r
+BEGIN\r
+    CONTROL         "List1",IDC_FILTERDEF_FILTER_LIST,"SysListView32",\r
+                    LVS_REPORT | LVS_SINGLESEL | LVS_SHOWSELALWAYS | \r
+                    WS_BORDER | WS_TABSTOP,5,5,85,80\r
+    PUSHBUTTON      "Up",IDC_FILTERDEF_FILTER_UP,95,20,25,14\r
+    PUSHBUTTON      "Dn",IDC_FILTERDEF_FILTER_DOWN,95,40,25,14\r
+    PUSHBUTTON      "Find",IDC_FILTERDEF_FILTER_REGEX,5,90,35,14\r
+    PUSHBUTTON      "Num",IDC_FILTERDEF_FILTER_LIMIT,45,90,35,14\r
+    PUSHBUTTON      "Date",IDC_FILTERDEF_FILTER_TIMESTAMP,5,110,35,14\r
+    PUSHBUTTON      "Sort",IDC_FILTERDEF_FILTER_SORT,45,110,35,14\r
+    PUSHBUTTON      "Del",IDC_FILTERDEF_FILTER_DELETE,95,75,25,14\r
+END\r
+\r
+IDD_FILTERDEF_SRC DIALOG DISCARDABLE  0, 0, 126, 40\r
+STYLE WS_CHILD | WS_BORDER\r
+FONT 9, "Tahoma"\r
+BEGIN\r
+    EDITTEXT        IDC_FILTERDEF_SRC_PATH,5,15,110,14,ES_AUTOHSCROLL\r
+END\r
+\r
+IDD_PROPTAB_DEFNOTE DIALOG DISCARDABLE  0, 0, 126, 125\r
+STYLE WS_CHILD | WS_BORDER\r
+FONT 9, "Tahoma"\r
+BEGIN\r
+    EDITTEXT        IDC_PROPTAB_DEFNOTE_PATH,5,45,115,12,ES_AUTOHSCROLL | \r
+                    ES_READONLY\r
+    PUSHBUTTON      "Use current",IDC_PROPTAB_DEFNOTE_SETCURRENT,60,65,60,14\r
+    PUSHBUTTON      "Use blank",IDC_PROPTAB_DEFNOTE_SETBLANK,60,85,60,14\r
+    LTEXT           "Top page",IDC_PROPTAB_DEFNOTE_LABEL,5,30,28,8\r
+    CONTROL         "Use last",IDC_PROPTAB_DEFNOTE_USELAST,"Button",\r
+                    BS_AUTOCHECKBOX | WS_TABSTOP,5,10,120,10\r
+END\r
+\r
+IDD_BOOKMARK_EDIT DIALOG DISCARDABLE  0, 0, 134, 99\r
+STYLE DS_MODALFRAME | DS_CENTER | WS_POPUP | WS_CAPTION | WS_SYSMENU\r
+CAPTION "Edit bookmarks"\r
+FONT 9, "Tahoma"\r
+BEGIN\r
+    DEFPUSHBUTTON   "OK",IDOK,10,80,50,14\r
+    PUSHBUTTON      "Cancel",IDCANCEL,65,80,50,14\r
+    CONTROL         "List1",IDC_BMEDIT_LIST,"SysListView32",LVS_REPORT | \r
+                    WS_BORDER | WS_TABSTOP,25,5,75,70\r
+    PUSHBUTTON      "\81ª",IDC_BMEDIT_UP,0,15,20,14\r
+    PUSHBUTTON      "\81«",IDC_BMEDIT_DOWN,0,35,20,14\r
+    PUSHBUTTON      "Del",IDC_BMEDIT_DELETE,105,60,20,14\r
+END\r
+\r
+IDD_PROPTAB_EXTAPP DIALOG DISCARDABLE  0, 0, 126, 126\r
+STYLE WS_CHILD | WS_BORDER\r
+FONT 9, "Tahoma"\r
+BEGIN\r
+    CONTROL         "Use file association",IDC_PROP_EXTAPP_USEASSOC,"Button",\r
+                    BS_AUTOCHECKBOX | NOT WS_VISIBLE | WS_DISABLED | \r
+                    WS_TABSTOP,30,75,74,10\r
+    EDITTEXT        IDC_PROP_EXTAPP_PATH_EXTAPP1,10,15,80,12,ES_AUTOHSCROLL\r
+    EDITTEXT        IDC_PROP_EXTAPP_PATH_EXTAPP2,10,46,80,12,ES_AUTOHSCROLL\r
+    LTEXT           "Application1",IDC_PROP_EXTAPP_TTL_EXTAPP1,5,0,60,8\r
+    LTEXT           "Application2",IDC_PROP_EXTAPP_TTL_EXTAPP2,5,30,60,8\r
+    PUSHBUTTON      "...",IDC_PROPTAB_EXTAPP_CHOOSE1,95,15,20,10\r
+    PUSHBUTTON      "...",IDC_PROPTAB_EXTAPP_CHOOSE2,95,46,20,10\r
+    EDITTEXT        IDC_PROP_EXTAPP_CAUTION,5,65,120,60,ES_MULTILINE | \r
+                    ES_AUTOVSCROLL | ES_READONLY\r
+END\r
+\r
+\r
+/////////////////////////////////////////////////////////////////////////////\r
+//\r
+// DESIGNINFO\r
+//\r
+\r
+#ifdef APSTUDIO_INVOKED\r
+GUIDELINES DESIGNINFO DISCARDABLE \r
+BEGIN\r
+    IDD_PROPTAB_FOLDER, DIALOG\r
+    BEGIN\r
+        RIGHTMARGIN, 126\r
+        BOTTOMMARGIN, 103\r
+    END\r
+\r
+    IDD_PROPTAB_PASS_TIMEOUT, DIALOG\r
+    BEGIN\r
+        BOTTOMMARGIN, 120\r
+    END\r
+\r
+    IDD_PROPTAB_FONT, DIALOG\r
+    BEGIN\r
+        LEFTMARGIN, 7\r
+        RIGHTMARGIN, 125\r
+        TOPMARGIN, 7\r
+        BOTTOMMARGIN, 125\r
+    END\r
+\r
+    IDD_PROPTAB_INSDATE, DIALOG\r
+    BEGIN\r
+        LEFTMARGIN, 7\r
+        RIGHTMARGIN, 125\r
+        TOPMARGIN, 7\r
+        BOTTOMMARGIN, 115\r
+    END\r
+\r
+    IDD_PROPTAB_KEEPCARET, DIALOG\r
+    BEGIN\r
+        LEFTMARGIN, 7\r
+        RIGHTMARGIN, 105\r
+        TOPMARGIN, 7\r
+        BOTTOMMARGIN, 70\r
+    END\r
+\r
+    IDD_SEARCH, DIALOG\r
+    BEGIN\r
+        LEFTMARGIN, 7\r
+        RIGHTMARGIN, 112\r
+        TOPMARGIN, 7\r
+        BOTTOMMARGIN, 131\r
+    END\r
+\r
+    IDD_PROPTAB_CODEPAGE, DIALOG\r
+    BEGIN\r
+        LEFTMARGIN, 7\r
+        RIGHTMARGIN, 99\r
+        TOPMARGIN, 7\r
+        BOTTOMMARGIN, 89\r
+    END\r
+\r
+    IDD_SEARCHING, DIALOG\r
+    BEGIN\r
+        LEFTMARGIN, 7\r
+        RIGHTMARGIN, 67\r
+        TOPMARGIN, 7\r
+        BOTTOMMARGIN, 47\r
+    END\r
+\r
+    IDD_GREPTAB_MAIN, DIALOG\r
+    BEGIN\r
+        LEFTMARGIN, 7\r
+        RIGHTMARGIN, 109\r
+        TOPMARGIN, 7\r
+        BOTTOMMARGIN, 129\r
+    END\r
+\r
+    IDD_GREPTAB_PERSIST, DIALOG\r
+    BEGIN\r
+        LEFTMARGIN, 7\r
+        RIGHTMARGIN, 124\r
+        TOPMARGIN, 7\r
+        BOTTOMMARGIN, 129\r
+    END\r
+\r
+    IDD_FILTERCTL, DIALOG\r
+    BEGIN\r
+        LEFTMARGIN, 7\r
+        RIGHTMARGIN, 127\r
+        TOPMARGIN, 7\r
+        BOTTOMMARGIN, 101\r
+    END\r
+\r
+    IDD_FILTERDEF_ADD_LIMIT, DIALOG\r
+    BEGIN\r
+        LEFTMARGIN, 7\r
+        RIGHTMARGIN, 127\r
+        TOPMARGIN, 7\r
+        BOTTOMMARGIN, 59\r
+    END\r
+\r
+    IDD_FILTERDEF_ADD_REGEX, DIALOG\r
+    BEGIN\r
+        LEFTMARGIN, 7\r
+        RIGHTMARGIN, 127\r
+        TOPMARGIN, 7\r
+        BOTTOMMARGIN, 112\r
+    END\r
+\r
+    IDD_FILTERDEF_ADD_SORT, DIALOG\r
+    BEGIN\r
+        LEFTMARGIN, 7\r
+        RIGHTMARGIN, 132\r
+        TOPMARGIN, 7\r
+        BOTTOMMARGIN, 54\r
+    END\r
+\r
+    IDD_FILTERDEF_ADD_TIMESTAMP, DIALOG\r
+    BEGIN\r
+        LEFTMARGIN, 7\r
+        RIGHTMARGIN, 127\r
+        TOPMARGIN, 7\r
+        BOTTOMMARGIN, 80\r
+    END\r
+\r
+    IDD_FILTERDEF_FILTER, DIALOG\r
+    BEGIN\r
+        LEFTMARGIN, 7\r
+        RIGHTMARGIN, 119\r
+        TOPMARGIN, 7\r
+        BOTTOMMARGIN, 124\r
+    END\r
+\r
+    IDD_FILTERDEF_SRC, DIALOG\r
+    BEGIN\r
+        LEFTMARGIN, 7\r
+        RIGHTMARGIN, 119\r
+        TOPMARGIN, 7\r
+        BOTTOMMARGIN, 33\r
+    END\r
+\r
+    IDD_PROPTAB_DEFNOTE, DIALOG\r
+    BEGIN\r
+        LEFTMARGIN, 7\r
+        TOPMARGIN, 7\r
+        BOTTOMMARGIN, 70\r
+    END\r
+\r
+    IDD_BOOKMARK_EDIT, DIALOG\r
+    BEGIN\r
+        LEFTMARGIN, 7\r
+        RIGHTMARGIN, 127\r
+        TOPMARGIN, 7\r
+        BOTTOMMARGIN, 92\r
+    END\r
+\r
+    IDD_PROPTAB_EXTAPP, DIALOG\r
+    BEGIN\r
+        LEFTMARGIN, 7\r
+        RIGHTMARGIN, 120\r
+        TOPMARGIN, 7\r
+        BOTTOMMARGIN, 119\r
+    END\r
+END\r
+#endif    // APSTUDIO_INVOKED\r
+\r
+\r
+/////////////////////////////////////////////////////////////////////////////\r
+//\r
+// Accelerator\r
+//\r
+\r
+IDR_ACCEL_SELECT ACCELERATORS DISCARDABLE \r
+BEGIN\r
+    "C",            IDM_COPY,               VIRTKEY, CONTROL, NOINVERT\r
+    "V",            IDM_PASTE,              VIRTKEY, CONTROL, NOINVERT\r
+    "X",            IDM_CUT,                VIRTKEY, CONTROL, NOINVERT\r
+END\r
+\r
+IDR_ACCEL_DETAIL ACCELERATORS DISCARDABLE \r
+BEGIN\r
+    "B",            IDM_TOGGLEREADONLY,     VIRTKEY, CONTROL, NOINVERT\r
+    "S",            IDM_SAVE,               VIRTKEY, CONTROL, NOINVERT\r
+    VK_ESCAPE,      IDM_RETURNLIST,         VIRTKEY, NOINVERT\r
+    "Z",            IDM_UNDO,               VIRTKEY, CONTROL, NOINVERT\r
+END\r
+\r
+#endif    // Japanese resources\r
+/////////////////////////////////////////////////////////////////////////////\r
+\r
+\r
+/////////////////////////////////////////////////////////////////////////////\r
+// English (U.S.) resources\r
+\r
+#if !defined(AFX_RESOURCE_DLL) || defined(AFX_TARG_ENU)\r
+#ifdef _WIN32\r
+LANGUAGE LANG_ENGLISH, SUBLANG_ENGLISH_US\r
+#pragma code_page(1252)\r
+#endif //_WIN32\r
+\r
+#ifdef APSTUDIO_INVOKED\r
+/////////////////////////////////////////////////////////////////////////////\r
+//\r
+// TEXTINCLUDE\r
+//\r
+\r
+1 TEXTINCLUDE DISCARDABLE \r
+BEGIN\r
+    "resource.h\0"\r
+END\r
+\r
+2 TEXTINCLUDE DISCARDABLE \r
+BEGIN\r
+    "#include ""afxres.h""\r\n"\r
+    "\0"\r
+END\r
+\r
+3 TEXTINCLUDE DISCARDABLE \r
+BEGIN\r
+    "\r\n"\r
+    "\0"\r
+END\r
+\r
+#endif    // APSTUDIO_INVOKED\r
+\r
+#endif    // English (U.S.) resources\r
+/////////////////////////////////////////////////////////////////////////////\r
+\r
+\r
+\r
+#ifndef APSTUDIO_INVOKED\r
+/////////////////////////////////////////////////////////////////////////////\r
+//\r
+// Generated from the TEXTINCLUDE 3 resource.\r
+//\r
+\r
+\r
+/////////////////////////////////////////////////////////////////////////////\r
+#endif    // not APSTUDIO_INVOKED\r
+\r
diff --git a/BE300/Tombo/res/resource.h b/BE300/Tombo/res/resource.h
new file mode 100644 (file)
index 0000000..ae55e45
--- /dev/null
@@ -0,0 +1,254 @@
+//{{NO_DEPENDENCIES}}\r
+// Microsoft Developer Studio generated include file.\r
+// Used by TomboE.rc\r
+//\r
+#define IDS_APP_TITLE                   1\r
+#define IDS_HELLO                       2\r
+#define IDC_HELLOWINCE                  3\r
+#define IDI_TOMBO                       101\r
+#define IDC_MEMODETAILSVIEW             101\r
+#define IDC_MEMOSELECTVIEW              102\r
+#define IDD_ABOUTBOX                    103\r
+#define IDB_MEMOSELECT_IMAGES           104\r
+#define ID_PASSWORDTIMER                104\r
+#define IDD_PASSWORD                    105\r
+#define ID_CMDBAR_MAIN                  105\r
+#define IDD_PROPTAB_FOLDER              106\r
+#define ID_CMDBAR_DETAILS               106\r
+#define IDD_FILESELECT                  107\r
+#define IDC_MEMODETAILSVIEW_NF          107\r
+#define IDB_ARTICLEBOX                  108\r
+#define IDM_SV_MENU_1                   108\r
+#define IDD_PROPTAB_PASSWORD            109\r
+#define IDM_SV_MENU_2                   109\r
+#define IDD_NEWFOLDER                   110\r
+#define IDM_DV_MENU_1                   110\r
+#define IDD_PROPTAB_PASS_TIMEOUT        111\r
+#define IDM_DV_MENU_2                   111\r
+#define IDM_SV_MENU_3                   112\r
+#define IDM_EXTAPP1                     113\r
+#define IDM_EXTAPP2                     114\r
+#define IDB_TOOLBAR                     115\r
+#define IDC_TOMBOEDIT                   115\r
+#define IDB_TOOLBAR_DETAILS             116\r
+#define IDT_SELSCROLL                   116\r
+#define IDD_PROPTAB_FONT                117\r
+#define IDD_PROPTAB_INSDATE             118\r
+#define IDR_ACCEL_SELECT                119\r
+#define IDR_ACCEL_DETAIL                120\r
+#define IDD_PROPTAB_KEEPCARET           121\r
+#define IDB_NEWMEMO                     122\r
+#define IDB_INSDATE1                    123\r
+#define IDB_INSDATE2                    124\r
+#define IDB_SAVE                        125\r
+#define IDB_CUT                         126\r
+#define IDB_COPY                        127\r
+#define IDD_PROPTAB_DEFNOTE             127\r
+#define IDB_PASTE                       128\r
+#define IDB_FINDNEXT                    130\r
+#define IDB_FINDPREV                    131\r
+#define IDD_SEARCH                      132\r
+#define IDB_FIND                        133\r
+#define IDD_PROPTAB_CODEPAGE            134\r
+#define IDD_PROPTAB_EXTAPP              135\r
+#define IDD_SEARCHING                   136\r
+#define IDD_GREPTAB_MAIN                137\r
+#define IDD_GREPTAB_PERSIST             138\r
+#define IDD_FILTERCTL                   139\r
+#define IDB_BOOKMARK                    139\r
+#define IDD_FILTERDEF_ADD_REGEX         140\r
+#define IDB_DELETE                      140\r
+#define IDD_FILTERDEF_ADD_LIMIT         141\r
+#define IDB_TOOL                        141\r
+#define IDD_FILTERDEF_ADD_TIMESTAMP     142\r
+#define IDD_FILTERDEF_ADD_SORT          143\r
+#define IDD_FILTERDEF_FILTER            144\r
+#define IDD_FILTERDEF_SRC               145\r
+#define IDD_BOOKMARK_EDIT               146\r
+#define IDM_MAIN_MENUITEM1              401\r
+#define IDM_MAIN_MENUITEM2              402\r
+#define IDS_MAIN_MENUITEM1              410\r
+#define IDS_MAIN_MENUITEM2              412\r
+#define IDM_MAIN_MENU                   450\r
+#define IDR_MENU_MAIN                   450\r
+#define IDM_DETAILS_MENU                460\r
+#define IDR_MENU_DETAILS                460\r
+#define IDC_PASS                        1001\r
+#define IDC_TOPFOLDER                   1002\r
+#define IDC_FOLDERSEL                   1003\r
+#define IDC_FILESELECT_TREE             1004\r
+#define IDC_PASS1                       1005\r
+#define IDC_PASS2                       1006\r
+#define IDC_PROP_PASSWORD_DESC          1007\r
+#define IDC_NEWFOLDER_NAME              1008\r
+#define IDC_PASS_TIMEOUT                1010\r
+#define IDC_FONT_SELECT_NAME            1011\r
+#define IDC_FONT_DETAILS_NAME           1012\r
+#define IDC_FONT_SELECT_SIZE            1013\r
+#define IDC_FONT_DETAILS_SIZE           1014\r
+#define IDC_FONT_SELECT_USEDEFAULT      1015\r
+#define IDC_FONT_DETAILS_USEDEFAULT     1016\r
+#define IDC_PROP_DATEFORMAT1            1017\r
+#define IDC_PROP_DATEFORMAT2            1018\r
+#define IDC_PROP_SETPASS                1018\r
+#define IDC_PROP_KEEPCARET              1019\r
+#define IDC_PROP_TABSTOP                1020\r
+#define IDC_KEEPTITLE                   1021\r
+#define IDC_SEARCH_STRING               1022\r
+#define IDC_SEARCH_CASESENSITIVE        1023\r
+#define IDC_SEARCH_ENCRYPTMEMO          1024\r
+#define IDC_COPYRIGHT                   1025\r
+#define IDC_PROP_EXTAPP_PATH_EXTAPP1    1025\r
+#define IDC_FILENAMEONLY                1026\r
+#define IDC_PROP_EXTAPP_PATH_EXTAPP2    1026\r
+#define IDC_DATEFORMAT_DESC             1028\r
+#define IDC_CODEPAGE                    1030\r
+#define IDC_CODEPAGETAB_CODEPAGE        1030\r
+#define IDC_PROPTAB_CODEPAGE_CODEPAGE   1030\r
+#define IDC_VERSIONINFO                 1031\r
+#define IDC_SEARCH_DIRECTION_UP         1032\r
+#define IDC_SEARCH_DIRECTION_DOWN       1033\r
+#define IDC_SEARCHMSG                   1034\r
+#define IDC_GREPTAB_MAIN_SEARCHSTRING   1035\r
+#define IDC_GREPTAB_MAIN_CASESENSITIVE  1036\r
+#define IDC_GREPTAB_MAIN_ENCRYPTNOTE    1037\r
+#define IDC_GREPTAB_MAIN_FILENAME       1038\r
+#define IDC_GREPTAB_MAIN_STARTDIR       1039\r
+#define IDC_BMEDIT_LIST                 1039\r
+#define IDC_PROP_READONLY               1040\r
+#define IDC_BMEDIT_UP                   1040\r
+#define IDC_FILTERCTL_LIST              1041\r
+#define IDC_FONT_SELECT_CLEARTYPE       1041\r
+#define IDC_BMEDIT_DOWN                 1041\r
+#define IDC_FILTERCTL_KEEP              1042\r
+#define IDC_FONT_DETAILS_CLEARTYPE      1042\r
+#define IDC_BMEDIT_DELETE               1042\r
+#define IDC_FILTERCTL_UP                1043\r
+#define IDC_FILTERDEF_SRC_PATH          1043\r
+#define IDC_FILTERDEF_ADD_REGEX_LABEL   1043\r
+#define IDC_FILTERCTL_DOWN              1044\r
+#define IDC_FILTERDEF_FILTER_LIST       1044\r
+#define IDC_FILTERDEF_ADD_LIMIT_ITEMS   1044\r
+#define IDC_FILTERCTL_NEW               1045\r
+#define IDC_FILTERDEF_FILTER_UP         1045\r
+#define IDC_FILTERDEF_ADD_TIMESTAMP_BASEPOINT 1045\r
+#define IDC_FILTERDEF_FILTER_DOWN       1046\r
+#define IDC_FILTERCTL_DELETE            1046\r
+#define IDC_PROPTAB_DEFNOTE_PATH        1046\r
+#define IDC_FILTERDEF_ADD_SORT_LABEL    1046\r
+#define IDC_FILTERDEF_FILTER_REGEX      1047\r
+#define IDC_FILTERCTL_RENAME            1047\r
+#define IDC_PROPTAB_DEFNOTE_SETCURRENT  1047\r
+#define IDC_GREPTAB_MAIN_POSLABEL       1047\r
+#define IDC_FILTERDEF_REGEX_SEARCHSTR   1048\r
+#define IDC_FILTERDEF_FILTER_LIMIT      1048\r
+#define IDC_PROPTAB_DEFNOTE_SETBLANK    1048\r
+#define IDC_GREPTAB_MAIN_STRLABEL       1048\r
+#define IDC_FILTERDEF_REGEX_CASESENSITIVE 1049\r
+#define IDC_FILTERDEF_FILTER_TIMESTAMP  1049\r
+#define IDC_PROPTAB_FOLDER_LABEL        1049\r
+#define IDC_FILTERDEF_REGEX_CRYPTMEMO   1050\r
+#define IDC_FILTERDEF_FILTER_SORT       1050\r
+#define IDC_PROPTAB_FOLDER_HELP1        1050\r
+#define IDC_FILTERDEF_REGEX_FILENAME    1051\r
+#define IDC_FILTERDEF_FILTER_DELETE     1051\r
+#define IDC_PROPTAB_FOLDER_HELP2        1051\r
+#define IDC_FILTERDEF_REGEX_NEGATE      1052\r
+#define IDC_PROPTAB_PASS_TIMEOUT_LABEL  1052\r
+#define IDC_PROPTAB_PASS_TIMEOUT_HELP   1053\r
+#define IDC_FILTERDEF_LIMIT_NUMLIMIT    1054\r
+#define IDC_PROPTAB_FONT_TREE_LABEL     1054\r
+#define IDC_FILTERDEF_TS_DELTADAY       1055\r
+#define IDC_PROPTAB_FONT_EDIT_LABEL     1055\r
+#define IDC_FILTERDEF_TS_OLDER          1056\r
+#define IDC_PROPTAB_INSDATE_DATE1       1056\r
+#define IDC_FILTERDEF_TS_NEWER          1057\r
+#define IDC_PROPTAB_INSDATE_DATE2       1057\r
+#define IDC_FILTERDEF_SORT_TYPE         1058\r
+#define IDC_PROPTAB_DEFNOTE_LABEL       1058\r
+#define IDC_SEARCH_FIND_LABEL           1059\r
+#define IDC_SEARCH_DIRECT_LABEL         1060\r
+#define IDC_PROPTAB_DISABLESAVEDLG      1061\r
+#define IDC_PASS_TIMEOUT_USE_SAFEFILE   1062\r
+#define IDC_PROPTAB_PASS_TIMEOUT_SAFEFILE_HELP 1063\r
+#define IDC_PROP_EXTAPP_USEASSOC        1064\r
+#define IDC_PROPTAB_DEFNOTE_USELAST     1064\r
+#define IDC_PROP_EXTAPP_TTL_EXTAPP1     1065\r
+#define IDC_PROPTAB_CODEPAGE_LABEL      1065\r
+#define IDC_PROP_EXTAPP_TTL_EXTAPP2     1066\r
+#define IDC_PROPTAB_CODEPAGE_NOTICE     1066\r
+#define IDC_PROPTAB_EXTAPP_CHOOSE1      1067\r
+#define IDC_PROPTAB_EXTAPP_CHOOSE2      1068\r
+#define IDC_PROP_EXTAPP_CAUTION         1069\r
+#define IDM_ACTIONBUTTON                30001\r
+#define IDM_FILE_EXIT                   40002\r
+#define IDM_HELP_ABOUT                  40003\r
+#define IDM_EXIT                        40003\r
+#define IDS_MENUITEM40005               40006\r
+#define IDM_EDIT_MEMO                   40007\r
+#define IDM_DETAILSVIEW_CUT             40008\r
+#define IDM_DETAILSVIEW_COPY            40009\r
+#define IDM_DETAILSVIEW_PASTE           40010\r
+#define IDS_MENUITEM40011               40012\r
+#define IDM_MENUITEM3                   40013\r
+#define IDS_MENUITEM40014               40015\r
+#define IDS_MENUITEM40017               40018\r
+#define IDM_NEWMEMO                     40019\r
+#define IDS_MENUITEM40020               40021\r
+#define IDM_RETURNLIST                  40022\r
+#define IDM_ABOUT                       40023\r
+#define IDM_ENCRYPT                     40024\r
+#define IDM_DECRYPT                     40025\r
+#define IDS_MENUITEM40027               40028\r
+#define IDM_MENU_ENCRYPT                40029\r
+#define IDS_PROPTAB_FOLDER              40029\r
+#define IDM_DELETEITEM                  40030\r
+#define IDS_PROPTAB_TITLE               40030\r
+#define IDM_PROPERTY                    40031\r
+#define IDS_PROPTAB_PASSWORD            40031\r
+#define IDS_PROPERTY_PASSWORD_DESC      40032\r
+#define IDM_NEW                         40032\r
+#define IDS_MENUITEM40033               40034\r
+#define IDM_NEWFOLDER                   40035\r
+#define IDS_PROPTAB_PASS_TIMEOUT        40035\r
+#define IDM_FORGETPASS                  40036\r
+#define IDS_MENUITEM40037               40038\r
+#define IDS_MENUITEM40039               40040\r
+#define IDM_COPY                        40041\r
+#define IDS_MENUITEM40041               40041\r
+#define IDS_PROPTAB_FONT                40041\r
+#define IDM_PASTE                       40042\r
+#define IDS_PROPTAB_DATE                40042\r
+#define IDM_CUT                         40043\r
+#define IDS_PROPTAB_KEEPCARET           40043\r
+#define IDS_PROPTAB_CODEPAGE            40044\r
+#define IDM_SAVE                        40045\r
+#define IDS_GREPTAB_MAIN                40045\r
+#define IDM_INSDATE1                    40046\r
+#define IDS_GREPTAB_PERSIST             40046\r
+#define IDM_INSDATE2                    40047\r
+#define IDS_PROPTAB_DEFNOTE             40047\r
+#define IDM_SELALL                      40048\r
+#define IDM_DETAILS_HSCROLL             40049\r
+#define IDM_SEARCH                      40050\r
+#define IDM_SEARCH_NEXT                 40051\r
+#define IDM_SEARCH_PREV                 40052\r
+#define IDM_RENAME                      40053\r
+#define IDM_TOGGLEREADONLY              40054\r
+#define IDM_UNDO                        40055\r
+#define IDM_GREP                        40056\r
+#define IDM_VFOLDER_DEF                 40057\r
+#define IDM_BOOKMARK_ADD                40058\r
+#define IDM_BOOKMARK_CONFIG             40059\r
+#define IDM_TOGGLEPANE                  40060\r
+\r
+// Next default values for new objects\r
+// \r
+#ifdef APSTUDIO_INVOKED\r
+#ifndef APSTUDIO_READONLY_SYMBOLS\r
+#define _APS_NEXT_RESOURCE_VALUE        141\r
+#define _APS_NEXT_COMMAND_VALUE         40061\r
+#define _APS_NEXT_CONTROL_VALUE         1067\r
+#define _APS_NEXT_SYMED_VALUE           117\r
+#endif\r
+#endif\r
diff --git a/CppUnitTestApp/CppUnitTestApp.cpp b/CppUnitTestApp/CppUnitTestApp.cpp
new file mode 100644 (file)
index 0000000..0f46ae6
--- /dev/null
@@ -0,0 +1,84 @@
+// CppUnitTestApp.cpp : Defines the class behaviors for the application.\r
+//\r
+\r
+#include "stdafx.h"\r
+#include "CppUnitTestApp.h"\r
+#include "CppUnitTestAppDlg.h"\r
+#include <cppunit/ui/mfc/TestRunner.h>\r
+#include <cppunit/extensions/TestFactoryRegistry.h>\r
+\r
+#ifdef _DEBUG\r
+#define new DEBUG_NEW\r
+#undef THIS_FILE\r
+static char THIS_FILE[] = __FILE__;\r
+#endif\r
+\r
+/////////////////////////////////////////////////////////////////////////////\r
+// CppUnitTestApp\r
+\r
+BEGIN_MESSAGE_MAP(CppUnitTestApp, CWinApp)\r
+       //{{AFX_MSG_MAP(CppUnitTestApp)\r
+               // NOTE - the ClassWizard will add and remove mapping macros here.\r
+               //    DO NOT EDIT what you see in these blocks of generated code!\r
+       //}}AFX_MSG\r
+       ON_COMMAND(ID_HELP, CWinApp::OnHelp)\r
+END_MESSAGE_MAP()\r
+\r
+/////////////////////////////////////////////////////////////////////////////\r
+// CppUnitTestApp construction\r
+\r
+CppUnitTestApp::CppUnitTestApp()\r
+{\r
+       // TODO: add construction code here,\r
+       // Place all significant initialization in InitInstance\r
+}\r
+\r
+/////////////////////////////////////////////////////////////////////////////\r
+// The one and only CppUnitTestApp object\r
+\r
+CppUnitTestApp theApp;\r
+\r
+HINSTANCE g_hInstance;\r
+\r
+/////////////////////////////////////////////////////////////////////////////\r
+// CppUnitTestApp initialization\r
+\r
+BOOL \r
+CppUnitTestApp::InitInstance()\r
+{\r
+       AfxEnableControlContainer();\r
+       g_hInstance = m_hInstance;\r
+\r
+       // Standard initialization\r
+       // If you are not using these features and wish to reduce the size\r
+       //  of your final executable, you should remove from the following\r
+       //  the specific initialization routines you do not need.\r
+\r
+#ifdef _AFXDLL\r
+# if _MSC_VER < 1300   // vc6\r
+       Enable3dControls();                     // Call this when using MFC in a shared DLL\r
+# endif\r
+#else\r
+       Enable3dControlsStatic();       // Call this when linking to MFC statically\r
+#endif\r
+\r
+  SetRegistryKey(_T("Local AppWizard-Generated Applications"));\r
+\r
+  RunTests();        \r
+\r
+  \r
+  // Since the dialog has been closed, return FALSE so that we exit the\r
+       //  application, rather than start the application's message pump.\r
+       return FALSE;\r
+}\r
+\r
+\r
+void \r
+CppUnitTestApp::RunTests()\r
+{\r
+  CPPUNIT_NS::MfcUi::TestRunner runner;\r
+\r
+  runner.addTest( CPPUNIT_NS::TestFactoryRegistry::getRegistry().makeTest() );\r
+\r
+  runner.run();\r
+}\r
diff --git a/CppUnitTestApp/CppUnitTestApp.dsp b/CppUnitTestApp/CppUnitTestApp.dsp
new file mode 100644 (file)
index 0000000..21ce146
--- /dev/null
@@ -0,0 +1,374 @@
+# Microsoft Developer Studio Project File - Name="CppUnitTestApp" - Package Owner=<4>\r
+# Microsoft Developer Studio Generated Build File, Format Version 6.00\r
+# ** \95Ò\8fW\82µ\82È\82¢\82Å\82­\82¾\82³\82¢ **\r
+\r
+# TARGTYPE "Win32 (x86) Application" 0x0101\r
+\r
+CFG=CppUnitTestApp - Win32 Debug\r
+!MESSAGE \82±\82ê\82Í\97L\8cø\82ÈÒ²¸Ì§²Ù\82Å\82Í\82 \82è\82Ü\82¹\82ñ\81\82±\82ÌÌßÛ¼Þª¸Ä\82ðËÞÙÄÞ\82·\82é\82½\82ß\82É\82Í NMAKE \82ð\8eg\97p\82µ\82Ä\82­\82¾\82³\82¢\81B\r
+!MESSAGE [Ò²¸Ì§²Ù\82Ì´¸½Îß°Ä] ºÏÝÄÞ\82ð\8eg\97p\82µ\82Ä\8eÀ\8ds\82µ\82Ä\82­\82¾\82³\82¢\r
+!MESSAGE \r
+!MESSAGE NMAKE /f "CppUnitTestApp.mak".\r
+!MESSAGE \r
+!MESSAGE NMAKE \82Ì\8eÀ\8ds\8e\9e\82É\8d\\90¬\82ð\8ew\92è\82Å\82«\82Ü\82·\r
+!MESSAGE ºÏÝÄޠײÝ\8fã\82ÅϸÛ\82Ì\90Ý\92è\82ð\92è\8b`\82µ\82Ü\82·\81B\97á:\r
+!MESSAGE \r
+!MESSAGE NMAKE /f "CppUnitTestApp.mak" CFG="CppUnitTestApp - Win32 Debug"\r
+!MESSAGE \r
+!MESSAGE \91I\91ð\89Â\94\\82ÈËÞÙÄÞ Ó°ÄÞ:\r
+!MESSAGE \r
+!MESSAGE "CppUnitTestApp - Win32 Release" ("Win32 (x86) Application" \97p)\r
+!MESSAGE "CppUnitTestApp - Win32 Debug" ("Win32 (x86) Application" \97p)\r
+!MESSAGE \r
+\r
+# Begin Project\r
+# PROP AllowPerConfigDependencies 0\r
+# PROP Scc_ProjName ""\r
+# PROP Scc_LocalPath ""\r
+CPP=cl.exe\r
+MTL=midl.exe\r
+RSC=rc.exe\r
+\r
+!IF  "$(CFG)" == "CppUnitTestApp - Win32 Release"\r
+\r
+# PROP BASE Use_MFC 6\r
+# PROP BASE Use_Debug_Libraries 0\r
+# PROP BASE Output_Dir "Release"\r
+# PROP BASE Intermediate_Dir "Release"\r
+# PROP BASE Target_Dir ""\r
+# PROP Use_MFC 6\r
+# PROP Use_Debug_Libraries 0\r
+# PROP Output_Dir "Release"\r
+# PROP Intermediate_Dir "Release"\r
+# PROP Ignore_Export_Lib 0\r
+# PROP Target_Dir ""\r
+# ADD BASE CPP /nologo /MD /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_WINDOWS" /D "_AFXDLL" /Yu"stdafx.h" /FD /c\r
+# ADD CPP /nologo /MD /W3 /GR /GX /O2 /I "../../../include" /I "../.." /I "../Src" /I "../Src/TomboLib" /I "." /D "NDEBUG" /D "WIN32" /D "_WINDOWS" /D "_AFXDLL" /D "_MBCS" /D "CPPUNIT_USE_TYPEINFO" /D "PLATFORM_WIN32" /FD /c\r
+# SUBTRACT CPP /YX /Yc /Yu\r
+# ADD BASE MTL /nologo /D "NDEBUG" /mktyplib203 /win32\r
+# ADD MTL /nologo /D "NDEBUG" /mktyplib203 /win32\r
+# ADD BASE RSC /l 0x40c /d "NDEBUG" /d "_AFXDLL"\r
+# ADD RSC /l 0x40c /d "NDEBUG" /d "_AFXDLL"\r
+BSC32=bscmake.exe\r
+# ADD BASE BSC32 /nologo\r
+# ADD BSC32 /nologo\r
+LINK32=link.exe\r
+# ADD BASE LINK32 /nologo /subsystem:windows /machine:I386\r
+# ADD LINK32 ../../../Lib/cppunit.lib ../../../Lib/testrunner.lib /nologo /subsystem:windows /machine:I386\r
+\r
+!ELSEIF  "$(CFG)" == "CppUnitTestApp - Win32 Debug"\r
+\r
+# PROP BASE Use_MFC 6\r
+# PROP BASE Use_Debug_Libraries 1\r
+# PROP BASE Output_Dir "Debug"\r
+# PROP BASE Intermediate_Dir "Debug"\r
+# PROP BASE Target_Dir ""\r
+# PROP Use_MFC 6\r
+# PROP Use_Debug_Libraries 1\r
+# PROP Output_Dir "Debug"\r
+# PROP Intermediate_Dir "Debug"\r
+# PROP Ignore_Export_Lib 0\r
+# PROP Target_Dir ""\r
+# ADD BASE CPP /nologo /MDd /W3 /Gm /GX /ZI /Od /D "WIN32" /D "_DEBUG" /D "_WINDOWS" /D "_AFXDLL" /Yu"stdafx.h" /FD /GZ /c\r
+# ADD CPP /nologo /MDd /W3 /Gm /GR /GX /ZI /Od /I "../Src" /I "../Src/TomboLib" /I "../Src/YAEdit" /I "." /I "../cppunit/include" /I "../oniguruma/" /I "../Src/TSSRepository/" /D "_DEBUG" /D "WIN32" /D "_WINDOWS" /D "_AFXDLL" /D "_MBCS" /D "CPPUNIT_USE_TYPEINFO" /D "PLATFORM_WIN32" /D "USE_CPPUNIT" /D "TOMBO" /FD /GZ /c\r
+# SUBTRACT CPP /YX /Yc /Yu\r
+# ADD BASE MTL /nologo /D "_DEBUG" /mktyplib203 /win32\r
+# ADD MTL /nologo /D "_DEBUG" /mktyplib203 /win32\r
+# ADD BASE RSC /l 0x40c /d "_DEBUG" /d "_AFXDLL"\r
+# ADD RSC /l 0x40c /d "_DEBUG" /d "_AFXDLL"\r
+BSC32=bscmake.exe\r
+# ADD BASE BSC32 /nologo\r
+# ADD BSC32 /nologo\r
+LINK32=link.exe\r
+# ADD BASE LINK32 /nologo /subsystem:windows /debug /machine:I386 /pdbtype:sept\r
+# ADD LINK32 ../cppunit/lib/cppunitd.lib ../cppunit/lib/testrunnerd.lib ws2_32.lib wininet.lib /nologo /subsystem:windows /debug /machine:I386 /pdbtype:sept\r
+\r
+!ENDIF \r
+\r
+# Begin Target\r
+\r
+# Name "CppUnitTestApp - Win32 Release"\r
+# Name "CppUnitTestApp - Win32 Debug"\r
+# Begin Group "GUI"\r
+\r
+# PROP Default_Filter ""\r
+# Begin Source File\r
+\r
+SOURCE=.\CppUnitTestApp.cpp\r
+# End Source File\r
+# Begin Source File\r
+\r
+SOURCE=.\CppUnitTestApp.h\r
+# End Source File\r
+# Begin Source File\r
+\r
+SOURCE=.\CppUnitTestApp.rc\r
+# End Source File\r
+# Begin Source File\r
+\r
+SOURCE=.\CppUnitTestAppDlg.cpp\r
+# End Source File\r
+# Begin Source File\r
+\r
+SOURCE=.\CppUnitTestAppDlg.h\r
+# End Source File\r
+# Begin Source File\r
+\r
+SOURCE=.\Resource.h\r
+# End Source File\r
+# Begin Source File\r
+\r
+SOURCE=.\StdAfx.cpp\r
+# ADD CPP /Yc"stdafx.h"\r
+# End Source File\r
+# Begin Source File\r
+\r
+SOURCE=.\StdAfx.h\r
+# End Source File\r
+# End Group\r
+# Begin Group "Resource Files"\r
+\r
+# PROP Default_Filter "ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe"\r
+# Begin Source File\r
+\r
+SOURCE=.\res\CppUnitTestApp.ico\r
+# End Source File\r
+# Begin Source File\r
+\r
+SOURCE=.\res\CppUnitTestApp.rc2\r
+# End Source File\r
+# End Group\r
+# Begin Group "Tests"\r
+\r
+# PROP Default_Filter ""\r
+# Begin Source File\r
+\r
+SOURCE=.\test\CryptTest.cpp\r
+# End Source File\r
+# Begin Source File\r
+\r
+SOURCE=.\test\MemoInfoTest.cpp\r
+# End Source File\r
+# Begin Source File\r
+\r
+SOURCE=.\test\RegexTest.cpp\r
+# End Source File\r
+# Begin Source File\r
+\r
+SOURCE=.\test\SharedStringTest.cpp\r
+# End Source File\r
+# Begin Source File\r
+\r
+SOURCE=.\test\TomboURITest.cpp\r
+# End Source File\r
+# Begin Source File\r
+\r
+SOURCE=.\test\UniConvTest.cpp\r
+# End Source File\r
+# Begin Source File\r
+\r
+SOURCE=.\test\URIScannerTest.cpp\r
+# End Source File\r
+# Begin Source File\r
+\r
+SOURCE=.\test\VarBufferTest.cpp\r
+# End Source File\r
+# Begin Source File\r
+\r
+SOURCE=.\test\XXXTest.cpp\r
+# End Source File\r
+# Begin Source File\r
+\r
+SOURCE=.\test\YAEditDocTest.cpp\r
+# End Source File\r
+# End Group\r
+# Begin Group "Target"\r
+\r
+# PROP Default_Filter ""\r
+# Begin Group "YAEdit"\r
+\r
+# PROP Default_Filter ""\r
+# Begin Source File\r
+\r
+SOURCE=..\Src\YAEdit\MemManager.cpp\r
+# End Source File\r
+# Begin Source File\r
+\r
+SOURCE=..\Src\YAEdit\MemManager.h\r
+# End Source File\r
+# Begin Source File\r
+\r
+SOURCE=..\Src\YAEdit\PhysicalLineManager.cpp\r
+# End Source File\r
+# Begin Source File\r
+\r
+SOURCE=..\Src\YAEdit\PhysicalLineManager.h\r
+# End Source File\r
+# Begin Source File\r
+\r
+SOURCE=..\Src\YAEdit\Region.h\r
+# End Source File\r
+# Begin Source File\r
+\r
+SOURCE=..\Src\YAEdit\StringSplitter.cpp\r
+# End Source File\r
+# Begin Source File\r
+\r
+SOURCE=..\Src\YAEdit\StringSplitter.h\r
+# End Source File\r
+# Begin Source File\r
+\r
+SOURCE=..\Src\YAEdit\YAEditDoc.cpp\r
+# End Source File\r
+# Begin Source File\r
+\r
+SOURCE=..\Src\YAEdit\YAEditDoc.h\r
+# End Source File\r
+# End Group\r
+# Begin Group "misc"\r
+\r
+# PROP Default_Filter ""\r
+# Begin Source File\r
+\r
+SOURCE=..\Src\TomboLib\AutoPtr.cpp\r
+# End Source File\r
+# Begin Source File\r
+\r
+SOURCE=..\Src\GNUPG\bithelp.h\r
+# End Source File\r
+# Begin Source File\r
+\r
+SOURCE=..\Src\GNUPG\blowfish.c\r
+# End Source File\r
+# Begin Source File\r
+\r
+SOURCE=..\Src\Chipher.h\r
+# End Source File\r
+# Begin Source File\r
+\r
+SOURCE=..\Src\Crypt.cpp\r
+# End Source File\r
+# Begin Source File\r
+\r
+SOURCE=..\Src\Crypt.h\r
+# End Source File\r
+# Begin Source File\r
+\r
+SOURCE=..\Src\CryptManager.cpp\r
+# End Source File\r
+# Begin Source File\r
+\r
+SOURCE=..\Src\CryptManager.h\r
+# End Source File\r
+# Begin Source File\r
+\r
+SOURCE=..\Src\TomboLib\File.cpp\r
+# End Source File\r
+# Begin Source File\r
+\r
+SOURCE=..\Src\TomboLib\File.h\r
+# End Source File\r
+# Begin Source File\r
+\r
+SOURCE=..\Src\TomboLib\HttpUtil.cpp\r
+# End Source File\r
+# Begin Source File\r
+\r
+SOURCE=..\Src\TomboLib\HttpUtil.h\r
+# End Source File\r
+# Begin Source File\r
+\r
+SOURCE=.\test\HttpUtilTest.cpp\r
+# End Source File\r
+# Begin Source File\r
+\r
+SOURCE=..\Src\TSSRepository\LocalCache.cpp\r
+# End Source File\r
+# Begin Source File\r
+\r
+SOURCE=..\Src\TSSRepository\LocalCache.h\r
+# End Source File\r
+# Begin Source File\r
+\r
+SOURCE=.\test\LocalCacheTest.cpp\r
+# End Source File\r
+# Begin Source File\r
+\r
+SOURCE=..\Src\GNUPG\md5.c\r
+# End Source File\r
+# Begin Source File\r
+\r
+SOURCE=..\Src\MemoInfo.cpp\r
+# End Source File\r
+# Begin Source File\r
+\r
+SOURCE=..\Src\MemoInfo.h\r
+# End Source File\r
+# Begin Source File\r
+\r
+SOURCE=..\Src\Message.cpp\r
+# End Source File\r
+# Begin Source File\r
+\r
+SOURCE=..\Src\Message.h\r
+# End Source File\r
+# Begin Source File\r
+\r
+SOURCE=..\Src\TomboURI.cpp\r
+# End Source File\r
+# Begin Source File\r
+\r
+SOURCE=..\Src\TomboURI.h\r
+# End Source File\r
+# Begin Source File\r
+\r
+SOURCE=..\Src\TomboLib\TString.cpp\r
+# End Source File\r
+# Begin Source File\r
+\r
+SOURCE=..\Src\TomboLib\TString.h\r
+# End Source File\r
+# Begin Source File\r
+\r
+SOURCE=..\Src\TomboLib\Uniconv.cpp\r
+# End Source File\r
+# Begin Source File\r
+\r
+SOURCE=..\Src\TomboLib\Uniconv.h\r
+# End Source File\r
+# Begin Source File\r
+\r
+SOURCE=..\Src\URIScanner.cpp\r
+# End Source File\r
+# Begin Source File\r
+\r
+SOURCE=..\Src\URIScanner.h\r
+# End Source File\r
+# Begin Source File\r
+\r
+SOURCE=..\Src\regex\util.c\r
+# End Source File\r
+# Begin Source File\r
+\r
+SOURCE=..\Src\TomboLib\VarBuffer.cpp\r
+# End Source File\r
+# Begin Source File\r
+\r
+SOURCE=..\Src\TomboLib\VarBuffer.h\r
+# End Source File\r
+# Begin Source File\r
+\r
+SOURCE=..\oniguruma\win32\oniguruma.lib\r
+# End Source File\r
+# End Group\r
+# End Group\r
+# Begin Source File\r
+\r
+SOURCE=..\Src\TSSRepository\TSSCrypt.cpp\r
+# End Source File\r
+# Begin Source File\r
+\r
+SOURCE=..\Src\TSSRepository\TSSCrypt.h\r
+# End Source File\r
+# End Target\r
+# End Project\r
diff --git a/CppUnitTestApp/CppUnitTestApp.dsw b/CppUnitTestApp/CppUnitTestApp.dsw
new file mode 100644 (file)
index 0000000..6baf3b5
--- /dev/null
@@ -0,0 +1,29 @@
+Microsoft Developer Studio Workspace File, Format Version 6.00\r
+# \8cx\8d\90\82±\82ÌÜ°¸½Íß°½ Ì§²Ù \82ð\95Ò\8fW\82Ü\82½\82Í\8dí\8f\9c\82µ\82È\82¢\82Å\82­\82¾\82³\82¢!\r
+\r
+###############################################################################\r
+\r
+Project: "CppUnitTestApp"=.\CppUnitTestApp.dsp - Package Owner=<4>\r
+\r
+Package=<5>\r
+{{{\r
+}}}\r
+\r
+Package=<4>\r
+{{{\r
+}}}\r
+\r
+###############################################################################\r
+\r
+Global:\r
+\r
+Package=<5>\r
+{{{\r
+}}}\r
+\r
+Package=<3>\r
+{{{\r
+}}}\r
+\r
+###############################################################################\r
+\r
diff --git a/CppUnitTestApp/CppUnitTestApp.h b/CppUnitTestApp/CppUnitTestApp.h
new file mode 100644 (file)
index 0000000..7ae7a52
--- /dev/null
@@ -0,0 +1,52 @@
+// CppUnitTestApp.h : main header file for the CPPUNITTESTAPP application\r
+//\r
+\r
+#if !defined(AFX_CPPUNITTESTAPP_H__6569C745_ED89_4902_9794_AD8422583BC1__INCLUDED_)\r
+#define AFX_CPPUNITTESTAPP_H__6569C745_ED89_4902_9794_AD8422583BC1__INCLUDED_\r
+\r
+#if _MSC_VER > 1000\r
+#pragma once\r
+#endif // _MSC_VER > 1000\r
+\r
+#ifndef __AFXWIN_H__\r
+       #error include 'stdafx.h' before including this file for PCH\r
+#endif\r
+\r
+#include "resource.h"          // main symbols\r
+\r
+/////////////////////////////////////////////////////////////////////////////\r
+// CppUnitTestApp:\r
+// See CppUnitTestApp.cpp for the implementation of this class\r
+//\r
+\r
+class CppUnitTestApp : public CWinApp\r
+{\r
+public:\r
+       CppUnitTestApp();\r
+\r
+// Overrides\r
+       // ClassWizard generated virtual function overrides\r
+       //{{AFX_VIRTUAL(CppUnitTestApp)\r
+       public:\r
+       virtual BOOL InitInstance();\r
+       //}}AFX_VIRTUAL\r
+\r
+// Implementation\r
+\r
+       //{{AFX_MSG(CppUnitTestApp)\r
+               // NOTE - the ClassWizard will add and remove member functions here.\r
+               //    DO NOT EDIT what you see in these blocks of generated code !\r
+       //}}AFX_MSG\r
+       DECLARE_MESSAGE_MAP()\r
+\r
+private:\r
+  void RunTests();\r
+};\r
+\r
+\r
+/////////////////////////////////////////////////////////////////////////////\r
+\r
+//{{AFX_INSERT_LOCATION}}\r
+// Microsoft Visual C++ will insert additional declarations immediately before the previous line.\r
+\r
+#endif // !defined(AFX_CPPUNITTESTAPP_H__6569C745_ED89_4902_9794_AD8422583BC1__INCLUDED_)\r
diff --git a/CppUnitTestApp/CppUnitTestApp.rc b/CppUnitTestApp/CppUnitTestApp.rc
new file mode 100644 (file)
index 0000000..158cc9e
--- /dev/null
@@ -0,0 +1,219 @@
+//Microsoft Developer Studio generated resource script.\r
+//\r
+#include "resource.h"\r
+\r
+#define APSTUDIO_READONLY_SYMBOLS\r
+/////////////////////////////////////////////////////////////////////////////\r
+//\r
+// Generated from the TEXTINCLUDE 2 resource.\r
+//\r
+#include "afxres.h"\r
+\r
+/////////////////////////////////////////////////////////////////////////////\r
+#undef APSTUDIO_READONLY_SYMBOLS\r
+\r
+/////////////////////////////////////////////////////////////////////////////\r
+// English (U.S.) resources\r
+\r
+#if !defined(AFX_RESOURCE_DLL) || defined(AFX_TARG_ENU)\r
+#ifdef _WIN32\r
+LANGUAGE LANG_ENGLISH, SUBLANG_ENGLISH_US\r
+#pragma code_page(1252)\r
+#endif //_WIN32\r
+\r
+/////////////////////////////////////////////////////////////////////////////\r
+//\r
+// Dialog\r
+//\r
+\r
+IDD_ABOUTBOX DIALOG DISCARDABLE  0, 0, 235, 55\r
+STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU\r
+CAPTION "About CppUnitTestApp"\r
+FONT 8, "MS Sans Serif"\r
+BEGIN\r
+    ICON            IDR_MAINFRAME,IDC_STATIC,11,17,20,20\r
+    LTEXT           "CppUnitTestApp Version 1.0",IDC_STATIC,40,10,119,8,\r
+                    SS_NOPREFIX\r
+    LTEXT           "Copyright (C) 2001",IDC_STATIC,40,25,119,8\r
+    DEFPUSHBUTTON   "OK",IDOK,178,7,50,14,WS_GROUP\r
+END\r
+\r
+IDD_CPPUNITTESTAPP_DIALOG DIALOGEX 0, 0, 320, 200\r
+STYLE DS_MODALFRAME | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU\r
+EXSTYLE WS_EX_APPWINDOW\r
+CAPTION "CppUnitTestApp"\r
+FONT 8, "MS Sans Serif", 0, 0, 0x1\r
+BEGIN\r
+    DEFPUSHBUTTON   "OK",IDOK,260,7,50,14\r
+    PUSHBUTTON      "Cancel",IDCANCEL,260,23,50,14\r
+    LTEXT           "TODO: Place dialog controls here.",IDC_STATIC,50,90,200,\r
+                    8\r
+END\r
+\r
+\r
+#ifndef _MAC\r
+/////////////////////////////////////////////////////////////////////////////\r
+//\r
+// Version\r
+//\r
+\r
+VS_VERSION_INFO VERSIONINFO\r
+ FILEVERSION 1,0,0,1\r
+ PRODUCTVERSION 1,0,0,1\r
+ FILEFLAGSMASK 0x3fL\r
+#ifdef _DEBUG\r
+ FILEFLAGS 0x1L\r
+#else\r
+ FILEFLAGS 0x0L\r
+#endif\r
+ FILEOS 0x4L\r
+ FILETYPE 0x1L\r
+ FILESUBTYPE 0x0L\r
+BEGIN\r
+    BLOCK "StringFileInfo"\r
+    BEGIN\r
+        BLOCK "040904B0"\r
+        BEGIN\r
+            VALUE "CompanyName", "\0"\r
+            VALUE "FileDescription", "CppUnitTestApp MFC Application\0"\r
+            VALUE "FileVersion", "1, 0, 0, 1\0"\r
+            VALUE "InternalName", "CppUnitTestApp\0"\r
+            VALUE "LegalCopyright", "Copyright (C) 2001\0"\r
+            VALUE "LegalTrademarks", "\0"\r
+            VALUE "OriginalFilename", "CppUnitTestApp.EXE\0"\r
+            VALUE "ProductName", "CppUnitTestApp Application\0"\r
+            VALUE "ProductVersion", "1, 0, 0, 1\0"\r
+        END\r
+    END\r
+    BLOCK "VarFileInfo"\r
+    BEGIN\r
+        VALUE "Translation", 0x409, 1200\r
+    END\r
+END\r
+\r
+#endif    // !_MAC\r
+\r
+\r
+/////////////////////////////////////////////////////////////////////////////\r
+//\r
+// DESIGNINFO\r
+//\r
+\r
+#ifdef APSTUDIO_INVOKED\r
+GUIDELINES DESIGNINFO DISCARDABLE \r
+BEGIN\r
+    IDD_ABOUTBOX, DIALOG\r
+    BEGIN\r
+        LEFTMARGIN, 7\r
+        RIGHTMARGIN, 228\r
+        TOPMARGIN, 7\r
+        BOTTOMMARGIN, 48\r
+    END\r
+\r
+    IDD_CPPUNITTESTAPP_DIALOG, DIALOG\r
+    BEGIN\r
+        LEFTMARGIN, 7\r
+        RIGHTMARGIN, 313\r
+        TOPMARGIN, 7\r
+        BOTTOMMARGIN, 193\r
+    END\r
+END\r
+#endif    // APSTUDIO_INVOKED\r
+\r
+\r
+/////////////////////////////////////////////////////////////////////////////\r
+//\r
+// String Table\r
+//\r
+\r
+STRINGTABLE DISCARDABLE \r
+BEGIN\r
+    IDS_ABOUTBOX            "&About CppUnitTestApp..."\r
+END\r
+\r
+#endif    // English (U.S.) resources\r
+/////////////////////////////////////////////////////////////////////////////\r
+\r
+\r
+/////////////////////////////////////////////////////////////////////////////\r
+// French (France) resources\r
+\r
+#if !defined(AFX_RESOURCE_DLL) || defined(AFX_TARG_FRA)\r
+#ifdef _WIN32\r
+LANGUAGE LANG_FRENCH, SUBLANG_FRENCH\r
+#pragma code_page(1252)\r
+#endif //_WIN32\r
+\r
+#ifdef APSTUDIO_INVOKED\r
+/////////////////////////////////////////////////////////////////////////////\r
+//\r
+// TEXTINCLUDE\r
+//\r
+\r
+1 TEXTINCLUDE DISCARDABLE \r
+BEGIN\r
+    "resource.h\0"\r
+END\r
+\r
+2 TEXTINCLUDE DISCARDABLE \r
+BEGIN\r
+    "#include ""afxres.h""\r\n"\r
+    "\0"\r
+END\r
+\r
+3 TEXTINCLUDE DISCARDABLE \r
+BEGIN\r
+    "#define _AFX_NO_SPLITTER_RESOURCES\r\n"\r
+    "#define _AFX_NO_OLE_RESOURCES\r\n"\r
+    "#define _AFX_NO_TRACKER_RESOURCES\r\n"\r
+    "#define _AFX_NO_PROPERTY_RESOURCES\r\n"\r
+    "\r\n"\r
+    "#if !defined(AFX_RESOURCE_DLL) || defined(AFX_TARG_ENU)\r\n"\r
+    "#ifdef _WIN32\r\n"\r
+    "LANGUAGE 9, 1\r\n"\r
+    "#pragma code_page(1252)\r\n"\r
+    "#endif //_WIN32\r\n"\r
+    "#include ""res\\CppUnitTestApp.rc2""  // non-Microsoft Visual C++ edited resources\r\n"\r
+    "#include ""afxres.rc""         // Standard components\r\n"\r
+    "#endif\r\n"\r
+    "\0"\r
+END\r
+\r
+#endif    // APSTUDIO_INVOKED\r
+\r
+\r
+/////////////////////////////////////////////////////////////////////////////\r
+//\r
+// Icon\r
+//\r
+\r
+// Icon with lowest ID value placed first to ensure application icon\r
+// remains consistent on all systems.\r
+IDR_MAINFRAME           ICON    DISCARDABLE     "res\\CppUnitTestApp.ico"\r
+#endif    // French (France) resources\r
+/////////////////////////////////////////////////////////////////////////////\r
+\r
+\r
+\r
+#ifndef APSTUDIO_INVOKED\r
+/////////////////////////////////////////////////////////////////////////////\r
+//\r
+// Generated from the TEXTINCLUDE 3 resource.\r
+//\r
+#define _AFX_NO_SPLITTER_RESOURCES\r
+#define _AFX_NO_OLE_RESOURCES\r
+#define _AFX_NO_TRACKER_RESOURCES\r
+#define _AFX_NO_PROPERTY_RESOURCES\r
+\r
+#if !defined(AFX_RESOURCE_DLL) || defined(AFX_TARG_ENU)\r
+#ifdef _WIN32\r
+LANGUAGE 9, 1\r
+#pragma code_page(1252)\r
+#endif //_WIN32\r
+#include "res\CppUnitTestApp.rc2"  // non-Microsoft Visual C++ edited resources\r
+#include "afxres.rc"         // Standard components\r
+#endif\r
+\r
+/////////////////////////////////////////////////////////////////////////////\r
+#endif    // not APSTUDIO_INVOKED\r
+\r
diff --git a/CppUnitTestApp/CppUnitTestAppDlg.cpp b/CppUnitTestApp/CppUnitTestAppDlg.cpp
new file mode 100644 (file)
index 0000000..28038ac
--- /dev/null
@@ -0,0 +1,170 @@
+// CppUnitTestAppDlg.cpp : implementation file\r
+//\r
+\r
+#include "stdafx.h"\r
+#include "CppUnitTestApp.h"\r
+#include "CppUnitTestAppDlg.h"\r
+\r
+#ifdef _DEBUG\r
+#define new DEBUG_NEW\r
+#undef THIS_FILE\r
+static char THIS_FILE[] = __FILE__;\r
+#endif\r
+\r
+/////////////////////////////////////////////////////////////////////////////\r
+// CAboutDlg dialog used for App About\r
+\r
+class CAboutDlg : public CDialog\r
+{\r
+public:\r
+       CAboutDlg();\r
+\r
+// Dialog Data\r
+       //{{AFX_DATA(CAboutDlg)\r
+       enum { IDD = IDD_ABOUTBOX };\r
+       //}}AFX_DATA\r
+\r
+       // ClassWizard generated virtual function overrides\r
+       //{{AFX_VIRTUAL(CAboutDlg)\r
+       protected:\r
+       virtual void DoDataExchange(CDataExchange* pDX);    // DDX/DDV support\r
+       //}}AFX_VIRTUAL\r
+\r
+// Implementation\r
+protected:\r
+       //{{AFX_MSG(CAboutDlg)\r
+       //}}AFX_MSG\r
+       DECLARE_MESSAGE_MAP()\r
+};\r
+\r
+CAboutDlg::CAboutDlg() : CDialog(CAboutDlg::IDD)\r
+{\r
+       //{{AFX_DATA_INIT(CAboutDlg)\r
+       //}}AFX_DATA_INIT\r
+}\r
+\r
+void CAboutDlg::DoDataExchange(CDataExchange* pDX)\r
+{\r
+       CDialog::DoDataExchange(pDX);\r
+       //{{AFX_DATA_MAP(CAboutDlg)\r
+       //}}AFX_DATA_MAP\r
+}\r
+\r
+BEGIN_MESSAGE_MAP(CAboutDlg, CDialog)\r
+       //{{AFX_MSG_MAP(CAboutDlg)\r
+               // No message handlers\r
+       //}}AFX_MSG_MAP\r
+END_MESSAGE_MAP()\r
+\r
+/////////////////////////////////////////////////////////////////////////////\r
+// CppUnitTestAppDlg dialog\r
+\r
+CppUnitTestAppDlg::CppUnitTestAppDlg(CWnd* pParent /*=NULL*/)\r
+       : CDialog(CppUnitTestAppDlg::IDD, pParent)\r
+{\r
+       //{{AFX_DATA_INIT(CppUnitTestAppDlg)\r
+               // NOTE: the ClassWizard will add member initialization here\r
+       //}}AFX_DATA_INIT\r
+       // Note that LoadIcon does not require a subsequent DestroyIcon in Win32\r
+       m_hIcon = AfxGetApp()->LoadIcon(IDR_MAINFRAME);\r
+}\r
+\r
+void CppUnitTestAppDlg::DoDataExchange(CDataExchange* pDX)\r
+{\r
+       CDialog::DoDataExchange(pDX);\r
+       //{{AFX_DATA_MAP(CppUnitTestAppDlg)\r
+               // NOTE: the ClassWizard will add DDX and DDV calls here\r
+       //}}AFX_DATA_MAP\r
+}\r
+\r
+BEGIN_MESSAGE_MAP(CppUnitTestAppDlg, CDialog)\r
+       //{{AFX_MSG_MAP(CppUnitTestAppDlg)\r
+       ON_WM_SYSCOMMAND()\r
+       ON_WM_PAINT()\r
+       ON_WM_QUERYDRAGICON()\r
+       //}}AFX_MSG_MAP\r
+END_MESSAGE_MAP()\r
+\r
+/////////////////////////////////////////////////////////////////////////////\r
+// CppUnitTestAppDlg message handlers\r
+\r
+BOOL CppUnitTestAppDlg::OnInitDialog()\r
+{\r
+       CDialog::OnInitDialog();\r
+\r
+       // Add "About..." menu item to system menu.\r
+\r
+       // IDM_ABOUTBOX must be in the system command range.\r
+       ASSERT((IDM_ABOUTBOX & 0xFFF0) == IDM_ABOUTBOX);\r
+       ASSERT(IDM_ABOUTBOX < 0xF000);\r
+\r
+       CMenu* pSysMenu = GetSystemMenu(FALSE);\r
+       if (pSysMenu != NULL)\r
+       {\r
+               CString strAboutMenu;\r
+               strAboutMenu.LoadString(IDS_ABOUTBOX);\r
+               if (!strAboutMenu.IsEmpty())\r
+               {\r
+                       pSysMenu->AppendMenu(MF_SEPARATOR);\r
+                       pSysMenu->AppendMenu(MF_STRING, IDM_ABOUTBOX, strAboutMenu);\r
+               }\r
+       }\r
+\r
+       // Set the icon for this dialog.  The framework does this automatically\r
+       //  when the application's main window is not a dialog\r
+       SetIcon(m_hIcon, TRUE);                 // Set big icon\r
+       SetIcon(m_hIcon, FALSE);                // Set small icon\r
+       \r
+       // TODO: Add extra initialization here\r
+       \r
+       return TRUE;  // return TRUE  unless you set the focus to a control\r
+}\r
+\r
+void CppUnitTestAppDlg::OnSysCommand(UINT nID, LPARAM lParam)\r
+{\r
+       if ((nID & 0xFFF0) == IDM_ABOUTBOX)\r
+       {\r
+               CAboutDlg dlgAbout;\r
+               dlgAbout.DoModal();\r
+       }\r
+       else\r
+       {\r
+               CDialog::OnSysCommand(nID, lParam);\r
+       }\r
+}\r
+\r
+// If you add a minimize button to your dialog, you will need the code below\r
+//  to draw the icon.  For MFC applications using the document/view model,\r
+//  this is automatically done for you by the framework.\r
+\r
+void CppUnitTestAppDlg::OnPaint() \r
+{\r
+       if (IsIconic())\r
+       {\r
+               CPaintDC dc(this); // device context for painting\r
+\r
+               SendMessage(WM_ICONERASEBKGND, (WPARAM) dc.GetSafeHdc(), 0);\r
+\r
+               // Center icon in client rectangle\r
+               int cxIcon = GetSystemMetrics(SM_CXICON);\r
+               int cyIcon = GetSystemMetrics(SM_CYICON);\r
+               CRect rect;\r
+               GetClientRect(&rect);\r
+               int x = (rect.Width() - cxIcon + 1) / 2;\r
+               int y = (rect.Height() - cyIcon + 1) / 2;\r
+\r
+               // Draw the icon\r
+               dc.DrawIcon(x, y, m_hIcon);\r
+       }\r
+       else\r
+       {\r
+               CDialog::OnPaint();\r
+       }\r
+}\r
+\r
+// The system calls this to obtain the cursor to display while the user drags\r
+//  the minimized window.\r
+HCURSOR CppUnitTestAppDlg::OnQueryDragIcon()\r
+{\r
+       return (HCURSOR) m_hIcon;\r
+}\r
diff --git a/CppUnitTestApp/CppUnitTestAppDlg.h b/CppUnitTestApp/CppUnitTestAppDlg.h
new file mode 100644 (file)
index 0000000..40ac519
--- /dev/null
@@ -0,0 +1,49 @@
+// CppUnitTestAppDlg.h : header file\r
+//\r
+\r
+#if !defined(AFX_CPPUNITTESTAPPDLG_H__25E1CF20_72A4_4E25_B930_626DF60AD4C7__INCLUDED_)\r
+#define AFX_CPPUNITTESTAPPDLG_H__25E1CF20_72A4_4E25_B930_626DF60AD4C7__INCLUDED_\r
+\r
+#if _MSC_VER > 1000\r
+#pragma once\r
+#endif // _MSC_VER > 1000\r
+\r
+/////////////////////////////////////////////////////////////////////////////\r
+// CppUnitTestAppDlg dialog\r
+\r
+class CppUnitTestAppDlg : public CDialog\r
+{\r
+// Construction\r
+public:\r
+       CppUnitTestAppDlg(CWnd* pParent = NULL);        // standard constructor\r
+\r
+// Dialog Data\r
+       //{{AFX_DATA(CppUnitTestAppDlg)\r
+       enum { IDD = IDD_CPPUNITTESTAPP_DIALOG };\r
+               // NOTE: the ClassWizard will add data members here\r
+       //}}AFX_DATA\r
+\r
+       // ClassWizard generated virtual function overrides\r
+       //{{AFX_VIRTUAL(CppUnitTestAppDlg)\r
+       protected:\r
+       virtual void DoDataExchange(CDataExchange* pDX);        // DDX/DDV support\r
+       //}}AFX_VIRTUAL\r
+\r
+// Implementation\r
+protected:\r
+       HICON m_hIcon;\r
+\r
+       // Generated message map functions\r
+       //{{AFX_MSG(CppUnitTestAppDlg)\r
+       virtual BOOL OnInitDialog();\r
+       afx_msg void OnSysCommand(UINT nID, LPARAM lParam);\r
+       afx_msg void OnPaint();\r
+       afx_msg HCURSOR OnQueryDragIcon();\r
+       //}}AFX_MSG\r
+       DECLARE_MESSAGE_MAP()\r
+};\r
+\r
+//{{AFX_INSERT_LOCATION}}\r
+// Microsoft Visual C++ will insert additional declarations immediately before the previous line.\r
+\r
+#endif // !defined(AFX_CPPUNITTESTAPPDLG_H__25E1CF20_72A4_4E25_B930_626DF60AD4C7__INCLUDED_)\r
diff --git a/CppUnitTestApp/ReadMe.txt b/CppUnitTestApp/ReadMe.txt
new file mode 100644 (file)
index 0000000..9128b08
--- /dev/null
@@ -0,0 +1,88 @@
+========================================================================\r
+       MICROSOFT FOUNDATION CLASS LIBRARY : CppUnitTestApp\r
+========================================================================\r
+\r
+\r
+AppWizard has created this CppUnitTestApp application for you.  This application\r
+not only demonstrates the basics of using the Microsoft Foundation classes\r
+but is also a starting point for writing your application.\r
+\r
+This file contains a summary of what you will find in each of the files that\r
+make up your CppUnitTestApp application.\r
+\r
+CppUnitTestApp.dsp\r
+    This file (the project file) contains information at the project level and\r
+    is used to build a single project or subproject. Other users can share the\r
+    project (.dsp) file, but they should export the makefiles locally.\r
+\r
+CppUnitTestApp.h\r
+    This is the main header file for the application.  It includes other\r
+    project specific headers (including Resource.h) and declares the\r
+    CppUnitTestApp application class.\r
+\r
+CppUnitTestApp.cpp\r
+    This is the main application source file that contains the application\r
+    class CppUnitTestApp.\r
+\r
+CppUnitTestApp.rc\r
+    This is a listing of all of the Microsoft Windows resources that the\r
+    program uses.  It includes the icons, bitmaps, and cursors that are stored\r
+    in the RES subdirectory.  This file can be directly edited in Microsoft\r
+       Visual C++.\r
+\r
+CppUnitTestApp.clw\r
+    This file contains information used by ClassWizard to edit existing\r
+    classes or add new classes.  ClassWizard also uses this file to store\r
+    information needed to create and edit message maps and dialog data\r
+    maps and to create prototype member functions.\r
+\r
+res\CppUnitTestApp.ico\r
+    This is an icon file, which is used as the application's icon.  This\r
+    icon is included by the main resource file CppUnitTestApp.rc.\r
+\r
+res\CppUnitTestApp.rc2\r
+    This file contains resources that are not edited by Microsoft \r
+       Visual C++.  You should place all resources not editable by\r
+       the resource editor in this file.\r
+\r
+\r
+\r
+\r
+/////////////////////////////////////////////////////////////////////////////\r
+\r
+AppWizard creates one dialog class:\r
+\r
+CppUnitTestAppDlg.h, CppUnitTestAppDlg.cpp - the dialog\r
+    These files contain your CppUnitTestAppDlg class.  This class defines\r
+    the behavior of your application's main dialog.  The dialog's\r
+    template is in CppUnitTestApp.rc, which can be edited in Microsoft\r
+       Visual C++.\r
+\r
+\r
+/////////////////////////////////////////////////////////////////////////////\r
+Other standard files:\r
+\r
+StdAfx.h, StdAfx.cpp\r
+    These files are used to build a precompiled header (PCH) file\r
+    named CppUnitTestApp.pch and a precompiled types file named StdAfx.obj.\r
+\r
+Resource.h\r
+    This is the standard header file, which defines new resource IDs.\r
+    Microsoft Visual C++ reads and updates this file.\r
+\r
+/////////////////////////////////////////////////////////////////////////////\r
+Other notes:\r
+\r
+AppWizard uses "TODO:" to indicate parts of the source code you\r
+should add to or customize.\r
+\r
+If your application uses MFC in a shared DLL, and your application is \r
+in a language other than the operating system's current language, you\r
+will need to copy the corresponding localized resources MFC42XXX.DLL\r
+from the Microsoft Visual C++ CD-ROM onto the system or system32 directory,\r
+and rename it to be MFCLOC.DLL.  ("XXX" stands for the language abbreviation.\r
+For example, MFC42DEU.DLL contains resources translated to German.)  If you\r
+don't do this, some of the UI elements of your application will remain in the\r
+language of the operating system.\r
+\r
+/////////////////////////////////////////////////////////////////////////////\r
diff --git a/CppUnitTestApp/ReadMe_Tombo.txt b/CppUnitTestApp/ReadMe_Tombo.txt
new file mode 100644 (file)
index 0000000..006b530
--- /dev/null
@@ -0,0 +1,25 @@
+Unit test app for TOMBO sources.\r
+\r
+Most of the file under this directory is a part of cppunit-1.10.2 except folder "test".\r
+\r
+For details about cppunit, please see :\r
+http://cppunit.sourceforge.net/cppunit-wiki\r
+\r
+To test using by CppUnitTestApp, you have to :\r
+1. install cppunit.\r
+2. Add include/library path to project.\r
+3. Place testrunnerd.dll under the "Debug" folder.\r
+\r
+Tombo/\r
+ +- BE300/\r
+ +- cppunit/\r
+ |   +- lib/\r
+ |   |   +- cppunitd.lib, testrunnerd.lib\r
+ |   +- include/\r
+ |       +- cppunit/\r
+ |            +- (config/, extensions/, Test.h, TestAssert.h , ... \r
+ +- CppUnitTestApp\r
+   ....\r
+\r
+\r
+hirami\r
diff --git a/CppUnitTestApp/Resource.h b/CppUnitTestApp/Resource.h
new file mode 100644 (file)
index 0000000..b0f9f9e
--- /dev/null
@@ -0,0 +1,21 @@
+//{{NO_DEPENDENCIES}}\r
+// Microsoft Visual C++ generated include file.\r
+// Used by CPPUNITTESTAPP.RC\r
+//\r
+#define IDR_MAINFRAME                                  128\r
+#define IDM_ABOUTBOX                                   0x0010\r
+#define IDD_ABOUTBOX                                   100\r
+#define IDS_ABOUTBOX                                   101\r
+#define IDD_CPPUNITTESTAPP_DIALOG                              102\r
+\r
+// Next default values for new objects\r
+// \r
+#ifdef APSTUDIO_INVOKED\r
+#ifndef APSTUDIO_READONLY_SYMBOLS\r
+\r
+#define _APS_NEXT_RESOURCE_VALUE       129\r
+#define _APS_NEXT_CONTROL_VALUE                1000\r
+#define _APS_NEXT_SYMED_VALUE          101\r
+#define _APS_NEXT_COMMAND_VALUE                32771\r
+#endif\r
+#endif\r
diff --git a/CppUnitTestApp/StdAfx.cpp b/CppUnitTestApp/StdAfx.cpp
new file mode 100644 (file)
index 0000000..1e98dd0
--- /dev/null
@@ -0,0 +1,8 @@
+// stdafx.cpp : source file that includes just the standard includes\r
+//     CppUnitTestApp.pch will be the pre-compiled header\r
+//     stdafx.obj will contain the pre-compiled type information\r
+\r
+#include "stdafx.h"\r
+\r
+\r
+\r
diff --git a/CppUnitTestApp/StdAfx.h b/CppUnitTestApp/StdAfx.h
new file mode 100644 (file)
index 0000000..21bc64b
--- /dev/null
@@ -0,0 +1,28 @@
+// stdafx.h : include file for standard system include files,\r
+//  or project specific include files that are used frequently, but\r
+//      are changed infrequently\r
+//\r
+\r
+#if !defined(AFX_STDAFX_H__EB0CB528_6505_4130_843B_9CA567127807__INCLUDED_)\r
+#define AFX_STDAFX_H__EB0CB528_6505_4130_843B_9CA567127807__INCLUDED_\r
+\r
+#if _MSC_VER > 1000\r
+#pragma once\r
+#endif // _MSC_VER > 1000\r
+\r
+#define VC_EXTRALEAN           // Exclude rarely-used stuff from Windows headers\r
+\r
+#include <afxwin.h>         // MFC core and standard components\r
+#include <afxext.h>         // MFC extensions\r
+#include <afxdisp.h>        // MFC Automation classes\r
+#include <afxdtctl.h>          // MFC support for Internet Explorer 4 Common Controls\r
+#ifndef _AFX_NO_AFXCMN_SUPPORT\r
+#include <afxcmn.h>                    // MFC support for Windows Common Controls\r
+#endif // _AFX_NO_AFXCMN_SUPPORT\r
+\r
+#pragma warning( disable : 4786 )   // remove warning "debug symbol length > 255..."\r
+\r
+//{{AFX_INSERT_LOCATION}}\r
+// Microsoft Visual C++ will insert additional declarations immediately before the previous line.\r
+\r
+#endif // !defined(AFX_STDAFX_H__EB0CB528_6505_4130_843B_9CA567127807__INCLUDED_)\r
diff --git a/CppUnitTestApp/res/CppUnitTestApp.ico b/CppUnitTestApp/res/CppUnitTestApp.ico
new file mode 100644 (file)
index 0000000..7eef0bc
Binary files /dev/null and b/CppUnitTestApp/res/CppUnitTestApp.ico differ
diff --git a/CppUnitTestApp/res/CppUnitTestApp.rc2 b/CppUnitTestApp/res/CppUnitTestApp.rc2
new file mode 100644 (file)
index 0000000..370534a
--- /dev/null
@@ -0,0 +1,13 @@
+//\r
+// CPPUNITTESTAPP.RC2 - resources Microsoft Visual C++ does not edit directly\r
+//\r
+\r
+#ifdef APSTUDIO_INVOKED\r
+       #error this file is not editable by Microsoft Visual C++\r
+#endif //APSTUDIO_INVOKED\r
+\r
+\r
+/////////////////////////////////////////////////////////////////////////////\r
+// Add manually edited resources here...\r
+\r
+/////////////////////////////////////////////////////////////////////////////\r
diff --git a/CppUnitTestApp/test/MemoInfoTest.cpp b/CppUnitTestApp/test/MemoInfoTest.cpp
new file mode 100644 (file)
index 0000000..5cb52fa
--- /dev/null
@@ -0,0 +1,222 @@
+#include <cppunit/extensions/HelperMacros.h>\r
+#include <cppunit/TestAssert.h>\r
+\r
+#include <windows.h>\r
+#include <tchar.h>\r
+#include "TString.h"\r
+#include "UniConv.h"\r
+#include "MemoInfo.h"\r
+#include "File.h"\r
+\r
+#define TEST_CLASS_NAME MemoInfoTest\r
+\r
+class TEST_CLASS_NAME : public CppUnit::TestFixture {\r
+       CPPUNIT_TEST_SUITE(TEST_CLASS_NAME);\r
+       CPPUNIT_TEST(WriteInfoTest1);\r
+       CPPUNIT_TEST(ReadInfoTest1);\r
+       CPPUNIT_TEST(RenameInfoTest1);\r
+       CPPUNIT_TEST(DeleteInfoTest1);\r
+\r
+       CPPUNIT_TEST(WriteInfoTest2);\r
+       CPPUNIT_TEST(ReadInfoTest2);\r
+       CPPUNIT_TEST(RenameInfoTest2);\r
+       CPPUNIT_TEST(DeleteInfoTest2);\r
+\r
+       CPPUNIT_TEST_SUITE_END();\r
+\r
+       TCHAR path[MAX_PATH];\r
+public:\r
+       TEST_CLASS_NAME() {}\r
+       ~TEST_CLASS_NAME() {}\r
+\r
+       virtual void setUp();\r
+       virtual void tearDown() {}\r
+\r
+       void WriteInfoTest1();\r
+       void WriteInfoTest2();\r
+       void ReadInfoTest1();\r
+       void ReadInfoTest2();\r
+       void RenameInfoTest1();\r
+       void RenameInfoTest2();\r
+       void DeleteInfoTest1();\r
+       void DeleteInfoTest2();\r
+};\r
+\r
+CPPUNIT_TEST_SUITE_REGISTRATION(TEST_CLASS_NAME);\r
+\r
+////////////////////////////////////////////////\r
+void TEST_CLASS_NAME::setUp()\r
+{\r
+       // get current dir path\r
+       TCHAR buf[MAX_PATH];\r
+       GetModuleFileName(NULL, buf, MAX_PATH);\r
+       GetFilePath(path, buf);\r
+\r
+       wsprintf(buf, TEXT("%s%s"), path, TEXT("sub1"));\r
+       CreateDirectory(buf, NULL);\r
+\r
+       _tcscat(buf, TEXT("\\sub2"));\r
+       CreateDirectory(buf, NULL);\r
+}\r
+\r
+////////////////////////////////////////////////\r
+\r
+// Case: new Info\r
+void TEST_CLASS_NAME::WriteInfoTest1() {\r
+\r
+       TCHAR buf[MAX_PATH];\r
+       wsprintf(buf, "%s%s", path, "aaa.tdt");\r
+\r
+       DeleteFile(buf);\r
+\r
+       MemoInfo mi(path);\r
+       CPPUNIT_ASSERT(mi.WriteInfo("aaa", 0x12345678));\r
+\r
+\r
+       File f;\r
+       CPPUNIT_ASSERT(f.Open(buf, GENERIC_READ, 0, OPEN_EXISTING));\r
+       CPPUNIT_ASSERT(f.FileSize() == 5);\r
+\r
+       BYTE data[20];\r
+       DWORD nSiz = 5;\r
+       CPPUNIT_ASSERT(f.Read(data, &nSiz));\r
+       CPPUNIT_ASSERT(nSiz == 5);\r
+\r
+       CPPUNIT_ASSERT(data[0] == 1);\r
+       CPPUNIT_ASSERT(data[1] == 0x78);\r
+       CPPUNIT_ASSERT(data[2] == 0x56);\r
+       CPPUNIT_ASSERT(data[3] == 0x34);\r
+       CPPUNIT_ASSERT(data[4] == 0x12);\r
+}\r
+\r
+// Case: new Info\r
+void TEST_CLASS_NAME::WriteInfoTest2() {\r
+\r
+       TCHAR buf[MAX_PATH];\r
+       wsprintf(buf, "%s%s", path, "sub1\\sub2\\bbb.tdt");\r
+\r
+       DeleteFile(buf);\r
+\r
+       MemoInfo mi(path);\r
+       CPPUNIT_ASSERT(mi.WriteInfo("sub1\\sub2\\bbb", 0x12345678));\r
+\r
+\r
+       File f;\r
+       CPPUNIT_ASSERT(f.Open(buf, GENERIC_READ, 0, OPEN_EXISTING));\r
+       CPPUNIT_ASSERT(f.FileSize() == 5);\r
+\r
+       BYTE data[20];\r
+       DWORD nSiz = 5;\r
+       CPPUNIT_ASSERT(f.Read(data, &nSiz));\r
+       CPPUNIT_ASSERT(nSiz == 5);\r
+\r
+       CPPUNIT_ASSERT(data[0] == 1);\r
+       CPPUNIT_ASSERT(data[1] == 0x78);\r
+       CPPUNIT_ASSERT(data[2] == 0x56);\r
+       CPPUNIT_ASSERT(data[3] == 0x34);\r
+       CPPUNIT_ASSERT(data[4] == 0x12);\r
+}\r
+\r
+void TEST_CLASS_NAME::ReadInfoTest1()\r
+{\r
+       MemoInfo mi(path);\r
+       DWORD n;\r
+\r
+       CPPUNIT_ASSERT(mi.ReadInfo("aaa", &n));\r
+       CPPUNIT_ASSERT(n == 0x12345678);\r
+}\r
+\r
+void TEST_CLASS_NAME::ReadInfoTest2()\r
+{\r
+       MemoInfo mi(path);\r
+       DWORD n;\r
+\r
+       CPPUNIT_ASSERT(mi.ReadInfo("sub1\\sub2\\bbb", &n));\r
+       CPPUNIT_ASSERT(n == 0x12345678);\r
+}\r
+\r
+void TEST_CLASS_NAME::RenameInfoTest1()\r
+{\r
+       TCHAR n0[MAX_PATH];\r
+       TCHAR n1[MAX_PATH];\r
+\r
+       wsprintf(n0, "%s\\aaa", path);\r
+       wsprintf(n1, "%s\\xxx", path);\r
+\r
+       MemoInfo mi(path);\r
+       CPPUNIT_ASSERT(mi.RenameInfo(n0, n1));\r
+\r
+       TCHAR buf[MAX_PATH];\r
+       wsprintf(buf, "%s%s", path, "aaa.tdt");\r
+\r
+       File f;\r
+       CPPUNIT_ASSERT(f.Open(buf, GENERIC_READ, 0, OPEN_EXISTING) == FALSE);\r
+       CPPUNIT_ASSERT(GetLastError() == ERROR_FILE_NOT_FOUND);\r
+\r
+       wsprintf(buf, "%s%s", path, "xxx.tdt");\r
+       File f2;\r
+       CPPUNIT_ASSERT(f2.Open(buf, GENERIC_READ, 0, OPEN_EXISTING));\r
+       f2.Close();\r
+\r
+       MemoInfo mi2(path);\r
+       DWORD n;\r
+       CPPUNIT_ASSERT(mi2.ReadInfo("xxx", &n));\r
+       CPPUNIT_ASSERT(n == 0x12345678);\r
+\r
+}\r
+\r
+void TEST_CLASS_NAME::RenameInfoTest2()\r
+{\r
+       TCHAR n0[MAX_PATH];\r
+       TCHAR n1[MAX_PATH];\r
+\r
+       wsprintf(n0, "%s\\%s", path, "sub1\\sub2\\bbb");\r
+       wsprintf(n1, "%s\\%s", path, "sub1\\sub2\\yyy");\r
+\r
+       MemoInfo mi(path);\r
+       CPPUNIT_ASSERT(mi.RenameInfo(n0, n1));\r
+\r
+       TCHAR buf[MAX_PATH];\r
+       wsprintf(buf, "%s%s", path, "sub1\\sub2\\bbb.tdt");\r
+\r
+       File f;\r
+       CPPUNIT_ASSERT(f.Open(buf, GENERIC_READ, 0, OPEN_EXISTING) == FALSE);\r
+       CPPUNIT_ASSERT(GetLastError() == ERROR_FILE_NOT_FOUND);\r
+\r
+       wsprintf(buf, "%s%s", path, "sub1\\sub2\\yyy.tdt");\r
+       File f2;\r
+       CPPUNIT_ASSERT(f2.Open(buf, GENERIC_READ, 0, OPEN_EXISTING));\r
+       f2.Close();\r
+\r
+       MemoInfo mi2(path);\r
+       DWORD n;\r
+       CPPUNIT_ASSERT(mi2.ReadInfo("sub1\\sub2\\yyy", &n));\r
+       CPPUNIT_ASSERT(n == 0x12345678);\r
+\r
+}\r
+\r
+void TEST_CLASS_NAME::DeleteInfoTest1()\r
+{\r
+       MemoInfo mi(path);\r
+       CPPUNIT_ASSERT(mi.DeleteInfo("xxx"));\r
+\r
+       TCHAR buf[MAX_PATH];\r
+       wsprintf(buf, "%s%s", path, "xxx.tdt");\r
+\r
+       File f;\r
+       CPPUNIT_ASSERT(f.Open(buf, GENERIC_READ, 0, OPEN_EXISTING) == FALSE);\r
+       CPPUNIT_ASSERT(GetLastError() == ERROR_FILE_NOT_FOUND);\r
+}\r
+\r
+void TEST_CLASS_NAME::DeleteInfoTest2()\r
+{\r
+       MemoInfo mi(path);\r
+       CPPUNIT_ASSERT(mi.DeleteInfo("sub1\\sub2\\yyy"));\r
+\r
+       TCHAR buf[MAX_PATH];\r
+       wsprintf(buf, "%s%s", path, "sub1\\sub2\\yyy.tdt");\r
+\r
+       File f;\r
+       CPPUNIT_ASSERT(f.Open(buf, GENERIC_READ, 0, OPEN_EXISTING) == FALSE);\r
+       CPPUNIT_ASSERT(GetLastError() == ERROR_FILE_NOT_FOUND);\r
+}
\ No newline at end of file
diff --git a/CppUnitTestApp/test/RegexTest.cpp b/CppUnitTestApp/test/RegexTest.cpp
new file mode 100644 (file)
index 0000000..23604c1
--- /dev/null
@@ -0,0 +1,460 @@
+#include <cppunit/extensions/HelperMacros.h>\r
+#include <cppunit/TestAssert.h>\r
+#include <windows.h>\r
+\r
+// These test cases assume default encoding as CP932(SJIS).\r
+\r
+#include "UniConv.h"\r
+\r
+#include "RegexUtil.h"\r
+#ifdef COMMENT\r
+extern "C" {\r
+void* Regex_Compile(const LPBYTE pPattern, BOOL bIgnoreCase, const char **ppReason, DWORD nCodePage);\r
+void Regex_Free(void *p);\r
+int Regex_Search(void *p, int iStart, const LPBYTE pTarget, BOOL bForward, int *pStart, int *pEnd, DWORD nCodePage);\r
+\r
+const LPBYTE ShiftLeft(const LPBYTE pString, const LPBYTE pPos, DWORD nCodePage);\r
+const LPBYTE ShiftRight(const LPBYTE pString, const LPBYTE pPos, DWORD nCodePage);\r
+\r
+DWORD UnicodePosToMBCSPos(const char *pStr, DWORD n, DWORD nCodePage);\r
+DWORD FileEncPosToUnicodePos(const char *pStr, DWORD n, DWORD nCodePage);\r
+};\r
+#endif\r
+\r
+#define TEST_CLASS_NAME RegexTest\r
+\r
+class TEST_CLASS_NAME : public CppUnit::TestFixture {\r
+       CPPUNIT_TEST_SUITE(TEST_CLASS_NAME);\r
+\r
+       CPPUNIT_TEST(RegexTest1);\r
+\r
+       CPPUNIT_TEST(CaseIgnoreTest1);\r
+       CPPUNIT_TEST(CaseIgnoreTest2);\r
+\r
+       CPPUNIT_TEST(NoMatchTest1);\r
+       \r
+       CPPUNIT_TEST(KanjiTest1);\r
+       CPPUNIT_TEST(KanjiTest2);\r
+       CPPUNIT_TEST(KanjiTest3);\r
+       \r
+       CPPUNIT_TEST(ConvUTF8PosToUCSPosTest1);\r
+       CPPUNIT_TEST(ConvUTF8PosToUCSPosTest2);\r
+       CPPUNIT_TEST(ConvUTF8PosToUCSPosTest3);\r
+       CPPUNIT_TEST(ConvUTF8PosToUCSPosTest4);\r
+\r
+       CPPUNIT_TEST(ConvUCSPosToUTF8PosTest1);\r
+       CPPUNIT_TEST(ConvUCSPosToUTF8PosTest2);\r
+       CPPUNIT_TEST(ConvUCSPosToUTF8PosTest3);\r
+       CPPUNIT_TEST(ConvUCSPosToUTF8PosTest4);\r
+\r
+       CPPUNIT_TEST(ShiftRightTest1);\r
+       CPPUNIT_TEST(ShiftRightTest2);\r
+       CPPUNIT_TEST(ShiftRightTest3);\r
+\r
+       CPPUNIT_TEST(ShiftLeftTest1);\r
+       CPPUNIT_TEST(ShiftLeftTest2);\r
+       CPPUNIT_TEST(ShiftLeftTest3);\r
+\r
+       CPPUNIT_TEST(UTF8Test1);\r
+       CPPUNIT_TEST(UTF8Test2);\r
+\r
+       CPPUNIT_TEST(ConvertPosTest1);\r
+       CPPUNIT_TEST(ConvertPosTest2);\r
+       CPPUNIT_TEST(ConvertPosTest3);\r
+       CPPUNIT_TEST(ConvertPosTest4);\r
+       CPPUNIT_TEST(ConvertPosTest5);\r
+       CPPUNIT_TEST(ConvertPosTest6);\r
+\r
+       CPPUNIT_TEST_SUITE_END();\r
+\r
+\r
+public:\r
+       TEST_CLASS_NAME() {}\r
+       ~TEST_CLASS_NAME() {}\r
+\r
+       virtual void setUp() {}\r
+       virtual void tearDown() {}\r
+\r
+       void RegexTest1();\r
+\r
+       void CaseIgnoreTest1();\r
+       void CaseIgnoreTest2();\r
+\r
+       void NoMatchTest1();\r
+\r
+       void KanjiTest1();\r
+       void KanjiTest2();\r
+       void KanjiTest3();\r
+\r
+       void ConvUTF8PosToUCSPosTest1();\r
+       void ConvUTF8PosToUCSPosTest2();\r
+       void ConvUTF8PosToUCSPosTest3();\r
+       void ConvUTF8PosToUCSPosTest4();\r
+\r
+       void ConvUCSPosToUTF8PosTest1();\r
+       void ConvUCSPosToUTF8PosTest2();\r
+       void ConvUCSPosToUTF8PosTest3();\r
+       void ConvUCSPosToUTF8PosTest4();\r
+\r
+       void ShiftRightTest1();\r
+       void ShiftRightTest2();\r
+       void ShiftRightTest3();\r
+\r
+       void ShiftLeftTest1();\r
+       void ShiftLeftTest2();\r
+       void ShiftLeftTest3();\r
+\r
+       void UTF8Test1();\r
+       void UTF8Test2();\r
+\r
+       void ConvertPosTest1();\r
+       void ConvertPosTest2();\r
+       void ConvertPosTest3();\r
+       void ConvertPosTest4();\r
+       void ConvertPosTest5();\r
+       void ConvertPosTest6();\r
+};\r
+\r
+CPPUNIT_TEST_SUITE_REGISTRATION(TEST_CLASS_NAME);\r
+\r
+////////////////////////////////////////////////\r
+\r
+\r
+void TEST_CLASS_NAME::RegexTest1() {\r
+       const char *pReason;\r
+       void *pPat = Regex_Compile((LPBYTE)"pat", FALSE, &pReason, 0);\r
+       CPPUNIT_ASSERT(pPat != NULL);\r
+\r
+       const char *pString = "aaa bbb pap pat pas";\r
+\r
+       int nStart, nEnd;\r
+\r
+       int n = Regex_Search(pPat, 0, (LPBYTE)pString, TRUE, &nStart, &nEnd, 0);\r
+\r
+       CPPUNIT_ASSERT(n == 12);\r
+       CPPUNIT_ASSERT(nStart == 12);\r
+       CPPUNIT_ASSERT(nEnd == 15);\r
+}\r
+\r
+void TEST_CLASS_NAME::CaseIgnoreTest1() {\r
+       const char *pReason;\r
+       void *pPat = Regex_Compile((LPBYTE)"PAT", FALSE, &pReason, 0);\r
+       CPPUNIT_ASSERT(pPat != NULL);\r
+\r
+       const char *pString = "aaa bbb pat PAT pas";\r
+\r
+       int nStart, nEnd;\r
+\r
+       int n = Regex_Search(pPat, 0, (LPBYTE)pString, TRUE, &nStart, &nEnd, 0);\r
+\r
+       CPPUNIT_ASSERT(n == 12);\r
+       CPPUNIT_ASSERT(nStart == 12);\r
+       CPPUNIT_ASSERT(nEnd == 15);\r
+}\r
+\r
+\r
+void TEST_CLASS_NAME::CaseIgnoreTest2() {\r
+       const char *pReason;\r
+       void *pPat = Regex_Compile((LPBYTE)"PAT", TRUE, &pReason, 0);\r
+       CPPUNIT_ASSERT(pPat != NULL);\r
+\r
+       const char *pString = "aaa bbb pat PAT pas";\r
+\r
+       int nStart, nEnd;\r
+\r
+       int n = Regex_Search(pPat, 0, (LPBYTE)pString, TRUE, &nStart, &nEnd, 0);\r
+\r
+       CPPUNIT_ASSERT(n == 8);\r
+       CPPUNIT_ASSERT(nStart == 8);\r
+       CPPUNIT_ASSERT(nEnd == 11);\r
+}\r
+\r
+void TEST_CLASS_NAME::NoMatchTest1() {\r
+       const char *pReason;\r
+       void *pPat = Regex_Compile((LPBYTE)"pat", FALSE, &pReason, 0);\r
+       CPPUNIT_ASSERT(pPat != NULL);\r
+\r
+       const char *pString = "aaa bbb pap pad pas";\r
+\r
+       int nStart, nEnd;\r
+\r
+       int n = Regex_Search(pPat, 0, (LPBYTE)pString, TRUE, &nStart, &nEnd, 0);\r
+\r
+       CPPUNIT_ASSERT(n == -1);\r
+}\r
+\r
+void TEST_CLASS_NAME::KanjiTest1() {\r
+\r
+       const char *pReason;\r
+       void *pPat = Regex_Compile((LPBYTE)"\8a¿\8e\9a", FALSE, &pReason, 0);\r
+       CPPUNIT_ASSERT(pPat != NULL);\r
+\r
+       char *pString = "aaa \8a¿\8e\9a pap pad pas";\r
+\r
+       int nStart, nEnd;\r
+\r
+       int n = Regex_Search(pPat, 0, (LPBYTE)pString, TRUE, &nStart, &nEnd, 0);\r
+\r
+       CPPUNIT_ASSERT(n == 4);\r
+       CPPUNIT_ASSERT(nStart == 4);\r
+       CPPUNIT_ASSERT(nEnd == 8);\r
+}\r
+\r
+void TEST_CLASS_NAME::KanjiTest2() {\r
+\r
+       const char *pReason;\r
+       void *pPat = Regex_Compile((LPBYTE)"\8a¿+\8e\9a", FALSE, &pReason, 0);\r
+       CPPUNIT_ASSERT(pPat != NULL);\r
+\r
+       char *pString = "a\8a¿\8a¿\8e\9a pap pad pas";\r
+\r
+       int nStart, nEnd;\r
+\r
+       int n = Regex_Search(pPat, 0, (LPBYTE)pString, TRUE, &nStart, &nEnd, 0);\r
+\r
+       CPPUNIT_ASSERT(n == 1);\r
+       CPPUNIT_ASSERT(nStart == 1);\r
+       CPPUNIT_ASSERT(nEnd==7);\r
+}\r
+\r
+void TEST_CLASS_NAME::KanjiTest3() {\r
+       const char *pReason;\r
+       void *pPat = Regex_Compile((LPBYTE)"[\8a¿\8e\9a]+", FALSE, &pReason, 0);\r
+       CPPUNIT_ASSERT(pPat != NULL);\r
+\r
+       char *pString = "\83e\83X\83ga\8a¿\8a¿\8e\9a\8e\9a\8a¿\8e\9a pap pad pas";\r
+\r
+       int nStart, nEnd;\r
+\r
+       int n = Regex_Search(pPat, 0, (LPBYTE)pString, TRUE, &nStart, &nEnd, 0);\r
+\r
+       CPPUNIT_ASSERT(n == 7);\r
+       CPPUNIT_ASSERT(nStart == 7);\r
+       CPPUNIT_ASSERT(nEnd==19);\r
+}\r
+\r
+void TEST_CLASS_NAME::ConvUTF8PosToUCSPosTest1() {\r
+       char *pUTF = ConvUCS2ToUTF8(_L("abcdefg"));\r
+       DWORD n = ConvUTF8PosToUCSPos(pUTF, 3);\r
+       CPPUNIT_ASSERT(n == 3);\r
+}\r
+\r
+void TEST_CLASS_NAME::ConvUTF8PosToUCSPosTest2() {\r
+       char *pUTF = ConvUCS2ToUTF8(_L("ab\83Î\83Ó\83Æcdefg"));\r
+       DWORD n = ConvUTF8PosToUCSPos(pUTF, 6);\r
+       CPPUNIT_ASSERT(n == 4);\r
+}\r
+\r
+void TEST_CLASS_NAME::ConvUTF8PosToUCSPosTest3() {\r
+       char *pUTF = ConvUCS2ToUTF8(_L("ab\83Î\83Æ\8a¿a\8e\9acdefg"));\r
+       DWORD n = ConvUTF8PosToUCSPos(pUTF, 10);\r
+       CPPUNIT_ASSERT(n == 6);\r
+}\r
+\r
+void TEST_CLASS_NAME::ConvUTF8PosToUCSPosTest4() {\r
+       char *pUTF = ConvUCS2ToUTF8(_L("ab\83Î\83Æ\8a¿a\8e\9acdefg"));\r
+       DWORD n = ConvUTF8PosToUCSPos(pUTF, 18);\r
+       CPPUNIT_ASSERT(n == 12);\r
+}\r
+\r
+void TEST_CLASS_NAME::ConvUCSPosToUTF8PosTest1() {\r
+       char *pUTF = ConvUCS2ToUTF8(_L("abcdefg"));\r
+       DWORD n = ConvUCSPosToUTF8Pos(pUTF, 3);\r
+       CPPUNIT_ASSERT(n == 3);\r
+}\r
+\r
+void TEST_CLASS_NAME::ConvUCSPosToUTF8PosTest2() {\r
+       char *pUTF = ConvUCS2ToUTF8(_L("ab\83Î\83Ó\83Æcdefg"));\r
+       DWORD n = ConvUCSPosToUTF8Pos(pUTF, 4);\r
+       CPPUNIT_ASSERT(n == 6);\r
+}\r
+\r
+void TEST_CLASS_NAME::ConvUCSPosToUTF8PosTest3() {\r
+       char *pUTF = ConvUCS2ToUTF8(_L("ab\83Î\83Æ\8a¿a\8e\9acdefg"));\r
+       DWORD n = ConvUCSPosToUTF8Pos(pUTF, 6);\r
+       CPPUNIT_ASSERT(n == 10);\r
+}\r
+\r
+void TEST_CLASS_NAME::ConvUCSPosToUTF8PosTest4() {\r
+       char *pUTF = ConvUCS2ToUTF8(_L("ab\83Î\83Æ\8a¿a\8e\9acdefg"));\r
+       DWORD n = ConvUCSPosToUTF8Pos(pUTF, 12);\r
+       CPPUNIT_ASSERT(n == 18);\r
+}\r
+\r
+// Shift right SJIS\r
+void TEST_CLASS_NAME::ShiftRightTest1() {\r
+       LPBYTE p0 = (LPBYTE)"abc\8a¿\8e\9adef¶ghi";\r
+       LPBYTE p1 = (LPBYTE)ShiftRight(p0, p0 + 3, 0);\r
+       CPPUNIT_ASSERT(p1 == p0 + 5);\r
+       LPBYTE p2 = (LPBYTE)ShiftRight(p0, p1, 0);\r
+       CPPUNIT_ASSERT(p2 == p0 + 7);\r
+       LPBYTE p3 = (LPBYTE)ShiftRight(p0, p2, 0);\r
+       CPPUNIT_ASSERT(p3 == p0 + 8);\r
+\r
+}\r
+\r
+// Shift right UTF-8\r
+void TEST_CLASS_NAME::ShiftRightTest2() {\r
+       LPBYTE p0 = (LPBYTE)ConvUCS2ToUTF8(_L("ab\83Î\83Æ\8a¿a\8e\9acdefg"));\r
+\r
+       LPBYTE p1 = (LPBYTE)ShiftRight(p0, p0 + 1, 65001);\r
+       CPPUNIT_ASSERT(p1 == p0 + 2);\r
+\r
+       LPBYTE p2 = (LPBYTE)ShiftRight(p0, p0 + 2, 65001);\r
+       CPPUNIT_ASSERT(p2 == p0 + 4);\r
+\r
+       LPBYTE p3 = (LPBYTE)ShiftRight(p0, p0 + 6, 65001);\r
+       CPPUNIT_ASSERT(p3 == p0 + 9);\r
+}\r
+\r
+// Shift right UTF-16\r
+void TEST_CLASS_NAME::ShiftRightTest3() {\r
+       LPBYTE p0 = (LPBYTE)_L("ab\83Î\83Æ\8a¿a\8e\9acdefg");\r
+\r
+       LPBYTE p1 = (LPBYTE)ShiftRight(p0, p0 + 1, 1200);\r
+       CPPUNIT_ASSERT(p1 == p0 + 2);\r
+\r
+       LPBYTE p2 = (LPBYTE)ShiftRight(p0, p0 + 2, 1200);\r
+       CPPUNIT_ASSERT(p2 == p0 + 4);\r
+\r
+       LPBYTE p3 = (LPBYTE)ShiftRight(p0, p0 + 6, 1200);\r
+       CPPUNIT_ASSERT(p3 == p0 + 8);\r
+}\r
+\r
+// Shift left SJIS\r
+void TEST_CLASS_NAME::ShiftLeftTest1() {\r
+       LPBYTE p0 = (LPBYTE)"abc\8a¿\8e\9adef¶ghi";\r
+\r
+       LPBYTE p1 = (LPBYTE)ShiftLeft(p0, p0 + 5, 0);\r
+       CPPUNIT_ASSERT(p1 == p0 + 3);\r
+\r
+       LPBYTE p2 = (LPBYTE)ShiftLeft(p0, p0 + 3, 0);\r
+       CPPUNIT_ASSERT(p2 == p0 + 2);\r
+}\r
+\r
+// Shift left UTF-8\r
+void TEST_CLASS_NAME::ShiftLeftTest2() {\r
+       LPBYTE p0 = (LPBYTE)ConvUCS2ToUTF8(_L("ab\83Î\83Æ\8a¿a\8e\9acdefg"));\r
+\r
+       LPBYTE p1 = (LPBYTE)ShiftLeft(p0, p0 + 9, 65001);\r
+       CPPUNIT_ASSERT(p1 == p0 + 6);\r
+\r
+       LPBYTE p2 = (LPBYTE)ShiftLeft(p0, p0 + 6, 65001);\r
+       CPPUNIT_ASSERT(p2 == p0 + 4);\r
+\r
+       LPBYTE p3 = (LPBYTE)ShiftLeft(p0, p0 + 2, 65001);\r
+       CPPUNIT_ASSERT(p3 == p0 + 1);\r
+\r
+}\r
+\r
+// Shift left UTF-8\r
+void TEST_CLASS_NAME::ShiftLeftTest3() {\r
+       LPBYTE p0 = (LPBYTE)_L("ab\83Î\83Æ\8a¿a\8e\9acdefg");\r
+\r
+       LPBYTE p1 = (LPBYTE)ShiftLeft(p0, p0 + 9, 1200);\r
+       CPPUNIT_ASSERT(p1 == p0 + 8);\r
+\r
+       LPBYTE p2 = (LPBYTE)ShiftLeft(p0, p0 + 6, 1200);\r
+       CPPUNIT_ASSERT(p2 == p0 + 4);\r
+\r
+       LPBYTE p3 = (LPBYTE)ShiftLeft(p0, p0 + 2, 1200);\r
+       CPPUNIT_ASSERT(p3 == p0 + 0);\r
+}\r
+\r
+void TEST_CLASS_NAME::UTF8Test1() {\r
+\r
+       LPBYTE pPatUTF8 = (LPBYTE)ConvUCS2ToUTF8(_L("\8a¿\8e\9a"));\r
+\r
+       const char *pReason;\r
+       void *pPat = Regex_Compile(pPatUTF8, FALSE, &pReason, 65001);\r
+       CPPUNIT_ASSERT(pPat != NULL);\r
+\r
+       LPBYTE pString = (LPBYTE)ConvUCS2ToUTF8(_L("ab\83Î\83Æ\8a¿\8e\9acdefg"));\r
+\r
+       int nStart, nEnd;\r
+\r
+       int n = Regex_Search(pPat, 0, pString, TRUE, &nStart, &nEnd, 0);\r
+\r
+       CPPUNIT_ASSERT(n == 6);\r
+       CPPUNIT_ASSERT(nStart == 6);\r
+       CPPUNIT_ASSERT(nEnd == 12);\r
+}\r
+\r
+void TEST_CLASS_NAME::UTF8Test2() {\r
+\r
+       LPBYTE pPatUTF8 = (LPBYTE)ConvUCS2ToUTF8(_L("b\83Î"));\r
+\r
+       const char *pReason;\r
+       void *pPat = Regex_Compile(pPatUTF8, FALSE, &pReason, 65001);\r
+       CPPUNIT_ASSERT(pPat != NULL);\r
+\r
+       LPBYTE pString = (LPBYTE)ConvUCS2ToUTF8(_L("ab\83Î\83Æ\8a¿\8e\9acdefg"));\r
+\r
+       int nStart, nEnd;\r
+\r
+       int n = Regex_Search(pPat, 0, pString, TRUE, &nStart, &nEnd, 0);\r
+\r
+       CPPUNIT_ASSERT(n == 1);\r
+       CPPUNIT_ASSERT(nStart == 1);\r
+       CPPUNIT_ASSERT(nEnd == 4);\r
+}\r
+\r
+\r
+// UTF-8 -> Native(zero position)\r
+void TEST_CLASS_NAME::ConvertPosTest1() {\r
+       LPBYTE pSrc = (LPBYTE)ConvUCS2ToUTF8(_L("\8a¿ab\83Ó\8e\9a"));\r
+       LPBYTE pDst = (LPBYTE)"\8a¿ab\83Ó\8e\9a";\r
+\r
+       DWORD n = ConvertPos(pSrc, 0, 65001, pDst, 0);\r
+       \r
+       CPPUNIT_ASSERT(n == 0);\r
+\r
+}\r
+\r
+// UTF-8 -> Native\r
+void TEST_CLASS_NAME::ConvertPosTest2() {\r
+       LPBYTE pSrc = (LPBYTE)ConvUCS2ToUTF8(_L("\8a¿ab\83Ó\8e\9a"));\r
+       LPBYTE pDst = (LPBYTE)"\8a¿ab\83Ó\8e\9a";\r
+\r
+       DWORD n = ConvertPos(pSrc, 7, 65001, pDst, 0);\r
+       CPPUNIT_ASSERT(n == 6);\r
+\r
+}\r
+\r
+// UTF-8 -> UCS2\r
+void TEST_CLASS_NAME::ConvertPosTest3() {\r
+       LPBYTE pSrc = (LPBYTE)ConvUCS2ToUTF8(_L("\8a¿ab\83Ó\8e\9a"));\r
+       LPBYTE pDst = (LPBYTE)L"\8a¿ab\83Ó\8e\9a";\r
+\r
+       DWORD n = ConvertPos(pSrc, 7, 65001, pDst, 1200);\r
+       // notice result is byte position, so not 4\r
+       CPPUNIT_ASSERT(n == 8);\r
+}\r
+\r
+// Native -> UTF-8\r
+void TEST_CLASS_NAME::ConvertPosTest4() {\r
+       LPBYTE pSrc = (LPBYTE)"\8a¿ab\83Ó\8e\9a";\r
+       LPBYTE pDst = (LPBYTE)ConvUCS2ToUTF8(_L("\8a¿ab\83Ó\8e\9a"));\r
+\r
+       DWORD n = ConvertPos(pSrc, 6, 0, pDst, 65001);\r
+       CPPUNIT_ASSERT(n == 7);\r
+}\r
+\r
+// Native -> UCS2\r
+void TEST_CLASS_NAME::ConvertPosTest5() {\r
+       LPBYTE pSrc = (LPBYTE)"\8a¿ab\83Ó\8e\9a";\r
+       LPBYTE pDst = (LPBYTE)L"\8a¿ab\83Ó\8e\9a";\r
+\r
+       DWORD n = ConvertPos(pSrc, 6, 0, pDst, 1200);\r
+       CPPUNIT_ASSERT(n == 8);\r
+}\r
+\r
+// UTF-8 -> Native\r
+void TEST_CLASS_NAME::ConvertPosTest6() {\r
+       LPBYTE pSrc = (LPBYTE)ConvUCS2ToUTF8(_L("\8a¿ab\83Ó\8e\9a"));\r
+       LPBYTE pDst = (LPBYTE)"\8a¿ab\83Ó\8e\9a";\r
+\r
+       DWORD n = ConvertPos(pSrc, 10, 65001, pDst, 0);\r
+       CPPUNIT_ASSERT(n == 8);\r
+\r
+}\r
diff --git a/CppUnitTestApp/test/SharedStringTest.cpp b/CppUnitTestApp/test/SharedStringTest.cpp
new file mode 100644 (file)
index 0000000..6a89c20
--- /dev/null
@@ -0,0 +1,72 @@
+#include <cppunit/extensions/HelperMacros.h>\r
+#include <cppunit/TestAssert.h>\r
+\r
+#include <windows.h>\r
+#include <tchar.h>\r
+#include "TString.h"\r
+\r
+#define TEST_CLASS_NAME SharedStringTest\r
+\r
+class TEST_CLASS_NAME : public CppUnit::TestFixture {\r
+       CPPUNIT_TEST_SUITE(TEST_CLASS_NAME);\r
+       CPPUNIT_TEST(InitTest1);\r
+       CPPUNIT_TEST(InitTest2);\r
+       CPPUNIT_TEST(InitTest3);\r
+       CPPUNIT_TEST_SUITE_END();\r
+\r
+public:\r
+       TEST_CLASS_NAME() {}\r
+       ~TEST_CLASS_NAME() {}\r
+\r
+       virtual void setUp() {}\r
+       virtual void tearDown() {}\r
+\r
+       void InitTest1();\r
+       void InitTest2();\r
+       void InitTest3();\r
+};\r
+\r
+CPPUNIT_TEST_SUITE_REGISTRATION(TEST_CLASS_NAME);\r
+\r
+////////////////////////////////////////////////\r
+\r
+void TEST_CLASS_NAME::InitTest1() {\r
+       SharedString ss;\r
+\r
+       CPPUNIT_ASSERT(ss.Init("TEST"));\r
+       CPPUNIT_ASSERT(strcmp(ss.Get(), "TEST") == 0);\r
+}\r
+\r
+void TEST_CLASS_NAME::InitTest2() {\r
+       SharedString ss;\r
+\r
+       CPPUNIT_ASSERT(ss.Init("TEST"));\r
+       CPPUNIT_ASSERT(strcmp(ss.Get(), "TEST") == 0);\r
+\r
+       SharedString ss2(ss);\r
+       CPPUNIT_ASSERT(strcmp(ss2.Get(), "TEST") == 0);\r
+       CPPUNIT_ASSERT(ss.Get() == ss2.Get());\r
+       CPPUNIT_ASSERT(ss2.pBuf->nRefCount == 2);\r
+\r
+       SharedString ss3;\r
+       CPPUNIT_ASSERT(ss3.Init(ss2));\r
+       CPPUNIT_ASSERT(strcmp(ss3.Get(), "TEST") == 0);\r
+       CPPUNIT_ASSERT(ss3.Get() == ss.Get());\r
+       CPPUNIT_ASSERT(ss3.pBuf->nRefCount == 3);\r
+}\r
+\r
+void TEST_CLASS_NAME::InitTest3() {\r
+       SharedString ss;\r
+       CPPUNIT_ASSERT(ss.Init("TEST"));\r
+       CPPUNIT_ASSERT(strcmp(ss.Get(), "TEST") == 0);\r
+\r
+       {\r
+               SharedString ss2(ss);\r
+               CPPUNIT_ASSERT(strcmp(ss2.Get(), "TEST") == 0);\r
+               CPPUNIT_ASSERT(ss.Get() == ss2.Get());\r
+               CPPUNIT_ASSERT(ss2.pBuf->nRefCount == 2);\r
+       }\r
+\r
+       CPPUNIT_ASSERT(strcmp(ss.Get(), "TEST") == 0);\r
+       CPPUNIT_ASSERT(ss.pBuf->nRefCount == 1);\r
+}\r
diff --git a/CppUnitTestApp/test/TomboURITest.cpp b/CppUnitTestApp/test/TomboURITest.cpp
new file mode 100644 (file)
index 0000000..2d46ed0
--- /dev/null
@@ -0,0 +1,391 @@
+#include <cppunit/extensions/HelperMacros.h>\r
+#include <cppunit/TestAssert.h>\r
+\r
+#include <windows.h>\r
+#include <tchar.h>\r
+#include "TString.h"\r
+#include "TomboURI.h"\r
+\r
+#define TEST_CLASS_NAME TomboURITest\r
+\r
+class TEST_CLASS_NAME : public CppUnit::TestFixture {\r
+       CPPUNIT_TEST_SUITE(TEST_CLASS_NAME);\r
+       CPPUNIT_TEST(InitTest1);\r
+       CPPUNIT_TEST(InitTest2);\r
+       CPPUNIT_TEST(InitTest3);\r
+       CPPUNIT_TEST(InitTest4);\r
+       CPPUNIT_TEST(InitTest5);\r
+       CPPUNIT_TEST(InitTest6);\r
+       CPPUNIT_TEST(InitTest7);\r
+       CPPUNIT_TEST(GetRepoTest1);\r
+       CPPUNIT_TEST(IteratorTest1);\r
+       CPPUNIT_TEST(IteratorTest2);\r
+       CPPUNIT_TEST(IteratorTest3);\r
+       CPPUNIT_TEST(GetParentTest1);\r
+       CPPUNIT_TEST(GetParentTest2);\r
+       CPPUNIT_TEST(GetParentTest3);\r
+       CPPUNIT_TEST(GetParentTest4);\r
+       CPPUNIT_TEST(GetParentTest5);\r
+       CPPUNIT_TEST(GetParentTest6);\r
+       CPPUNIT_TEST(IsLeafTest1);\r
+       CPPUNIT_TEST(IsLeafTest2);\r
+       CPPUNIT_TEST(IsLeafTest3);\r
+       CPPUNIT_TEST(GetFilePathTest1);\r
+       CPPUNIT_TEST(GetFilePathTest2);\r
+       CPPUNIT_TEST(GetFilePathTest3);\r
+       CPPUNIT_TEST(GetBaseNameTest1);\r
+       CPPUNIT_TEST(GetBaseNameTest2);\r
+       CPPUNIT_TEST(GetBaseNameTest3);\r
+       CPPUNIT_TEST(IsRootTest1);\r
+       CPPUNIT_TEST(IsRootTest2);\r
+       CPPUNIT_TEST(IsRootTest3);\r
+       CPPUNIT_TEST_SUITE_END();\r
+\r
+public:\r
+       TEST_CLASS_NAME() {}\r
+       ~TEST_CLASS_NAME() {}\r
+\r
+       virtual void setUp() {}\r
+       virtual void tearDown() {}\r
+\r
+       void InitTest1();\r
+       void InitTest2();\r
+       void InitTest3();\r
+       void InitTest4();\r
+       void InitTest5();\r
+       void InitTest6();\r
+       void InitTest7();\r
+       void GetRepoTest1();\r
+       void IteratorTest1();\r
+       void IteratorTest2();\r
+       void IteratorTest3();\r
+       void GetParentTest1();\r
+       void GetParentTest2();\r
+       void GetParentTest3();\r
+       void GetParentTest4();\r
+       void GetParentTest5();\r
+       void GetParentTest6();\r
+       void IsLeafTest1();\r
+       void IsLeafTest2();\r
+       void IsLeafTest3();\r
+       void GetFilePathTest1();\r
+       void GetFilePathTest2();\r
+       void GetFilePathTest3();\r
+       void GetBaseNameTest1();\r
+       void GetBaseNameTest2();\r
+       void GetBaseNameTest3();\r
+       void IsRootTest1();\r
+       void IsRootTest2();\r
+       void IsRootTest3();\r
+};\r
+\r
+CPPUNIT_TEST_SUITE_REGISTRATION(TEST_CLASS_NAME);\r
+\r
+////////////////////////////////////////////////\r
+\r
+void TEST_CLASS_NAME::InitTest1() {\r
+       // no header information. fail.\r
+\r
+       TomboURI uri;\r
+       BOOL b = uri.Init("test");\r
+       CPPUNIT_ASSERT(!b);\r
+       CPPUNIT_ASSERT(GetLastError() == ERROR_INVALID_DATA);\r
+}\r
+\r
+void TEST_CLASS_NAME::InitTest2() {\r
+       // incomplete repository definition. fail.\r
+\r
+       TomboURI uri;\r
+       BOOL b = uri.Init("tombo://default");\r
+       CPPUNIT_ASSERT(!b);\r
+       CPPUNIT_ASSERT(GetLastError() == ERROR_INVALID_DATA);\r
+}\r
+\r
+void TEST_CLASS_NAME::InitTest3() {\r
+       // directs root of default repository.\r
+\r
+       TomboURI uri;\r
+       BOOL b = uri.Init("tombo://default/");\r
+       CPPUNIT_ASSERT(b);\r
+       CPPUNIT_ASSERT(uri.nMaxPathItem == 7);\r
+}\r
+\r
+void TEST_CLASS_NAME::InitTest4() {\r
+       // exists first item (no path sep)\r
+\r
+       TomboURI uri;\r
+       BOOL b = uri.Init("tombo://default/hello");\r
+       CPPUNIT_ASSERT(b);\r
+       CPPUNIT_ASSERT(uri.nMaxPathItem == 7);\r
+}\r
+\r
+void TEST_CLASS_NAME::InitTest5() {\r
+       // exists first item (with path sep)\r
+\r
+       TomboURI uri;\r
+       BOOL b = uri.Init("tombo://default/hello/");\r
+       CPPUNIT_ASSERT(b);\r
+       CPPUNIT_ASSERT(uri.nMaxPathItem == 7);\r
+}\r
+\r
+void TEST_CLASS_NAME::InitTest6() {\r
+\r
+       TomboURI uri;\r
+       BOOL b = uri.Init("tombo://default/hello world");\r
+       CPPUNIT_ASSERT(b);\r
+       CPPUNIT_ASSERT(uri.nMaxPathItem == 11);\r
+}\r
+\r
+void TEST_CLASS_NAME::InitTest7() {\r
+       TomboURI uri;\r
+       CPPUNIT_ASSERT(uri.Init("tombo://default/test.txt"));\r
+\r
+       TomboURI uri2(uri);\r
+       CPPUNIT_ASSERT(uri.GetFullURI() == uri2.GetFullURI());\r
+\r
+       TomboURI uri3;\r
+       uri3.Init(uri);\r
+       CPPUNIT_ASSERT(uri.GetFullURI() == uri2.GetFullURI());\r
+}\r
+\r
+void TEST_CLASS_NAME::GetRepoTest1() {\r
+       TomboURI uri;\r
+       CPPUNIT_ASSERT(uri.Init("tombo://default/"));\r
+       \r
+       TString repo;\r
+       BOOL b = uri.GetRepositoryName(&repo);\r
+       CPPUNIT_ASSERT(b);\r
+       CPPUNIT_ASSERT(strcmp(repo.Get(), "default") == 0);\r
+}\r
+\r
+void TEST_CLASS_NAME::IteratorTest1() {\r
+       TomboURI uri;\r
+       CPPUNIT_ASSERT(uri.Init("tombo://default/"));\r
+\r
+       TomboURIItemIterator itr(&uri);\r
+       CPPUNIT_ASSERT(itr.Init());\r
+       LPCTSTR p;\r
+       itr.First();\r
+       p = itr.Current();\r
+       CPPUNIT_ASSERT(p == NULL);\r
+       CPPUNIT_ASSERT(itr.IsLeaf() == FALSE);\r
+}\r
+\r
+void TEST_CLASS_NAME::IteratorTest2() {\r
+       TomboURI uri;\r
+       CPPUNIT_ASSERT(uri.Init("tombo://default/aaa/bbb/ccc.txt"));\r
+\r
+       TomboURIItemIterator itr(&uri);\r
+       CPPUNIT_ASSERT(itr.Init());\r
+       LPCTSTR p;\r
+       itr.First();\r
+\r
+       p = itr.Current();\r
+       CPPUNIT_ASSERT(strcmp(p, "aaa") == 0);\r
+       CPPUNIT_ASSERT(itr.IsLeaf() == FALSE);\r
+       itr.Next();\r
+\r
+       p = itr.Current();\r
+       CPPUNIT_ASSERT(strcmp(p, "bbb") == 0);\r
+       CPPUNIT_ASSERT(itr.IsLeaf() == FALSE);\r
+       itr.Next();\r
+\r
+       p = itr.Current();\r
+       CPPUNIT_ASSERT(strcmp(p, "ccc.txt") == 0);\r
+       CPPUNIT_ASSERT(itr.IsLeaf() == TRUE);\r
+       itr.Next();\r
+\r
+       p = itr.Current();\r
+       CPPUNIT_ASSERT(p == NULL);\r
+\r
+       itr.Next();\r
+       CPPUNIT_ASSERT(p == NULL);\r
+\r
+}\r
+\r
+void TEST_CLASS_NAME::IteratorTest3() {\r
+       TomboURI uri;\r
+       CPPUNIT_ASSERT(uri.Init("tombo://default/aaa/bbb/"));\r
+\r
+       TomboURIItemIterator itr(&uri);\r
+       CPPUNIT_ASSERT(itr.Init());\r
+       LPCTSTR p;\r
+       itr.First();\r
+\r
+       p = itr.Current();\r
+       CPPUNIT_ASSERT(strcmp(p, "aaa") == 0);\r
+       CPPUNIT_ASSERT(itr.IsLeaf() == FALSE);\r
+       itr.Next();\r
+\r
+       p = itr.Current();\r
+       CPPUNIT_ASSERT(strcmp(p, "bbb") == 0);\r
+       CPPUNIT_ASSERT(itr.IsLeaf() == FALSE);\r
+       itr.Next();\r
+\r
+       p = itr.Current();\r
+       CPPUNIT_ASSERT(p == NULL);\r
+\r
+}\r
+\r
+void TEST_CLASS_NAME::GetParentTest1()\r
+{\r
+       TomboURI uri;\r
+       CPPUNIT_ASSERT(uri.Init("tombo://default/aaa/bbb/ccc/ddd.txt"));\r
+       TomboURI sParent;\r
+       CPPUNIT_ASSERT(uri.GetParent(&sParent));\r
+\r
+       CPPUNIT_ASSERT(strcmp(sParent.GetFullURI(), "tombo://default/aaa/bbb/ccc/") == 0);\r
+\r
+}\r
+\r
+void TEST_CLASS_NAME::GetParentTest2()\r
+{\r
+       TomboURI uri;\r
+       CPPUNIT_ASSERT(uri.Init("tombo://default/aaa/bbb/ccc/"));\r
+       TomboURI sParent;\r
+       CPPUNIT_ASSERT(uri.GetParent(&sParent));\r
+\r
+       CPPUNIT_ASSERT(strcmp(sParent.GetFullURI(), "tombo://default/aaa/bbb/") == 0);\r
+}\r
+\r
+void TEST_CLASS_NAME::GetParentTest3()\r
+{\r
+       TomboURI uri;\r
+       CPPUNIT_ASSERT(uri.Init("tombo://default/aaa/bbb/ccc"));\r
+       TomboURI sParent;\r
+       CPPUNIT_ASSERT(uri.GetParent(&sParent));\r
+\r
+       CPPUNIT_ASSERT(strcmp(sParent.GetFullURI(), "tombo://default/aaa/bbb/") == 0);\r
+}\r
+\r
+void TEST_CLASS_NAME::GetParentTest4()\r
+{\r
+       TomboURI uri;\r
+       CPPUNIT_ASSERT(uri.Init("tombo://default/"));\r
+       TomboURI sParent;\r
+       CPPUNIT_ASSERT(uri.GetParent(&sParent));\r
+       CPPUNIT_ASSERT(strcmp(sParent.GetFullURI(), "tombo://default/") == 0);\r
+}\r
+\r
+void TEST_CLASS_NAME::GetParentTest5()\r
+{\r
+       TomboURI uri;\r
+       CPPUNIT_ASSERT(uri.Init("tombo://default/aaa.txt"));\r
+       TomboURI sParent;\r
+       CPPUNIT_ASSERT(uri.GetParent(&sParent));\r
+       CPPUNIT_ASSERT(strcmp(sParent.GetFullURI(), "tombo://default/") == 0);\r
+}\r
+\r
+void TEST_CLASS_NAME::GetParentTest6()\r
+{\r
+       TomboURI uri;\r
+       CPPUNIT_ASSERT(uri.Init("tombo://default/aaa/ddd.txt"));\r
+       TomboURI sParent;\r
+       CPPUNIT_ASSERT(uri.GetParent(&sParent));\r
+\r
+       CPPUNIT_ASSERT(strcmp(sParent.GetFullURI(), "tombo://default/aaa/") == 0);\r
+\r
+}\r
+\r
+void TEST_CLASS_NAME::IsLeafTest1()\r
+{\r
+       TomboURI uri;\r
+       CPPUNIT_ASSERT(uri.Init("tombo://default/"));\r
+       CPPUNIT_ASSERT(uri.IsLeaf() == FALSE);\r
+}\r
+\r
+void TEST_CLASS_NAME::IsLeafTest2()\r
+{\r
+       TomboURI uri;\r
+       CPPUNIT_ASSERT(uri.Init("tombo://default/aaa/"));\r
+       CPPUNIT_ASSERT(uri.IsLeaf() == FALSE);\r
+}\r
+\r
+void TEST_CLASS_NAME::IsLeafTest3()\r
+{\r
+       TomboURI uri;\r
+       CPPUNIT_ASSERT(uri.Init("tombo://default/aaa"));\r
+       CPPUNIT_ASSERT(uri.IsLeaf() == TRUE);\r
+}\r
+\r
+void TEST_CLASS_NAME::GetFilePathTest1()\r
+{\r
+       TomboURI uri;\r
+       CPPUNIT_ASSERT(uri.Init("tombo://default/"));\r
+\r
+       TString sPath;\r
+       CPPUNIT_ASSERT(uri.GetFilePath(&sPath));\r
+       CPPUNIT_ASSERT(_tcscpy(sPath.Get(), TEXT("")));\r
+}\r
+\r
+void TEST_CLASS_NAME::GetFilePathTest2()\r
+{\r
+       TomboURI uri;\r
+       CPPUNIT_ASSERT(uri.Init("tombo://default/aaa"));\r
+\r
+       TString sPath;\r
+       CPPUNIT_ASSERT(uri.GetFilePath(&sPath));\r
+       CPPUNIT_ASSERT(_tcscpy(sPath.Get(), TEXT("aaa")));\r
+\r
+}\r
+\r
+void TEST_CLASS_NAME::GetFilePathTest3()\r
+{\r
+       TomboURI uri;\r
+       CPPUNIT_ASSERT(uri.Init("tombo://default/aaa/bbb/ccc/"));\r
+\r
+       TString sPath;\r
+       CPPUNIT_ASSERT(uri.GetFilePath(&sPath));\r
+       CPPUNIT_ASSERT(_tcscpy(sPath.Get(), TEXT("aaa\\bbb\\ccc\\")));\r
+}\r
+\r
+void TEST_CLASS_NAME::GetBaseNameTest1()\r
+{\r
+       TomboURI uri;\r
+       CPPUNIT_ASSERT(uri.Init("tombo://default/aaa/bbb/ccc/dd.txt"));\r
+\r
+       TString sBase;\r
+       CPPUNIT_ASSERT(uri.GetBaseName(&sBase));\r
+       CPPUNIT_ASSERT(_tcscmp(sBase.Get(), TEXT("dd.txt")) == 0);\r
+}\r
+\r
+void TEST_CLASS_NAME::GetBaseNameTest2()\r
+{\r
+       TomboURI uri;\r
+       CPPUNIT_ASSERT(uri.Init("tombo://default/aaa/bbb/ccc/"));\r
+\r
+       TString sBase;\r
+       CPPUNIT_ASSERT(uri.GetBaseName(&sBase));\r
+       CPPUNIT_ASSERT(_tcscmp(sBase.Get(), TEXT("ccc")) == 0);\r
+}\r
+\r
+void TEST_CLASS_NAME::GetBaseNameTest3()\r
+{\r
+       TomboURI uri;\r
+       CPPUNIT_ASSERT(uri.Init("tombo://default/"));\r
+\r
+       TString sBase;\r
+       CPPUNIT_ASSERT(uri.GetBaseName(&sBase));\r
+       CPPUNIT_ASSERT(_tcscmp(sBase.Get(), TEXT("")) == 0);\r
+}\r
+\r
+void TEST_CLASS_NAME::IsRootTest1()\r
+{\r
+       TomboURI uri;\r
+       CPPUNIT_ASSERT(uri.Init("tombo://default/"));\r
+       CPPUNIT_ASSERT(uri.IsRoot() == TRUE);\r
+}\r
+\r
+void TEST_CLASS_NAME::IsRootTest2()\r
+{\r
+       TomboURI uri;\r
+       CPPUNIT_ASSERT(uri.Init("tombo://default/aaa.txt"));\r
+       CPPUNIT_ASSERT(uri.IsRoot() == FALSE);\r
+}\r
+\r
+void TEST_CLASS_NAME::IsRootTest3()\r
+{\r
+       TomboURI uri;\r
+       CPPUNIT_ASSERT(uri.Init("tombo://repo/"));\r
+       CPPUNIT_ASSERT(uri.IsRoot() == TRUE);\r
+}
\ No newline at end of file
diff --git a/CppUnitTestApp/test/URIScannerTest.cpp b/CppUnitTestApp/test/URIScannerTest.cpp
new file mode 100644 (file)
index 0000000..e9ab0e8
--- /dev/null
@@ -0,0 +1,763 @@
+#include <cppunit/extensions/HelperMacros.h>\r
+#include <cppunit/TestAssert.h>\r
+\r
+#include <windows.h>\r
+#include <tchar.h>\r
+#include "Tombo.h"\r
+#include "TString.h"\r
+#include "UniConv.h"\r
+#include "TomboURI.h"\r
+#include "Repository.h"\r
+#include "VarBuffer.h"\r
+#include "URIScanner.h"\r
+\r
+#define TEST_CLASS_NAME URIScannerTest\r
+\r
+class TEST_CLASS_NAME : public CppUnit::TestFixture {\r
+       CPPUNIT_TEST_SUITE(TEST_CLASS_NAME);\r
+       CPPUNIT_TEST(URIListTest1);\r
+\r
+       CPPUNIT_TEST(URIScanTest1);\r
+       CPPUNIT_TEST(URIScanTest2);\r
+       CPPUNIT_TEST(URIScanTest3);\r
+       CPPUNIT_TEST(URIScanTest4);\r
+       CPPUNIT_TEST(URIScanTest5);\r
+       CPPUNIT_TEST(URIScanTest6);\r
+       CPPUNIT_TEST(URIScanTest7);\r
+       CPPUNIT_TEST(URIScanTest8);\r
+       CPPUNIT_TEST(PartialScanTest1);\r
+       CPPUNIT_TEST(PartialScanTest2);\r
+\r
+       CPPUNIT_TEST(InterruptTest1);\r
+       CPPUNIT_TEST(InterruptTest2);\r
+       CPPUNIT_TEST(InterruptTest3);\r
+       CPPUNIT_TEST(InterruptTest4);\r
+\r
+       CPPUNIT_TEST_SUITE_END();\r
+\r
+public:\r
+       TEST_CLASS_NAME() {}\r
+       ~TEST_CLASS_NAME() {}\r
+\r
+       virtual void setUp() {}\r
+       virtual void tearDown() {}\r
+\r
+       void URIListTest1();\r
+\r
+       void URIScanTest1();\r
+       void URIScanTest2();\r
+       void URIScanTest3();\r
+       void URIScanTest4();\r
+       void URIScanTest5();\r
+       void URIScanTest6();\r
+       void URIScanTest7();\r
+       void URIScanTest8();\r
+       void PartialScanTest1();\r
+       void PartialScanTest2();\r
+       void InterruptTest1();\r
+       void InterruptTest2();\r
+       void InterruptTest3();\r
+       void InterruptTest4();\r
+};\r
+\r
+CPPUNIT_TEST_SUITE_REGISTRATION(TEST_CLASS_NAME);\r
+\r
+////////////////////////////////////////////////\r
+\r
+void TEST_CLASS_NAME::URIListTest1() {\r
+       URIList list;\r
+       CPPUNIT_ASSERT(list.Init());\r
+\r
+       CPPUNIT_ASSERT(list.Add(NULL, NULL));\r
+\r
+       TomboURI uri;\r
+       uri.Init("tombo://default/test");\r
+       CPPUNIT_ASSERT(list.Add(&uri, NULL));\r
+\r
+       {       // the case of when uri2 released first.\r
+               TomboURI uri2;\r
+               uri2.Init("tombo://default/test2");\r
+               CPPUNIT_ASSERT(list.Add(&uri2, NULL));\r
+       }\r
+\r
+       CPPUNIT_ASSERT(list.Add(NULL, "test"));\r
+\r
+       CPPUNIT_ASSERT(list.GetSize() == 4);\r
+\r
+       CPPUNIT_ASSERT(list.GetURI(0) == NULL);\r
+       CPPUNIT_ASSERT(list.GetTitle(0) == NULL);\r
+       CPPUNIT_ASSERT(strcmp(list.GetURI(1)->GetFullURI(), "tombo://default/test") == 0);\r
+       CPPUNIT_ASSERT(list.GetTitle(1) == NULL);\r
+       CPPUNIT_ASSERT(strcmp(list.GetURI(2)->GetFullURI(), "tombo://default/test2") == 0);\r
+       CPPUNIT_ASSERT(list.GetTitle(2) == NULL);\r
+       CPPUNIT_ASSERT(list.GetURI(3) == NULL);\r
+       CPPUNIT_ASSERT(strcmp(list.GetTitle(3), "test") == 0);\r
+}\r
+\r
+////////////////////////////////////////////////\r
+// dummy repository\r
+class DummyRepoBase : public IEnumRepository {\r
+public:\r
+       BOOL GetOption(const TomboURI *pURI, URIOption *pOption);\r
+       BOOL GetHeadLine(const TomboURI *pURI, TString *pHeadLine);\r
+};\r
+\r
+BOOL DummyRepoBase::GetOption(const TomboURI *pURI, URIOption *pOption)\r
+{\r
+       LPCTSTR p = pURI->GetFullURI();\r
+       if (*(p + strlen(p) - 1) == '/') {\r
+               pOption->bFolder = TRUE;\r
+       } else {\r
+               pOption->bFolder = FALSE;\r
+       }\r
+       return TRUE;\r
+}\r
+\r
+BOOL DummyRepoBase::GetHeadLine(const TomboURI *pURI, TString *pHeadLine)\r
+{\r
+       LPTSTR p = StringDup(pURI->GetFullURI());\r
+       if (*(p + strlen(p) -1) == '/') {\r
+               *(p + strlen(p) - 1) = '\0';    // folder only\r
+               LPCTSTR pTop = strrchr(p, '/') + 1;\r
+               pHeadLine->Set(pTop);\r
+               return TRUE;\r
+       } else {\r
+               LPTSTR q = p;\r
+               LPTSTR r;\r
+               while(*q) {\r
+                       if (*q == '/') r = q;\r
+                       q++;\r
+               }\r
+               *(r + strlen(r) - 4) = '\0';\r
+               pHeadLine->Set(r + 1);\r
+               return TRUE;\r
+       }\r
+}\r
+\r
+////////////////////////////////////////////////\r
+// dummy repo sample\r
+\r
+class RepoX : public DummyRepoBase {\r
+       URIList *GetChild(const TomboURI *pFolderURI, BOOL bSkipEncrypt, BOOL bLooseDecrypt, BOOL *pLoose);\r
+};\r
+\r
+URIList *RepoX::GetChild(const TomboURI *pFolderURI, BOOL bSkipEncrypt, BOOL bLooseDecrypt, BOOL *pLoose)\r
+{\r
+       if (strcmp(pFolderURI->GetFullURI(), "tombo://default/aaa/") == 0) {\r
+               URIList *pList = new URIList();\r
+               pList->Init();\r
+               TomboURI uri1; uri1.Init("tombo://default/aaa/bbb/"); pList->Add(&uri1, "bbb");\r
+               TomboURI uri2; uri2.Init("tombo://default/aaa/test/"); pList->Add(&uri2, "test");\r
+               TomboURI uri3; uri3.Init("tombo://default/aaa/hello.txt"); pList->Add(&uri3, "hello");\r
+               TomboURI uri4; uri4.Init("tombo://default/aaa/zzz.txt"); pList->Add(&uri4, "zzz");\r
+               return pList;\r
+       } \r
+       if (strcmp(pFolderURI->GetFullURI(), "tombo://default/aaa/bbb/") == 0) {\r
+               URIList *pList = new URIList();\r
+               pList->Init();\r
+               return pList;\r
+       }\r
+       if (strcmp(pFolderURI->GetFullURI(), "tombo://default/aaa/test/") == 0) {\r
+               URIList *pList = new URIList();\r
+               pList->Init();\r
+               TomboURI uri3; uri3.Init("tombo://default/aaa/test/sub.txt"); pList->Add(&uri3, "sub");\r
+               return pList;\r
+       }\r
+       return NULL;\r
+}\r
+\r
+\r
+////////////////////////////////////////////////\r
+// Generic test scanner\r
+\r
+// at result, calling hisory is stored to sbuf.\r
+\r
+class TestScanner1 : public URIScanner {\r
+public:\r
+       StringBufferA sbuf;\r
+\r
+       int nInitialScan;\r
+       int nAfterScan;\r
+       int nPreFolder;\r
+       int nPostFolder;\r
+       int nNote;\r
+\r
+       TestScanner1();\r
+\r
+       void InitialScan();\r
+       void AfterScan();\r
+\r
+       void PreFolder();\r
+       void PostFolder();\r
+\r
+       void Node();\r
+\r
+       BOOL Check(LPCTSTR pMsg, LPCTSTR pCorrect);\r
+       static void FullScanTest(LPCTSTR pTestName, LPCTSTR pCorrect, DummyRepoBase *pRepo);\r
+       static void ScanTest(LPCTSTR pTestName, LPCTSTR pCorrect, DummyRepoBase *pRepo, const TomboURI *pURI, BOOL bReverse);\r
+};\r
+\r
+TestScanner1::TestScanner1() \r
+{\r
+       nInitialScan = nAfterScan = nPreFolder = nPostFolder = nNote = 0;\r
+       sbuf.Init(100, 20);\r
+}\r
+\r
+void TestScanner1::InitialScan() \r
+{\r
+       DWORD n;\r
+       sbuf.Add("IS", 2, &n);\r
+}\r
+\r
+void TestScanner1::AfterScan() \r
+{\r
+       DWORD n;\r
+       sbuf.Add("AS", 2+1, &n);\r
+}\r
+\r
+void TestScanner1::PreFolder() \r
+{\r
+       DWORD n;\r
+\r
+       sbuf.Add("BF", 2, &n);\r
+\r
+       LPCTSTR pFull = CurrentURI()->GetFullURI();\r
+       sbuf.Add(pFull, strlen(pFull), &n);\r
+       sbuf.Add(GetTitle(), strlen(GetTitle()), &n);\r
+}\r
+\r
+void TestScanner1::PostFolder() \r
+{\r
+       DWORD n;\r
+       sbuf.Add("AF", 2, &n);\r
+\r
+       LPCTSTR pFull = CurrentURI()->GetFullURI();\r
+       sbuf.Add(pFull, strlen(pFull), &n);\r
+       sbuf.Add(GetTitle(), strlen(GetTitle()), &n);\r
+}\r
+\r
+void TestScanner1::Node()\r
+{\r
+       DWORD n;\r
+       sbuf.Add("ND", 2, &n);\r
+\r
+       LPCTSTR pFull = CurrentURI()->GetFullURI();\r
+       sbuf.Add(pFull, strlen(pFull), &n);\r
+       sbuf.Add(GetTitle(), strlen(GetTitle()), &n);\r
+}\r
+\r
+void TestScanner1::FullScanTest(LPCTSTR pTestName, LPCTSTR pCorrect, DummyRepoBase *pRepo)\r
+{\r
+       TomboURI base;\r
+       base.Init("tombo://default/aaa/");\r
+\r
+       TestScanner1 s1;\r
+\r
+       CPPUNIT_ASSERT(s1.Init(pRepo, &base, FALSE));\r
+\r
+       BOOL bResult = s1.FullScan();\r
+       CPPUNIT_ASSERT_EQUAL(bResult, TRUE);\r
+       LPCTSTR pResultStr = s1.sbuf.Get(0);\r
+       CPPUNIT_ASSERT(s1.Check(pTestName, pCorrect));\r
+}\r
+\r
+void TestScanner1::ScanTest(LPCTSTR pTestName, LPCTSTR pCorrect, DummyRepoBase *pRepo, const TomboURI *pURI, BOOL bReverse)\r
+{\r
+       TomboURI base;\r
+       base.Init("tombo://default/aaa/");\r
+\r
+       TestScanner1 s1;\r
+\r
+       CPPUNIT_ASSERT(s1.Init(pRepo, &base, FALSE));\r
+\r
+       BOOL bResult = s1.Scan(pURI, bReverse);\r
+       CPPUNIT_ASSERT_EQUAL(bResult, TRUE);\r
+       LPCTSTR pResultStr = s1.sbuf.Get(0);\r
+       CPPUNIT_ASSERT(s1.Check(pTestName, pCorrect));\r
+}\r
+\r
+BOOL TestScanner1::Check(LPCTSTR pMsg, LPCTSTR pCorrect)\r
+{\r
+       LPCTSTR pResult = sbuf.Get(0);\r
+\r
+       DWORD n1 = strlen(pResult);\r
+       DWORD n2 = strlen(pCorrect);\r
+\r
+       for (DWORD i = 0; i < n1; i++) {\r
+               if (pResult[i] != pCorrect[i]) {\r
+                       Sleep(1);\r
+               }\r
+       }\r
+       Sleep(1);\r
+\r
+       return strcmp(sbuf.Get(0), pCorrect) == 0;\r
+}\r
+\r
+////////////////////////////////////////////////\r
+// TEST\r
+//\r
+// Test the root is empty\r
+\r
+// test data\r
+class Repo1 : public DummyRepoBase {\r
+       URIList *GetChild(const TomboURI *pFolderURI, BOOL bSkipEncrypt, BOOL bLooseDecrypt, BOOL *pLoose);\r
+};\r
+\r
+URIList *Repo1::GetChild(const TomboURI *pFolderURI, BOOL bSkipEncrypt, BOOL bLooseDecrypt, BOOL *pLoose)\r
+{\r
+       URIList *pList = new URIList();\r
+       pList->Init();\r
+       return pList;\r
+}\r
+\r
+// test runner\r
+void TEST_CLASS_NAME::URIScanTest1() \r
+{\r
+       LPCTSTR pTest = "TEST1";\r
+       LPCTSTR pCorrect = \r
+               "IS"\r
+               "BF" "tombo://default/aaa/" "aaa"\r
+               "AF" "tombo://default/aaa/" "aaa"\r
+               "AS";\r
+       Repo1 rep;\r
+\r
+       TestScanner1::FullScanTest(pTest, pCorrect, &rep);\r
+}\r
+\r
+////////////////////////////////////////////////\r
+// TEST\r
+//\r
+// 2 nodes under the root\r
+\r
+// test data\r
+class Repo2 : public DummyRepoBase {\r
+       URIList *GetChild(const TomboURI *pFolderURI, BOOL bSkipEncrypt, BOOL bLooseDecrypt, BOOL *pLoose);\r
+};\r
+\r
+URIList *Repo2::GetChild(const TomboURI *pFolderURI, BOOL bSkipEncrypt, BOOL bLooseDecrypt, BOOL *pLoose)\r
+{\r
+       URIList *pList = new URIList();\r
+       pList->Init();\r
+\r
+       TomboURI uri1; uri1.Init("tombo://default/aaa/bbb.txt"); pList->Add(&uri1, "bbb");\r
+       TomboURI uri2; uri2.Init("tombo://default/aaa/ccc.txt"); pList->Add(&uri2, "ccc");\r
+\r
+       return pList;\r
+}\r
+\r
+void TEST_CLASS_NAME::URIScanTest2() \r
+{\r
+       LPCTSTR pTest = "TEST3";\r
+       LPCTSTR pCorrect = \r
+               "IS"\r
+               "BF" "tombo://default/aaa/" "aaa"\r
+               "ND" "tombo://default/aaa/bbb.txt" "bbb"\r
+               "ND" "tombo://default/aaa/ccc.txt" "ccc"\r
+               "AF" "tombo://default/aaa/" "aaa"\r
+               "AS";\r
+       Repo2 rep;\r
+\r
+       TestScanner1::FullScanTest(pTest, pCorrect, &rep);\r
+}\r
+\r
+////////////////////////////////////////////////\r
+// TEST\r
+//\r
+// there are a folder and a node under the root.\r
+\r
+// test data\r
+class Repo3 : public DummyRepoBase {\r
+       URIList *GetChild(const TomboURI *pFolderURI, BOOL bSkipEncrypt, BOOL bLooseDecrypt, BOOL *pLoose);\r
+};\r
+\r
+URIList *Repo3::GetChild(const TomboURI *pFolderURI, BOOL bSkipEncrypt, BOOL bLooseDecrypt, BOOL *pLoose)\r
+{\r
+       URIList *pList = new URIList();\r
+       pList->Init();\r
+\r
+       if (strcmp(pFolderURI->GetFullURI(), "tombo://default/aaa/") == 0) {\r
+               TomboURI uri1; uri1.Init("tombo://default/aaa/bbb/"); pList->Add(&uri1, "bbb");\r
+               TomboURI uri2; uri2.Init("tombo://default/aaa/ccc.txt"); pList->Add(&uri2, "ccc");\r
+       }\r
+       if (strcmp(pFolderURI->GetFullURI(), "tombo://default/aaa/bbb/") == 0) {\r
+               URIList *pList = new URIList();\r
+               pList->Init();\r
+               return pList;\r
+       }\r
+       return pList;\r
+}\r
+\r
+void TEST_CLASS_NAME::URIScanTest3() \r
+{\r
+       LPCTSTR pTest = "TEST3";\r
+       LPCTSTR pCorrect = \r
+               "IS"\r
+               "BF" "tombo://default/aaa/" "aaa"\r
+               "BF" "tombo://default/aaa/bbb/" "bbb"\r
+               "AF" "tombo://default/aaa/bbb/" "bbb"\r
+               "ND" "tombo://default/aaa/ccc.txt" "ccc"\r
+               "AF" "tombo://default/aaa/" "aaa"\r
+               "AS";\r
+       Repo3 rep;\r
+\r
+       TestScanner1::FullScanTest(pTest, pCorrect, &rep);\r
+}\r
+\r
+////////////////////////////////////////////////\r
+// TEST\r
+//\r
+// nested folder\r
+\r
+// test data\r
+class Repo4 : public DummyRepoBase {\r
+       const TomboURI *pStopURI;\r
+protected:\r
+       URIList *GetChild(const TomboURI *pFolderURI, BOOL bSkipEncrypt, BOOL bLooseDecrypt, BOOL *pLoose);\r
+public:\r
+       Repo4() : DummyRepoBase(), pStopURI(NULL) {}\r
+       Repo4(const TomboURI *pURI);\r
+};\r
+\r
+Repo4::Repo4(const TomboURI *pURI)\r
+{\r
+       pStopURI = new TomboURI(*pURI);\r
+}\r
+\r
+URIList *Repo4::GetChild(const TomboURI *pFolderURI, BOOL bSkipEncrypt, BOOL bLooseDecrypt, BOOL *pLoose)\r
+{\r
+       URIList *pList = new URIList();\r
+       pList->Init();\r
+\r
+       if (pStopURI != NULL && strcmp(pStopURI->GetFullURI(), pFolderURI->GetFullURI()) == 0) {\r
+               SetLastError(ERROR_CANCELLED);\r
+               return NULL;\r
+       }\r
+\r
+       if (strcmp(pFolderURI->GetFullURI(), "tombo://default/aaa/") == 0) {\r
+               TomboURI uri1; uri1.Init("tombo://default/aaa/bbb/"); pList->Add(&uri1, "bbb");\r
+               TomboURI uri2; uri2.Init("tombo://default/aaa/ddd.txt"); pList->Add(&uri2, "ddd");\r
+       }\r
+       if (strcmp(pFolderURI->GetFullURI(), "tombo://default/aaa/bbb/") == 0) {\r
+               URIList *pList = new URIList();\r
+               pList->Init();\r
+               TomboURI uri1; uri1.Init("tombo://default/aaa/bbb/ccc/"); pList->Add(&uri1, "ccc");\r
+               TomboURI uri2; uri2.Init("tombo://default/aaa/bbb/eee.txt"); pList->Add(&uri2, "eee");\r
+               return pList;\r
+       }\r
+       if (strcmp(pFolderURI->GetFullURI(), "tombo://default/aaa/bbb/ccc/") == 0) {\r
+               URIList *pList = new URIList();\r
+               pList->Init();\r
+               TomboURI uri1; uri1.Init("tombo://default/aaa/bbb/ccc/fff.txt"); pList->Add(&uri1, "fff");\r
+               TomboURI uri2; uri2.Init("tombo://default/aaa/bbb/ccc/ggg.txt"); pList->Add(&uri2, "ggg");\r
+               return pList;\r
+       }\r
+\r
+       return pList;\r
+}\r
+\r
+void TEST_CLASS_NAME::URIScanTest4() \r
+{\r
+       LPCTSTR pTest = "TEST4";\r
+       LPCTSTR pCorrect = \r
+               "IS"\r
+               "BF" "tombo://default/aaa/" "aaa"\r
+               "BF" "tombo://default/aaa/bbb/" "bbb"\r
+               "BF" "tombo://default/aaa/bbb/ccc/" "ccc"\r
+               "ND" "tombo://default/aaa/bbb/ccc/fff.txt" "fff"\r
+               "ND" "tombo://default/aaa/bbb/ccc/ggg.txt" "ggg"\r
+               "AF" "tombo://default/aaa/bbb/ccc/" "ccc"\r
+               "ND" "tombo://default/aaa/bbb/eee.txt" "eee"\r
+               "AF" "tombo://default/aaa/bbb/" "bbb"\r
+               "ND" "tombo://default/aaa/ddd.txt" "ddd"\r
+               "AF" "tombo://default/aaa/" "aaa"\r
+               "AS";\r
+       Repo4 rep;\r
+\r
+       TestScanner1::FullScanTest(pTest, pCorrect, &rep);\r
+}\r
+\r
+////////////////////////////////////////////////\r
+// TEST\r
+//\r
+// stop scan test\r
+// Data is same as URIScanTest4\r
+\r
+class TestScanner2 : public TestScanner1 {\r
+public:\r
+       void Node();\r
+};\r
+\r
+void TestScanner2::Node() \r
+{\r
+       TestScanner1::Node();\r
+       LPCTSTR pFull = CurrentURI()->GetFullURI();\r
+       if (strcmp(pFull, "tombo://default/aaa/bbb/ccc/fff.txt") == 0) {\r
+               StopScan();\r
+       }\r
+}\r
+\r
+void TEST_CLASS_NAME::URIScanTest5() \r
+{\r
+       LPCTSTR pTest = "TEST5";\r
+       LPCTSTR pCorrect = \r
+               "IS"\r
+               "BF" "tombo://default/aaa/" "aaa"\r
+               "BF" "tombo://default/aaa/bbb/" "bbb"\r
+               "BF" "tombo://default/aaa/bbb/ccc/" "ccc"\r
+               "ND" "tombo://default/aaa/bbb/ccc/fff.txt" "fff"\r
+               "AF" "tombo://default/aaa/bbb/ccc/" "ccc"\r
+               "AF" "tombo://default/aaa/bbb/" "bbb"\r
+               "AF" "tombo://default/aaa/" "aaa"\r
+               "AS";\r
+       Repo4 rep;\r
+\r
+       TomboURI base;\r
+       base.Init("tombo://default/aaa/");\r
+\r
+       TestScanner2 s1;\r
+\r
+       CPPUNIT_ASSERT(s1.Init(&rep, &base, FALSE));\r
+\r
+       BOOL bResult = s1.FullScan();\r
+       CPPUNIT_ASSERT_EQUAL(bResult, TRUE);\r
+       LPCTSTR pResultStr = s1.sbuf.Get(0);\r
+       CPPUNIT_ASSERT(s1.Check(pTest, pCorrect));\r
+}\r
+\r
+////////////////////////////////////////////////\r
+// TEST\r
+//\r
+// cancel test\r
+// assume when user cancelled password dialog\r
+\r
+class Repo6 : public Repo4 {\r
+       URIList *GetChild(const TomboURI *pFolderURI, BOOL bSkipEncrypt, BOOL bLooseDecrypt, BOOL *pLoose);\r
+};\r
+\r
+URIList *Repo6::GetChild(const TomboURI *pFolderURI, BOOL bSkipEncrypt, BOOL bLooseDecrypt, BOOL *pLoose)\r
+{\r
+       if (strcmp(pFolderURI->GetFullURI(), "tombo://default/aaa/bbb/ccc/") == 0) {\r
+               SetLastError(ERROR_CANCELLED);\r
+               return NULL;\r
+       } else {\r
+               return Repo4::GetChild(pFolderURI, bSkipEncrypt, FALSE, FALSE);\r
+       }\r
+}\r
+\r
+void TEST_CLASS_NAME::URIScanTest6() \r
+{\r
+       LPCTSTR pTest = "TEST6";\r
+       LPCTSTR pCorrect = \r
+               "IS"\r
+               "BF" "tombo://default/aaa/" "aaa"\r
+               "BF" "tombo://default/aaa/bbb/" "bbb"\r
+               "AF" "tombo://default/aaa/bbb/" "bbb"\r
+               "AF" "tombo://default/aaa/" "aaa"\r
+               "AS";\r
+       Repo6 rep;\r
+\r
+       TestScanner1::FullScanTest(pTest, pCorrect, &rep);\r
+}\r
+\r
+////////////////////////////////////////////////\r
+// TEST\r
+//\r
+// cancel at root\r
+// assume when user cancelled password dialog\r
+\r
+class Repo7 : public Repo4 {\r
+       URIList *GetChild(const TomboURI *pFolderURI, BOOL bSkipEncrypt, BOOL bLooseDecrypt, BOOL *pLoose);\r
+};\r
+\r
+URIList *Repo7::GetChild(const TomboURI *pFolderURI, BOOL bSkipEncrypt, BOOL bLooseDecrypt, BOOL *pLoose)\r
+{\r
+       SetLastError(ERROR_CANCELLED);\r
+       return NULL;\r
+}\r
+\r
+void TEST_CLASS_NAME::URIScanTest7() \r
+{\r
+       LPCTSTR pTest = "TEST7";\r
+       LPCTSTR pCorrect = \r
+               "IS"\r
+               "AS";\r
+       Repo7 rep;\r
+\r
+       TestScanner1::FullScanTest(pTest, pCorrect, &rep);\r
+}\r
+\r
+////////////////////////////////////////////////\r
+// TEST\r
+//\r
+// reverse order of URIScanTest4()\r
+\r
+void TEST_CLASS_NAME::URIScanTest8() \r
+{\r
+       LPCTSTR pTest = "TEST8";\r
+       LPCTSTR pCorrect = \r
+               "IS"\r
+               "BF" "tombo://default/aaa/" "aaa"\r
+               "ND" "tombo://default/aaa/ddd.txt" "ddd"\r
+               "BF" "tombo://default/aaa/bbb/" "bbb"           \r
+               "ND" "tombo://default/aaa/bbb/eee.txt" "eee"\r
+               "BF" "tombo://default/aaa/bbb/ccc/" "ccc"\r
+               "ND" "tombo://default/aaa/bbb/ccc/ggg.txt" "ggg"\r
+               "ND" "tombo://default/aaa/bbb/ccc/fff.txt" "fff"\r
+               "AF" "tombo://default/aaa/bbb/ccc/" "ccc"               \r
+               "AF" "tombo://default/aaa/bbb/" "bbb"\r
+               "AF" "tombo://default/aaa/" "aaa"\r
+               "AS";\r
+       Repo4 rep;      // Repo4 is correct.\r
+\r
+       TestScanner1::ScanTest(pTest, pCorrect, &rep, NULL, TRUE);\r
+}\r
+\r
+////////////////////////////////////////////////\r
+// TEST\r
+//\r
+// partial scan test\r
+\r
+void TEST_CLASS_NAME::PartialScanTest1() \r
+{\r
+       LPCTSTR pTest = "TEST-P1";\r
+       LPCTSTR pCorrect = \r
+               "IS"\r
+               "BF" "tombo://default/aaa/" "aaa"\r
+               "BF" "tombo://default/aaa/bbb/" "bbb"\r
+               "BF" "tombo://default/aaa/bbb/ccc/" "ccc"\r
+               "ND" "tombo://default/aaa/bbb/ccc/ggg.txt" "ggg"\r
+               "AF" "tombo://default/aaa/bbb/ccc/" "ccc"\r
+               "ND" "tombo://default/aaa/bbb/eee.txt" "eee"\r
+               "AF" "tombo://default/aaa/bbb/" "bbb"\r
+               "ND" "tombo://default/aaa/ddd.txt" "ddd"\r
+               "AF" "tombo://default/aaa/" "aaa"\r
+               "AS";\r
+       Repo4 rep;\r
+\r
+       TomboURI part;\r
+       part.Init("tombo://default/aaa/bbb/ccc/ggg.txt");\r
+\r
+       TestScanner1::ScanTest(pTest, pCorrect, &rep, &part, FALSE);\r
+\r
+}\r
+\r
+////////////////////////////////////////////////\r
+// TEST\r
+//\r
+// baseURI and startURI is same\r
+\r
+void TEST_CLASS_NAME::PartialScanTest2() \r
+{\r
+       LPCTSTR pTest = "PSTEST2";\r
+       LPCTSTR pCorrect = \r
+               "IS"\r
+               "BF" "tombo://default/aaa/" "aaa"\r
+               "BF" "tombo://default/aaa/bbb/" "bbb"\r
+               "BF" "tombo://default/aaa/bbb/ccc/" "ccc"\r
+               "ND" "tombo://default/aaa/bbb/ccc/fff.txt" "fff"\r
+               "ND" "tombo://default/aaa/bbb/ccc/ggg.txt" "ggg"\r
+               "AF" "tombo://default/aaa/bbb/ccc/" "ccc"\r
+               "ND" "tombo://default/aaa/bbb/eee.txt" "eee"\r
+               "AF" "tombo://default/aaa/bbb/" "bbb"\r
+               "ND" "tombo://default/aaa/ddd.txt" "ddd"\r
+               "AF" "tombo://default/aaa/" "aaa"\r
+               "AS";\r
+       Repo4 rep;\r
+\r
+       TomboURI part;\r
+       part.Init("tombo://default/aaa/");\r
+\r
+       TestScanner1::ScanTest(pTest, pCorrect, &rep, &part, FALSE);\r
+}\r
+\r
+////////////////////////////////////////////////\r
+// TEST\r
+//\r
+// cancelled at root\r
+\r
+void TEST_CLASS_NAME::InterruptTest1() \r
+{\r
+       LPCTSTR pTest = "IRTEST1";\r
+       LPCTSTR pCorrect = \r
+               "IS"\r
+               "AS";\r
+       TomboURI sStopURI;\r
+       sStopURI.Init("tombo://default/aaa/");\r
+       Repo4 rep(&sStopURI);\r
+\r
+       TestScanner1::ScanTest(pTest, pCorrect, &rep, NULL, FALSE);\r
+}\r
+\r
+////////////////////////////////////////////////\r
+// TEST\r
+//\r
+// cancelled at sub folder\r
+\r
+void TEST_CLASS_NAME::InterruptTest2() \r
+{\r
+       LPCTSTR pTest = "IRTEST1";\r
+       LPCTSTR pCorrect = \r
+               "IS"\r
+               "BF" "tombo://default/aaa/" "aaa"\r
+               "BF" "tombo://default/aaa/bbb/" "bbb"\r
+               "AF" "tombo://default/aaa/bbb/" "bbb"\r
+               "AF" "tombo://default/aaa/" "aaa"\r
+               "AS";\r
+\r
+       TomboURI sStopURI;\r
+       sStopURI.Init("tombo://default/aaa/bbb/ccc/");\r
+       Repo4 rep(&sStopURI);\r
+\r
+       TestScanner1::ScanTest(pTest, pCorrect, &rep, NULL, FALSE);\r
+}\r
+\r
+////////////////////////////////////////////////\r
+// TEST\r
+//\r
+// cancelled at sub folder\r
+\r
+void TEST_CLASS_NAME::InterruptTest3() \r
+{\r
+       LPCTSTR pTest = "IRTEST1";\r
+       LPCTSTR pCorrect = \r
+               "IS"\r
+               "BF" "tombo://default/aaa/" "aaa"\r
+               "BF" "tombo://default/aaa/bbb/" "bbb"\r
+               "AF" "tombo://default/aaa/bbb/" "bbb"\r
+               "AF" "tombo://default/aaa/" "aaa"\r
+               "AS";\r
+\r
+       TomboURI sStopURI;\r
+       sStopURI.Init("tombo://default/aaa/bbb/ccc/");\r
+       Repo4 rep(&sStopURI);\r
+\r
+       TomboURI part;\r
+       part.Init("tombo://default/aaa/bbb/ccc/ggg.txt");\r
+\r
+       TestScanner1::ScanTest(pTest, pCorrect, &rep, &part, FALSE);\r
+}\r
+\r
+////////////////////////////////////////////////\r
+// TEST\r
+//\r
+// cancelled at sub folder\r
+\r
+void TEST_CLASS_NAME::InterruptTest4() \r
+{\r
+       LPCTSTR pTest = "IRTEST1";\r
+       LPCTSTR pCorrect = \r
+               "IS"\r
+               "BF" "tombo://default/aaa/" "aaa"\r
+               "AF" "tombo://default/aaa/" "aaa"\r
+               "AS";\r
+\r
+       TomboURI sStopURI;\r
+       sStopURI.Init("tombo://default/aaa/bbb/");\r
+       Repo4 rep(&sStopURI);\r
+\r
+       TomboURI part;\r
+       part.Init("tombo://default/aaa/bbb/ccc/ggg.txt");\r
+\r
+       TestScanner1::ScanTest(pTest, pCorrect, &rep, &part, FALSE);\r
+}\r
+\r
diff --git a/CppUnitTestApp/test/UniConvTest.cpp b/CppUnitTestApp/test/UniConvTest.cpp
new file mode 100644 (file)
index 0000000..ecfd2fe
--- /dev/null
@@ -0,0 +1,230 @@
+#include <cppunit/extensions/HelperMacros.h>\r
+#include <cppunit/TestAssert.h>\r
+\r
+#include <windows.h>\r
+#include "UniConv.h"\r
+\r
+#define TEST_CLASS_NAME UniConvTest\r
+\r
+class TEST_CLASS_NAME : public CppUnit::TestFixture {\r
+       CPPUNIT_TEST_SUITE(TEST_CLASS_NAME);\r
+       CPPUNIT_TEST(Base64EncodeTest1);\r
+       CPPUNIT_TEST(Base64EncodeTest2);\r
+       CPPUNIT_TEST(Base64EncodeTest3);\r
+       CPPUNIT_TEST(Base64EncodeTest4_1);\r
+       CPPUNIT_TEST(Base64EncodeTest4_2);\r
+       CPPUNIT_TEST(Base64EncodeTest4_3);\r
+       CPPUNIT_TEST(Base64EncodeTest4_4);\r
+       CPPUNIT_TEST(Base64EncodeTest4_5);\r
+       CPPUNIT_TEST(Base64EncodeTest4_6);\r
+       CPPUNIT_TEST(Base64EncodeTest4_7);\r
+\r
+       CPPUNIT_TEST(Base64DecodeTest1);\r
+       CPPUNIT_TEST(Base64DecodeTest2);\r
+\r
+       CPPUNIT_TEST(ConvUTF8ToUCS2Test1);\r
+       CPPUNIT_TEST(ConvUTF8ToUCS2Test2);\r
+       CPPUNIT_TEST(ConvUTF8ToUCS2Test3);\r
+\r
+       CPPUNIT_TEST(ConvUCS2ToUTF8Test1);\r
+       CPPUNIT_TEST(ConvUCS2ToUTF8Test2);\r
+       CPPUNIT_TEST(ConvUCS2ToUTF8Test3);\r
+\r
+       CPPUNIT_TEST_SUITE_END();\r
+\r
+public:\r
+       TEST_CLASS_NAME() {}\r
+       ~TEST_CLASS_NAME() {}\r
+\r
+       virtual void setUp() {}\r
+       virtual void tearDown() {}\r
+\r
+       void Base64EncodeTest1();\r
+       void Base64EncodeTest2();\r
+       void Base64EncodeTest3();\r
+       void Base64EncodeTest4_1();\r
+       void Base64EncodeTest4_2();\r
+       void Base64EncodeTest4_3();\r
+       void Base64EncodeTest4_4();\r
+       void Base64EncodeTest4_5();\r
+       void Base64EncodeTest4_6();\r
+       void Base64EncodeTest4_7();\r
+\r
+       void Base64DecodeTest1();\r
+       void Base64DecodeTest2();\r
+\r
+       void ConvUTF8ToUCS2Test1();\r
+       void ConvUTF8ToUCS2Test2();\r
+       void ConvUTF8ToUCS2Test3();\r
+\r
+       void ConvUCS2ToUTF8Test1();\r
+       void ConvUCS2ToUTF8Test2();\r
+       void ConvUCS2ToUTF8Test3();\r
+};\r
+\r
+CPPUNIT_TEST_SUITE_REGISTRATION(TEST_CLASS_NAME);\r
+\r
+// test probe\r
+extern DWORD g_Base64EncodeAllocSize;\r
+\r
+////////////////////////////////////////////////\r
+\r
+void TEST_CLASS_NAME::Base64EncodeTest1() {\r
+       char *pOut = Base64Encode((LPBYTE)"Hello", 5);\r
+\r
+       CPPUNIT_ASSERT(g_Base64EncodeAllocSize == 9);\r
+       CPPUNIT_ASSERT(strcmp("SGVsbG8=", pOut) == 0);\r
+       delete [] pOut;\r
+}\r
+\r
+void TEST_CLASS_NAME::Base64EncodeTest2() {\r
+       char *pOut = Base64Encode(NULL, 5);\r
+       CPPUNIT_ASSERT(pOut == NULL);\r
+}\r
+\r
+void TEST_CLASS_NAME::Base64EncodeTest3() {\r
+       char *pOut = Base64Encode((LPBYTE)"Hello", 0);\r
+       CPPUNIT_ASSERT(pOut == NULL);\r
+}\r
+\r
+void TEST_CLASS_NAME::Base64EncodeTest4_1()\r
+{\r
+       char *pOut = Base64Encode((LPBYTE)"Hello ", 1);\r
+\r
+       CPPUNIT_ASSERT(g_Base64EncodeAllocSize == 5);\r
+       CPPUNIT_ASSERT(strcmp("SA==", pOut) == 0);\r
+       delete [] pOut;\r
+}\r
+\r
+void TEST_CLASS_NAME::Base64EncodeTest4_2()\r
+{\r
+       char *pOut = Base64Encode((LPBYTE)"Hello ", 2);\r
+\r
+       CPPUNIT_ASSERT(g_Base64EncodeAllocSize == 5);\r
+       CPPUNIT_ASSERT(strcmp("SGU=", pOut) == 0);\r
+       delete [] pOut;\r
+}\r
+\r
+void TEST_CLASS_NAME::Base64EncodeTest4_3()\r
+{\r
+       char *pOut = Base64Encode((LPBYTE)"Hello ", 3);\r
+\r
+       CPPUNIT_ASSERT(g_Base64EncodeAllocSize == 5);\r
+       CPPUNIT_ASSERT(strcmp("SGVs", pOut) == 0);\r
+       delete [] pOut;\r
+}\r
+\r
+void TEST_CLASS_NAME::Base64EncodeTest4_4()\r
+{\r
+       char *pOut = Base64Encode((LPBYTE)"Hello ", 4);\r
+\r
+       CPPUNIT_ASSERT(g_Base64EncodeAllocSize == 9);\r
+       CPPUNIT_ASSERT(strcmp("SGVsbA==", pOut) == 0);\r
+       delete [] pOut;\r
+}\r
+\r
+void TEST_CLASS_NAME::Base64EncodeTest4_5()\r
+{\r
+       char *pOut = Base64Encode((LPBYTE)"Hello ", 5);\r
+\r
+       CPPUNIT_ASSERT(g_Base64EncodeAllocSize == 9);\r
+       CPPUNIT_ASSERT(strcmp("SGVsbG8=", pOut) == 0);\r
+       delete [] pOut;\r
+}\r
+\r
+void TEST_CLASS_NAME::Base64EncodeTest4_6()\r
+{\r
+       char *pOut = Base64Encode((LPBYTE)"Hello ", 6);\r
+\r
+       CPPUNIT_ASSERT(g_Base64EncodeAllocSize == 9);\r
+       CPPUNIT_ASSERT(strcmp("SGVsbG8g", pOut) == 0);\r
+       delete [] pOut;\r
+}\r
+\r
+void TEST_CLASS_NAME::Base64EncodeTest4_7()\r
+{\r
+       char *pOut = Base64Encode((LPBYTE)"Hello w", 7);\r
+\r
+       CPPUNIT_ASSERT(g_Base64EncodeAllocSize == 13);\r
+       CPPUNIT_ASSERT(strcmp("SGVsbG8gdw==", pOut) == 0);\r
+       delete [] pOut;\r
+}\r
+\r
+void TEST_CLASS_NAME::Base64DecodeTest1()\r
+{\r
+       DWORD n;\r
+       LPBYTE p = Base64Decode("SGVsbG8=", &n);\r
+       CPPUNIT_ASSERT(n == 5);\r
+       CPPUNIT_ASSERT(strncmp((char*)p, "Hello", 5) == 0);\r
+       delete [] p;\r
+}\r
+\r
+void TEST_CLASS_NAME::Base64DecodeTest2()\r
+{\r
+       DWORD n;\r
+       LPBYTE p = Base64Decode("SGVsbG8", &n);\r
+       CPPUNIT_ASSERT(p == NULL);\r
+}\r
+\r
+// UTF-8 1 byte conversion\r
+void TEST_CLASS_NAME::ConvUTF8ToUCS2Test1()\r
+{\r
+       char aInput[] = { 0x54, 0x45, 0x53, 0x54, 0x00};        // "TEST"\r
+       WCHAR aExpect[] = {0x0054, 0x0045, 0x0053, 0x0054, 0x0000};\r
+\r
+       LPWSTR pResult = ConvUTF8ToUCS2(aInput);\r
+       CPPUNIT_ASSERT(wcscmp(aExpect, pResult) == 0);\r
+}\r
+\r
+// UTF-8 2 byte conversion\r
+void TEST_CLASS_NAME::ConvUTF8ToUCS2Test2()\r
+{\r
+       char aInput[] = { (char)0xce, (char)0xb8, (char)0xcf, (char)0x80, 0x00};        //  #GREEK SMALL LETTER THETA, #GREEK SMALL LETTER PI\r
+       WCHAR aExpect[] = {0x03b8, 0x03c0, 0x0000};\r
+\r
+       LPWSTR pResult = ConvUTF8ToUCS2(aInput);\r
+       CPPUNIT_ASSERT(wcscmp(aExpect, pResult) == 0);\r
+}\r
+\r
+// UTF-8 3 byte conversion\r
+void TEST_CLASS_NAME::ConvUTF8ToUCS2Test3()\r
+{\r
+       char aInput[] = {       (char)0xe3, (char)0x81, (char)0xa8, (char)0xe3, // TOMBO by Hira-gana and Kanji\r
+                                               (char)0x82, (char)0x93, (char)0xe3, (char)0x81,\r
+                                               (char)0xbc, (char)0xe8, (char)0x9c, (char)0xbb,\r
+                                               (char)0xe8, (char)0x9b, (char)0x89, (char)0x00};\r
+       WCHAR aExpect[] = {0x3068, 0x3093, 0x307c, 0x873b, 0x86c9, 0x0000};\r
+\r
+       LPWSTR pResult = ConvUTF8ToUCS2(aInput);\r
+       CPPUNIT_ASSERT(wcscmp(aExpect, pResult) == 0);\r
+}\r
+\r
+void TEST_CLASS_NAME::ConvUCS2ToUTF8Test1()\r
+{\r
+       WCHAR aInput[] = {0x0054, 0x0045, 0x0053, 0x0054, 0x0000};      // "TEST"\r
+       char aExpect[] = { 0x54, 0x45, 0x53, 0x54, 0x00};\r
+\r
+       char *pResult = ConvUCS2ToUTF8(aInput);\r
+       CPPUNIT_ASSERT(strcmp(aExpect, pResult) == 0);\r
+}\r
+\r
+void TEST_CLASS_NAME::ConvUCS2ToUTF8Test2()\r
+{\r
+       WCHAR aInput[] = {0x03b8, 0x03c0, 0x0000};\r
+       char aExpect[] = { (char)0xce, (char)0xb8, (char)0xcf, (char)0x80, 0x00};       //  #GREEK SMALL LETTER THETA, #GREEK SMALL LETTER PI\r
+\r
+       char *pResult = ConvUCS2ToUTF8(aInput);\r
+       CPPUNIT_ASSERT(strcmp(aExpect, pResult) == 0);\r
+}\r
+\r
+void TEST_CLASS_NAME::ConvUCS2ToUTF8Test3()\r
+{\r
+       WCHAR aInput[] = {0x3068, 0x3093, 0x307c, 0x873b, 0x86c9, 0x0000};\r
+       char aExpect[] = {      (char)0xe3, (char)0x81, (char)0xa8, (char)0xe3, // TOMBO by Hira-gana and Kanji\r
+                                               (char)0x82, (char)0x93, (char)0xe3, (char)0x81,\r
+                                               (char)0xbc, (char)0xe8, (char)0x9c, (char)0xbb,\r
+                                               (char)0xe8, (char)0x9b, (char)0x89, (char)0x00};\r
+\r
+       char *pResult = ConvUCS2ToUTF8(aInput);\r
+       CPPUNIT_ASSERT(strcmp(aExpect, pResult) == 0);\r
+}
\ No newline at end of file
diff --git a/CppUnitTestApp/test/VarBufferTest.cpp b/CppUnitTestApp/test/VarBufferTest.cpp
new file mode 100644 (file)
index 0000000..437bd54
--- /dev/null
@@ -0,0 +1,146 @@
+#include <cppunit/extensions/HelperMacros.h>\r
+#include <cppunit/TestAssert.h>\r
+\r
+#include <windows.h>\r
+#include "VarBuffer.h"\r
+\r
+class VarBufferTest : public CppUnit::TestFixture {\r
+       CPPUNIT_TEST_SUITE(VarBufferTest);\r
+       CPPUNIT_TEST(VarBufferImplTest1);\r
+       CPPUNIT_TEST(VarBufferImplTest2);\r
+       CPPUNIT_TEST(VarBufferImplTest3);\r
+       CPPUNIT_TEST(VarBufferImplTest4);\r
+       CPPUNIT_TEST(VarBufferImplTest5);\r
+       CPPUNIT_TEST_SUITE_END();\r
+\r
+public:\r
+       VarBufferTest() {}\r
+       ~VarBufferTest() {}\r
+\r
+       virtual void setUp() {}\r
+       virtual void tearDown() {}\r
+\r
+       void VarBufferImplTest1();\r
+       void VarBufferImplTest2();\r
+       void VarBufferImplTest3();\r
+       void VarBufferImplTest4();\r
+       void VarBufferImplTest5();\r
+};\r
+\r
+CPPUNIT_TEST_SUITE_REGISTRATION(VarBufferTest);\r
+\r
+void VarBufferTest::VarBufferImplTest1()\r
+{\r
+       VarBufferImpl vb;\r
+       DWORD nc;\r
+\r
+       CPPUNIT_ASSERT(vb.Init(10, 10));\r
+       CPPUNIT_ASSERT(LocalSize(vb.pBuf) == 10);\r
+\r
+       // initial data. not extended\r
+       char buf[20];\r
+       strcpy(buf, "0123456789abcdef");\r
+       CPPUNIT_ASSERT(vb.Add((LPBYTE)buf, 5, NULL));\r
+       CPPUNIT_ASSERT(LocalSize(vb.pBuf) == 10);\r
+       CPPUNIT_ASSERT(vb.nCurrentUse == 5);\r
+       CPPUNIT_ASSERT(strncmp((const char*)vb.GetBuffer(), "01234", 5) == 0);\r
+\r
+       // append data\r
+       CPPUNIT_ASSERT(vb.Add((LPBYTE)(buf + 5), 4, &nc));\r
+       CPPUNIT_ASSERT(LocalSize(vb.pBuf) == 10);\r
+       CPPUNIT_ASSERT(vb.nCurrentUse == 9);\r
+       CPPUNIT_ASSERT(strncmp((const char*)vb.GetBuffer(), "012345678", 9) == 0);\r
+       CPPUNIT_ASSERT(nc == 5);\r
+\r
+       // append data exntend memory\r
+       CPPUNIT_ASSERT(vb.Add((LPBYTE)(buf + 9), 1, &nc));\r
+       CPPUNIT_ASSERT(LocalSize(vb.pBuf) == 20);\r
+       CPPUNIT_ASSERT(vb.nCurrentUse == 10);\r
+       CPPUNIT_ASSERT(strncmp((const char*)vb.GetBuffer(), "0123456789", 10) == 0);\r
+       CPPUNIT_ASSERT(nc == 9);\r
+\r
+}\r
+\r
+void VarBufferTest::VarBufferImplTest2()\r
+{\r
+       VarBufferImpl vb;\r
+\r
+       CPPUNIT_ASSERT(vb.Init(5, 5));\r
+       CPPUNIT_ASSERT(LocalSize(vb.pBuf) == 5);\r
+\r
+       // extend multi blocks\r
+       char buf[30];\r
+       CPPUNIT_ASSERT(vb.Add((LPBYTE)buf, 19, NULL));\r
+       CPPUNIT_ASSERT(LocalSize(vb.pBuf) == 20);\r
+       CPPUNIT_ASSERT(vb.nCurrentUse = 19);\r
+}\r
+\r
+void VarBufferTest::VarBufferImplTest3()\r
+{\r
+       ////////\r
+       // clear test\r
+\r
+       char buf[30];\r
+\r
+       VarBufferImpl vb1;\r
+       CPPUNIT_ASSERT(vb1.Init(5, 5));\r
+       CPPUNIT_ASSERT(LocalSize(vb1.pBuf) == 5);\r
+\r
+       CPPUNIT_ASSERT(vb1.Add((LPBYTE)buf, 20, NULL));\r
+       CPPUNIT_ASSERT(LocalSize(vb1.pBuf) == 25);\r
+       CPPUNIT_ASSERT(vb1.nCurrentUse = 20);\r
+\r
+       // clear but keep buffer\r
+       CPPUNIT_ASSERT(vb1.Clear(FALSE));\r
+       CPPUNIT_ASSERT(vb1.nCurrentUse == 0);\r
+       CPPUNIT_ASSERT(LocalSize(vb1.pBuf) == 25);\r
+\r
+       // clear and realloc buffer\r
+       CPPUNIT_ASSERT(vb1.Clear(TRUE));\r
+       CPPUNIT_ASSERT(vb1.nCurrentUse == 0);\r
+       CPPUNIT_ASSERT(LocalSize(vb1.pBuf) == 5);\r
+\r
+}\r
+\r
+void VarBufferTest::VarBufferImplTest4()\r
+{\r
+       // extend test\r
+       const char *pSample = "0123456789abcdef";\r
+\r
+       VarBufferImpl vb;\r
+       CPPUNIT_ASSERT(vb.Init(10, 5));\r
+       CPPUNIT_ASSERT(LocalSize(vb.pBuf) == 10);\r
+       CPPUNIT_ASSERT(vb.Add((LPBYTE)pSample, 5, NULL));\r
+\r
+       CPPUNIT_ASSERT(vb.Extend(0, 2));\r
+       CPPUNIT_ASSERT(strncmp((const char*)vb.GetBuffer() + 2, "012345678", 5) == 0);\r
+\r
+       CPPUNIT_ASSERT(vb.Extend(7, 2));\r
+       CPPUNIT_ASSERT(vb.nCurrentUse == 9);\r
+\r
+       CPPUNIT_ASSERT(vb.Extend(4, 2));\r
+       CPPUNIT_ASSERT(vb.nCurrentUse == 11);\r
+       CPPUNIT_ASSERT(strncmp((const char*)vb.GetBuffer() + 2, "012", 3) == 0);\r
+       CPPUNIT_ASSERT(strncmp((const char*)vb.GetBuffer() + 7, "345", 2) == 0);\r
+}\r
+\r
+void VarBufferTest::VarBufferImplTest5()\r
+{\r
+       // shorten test\r
+       const char *pSample = "0123456789abcdef";\r
+       VarBufferImpl vb;\r
+\r
+       CPPUNIT_ASSERT(vb.Init(10, 5));\r
+       CPPUNIT_ASSERT(LocalSize(vb.pBuf) == 10);\r
+       CPPUNIT_ASSERT(vb.Add((LPBYTE)pSample, 9, NULL));\r
+       CPPUNIT_ASSERT(strncmp((const char*)vb.GetBuffer(), pSample, 9) == 0);\r
+\r
+       CPPUNIT_ASSERT(vb.Shorten(0, 2));\r
+       CPPUNIT_ASSERT(vb.nCurrentUse == 7);\r
+       CPPUNIT_ASSERT(strncmp((const char*)vb.GetBuffer(), pSample + 2, 7) == 0);\r
+\r
+       CPPUNIT_ASSERT(vb.Shorten(5, 2));\r
+       CPPUNIT_ASSERT(vb.nCurrentUse == 5);\r
+       CPPUNIT_ASSERT(strncmp((const char*)vb.GetBuffer(), pSample + 2, 5) == 0);\r
+\r
+}
\ No newline at end of file
diff --git a/CppUnitTestApp/test/XXXTest.cpp b/CppUnitTestApp/test/XXXTest.cpp
new file mode 100644 (file)
index 0000000..8d9f57c
--- /dev/null
@@ -0,0 +1,27 @@
+#include <cppunit/extensions/HelperMacros.h>\r
+#include <cppunit/TestAssert.h>\r
+\r
+#define TEST_CLASS_NAME XXXTest\r
+\r
+class TEST_CLASS_NAME : public CppUnit::TestFixture {\r
+       CPPUNIT_TEST_SUITE(TEST_CLASS_NAME);\r
+       CPPUNIT_TEST(dummyTest);\r
+       CPPUNIT_TEST_SUITE_END();\r
+\r
+public:\r
+       TEST_CLASS_NAME() {}\r
+       ~TEST_CLASS_NAME() {}\r
+\r
+       virtual void setUp() {}\r
+       virtual void tearDown() {}\r
+\r
+       void dummyTest();\r
+};\r
+\r
+CPPUNIT_TEST_SUITE_REGISTRATION(TEST_CLASS_NAME);\r
+\r
+////////////////////////////////////////////////\r
+\r
+void TEST_CLASS_NAME::dummyTest() {\r
+       CPPUNIT_ASSERT(1);\r
+}\r
diff --git a/CppUnitTestApp/test/YAEditDocTest.cpp b/CppUnitTestApp/test/YAEditDocTest.cpp
new file mode 100644 (file)
index 0000000..98aa4ae
--- /dev/null
@@ -0,0 +1,365 @@
+#include <windows.h>\r
+#include <tchar.h>\r
+\r
+#include <cppunit/extensions/HelperMacros.h>\r
+#include <cppunit/TestAssert.h>\r
+\r
+#include "VarBuffer.h"\r
+#include "Region.h"\r
+#include "YAEditDoc.h"\r
+#include "PhysicalLineManager.h"\r
+#include "MemManager.h"\r
+\r
+#define TEST_CLASS_NAME YAEditDocTest\r
+\r
+\r
+class TEST_CLASS_NAME : public CppUnit::TestFixture {\r
+       CPPUNIT_TEST_SUITE(TEST_CLASS_NAME);\r
+       CPPUNIT_TEST(LoadTest1);\r
+       CPPUNIT_TEST(LoadTest2);\r
+       CPPUNIT_TEST(LoadTest3);\r
+       CPPUNIT_TEST(LoadTest4);\r
+       CPPUNIT_TEST(LoadTest5);\r
+       CPPUNIT_TEST(LoadTest6);\r
+       CPPUNIT_TEST(LoadTest7);\r
+       CPPUNIT_TEST(LoadTest8);\r
+\r
+       CPPUNIT_TEST(ConvertBytesToCoordinateTest1);\r
+       CPPUNIT_TEST(ConvertBytesToCoordinateTest2);\r
+\r
+       CPPUNIT_TEST(UndoTest1);\r
+       CPPUNIT_TEST(UndoTest2);\r
+       CPPUNIT_TEST(UndoTest3);\r
+\r
+       CPPUNIT_TEST_SUITE_END();\r
+\r
+public:\r
+       TEST_CLASS_NAME() {}\r
+       ~TEST_CLASS_NAME() {}\r
+\r
+       virtual void setUp() {}\r
+       virtual void tearDown() {}\r
+\r
+       void LoadTest1();\r
+       void LoadTest2();\r
+       void LoadTest3();\r
+       void LoadTest4();\r
+       void LoadTest5();\r
+       void LoadTest6();\r
+       void LoadTest7();\r
+       void LoadTest8();\r
+\r
+       void ConvertBytesToCoordinateTest1();\r
+       void ConvertBytesToCoordinateTest2();\r
+\r
+       void UndoTest1();\r
+       void UndoTest2();\r
+       void UndoTest3();\r
+};\r
+\r
+CPPUNIT_TEST_SUITE_REGISTRATION(TEST_CLASS_NAME);\r
+\r
+////////////////////////////////////////////////\r
+\r
+// empty string\r
+void TEST_CLASS_NAME::LoadTest1() {\r
+       YAEditDoc *pDoc = new YAEditDoc();\r
+       BOOL bResult = pDoc->Init(TEXT(""), NULL, NULL);\r
+       CPPUNIT_ASSERT(bResult);\r
+       PhysicalLineManager *pLM = pDoc->GetPhMgr();\r
+\r
+       CPPUNIT_ASSERT(pLM->MaxLine() == 1);\r
+       LineInfo *pLi = pLM->GetLineInfo(0);\r
+\r
+       CPPUNIT_ASSERT(pLi->pLine->nUsed == 0);\r
+}\r
+\r
+// 1 line string without CRLF\r
+void TEST_CLASS_NAME::LoadTest2() {\r
+       YAEditDoc *pDoc = new YAEditDoc();\r
+       BOOL bResult = pDoc->Init(TEXT("Hello world"), NULL, NULL);\r
+       CPPUNIT_ASSERT(bResult);\r
+       PhysicalLineManager *pLM = pDoc->GetPhMgr();\r
+\r
+       CPPUNIT_ASSERT(pLM->MaxLine() == 1);\r
+       LineInfo *pLi = pLM->GetLineInfo(0);\r
+\r
+       CPPUNIT_ASSERT(pLi->pLine->nUsed == 11);\r
+}\r
+\r
+// 2 line string\r
+void TEST_CLASS_NAME::LoadTest3() {\r
+       YAEditDoc *pDoc = new YAEditDoc();\r
+       BOOL bResult = pDoc->Init(TEXT("Hellow\r\nworld"), NULL, NULL);\r
+       CPPUNIT_ASSERT(bResult);\r
+       PhysicalLineManager *pLM = pDoc->GetPhMgr();\r
+\r
+       CPPUNIT_ASSERT(pLM->MaxLine() == 2);\r
+       LineInfo *pLi0 = pLM->GetLineInfo(0);\r
+       CPPUNIT_ASSERT(pLi0->pLine->nUsed == 6);\r
+\r
+       LPCTSTR p0 = pLM->GetLine(0);\r
+       CPPUNIT_ASSERT(_tcsncmp(p0, TEXT("Hellow"), 6) == 0);\r
+\r
+       LineInfo *pLi1 = pLM->GetLineInfo(1);\r
+       CPPUNIT_ASSERT(pLi1->pLine->nUsed == 5);\r
+       LPCTSTR p1 = pLM->GetLine(1);\r
+       CPPUNIT_ASSERT(_tcsncmp(p1, TEXT("world"), 5) == 0);    \r
+}\r
+\r
+// 2 line string end with CRLF\r
+void TEST_CLASS_NAME::LoadTest4() {\r
+       YAEditDoc *pDoc = new YAEditDoc();\r
+       BOOL bResult = pDoc->Init(TEXT("Hello\r\n"), NULL, NULL);\r
+       CPPUNIT_ASSERT(bResult);\r
+       PhysicalLineManager *pLM = pDoc->GetPhMgr();\r
+\r
+       CPPUNIT_ASSERT(pLM->MaxLine() == 2);\r
+\r
+       LineInfo *pLi0 = pLM->GetLineInfo(0);\r
+       CPPUNIT_ASSERT(pLi0->pLine->nUsed == 5);\r
+\r
+       LPCTSTR p0 = pLM->GetLine(0);\r
+       CPPUNIT_ASSERT(_tcsncmp(p0, TEXT("Hello"), 5) == 0);\r
+\r
+       LineInfo *pLi1 = pLM->GetLineInfo(1);\r
+       CPPUNIT_ASSERT(pLi1->pLine->nUsed == 0);\r
+}\r
+\r
+// 2 line string start with CRLF\r
+void TEST_CLASS_NAME::LoadTest5() {\r
+       YAEditDoc *pDoc = new YAEditDoc();\r
+       BOOL bResult = pDoc->Init(TEXT("\r\nHello"), NULL, NULL);\r
+\r
+       CPPUNIT_ASSERT(bResult);\r
+       PhysicalLineManager *pLM = pDoc->GetPhMgr();\r
+\r
+       CPPUNIT_ASSERT(pLM->MaxLine() == 2);\r
+\r
+       LineInfo *pLi0 = pLM->GetLineInfo(0);\r
+       CPPUNIT_ASSERT(pLi0->pLine->nUsed == 0);\r
+\r
+       LineInfo *pLi1 = pLM->GetLineInfo(1);\r
+       CPPUNIT_ASSERT(pLi1->pLine->nUsed == 5);\r
+\r
+       LPCTSTR p1 = pLM->GetLine(1);\r
+       CPPUNIT_ASSERT(_tcsncmp(p1, TEXT("Hello"), 5) == 0);\r
+\r
+}\r
+\r
+// CRLF\r
+// CRLF\r
+// CRLF\r
+// EOF\r
+void TEST_CLASS_NAME::LoadTest6() {\r
+       YAEditDoc *pDoc = new YAEditDoc();\r
+       BOOL bResult = pDoc->Init(TEXT("\r\n\r\n\r\n"), NULL, NULL);\r
+\r
+       CPPUNIT_ASSERT(bResult);\r
+       PhysicalLineManager *pLM = pDoc->GetPhMgr();\r
+\r
+       CPPUNIT_ASSERT(pLM->MaxLine() == 4);\r
+\r
+       LineInfo *pLi0 = pLM->GetLineInfo(0);\r
+       CPPUNIT_ASSERT(pLi0->pLine->nUsed == 0);\r
+\r
+       LineInfo *pLi1 = pLM->GetLineInfo(1);\r
+       CPPUNIT_ASSERT(pLi1->pLine->nUsed == 0);\r
+\r
+       LineInfo *pLi2 = pLM->GetLineInfo(2);\r
+       CPPUNIT_ASSERT(pLi2->pLine->nUsed == 0);\r
+\r
+       LineInfo *pLi3 = pLM->GetLineInfo(3);\r
+       CPPUNIT_ASSERT(pLi3->pLine->nUsed == 0);\r
+\r
+}\r
+\r
+// CRLF\r
+// CRLF\r
+// abcCRLF\r
+// CRLF\r
+// CRLF\r
+// EOF\r
+void TEST_CLASS_NAME::LoadTest7() {\r
+       YAEditDoc *pDoc = new YAEditDoc();\r
+       BOOL bResult = pDoc->Init(TEXT("\r\n\r\nabc\r\n\r\n\r\n"), NULL, NULL);\r
+\r
+       CPPUNIT_ASSERT(bResult);\r
+       PhysicalLineManager *pLM = pDoc->GetPhMgr();\r
+\r
+       CPPUNIT_ASSERT(pLM->MaxLine() == 6);\r
+\r
+       LineInfo *pLi0 = pLM->GetLineInfo(0);\r
+       CPPUNIT_ASSERT(pLi0->pLine->nUsed == 0);\r
+\r
+       LineInfo *pLi1 = pLM->GetLineInfo(1);\r
+       CPPUNIT_ASSERT(pLi1->pLine->nUsed == 0);\r
+\r
+       LineInfo *pLi2 = pLM->GetLineInfo(2);\r
+       CPPUNIT_ASSERT(pLi2->pLine->nUsed == 3);\r
+       LPCTSTR p2 = pLM->GetLine(2);\r
+       CPPUNIT_ASSERT(_tcsncmp(p2, TEXT("abc"), 3) == 0);\r
+\r
+\r
+       LineInfo *pLi3 = pLM->GetLineInfo(3);\r
+       CPPUNIT_ASSERT(pLi3->pLine->nUsed == 0);\r
+\r
+       LineInfo *pLi4 = pLM->GetLineInfo(4);\r
+       CPPUNIT_ASSERT(pLi4->pLine->nUsed == 0);\r
+\r
+       LineInfo *pLi5 = pLM->GetLineInfo(5);\r
+       CPPUNIT_ASSERT(pLi5->pLine->nUsed == 0);\r
+\r
+}\r
+\r
+// abcCRLF\r
+// defCRLF\r
+// ghi[EOF]\r
+void TEST_CLASS_NAME::LoadTest8() {\r
+       YAEditDoc *pDoc = new YAEditDoc();\r
+       BOOL bResult = pDoc->Init(TEXT("abc\r\ndef\r\nghi"), NULL, NULL);\r
+\r
+       CPPUNIT_ASSERT(bResult);\r
+       PhysicalLineManager *pLM = pDoc->GetPhMgr();\r
+\r
+       CPPUNIT_ASSERT(pLM->MaxLine() == 3);\r
+\r
+       LineInfo *pLi0 = pLM->GetLineInfo(0);\r
+       CPPUNIT_ASSERT(pLi0->pLine->nUsed == 3);\r
+       LPCTSTR p0 = pLM->GetLine(0);\r
+       CPPUNIT_ASSERT(_tcsncmp(p0, TEXT("abc"), 3) == 0);\r
+\r
+       LineInfo *pLi1 = pLM->GetLineInfo(1);\r
+       CPPUNIT_ASSERT(pLi1->pLine->nUsed == 3);\r
+       LPCTSTR p1 = pLM->GetLine(1);\r
+       CPPUNIT_ASSERT(_tcsncmp(p1, TEXT("def"), 3) == 0);\r
+\r
+       LineInfo *pLi2 = pLM->GetLineInfo(2);\r
+       CPPUNIT_ASSERT(pLi2->pLine->nUsed == 3);\r
+       LPCTSTR p2 = pLM->GetLine(2);\r
+       CPPUNIT_ASSERT(_tcsncmp(p2, TEXT("ghi"), 3) == 0);\r
+}\r
+\r
+// abcCRLF\r
+// defgCRLF\r
+// hijklEOF\r
+void TEST_CLASS_NAME::ConvertBytesToCoordinateTest1()\r
+{\r
+       YAEditDoc *pDoc = new YAEditDoc();\r
+       BOOL bResult = pDoc->Init(TEXT("abc\r\ndefg\r\nhijkl"), NULL, NULL);\r
+\r
+       Coordinate pos;\r
+       pDoc->ConvertBytesToCoordinate(0, &pos);\r
+       CPPUNIT_ASSERT(pos.row == 0 && pos.col == 0);\r
+\r
+       pDoc->ConvertBytesToCoordinate(2, &pos);\r
+       CPPUNIT_ASSERT(pos.row == 0 && pos.col == 2);\r
+\r
+       pDoc->ConvertBytesToCoordinate(5, &pos);\r
+       CPPUNIT_ASSERT(pos.row == 1 && pos.col == 0);\r
+\r
+       pDoc->ConvertBytesToCoordinate(6, &pos);\r
+       CPPUNIT_ASSERT(pos.row == 1 && pos.col == 1);\r
+\r
+       pDoc->ConvertBytesToCoordinate(9, &pos);\r
+       CPPUNIT_ASSERT(pos.row == 1 && pos.col == 4);\r
+\r
+       pDoc->ConvertBytesToCoordinate(11, &pos);\r
+       CPPUNIT_ASSERT(pos.row == 2 && pos.col == 0);\r
+\r
+       pDoc->ConvertBytesToCoordinate(16, &pos);\r
+       CPPUNIT_ASSERT(pos.row == 2 && pos.col == 5);\r
+\r
+       pDoc->ConvertBytesToCoordinate(100, &pos);\r
+       CPPUNIT_ASSERT(pos.row == 2 && pos.col == 5);\r
+}\r
+\r
+void TEST_CLASS_NAME::ConvertBytesToCoordinateTest2()\r
+{\r
+       YAEditDoc *pDoc = new YAEditDoc();\r
+\r
+       Coordinate pos;\r
+\r
+       BOOL bResult = pDoc->Init(TEXT("TOMBO 1.16\r\n"), NULL, NULL);\r
+       pDoc->ConvertBytesToCoordinate(11, &pos);\r
+\r
+       CPPUNIT_ASSERT(pos.row == 1 && pos.col == 0);\r
+}\r
+\r
+// initial state\r
+void TEST_CLASS_NAME::UndoTest1()\r
+{\r
+       YAEditDoc *pDoc = new YAEditDoc();\r
+\r
+       BOOL bResult = pDoc->Init(TEXT("a"), NULL, NULL);\r
+       CPPUNIT_ASSERT(bResult);\r
+\r
+       Region r0(0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF);\r
+\r
+       Region r = pDoc->GetUndoRegion();\r
+       LPCTSTR p = pDoc->GetUndoStr();\r
+\r
+       CPPUNIT_ASSERT(r0 == r && p == NULL);\r
+}\r
+\r
+void TEST_CLASS_NAME::UndoTest2()\r
+{\r
+       YAEditDoc *pDoc = new YAEditDoc();\r
+\r
+       BOOL bResult = pDoc->Init(TEXT("a"), NULL, NULL);\r
+       CPPUNIT_ASSERT(bResult);\r
+\r
+       Region rReplace(1, 0, 1, 0);\r
+       bResult = pDoc->ReplaceString(&rReplace, TEXT("bcd"));\r
+       CPPUNIT_ASSERT(bResult);\r
+       // abcd I\r
+\r
+       Region r = pDoc->GetUndoRegion();\r
+       LPCTSTR p = pDoc->GetUndoStr();\r
+\r
+       Region rExpected(1, 0, 4, 0);\r
+       LPCTSTR pExpected = TEXT("");\r
+       CPPUNIT_ASSERT(r == rExpected);\r
+       CPPUNIT_ASSERT(_tcscmp(p, pExpected) == 0);\r
+\r
+       // Undo\r
+       bResult = pDoc->Undo();\r
+       CPPUNIT_ASSERT(bResult);\r
+\r
+       DWORD nLen;\r
+       LPTSTR pUndo1 = pDoc->GetDocumentData(&nLen);\r
+       CPPUNIT_ASSERT(_tcsncmp(pUndo1, TEXT("a"), nLen) == 0);\r
+\r
+}\r
+\r
+void TEST_CLASS_NAME::UndoTest3()\r
+{\r
+       YAEditDoc *pDoc = new YAEditDoc();\r
+\r
+       BOOL bResult = pDoc->Init(TEXT("abcde"), NULL, NULL);\r
+       CPPUNIT_ASSERT(bResult);\r
+\r
+       Region rReplace(2, 0, 4, 0);\r
+       bResult = pDoc->ReplaceString(&rReplace, TEXT("fgh"));\r
+       CPPUNIT_ASSERT(bResult);\r
+       // abcd I\r
+\r
+       Region r = pDoc->GetUndoRegion();\r
+       LPCTSTR p = pDoc->GetUndoStr();\r
+\r
+       Region rExpected(2, 0, 5, 0);\r
+       LPCTSTR pExpected = TEXT("cd");\r
+       CPPUNIT_ASSERT(r == rExpected);\r
+       CPPUNIT_ASSERT(_tcscmp(p, pExpected) == 0);\r
+\r
+\r
+       // Undo\r
+       bResult = pDoc->Undo();\r
+       CPPUNIT_ASSERT(bResult);\r
+\r
+       DWORD nLen;\r
+       LPTSTR pUndo1 = pDoc->GetDocumentData(&nLen);\r
+       CPPUNIT_ASSERT(_tcsncmp(pUndo1, TEXT("abcde"), nLen) == 0);\r
+\r
+}\r
+\r
diff --git a/HpcPro/RegErase/RegErase.vcp b/HpcPro/RegErase/RegErase.vcp
new file mode 100644 (file)
index 0000000..274b2fd
--- /dev/null
@@ -0,0 +1,664 @@
+# Microsoft eMbedded Visual Tools Project File - Name="RegErase" - Package Owner=<4>\r
+# Microsoft eMbedded Visual Tools Generated Build File, Format Version 6.02\r
+# ** DO NOT EDIT **\r
+\r
+# TARGTYPE "Win32 (WCE ARM) Application" 0x8501\r
+# TARGTYPE "Win32 (WCE SH3) Application" 0x8101\r
+# TARGTYPE "Win32 (WCE SH4) Application" 0x8601\r
+# TARGTYPE "Win32 (WCE MIPS) Application" 0x8201\r
+\r
+CFG=RegErase - Win32 (WCE MIPS) Debug\r
+!MESSAGE This is not a valid makefile. To build this project using NMAKE,\r
+!MESSAGE use the Export Makefile command and run\r
+!MESSAGE \r
+!MESSAGE NMAKE /f "RegErase.vcn".\r
+!MESSAGE \r
+!MESSAGE You can specify a configuration when running NMAKE\r
+!MESSAGE by defining the macro CFG on the command line. For example:\r
+!MESSAGE \r
+!MESSAGE NMAKE /f "RegErase.vcn" CFG="RegErase - Win32 (WCE MIPS) Debug"\r
+!MESSAGE \r
+!MESSAGE Possible choices for configuration are:\r
+!MESSAGE \r
+!MESSAGE "RegErase - Win32 (WCE MIPS) Release" (based on "Win32 (WCE MIPS) Application")\r
+!MESSAGE "RegErase - Win32 (WCE MIPS) Debug" (based on "Win32 (WCE MIPS) Application")\r
+!MESSAGE "RegErase - Win32 (WCE SH4) Release" (based on "Win32 (WCE SH4) Application")\r
+!MESSAGE "RegErase - Win32 (WCE SH4) Debug" (based on "Win32 (WCE SH4) Application")\r
+!MESSAGE "RegErase - Win32 (WCE SH3) Release" (based on "Win32 (WCE SH3) Application")\r
+!MESSAGE "RegErase - Win32 (WCE SH3) Debug" (based on "Win32 (WCE SH3) Application")\r
+!MESSAGE "RegErase - Win32 (WCE ARM) Release" (based on "Win32 (WCE ARM) Application")\r
+!MESSAGE "RegErase - Win32 (WCE ARM) Debug" (based on "Win32 (WCE ARM) Application")\r
+!MESSAGE \r
+\r
+# Begin Project\r
+# PROP AllowPerConfigDependencies 0\r
+# PROP Scc_ProjName ""\r
+# PROP Scc_LocalPath ""\r
+# PROP ATL_Project 2\r
+\r
+!IF  "$(CFG)" == "RegErase - Win32 (WCE MIPS) Release"\r
+\r
+# PROP BASE Use_MFC 0\r
+# PROP BASE Use_Debug_Libraries 0\r
+# PROP BASE Output_Dir "MIPSRel"\r
+# PROP BASE Intermediate_Dir "MIPSRel"\r
+# PROP BASE CPU_ID "{D6519010-710F-11D3-99F2-00105A0DF099}"\r
+# PROP BASE Platform_ID "{8A9A2F80-6887-11D3-842E-005004848CBA}"\r
+# PROP BASE Target_Dir ""\r
+# PROP Use_MFC 0\r
+# PROP Use_Debug_Libraries 0\r
+# PROP Output_Dir "MIPSRel"\r
+# PROP Intermediate_Dir "MIPSRel"\r
+# PROP CPU_ID "{D6519010-710F-11D3-99F2-00105A0DF099}"\r
+# PROP Platform_ID "{8A9A2F80-6887-11D3-842E-005004848CBA}"\r
+# PROP Target_Dir ""\r
+RSC=rc.exe\r
+# ADD BASE RSC /l 0x409 /d UNDER_CE=$(CEVersion) /d _WIN32_WCE=$(CEVersion) /d "UNICODE" /d "_UNICODE" /d "NDEBUG" /d "$(CePlatform)" /d "MIPS" /d "_MIPS_" /r\r
+# ADD RSC /l 0x409 /d UNDER_CE=$(CEVersion) /d _WIN32_WCE=$(CEVersion) /d "UNICODE" /d "_UNICODE" /d "NDEBUG" /d "$(CePlatform)" /d "MIPS" /d "_MIPS_" /r\r
+CPP=clmips.exe\r
+# ADD BASE CPP /nologo /W3 /D _WIN32_WCE=$(CEVersion) /D "$(CePlatform)" /D "MIPS" /D "_MIPS_" /D UNDER_CE=$(CEVersion) /D "UNICODE" /D "_UNICODE" /D "NDEBUG" /YX /Oxs /M$(CECrtMT) /c\r
+# ADD CPP /nologo /W3 /I "../../Src/TomboLib" /I "../../Src/" /D _WIN32_WCE=$(CEVersion) /D "$(CePlatform)" /D "MIPS" /D "_MIPS_" /D UNDER_CE=$(CEVersion) /D "UNICODE" /D "_UNICODE" /D "NDEBUG" /YX /Oxs /M$(CECrtMT) /c\r
+MTL=midl.exe\r
+# ADD BASE MTL /nologo /D "NDEBUG" /mktyplib203 /o "NUL" /win32\r
+# ADD MTL /nologo /D "NDEBUG" /mktyplib203 /o "NUL" /win32\r
+BSC32=bscmake.exe\r
+# ADD BASE BSC32 /nologo\r
+# ADD BSC32 /nologo\r
+LINK32=link.exe\r
+# ADD BASE LINK32 commctrl.lib coredll.lib /nologo /base:"0x00010000" /stack:0x10000,0x1000 /entry:"WinMainCRTStartup" /nodefaultlib:"$(CENoDefaultLib)" /subsystem:$(CESubsystem) /MACHINE:MIPS\r
+# ADD LINK32 commctrl.lib coredll.lib /nologo /base:"0x00010000" /stack:0x10000,0x1000 /entry:"WinMainCRTStartup" /nodefaultlib:"$(CENoDefaultLib)" /subsystem:$(CESubsystem) /MACHINE:MIPS\r
+\r
+!ELSEIF  "$(CFG)" == "RegErase - Win32 (WCE MIPS) Debug"\r
+\r
+# PROP BASE Use_MFC 0\r
+# PROP BASE Use_Debug_Libraries 1\r
+# PROP BASE Output_Dir "MIPSDbg"\r
+# PROP BASE Intermediate_Dir "MIPSDbg"\r
+# PROP BASE CPU_ID "{D6519010-710F-11D3-99F2-00105A0DF099}"\r
+# PROP BASE Platform_ID "{8A9A2F80-6887-11D3-842E-005004848CBA}"\r
+# PROP BASE Target_Dir ""\r
+# PROP Use_MFC 0\r
+# PROP Use_Debug_Libraries 1\r
+# PROP Output_Dir "MIPSDbg"\r
+# PROP Intermediate_Dir "MIPSDbg"\r
+# PROP CPU_ID "{D6519010-710F-11D3-99F2-00105A0DF099}"\r
+# PROP Platform_ID "{8A9A2F80-6887-11D3-842E-005004848CBA}"\r
+# PROP Target_Dir ""\r
+RSC=rc.exe\r
+# ADD BASE RSC /l 0x409 /d UNDER_CE=$(CEVersion) /d _WIN32_WCE=$(CEVersion) /d "UNICODE" /d "_UNICODE" /d "DEBUG" /d "$(CePlatform)" /d "MIPS" /d "_MIPS_" /r\r
+# ADD RSC /l 0x409 /d UNDER_CE=$(CEVersion) /d _WIN32_WCE=$(CEVersion) /d "UNICODE" /d "_UNICODE" /d "DEBUG" /d "$(CePlatform)" /d "MIPS" /d "_MIPS_" /r\r
+CPP=clmips.exe\r
+# ADD BASE CPP /nologo /W3 /Zi /Od /D "DEBUG" /D "MIPS" /D "_MIPS_" /D UNDER_CE=$(CEVersion) /D _WIN32_WCE=$(CEVersion) /D "$(CePlatform)" /D "UNICODE" /D "_UNICODE" /YX /M$(CECrtMTDebug) /c\r
+# ADD CPP /nologo /W3 /Zi /Od /I "../../Src/TomboLib" /I "../../Src/" /D "DEBUG" /D "MIPS" /D "_MIPS_" /D UNDER_CE=$(CEVersion) /D _WIN32_WCE=$(CEVersion) /D "$(CePlatform)" /D "UNICODE" /D "_UNICODE" /YX /M$(CECrtMTDebug) /c\r
+MTL=midl.exe\r
+# ADD BASE MTL /nologo /D "_DEBUG" /mktyplib203 /o "NUL" /win32\r
+# ADD MTL /nologo /D "_DEBUG" /mktyplib203 /o "NUL" /win32\r
+BSC32=bscmake.exe\r
+# ADD BASE BSC32 /nologo\r
+# ADD BSC32 /nologo\r
+LINK32=link.exe\r
+# ADD BASE LINK32 commctrl.lib coredll.lib /nologo /base:"0x00010000" /stack:0x10000,0x1000 /entry:"WinMainCRTStartup" /debug /nodefaultlib:"$(CENoDefaultLib)" /subsystem:$(CESubsystem) /MACHINE:MIPS\r
+# ADD LINK32 commctrl.lib coredll.lib /nologo /base:"0x00010000" /stack:0x10000,0x1000 /entry:"WinMainCRTStartup" /debug /nodefaultlib:"$(CENoDefaultLib)" /subsystem:$(CESubsystem) /MACHINE:MIPS\r
+\r
+!ELSEIF  "$(CFG)" == "RegErase - Win32 (WCE SH4) Release"\r
+\r
+# PROP BASE Use_MFC 0\r
+# PROP BASE Use_Debug_Libraries 0\r
+# PROP BASE Output_Dir "SH4Rel"\r
+# PROP BASE Intermediate_Dir "SH4Rel"\r
+# PROP BASE CPU_ID "{D6519021-710F-11D3-99F2-00105A0DF099}"\r
+# PROP BASE Platform_ID "{8A9A2F80-6887-11D3-842E-005004848CBA}"\r
+# PROP BASE Target_Dir ""\r
+# PROP Use_MFC 0\r
+# PROP Use_Debug_Libraries 0\r
+# PROP Output_Dir "SH4Rel"\r
+# PROP Intermediate_Dir "SH4Rel"\r
+# PROP CPU_ID "{D6519021-710F-11D3-99F2-00105A0DF099}"\r
+# PROP Platform_ID "{8A9A2F80-6887-11D3-842E-005004848CBA}"\r
+# PROP Target_Dir ""\r
+RSC=rc.exe\r
+# ADD BASE RSC /l 0x409 /d UNDER_CE=$(CEVersion) /d _WIN32_WCE=$(CEVersion) /d "NDEBUG" /d "UNICODE" /d "_UNICODE" /d "$(CePlatform)" /d "SHx" /d "SH4" /d "_SH4_" /r\r
+# ADD RSC /l 0x409 /d UNDER_CE=$(CEVersion) /d _WIN32_WCE=$(CEVersion) /d "NDEBUG" /d "UNICODE" /d "_UNICODE" /d "$(CePlatform)" /d "SHx" /d "SH4" /d "_SH4_" /r\r
+CPP=shcl.exe\r
+# ADD BASE CPP /nologo /W3 /D _WIN32_WCE=$(CEVersion) /D "$(CePlatform)" /D "SHx" /D "SH4" /D "_SH4_" /D UNDER_CE=$(CEVersion) /D "UNICODE" /D "_UNICODE" /D "NDEBUG" /YX /Qsh4 /Oxs /M$(CECrtMT) /c\r
+# ADD CPP /nologo /W3 /I "../../Src/TomboLib" /I "../../Src/" /D _WIN32_WCE=$(CEVersion) /D "$(CePlatform)" /D "SHx" /D "SH4" /D "_SH4_" /D UNDER_CE=$(CEVersion) /D "UNICODE" /D "_UNICODE" /D "NDEBUG" /YX /Qsh4 /Oxs /M$(CECrtMT) /c\r
+MTL=midl.exe\r
+# ADD BASE MTL /nologo /D "NDEBUG" /mktyplib203 /o "NUL" /win32\r
+# ADD MTL /nologo /D "NDEBUG" /mktyplib203 /o "NUL" /win32\r
+BSC32=bscmake.exe\r
+# ADD BASE BSC32 /nologo\r
+# ADD BSC32 /nologo\r
+LINK32=link.exe\r
+# ADD BASE LINK32 commctrl.lib coredll.lib /nologo /base:"0x00010000" /stack:0x10000,0x1000 /entry:"WinMainCRTStartup" /nodefaultlib:"$(CENoDefaultLib)" /subsystem:$(CESubsystem) /MACHINE:SH4\r
+# ADD LINK32 commctrl.lib coredll.lib /nologo /base:"0x00010000" /stack:0x10000,0x1000 /entry:"WinMainCRTStartup" /nodefaultlib:"$(CENoDefaultLib)" /subsystem:$(CESubsystem) /MACHINE:SH4\r
+\r
+!ELSEIF  "$(CFG)" == "RegErase - Win32 (WCE SH4) Debug"\r
+\r
+# PROP BASE Use_MFC 0\r
+# PROP BASE Use_Debug_Libraries 1\r
+# PROP BASE Output_Dir "SH4Dbg"\r
+# PROP BASE Intermediate_Dir "SH4Dbg"\r
+# PROP BASE CPU_ID "{D6519021-710F-11D3-99F2-00105A0DF099}"\r
+# PROP BASE Platform_ID "{8A9A2F80-6887-11D3-842E-005004848CBA}"\r
+# PROP BASE Target_Dir ""\r
+# PROP Use_MFC 0\r
+# PROP Use_Debug_Libraries 1\r
+# PROP Output_Dir "SH4Dbg"\r
+# PROP Intermediate_Dir "SH4Dbg"\r
+# PROP CPU_ID "{D6519021-710F-11D3-99F2-00105A0DF099}"\r
+# PROP Platform_ID "{8A9A2F80-6887-11D3-842E-005004848CBA}"\r
+# PROP Target_Dir ""\r
+RSC=rc.exe\r
+# ADD BASE RSC /l 0x409 /d UNDER_CE=$(CEVersion) /d _WIN32_WCE=$(CEVersion) /d "DEBUG" /d "UNICODE" /d "_UNICODE" /d "$(CePlatform)" /d "SHx" /d "SH4" /d "_SH4_" /r\r
+# ADD RSC /l 0x409 /d UNDER_CE=$(CEVersion) /d _WIN32_WCE=$(CEVersion) /d "DEBUG" /d "UNICODE" /d "_UNICODE" /d "$(CePlatform)" /d "SHx" /d "SH4" /d "_SH4_" /r\r
+CPP=shcl.exe\r
+# ADD BASE CPP /nologo /W3 /Zi /Od /D "DEBUG" /D "SHx" /D "SH4" /D "_SH4_" /D UNDER_CE=$(CEVersion) /D _WIN32_WCE=$(CEVersion) /D "$(CePlatform)" /D "UNICODE" /D "_UNICODE" /YX /Qsh4 /M$(CECrtMTDebug) /c\r
+# ADD CPP /nologo /W3 /Zi /Od /I "../../Src/TomboLib" /I "../../Src/" /D "DEBUG" /D "SHx" /D "SH4" /D "_SH4_" /D UNDER_CE=$(CEVersion) /D _WIN32_WCE=$(CEVersion) /D "$(CePlatform)" /D "UNICODE" /D "_UNICODE" /YX /Qsh4 /M$(CECrtMTDebug) /c\r
+MTL=midl.exe\r
+# ADD BASE MTL /nologo /D "_DEBUG" /mktyplib203 /o "NUL" /win32\r
+# ADD MTL /nologo /D "_DEBUG" /mktyplib203 /o "NUL" /win32\r
+BSC32=bscmake.exe\r
+# ADD BASE BSC32 /nologo\r
+# ADD BSC32 /nologo\r
+LINK32=link.exe\r
+# ADD BASE LINK32 commctrl.lib coredll.lib /nologo /base:"0x00010000" /stack:0x10000,0x1000 /entry:"WinMainCRTStartup" /debug /nodefaultlib:"$(CENoDefaultLib)" /subsystem:$(CESubsystem) /MACHINE:SH4\r
+# ADD LINK32 commctrl.lib coredll.lib /nologo /base:"0x00010000" /stack:0x10000,0x1000 /entry:"WinMainCRTStartup" /debug /nodefaultlib:"$(CENoDefaultLib)" /subsystem:$(CESubsystem) /MACHINE:SH4\r
+\r
+!ELSEIF  "$(CFG)" == "RegErase - Win32 (WCE SH3) Release"\r
+\r
+# PROP BASE Use_MFC 0\r
+# PROP BASE Use_Debug_Libraries 0\r
+# PROP BASE Output_Dir "SH3Rel"\r
+# PROP BASE Intermediate_Dir "SH3Rel"\r
+# PROP BASE CPU_ID "{D6519020-710F-11D3-99F2-00105A0DF099}"\r
+# PROP BASE Platform_ID "{8A9A2F80-6887-11D3-842E-005004848CBA}"\r
+# PROP BASE Target_Dir ""\r
+# PROP Use_MFC 0\r
+# PROP Use_Debug_Libraries 0\r
+# PROP Output_Dir "SH3Rel"\r
+# PROP Intermediate_Dir "SH3Rel"\r
+# PROP CPU_ID "{D6519020-710F-11D3-99F2-00105A0DF099}"\r
+# PROP Platform_ID "{8A9A2F80-6887-11D3-842E-005004848CBA}"\r
+# PROP Target_Dir ""\r
+RSC=rc.exe\r
+# ADD BASE RSC /l 0x409 /d UNDER_CE=$(CEVersion) /d _WIN32_WCE=$(CEVersion) /d "UNICODE" /d "_UNICODE" /d "NDEBUG" /d "$(CePlatform)" /d "SHx" /d "SH3" /d "_SH3_" /r\r
+# ADD RSC /l 0x409 /d UNDER_CE=$(CEVersion) /d _WIN32_WCE=$(CEVersion) /d "UNICODE" /d "_UNICODE" /d "NDEBUG" /d "$(CePlatform)" /d "SHx" /d "SH3" /d "_SH3_" /r\r
+CPP=shcl.exe\r
+# ADD BASE CPP /nologo /W3 /D _WIN32_WCE=$(CEVersion) /D "$(CePlatform)" /D "SHx" /D "SH3" /D "_SH3_" /D UNDER_CE=$(CEVersion) /D "UNICODE" /D "_UNICODE" /D "NDEBUG" /YX /Oxs /M$(CECrtMT) /c\r
+# ADD CPP /nologo /W3 /I "../../Src/TomboLib" /I "../../Src/" /D _WIN32_WCE=$(CEVersion) /D "$(CePlatform)" /D "SHx" /D "SH3" /D "_SH3_" /D UNDER_CE=$(CEVersion) /D "UNICODE" /D "_UNICODE" /D "NDEBUG" /YX /Oxs /M$(CECrtMT) /c\r
+MTL=midl.exe\r
+# ADD BASE MTL /nologo /D "NDEBUG" /mktyplib203 /o "NUL" /win32\r
+# ADD MTL /nologo /D "NDEBUG" /mktyplib203 /o "NUL" /win32\r
+BSC32=bscmake.exe\r
+# ADD BASE BSC32 /nologo\r
+# ADD BSC32 /nologo\r
+LINK32=link.exe\r
+# ADD BASE LINK32 commctrl.lib coredll.lib /nologo /base:"0x00010000" /stack:0x10000,0x1000 /entry:"WinMainCRTStartup" /nodefaultlib:"$(CENoDefaultLib)" /subsystem:$(CESubsystem) /MACHINE:SH3\r
+# ADD LINK32 commctrl.lib coredll.lib /nologo /base:"0x00010000" /stack:0x10000,0x1000 /entry:"WinMainCRTStartup" /nodefaultlib:"$(CENoDefaultLib)" /subsystem:$(CESubsystem) /MACHINE:SH3\r
+\r
+!ELSEIF  "$(CFG)" == "RegErase - Win32 (WCE SH3) Debug"\r
+\r
+# PROP BASE Use_MFC 0\r
+# PROP BASE Use_Debug_Libraries 1\r
+# PROP BASE Output_Dir "SH3Dbg"\r
+# PROP BASE Intermediate_Dir "SH3Dbg"\r
+# PROP BASE CPU_ID "{D6519020-710F-11D3-99F2-00105A0DF099}"\r
+# PROP BASE Platform_ID "{8A9A2F80-6887-11D3-842E-005004848CBA}"\r
+# PROP BASE Target_Dir ""\r
+# PROP Use_MFC 0\r
+# PROP Use_Debug_Libraries 1\r
+# PROP Output_Dir "SH3Dbg"\r
+# PROP Intermediate_Dir "SH3Dbg"\r
+# PROP CPU_ID "{D6519020-710F-11D3-99F2-00105A0DF099}"\r
+# PROP Platform_ID "{8A9A2F80-6887-11D3-842E-005004848CBA}"\r
+# PROP Target_Dir ""\r
+RSC=rc.exe\r
+# ADD BASE RSC /l 0x409 /d UNDER_CE=$(CEVersion) /d _WIN32_WCE=$(CEVersion) /d "UNICODE" /d "_UNICODE" /d "DEBUG" /d "$(CePlatform)" /d "SHx" /d "SH3" /d "_SH3_" /r\r
+# ADD RSC /l 0x409 /d UNDER_CE=$(CEVersion) /d _WIN32_WCE=$(CEVersion) /d "UNICODE" /d "_UNICODE" /d "DEBUG" /d "$(CePlatform)" /d "SHx" /d "SH3" /d "_SH3_" /r\r
+CPP=shcl.exe\r
+# ADD BASE CPP /nologo /W3 /Zi /Od /D "DEBUG" /D "SHx" /D "SH3" /D "_SH3_" /D UNDER_CE=$(CEVersion) /D _WIN32_WCE=$(CEVersion) /D "$(CePlatform)" /D "UNICODE" /D "_UNICODE" /YX /M$(CECrtMTDebug) /c\r
+# ADD CPP /nologo /W3 /Zi /Od /I "../../Src/TomboLib" /I "../../Src/" /D "DEBUG" /D "SHx" /D "SH3" /D "_SH3_" /D UNDER_CE=$(CEVersion) /D _WIN32_WCE=$(CEVersion) /D "$(CePlatform)" /D "UNICODE" /D "_UNICODE" /YX /M$(CECrtMTDebug) /c\r
+MTL=midl.exe\r
+# ADD BASE MTL /nologo /D "_DEBUG" /mktyplib203 /o "NUL" /win32\r
+# ADD MTL /nologo /D "_DEBUG" /mktyplib203 /o "NUL" /win32\r
+BSC32=bscmake.exe\r
+# ADD BASE BSC32 /nologo\r
+# ADD BSC32 /nologo\r
+LINK32=link.exe\r
+# ADD BASE LINK32 commctrl.lib coredll.lib /nologo /base:"0x00010000" /stack:0x10000,0x1000 /entry:"WinMainCRTStartup" /debug /nodefaultlib:"$(CENoDefaultLib)" /subsystem:$(CESubsystem) /MACHINE:SH3\r
+# ADD LINK32 commctrl.lib coredll.lib /nologo /base:"0x00010000" /stack:0x10000,0x1000 /entry:"WinMainCRTStartup" /debug /nodefaultlib:"$(CENoDefaultLib)" /subsystem:$(CESubsystem) /MACHINE:SH3\r
+\r
+!ELSEIF  "$(CFG)" == "RegErase - Win32 (WCE ARM) Release"\r
+\r
+# PROP BASE Use_MFC 0\r
+# PROP BASE Use_Debug_Libraries 0\r
+# PROP BASE Output_Dir "ARMRel"\r
+# PROP BASE Intermediate_Dir "ARMRel"\r
+# PROP BASE CPU_ID "{D6518FFC-710F-11D3-99F2-00105A0DF099}"\r
+# PROP BASE Platform_ID "{8A9A2F80-6887-11D3-842E-005004848CBA}"\r
+# PROP BASE Target_Dir ""\r
+# PROP Use_MFC 0\r
+# PROP Use_Debug_Libraries 0\r
+# PROP Output_Dir "ARMRel"\r
+# PROP Intermediate_Dir "ARMRel"\r
+# PROP CPU_ID "{D6518FFC-710F-11D3-99F2-00105A0DF099}"\r
+# PROP Platform_ID "{8A9A2F80-6887-11D3-842E-005004848CBA}"\r
+# PROP Target_Dir ""\r
+RSC=rc.exe\r
+# ADD BASE RSC /l 0x409 /d UNDER_CE=$(CEVersion) /d _WIN32_WCE=$(CEVersion) /d "UNICODE" /d "_UNICODE" /d "NDEBUG" /d "$(CePlatform)" /d "ARM" /d "_ARM_" /r\r
+# ADD RSC /l 0x409 /d UNDER_CE=$(CEVersion) /d _WIN32_WCE=$(CEVersion) /d "UNICODE" /d "_UNICODE" /d "NDEBUG" /d "$(CePlatform)" /d "ARM" /d "_ARM_" /r\r
+CPP=clarm.exe\r
+# ADD BASE CPP /nologo /W3 /D _WIN32_WCE=$(CEVersion) /D "$(CePlatform)" /D "ARM" /D "_ARM_" /D UNDER_CE=$(CEVersion) /D "UNICODE" /D "_UNICODE" /D "NDEBUG" /YX /Oxs /M$(CECrtMT) /c\r
+# ADD CPP /nologo /W3 /I "../../Src/TomboLib" /I "../../Src/" /D _WIN32_WCE=$(CEVersion) /D "$(CePlatform)" /D "ARM" /D "_ARM_" /D UNDER_CE=$(CEVersion) /D "UNICODE" /D "_UNICODE" /D "NDEBUG" /YX /Oxs /M$(CECrtMT) /c\r
+MTL=midl.exe\r
+# ADD BASE MTL /nologo /D "NDEBUG" /mktyplib203 /o "NUL" /win32\r
+# ADD MTL /nologo /D "NDEBUG" /mktyplib203 /o "NUL" /win32\r
+BSC32=bscmake.exe\r
+# ADD BASE BSC32 /nologo\r
+# ADD BSC32 /nologo\r
+LINK32=link.exe\r
+# ADD BASE LINK32 commctrl.lib coredll.lib /nologo /base:"0x00010000" /stack:0x10000,0x1000 /entry:"WinMainCRTStartup" /nodefaultlib:"$(CENoDefaultLib)" /subsystem:$(CESubsystem) /align:"4096" /MACHINE:ARM\r
+# ADD LINK32 commctrl.lib coredll.lib /nologo /base:"0x00010000" /stack:0x10000,0x1000 /entry:"WinMainCRTStartup" /nodefaultlib:"$(CENoDefaultLib)" /subsystem:$(CESubsystem) /align:"4096" /MACHINE:ARM\r
+\r
+!ELSEIF  "$(CFG)" == "RegErase - Win32 (WCE ARM) Debug"\r
+\r
+# PROP BASE Use_MFC 0\r
+# PROP BASE Use_Debug_Libraries 1\r
+# PROP BASE Output_Dir "ARMDbg"\r
+# PROP BASE Intermediate_Dir "ARMDbg"\r
+# PROP BASE CPU_ID "{D6518FFC-710F-11D3-99F2-00105A0DF099}"\r
+# PROP BASE Platform_ID "{8A9A2F80-6887-11D3-842E-005004848CBA}"\r
+# PROP BASE Target_Dir ""\r
+# PROP Use_MFC 0\r
+# PROP Use_Debug_Libraries 1\r
+# PROP Output_Dir "ARMDbg"\r
+# PROP Intermediate_Dir "ARMDbg"\r
+# PROP CPU_ID "{D6518FFC-710F-11D3-99F2-00105A0DF099}"\r
+# PROP Platform_ID "{8A9A2F80-6887-11D3-842E-005004848CBA}"\r
+# PROP Target_Dir ""\r
+RSC=rc.exe\r
+# ADD BASE RSC /l 0x409 /d UNDER_CE=$(CEVersion) /d _WIN32_WCE=$(CEVersion) /d "UNICODE" /d "_UNICODE" /d "DEBUG" /d "$(CePlatform)" /d "ARM" /d "_ARM_" /r\r
+# ADD RSC /l 0x409 /d UNDER_CE=$(CEVersion) /d _WIN32_WCE=$(CEVersion) /d "UNICODE" /d "_UNICODE" /d "DEBUG" /d "$(CePlatform)" /d "ARM" /d "_ARM_" /r\r
+CPP=clarm.exe\r
+# ADD BASE CPP /nologo /W3 /Zi /Od /D "DEBUG" /D "ARM" /D "_ARM_" /D UNDER_CE=$(CEVersion) /D _WIN32_WCE=$(CEVersion) /D "$(CePlatform)" /D "UNICODE" /D "_UNICODE" /YX /M$(CECrtMTDebug) /c\r
+# ADD CPP /nologo /W3 /Zi /Od /I "../../Src/TomboLib" /I "../../Src/" /D "DEBUG" /D "ARM" /D "_ARM_" /D UNDER_CE=$(CEVersion) /D _WIN32_WCE=$(CEVersion) /D "$(CePlatform)" /D "UNICODE" /D "_UNICODE" /YX /M$(CECrtMTDebug) /c\r
+MTL=midl.exe\r
+# ADD BASE MTL /nologo /D "_DEBUG" /mktyplib203 /o "NUL" /win32\r
+# ADD MTL /nologo /D "_DEBUG" /mktyplib203 /o "NUL" /win32\r
+BSC32=bscmake.exe\r
+# ADD BASE BSC32 /nologo\r
+# ADD BSC32 /nologo\r
+LINK32=link.exe\r
+# ADD BASE LINK32 commctrl.lib coredll.lib /nologo /base:"0x00010000" /stack:0x10000,0x1000 /entry:"WinMainCRTStartup" /debug /nodefaultlib:"$(CENoDefaultLib)" /subsystem:$(CESubsystem) /align:"4096" /MACHINE:ARM\r
+# ADD LINK32 commctrl.lib coredll.lib /nologo /base:"0x00010000" /stack:0x10000,0x1000 /entry:"WinMainCRTStartup" /debug /nodefaultlib:"$(CENoDefaultLib)" /subsystem:$(CESubsystem) /align:"4096" /MACHINE:ARM\r
+\r
+!ENDIF \r
+\r
+# Begin Target\r
+\r
+# Name "RegErase - Win32 (WCE MIPS) Release"\r
+# Name "RegErase - Win32 (WCE MIPS) Debug"\r
+# Name "RegErase - Win32 (WCE SH4) Release"\r
+# Name "RegErase - Win32 (WCE SH4) Debug"\r
+# Name "RegErase - Win32 (WCE SH3) Release"\r
+# Name "RegErase - Win32 (WCE SH3) Debug"\r
+# Name "RegErase - Win32 (WCE ARM) Release"\r
+# Name "RegErase - Win32 (WCE ARM) Debug"\r
+# Begin Group "Source Files"\r
+\r
+# PROP Default_Filter "cpp;c;cxx;rc;def;r;odl;idl;hpj;bat"\r
+# Begin Source File\r
+\r
+SOURCE=..\..\Src\TomboLib\File.cpp\r
+\r
+!IF  "$(CFG)" == "RegErase - Win32 (WCE MIPS) Release"\r
+\r
+DEP_CPP_FILE_=\\r
+       "..\..\Src\TomboLib\File.h"\\r
+       \r
+\r
+!ELSEIF  "$(CFG)" == "RegErase - Win32 (WCE MIPS) Debug"\r
+\r
+DEP_CPP_FILE_=\\r
+       "..\..\Src\TomboLib\File.h"\\r
+       \r
+\r
+!ELSEIF  "$(CFG)" == "RegErase - Win32 (WCE SH4) Release"\r
+\r
+DEP_CPP_FILE_=\\r
+       "..\..\Src\TomboLib\File.h"\\r
+       \r
+\r
+!ELSEIF  "$(CFG)" == "RegErase - Win32 (WCE SH4) Debug"\r
+\r
+DEP_CPP_FILE_=\\r
+       "..\..\Src\TomboLib\File.h"\\r
+       \r
+\r
+!ELSEIF  "$(CFG)" == "RegErase - Win32 (WCE SH3) Release"\r
+\r
+DEP_CPP_FILE_=\\r
+       "..\..\Src\TomboLib\File.h"\\r
+       \r
+\r
+!ELSEIF  "$(CFG)" == "RegErase - Win32 (WCE SH3) Debug"\r
+\r
+DEP_CPP_FILE_=\\r
+       "..\..\Src\TomboLib\File.h"\\r
+       \r
+\r
+!ELSEIF  "$(CFG)" == "RegErase - Win32 (WCE ARM) Release"\r
+\r
+DEP_CPP_FILE_=\\r
+       "..\..\Src\TomboLib\File.h"\\r
+       \r
+\r
+!ELSEIF  "$(CFG)" == "RegErase - Win32 (WCE ARM) Debug"\r
+\r
+DEP_CPP_FILE_=\\r
+       "..\..\Src\TomboLib\File.h"\\r
+       \r
+\r
+!ENDIF \r
+\r
+# End Source File\r
+# Begin Source File\r
+\r
+SOURCE=..\..\Src\Message.cpp\r
+\r
+!IF  "$(CFG)" == "RegErase - Win32 (WCE MIPS) Release"\r
+\r
+DEP_CPP_MESSA=\\r
+       "..\..\Src\Message.h"\\r
+       "..\..\Src\MsgRes\DefaultMsg.cpp"\\r
+       "..\..\Src\MsgRes\MsgDef.h"\\r
+       "..\..\Src\Tombo.h"\\r
+       "..\..\Src\TomboLib\File.h"\\r
+       "..\..\Src\TomboLib\Logger.h"\\r
+       "..\..\Src\TomboLib\TString.h"\\r
+       "..\..\Src\TomboLib\Uniconv.h"\\r
+       \r
+\r
+!ELSEIF  "$(CFG)" == "RegErase - Win32 (WCE MIPS) Debug"\r
+\r
+DEP_CPP_MESSA=\\r
+       "..\..\Src\Message.h"\\r
+       "..\..\Src\MsgRes\DefaultMsg.cpp"\\r
+       "..\..\Src\MsgRes\MsgDef.h"\\r
+       "..\..\Src\Tombo.h"\\r
+       "..\..\Src\TomboLib\File.h"\\r
+       "..\..\Src\TomboLib\Logger.h"\\r
+       "..\..\Src\TomboLib\TString.h"\\r
+       "..\..\Src\TomboLib\Uniconv.h"\\r
+       \r
+\r
+!ELSEIF  "$(CFG)" == "RegErase - Win32 (WCE SH4) Release"\r
+\r
+DEP_CPP_MESSA=\\r
+       "..\..\Src\Message.h"\\r
+       "..\..\Src\MsgRes\DefaultMsg.cpp"\\r
+       "..\..\Src\MsgRes\MsgDef.h"\\r
+       "..\..\Src\Tombo.h"\\r
+       "..\..\Src\TomboLib\File.h"\\r
+       "..\..\Src\TomboLib\Logger.h"\\r
+       "..\..\Src\TomboLib\TString.h"\\r
+       "..\..\Src\TomboLib\Uniconv.h"\\r
+       \r
+\r
+!ELSEIF  "$(CFG)" == "RegErase - Win32 (WCE SH4) Debug"\r
+\r
+DEP_CPP_MESSA=\\r
+       "..\..\Src\Message.h"\\r
+       "..\..\Src\MsgRes\DefaultMsg.cpp"\\r
+       "..\..\Src\MsgRes\MsgDef.h"\\r
+       "..\..\Src\Tombo.h"\\r
+       "..\..\Src\TomboLib\File.h"\\r
+       "..\..\Src\TomboLib\Logger.h"\\r
+       "..\..\Src\TomboLib\TString.h"\\r
+       "..\..\Src\TomboLib\Uniconv.h"\\r
+       \r
+\r
+!ELSEIF  "$(CFG)" == "RegErase - Win32 (WCE SH3) Release"\r
+\r
+DEP_CPP_MESSA=\\r
+       "..\..\Src\Message.h"\\r
+       "..\..\Src\MsgRes\DefaultMsg.cpp"\\r
+       "..\..\Src\MsgRes\MsgDef.h"\\r
+       "..\..\Src\Tombo.h"\\r
+       "..\..\Src\TomboLib\File.h"\\r
+       "..\..\Src\TomboLib\Logger.h"\\r
+       "..\..\Src\TomboLib\TString.h"\\r
+       "..\..\Src\TomboLib\Uniconv.h"\\r
+       \r
+\r
+!ELSEIF  "$(CFG)" == "RegErase - Win32 (WCE SH3) Debug"\r
+\r
+DEP_CPP_MESSA=\\r
+       "..\..\Src\Message.h"\\r
+       "..\..\Src\MsgRes\DefaultMsg.cpp"\\r
+       "..\..\Src\MsgRes\MsgDef.h"\\r
+       "..\..\Src\Tombo.h"\\r
+       "..\..\Src\TomboLib\File.h"\\r
+       "..\..\Src\TomboLib\Logger.h"\\r
+       "..\..\Src\TomboLib\TString.h"\\r
+       "..\..\Src\TomboLib\Uniconv.h"\\r
+       \r
+\r
+!ELSEIF  "$(CFG)" == "RegErase - Win32 (WCE ARM) Release"\r
+\r
+DEP_CPP_MESSA=\\r
+       "..\..\Src\Message.h"\\r
+       "..\..\Src\MsgRes\DefaultMsg.cpp"\\r
+       "..\..\Src\MsgRes\MsgDef.h"\\r
+       "..\..\Src\Tombo.h"\\r
+       "..\..\Src\TomboLib\File.h"\\r
+       "..\..\Src\TomboLib\Logger.h"\\r
+       "..\..\Src\TomboLib\TString.h"\\r
+       "..\..\Src\TomboLib\Uniconv.h"\\r
+       \r
+\r
+!ELSEIF  "$(CFG)" == "RegErase - Win32 (WCE ARM) Debug"\r
+\r
+DEP_CPP_MESSA=\\r
+       "..\..\Src\Message.h"\\r
+       "..\..\Src\MsgRes\DefaultMsg.cpp"\\r
+       "..\..\Src\MsgRes\MsgDef.h"\\r
+       "..\..\Src\Tombo.h"\\r
+       "..\..\Src\TomboLib\File.h"\\r
+       "..\..\Src\TomboLib\Logger.h"\\r
+       "..\..\Src\TomboLib\TString.h"\\r
+       "..\..\Src\TomboLib\Uniconv.h"\\r
+       \r
+\r
+!ENDIF \r
+\r
+# End Source File\r
+# Begin Source File\r
+\r
+SOURCE=..\..\Src\RegErase\RegErase.cpp\r
+\r
+!IF  "$(CFG)" == "RegErase - Win32 (WCE MIPS) Release"\r
+\r
+DEP_CPP_REGER=\\r
+       "..\..\Src\Message.h"\\r
+       "..\..\Src\MsgRes\MsgDef.h"\\r
+       \r
+\r
+!ELSEIF  "$(CFG)" == "RegErase - Win32 (WCE MIPS) Debug"\r
+\r
+DEP_CPP_REGER=\\r
+       "..\..\Src\Message.h"\\r
+       "..\..\Src\MsgRes\MsgDef.h"\\r
+       \r
+\r
+!ELSEIF  "$(CFG)" == "RegErase - Win32 (WCE SH4) Release"\r
+\r
+DEP_CPP_REGER=\\r
+       "..\..\Src\Message.h"\\r
+       "..\..\Src\MsgRes\MsgDef.h"\\r
+       \r
+\r
+!ELSEIF  "$(CFG)" == "RegErase - Win32 (WCE SH4) Debug"\r
+\r
+DEP_CPP_REGER=\\r
+       "..\..\Src\Message.h"\\r
+       "..\..\Src\MsgRes\MsgDef.h"\\r
+       \r
+\r
+!ELSEIF  "$(CFG)" == "RegErase - Win32 (WCE SH3) Release"\r
+\r
+DEP_CPP_REGER=\\r
+       "..\..\Src\Message.h"\\r
+       "..\..\Src\MsgRes\MsgDef.h"\\r
+       \r
+\r
+!ELSEIF  "$(CFG)" == "RegErase - Win32 (WCE SH3) Debug"\r
+\r
+DEP_CPP_REGER=\\r
+       "..\..\Src\Message.h"\\r
+       "..\..\Src\MsgRes\MsgDef.h"\\r
+       \r
+\r
+!ELSEIF  "$(CFG)" == "RegErase - Win32 (WCE ARM) Release"\r
+\r
+DEP_CPP_REGER=\\r
+       "..\..\Src\Message.h"\\r
+       "..\..\Src\MsgRes\MsgDef.h"\\r
+       \r
+\r
+!ELSEIF  "$(CFG)" == "RegErase - Win32 (WCE ARM) Debug"\r
+\r
+DEP_CPP_REGER=\\r
+       "..\..\Src\Message.h"\\r
+       "..\..\Src\MsgRes\MsgDef.h"\\r
+       \r
+\r
+!ENDIF \r
+\r
+# End Source File\r
+# Begin Source File\r
+\r
+SOURCE=..\..\Src\TomboLib\Uniconv.cpp\r
+\r
+!IF  "$(CFG)" == "RegErase - Win32 (WCE MIPS) Release"\r
+\r
+DEP_CPP_UNICO=\\r
+       "..\..\Src\Property.h"\\r
+       "..\..\Src\Tombo.h"\\r
+       "..\..\Src\TomboLib\AutoPtr.h"\\r
+       "..\..\Src\TomboLib\File.h"\\r
+       "..\..\Src\TomboLib\Logger.h"\\r
+       "..\..\Src\TomboLib\TString.h"\\r
+       "..\..\Src\TomboLib\Uniconv.h"\\r
+       \r
+\r
+!ELSEIF  "$(CFG)" == "RegErase - Win32 (WCE MIPS) Debug"\r
+\r
+DEP_CPP_UNICO=\\r
+       "..\..\Src\Property.h"\\r
+       "..\..\Src\Tombo.h"\\r
+       "..\..\Src\TomboLib\AutoPtr.h"\\r
+       "..\..\Src\TomboLib\File.h"\\r
+       "..\..\Src\TomboLib\Logger.h"\\r
+       "..\..\Src\TomboLib\TString.h"\\r
+       "..\..\Src\TomboLib\Uniconv.h"\\r
+       \r
+\r
+!ELSEIF  "$(CFG)" == "RegErase - Win32 (WCE SH4) Release"\r
+\r
+DEP_CPP_UNICO=\\r
+       "..\..\Src\Property.h"\\r
+       "..\..\Src\Tombo.h"\\r
+       "..\..\Src\TomboLib\AutoPtr.h"\\r
+       "..\..\Src\TomboLib\File.h"\\r
+       "..\..\Src\TomboLib\Logger.h"\\r
+       "..\..\Src\TomboLib\TString.h"\\r
+       "..\..\Src\TomboLib\Uniconv.h"\\r
+       \r
+\r
+!ELSEIF  "$(CFG)" == "RegErase - Win32 (WCE SH4) Debug"\r
+\r
+DEP_CPP_UNICO=\\r
+       "..\..\Src\Property.h"\\r
+       "..\..\Src\Tombo.h"\\r
+       "..\..\Src\TomboLib\AutoPtr.h"\\r
+       "..\..\Src\TomboLib\File.h"\\r
+       "..\..\Src\TomboLib\Logger.h"\\r
+       "..\..\Src\TomboLib\TString.h"\\r
+       "..\..\Src\TomboLib\Uniconv.h"\\r
+       \r
+\r
+!ELSEIF  "$(CFG)" == "RegErase - Win32 (WCE SH3) Release"\r
+\r
+DEP_CPP_UNICO=\\r
+       "..\..\Src\Property.h"\\r
+       "..\..\Src\Tombo.h"\\r
+       "..\..\Src\TomboLib\AutoPtr.h"\\r
+       "..\..\Src\TomboLib\File.h"\\r
+       "..\..\Src\TomboLib\Logger.h"\\r
+       "..\..\Src\TomboLib\TString.h"\\r
+       "..\..\Src\TomboLib\Uniconv.h"\\r
+       \r
+\r
+!ELSEIF  "$(CFG)" == "RegErase - Win32 (WCE SH3) Debug"\r
+\r
+DEP_CPP_UNICO=\\r
+       "..\..\Src\Property.h"\\r
+       "..\..\Src\Tombo.h"\\r
+       "..\..\Src\TomboLib\AutoPtr.h"\\r
+       "..\..\Src\TomboLib\File.h"\\r
+       "..\..\Src\TomboLib\Logger.h"\\r
+       "..\..\Src\TomboLib\TString.h"\\r
+       "..\..\Src\TomboLib\Uniconv.h"\\r
+       \r
+\r
+!ELSEIF  "$(CFG)" == "RegErase - Win32 (WCE ARM) Release"\r
+\r
+DEP_CPP_UNICO=\\r
+       "..\..\Src\Property.h"\\r
+       "..\..\Src\Tombo.h"\\r
+       "..\..\Src\TomboLib\AutoPtr.h"\\r
+       "..\..\Src\TomboLib\File.h"\\r
+       "..\..\Src\TomboLib\Logger.h"\\r
+       "..\..\Src\TomboLib\TString.h"\\r
+       "..\..\Src\TomboLib\Uniconv.h"\\r
+       \r
+\r
+!ELSEIF  "$(CFG)" == "RegErase - Win32 (WCE ARM) Debug"\r
+\r
+DEP_CPP_UNICO=\\r
+       "..\..\Src\Property.h"\\r
+       "..\..\Src\Tombo.h"\\r
+       "..\..\Src\TomboLib\AutoPtr.h"\\r
+       "..\..\Src\TomboLib\File.h"\\r
+       "..\..\Src\TomboLib\Logger.h"\\r
+       "..\..\Src\TomboLib\TString.h"\\r
+       "..\..\Src\TomboLib\Uniconv.h"\\r
+       \r
+\r
+!ENDIF \r
+\r
+# End Source File\r
+# End Group\r
+# Begin Group "Header Files"\r
+\r
+# PROP Default_Filter "h;hpp;hxx;hm;inl"\r
+# Begin Source File\r
+\r
+SOURCE=..\..\Src\TomboLib\File.h\r
+# End Source File\r
+# Begin Source File\r
+\r
+SOURCE=..\..\Src\Message.h\r
+# End Source File\r
+# Begin Source File\r
+\r
+SOURCE=..\..\Src\TomboLib\Uniconv.h\r
+# End Source File\r
+# End Group\r
+# Begin Group "Resource Files"\r
+\r
+# PROP Default_Filter "ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe"\r
+# End Group\r
+# End Target\r
+# End Project\r
diff --git a/HpcPro/RegErase/RegErase.vcw b/HpcPro/RegErase/RegErase.vcw
new file mode 100644 (file)
index 0000000..c72595f
--- /dev/null
@@ -0,0 +1,29 @@
+Microsoft eMbedded Visual Tools Workspace File, Format Version 3.00\r
+# WARNING: DO NOT EDIT OR DELETE THIS WORKSPACE FILE!\r
+\r
+###############################################################################\r
+\r
+Project: "RegErase"=.\RegErase.vcp - Package Owner=<4>\r
+\r
+Package=<5>\r
+{{{\r
+}}}\r
+\r
+Package=<4>\r
+{{{\r
+}}}\r
+\r
+###############################################################################\r
+\r
+Global:\r
+\r
+Package=<5>\r
+{{{\r
+}}}\r
+\r
+Package=<3>\r
+{{{\r
+}}}\r
+\r
+###############################################################################\r
+\r
diff --git a/HpcPro/Tombo/Tombo.vcp b/HpcPro/Tombo/Tombo.vcp
new file mode 100644 (file)
index 0000000..3e08c9b
--- /dev/null
@@ -0,0 +1,6081 @@
+# Microsoft eMbedded Visual Tools Project File - Name="Tombo" - Package Owner=<4>\r
+# Microsoft eMbedded Visual Tools Generated Build File, Format Version 6.02\r
+# ** DO NOT EDIT **\r
+\r
+# TARGTYPE "Win32 (WCE ARM) Application" 0x8501\r
+# TARGTYPE "Win32 (WCE SH3) Application" 0x8101\r
+# TARGTYPE "Win32 (WCE SH4) Application" 0x8601\r
+# TARGTYPE "Win32 (WCE MIPS) Application" 0x8201\r
+\r
+CFG=Tombo - Win32 (WCE ARM) Sig3\r
+!MESSAGE This is not a valid makefile. To build this project using NMAKE,\r
+!MESSAGE use the Export Makefile command and run\r
+!MESSAGE \r
+!MESSAGE NMAKE /f "Tombo.vcn".\r
+!MESSAGE \r
+!MESSAGE You can specify a configuration when running NMAKE\r
+!MESSAGE by defining the macro CFG on the command line. For example:\r
+!MESSAGE \r
+!MESSAGE NMAKE /f "Tombo.vcn" CFG="Tombo - Win32 (WCE ARM) Sig3"\r
+!MESSAGE \r
+!MESSAGE Possible choices for configuration are:\r
+!MESSAGE \r
+!MESSAGE "Tombo - Win32 (WCE MIPS) Release" (based on "Win32 (WCE MIPS) Application")\r
+!MESSAGE "Tombo - Win32 (WCE SH4) Release" (based on "Win32 (WCE SH4) Application")\r
+!MESSAGE "Tombo - Win32 (WCE SH3) Release" (based on "Win32 (WCE SH3) Application")\r
+!MESSAGE "Tombo - Win32 (WCE ARM) Release" (based on "Win32 (WCE ARM) Application")\r
+!MESSAGE "Tombo - Win32 (WCE ARM) Sig3" (based on "Win32 (WCE ARM) Application")\r
+!MESSAGE \r
+\r
+# Begin Project\r
+# PROP AllowPerConfigDependencies 0\r
+# PROP Scc_ProjName ""\r
+# PROP Scc_LocalPath ""\r
+# PROP ATL_Project 2\r
+\r
+!IF  "$(CFG)" == "Tombo - Win32 (WCE MIPS) Release"\r
+\r
+# PROP BASE Use_MFC 0\r
+# PROP BASE Use_Debug_Libraries 0\r
+# PROP BASE Output_Dir "MIPSRel"\r
+# PROP BASE Intermediate_Dir "MIPSRel"\r
+# PROP BASE CPU_ID "{D6519010-710F-11D3-99F2-00105A0DF099}"\r
+# PROP BASE Platform_ID "{8A9A2F80-6887-11D3-842E-005004848CBA}"\r
+# PROP BASE Target_Dir ""\r
+# PROP Use_MFC 0\r
+# PROP Use_Debug_Libraries 0\r
+# PROP Output_Dir "MIPSRel"\r
+# PROP Intermediate_Dir "MIPSRel"\r
+# PROP CPU_ID "{D6519010-710F-11D3-99F2-00105A0DF099}"\r
+# PROP Platform_ID "{8A9A2F80-6887-11D3-842E-005004848CBA}"\r
+# PROP Target_Dir ""\r
+RSC=rc.exe\r
+# ADD BASE RSC /l 0x409 /d UNDER_CE=$(CEVersion) /d _WIN32_WCE=$(CEVersion) /d "UNICODE" /d "_UNICODE" /d "NDEBUG" /d "$(CePlatform)" /d "MIPS" /d "_MIPS_" /r\r
+# ADD RSC /l 0x409 /d UNDER_CE=$(CEVersion) /d _WIN32_WCE=$(CEVersion) /d "UNICODE" /d "_UNICODE" /d "NDEBUG" /d "$(CePlatform)" /d "MIPS" /d "_MIPS_" /r\r
+CPP=clmips.exe\r
+# ADD BASE CPP /nologo /W3 /D _WIN32_WCE=$(CEVersion) /D "$(CePlatform)" /D "MIPS" /D "_MIPS_" /D UNDER_CE=$(CEVersion) /D "UNICODE" /D "_UNICODE" /D "NDEBUG" /YX /Oxs /M$(CECrtMT) /c\r
+# ADD CPP /nologo /W3 /I "../../Src" /I "../expat/include" /I "../../Src/TomboLib" /I "./res" /I "." /I "../../Src/regex" /I "../../expat/include" /I "../../Src/YAEdit" /I "../../oniguruma/" /D "MIPS" /D "_MIPS_" /D "NDEBUG" /D UNDER_CE=$(CEVersion) /D _WIN32_WCE=$(CEVersion) /D "$(CePlatform)" /D "UNICODE" /D "_UNICODE" /D "TOMBO" /D "PLATFORM_HPC" /D "STRICT" /D "USE_TWO_PANE" /YX /Oxs /M$(CECrtMT) /c\r
+MTL=midl.exe\r
+# ADD BASE MTL /nologo /D "NDEBUG" /mktyplib203 /o "NUL" /win32\r
+# ADD MTL /nologo /D "NDEBUG" /mktyplib203 /o "NUL" /win32\r
+BSC32=bscmake.exe\r
+# ADD BASE BSC32 /nologo\r
+# ADD BSC32 /nologo\r
+LINK32=link.exe\r
+# ADD BASE LINK32 commctrl.lib coredll.lib /nologo /base:"0x00010000" /stack:0x10000,0x1000 /entry:"WinMainCRTStartup" /nodefaultlib:"$(CENoDefaultLib)" /subsystem:$(CESubsystem) /MACHINE:MIPS\r
+# ADD LINK32 commctrl.lib coredll.lib /nologo /base:"0x00010000" /stack:0x10000,0x1000 /entry:"WinMainCRTStartup" /nodefaultlib:"$(CENoDefaultLib)" /subsystem:$(CESubsystem) /MACHINE:MIPS\r
+\r
+!ELSEIF  "$(CFG)" == "Tombo - Win32 (WCE SH4) Release"\r
+\r
+# PROP BASE Use_MFC 0\r
+# PROP BASE Use_Debug_Libraries 0\r
+# PROP BASE Output_Dir "SH4Rel"\r
+# PROP BASE Intermediate_Dir "SH4Rel"\r
+# PROP BASE CPU_ID "{D6519021-710F-11D3-99F2-00105A0DF099}"\r
+# PROP BASE Platform_ID "{8A9A2F80-6887-11D3-842E-005004848CBA}"\r
+# PROP BASE Target_Dir ""\r
+# PROP Use_MFC 0\r
+# PROP Use_Debug_Libraries 0\r
+# PROP Output_Dir "SH4Rel"\r
+# PROP Intermediate_Dir "SH4Rel"\r
+# PROP CPU_ID "{D6519021-710F-11D3-99F2-00105A0DF099}"\r
+# PROP Platform_ID "{8A9A2F80-6887-11D3-842E-005004848CBA}"\r
+# PROP Target_Dir ""\r
+RSC=rc.exe\r
+# ADD BASE RSC /l 0x409 /d UNDER_CE=$(CEVersion) /d _WIN32_WCE=$(CEVersion) /d "NDEBUG" /d "UNICODE" /d "_UNICODE" /d "$(CePlatform)" /d "SHx" /d "SH4" /d "_SH4_" /r\r
+# ADD RSC /l 0x409 /d UNDER_CE=$(CEVersion) /d _WIN32_WCE=$(CEVersion) /d "NDEBUG" /d "UNICODE" /d "_UNICODE" /d "$(CePlatform)" /d "SHx" /d "SH4" /d "_SH4_" /r\r
+CPP=shcl.exe\r
+# ADD BASE CPP /nologo /W3 /D _WIN32_WCE=$(CEVersion) /D "$(CePlatform)" /D "SHx" /D "SH4" /D "_SH4_" /D UNDER_CE=$(CEVersion) /D "UNICODE" /D "_UNICODE" /D "NDEBUG" /YX /Qsh4 /Oxs /M$(CECrtMT) /c\r
+# ADD CPP /nologo /W3 /Od /I "../../Src" /I "../expat/include" /I "../../Src/TomboLib" /I "./res" /I "." /I "../../Src/regex" /I "../../expat/include" /I "../../Src/YAEdit" /I "../../oniguruma/" /D "SHx" /D "SH4" /D "_SH4_" /D "NDEBUG" /D UNDER_CE=$(CEVersion) /D _WIN32_WCE=$(CEVersion) /D "$(CePlatform)" /D "UNICODE" /D "_UNICODE" /D "TOMBO" /D "PLATFORM_HPC" /D "STRICT" /D "USE_TWO_PANE" /YX /Qsh4 /M$(CECrtMT) /c\r
+MTL=midl.exe\r
+# ADD BASE MTL /nologo /D "NDEBUG" /mktyplib203 /o "NUL" /win32\r
+# ADD MTL /nologo /D "NDEBUG" /mktyplib203 /o "NUL" /win32\r
+BSC32=bscmake.exe\r
+# ADD BASE BSC32 /nologo\r
+# ADD BSC32 /nologo\r
+LINK32=link.exe\r
+# ADD BASE LINK32 commctrl.lib coredll.lib /nologo /base:"0x00010000" /stack:0x10000,0x1000 /entry:"WinMainCRTStartup" /nodefaultlib:"$(CENoDefaultLib)" /subsystem:$(CESubsystem) /MACHINE:SH4\r
+# ADD LINK32 commctrl.lib coredll.lib /nologo /base:"0x00010000" /stack:0x10000,0x1000 /entry:"WinMainCRTStartup" /nodefaultlib:"$(CENoDefaultLib)" /subsystem:$(CESubsystem) /MACHINE:SH4\r
+\r
+!ELSEIF  "$(CFG)" == "Tombo - Win32 (WCE SH3) Release"\r
+\r
+# PROP BASE Use_MFC 0\r
+# PROP BASE Use_Debug_Libraries 0\r
+# PROP BASE Output_Dir "SH3Rel"\r
+# PROP BASE Intermediate_Dir "SH3Rel"\r
+# PROP BASE CPU_ID "{D6519020-710F-11D3-99F2-00105A0DF099}"\r
+# PROP BASE Platform_ID "{8A9A2F80-6887-11D3-842E-005004848CBA}"\r
+# PROP BASE Target_Dir ""\r
+# PROP Use_MFC 0\r
+# PROP Use_Debug_Libraries 0\r
+# PROP Output_Dir "SH3Rel"\r
+# PROP Intermediate_Dir "SH3Rel"\r
+# PROP CPU_ID "{D6519020-710F-11D3-99F2-00105A0DF099}"\r
+# PROP Platform_ID "{8A9A2F80-6887-11D3-842E-005004848CBA}"\r
+# PROP Target_Dir ""\r
+RSC=rc.exe\r
+# ADD BASE RSC /l 0x409 /d UNDER_CE=$(CEVersion) /d _WIN32_WCE=$(CEVersion) /d "UNICODE" /d "_UNICODE" /d "NDEBUG" /d "$(CePlatform)" /d "SHx" /d "SH3" /d "_SH3_" /r\r
+# ADD RSC /l 0x409 /d UNDER_CE=$(CEVersion) /d _WIN32_WCE=$(CEVersion) /d "UNICODE" /d "_UNICODE" /d "NDEBUG" /d "$(CePlatform)" /d "SHx" /d "SH3" /d "_SH3_" /r\r
+CPP=shcl.exe\r
+# ADD BASE CPP /nologo /W3 /D _WIN32_WCE=$(CEVersion) /D "$(CePlatform)" /D "SHx" /D "SH3" /D "_SH3_" /D UNDER_CE=$(CEVersion) /D "UNICODE" /D "_UNICODE" /D "NDEBUG" /YX /Oxs /M$(CECrtMT) /c\r
+# ADD CPP /nologo /W3 /Od /I "../../Src" /I "../expat/include" /I "../../Src/TomboLib" /I "./res" /I "." /I "../../Src/regex" /I "../../expat/include" /I "../../Src/YAEdit" /I "../../oniguruma/" /D "SHx" /D "SH3" /D "_SH3_" /D "NDEBUG" /D UNDER_CE=$(CEVersion) /D _WIN32_WCE=$(CEVersion) /D "$(CePlatform)" /D "UNICODE" /D "_UNICODE" /D "TOMBO" /D "PLATFORM_HPC" /D "STRICT" /D "USE_TWO_PANE" /YX /M$(CECrtMT) /c\r
+MTL=midl.exe\r
+# ADD BASE MTL /nologo /D "NDEBUG" /mktyplib203 /o "NUL" /win32\r
+# ADD MTL /nologo /D "NDEBUG" /mktyplib203 /o "NUL" /win32\r
+BSC32=bscmake.exe\r
+# ADD BASE BSC32 /nologo\r
+# ADD BSC32 /nologo\r
+LINK32=link.exe\r
+# ADD BASE LINK32 commctrl.lib coredll.lib /nologo /base:"0x00010000" /stack:0x10000,0x1000 /entry:"WinMainCRTStartup" /nodefaultlib:"$(CENoDefaultLib)" /subsystem:$(CESubsystem) /MACHINE:SH3\r
+# ADD LINK32 commctrl.lib coredll.lib /nologo /base:"0x00010000" /stack:0x10000,0x1000 /entry:"WinMainCRTStartup" /nodefaultlib:"$(CENoDefaultLib)" /subsystem:$(CESubsystem) /MACHINE:SH3\r
+\r
+!ELSEIF  "$(CFG)" == "Tombo - Win32 (WCE ARM) Release"\r
+\r
+# PROP BASE Use_MFC 0\r
+# PROP BASE Use_Debug_Libraries 0\r
+# PROP BASE Output_Dir "ARMRel"\r
+# PROP BASE Intermediate_Dir "ARMRel"\r
+# PROP BASE CPU_ID "{D6518FFC-710F-11D3-99F2-00105A0DF099}"\r
+# PROP BASE Platform_ID "{8A9A2F80-6887-11D3-842E-005004848CBA}"\r
+# PROP BASE Target_Dir ""\r
+# PROP Use_MFC 0\r
+# PROP Use_Debug_Libraries 0\r
+# PROP Output_Dir "ARMRel"\r
+# PROP Intermediate_Dir "ARMRel"\r
+# PROP CPU_ID "{D6518FFC-710F-11D3-99F2-00105A0DF099}"\r
+# PROP Platform_ID "{8A9A2F80-6887-11D3-842E-005004848CBA}"\r
+# PROP Ignore_Export_Lib 0\r
+# PROP Target_Dir ""\r
+RSC=rc.exe\r
+# ADD BASE RSC /l 0x409 /d UNDER_CE=$(CEVersion) /d _WIN32_WCE=$(CEVersion) /d "UNICODE" /d "_UNICODE" /d "NDEBUG" /d "$(CePlatform)" /d "ARM" /d "_ARM_" /r\r
+# ADD RSC /l 0x409 /d UNDER_CE=$(CEVersion) /d _WIN32_WCE=$(CEVersion) /d "UNICODE" /d "_UNICODE" /d "NDEBUG" /d "$(CePlatform)" /d "ARM" /d "_ARM_" /r\r
+CPP=clarm.exe\r
+# ADD BASE CPP /nologo /W3 /D _WIN32_WCE=$(CEVersion) /D "$(CePlatform)" /D "ARM" /D "_ARM_" /D UNDER_CE=$(CEVersion) /D "UNICODE" /D "_UNICODE" /D "NDEBUG" /YX /Oxs /M$(CECrtMT) /c\r
+# ADD CPP /nologo /W3 /I "../../Src" /I "../expat/include" /I "../../Src/TomboLib" /I "./res" /I "." /I "../../Src/regex" /I "../../expat/include" /I "../../Src/YAEdit" /I "../../oniguruma/" /D "ARM" /D "_ARM_" /D "STRICT" /D "NDEBUG" /D UNDER_CE=$(CEVersion) /D _WIN32_WCE=$(CEVersion) /D "$(CePlatform)" /D "UNICODE" /D "_UNICODE" /D "TOMBO" /D "PLATFORM_HPC" /D "USE_TWO_PANE" /YX /Oxs /M$(CECrtMT) /c\r
+MTL=midl.exe\r
+# ADD BASE MTL /nologo /D "NDEBUG" /mktyplib203 /o "NUL" /win32\r
+# ADD MTL /nologo /D "NDEBUG" /mktyplib203 /o "NUL" /win32\r
+BSC32=bscmake.exe\r
+# ADD BASE BSC32 /nologo\r
+# ADD BSC32 /nologo\r
+LINK32=link.exe\r
+# ADD BASE LINK32 commctrl.lib coredll.lib /nologo /base:"0x00010000" /stack:0x10000,0x1000 /entry:"WinMainCRTStartup" /nodefaultlib:"$(CENoDefaultLib)" /subsystem:$(CESubsystem) /align:"4096" /MACHINE:ARM\r
+# ADD LINK32 commctrl.lib coredll.lib /nologo /base:"0x00010000" /stack:0x10000,0x1000 /entry:"WinMainCRTStartup" /nodefaultlib:"$(CENoDefaultLib)" /subsystem:$(CESubsystem) /align:"4096" /MACHINE:ARM\r
+\r
+!ELSEIF  "$(CFG)" == "Tombo - Win32 (WCE ARM) Sig3"\r
+\r
+# PROP BASE Use_MFC 0\r
+# PROP BASE Use_Debug_Libraries 0\r
+# PROP BASE Output_Dir "ARMSig3"\r
+# PROP BASE Intermediate_Dir "ARMSig3"\r
+# PROP BASE CPU_ID "{D6518FFC-710F-11D3-99F2-00105A0DF099}"\r
+# PROP BASE Platform_ID "{8A9A2F80-6887-11D3-842E-005004848CBA}"\r
+# PROP BASE Target_Dir ""\r
+# PROP Use_MFC 0\r
+# PROP Use_Debug_Libraries 0\r
+# PROP Output_Dir "ARMSig3"\r
+# PROP Intermediate_Dir "ARMSig3"\r
+# PROP CPU_ID "{D6518FFC-710F-11D3-99F2-00105A0DF099}"\r
+# PROP Platform_ID "{8A9A2F80-6887-11D3-842E-005004848CBA}"\r
+# PROP Ignore_Export_Lib 0\r
+# PROP Target_Dir ""\r
+RSC=rc.exe\r
+# ADD BASE RSC /l 0x409 /d UNDER_CE=$(CEVersion) /d _WIN32_WCE=$(CEVersion) /d "UNICODE" /d "_UNICODE" /d "NDEBUG" /d "$(CePlatform)" /d "ARM" /d "_ARM_" /r\r
+# ADD RSC /l 0x409 /d UNDER_CE=$(CEVersion) /d _WIN32_WCE=$(CEVersion) /d "UNICODE" /d "_UNICODE" /d "NDEBUG" /d "$(CePlatform)" /d "ARM" /d "_ARM_" /r\r
+CPP=clarm.exe\r
+# ADD BASE CPP /nologo /W3 /D "ARM" /D "_ARM_" /D "STRICT" /D "NDEBUG" /D UNDER_CE=$(CEVersion) /D _WIN32_WCE=$(CEVersion) /D "$(CePlatform)" /D "UNICODE" /D "_UNICODE" /D "TOMBO" /D "PLATFORM_HPC" /D "USE_TWO_PANE" /YX /Oxs /M$(CECrtMT) /c\r
+# ADD CPP /nologo /W3 /I "../../Src" /I "../expat/include" /I "../../Src/TomboLib" /I "./res" /I "." /I "../../Src/regex" /I "../../expat/include" /I "../../Src/YAEdit" /I "../../oniguruma/" /D "ARM" /D "_ARM_" /D "STRICT" /D "NDEBUG" /D UNDER_CE=$(CEVersion) /D _WIN32_WCE=$(CEVersion) /D "$(CePlatform)" /D "UNICODE" /D "_UNICODE" /D "TOMBO" /D "PLATFORM_HPC" /D "USE_TWO_PANE" /D "PLATFORM_SIG3" /YX /Oxs /M$(CECrtMT) /c\r
+MTL=midl.exe\r
+# ADD BASE MTL /nologo /D "NDEBUG" /mktyplib203 /o "NUL" /win32\r
+# ADD MTL /nologo /D "NDEBUG" /mktyplib203 /o "NUL" /win32\r
+BSC32=bscmake.exe\r
+# ADD BASE BSC32 /nologo\r
+# ADD BSC32 /nologo\r
+LINK32=link.exe\r
+# ADD BASE LINK32 commctrl.lib coredll.lib /nologo /base:"0x00010000" /stack:0x10000,0x1000 /entry:"WinMainCRTStartup" /nodefaultlib:"$(CENoDefaultLib)" /subsystem:$(CESubsystem) /align:"4096" /MACHINE:ARM\r
+# ADD LINK32 commctrl.lib coredll.lib /nologo /base:"0x00010000" /stack:0x10000,0x1000 /entry:"WinMainCRTStartup" /nodefaultlib:"$(CENoDefaultLib)" /subsystem:$(CESubsystem) /align:"4096" /MACHINE:ARM\r
+\r
+!ENDIF \r
+\r
+# Begin Target\r
+\r
+# Name "Tombo - Win32 (WCE MIPS) Release"\r
+# Name "Tombo - Win32 (WCE SH4) Release"\r
+# Name "Tombo - Win32 (WCE SH3) Release"\r
+# Name "Tombo - Win32 (WCE ARM) Release"\r
+# Name "Tombo - Win32 (WCE ARM) Sig3"\r
+# Begin Group "Source Files"\r
+\r
+# PROP Default_Filter "cpp;c;cxx;rc;def;r;odl;idl;hpj;bat"\r
+# Begin Source File\r
+\r
+SOURCE=..\..\Src\AboutDialog.cpp\r
+\r
+!IF  "$(CFG)" == "Tombo - Win32 (WCE MIPS) Release"\r
+\r
+DEP_CPP_ABOUT=\\r
+       "..\..\Src\AboutDialog.h"\\r
+       "..\..\Src\Tombo.h"\\r
+       "..\..\Src\TomboLib\File.h"\\r
+       "..\..\Src\TomboLib\Logger.h"\\r
+       \r
+\r
+!ELSEIF  "$(CFG)" == "Tombo - Win32 (WCE SH4) Release"\r
+\r
+DEP_CPP_ABOUT=\\r
+       "..\..\Src\AboutDialog.h"\\r
+       "..\..\Src\Tombo.h"\\r
+       "..\..\Src\TomboLib\File.h"\\r
+       "..\..\Src\TomboLib\Logger.h"\\r
+       \r
+\r
+!ELSEIF  "$(CFG)" == "Tombo - Win32 (WCE SH3) Release"\r
+\r
+DEP_CPP_ABOUT=\\r
+       "..\..\Src\AboutDialog.h"\\r
+       "..\..\Src\Tombo.h"\\r
+       "..\..\Src\TomboLib\File.h"\\r
+       "..\..\Src\TomboLib\Logger.h"\\r
+       \r
+\r
+!ELSEIF  "$(CFG)" == "Tombo - Win32 (WCE ARM) Release"\r
+\r
+DEP_CPP_ABOUT=\\r
+       "..\..\Src\AboutDialog.h"\\r
+       "..\..\Src\Tombo.h"\\r
+       "..\..\Src\TomboLib\File.h"\\r
+       "..\..\Src\TomboLib\Logger.h"\\r
+       \r
+\r
+!ELSEIF  "$(CFG)" == "Tombo - Win32 (WCE ARM) Sig3"\r
+\r
+DEP_CPP_ABOUT=\\r
+       "..\..\Src\AboutDialog.h"\\r
+       "..\..\Src\Tombo.h"\\r
+       "..\..\Src\TomboLib\File.h"\\r
+       "..\..\Src\TomboLib\Logger.h"\\r
+       \r
+\r
+!ENDIF \r
+\r
+# End Source File\r
+# Begin Source File\r
+\r
+SOURCE=..\..\Src\TomboLib\AutoPtr.cpp\r
+\r
+!IF  "$(CFG)" == "Tombo - Win32 (WCE MIPS) Release"\r
+\r
+DEP_CPP_AUTOP=\\r
+       "..\..\Src\TomboLib\AutoPtr.h"\\r
+       \r
+\r
+!ELSEIF  "$(CFG)" == "Tombo - Win32 (WCE SH4) Release"\r
+\r
+DEP_CPP_AUTOP=\\r
+       "..\..\Src\TomboLib\AutoPtr.h"\\r
+       \r
+\r
+!ELSEIF  "$(CFG)" == "Tombo - Win32 (WCE SH3) Release"\r
+\r
+DEP_CPP_AUTOP=\\r
+       "..\..\Src\TomboLib\AutoPtr.h"\\r
+       \r
+\r
+!ELSEIF  "$(CFG)" == "Tombo - Win32 (WCE ARM) Release"\r
+\r
+DEP_CPP_AUTOP=\\r
+       "..\..\Src\TomboLib\AutoPtr.h"\\r
+       \r
+\r
+!ELSEIF  "$(CFG)" == "Tombo - Win32 (WCE ARM) Sig3"\r
+\r
+DEP_CPP_AUTOP=\\r
+       "..\..\Src\TomboLib\AutoPtr.h"\\r
+       \r
+\r
+!ENDIF \r
+\r
+# End Source File\r
+# Begin Source File\r
+\r
+SOURCE=..\..\Src\gnupg\blowfish.c\r
+\r
+!IF  "$(CFG)" == "Tombo - Win32 (WCE MIPS) Release"\r
+\r
+DEP_CPP_BLOWF=\\r
+       "..\..\Src\regex\config.h"\\r
+       "..\..\Src\regex\ctypeutil.h"\\r
+       \r
+NODEP_CPP_BLOWF=\\r
+       "..\..\Src\gnupg\blowfish.h"\\r
+       "..\..\Src\gnupg\dynload.h"\\r
+       \r
+\r
+!ELSEIF  "$(CFG)" == "Tombo - Win32 (WCE SH4) Release"\r
+\r
+DEP_CPP_BLOWF=\\r
+       "..\..\Src\regex\config.h"\\r
+       "..\..\Src\regex\ctypeutil.h"\\r
+       \r
+NODEP_CPP_BLOWF=\\r
+       "..\..\Src\gnupg\blowfish.h"\\r
+       "..\..\Src\gnupg\dynload.h"\\r
+       \r
+\r
+!ELSEIF  "$(CFG)" == "Tombo - Win32 (WCE SH3) Release"\r
+\r
+DEP_CPP_BLOWF=\\r
+       "..\..\Src\regex\config.h"\\r
+       "..\..\Src\regex\ctypeutil.h"\\r
+       \r
+NODEP_CPP_BLOWF=\\r
+       "..\..\Src\gnupg\blowfish.h"\\r
+       "..\..\Src\gnupg\dynload.h"\\r
+       \r
+\r
+!ELSEIF  "$(CFG)" == "Tombo - Win32 (WCE ARM) Release"\r
+\r
+DEP_CPP_BLOWF=\\r
+       "..\..\Src\regex\config.h"\\r
+       "..\..\Src\regex\ctypeutil.h"\\r
+       \r
+NODEP_CPP_BLOWF=\\r
+       "..\..\Src\gnupg\blowfish.h"\\r
+       "..\..\Src\gnupg\dynload.h"\\r
+       \r
+\r
+!ELSEIF  "$(CFG)" == "Tombo - Win32 (WCE ARM) Sig3"\r
+\r
+DEP_CPP_BLOWF=\\r
+       "..\..\Src\regex\config.h"\\r
+       "..\..\Src\regex\ctypeutil.h"\\r
+       \r
+NODEP_CPP_BLOWF=\\r
+       "..\..\Src\gnupg\blowfish.h"\\r
+       "..\..\Src\gnupg\dynload.h"\\r
+       \r
+\r
+!ENDIF \r
+\r
+# End Source File\r
+# Begin Source File\r
+\r
+SOURCE=..\..\Src\BookMark.cpp\r
+\r
+!IF  "$(CFG)" == "Tombo - Win32 (WCE MIPS) Release"\r
+\r
+DEP_CPP_BOOKM=\\r
+       "..\..\Src\BookMark.h"\\r
+       "..\..\Src\Repository.h"\\r
+       "..\..\Src\Tombo.h"\\r
+       "..\..\Src\TomboLib\File.h"\\r
+       "..\..\Src\TomboLib\Logger.h"\\r
+       "..\..\Src\TomboLib\TString.h"\\r
+       "..\..\Src\TomboLib\Uniconv.h"\\r
+       "..\..\Src\TomboLib\VarBuffer.h"\\r
+       "..\..\Src\TomboURI.h"\\r
+       \r
+\r
+!ELSEIF  "$(CFG)" == "Tombo - Win32 (WCE SH4) Release"\r
+\r
+DEP_CPP_BOOKM=\\r
+       "..\..\Src\BookMark.h"\\r
+       "..\..\Src\Repository.h"\\r
+       "..\..\Src\Tombo.h"\\r
+       "..\..\Src\TomboLib\File.h"\\r
+       "..\..\Src\TomboLib\Logger.h"\\r
+       "..\..\Src\TomboLib\TString.h"\\r
+       "..\..\Src\TomboLib\Uniconv.h"\\r
+       "..\..\Src\TomboLib\VarBuffer.h"\\r
+       "..\..\Src\TomboURI.h"\\r
+       \r
+\r
+!ELSEIF  "$(CFG)" == "Tombo - Win32 (WCE SH3) Release"\r
+\r
+DEP_CPP_BOOKM=\\r
+       "..\..\Src\BookMark.h"\\r
+       "..\..\Src\Repository.h"\\r
+       "..\..\Src\Tombo.h"\\r
+       "..\..\Src\TomboLib\File.h"\\r
+       "..\..\Src\TomboLib\Logger.h"\\r
+       "..\..\Src\TomboLib\TString.h"\\r
+       "..\..\Src\TomboLib\Uniconv.h"\\r
+       "..\..\Src\TomboLib\VarBuffer.h"\\r
+       "..\..\Src\TomboURI.h"\\r
+       \r
+\r
+!ELSEIF  "$(CFG)" == "Tombo - Win32 (WCE ARM) Release"\r
+\r
+DEP_CPP_BOOKM=\\r
+       "..\..\Src\BookMark.h"\\r
+       "..\..\Src\Repository.h"\\r
+       "..\..\Src\Tombo.h"\\r
+       "..\..\Src\TomboLib\File.h"\\r
+       "..\..\Src\TomboLib\Logger.h"\\r
+       "..\..\Src\TomboLib\TString.h"\\r
+       "..\..\Src\TomboLib\Uniconv.h"\\r
+       "..\..\Src\TomboLib\VarBuffer.h"\\r
+       "..\..\Src\TomboURI.h"\\r
+       \r
+\r
+!ELSEIF  "$(CFG)" == "Tombo - Win32 (WCE ARM) Sig3"\r
+\r
+DEP_CPP_BOOKM=\\r
+       "..\..\Src\BookMark.h"\\r
+       "..\..\Src\Repository.h"\\r
+       "..\..\Src\Tombo.h"\\r
+       "..\..\Src\TomboLib\File.h"\\r
+       "..\..\Src\TomboLib\Logger.h"\\r
+       "..\..\Src\TomboLib\TString.h"\\r
+       "..\..\Src\TomboLib\Uniconv.h"\\r
+       "..\..\Src\TomboLib\VarBuffer.h"\\r
+       "..\..\Src\TomboURI.h"\\r
+       \r
+\r
+!ENDIF \r
+\r
+# End Source File\r
+# Begin Source File\r
+\r
+SOURCE=..\..\Src\BookMarkDlg.cpp\r
+\r
+!IF  "$(CFG)" == "Tombo - Win32 (WCE MIPS) Release"\r
+\r
+DEP_CPP_BOOKMA=\\r
+       "..\..\Src\BookMark.h"\\r
+       "..\..\Src\BookMarkDlg.h"\\r
+       "..\..\Src\Message.h"\\r
+       "..\..\Src\MsgRes\MsgDef.h"\\r
+       "..\..\Src\TomboLib\DialogTemplate.h"\\r
+       "..\..\Src\TomboLib\TString.h"\\r
+       "..\..\Src\TomboLib\VarBuffer.h"\\r
+       \r
+\r
+!ELSEIF  "$(CFG)" == "Tombo - Win32 (WCE SH4) Release"\r
+\r
+DEP_CPP_BOOKMA=\\r
+       "..\..\Src\BookMark.h"\\r
+       "..\..\Src\BookMarkDlg.h"\\r
+       "..\..\Src\Message.h"\\r
+       "..\..\Src\MsgRes\MsgDef.h"\\r
+       "..\..\Src\TomboLib\DialogTemplate.h"\\r
+       "..\..\Src\TomboLib\TString.h"\\r
+       "..\..\Src\TomboLib\VarBuffer.h"\\r
+       \r
+\r
+!ELSEIF  "$(CFG)" == "Tombo - Win32 (WCE SH3) Release"\r
+\r
+DEP_CPP_BOOKMA=\\r
+       "..\..\Src\BookMark.h"\\r
+       "..\..\Src\BookMarkDlg.h"\\r
+       "..\..\Src\Message.h"\\r
+       "..\..\Src\MsgRes\MsgDef.h"\\r
+       "..\..\Src\TomboLib\DialogTemplate.h"\\r
+       "..\..\Src\TomboLib\TString.h"\\r
+       "..\..\Src\TomboLib\VarBuffer.h"\\r
+       \r
+\r
+!ELSEIF  "$(CFG)" == "Tombo - Win32 (WCE ARM) Release"\r
+\r
+DEP_CPP_BOOKMA=\\r
+       "..\..\Src\BookMark.h"\\r
+       "..\..\Src\BookMarkDlg.h"\\r
+       "..\..\Src\Message.h"\\r
+       "..\..\Src\MsgRes\MsgDef.h"\\r
+       "..\..\Src\TomboLib\DialogTemplate.h"\\r
+       "..\..\Src\TomboLib\TString.h"\\r
+       "..\..\Src\TomboLib\VarBuffer.h"\\r
+       \r
+\r
+!ELSEIF  "$(CFG)" == "Tombo - Win32 (WCE ARM) Sig3"\r
+\r
+DEP_CPP_BOOKMA=\\r
+       "..\..\Src\BookMark.h"\\r
+       "..\..\Src\BookMarkDlg.h"\\r
+       "..\..\Src\Message.h"\\r
+       "..\..\Src\MsgRes\MsgDef.h"\\r
+       "..\..\Src\TomboLib\DialogTemplate.h"\\r
+       "..\..\Src\TomboLib\TString.h"\\r
+       "..\..\Src\TomboLib\VarBuffer.h"\\r
+       \r
+\r
+!ENDIF \r
+\r
+# End Source File\r
+# Begin Source File\r
+\r
+SOURCE=..\..\Src\TomboLib\Clipboard.cpp\r
+\r
+!IF  "$(CFG)" == "Tombo - Win32 (WCE MIPS) Release"\r
+\r
+DEP_CPP_CLIPB=\\r
+       "..\..\Src\TomboLib\Clipboard.h"\\r
+       "..\..\Src\TomboLib\Uniconv.h"\\r
+       \r
+\r
+!ELSEIF  "$(CFG)" == "Tombo - Win32 (WCE SH4) Release"\r
+\r
+DEP_CPP_CLIPB=\\r
+       "..\..\Src\TomboLib\Clipboard.h"\\r
+       "..\..\Src\TomboLib\Uniconv.h"\\r
+       \r
+\r
+!ELSEIF  "$(CFG)" == "Tombo - Win32 (WCE SH3) Release"\r
+\r
+DEP_CPP_CLIPB=\\r
+       "..\..\Src\TomboLib\Clipboard.h"\\r
+       "..\..\Src\TomboLib\Uniconv.h"\\r
+       \r
+\r
+!ELSEIF  "$(CFG)" == "Tombo - Win32 (WCE ARM) Release"\r
+\r
+DEP_CPP_CLIPB=\\r
+       "..\..\Src\TomboLib\Clipboard.h"\\r
+       "..\..\Src\TomboLib\Uniconv.h"\\r
+       \r
+\r
+!ELSEIF  "$(CFG)" == "Tombo - Win32 (WCE ARM) Sig3"\r
+\r
+DEP_CPP_CLIPB=\\r
+       "..\..\Src\TomboLib\Clipboard.h"\\r
+       "..\..\Src\TomboLib\Uniconv.h"\\r
+       \r
+\r
+!ENDIF \r
+\r
+# End Source File\r
+# Begin Source File\r
+\r
+SOURCE=..\..\Src\Crypt.cpp\r
+\r
+!IF  "$(CFG)" == "Tombo - Win32 (WCE MIPS) Release"\r
+\r
+DEP_CPP_CRYPT=\\r
+       "..\..\Src\Crypt.h"\\r
+       \r
+\r
+!ELSEIF  "$(CFG)" == "Tombo - Win32 (WCE SH4) Release"\r
+\r
+DEP_CPP_CRYPT=\\r
+       "..\..\Src\Crypt.h"\\r
+       \r
+\r
+!ELSEIF  "$(CFG)" == "Tombo - Win32 (WCE SH3) Release"\r
+\r
+DEP_CPP_CRYPT=\\r
+       "..\..\Src\Crypt.h"\\r
+       \r
+\r
+!ELSEIF  "$(CFG)" == "Tombo - Win32 (WCE ARM) Release"\r
+\r
+DEP_CPP_CRYPT=\\r
+       "..\..\Src\Crypt.h"\\r
+       \r
+\r
+!ELSEIF  "$(CFG)" == "Tombo - Win32 (WCE ARM) Sig3"\r
+\r
+DEP_CPP_CRYPT=\\r
+       "..\..\Src\Crypt.h"\\r
+       \r
+\r
+!ENDIF \r
+\r
+# End Source File\r
+# Begin Source File\r
+\r
+SOURCE=..\..\Src\CryptManager.cpp\r
+\r
+!IF  "$(CFG)" == "Tombo - Win32 (WCE MIPS) Release"\r
+\r
+DEP_CPP_CRYPTM=\\r
+       "..\..\Src\Crypt.h"\\r
+       "..\..\Src\CryptManager.h"\\r
+       "..\..\Src\TomboLib\File.h"\\r
+       \r
+\r
+!ELSEIF  "$(CFG)" == "Tombo - Win32 (WCE SH4) Release"\r
+\r
+DEP_CPP_CRYPTM=\\r
+       "..\..\Src\Crypt.h"\\r
+       "..\..\Src\CryptManager.h"\\r
+       "..\..\Src\TomboLib\File.h"\\r
+       \r
+\r
+!ELSEIF  "$(CFG)" == "Tombo - Win32 (WCE SH3) Release"\r
+\r
+DEP_CPP_CRYPTM=\\r
+       "..\..\Src\Crypt.h"\\r
+       "..\..\Src\CryptManager.h"\\r
+       "..\..\Src\TomboLib\File.h"\\r
+       \r
+\r
+!ELSEIF  "$(CFG)" == "Tombo - Win32 (WCE ARM) Release"\r
+\r
+DEP_CPP_CRYPTM=\\r
+       "..\..\Src\Crypt.h"\\r
+       "..\..\Src\CryptManager.h"\\r
+       "..\..\Src\TomboLib\File.h"\\r
+       \r
+\r
+!ELSEIF  "$(CFG)" == "Tombo - Win32 (WCE ARM) Sig3"\r
+\r
+DEP_CPP_CRYPTM=\\r
+       "..\..\Src\Crypt.h"\\r
+       "..\..\Src\CryptManager.h"\\r
+       "..\..\Src\TomboLib\File.h"\\r
+       \r
+\r
+!ENDIF \r
+\r
+# End Source File\r
+# Begin Source File\r
+\r
+SOURCE=..\..\Src\regex\ctypeutil.c\r
+\r
+!IF  "$(CFG)" == "Tombo - Win32 (WCE MIPS) Release"\r
+\r
+DEP_CPP_CTYPE=\\r
+       "..\..\Src\regex\ctypeutil.h"\\r
+       \r
+\r
+!ELSEIF  "$(CFG)" == "Tombo - Win32 (WCE SH4) Release"\r
+\r
+DEP_CPP_CTYPE=\\r
+       "..\..\Src\regex\ctypeutil.h"\\r
+       \r
+\r
+!ELSEIF  "$(CFG)" == "Tombo - Win32 (WCE SH3) Release"\r
+\r
+DEP_CPP_CTYPE=\\r
+       "..\..\Src\regex\ctypeutil.h"\\r
+       \r
+\r
+!ELSEIF  "$(CFG)" == "Tombo - Win32 (WCE ARM) Release"\r
+\r
+DEP_CPP_CTYPE=\\r
+       "..\..\Src\regex\ctypeutil.h"\\r
+       \r
+\r
+!ELSEIF  "$(CFG)" == "Tombo - Win32 (WCE ARM) Sig3"\r
+\r
+DEP_CPP_CTYPE=\\r
+       "..\..\Src\regex\ctypeutil.h"\\r
+       \r
+\r
+!ENDIF \r
+\r
+# End Source File\r
+# Begin Source File\r
+\r
+SOURCE=..\..\Src\DetailsViewWndProc.cpp\r
+\r
+!IF  "$(CFG)" == "Tombo - Win32 (WCE MIPS) Release"\r
+\r
+DEP_CPP_DETAI=\\r
+       "..\..\Src\MemoDetailsView.h"\\r
+       "..\..\Src\PlatformLayer.h"\\r
+       "..\..\Src\PocketPCPlatform.h"\\r
+       "..\..\Src\Property.h"\\r
+       "..\..\Src\Tombo.h"\\r
+       "..\..\Src\TomboLib\File.h"\\r
+       "..\..\Src\TomboLib\Logger.h"\\r
+       \r
+\r
+!ELSEIF  "$(CFG)" == "Tombo - Win32 (WCE SH4) Release"\r
+\r
+DEP_CPP_DETAI=\\r
+       "..\..\Src\MemoDetailsView.h"\\r
+       "..\..\Src\PlatformLayer.h"\\r
+       "..\..\Src\PocketPCPlatform.h"\\r
+       "..\..\Src\Property.h"\\r
+       "..\..\Src\Tombo.h"\\r
+       "..\..\Src\TomboLib\File.h"\\r
+       "..\..\Src\TomboLib\Logger.h"\\r
+       \r
+\r
+!ELSEIF  "$(CFG)" == "Tombo - Win32 (WCE SH3) Release"\r
+\r
+DEP_CPP_DETAI=\\r
+       "..\..\Src\MemoDetailsView.h"\\r
+       "..\..\Src\PlatformLayer.h"\\r
+       "..\..\Src\PocketPCPlatform.h"\\r
+       "..\..\Src\Property.h"\\r
+       "..\..\Src\Tombo.h"\\r
+       "..\..\Src\TomboLib\File.h"\\r
+       "..\..\Src\TomboLib\Logger.h"\\r
+       \r
+\r
+!ELSEIF  "$(CFG)" == "Tombo - Win32 (WCE ARM) Release"\r
+\r
+DEP_CPP_DETAI=\\r
+       "..\..\Src\MemoDetailsView.h"\\r
+       "..\..\Src\PlatformLayer.h"\\r
+       "..\..\Src\PocketPCPlatform.h"\\r
+       "..\..\Src\Property.h"\\r
+       "..\..\Src\Tombo.h"\\r
+       "..\..\Src\TomboLib\File.h"\\r
+       "..\..\Src\TomboLib\Logger.h"\\r
+       \r
+\r
+!ELSEIF  "$(CFG)" == "Tombo - Win32 (WCE ARM) Sig3"\r
+\r
+DEP_CPP_DETAI=\\r
+       "..\..\Src\MemoDetailsView.h"\\r
+       "..\..\Src\PlatformLayer.h"\\r
+       "..\..\Src\PocketPCPlatform.h"\\r
+       "..\..\Src\Property.h"\\r
+       "..\..\Src\Tombo.h"\\r
+       "..\..\Src\TomboLib\File.h"\\r
+       "..\..\Src\TomboLib\Logger.h"\\r
+       \r
+\r
+!ENDIF \r
+\r
+# End Source File\r
+# Begin Source File\r
+\r
+SOURCE=..\..\Src\TomboLib\DialogTemplate.cpp\r
+\r
+!IF  "$(CFG)" == "Tombo - Win32 (WCE MIPS) Release"\r
+\r
+DEP_CPP_DIALO=\\r
+       "..\..\Src\Message.h"\\r
+       "..\..\Src\MsgRes\MsgDef.h"\\r
+       "..\..\Src\TomboLib\DialogTemplate.h"\\r
+       \r
+\r
+!ELSEIF  "$(CFG)" == "Tombo - Win32 (WCE SH4) Release"\r
+\r
+DEP_CPP_DIALO=\\r
+       "..\..\Src\Message.h"\\r
+       "..\..\Src\MsgRes\MsgDef.h"\\r
+       "..\..\Src\TomboLib\DialogTemplate.h"\\r
+       \r
+\r
+!ELSEIF  "$(CFG)" == "Tombo - Win32 (WCE SH3) Release"\r
+\r
+DEP_CPP_DIALO=\\r
+       "..\..\Src\Message.h"\\r
+       "..\..\Src\MsgRes\MsgDef.h"\\r
+       "..\..\Src\TomboLib\DialogTemplate.h"\\r
+       \r
+\r
+!ELSEIF  "$(CFG)" == "Tombo - Win32 (WCE ARM) Release"\r
+\r
+DEP_CPP_DIALO=\\r
+       "..\..\Src\Message.h"\\r
+       "..\..\Src\MsgRes\MsgDef.h"\\r
+       "..\..\Src\TomboLib\DialogTemplate.h"\\r
+       \r
+\r
+!ELSEIF  "$(CFG)" == "Tombo - Win32 (WCE ARM) Sig3"\r
+\r
+DEP_CPP_DIALO=\\r
+       "..\..\Src\Message.h"\\r
+       "..\..\Src\MsgRes\MsgDef.h"\\r
+       "..\..\Src\TomboLib\DialogTemplate.h"\\r
+       \r
+\r
+!ENDIF \r
+\r
+# End Source File\r
+# Begin Source File\r
+\r
+SOURCE=..\..\Src\TomboLib\DirectoryScanner.cpp\r
+\r
+!IF  "$(CFG)" == "Tombo - Win32 (WCE MIPS) Release"\r
+\r
+DEP_CPP_DIREC=\\r
+       "..\..\Src\TomboLib\DirectoryScanner.h"\\r
+       "..\..\Src\TomboLib\Uniconv.h"\\r
+       \r
+\r
+!ELSEIF  "$(CFG)" == "Tombo - Win32 (WCE SH4) Release"\r
+\r
+DEP_CPP_DIREC=\\r
+       "..\..\Src\TomboLib\DirectoryScanner.h"\\r
+       "..\..\Src\TomboLib\Uniconv.h"\\r
+       \r
+\r
+!ELSEIF  "$(CFG)" == "Tombo - Win32 (WCE SH3) Release"\r
+\r
+DEP_CPP_DIREC=\\r
+       "..\..\Src\TomboLib\DirectoryScanner.h"\\r
+       "..\..\Src\TomboLib\Uniconv.h"\\r
+       \r
+\r
+!ELSEIF  "$(CFG)" == "Tombo - Win32 (WCE ARM) Release"\r
+\r
+DEP_CPP_DIREC=\\r
+       "..\..\Src\TomboLib\DirectoryScanner.h"\\r
+       "..\..\Src\TomboLib\Uniconv.h"\\r
+       \r
+\r
+!ELSEIF  "$(CFG)" == "Tombo - Win32 (WCE ARM) Sig3"\r
+\r
+DEP_CPP_DIREC=\\r
+       "..\..\Src\TomboLib\DirectoryScanner.h"\\r
+       "..\..\Src\TomboLib\Uniconv.h"\\r
+       \r
+\r
+!ENDIF \r
+\r
+# End Source File\r
+# Begin Source File\r
+\r
+SOURCE=..\..\Src\DirList.cpp\r
+\r
+!IF  "$(CFG)" == "Tombo - Win32 (WCE MIPS) Release"\r
+\r
+DEP_CPP_DIRLI=\\r
+       "..\..\Src\DirList.h"\\r
+       "..\..\Src\MemoNote.h"\\r
+       "..\..\Src\Repository.h"\\r
+       "..\..\Src\Tombo.h"\\r
+       "..\..\Src\TomboLib\File.h"\\r
+       "..\..\Src\TomboLib\Logger.h"\\r
+       "..\..\Src\TomboLib\TString.h"\\r
+       "..\..\Src\TomboLib\VarBuffer.h"\\r
+       "..\..\Src\TomboURI.h"\\r
+       \r
+\r
+!ELSEIF  "$(CFG)" == "Tombo - Win32 (WCE SH4) Release"\r
+\r
+DEP_CPP_DIRLI=\\r
+       "..\..\Src\DirList.h"\\r
+       "..\..\Src\MemoNote.h"\\r
+       "..\..\Src\Repository.h"\\r
+       "..\..\Src\Tombo.h"\\r
+       "..\..\Src\TomboLib\File.h"\\r
+       "..\..\Src\TomboLib\Logger.h"\\r
+       "..\..\Src\TomboLib\TString.h"\\r
+       "..\..\Src\TomboLib\VarBuffer.h"\\r
+       "..\..\Src\TomboURI.h"\\r
+       \r
+\r
+!ELSEIF  "$(CFG)" == "Tombo - Win32 (WCE SH3) Release"\r
+\r
+DEP_CPP_DIRLI=\\r
+       "..\..\Src\DirList.h"\\r
+       "..\..\Src\MemoNote.h"\\r
+       "..\..\Src\Repository.h"\\r
+       "..\..\Src\Tombo.h"\\r
+       "..\..\Src\TomboLib\File.h"\\r
+       "..\..\Src\TomboLib\Logger.h"\\r
+       "..\..\Src\TomboLib\TString.h"\\r
+       "..\..\Src\TomboLib\VarBuffer.h"\\r
+       "..\..\Src\TomboURI.h"\\r
+       \r
+\r
+!ELSEIF  "$(CFG)" == "Tombo - Win32 (WCE ARM) Release"\r
+\r
+DEP_CPP_DIRLI=\\r
+       "..\..\Src\DirList.h"\\r
+       "..\..\Src\MemoNote.h"\\r
+       "..\..\Src\Repository.h"\\r
+       "..\..\Src\Tombo.h"\\r
+       "..\..\Src\TomboLib\File.h"\\r
+       "..\..\Src\TomboLib\Logger.h"\\r
+       "..\..\Src\TomboLib\TString.h"\\r
+       "..\..\Src\TomboLib\VarBuffer.h"\\r
+       "..\..\Src\TomboURI.h"\\r
+       \r
+\r
+!ELSEIF  "$(CFG)" == "Tombo - Win32 (WCE ARM) Sig3"\r
+\r
+DEP_CPP_DIRLI=\\r
+       "..\..\Src\DirList.h"\\r
+       "..\..\Src\MemoNote.h"\\r
+       "..\..\Src\Repository.h"\\r
+       "..\..\Src\Tombo.h"\\r
+       "..\..\Src\TomboLib\File.h"\\r
+       "..\..\Src\TomboLib\Logger.h"\\r
+       "..\..\Src\TomboLib\TString.h"\\r
+       "..\..\Src\TomboLib\VarBuffer.h"\\r
+       "..\..\Src\TomboURI.h"\\r
+       \r
+\r
+!ENDIF \r
+\r
+# End Source File\r
+# Begin Source File\r
+\r
+SOURCE=..\..\Src\TomboLib\File.cpp\r
+\r
+!IF  "$(CFG)" == "Tombo - Win32 (WCE MIPS) Release"\r
+\r
+DEP_CPP_FILE_=\\r
+       "..\..\Src\TomboLib\File.h"\\r
+       \r
+\r
+!ELSEIF  "$(CFG)" == "Tombo - Win32 (WCE SH4) Release"\r
+\r
+DEP_CPP_FILE_=\\r
+       "..\..\Src\TomboLib\File.h"\\r
+       \r
+\r
+!ELSEIF  "$(CFG)" == "Tombo - Win32 (WCE SH3) Release"\r
+\r
+DEP_CPP_FILE_=\\r
+       "..\..\Src\TomboLib\File.h"\\r
+       \r
+\r
+!ELSEIF  "$(CFG)" == "Tombo - Win32 (WCE ARM) Release"\r
+\r
+DEP_CPP_FILE_=\\r
+       "..\..\Src\TomboLib\File.h"\\r
+       \r
+\r
+!ELSEIF  "$(CFG)" == "Tombo - Win32 (WCE ARM) Sig3"\r
+\r
+DEP_CPP_FILE_=\\r
+       "..\..\Src\TomboLib\File.h"\\r
+       \r
+\r
+!ENDIF \r
+\r
+# End Source File\r
+# Begin Source File\r
+\r
+SOURCE=..\..\Src\TomboLib\FileInputStream.cpp\r
+\r
+!IF  "$(CFG)" == "Tombo - Win32 (WCE MIPS) Release"\r
+\r
+DEP_CPP_FILEI=\\r
+       "..\..\Src\TomboLib\FileInputStream.h"\\r
+       \r
+\r
+!ELSEIF  "$(CFG)" == "Tombo - Win32 (WCE SH4) Release"\r
+\r
+DEP_CPP_FILEI=\\r
+       "..\..\Src\TomboLib\FileInputStream.h"\\r
+       \r
+\r
+!ELSEIF  "$(CFG)" == "Tombo - Win32 (WCE SH3) Release"\r
+\r
+DEP_CPP_FILEI=\\r
+       "..\..\Src\TomboLib\FileInputStream.h"\\r
+       \r
+\r
+!ELSEIF  "$(CFG)" == "Tombo - Win32 (WCE ARM) Release"\r
+\r
+DEP_CPP_FILEI=\\r
+       "..\..\Src\TomboLib\FileInputStream.h"\\r
+       \r
+\r
+!ELSEIF  "$(CFG)" == "Tombo - Win32 (WCE ARM) Sig3"\r
+\r
+DEP_CPP_FILEI=\\r
+       "..\..\Src\TomboLib\FileInputStream.h"\\r
+       \r
+\r
+!ENDIF \r
+\r
+# End Source File\r
+# Begin Source File\r
+\r
+SOURCE=..\..\Src\FileSelector.cpp\r
+\r
+!IF  "$(CFG)" == "Tombo - Win32 (WCE MIPS) Release"\r
+\r
+DEP_CPP_FILES=\\r
+       "..\..\Src\FileSelector.h"\\r
+       "..\..\Src\Message.h"\\r
+       "..\..\Src\MsgRes\MsgDef.h"\\r
+       "..\..\Src\TomboLib\DialogTemplate.h"\\r
+       \r
+\r
+!ELSEIF  "$(CFG)" == "Tombo - Win32 (WCE SH4) Release"\r
+\r
+DEP_CPP_FILES=\\r
+       "..\..\Src\FileSelector.h"\\r
+       "..\..\Src\Message.h"\\r
+       "..\..\Src\MsgRes\MsgDef.h"\\r
+       "..\..\Src\TomboLib\DialogTemplate.h"\\r
+       \r
+\r
+!ELSEIF  "$(CFG)" == "Tombo - Win32 (WCE SH3) Release"\r
+\r
+DEP_CPP_FILES=\\r
+       "..\..\Src\FileSelector.h"\\r
+       "..\..\Src\Message.h"\\r
+       "..\..\Src\MsgRes\MsgDef.h"\\r
+       "..\..\Src\TomboLib\DialogTemplate.h"\\r
+       \r
+\r
+!ELSEIF  "$(CFG)" == "Tombo - Win32 (WCE ARM) Release"\r
+\r
+DEP_CPP_FILES=\\r
+       "..\..\Src\FileSelector.h"\\r
+       "..\..\Src\Message.h"\\r
+       "..\..\Src\MsgRes\MsgDef.h"\\r
+       "..\..\Src\TomboLib\DialogTemplate.h"\\r
+       \r
+\r
+!ELSEIF  "$(CFG)" == "Tombo - Win32 (WCE ARM) Sig3"\r
+\r
+DEP_CPP_FILES=\\r
+       "..\..\Src\FileSelector.h"\\r
+       "..\..\Src\Message.h"\\r
+       "..\..\Src\MsgRes\MsgDef.h"\\r
+       "..\..\Src\TomboLib\DialogTemplate.h"\\r
+       \r
+\r
+!ENDIF \r
+\r
+# End Source File\r
+# Begin Source File\r
+\r
+SOURCE=..\..\Src\FilterAddDlg.cpp\r
+\r
+!IF  "$(CFG)" == "Tombo - Win32 (WCE MIPS) Release"\r
+\r
+DEP_CPP_FILTE=\\r
+       "..\..\Src\FilterAddDlg.h"\\r
+       "..\..\Src\Message.h"\\r
+       "..\..\Src\MsgRes\MsgDef.h"\\r
+       "..\..\Src\Property.h"\\r
+       "..\..\Src\Tombo.h"\\r
+       "..\..\Src\TomboLib\DialogTemplate.h"\\r
+       "..\..\Src\TomboLib\File.h"\\r
+       "..\..\Src\TomboLib\Logger.h"\\r
+       "..\..\Src\TomboLib\TString.h"\\r
+       "..\..\Src\TomboLib\VarBuffer.h"\\r
+       "..\..\Src\VFStream.h"\\r
+       \r
+\r
+!ELSEIF  "$(CFG)" == "Tombo - Win32 (WCE SH4) Release"\r
+\r
+DEP_CPP_FILTE=\\r
+       "..\..\Src\FilterAddDlg.h"\\r
+       "..\..\Src\Message.h"\\r
+       "..\..\Src\MsgRes\MsgDef.h"\\r
+       "..\..\Src\Property.h"\\r
+       "..\..\Src\Tombo.h"\\r
+       "..\..\Src\TomboLib\DialogTemplate.h"\\r
+       "..\..\Src\TomboLib\File.h"\\r
+       "..\..\Src\TomboLib\Logger.h"\\r
+       "..\..\Src\TomboLib\TString.h"\\r
+       "..\..\Src\TomboLib\VarBuffer.h"\\r
+       "..\..\Src\VFStream.h"\\r
+       \r
+\r
+!ELSEIF  "$(CFG)" == "Tombo - Win32 (WCE SH3) Release"\r
+\r
+DEP_CPP_FILTE=\\r
+       "..\..\Src\FilterAddDlg.h"\\r
+       "..\..\Src\Message.h"\\r
+       "..\..\Src\MsgRes\MsgDef.h"\\r
+       "..\..\Src\Property.h"\\r
+       "..\..\Src\Tombo.h"\\r
+       "..\..\Src\TomboLib\DialogTemplate.h"\\r
+       "..\..\Src\TomboLib\File.h"\\r
+       "..\..\Src\TomboLib\Logger.h"\\r
+       "..\..\Src\TomboLib\TString.h"\\r
+       "..\..\Src\TomboLib\VarBuffer.h"\\r
+       "..\..\Src\VFStream.h"\\r
+       \r
+\r
+!ELSEIF  "$(CFG)" == "Tombo - Win32 (WCE ARM) Release"\r
+\r
+DEP_CPP_FILTE=\\r
+       "..\..\Src\FilterAddDlg.h"\\r
+       "..\..\Src\Message.h"\\r
+       "..\..\Src\MsgRes\MsgDef.h"\\r
+       "..\..\Src\Property.h"\\r
+       "..\..\Src\Tombo.h"\\r
+       "..\..\Src\TomboLib\DialogTemplate.h"\\r
+       "..\..\Src\TomboLib\File.h"\\r
+       "..\..\Src\TomboLib\Logger.h"\\r
+       "..\..\Src\TomboLib\TString.h"\\r
+       "..\..\Src\TomboLib\VarBuffer.h"\\r
+       "..\..\Src\VFStream.h"\\r
+       \r
+\r
+!ELSEIF  "$(CFG)" == "Tombo - Win32 (WCE ARM) Sig3"\r
+\r
+DEP_CPP_FILTE=\\r
+       "..\..\Src\FilterAddDlg.h"\\r
+       "..\..\Src\Message.h"\\r
+       "..\..\Src\MsgRes\MsgDef.h"\\r
+       "..\..\Src\Property.h"\\r
+       "..\..\Src\Tombo.h"\\r
+       "..\..\Src\TomboLib\DialogTemplate.h"\\r
+       "..\..\Src\TomboLib\File.h"\\r
+       "..\..\Src\TomboLib\Logger.h"\\r
+       "..\..\Src\TomboLib\TString.h"\\r
+       "..\..\Src\TomboLib\VarBuffer.h"\\r
+       "..\..\Src\VFStream.h"\\r
+       \r
+\r
+!ENDIF \r
+\r
+# End Source File\r
+# Begin Source File\r
+\r
+SOURCE=..\..\Src\FilterCtlDlg.cpp\r
+\r
+!IF  "$(CFG)" == "Tombo - Win32 (WCE MIPS) Release"\r
+\r
+DEP_CPP_FILTER=\\r
+       "..\..\Src\FilterCtlDlg.h"\\r
+       "..\..\Src\FilterDefDlg.h"\\r
+       "..\..\Src\MemoManager.h"\\r
+       "..\..\Src\MemoSelectView.h"\\r
+       "..\..\Src\Message.h"\\r
+       "..\..\Src\MsgRes\MsgDef.h"\\r
+       "..\..\Src\Tombo.h"\\r
+       "..\..\Src\TomboLib\DialogTemplate.h"\\r
+       "..\..\Src\TomboLib\File.h"\\r
+       "..\..\Src\TomboLib\Logger.h"\\r
+       "..\..\Src\TomboLib\TString.h"\\r
+       "..\..\Src\TomboLib\Uniconv.h"\\r
+       "..\..\Src\TomboLib\VarBuffer.h"\\r
+       "..\..\Src\TreeViewItem.h"\\r
+       "..\..\Src\VFManager.h"\\r
+       "..\..\Src\VFStream.h"\\r
+       \r
+\r
+!ELSEIF  "$(CFG)" == "Tombo - Win32 (WCE SH4) Release"\r
+\r
+DEP_CPP_FILTER=\\r
+       "..\..\Src\FilterCtlDlg.h"\\r
+       "..\..\Src\FilterDefDlg.h"\\r
+       "..\..\Src\MemoManager.h"\\r
+       "..\..\Src\MemoSelectView.h"\\r
+       "..\..\Src\Message.h"\\r
+       "..\..\Src\MsgRes\MsgDef.h"\\r
+       "..\..\Src\Tombo.h"\\r
+       "..\..\Src\TomboLib\DialogTemplate.h"\\r
+       "..\..\Src\TomboLib\File.h"\\r
+       "..\..\Src\TomboLib\Logger.h"\\r
+       "..\..\Src\TomboLib\TString.h"\\r
+       "..\..\Src\TomboLib\Uniconv.h"\\r
+       "..\..\Src\TomboLib\VarBuffer.h"\\r
+       "..\..\Src\TreeViewItem.h"\\r
+       "..\..\Src\VFManager.h"\\r
+       "..\..\Src\VFStream.h"\\r
+       \r
+\r
+!ELSEIF  "$(CFG)" == "Tombo - Win32 (WCE SH3) Release"\r
+\r
+DEP_CPP_FILTER=\\r
+       "..\..\Src\FilterCtlDlg.h"\\r
+       "..\..\Src\FilterDefDlg.h"\\r
+       "..\..\Src\MemoManager.h"\\r
+       "..\..\Src\MemoSelectView.h"\\r
+       "..\..\Src\Message.h"\\r
+       "..\..\Src\MsgRes\MsgDef.h"\\r
+       "..\..\Src\Tombo.h"\\r
+       "..\..\Src\TomboLib\DialogTemplate.h"\\r
+       "..\..\Src\TomboLib\File.h"\\r
+       "..\..\Src\TomboLib\Logger.h"\\r
+       "..\..\Src\TomboLib\TString.h"\\r
+       "..\..\Src\TomboLib\Uniconv.h"\\r
+       "..\..\Src\TomboLib\VarBuffer.h"\\r
+       "..\..\Src\TreeViewItem.h"\\r
+       "..\..\Src\VFManager.h"\\r
+       "..\..\Src\VFStream.h"\\r
+       \r
+\r
+!ELSEIF  "$(CFG)" == "Tombo - Win32 (WCE ARM) Release"\r
+\r
+DEP_CPP_FILTER=\\r
+       "..\..\Src\FilterCtlDlg.h"\\r
+       "..\..\Src\FilterDefDlg.h"\\r
+       "..\..\Src\MemoManager.h"\\r
+       "..\..\Src\MemoSelectView.h"\\r
+       "..\..\Src\Message.h"\\r
+       "..\..\Src\MsgRes\MsgDef.h"\\r
+       "..\..\Src\Tombo.h"\\r
+       "..\..\Src\TomboLib\DialogTemplate.h"\\r
+       "..\..\Src\TomboLib\File.h"\\r
+       "..\..\Src\TomboLib\Logger.h"\\r
+       "..\..\Src\TomboLib\TString.h"\\r
+       "..\..\Src\TomboLib\Uniconv.h"\\r
+       "..\..\Src\TomboLib\VarBuffer.h"\\r
+       "..\..\Src\TreeViewItem.h"\\r
+       "..\..\Src\VFManager.h"\\r
+       "..\..\Src\VFStream.h"\\r
+       \r
+\r
+!ELSEIF  "$(CFG)" == "Tombo - Win32 (WCE ARM) Sig3"\r
+\r
+DEP_CPP_FILTER=\\r
+       "..\..\Src\FilterCtlDlg.h"\\r
+       "..\..\Src\FilterDefDlg.h"\\r
+       "..\..\Src\MemoManager.h"\\r
+       "..\..\Src\MemoSelectView.h"\\r
+       "..\..\Src\Message.h"\\r
+       "..\..\Src\MsgRes\MsgDef.h"\\r
+       "..\..\Src\Tombo.h"\\r
+       "..\..\Src\TomboLib\DialogTemplate.h"\\r
+       "..\..\Src\TomboLib\File.h"\\r
+       "..\..\Src\TomboLib\Logger.h"\\r
+       "..\..\Src\TomboLib\TString.h"\\r
+       "..\..\Src\TomboLib\Uniconv.h"\\r
+       "..\..\Src\TomboLib\VarBuffer.h"\\r
+       "..\..\Src\TreeViewItem.h"\\r
+       "..\..\Src\VFManager.h"\\r
+       "..\..\Src\VFStream.h"\\r
+       \r
+\r
+!ENDIF \r
+\r
+# End Source File\r
+# Begin Source File\r
+\r
+SOURCE=..\..\Src\FilterDefDlg.cpp\r
+\r
+!IF  "$(CFG)" == "Tombo - Win32 (WCE MIPS) Release"\r
+\r
+DEP_CPP_FILTERD=\\r
+       "..\..\Src\FilterAddDlg.h"\\r
+       "..\..\Src\FilterDefDlg.h"\\r
+       "..\..\Src\Message.h"\\r
+       "..\..\Src\MsgRes\MsgDef.h"\\r
+       "..\..\Src\Tombo.h"\\r
+       "..\..\Src\TomboLib\DialogTemplate.h"\\r
+       "..\..\Src\TomboLib\File.h"\\r
+       "..\..\Src\TomboLib\Logger.h"\\r
+       "..\..\Src\TomboLib\PropertyPage.h"\\r
+       "..\..\Src\TomboLib\TString.h"\\r
+       "..\..\Src\TomboLib\VarBuffer.h"\\r
+       "..\..\Src\TomboURI.h"\\r
+       "..\..\Src\VFManager.h"\\r
+       "..\..\Src\VFStream.h"\\r
+       \r
+\r
+!ELSEIF  "$(CFG)" == "Tombo - Win32 (WCE SH4) Release"\r
+\r
+DEP_CPP_FILTERD=\\r
+       "..\..\Src\FilterAddDlg.h"\\r
+       "..\..\Src\FilterDefDlg.h"\\r
+       "..\..\Src\Message.h"\\r
+       "..\..\Src\MsgRes\MsgDef.h"\\r
+       "..\..\Src\Tombo.h"\\r
+       "..\..\Src\TomboLib\DialogTemplate.h"\\r
+       "..\..\Src\TomboLib\File.h"\\r
+       "..\..\Src\TomboLib\Logger.h"\\r
+       "..\..\Src\TomboLib\PropertyPage.h"\\r
+       "..\..\Src\TomboLib\TString.h"\\r
+       "..\..\Src\TomboLib\VarBuffer.h"\\r
+       "..\..\Src\TomboURI.h"\\r
+       "..\..\Src\VFManager.h"\\r
+       "..\..\Src\VFStream.h"\\r
+       \r
+\r
+!ELSEIF  "$(CFG)" == "Tombo - Win32 (WCE SH3) Release"\r
+\r
+DEP_CPP_FILTERD=\\r
+       "..\..\Src\FilterAddDlg.h"\\r
+       "..\..\Src\FilterDefDlg.h"\\r
+       "..\..\Src\Message.h"\\r
+       "..\..\Src\MsgRes\MsgDef.h"\\r
+       "..\..\Src\Tombo.h"\\r
+       "..\..\Src\TomboLib\DialogTemplate.h"\\r
+       "..\..\Src\TomboLib\File.h"\\r
+       "..\..\Src\TomboLib\Logger.h"\\r
+       "..\..\Src\TomboLib\PropertyPage.h"\\r
+       "..\..\Src\TomboLib\TString.h"\\r
+       "..\..\Src\TomboLib\VarBuffer.h"\\r
+       "..\..\Src\TomboURI.h"\\r
+       "..\..\Src\VFManager.h"\\r
+       "..\..\Src\VFStream.h"\\r
+       \r
+\r
+!ELSEIF  "$(CFG)" == "Tombo - Win32 (WCE ARM) Release"\r
+\r
+DEP_CPP_FILTERD=\\r
+       "..\..\Src\FilterAddDlg.h"\\r
+       "..\..\Src\FilterDefDlg.h"\\r
+       "..\..\Src\Message.h"\\r
+       "..\..\Src\MsgRes\MsgDef.h"\\r
+       "..\..\Src\Tombo.h"\\r
+       "..\..\Src\TomboLib\DialogTemplate.h"\\r
+       "..\..\Src\TomboLib\File.h"\\r
+       "..\..\Src\TomboLib\Logger.h"\\r
+       "..\..\Src\TomboLib\PropertyPage.h"\\r
+       "..\..\Src\TomboLib\TString.h"\\r
+       "..\..\Src\TomboLib\VarBuffer.h"\\r
+       "..\..\Src\TomboURI.h"\\r
+       "..\..\Src\VFManager.h"\\r
+       "..\..\Src\VFStream.h"\\r
+       \r
+\r
+!ELSEIF  "$(CFG)" == "Tombo - Win32 (WCE ARM) Sig3"\r
+\r
+DEP_CPP_FILTERD=\\r
+       "..\..\Src\FilterAddDlg.h"\\r
+       "..\..\Src\FilterDefDlg.h"\\r
+       "..\..\Src\Message.h"\\r
+       "..\..\Src\MsgRes\MsgDef.h"\\r
+       "..\..\Src\Tombo.h"\\r
+       "..\..\Src\TomboLib\DialogTemplate.h"\\r
+       "..\..\Src\TomboLib\File.h"\\r
+       "..\..\Src\TomboLib\Logger.h"\\r
+       "..\..\Src\TomboLib\PropertyPage.h"\\r
+       "..\..\Src\TomboLib\TString.h"\\r
+       "..\..\Src\TomboLib\VarBuffer.h"\\r
+       "..\..\Src\TomboURI.h"\\r
+       "..\..\Src\VFManager.h"\\r
+       "..\..\Src\VFStream.h"\\r
+       \r
+\r
+!ENDIF \r
+\r
+# End Source File\r
+# Begin Source File\r
+\r
+SOURCE=..\..\Src\YAEdit\FontWidthCache.cpp\r
+\r
+!IF  "$(CFG)" == "Tombo - Win32 (WCE MIPS) Release"\r
+\r
+DEP_CPP_FONTW=\\r
+       "..\..\Src\YAEdit\FontWidthCache.h"\\r
+       \r
+\r
+!ELSEIF  "$(CFG)" == "Tombo - Win32 (WCE SH4) Release"\r
+\r
+DEP_CPP_FONTW=\\r
+       "..\..\Src\YAEdit\FontWidthCache.h"\\r
+       \r
+\r
+!ELSEIF  "$(CFG)" == "Tombo - Win32 (WCE SH3) Release"\r
+\r
+DEP_CPP_FONTW=\\r
+       "..\..\Src\YAEdit\FontWidthCache.h"\\r
+       \r
+\r
+!ELSEIF  "$(CFG)" == "Tombo - Win32 (WCE ARM) Release"\r
+\r
+DEP_CPP_FONTW=\\r
+       "..\..\Src\YAEdit\FontWidthCache.h"\\r
+       \r
+\r
+!ELSEIF  "$(CFG)" == "Tombo - Win32 (WCE ARM) Sig3"\r
+\r
+DEP_CPP_FONTW=\\r
+       "..\..\Src\YAEdit\FontWidthCache.h"\\r
+       \r
+\r
+!ENDIF \r
+\r
+# End Source File\r
+# Begin Source File\r
+\r
+SOURCE=..\..\Src\GrepDialog.cpp\r
+\r
+!IF  "$(CFG)" == "Tombo - Win32 (WCE MIPS) Release"\r
+\r
+DEP_CPP_GREPD=\\r
+       "..\..\Src\GrepDialog.h"\\r
+       "..\..\Src\Message.h"\\r
+       "..\..\Src\MsgRes\MsgDef.h"\\r
+       "..\..\Src\Property.h"\\r
+       "..\..\Src\Tombo.h"\\r
+       "..\..\Src\TomboLib\DialogTemplate.h"\\r
+       "..\..\Src\TomboLib\File.h"\\r
+       "..\..\Src\TomboLib\Logger.h"\\r
+       "..\..\Src\TomboLib\PropertyPage.h"\\r
+       "..\..\Src\TomboLib\TString.h"\\r
+       \r
+\r
+!ELSEIF  "$(CFG)" == "Tombo - Win32 (WCE SH4) Release"\r
+\r
+DEP_CPP_GREPD=\\r
+       "..\..\Src\GrepDialog.h"\\r
+       "..\..\Src\Message.h"\\r
+       "..\..\Src\MsgRes\MsgDef.h"\\r
+       "..\..\Src\Property.h"\\r
+       "..\..\Src\Tombo.h"\\r
+       "..\..\Src\TomboLib\DialogTemplate.h"\\r
+       "..\..\Src\TomboLib\File.h"\\r
+       "..\..\Src\TomboLib\Logger.h"\\r
+       "..\..\Src\TomboLib\PropertyPage.h"\\r
+       "..\..\Src\TomboLib\TString.h"\\r
+       \r
+\r
+!ELSEIF  "$(CFG)" == "Tombo - Win32 (WCE SH3) Release"\r
+\r
+DEP_CPP_GREPD=\\r
+       "..\..\Src\GrepDialog.h"\\r
+       "..\..\Src\Message.h"\\r
+       "..\..\Src\MsgRes\MsgDef.h"\\r
+       "..\..\Src\Property.h"\\r
+       "..\..\Src\Tombo.h"\\r
+       "..\..\Src\TomboLib\DialogTemplate.h"\\r
+       "..\..\Src\TomboLib\File.h"\\r
+       "..\..\Src\TomboLib\Logger.h"\\r
+       "..\..\Src\TomboLib\PropertyPage.h"\\r
+       "..\..\Src\TomboLib\TString.h"\\r
+       \r
+\r
+!ELSEIF  "$(CFG)" == "Tombo - Win32 (WCE ARM) Release"\r
+\r
+DEP_CPP_GREPD=\\r
+       "..\..\Src\GrepDialog.h"\\r
+       "..\..\Src\Message.h"\\r
+       "..\..\Src\MsgRes\MsgDef.h"\\r
+       "..\..\Src\Property.h"\\r
+       "..\..\Src\Tombo.h"\\r
+       "..\..\Src\TomboLib\DialogTemplate.h"\\r
+       "..\..\Src\TomboLib\File.h"\\r
+       "..\..\Src\TomboLib\Logger.h"\\r
+       "..\..\Src\TomboLib\PropertyPage.h"\\r
+       "..\..\Src\TomboLib\TString.h"\\r
+       \r
+\r
+!ELSEIF  "$(CFG)" == "Tombo - Win32 (WCE ARM) Sig3"\r
+\r
+DEP_CPP_GREPD=\\r
+       "..\..\Src\GrepDialog.h"\\r
+       "..\..\Src\Message.h"\\r
+       "..\..\Src\MsgRes\MsgDef.h"\\r
+       "..\..\Src\Property.h"\\r
+       "..\..\Src\Tombo.h"\\r
+       "..\..\Src\TomboLib\DialogTemplate.h"\\r
+       "..\..\Src\TomboLib\File.h"\\r
+       "..\..\Src\TomboLib\Logger.h"\\r
+       "..\..\Src\TomboLib\PropertyPage.h"\\r
+       "..\..\Src\TomboLib\TString.h"\\r
+       \r
+\r
+!ENDIF \r
+\r
+# End Source File\r
+# Begin Source File\r
+\r
+SOURCE=..\..\Src\HPCPlatform.cpp\r
+\r
+!IF  "$(CFG)" == "Tombo - Win32 (WCE MIPS) Release"\r
+\r
+DEP_CPP_HPCPL=\\r
+       "..\..\Src\HPCPlatform.h"\\r
+       "..\..\Src\Message.h"\\r
+       "..\..\Src\MsgRes\MsgDef.h"\\r
+       "..\..\Src\PlatformLayer.h"\\r
+       "..\..\Src\Property.h"\\r
+       "..\..\Src\StatusBar.h"\\r
+       "..\..\Src\Tombo.h"\\r
+       "..\..\Src\TomboLib\File.h"\\r
+       "..\..\Src\TomboLib\Logger.h"\\r
+       \r
+\r
+!ELSEIF  "$(CFG)" == "Tombo - Win32 (WCE SH4) Release"\r
+\r
+DEP_CPP_HPCPL=\\r
+       "..\..\Src\HPCPlatform.h"\\r
+       "..\..\Src\Message.h"\\r
+       "..\..\Src\MsgRes\MsgDef.h"\\r
+       "..\..\Src\PlatformLayer.h"\\r
+       "..\..\Src\Property.h"\\r
+       "..\..\Src\StatusBar.h"\\r
+       "..\..\Src\Tombo.h"\\r
+       "..\..\Src\TomboLib\File.h"\\r
+       "..\..\Src\TomboLib\Logger.h"\\r
+       \r
+\r
+!ELSEIF  "$(CFG)" == "Tombo - Win32 (WCE SH3) Release"\r
+\r
+DEP_CPP_HPCPL=\\r
+       "..\..\Src\HPCPlatform.h"\\r
+       "..\..\Src\Message.h"\\r
+       "..\..\Src\MsgRes\MsgDef.h"\\r
+       "..\..\Src\PlatformLayer.h"\\r
+       "..\..\Src\Property.h"\\r
+       "..\..\Src\StatusBar.h"\\r
+       "..\..\Src\Tombo.h"\\r
+       "..\..\Src\TomboLib\File.h"\\r
+       "..\..\Src\TomboLib\Logger.h"\\r
+       \r
+\r
+!ELSEIF  "$(CFG)" == "Tombo - Win32 (WCE ARM) Release"\r
+\r
+DEP_CPP_HPCPL=\\r
+       "..\..\Src\HPCPlatform.h"\\r
+       "..\..\Src\Message.h"\\r
+       "..\..\Src\MsgRes\MsgDef.h"\\r
+       "..\..\Src\PlatformLayer.h"\\r
+       "..\..\Src\Property.h"\\r
+       "..\..\Src\StatusBar.h"\\r
+       "..\..\Src\Tombo.h"\\r
+       "..\..\Src\TomboLib\File.h"\\r
+       "..\..\Src\TomboLib\Logger.h"\\r
+       \r
+\r
+!ELSEIF  "$(CFG)" == "Tombo - Win32 (WCE ARM) Sig3"\r
+\r
+DEP_CPP_HPCPL=\\r
+       "..\..\Src\HPCPlatform.h"\\r
+       "..\..\Src\Message.h"\\r
+       "..\..\Src\MsgRes\MsgDef.h"\\r
+       "..\..\Src\PlatformLayer.h"\\r
+       "..\..\Src\Property.h"\\r
+       "..\..\Src\StatusBar.h"\\r
+       "..\..\Src\Tombo.h"\\r
+       "..\..\Src\TomboLib\File.h"\\r
+       "..\..\Src\TomboLib\Logger.h"\\r
+       \r
+\r
+!ENDIF \r
+\r
+# End Source File\r
+# Begin Source File\r
+\r
+SOURCE=..\..\Src\YAEdit\LineManager.cpp\r
+\r
+!IF  "$(CFG)" == "Tombo - Win32 (WCE MIPS) Release"\r
+\r
+DEP_CPP_LINEM=\\r
+       "..\..\Src\TomboLib\VarBuffer.h"\\r
+       "..\..\Src\YAEdit\LineManager.h"\\r
+       "..\..\Src\YAEdit\LineWrapper.h"\\r
+       "..\..\Src\YAEdit\MemManager.h"\\r
+       "..\..\Src\YAEdit\PhysicalLineManager.h"\\r
+       "..\..\Src\YAEdit\Region.h"\\r
+       "..\..\Src\YAEdit\YAEdit.h"\\r
+       "..\..\Src\YAEdit\YAEditDoc.h"\\r
+       \r
+\r
+!ELSEIF  "$(CFG)" == "Tombo - Win32 (WCE SH4) Release"\r
+\r
+DEP_CPP_LINEM=\\r
+       "..\..\Src\TomboLib\VarBuffer.h"\\r
+       "..\..\Src\YAEdit\LineManager.h"\\r
+       "..\..\Src\YAEdit\LineWrapper.h"\\r
+       "..\..\Src\YAEdit\MemManager.h"\\r
+       "..\..\Src\YAEdit\PhysicalLineManager.h"\\r
+       "..\..\Src\YAEdit\Region.h"\\r
+       "..\..\Src\YAEdit\YAEdit.h"\\r
+       "..\..\Src\YAEdit\YAEditDoc.h"\\r
+       \r
+\r
+!ELSEIF  "$(CFG)" == "Tombo - Win32 (WCE SH3) Release"\r
+\r
+DEP_CPP_LINEM=\\r
+       "..\..\Src\TomboLib\VarBuffer.h"\\r
+       "..\..\Src\YAEdit\LineManager.h"\\r
+       "..\..\Src\YAEdit\LineWrapper.h"\\r
+       "..\..\Src\YAEdit\MemManager.h"\\r
+       "..\..\Src\YAEdit\PhysicalLineManager.h"\\r
+       "..\..\Src\YAEdit\Region.h"\\r
+       "..\..\Src\YAEdit\YAEdit.h"\\r
+       "..\..\Src\YAEdit\YAEditDoc.h"\\r
+       \r
+\r
+!ELSEIF  "$(CFG)" == "Tombo - Win32 (WCE ARM) Release"\r
+\r
+DEP_CPP_LINEM=\\r
+       "..\..\Src\TomboLib\VarBuffer.h"\\r
+       "..\..\Src\YAEdit\LineManager.h"\\r
+       "..\..\Src\YAEdit\LineWrapper.h"\\r
+       "..\..\Src\YAEdit\MemManager.h"\\r
+       "..\..\Src\YAEdit\PhysicalLineManager.h"\\r
+       "..\..\Src\YAEdit\Region.h"\\r
+       "..\..\Src\YAEdit\YAEdit.h"\\r
+       "..\..\Src\YAEdit\YAEditDoc.h"\\r
+       \r
+\r
+!ELSEIF  "$(CFG)" == "Tombo - Win32 (WCE ARM) Sig3"\r
+\r
+DEP_CPP_LINEM=\\r
+       "..\..\Src\TomboLib\VarBuffer.h"\\r
+       "..\..\Src\YAEdit\LineManager.h"\\r
+       "..\..\Src\YAEdit\LineWrapper.h"\\r
+       "..\..\Src\YAEdit\MemManager.h"\\r
+       "..\..\Src\YAEdit\PhysicalLineManager.h"\\r
+       "..\..\Src\YAEdit\Region.h"\\r
+       "..\..\Src\YAEdit\YAEdit.h"\\r
+       "..\..\Src\YAEdit\YAEditDoc.h"\\r
+       \r
+\r
+!ENDIF \r
+\r
+# End Source File\r
+# Begin Source File\r
+\r
+SOURCE=..\..\Src\YAEdit\LineWrapper.cpp\r
+\r
+!IF  "$(CFG)" == "Tombo - Win32 (WCE MIPS) Release"\r
+\r
+DEP_CPP_LINEW=\\r
+       "..\..\Src\TomboLib\VarBuffer.h"\\r
+       "..\..\Src\YAEdit\LineWrapper.h"\\r
+       "..\..\Src\YAEdit\Region.h"\\r
+       "..\..\Src\YAEdit\YAEdit.h"\\r
+       \r
+\r
+!ELSEIF  "$(CFG)" == "Tombo - Win32 (WCE SH4) Release"\r
+\r
+DEP_CPP_LINEW=\\r
+       "..\..\Src\TomboLib\VarBuffer.h"\\r
+       "..\..\Src\YAEdit\LineWrapper.h"\\r
+       "..\..\Src\YAEdit\Region.h"\\r
+       "..\..\Src\YAEdit\YAEdit.h"\\r
+       \r
+\r
+!ELSEIF  "$(CFG)" == "Tombo - Win32 (WCE SH3) Release"\r
+\r
+DEP_CPP_LINEW=\\r
+       "..\..\Src\TomboLib\VarBuffer.h"\\r
+       "..\..\Src\YAEdit\LineWrapper.h"\\r
+       "..\..\Src\YAEdit\Region.h"\\r
+       "..\..\Src\YAEdit\YAEdit.h"\\r
+       \r
+\r
+!ELSEIF  "$(CFG)" == "Tombo - Win32 (WCE ARM) Release"\r
+\r
+DEP_CPP_LINEW=\\r
+       "..\..\Src\TomboLib\VarBuffer.h"\\r
+       "..\..\Src\YAEdit\LineWrapper.h"\\r
+       "..\..\Src\YAEdit\Region.h"\\r
+       "..\..\Src\YAEdit\YAEdit.h"\\r
+       \r
+\r
+!ELSEIF  "$(CFG)" == "Tombo - Win32 (WCE ARM) Sig3"\r
+\r
+DEP_CPP_LINEW=\\r
+       "..\..\Src\TomboLib\VarBuffer.h"\\r
+       "..\..\Src\YAEdit\LineWrapper.h"\\r
+       "..\..\Src\YAEdit\Region.h"\\r
+       "..\..\Src\YAEdit\YAEdit.h"\\r
+       \r
+\r
+!ENDIF \r
+\r
+# End Source File\r
+# Begin Source File\r
+\r
+SOURCE=..\..\Src\YAEdit\LineWrapperImpl.cpp\r
+\r
+!IF  "$(CFG)" == "Tombo - Win32 (WCE MIPS) Release"\r
+\r
+DEP_CPP_LINEWR=\\r
+       "..\..\Src\TomboLib\VarBuffer.h"\\r
+       "..\..\Src\YAEdit\LineWrapper.h"\\r
+       "..\..\Src\YAEdit\LineWrapperImpl.h"\\r
+       "..\..\Src\YAEdit\Region.h"\\r
+       "..\..\Src\YAEdit\YAEdit.h"\\r
+       \r
+\r
+!ELSEIF  "$(CFG)" == "Tombo - Win32 (WCE SH4) Release"\r
+\r
+DEP_CPP_LINEWR=\\r
+       "..\..\Src\TomboLib\VarBuffer.h"\\r
+       "..\..\Src\YAEdit\LineWrapper.h"\\r
+       "..\..\Src\YAEdit\LineWrapperImpl.h"\\r
+       "..\..\Src\YAEdit\Region.h"\\r
+       "..\..\Src\YAEdit\YAEdit.h"\\r
+       \r
+\r
+!ELSEIF  "$(CFG)" == "Tombo - Win32 (WCE SH3) Release"\r
+\r
+DEP_CPP_LINEWR=\\r
+       "..\..\Src\TomboLib\VarBuffer.h"\\r
+       "..\..\Src\YAEdit\LineWrapper.h"\\r
+       "..\..\Src\YAEdit\LineWrapperImpl.h"\\r
+       "..\..\Src\YAEdit\Region.h"\\r
+       "..\..\Src\YAEdit\YAEdit.h"\\r
+       \r
+\r
+!ELSEIF  "$(CFG)" == "Tombo - Win32 (WCE ARM) Release"\r
+\r
+DEP_CPP_LINEWR=\\r
+       "..\..\Src\TomboLib\VarBuffer.h"\\r
+       "..\..\Src\YAEdit\LineWrapper.h"\\r
+       "..\..\Src\YAEdit\LineWrapperImpl.h"\\r
+       "..\..\Src\YAEdit\Region.h"\\r
+       "..\..\Src\YAEdit\YAEdit.h"\\r
+       \r
+\r
+!ELSEIF  "$(CFG)" == "Tombo - Win32 (WCE ARM) Sig3"\r
+\r
+DEP_CPP_LINEWR=\\r
+       "..\..\Src\TomboLib\VarBuffer.h"\\r
+       "..\..\Src\YAEdit\LineWrapper.h"\\r
+       "..\..\Src\YAEdit\LineWrapperImpl.h"\\r
+       "..\..\Src\YAEdit\Region.h"\\r
+       "..\..\Src\YAEdit\YAEdit.h"\\r
+       \r
+\r
+!ENDIF \r
+\r
+# End Source File\r
+# Begin Source File\r
+\r
+SOURCE=..\..\Src\TomboLib\List.cpp\r
+\r
+!IF  "$(CFG)" == "Tombo - Win32 (WCE MIPS) Release"\r
+\r
+!ELSEIF  "$(CFG)" == "Tombo - Win32 (WCE SH4) Release"\r
+\r
+!ELSEIF  "$(CFG)" == "Tombo - Win32 (WCE SH3) Release"\r
+\r
+!ELSEIF  "$(CFG)" == "Tombo - Win32 (WCE ARM) Release"\r
+\r
+!ELSEIF  "$(CFG)" == "Tombo - Win32 (WCE ARM) Sig3"\r
+\r
+!ENDIF \r
+\r
+# End Source File\r
+# Begin Source File\r
+\r
+SOURCE=..\..\Src\TomboLib\Logger.cpp\r
+\r
+!IF  "$(CFG)" == "Tombo - Win32 (WCE MIPS) Release"\r
+\r
+DEP_CPP_LOGGE=\\r
+       "..\..\Src\TomboLib\File.h"\\r
+       "..\..\Src\TomboLib\Logger.h"\\r
+       \r
+\r
+!ELSEIF  "$(CFG)" == "Tombo - Win32 (WCE SH4) Release"\r
+\r
+DEP_CPP_LOGGE=\\r
+       "..\..\Src\TomboLib\File.h"\\r
+       "..\..\Src\TomboLib\Logger.h"\\r
+       \r
+\r
+!ELSEIF  "$(CFG)" == "Tombo - Win32 (WCE SH3) Release"\r
+\r
+DEP_CPP_LOGGE=\\r
+       "..\..\Src\TomboLib\File.h"\\r
+       "..\..\Src\TomboLib\Logger.h"\\r
+       \r
+\r
+!ELSEIF  "$(CFG)" == "Tombo - Win32 (WCE ARM) Release"\r
+\r
+DEP_CPP_LOGGE=\\r
+       "..\..\Src\TomboLib\File.h"\\r
+       "..\..\Src\TomboLib\Logger.h"\\r
+       \r
+\r
+!ELSEIF  "$(CFG)" == "Tombo - Win32 (WCE ARM) Sig3"\r
+\r
+DEP_CPP_LOGGE=\\r
+       "..\..\Src\TomboLib\File.h"\\r
+       "..\..\Src\TomboLib\Logger.h"\\r
+       \r
+\r
+!ENDIF \r
+\r
+# End Source File\r
+# Begin Source File\r
+\r
+SOURCE=..\..\Src\main.cpp\r
+\r
+!IF  "$(CFG)" == "Tombo - Win32 (WCE MIPS) Release"\r
+\r
+DEP_CPP_MAIN_=\\r
+       "..\..\Src\HPCPlatform.h"\\r
+       "..\..\Src\LagendaPlatform.h"\\r
+       "..\..\Src\MainFrame.h"\\r
+       "..\..\Src\MemoDetailsView.h"\\r
+       "..\..\Src\MemoManager.h"\\r
+       "..\..\Src\MemoSelectView.h"\\r
+       "..\..\Src\Message.h"\\r
+       "..\..\Src\MsgRes\MsgDef.h"\\r
+       "..\..\Src\PasswordManager.h"\\r
+       "..\..\Src\PlatformLayer.h"\\r
+       "..\..\Src\PocketPCPlatform.h"\\r
+       "..\..\Src\Property.h"\\r
+       "..\..\Src\PsPCPlatform.h"\\r
+       "..\..\Src\Tombo.h"\\r
+       "..\..\Src\TomboLib\File.h"\\r
+       "..\..\Src\TomboLib\Logger.h"\\r
+       "..\..\Src\TomboLib\Uniconv.h"\\r
+       "..\..\Src\TomboLib\VarBuffer.h"\\r
+       "..\..\Src\Win32Platform.h"\\r
+       \r
+\r
+!ELSEIF  "$(CFG)" == "Tombo - Win32 (WCE SH4) Release"\r
+\r
+DEP_CPP_MAIN_=\\r
+       "..\..\Src\HPCPlatform.h"\\r
+       "..\..\Src\LagendaPlatform.h"\\r
+       "..\..\Src\MainFrame.h"\\r
+       "..\..\Src\MemoDetailsView.h"\\r
+       "..\..\Src\MemoManager.h"\\r
+       "..\..\Src\MemoSelectView.h"\\r
+       "..\..\Src\Message.h"\\r
+       "..\..\Src\MsgRes\MsgDef.h"\\r
+       "..\..\Src\PasswordManager.h"\\r
+       "..\..\Src\PlatformLayer.h"\\r
+       "..\..\Src\PocketPCPlatform.h"\\r
+       "..\..\Src\Property.h"\\r
+       "..\..\Src\PsPCPlatform.h"\\r
+       "..\..\Src\Tombo.h"\\r
+       "..\..\Src\TomboLib\File.h"\\r
+       "..\..\Src\TomboLib\Logger.h"\\r
+       "..\..\Src\TomboLib\Uniconv.h"\\r
+       "..\..\Src\TomboLib\VarBuffer.h"\\r
+       "..\..\Src\Win32Platform.h"\\r
+       \r
+\r
+!ELSEIF  "$(CFG)" == "Tombo - Win32 (WCE SH3) Release"\r
+\r
+DEP_CPP_MAIN_=\\r
+       "..\..\Src\HPCPlatform.h"\\r
+       "..\..\Src\LagendaPlatform.h"\\r
+       "..\..\Src\MainFrame.h"\\r
+       "..\..\Src\MemoDetailsView.h"\\r
+       "..\..\Src\MemoManager.h"\\r
+       "..\..\Src\MemoSelectView.h"\\r
+       "..\..\Src\Message.h"\\r
+       "..\..\Src\MsgRes\MsgDef.h"\\r
+       "..\..\Src\PasswordManager.h"\\r
+       "..\..\Src\PlatformLayer.h"\\r
+       "..\..\Src\PocketPCPlatform.h"\\r
+       "..\..\Src\Property.h"\\r
+       "..\..\Src\PsPCPlatform.h"\\r
+       "..\..\Src\Tombo.h"\\r
+       "..\..\Src\TomboLib\File.h"\\r
+       "..\..\Src\TomboLib\Logger.h"\\r
+       "..\..\Src\TomboLib\Uniconv.h"\\r
+       "..\..\Src\TomboLib\VarBuffer.h"\\r
+       "..\..\Src\Win32Platform.h"\\r
+       \r
+\r
+!ELSEIF  "$(CFG)" == "Tombo - Win32 (WCE ARM) Release"\r
+\r
+DEP_CPP_MAIN_=\\r
+       "..\..\Src\HPCPlatform.h"\\r
+       "..\..\Src\LagendaPlatform.h"\\r
+       "..\..\Src\MainFrame.h"\\r
+       "..\..\Src\MemoDetailsView.h"\\r
+       "..\..\Src\MemoManager.h"\\r
+       "..\..\Src\MemoSelectView.h"\\r
+       "..\..\Src\Message.h"\\r
+       "..\..\Src\MsgRes\MsgDef.h"\\r
+       "..\..\Src\PasswordManager.h"\\r
+       "..\..\Src\PlatformLayer.h"\\r
+       "..\..\Src\PocketPCPlatform.h"\\r
+       "..\..\Src\Property.h"\\r
+       "..\..\Src\PsPCPlatform.h"\\r
+       "..\..\Src\Tombo.h"\\r
+       "..\..\Src\TomboLib\File.h"\\r
+       "..\..\Src\TomboLib\Logger.h"\\r
+       "..\..\Src\TomboLib\Uniconv.h"\\r
+       "..\..\Src\TomboLib\VarBuffer.h"\\r
+       "..\..\Src\Win32Platform.h"\\r
+       \r
+\r
+!ELSEIF  "$(CFG)" == "Tombo - Win32 (WCE ARM) Sig3"\r
+\r
+DEP_CPP_MAIN_=\\r
+       "..\..\Src\HPCPlatform.h"\\r
+       "..\..\Src\LagendaPlatform.h"\\r
+       "..\..\Src\MainFrame.h"\\r
+       "..\..\Src\MemoDetailsView.h"\\r
+       "..\..\Src\MemoManager.h"\\r
+       "..\..\Src\MemoSelectView.h"\\r
+       "..\..\Src\Message.h"\\r
+       "..\..\Src\MsgRes\MsgDef.h"\\r
+       "..\..\Src\PasswordManager.h"\\r
+       "..\..\Src\PlatformLayer.h"\\r
+       "..\..\Src\PocketPCPlatform.h"\\r
+       "..\..\Src\Property.h"\\r
+       "..\..\Src\PsPCPlatform.h"\\r
+       "..\..\Src\Tombo.h"\\r
+       "..\..\Src\TomboLib\File.h"\\r
+       "..\..\Src\TomboLib\Logger.h"\\r
+       "..\..\Src\TomboLib\Uniconv.h"\\r
+       "..\..\Src\TomboLib\VarBuffer.h"\\r
+       "..\..\Src\Win32Platform.h"\\r
+       \r
+\r
+!ENDIF \r
+\r
+# End Source File\r
+# Begin Source File\r
+\r
+SOURCE=..\..\Src\MainFrame.cpp\r
+\r
+!IF  "$(CFG)" == "Tombo - Win32 (WCE MIPS) Release"\r
+\r
+DEP_CPP_MAINF=\\r
+       "..\..\Src\AboutDialog.h"\\r
+       "..\..\Src\BookMark.h"\\r
+       "..\..\Src\BookMarkDlg.h"\\r
+       "..\..\Src\DetailsViewDlg.h"\\r
+       "..\..\Src\FilterCtlDlg.h"\\r
+       "..\..\Src\GrepDialog.h"\\r
+       "..\..\Src\HPCPlatform.h"\\r
+       "..\..\Src\LagendaPlatform.h"\\r
+       "..\..\Src\MainFrame.h"\\r
+       "..\..\Src\MemoDetailsView.h"\\r
+       "..\..\Src\MemoManager.h"\\r
+       "..\..\Src\MemoSelectView.h"\\r
+       "..\..\Src\Message.h"\\r
+       "..\..\Src\MsgRes\MsgDef.h"\\r
+       "..\..\Src\PasswordManager.h"\\r
+       "..\..\Src\PlatformLayer.h"\\r
+       "..\..\Src\PocketPCPlatform.h"\\r
+       "..\..\Src\Property.h"\\r
+       "..\..\Src\PsPCPlatform.h"\\r
+       "..\..\Src\Repository.h"\\r
+       "..\..\Src\SearchDlg.h"\\r
+       "..\..\Src\SearchEngine.h"\\r
+       "..\..\Src\SearchTree.h"\\r
+       "..\..\Src\StatusBar.h"\\r
+       "..\..\Src\Tombo.h"\\r
+       "..\..\Src\TomboLib\DialogTemplate.h"\\r
+       "..\..\Src\TomboLib\File.h"\\r
+       "..\..\Src\TomboLib\Logger.h"\\r
+       "..\..\Src\TomboLib\SipControl.h"\\r
+       "..\..\Src\TomboLib\TString.h"\\r
+       "..\..\Src\TomboLib\Uniconv.h"\\r
+       "..\..\Src\TomboLib\VarBuffer.h"\\r
+       "..\..\Src\TomboURI.h"\\r
+       "..\..\Src\TreeViewItem.h"\\r
+       "..\..\Src\VFManager.h"\\r
+       "..\..\Src\Win32Platform.h"\\r
+       "..\..\Src\YAEdit\Region.h"\\r
+       "..\..\Src\YAEdit\YAEdit.h"\\r
+       "..\..\Src\YAEditor.h"\\r
+       \r
+\r
+!ELSEIF  "$(CFG)" == "Tombo - Win32 (WCE SH4) Release"\r
+\r
+DEP_CPP_MAINF=\\r
+       "..\..\Src\AboutDialog.h"\\r
+       "..\..\Src\BookMark.h"\\r
+       "..\..\Src\BookMarkDlg.h"\\r
+       "..\..\Src\DetailsViewDlg.h"\\r
+       "..\..\Src\FilterCtlDlg.h"\\r
+       "..\..\Src\GrepDialog.h"\\r
+       "..\..\Src\HPCPlatform.h"\\r
+       "..\..\Src\LagendaPlatform.h"\\r
+       "..\..\Src\MainFrame.h"\\r
+       "..\..\Src\MemoDetailsView.h"\\r
+       "..\..\Src\MemoManager.h"\\r
+       "..\..\Src\MemoSelectView.h"\\r
+       "..\..\Src\Message.h"\\r
+       "..\..\Src\MsgRes\MsgDef.h"\\r
+       "..\..\Src\PasswordManager.h"\\r
+       "..\..\Src\PlatformLayer.h"\\r
+       "..\..\Src\PocketPCPlatform.h"\\r
+       "..\..\Src\Property.h"\\r
+       "..\..\Src\PsPCPlatform.h"\\r
+       "..\..\Src\Repository.h"\\r
+       "..\..\Src\SearchDlg.h"\\r
+       "..\..\Src\SearchEngine.h"\\r
+       "..\..\Src\SearchTree.h"\\r
+       "..\..\Src\StatusBar.h"\\r
+       "..\..\Src\Tombo.h"\\r
+       "..\..\Src\TomboLib\DialogTemplate.h"\\r
+       "..\..\Src\TomboLib\File.h"\\r
+       "..\..\Src\TomboLib\Logger.h"\\r
+       "..\..\Src\TomboLib\SipControl.h"\\r
+       "..\..\Src\TomboLib\TString.h"\\r
+       "..\..\Src\TomboLib\Uniconv.h"\\r
+       "..\..\Src\TomboLib\VarBuffer.h"\\r
+       "..\..\Src\TomboURI.h"\\r
+       "..\..\Src\TreeViewItem.h"\\r
+       "..\..\Src\VFManager.h"\\r
+       "..\..\Src\Win32Platform.h"\\r
+       "..\..\Src\YAEdit\Region.h"\\r
+       "..\..\Src\YAEdit\YAEdit.h"\\r
+       "..\..\Src\YAEditor.h"\\r
+       \r
+\r
+!ELSEIF  "$(CFG)" == "Tombo - Win32 (WCE SH3) Release"\r
+\r
+DEP_CPP_MAINF=\\r
+       "..\..\Src\AboutDialog.h"\\r
+       "..\..\Src\BookMark.h"\\r
+       "..\..\Src\BookMarkDlg.h"\\r
+       "..\..\Src\DetailsViewDlg.h"\\r
+       "..\..\Src\FilterCtlDlg.h"\\r
+       "..\..\Src\GrepDialog.h"\\r
+       "..\..\Src\HPCPlatform.h"\\r
+       "..\..\Src\LagendaPlatform.h"\\r
+       "..\..\Src\MainFrame.h"\\r
+       "..\..\Src\MemoDetailsView.h"\\r
+       "..\..\Src\MemoManager.h"\\r
+       "..\..\Src\MemoSelectView.h"\\r
+       "..\..\Src\Message.h"\\r
+       "..\..\Src\MsgRes\MsgDef.h"\\r
+       "..\..\Src\PasswordManager.h"\\r
+       "..\..\Src\PlatformLayer.h"\\r
+       "..\..\Src\PocketPCPlatform.h"\\r
+       "..\..\Src\Property.h"\\r
+       "..\..\Src\PsPCPlatform.h"\\r
+       "..\..\Src\Repository.h"\\r
+       "..\..\Src\SearchDlg.h"\\r
+       "..\..\Src\SearchEngine.h"\\r
+       "..\..\Src\SearchTree.h"\\r
+       "..\..\Src\StatusBar.h"\\r
+       "..\..\Src\Tombo.h"\\r
+       "..\..\Src\TomboLib\DialogTemplate.h"\\r
+       "..\..\Src\TomboLib\File.h"\\r
+       "..\..\Src\TomboLib\Logger.h"\\r
+       "..\..\Src\TomboLib\SipControl.h"\\r
+       "..\..\Src\TomboLib\TString.h"\\r
+       "..\..\Src\TomboLib\Uniconv.h"\\r
+       "..\..\Src\TomboLib\VarBuffer.h"\\r
+       "..\..\Src\TomboURI.h"\\r
+       "..\..\Src\TreeViewItem.h"\\r
+       "..\..\Src\VFManager.h"\\r
+       "..\..\Src\Win32Platform.h"\\r
+       "..\..\Src\YAEdit\Region.h"\\r
+       "..\..\Src\YAEdit\YAEdit.h"\\r
+       "..\..\Src\YAEditor.h"\\r
+       \r
+\r
+!ELSEIF  "$(CFG)" == "Tombo - Win32 (WCE ARM) Release"\r
+\r
+DEP_CPP_MAINF=\\r
+       "..\..\Src\AboutDialog.h"\\r
+       "..\..\Src\BookMark.h"\\r
+       "..\..\Src\BookMarkDlg.h"\\r
+       "..\..\Src\DetailsViewDlg.h"\\r
+       "..\..\Src\FilterCtlDlg.h"\\r
+       "..\..\Src\GrepDialog.h"\\r
+       "..\..\Src\HPCPlatform.h"\\r
+       "..\..\Src\LagendaPlatform.h"\\r
+       "..\..\Src\MainFrame.h"\\r
+       "..\..\Src\MemoDetailsView.h"\\r
+       "..\..\Src\MemoManager.h"\\r
+       "..\..\Src\MemoSelectView.h"\\r
+       "..\..\Src\Message.h"\\r
+       "..\..\Src\MsgRes\MsgDef.h"\\r
+       "..\..\Src\PasswordManager.h"\\r
+       "..\..\Src\PlatformLayer.h"\\r
+       "..\..\Src\PocketPCPlatform.h"\\r
+       "..\..\Src\Property.h"\\r
+       "..\..\Src\PsPCPlatform.h"\\r
+       "..\..\Src\Repository.h"\\r
+       "..\..\Src\SearchDlg.h"\\r
+       "..\..\Src\SearchEngine.h"\\r
+       "..\..\Src\SearchTree.h"\\r
+       "..\..\Src\StatusBar.h"\\r
+       "..\..\Src\Tombo.h"\\r
+       "..\..\Src\TomboLib\DialogTemplate.h"\\r
+       "..\..\Src\TomboLib\File.h"\\r
+       "..\..\Src\TomboLib\Logger.h"\\r
+       "..\..\Src\TomboLib\SipControl.h"\\r
+       "..\..\Src\TomboLib\TString.h"\\r
+       "..\..\Src\TomboLib\Uniconv.h"\\r
+       "..\..\Src\TomboLib\VarBuffer.h"\\r
+       "..\..\Src\TomboURI.h"\\r
+       "..\..\Src\TreeViewItem.h"\\r
+       "..\..\Src\VFManager.h"\\r
+       "..\..\Src\Win32Platform.h"\\r
+       "..\..\Src\YAEdit\Region.h"\\r
+       "..\..\Src\YAEdit\YAEdit.h"\\r
+       "..\..\Src\YAEditor.h"\\r
+       \r
+\r
+!ELSEIF  "$(CFG)" == "Tombo - Win32 (WCE ARM) Sig3"\r
+\r
+DEP_CPP_MAINF=\\r
+       "..\..\Src\AboutDialog.h"\\r
+       "..\..\Src\BookMark.h"\\r
+       "..\..\Src\BookMarkDlg.h"\\r
+       "..\..\Src\DetailsViewDlg.h"\\r
+       "..\..\Src\FilterCtlDlg.h"\\r
+       "..\..\Src\GrepDialog.h"\\r
+       "..\..\Src\HPCPlatform.h"\\r
+       "..\..\Src\LagendaPlatform.h"\\r
+       "..\..\Src\MainFrame.h"\\r
+       "..\..\Src\MemoDetailsView.h"\\r
+       "..\..\Src\MemoManager.h"\\r
+       "..\..\Src\MemoSelectView.h"\\r
+       "..\..\Src\Message.h"\\r
+       "..\..\Src\MsgRes\MsgDef.h"\\r
+       "..\..\Src\PasswordManager.h"\\r
+       "..\..\Src\PlatformLayer.h"\\r
+       "..\..\Src\PocketPCPlatform.h"\\r
+       "..\..\Src\Property.h"\\r
+       "..\..\Src\PsPCPlatform.h"\\r
+       "..\..\Src\Repository.h"\\r
+       "..\..\Src\SearchDlg.h"\\r
+       "..\..\Src\SearchEngine.h"\\r
+       "..\..\Src\SearchTree.h"\\r
+       "..\..\Src\StatusBar.h"\\r
+       "..\..\Src\Tombo.h"\\r
+       "..\..\Src\TomboLib\DialogTemplate.h"\\r
+       "..\..\Src\TomboLib\File.h"\\r
+       "..\..\Src\TomboLib\Logger.h"\\r
+       "..\..\Src\TomboLib\SipControl.h"\\r
+       "..\..\Src\TomboLib\TString.h"\\r
+       "..\..\Src\TomboLib\Uniconv.h"\\r
+       "..\..\Src\TomboLib\VarBuffer.h"\\r
+       "..\..\Src\TomboURI.h"\\r
+       "..\..\Src\TreeViewItem.h"\\r
+       "..\..\Src\VFManager.h"\\r
+       "..\..\Src\Win32Platform.h"\\r
+       "..\..\Src\YAEdit\Region.h"\\r
+       "..\..\Src\YAEdit\YAEdit.h"\\r
+       "..\..\Src\YAEditor.h"\\r
+       \r
+\r
+!ENDIF \r
+\r
+# End Source File\r
+# Begin Source File\r
+\r
+SOURCE=..\..\Src\gnupg\md5.c\r
+\r
+!IF  "$(CFG)" == "Tombo - Win32 (WCE MIPS) Release"\r
+\r
+DEP_CPP_MD5_C=\\r
+       "..\..\Src\gnupg\bithelp.h"\\r
+       "..\..\Src\regex\config.h"\\r
+       "..\..\Src\regex\ctypeutil.h"\\r
+       \r
+NODEP_CPP_MD5_C=\\r
+       "..\..\Src\gnupg\dynload.h"\\r
+       \r
+\r
+!ELSEIF  "$(CFG)" == "Tombo - Win32 (WCE SH4) Release"\r
+\r
+DEP_CPP_MD5_C=\\r
+       "..\..\Src\gnupg\bithelp.h"\\r
+       "..\..\Src\regex\config.h"\\r
+       "..\..\Src\regex\ctypeutil.h"\\r
+       \r
+NODEP_CPP_MD5_C=\\r
+       "..\..\Src\gnupg\dynload.h"\\r
+       \r
+\r
+!ELSEIF  "$(CFG)" == "Tombo - Win32 (WCE SH3) Release"\r
+\r
+DEP_CPP_MD5_C=\\r
+       "..\..\Src\gnupg\bithelp.h"\\r
+       "..\..\Src\regex\config.h"\\r
+       "..\..\Src\regex\ctypeutil.h"\\r
+       \r
+NODEP_CPP_MD5_C=\\r
+       "..\..\Src\gnupg\dynload.h"\\r
+       \r
+\r
+!ELSEIF  "$(CFG)" == "Tombo - Win32 (WCE ARM) Release"\r
+\r
+DEP_CPP_MD5_C=\\r
+       "..\..\Src\gnupg\bithelp.h"\\r
+       "..\..\Src\regex\config.h"\\r
+       "..\..\Src\regex\ctypeutil.h"\\r
+       \r
+NODEP_CPP_MD5_C=\\r
+       "..\..\Src\gnupg\dynload.h"\\r
+       \r
+\r
+!ELSEIF  "$(CFG)" == "Tombo - Win32 (WCE ARM) Sig3"\r
+\r
+DEP_CPP_MD5_C=\\r
+       "..\..\Src\gnupg\bithelp.h"\\r
+       "..\..\Src\regex\config.h"\\r
+       "..\..\Src\regex\ctypeutil.h"\\r
+       \r
+NODEP_CPP_MD5_C=\\r
+       "..\..\Src\gnupg\dynload.h"\\r
+       \r
+\r
+!ENDIF \r
+\r
+# End Source File\r
+# Begin Source File\r
+\r
+SOURCE=..\..\Src\YAEdit\MemManager.cpp\r
+\r
+!IF  "$(CFG)" == "Tombo - Win32 (WCE MIPS) Release"\r
+\r
+DEP_CPP_MEMMA=\\r
+       "..\..\Src\YAEdit\MemManager.h"\\r
+       \r
+\r
+!ELSEIF  "$(CFG)" == "Tombo - Win32 (WCE SH4) Release"\r
+\r
+DEP_CPP_MEMMA=\\r
+       "..\..\Src\YAEdit\MemManager.h"\\r
+       \r
+\r
+!ELSEIF  "$(CFG)" == "Tombo - Win32 (WCE SH3) Release"\r
+\r
+DEP_CPP_MEMMA=\\r
+       "..\..\Src\YAEdit\MemManager.h"\\r
+       \r
+\r
+!ELSEIF  "$(CFG)" == "Tombo - Win32 (WCE ARM) Release"\r
+\r
+DEP_CPP_MEMMA=\\r
+       "..\..\Src\YAEdit\MemManager.h"\\r
+       \r
+\r
+!ELSEIF  "$(CFG)" == "Tombo - Win32 (WCE ARM) Sig3"\r
+\r
+DEP_CPP_MEMMA=\\r
+       "..\..\Src\YAEdit\MemManager.h"\\r
+       \r
+\r
+!ENDIF \r
+\r
+# End Source File\r
+# Begin Source File\r
+\r
+SOURCE=..\..\Src\MemoDetailsView.cpp\r
+\r
+!IF  "$(CFG)" == "Tombo - Win32 (WCE MIPS) Release"\r
+\r
+DEP_CPP_MEMOD=\\r
+       "..\..\Src\HPCPlatform.h"\\r
+       "..\..\Src\LagendaPlatform.h"\\r
+       "..\..\Src\MainFrame.h"\\r
+       "..\..\Src\MemoDetailsView.h"\\r
+       "..\..\Src\MemoManager.h"\\r
+       "..\..\Src\MemoSelectView.h"\\r
+       "..\..\Src\Message.h"\\r
+       "..\..\Src\MsgRes\MsgDef.h"\\r
+       "..\..\Src\PasswordManager.h"\\r
+       "..\..\Src\PlatformLayer.h"\\r
+       "..\..\Src\PocketPCPlatform.h"\\r
+       "..\..\Src\Property.h"\\r
+       "..\..\Src\PsPCPlatform.h"\\r
+       "..\..\Src\Repository.h"\\r
+       "..\..\Src\SearchEngine.h"\\r
+       "..\..\Src\Tombo.h"\\r
+       "..\..\Src\TomboLib\AutoPtr.h"\\r
+       "..\..\Src\TomboLib\File.h"\\r
+       "..\..\Src\TomboLib\Logger.h"\\r
+       "..\..\Src\TomboLib\TString.h"\\r
+       "..\..\Src\TomboLib\Uniconv.h"\\r
+       "..\..\Src\TomboLib\VarBuffer.h"\\r
+       "..\..\Src\TomboURI.h"\\r
+       "..\..\Src\Win32Platform.h"\\r
+       \r
+\r
+!ELSEIF  "$(CFG)" == "Tombo - Win32 (WCE SH4) Release"\r
+\r
+DEP_CPP_MEMOD=\\r
+       "..\..\Src\HPCPlatform.h"\\r
+       "..\..\Src\LagendaPlatform.h"\\r
+       "..\..\Src\MainFrame.h"\\r
+       "..\..\Src\MemoDetailsView.h"\\r
+       "..\..\Src\MemoManager.h"\\r
+       "..\..\Src\MemoSelectView.h"\\r
+       "..\..\Src\Message.h"\\r
+       "..\..\Src\MsgRes\MsgDef.h"\\r
+       "..\..\Src\PasswordManager.h"\\r
+       "..\..\Src\PlatformLayer.h"\\r
+       "..\..\Src\PocketPCPlatform.h"\\r
+       "..\..\Src\Property.h"\\r
+       "..\..\Src\PsPCPlatform.h"\\r
+       "..\..\Src\Repository.h"\\r
+       "..\..\Src\SearchEngine.h"\\r
+       "..\..\Src\Tombo.h"\\r
+       "..\..\Src\TomboLib\AutoPtr.h"\\r
+       "..\..\Src\TomboLib\File.h"\\r
+       "..\..\Src\TomboLib\Logger.h"\\r
+       "..\..\Src\TomboLib\TString.h"\\r
+       "..\..\Src\TomboLib\Uniconv.h"\\r
+       "..\..\Src\TomboLib\VarBuffer.h"\\r
+       "..\..\Src\TomboURI.h"\\r
+       "..\..\Src\Win32Platform.h"\\r
+       \r
+\r
+!ELSEIF  "$(CFG)" == "Tombo - Win32 (WCE SH3) Release"\r
+\r
+DEP_CPP_MEMOD=\\r
+       "..\..\Src\HPCPlatform.h"\\r
+       "..\..\Src\LagendaPlatform.h"\\r
+       "..\..\Src\MainFrame.h"\\r
+       "..\..\Src\MemoDetailsView.h"\\r
+       "..\..\Src\MemoManager.h"\\r
+       "..\..\Src\MemoSelectView.h"\\r
+       "..\..\Src\Message.h"\\r
+       "..\..\Src\MsgRes\MsgDef.h"\\r
+       "..\..\Src\PasswordManager.h"\\r
+       "..\..\Src\PlatformLayer.h"\\r
+       "..\..\Src\PocketPCPlatform.h"\\r
+       "..\..\Src\Property.h"\\r
+       "..\..\Src\PsPCPlatform.h"\\r
+       "..\..\Src\Repository.h"\\r
+       "..\..\Src\SearchEngine.h"\\r
+       "..\..\Src\Tombo.h"\\r
+       "..\..\Src\TomboLib\AutoPtr.h"\\r
+       "..\..\Src\TomboLib\File.h"\\r
+       "..\..\Src\TomboLib\Logger.h"\\r
+       "..\..\Src\TomboLib\TString.h"\\r
+       "..\..\Src\TomboLib\Uniconv.h"\\r
+       "..\..\Src\TomboLib\VarBuffer.h"\\r
+       "..\..\Src\TomboURI.h"\\r
+       "..\..\Src\Win32Platform.h"\\r
+       \r
+\r
+!ELSEIF  "$(CFG)" == "Tombo - Win32 (WCE ARM) Release"\r
+\r
+DEP_CPP_MEMOD=\\r
+       "..\..\Src\HPCPlatform.h"\\r
+       "..\..\Src\LagendaPlatform.h"\\r
+       "..\..\Src\MainFrame.h"\\r
+       "..\..\Src\MemoDetailsView.h"\\r
+       "..\..\Src\MemoManager.h"\\r
+       "..\..\Src\MemoSelectView.h"\\r
+       "..\..\Src\Message.h"\\r
+       "..\..\Src\MsgRes\MsgDef.h"\\r
+       "..\..\Src\PasswordManager.h"\\r
+       "..\..\Src\PlatformLayer.h"\\r
+       "..\..\Src\PocketPCPlatform.h"\\r
+       "..\..\Src\Property.h"\\r
+       "..\..\Src\PsPCPlatform.h"\\r
+       "..\..\Src\Repository.h"\\r
+       "..\..\Src\SearchEngine.h"\\r
+       "..\..\Src\Tombo.h"\\r
+       "..\..\Src\TomboLib\AutoPtr.h"\\r
+       "..\..\Src\TomboLib\File.h"\\r
+       "..\..\Src\TomboLib\Logger.h"\\r
+       "..\..\Src\TomboLib\TString.h"\\r
+       "..\..\Src\TomboLib\Uniconv.h"\\r
+       "..\..\Src\TomboLib\VarBuffer.h"\\r
+       "..\..\Src\TomboURI.h"\\r
+       "..\..\Src\Win32Platform.h"\\r
+       \r
+\r
+!ELSEIF  "$(CFG)" == "Tombo - Win32 (WCE ARM) Sig3"\r
+\r
+DEP_CPP_MEMOD=\\r
+       "..\..\Src\HPCPlatform.h"\\r
+       "..\..\Src\LagendaPlatform.h"\\r
+       "..\..\Src\MainFrame.h"\\r
+       "..\..\Src\MemoDetailsView.h"\\r
+       "..\..\Src\MemoManager.h"\\r
+       "..\..\Src\MemoSelectView.h"\\r
+       "..\..\Src\Message.h"\\r
+       "..\..\Src\MsgRes\MsgDef.h"\\r
+       "..\..\Src\PasswordManager.h"\\r
+       "..\..\Src\PlatformLayer.h"\\r
+       "..\..\Src\PocketPCPlatform.h"\\r
+       "..\..\Src\Property.h"\\r
+       "..\..\Src\PsPCPlatform.h"\\r
+       "..\..\Src\Repository.h"\\r
+       "..\..\Src\SearchEngine.h"\\r
+       "..\..\Src\Tombo.h"\\r
+       "..\..\Src\TomboLib\AutoPtr.h"\\r
+       "..\..\Src\TomboLib\File.h"\\r
+       "..\..\Src\TomboLib\Logger.h"\\r
+       "..\..\Src\TomboLib\TString.h"\\r
+       "..\..\Src\TomboLib\Uniconv.h"\\r
+       "..\..\Src\TomboLib\VarBuffer.h"\\r
+       "..\..\Src\TomboURI.h"\\r
+       "..\..\Src\Win32Platform.h"\\r
+       \r
+\r
+!ENDIF \r
+\r
+# End Source File\r
+# Begin Source File\r
+\r
+SOURCE=..\..\Src\MemoFolder.cpp\r
+\r
+!IF  "$(CFG)" == "Tombo - Win32 (WCE MIPS) Release"\r
+\r
+DEP_CPP_MEMOF=\\r
+       "..\..\Src\MemoFolder.h"\\r
+       "..\..\Src\MemoNote.h"\\r
+       "..\..\Src\Message.h"\\r
+       "..\..\Src\MsgRes\MsgDef.h"\\r
+       "..\..\Src\PasswordManager.h"\\r
+       "..\..\Src\Repository.h"\\r
+       "..\..\Src\Tombo.h"\\r
+       "..\..\Src\TomboLib\DirectoryScanner.h"\\r
+       "..\..\Src\TomboLib\File.h"\\r
+       "..\..\Src\TomboLib\Logger.h"\\r
+       "..\..\Src\TomboLib\TString.h"\\r
+       "..\..\Src\TomboLib\Uniconv.h"\\r
+       "..\..\Src\TomboURI.h"\\r
+       \r
+\r
+!ELSEIF  "$(CFG)" == "Tombo - Win32 (WCE SH4) Release"\r
+\r
+DEP_CPP_MEMOF=\\r
+       "..\..\Src\MemoFolder.h"\\r
+       "..\..\Src\MemoNote.h"\\r
+       "..\..\Src\Message.h"\\r
+       "..\..\Src\MsgRes\MsgDef.h"\\r
+       "..\..\Src\PasswordManager.h"\\r
+       "..\..\Src\Repository.h"\\r
+       "..\..\Src\Tombo.h"\\r
+       "..\..\Src\TomboLib\DirectoryScanner.h"\\r
+       "..\..\Src\TomboLib\File.h"\\r
+       "..\..\Src\TomboLib\Logger.h"\\r
+       "..\..\Src\TomboLib\TString.h"\\r
+       "..\..\Src\TomboLib\Uniconv.h"\\r
+       "..\..\Src\TomboURI.h"\\r
+       \r
+\r
+!ELSEIF  "$(CFG)" == "Tombo - Win32 (WCE SH3) Release"\r
+\r
+DEP_CPP_MEMOF=\\r
+       "..\..\Src\MemoFolder.h"\\r
+       "..\..\Src\MemoNote.h"\\r
+       "..\..\Src\Message.h"\\r
+       "..\..\Src\MsgRes\MsgDef.h"\\r
+       "..\..\Src\PasswordManager.h"\\r
+       "..\..\Src\Repository.h"\\r
+       "..\..\Src\Tombo.h"\\r
+       "..\..\Src\TomboLib\DirectoryScanner.h"\\r
+       "..\..\Src\TomboLib\File.h"\\r
+       "..\..\Src\TomboLib\Logger.h"\\r
+       "..\..\Src\TomboLib\TString.h"\\r
+       "..\..\Src\TomboLib\Uniconv.h"\\r
+       "..\..\Src\TomboURI.h"\\r
+       \r
+\r
+!ELSEIF  "$(CFG)" == "Tombo - Win32 (WCE ARM) Release"\r
+\r
+DEP_CPP_MEMOF=\\r
+       "..\..\Src\MemoFolder.h"\\r
+       "..\..\Src\MemoNote.h"\\r
+       "..\..\Src\Message.h"\\r
+       "..\..\Src\MsgRes\MsgDef.h"\\r
+       "..\..\Src\PasswordManager.h"\\r
+       "..\..\Src\Repository.h"\\r
+       "..\..\Src\Tombo.h"\\r
+       "..\..\Src\TomboLib\DirectoryScanner.h"\\r
+       "..\..\Src\TomboLib\File.h"\\r
+       "..\..\Src\TomboLib\Logger.h"\\r
+       "..\..\Src\TomboLib\TString.h"\\r
+       "..\..\Src\TomboLib\Uniconv.h"\\r
+       "..\..\Src\TomboURI.h"\\r
+       \r
+\r
+!ELSEIF  "$(CFG)" == "Tombo - Win32 (WCE ARM) Sig3"\r
+\r
+DEP_CPP_MEMOF=\\r
+       "..\..\Src\MemoFolder.h"\\r
+       "..\..\Src\MemoNote.h"\\r
+       "..\..\Src\Message.h"\\r
+       "..\..\Src\MsgRes\MsgDef.h"\\r
+       "..\..\Src\PasswordManager.h"\\r
+       "..\..\Src\Repository.h"\\r
+       "..\..\Src\Tombo.h"\\r
+       "..\..\Src\TomboLib\DirectoryScanner.h"\\r
+       "..\..\Src\TomboLib\File.h"\\r
+       "..\..\Src\TomboLib\Logger.h"\\r
+       "..\..\Src\TomboLib\TString.h"\\r
+       "..\..\Src\TomboLib\Uniconv.h"\\r
+       "..\..\Src\TomboURI.h"\\r
+       \r
+\r
+!ENDIF \r
+\r
+# End Source File\r
+# Begin Source File\r
+\r
+SOURCE=..\..\Src\MemoInfo.cpp\r
+\r
+!IF  "$(CFG)" == "Tombo - Win32 (WCE MIPS) Release"\r
+\r
+DEP_CPP_MEMOI=\\r
+       "..\..\Src\MemoInfo.h"\\r
+       "..\..\Src\Tombo.h"\\r
+       "..\..\Src\TomboLib\File.h"\\r
+       "..\..\Src\TomboLib\Logger.h"\\r
+       "..\..\Src\TomboLib\TString.h"\\r
+       \r
+\r
+!ELSEIF  "$(CFG)" == "Tombo - Win32 (WCE SH4) Release"\r
+\r
+DEP_CPP_MEMOI=\\r
+       "..\..\Src\MemoInfo.h"\\r
+       "..\..\Src\Tombo.h"\\r
+       "..\..\Src\TomboLib\File.h"\\r
+       "..\..\Src\TomboLib\Logger.h"\\r
+       "..\..\Src\TomboLib\TString.h"\\r
+       \r
+\r
+!ELSEIF  "$(CFG)" == "Tombo - Win32 (WCE SH3) Release"\r
+\r
+DEP_CPP_MEMOI=\\r
+       "..\..\Src\MemoInfo.h"\\r
+       "..\..\Src\Tombo.h"\\r
+       "..\..\Src\TomboLib\File.h"\\r
+       "..\..\Src\TomboLib\Logger.h"\\r
+       "..\..\Src\TomboLib\TString.h"\\r
+       \r
+\r
+!ELSEIF  "$(CFG)" == "Tombo - Win32 (WCE ARM) Release"\r
+\r
+DEP_CPP_MEMOI=\\r
+       "..\..\Src\MemoInfo.h"\\r
+       "..\..\Src\Tombo.h"\\r
+       "..\..\Src\TomboLib\File.h"\\r
+       "..\..\Src\TomboLib\Logger.h"\\r
+       "..\..\Src\TomboLib\TString.h"\\r
+       \r
+\r
+!ELSEIF  "$(CFG)" == "Tombo - Win32 (WCE ARM) Sig3"\r
+\r
+DEP_CPP_MEMOI=\\r
+       "..\..\Src\MemoInfo.h"\\r
+       "..\..\Src\Tombo.h"\\r
+       "..\..\Src\TomboLib\File.h"\\r
+       "..\..\Src\TomboLib\Logger.h"\\r
+       "..\..\Src\TomboLib\TString.h"\\r
+       \r
+\r
+!ENDIF \r
+\r
+# End Source File\r
+# Begin Source File\r
+\r
+SOURCE=..\..\Src\MemoManager.cpp\r
+\r
+!IF  "$(CFG)" == "Tombo - Win32 (WCE MIPS) Release"\r
+\r
+DEP_CPP_MEMOM=\\r
+       "..\..\Src\HPCPlatform.h"\\r
+       "..\..\Src\LagendaPlatform.h"\\r
+       "..\..\Src\MainFrame.h"\\r
+       "..\..\Src\MemoDetailsView.h"\\r
+       "..\..\Src\MemoManager.h"\\r
+       "..\..\Src\MemoSelectView.h"\\r
+       "..\..\Src\Message.h"\\r
+       "..\..\Src\MsgRes\MsgDef.h"\\r
+       "..\..\Src\PasswordManager.h"\\r
+       "..\..\Src\PlatformLayer.h"\\r
+       "..\..\Src\PocketPCPlatform.h"\\r
+       "..\..\Src\Property.h"\\r
+       "..\..\Src\PsPCPlatform.h"\\r
+       "..\..\Src\Repository.h"\\r
+       "..\..\Src\SearchEngine.h"\\r
+       "..\..\Src\Tombo.h"\\r
+       "..\..\Src\TomboLib\AutoPtr.h"\\r
+       "..\..\Src\TomboLib\File.h"\\r
+       "..\..\Src\TomboLib\Logger.h"\\r
+       "..\..\Src\TomboLib\TString.h"\\r
+       "..\..\Src\TomboLib\Uniconv.h"\\r
+       "..\..\Src\TomboLib\VarBuffer.h"\\r
+       "..\..\Src\TomboURI.h"\\r
+       "..\..\Src\TreeViewItem.h"\\r
+       "..\..\Src\Win32Platform.h"\\r
+       \r
+\r
+!ELSEIF  "$(CFG)" == "Tombo - Win32 (WCE SH4) Release"\r
+\r
+DEP_CPP_MEMOM=\\r
+       "..\..\Src\HPCPlatform.h"\\r
+       "..\..\Src\LagendaPlatform.h"\\r
+       "..\..\Src\MainFrame.h"\\r
+       "..\..\Src\MemoDetailsView.h"\\r
+       "..\..\Src\MemoManager.h"\\r
+       "..\..\Src\MemoSelectView.h"\\r
+       "..\..\Src\Message.h"\\r
+       "..\..\Src\MsgRes\MsgDef.h"\\r
+       "..\..\Src\PasswordManager.h"\\r
+       "..\..\Src\PlatformLayer.h"\\r
+       "..\..\Src\PocketPCPlatform.h"\\r
+       "..\..\Src\Property.h"\\r
+       "..\..\Src\PsPCPlatform.h"\\r
+       "..\..\Src\Repository.h"\\r
+       "..\..\Src\SearchEngine.h"\\r
+       "..\..\Src\Tombo.h"\\r
+       "..\..\Src\TomboLib\File.h"\\r
+       "..\..\Src\TomboLib\Logger.h"\\r
+       "..\..\Src\TomboLib\TString.h"\\r
+       "..\..\Src\TomboLib\Uniconv.h"\\r
+       "..\..\Src\TomboLib\VarBuffer.h"\\r
+       "..\..\Src\TomboURI.h"\\r
+       "..\..\Src\TreeViewItem.h"\\r
+       "..\..\Src\Win32Platform.h"\\r
+       \r
+\r
+!ELSEIF  "$(CFG)" == "Tombo - Win32 (WCE SH3) Release"\r
+\r
+DEP_CPP_MEMOM=\\r
+       "..\..\Src\HPCPlatform.h"\\r
+       "..\..\Src\LagendaPlatform.h"\\r
+       "..\..\Src\MainFrame.h"\\r
+       "..\..\Src\MemoDetailsView.h"\\r
+       "..\..\Src\MemoManager.h"\\r
+       "..\..\Src\MemoSelectView.h"\\r
+       "..\..\Src\Message.h"\\r
+       "..\..\Src\MsgRes\MsgDef.h"\\r
+       "..\..\Src\PasswordManager.h"\\r
+       "..\..\Src\PlatformLayer.h"\\r
+       "..\..\Src\PocketPCPlatform.h"\\r
+       "..\..\Src\Property.h"\\r
+       "..\..\Src\PsPCPlatform.h"\\r
+       "..\..\Src\Repository.h"\\r
+       "..\..\Src\SearchEngine.h"\\r
+       "..\..\Src\Tombo.h"\\r
+       "..\..\Src\TomboLib\File.h"\\r
+       "..\..\Src\TomboLib\Logger.h"\\r
+       "..\..\Src\TomboLib\TString.h"\\r
+       "..\..\Src\TomboLib\Uniconv.h"\\r
+       "..\..\Src\TomboLib\VarBuffer.h"\\r
+       "..\..\Src\TomboURI.h"\\r
+       "..\..\Src\TreeViewItem.h"\\r
+       "..\..\Src\Win32Platform.h"\\r
+       \r
+\r
+!ELSEIF  "$(CFG)" == "Tombo - Win32 (WCE ARM) Release"\r
+\r
+DEP_CPP_MEMOM=\\r
+       "..\..\Src\HPCPlatform.h"\\r
+       "..\..\Src\LagendaPlatform.h"\\r
+       "..\..\Src\MainFrame.h"\\r
+       "..\..\Src\MemoDetailsView.h"\\r
+       "..\..\Src\MemoManager.h"\\r
+       "..\..\Src\MemoSelectView.h"\\r
+       "..\..\Src\Message.h"\\r
+       "..\..\Src\MsgRes\MsgDef.h"\\r
+       "..\..\Src\PasswordManager.h"\\r
+       "..\..\Src\PlatformLayer.h"\\r
+       "..\..\Src\PocketPCPlatform.h"\\r
+       "..\..\Src\Property.h"\\r
+       "..\..\Src\PsPCPlatform.h"\\r
+       "..\..\Src\Repository.h"\\r
+       "..\..\Src\SearchEngine.h"\\r
+       "..\..\Src\Tombo.h"\\r
+       "..\..\Src\TomboLib\File.h"\\r
+       "..\..\Src\TomboLib\Logger.h"\\r
+       "..\..\Src\TomboLib\TString.h"\\r
+       "..\..\Src\TomboLib\Uniconv.h"\\r
+       "..\..\Src\TomboLib\VarBuffer.h"\\r
+       "..\..\Src\TomboURI.h"\\r
+       "..\..\Src\TreeViewItem.h"\\r
+       "..\..\Src\Win32Platform.h"\\r
+       \r
+\r
+!ELSEIF  "$(CFG)" == "Tombo - Win32 (WCE ARM) Sig3"\r
+\r
+DEP_CPP_MEMOM=\\r
+       "..\..\Src\HPCPlatform.h"\\r
+       "..\..\Src\LagendaPlatform.h"\\r
+       "..\..\Src\MainFrame.h"\\r
+       "..\..\Src\MemoDetailsView.h"\\r
+       "..\..\Src\MemoManager.h"\\r
+       "..\..\Src\MemoSelectView.h"\\r
+       "..\..\Src\Message.h"\\r
+       "..\..\Src\MsgRes\MsgDef.h"\\r
+       "..\..\Src\PasswordManager.h"\\r
+       "..\..\Src\PlatformLayer.h"\\r
+       "..\..\Src\PocketPCPlatform.h"\\r
+       "..\..\Src\Property.h"\\r
+       "..\..\Src\PsPCPlatform.h"\\r
+       "..\..\Src\Repository.h"\\r
+       "..\..\Src\SearchEngine.h"\\r
+       "..\..\Src\Tombo.h"\\r
+       "..\..\Src\TomboLib\File.h"\\r
+       "..\..\Src\TomboLib\Logger.h"\\r
+       "..\..\Src\TomboLib\TString.h"\\r
+       "..\..\Src\TomboLib\Uniconv.h"\\r
+       "..\..\Src\TomboLib\VarBuffer.h"\\r
+       "..\..\Src\TomboURI.h"\\r
+       "..\..\Src\TreeViewItem.h"\\r
+       "..\..\Src\Win32Platform.h"\\r
+       \r
+\r
+!ENDIF \r
+\r
+# End Source File\r
+# Begin Source File\r
+\r
+SOURCE=..\..\Src\MemoNote.cpp\r
+\r
+!IF  "$(CFG)" == "Tombo - Win32 (WCE MIPS) Release"\r
+\r
+DEP_CPP_MEMON=\\r
+       "..\..\Src\Crypt.h"\\r
+       "..\..\Src\CryptManager.h"\\r
+       "..\..\Src\MemoInfo.h"\\r
+       "..\..\Src\MemoManager.h"\\r
+       "..\..\Src\MemoNote.h"\\r
+       "..\..\Src\Message.h"\\r
+       "..\..\Src\MsgRes\MsgDef.h"\\r
+       "..\..\Src\PasswordManager.h"\\r
+       "..\..\Src\Property.h"\\r
+       "..\..\Src\Repository.h"\\r
+       "..\..\Src\Tombo.h"\\r
+       "..\..\Src\TomboLib\AutoPtr.h"\\r
+       "..\..\Src\TomboLib\File.h"\\r
+       "..\..\Src\TomboLib\Logger.h"\\r
+       "..\..\Src\TomboLib\TString.h"\\r
+       "..\..\Src\TomboLib\Uniconv.h"\\r
+       "..\..\Src\TomboURI.h"\\r
+       \r
+\r
+!ELSEIF  "$(CFG)" == "Tombo - Win32 (WCE SH4) Release"\r
+\r
+DEP_CPP_MEMON=\\r
+       "..\..\Src\Crypt.h"\\r
+       "..\..\Src\CryptManager.h"\\r
+       "..\..\Src\MemoInfo.h"\\r
+       "..\..\Src\MemoManager.h"\\r
+       "..\..\Src\MemoNote.h"\\r
+       "..\..\Src\Message.h"\\r
+       "..\..\Src\MsgRes\MsgDef.h"\\r
+       "..\..\Src\PasswordManager.h"\\r
+       "..\..\Src\Property.h"\\r
+       "..\..\Src\Repository.h"\\r
+       "..\..\Src\Tombo.h"\\r
+       "..\..\Src\TomboLib\File.h"\\r
+       "..\..\Src\TomboLib\Logger.h"\\r
+       "..\..\Src\TomboLib\TString.h"\\r
+       "..\..\Src\TomboLib\Uniconv.h"\\r
+       "..\..\Src\TomboURI.h"\\r
+       \r
+\r
+!ELSEIF  "$(CFG)" == "Tombo - Win32 (WCE SH3) Release"\r
+\r
+DEP_CPP_MEMON=\\r
+       "..\..\Src\Crypt.h"\\r
+       "..\..\Src\CryptManager.h"\\r
+       "..\..\Src\MemoInfo.h"\\r
+       "..\..\Src\MemoManager.h"\\r
+       "..\..\Src\MemoNote.h"\\r
+       "..\..\Src\Message.h"\\r
+       "..\..\Src\MsgRes\MsgDef.h"\\r
+       "..\..\Src\PasswordManager.h"\\r
+       "..\..\Src\Property.h"\\r
+       "..\..\Src\Repository.h"\\r
+       "..\..\Src\Tombo.h"\\r
+       "..\..\Src\TomboLib\File.h"\\r
+       "..\..\Src\TomboLib\Logger.h"\\r
+       "..\..\Src\TomboLib\TString.h"\\r
+       "..\..\Src\TomboLib\Uniconv.h"\\r
+       "..\..\Src\TomboURI.h"\\r
+       \r
+\r
+!ELSEIF  "$(CFG)" == "Tombo - Win32 (WCE ARM) Release"\r
+\r
+DEP_CPP_MEMON=\\r
+       "..\..\Src\Crypt.h"\\r
+       "..\..\Src\CryptManager.h"\\r
+       "..\..\Src\MemoInfo.h"\\r
+       "..\..\Src\MemoManager.h"\\r
+       "..\..\Src\MemoNote.h"\\r
+       "..\..\Src\Message.h"\\r
+       "..\..\Src\MsgRes\MsgDef.h"\\r
+       "..\..\Src\PasswordManager.h"\\r
+       "..\..\Src\Property.h"\\r
+       "..\..\Src\Repository.h"\\r
+       "..\..\Src\Tombo.h"\\r
+       "..\..\Src\TomboLib\File.h"\\r
+       "..\..\Src\TomboLib\Logger.h"\\r
+       "..\..\Src\TomboLib\TString.h"\\r
+       "..\..\Src\TomboLib\Uniconv.h"\\r
+       "..\..\Src\TomboURI.h"\\r
+       \r
+\r
+!ELSEIF  "$(CFG)" == "Tombo - Win32 (WCE ARM) Sig3"\r
+\r
+DEP_CPP_MEMON=\\r
+       "..\..\Src\Crypt.h"\\r
+       "..\..\Src\CryptManager.h"\\r
+       "..\..\Src\MemoInfo.h"\\r
+       "..\..\Src\MemoManager.h"\\r
+       "..\..\Src\MemoNote.h"\\r
+       "..\..\Src\Message.h"\\r
+       "..\..\Src\MsgRes\MsgDef.h"\\r
+       "..\..\Src\PasswordManager.h"\\r
+       "..\..\Src\Property.h"\\r
+       "..\..\Src\Repository.h"\\r
+       "..\..\Src\Tombo.h"\\r
+       "..\..\Src\TomboLib\File.h"\\r
+       "..\..\Src\TomboLib\Logger.h"\\r
+       "..\..\Src\TomboLib\TString.h"\\r
+       "..\..\Src\TomboLib\Uniconv.h"\\r
+       "..\..\Src\TomboURI.h"\\r
+       \r
+\r
+!ENDIF \r
+\r
+# End Source File\r
+# Begin Source File\r
+\r
+SOURCE=..\..\Src\MemoSelectView.cpp\r
+\r
+!IF  "$(CFG)" == "Tombo - Win32 (WCE MIPS) Release"\r
+\r
+DEP_CPP_MEMOS=\\r
+       "..\..\Src\HPCPlatform.h"\\r
+       "..\..\Src\LagendaPlatform.h"\\r
+       "..\..\Src\MainFrame.h"\\r
+       "..\..\Src\MemoDetailsView.h"\\r
+       "..\..\Src\MemoManager.h"\\r
+       "..\..\Src\MemoSelectView.h"\\r
+       "..\..\Src\Message.h"\\r
+       "..\..\Src\MsgRes\MsgDef.h"\\r
+       "..\..\Src\NewFolderDialog.h"\\r
+       "..\..\Src\PasswordManager.h"\\r
+       "..\..\Src\PlatformLayer.h"\\r
+       "..\..\Src\PocketPCPlatform.h"\\r
+       "..\..\Src\Property.h"\\r
+       "..\..\Src\PsPCPlatform.h"\\r
+       "..\..\Src\Repository.h"\\r
+       "..\..\Src\Tombo.h"\\r
+       "..\..\Src\TomboLib\AutoPtr.h"\\r
+       "..\..\Src\TomboLib\File.h"\\r
+       "..\..\Src\TomboLib\Logger.h"\\r
+       "..\..\Src\TomboLib\TString.h"\\r
+       "..\..\Src\TomboLib\Uniconv.h"\\r
+       "..\..\Src\TomboLib\VarBuffer.h"\\r
+       "..\..\Src\TomboURI.h"\\r
+       "..\..\Src\TreeViewItem.h"\\r
+       "..\..\Src\Win32Platform.h"\\r
+       \r
+\r
+!ELSEIF  "$(CFG)" == "Tombo - Win32 (WCE SH4) Release"\r
+\r
+DEP_CPP_MEMOS=\\r
+       "..\..\Src\HPCPlatform.h"\\r
+       "..\..\Src\LagendaPlatform.h"\\r
+       "..\..\Src\MainFrame.h"\\r
+       "..\..\Src\MemoDetailsView.h"\\r
+       "..\..\Src\MemoManager.h"\\r
+       "..\..\Src\MemoSelectView.h"\\r
+       "..\..\Src\Message.h"\\r
+       "..\..\Src\MsgRes\MsgDef.h"\\r
+       "..\..\Src\NewFolderDialog.h"\\r
+       "..\..\Src\PasswordManager.h"\\r
+       "..\..\Src\PlatformLayer.h"\\r
+       "..\..\Src\PocketPCPlatform.h"\\r
+       "..\..\Src\Property.h"\\r
+       "..\..\Src\PsPCPlatform.h"\\r
+       "..\..\Src\Repository.h"\\r
+       "..\..\Src\Tombo.h"\\r
+       "..\..\Src\TomboLib\AutoPtr.h"\\r
+       "..\..\Src\TomboLib\File.h"\\r
+       "..\..\Src\TomboLib\Logger.h"\\r
+       "..\..\Src\TomboLib\TString.h"\\r
+       "..\..\Src\TomboLib\Uniconv.h"\\r
+       "..\..\Src\TomboLib\VarBuffer.h"\\r
+       "..\..\Src\TomboURI.h"\\r
+       "..\..\Src\TreeViewItem.h"\\r
+       "..\..\Src\Win32Platform.h"\\r
+       \r
+\r
+!ELSEIF  "$(CFG)" == "Tombo - Win32 (WCE SH3) Release"\r
+\r
+DEP_CPP_MEMOS=\\r
+       "..\..\Src\HPCPlatform.h"\\r
+       "..\..\Src\LagendaPlatform.h"\\r
+       "..\..\Src\MainFrame.h"\\r
+       "..\..\Src\MemoDetailsView.h"\\r
+       "..\..\Src\MemoManager.h"\\r
+       "..\..\Src\MemoSelectView.h"\\r
+       "..\..\Src\Message.h"\\r
+       "..\..\Src\MsgRes\MsgDef.h"\\r
+       "..\..\Src\NewFolderDialog.h"\\r
+       "..\..\Src\PasswordManager.h"\\r
+       "..\..\Src\PlatformLayer.h"\\r
+       "..\..\Src\PocketPCPlatform.h"\\r
+       "..\..\Src\Property.h"\\r
+       "..\..\Src\PsPCPlatform.h"\\r
+       "..\..\Src\Repository.h"\\r
+       "..\..\Src\Tombo.h"\\r
+       "..\..\Src\TomboLib\AutoPtr.h"\\r
+       "..\..\Src\TomboLib\File.h"\\r
+       "..\..\Src\TomboLib\Logger.h"\\r
+       "..\..\Src\TomboLib\TString.h"\\r
+       "..\..\Src\TomboLib\Uniconv.h"\\r
+       "..\..\Src\TomboLib\VarBuffer.h"\\r
+       "..\..\Src\TomboURI.h"\\r
+       "..\..\Src\TreeViewItem.h"\\r
+       "..\..\Src\Win32Platform.h"\\r
+       \r
+\r
+!ELSEIF  "$(CFG)" == "Tombo - Win32 (WCE ARM) Release"\r
+\r
+DEP_CPP_MEMOS=\\r
+       "..\..\Src\HPCPlatform.h"\\r
+       "..\..\Src\LagendaPlatform.h"\\r
+       "..\..\Src\MainFrame.h"\\r
+       "..\..\Src\MemoDetailsView.h"\\r
+       "..\..\Src\MemoManager.h"\\r
+       "..\..\Src\MemoSelectView.h"\\r
+       "..\..\Src\Message.h"\\r
+       "..\..\Src\MsgRes\MsgDef.h"\\r
+       "..\..\Src\NewFolderDialog.h"\\r
+       "..\..\Src\PasswordManager.h"\\r
+       "..\..\Src\PlatformLayer.h"\\r
+       "..\..\Src\PocketPCPlatform.h"\\r
+       "..\..\Src\Property.h"\\r
+       "..\..\Src\PsPCPlatform.h"\\r
+       "..\..\Src\Repository.h"\\r
+       "..\..\Src\Tombo.h"\\r
+       "..\..\Src\TomboLib\AutoPtr.h"\\r
+       "..\..\Src\TomboLib\File.h"\\r
+       "..\..\Src\TomboLib\Logger.h"\\r
+       "..\..\Src\TomboLib\TString.h"\\r
+       "..\..\Src\TomboLib\Uniconv.h"\\r
+       "..\..\Src\TomboLib\VarBuffer.h"\\r
+       "..\..\Src\TomboURI.h"\\r
+       "..\..\Src\TreeViewItem.h"\\r
+       "..\..\Src\Win32Platform.h"\\r
+       \r
+\r
+!ELSEIF  "$(CFG)" == "Tombo - Win32 (WCE ARM) Sig3"\r
+\r
+DEP_CPP_MEMOS=\\r
+       "..\..\Src\HPCPlatform.h"\\r
+       "..\..\Src\LagendaPlatform.h"\\r
+       "..\..\Src\MainFrame.h"\\r
+       "..\..\Src\MemoDetailsView.h"\\r
+       "..\..\Src\MemoManager.h"\\r
+       "..\..\Src\MemoSelectView.h"\\r
+       "..\..\Src\Message.h"\\r
+       "..\..\Src\MsgRes\MsgDef.h"\\r
+       "..\..\Src\NewFolderDialog.h"\\r
+       "..\..\Src\PasswordManager.h"\\r
+       "..\..\Src\PlatformLayer.h"\\r
+       "..\..\Src\PocketPCPlatform.h"\\r
+       "..\..\Src\Property.h"\\r
+       "..\..\Src\PsPCPlatform.h"\\r
+       "..\..\Src\Repository.h"\\r
+       "..\..\Src\Tombo.h"\\r
+       "..\..\Src\TomboLib\AutoPtr.h"\\r
+       "..\..\Src\TomboLib\File.h"\\r
+       "..\..\Src\TomboLib\Logger.h"\\r
+       "..\..\Src\TomboLib\TString.h"\\r
+       "..\..\Src\TomboLib\Uniconv.h"\\r
+       "..\..\Src\TomboLib\VarBuffer.h"\\r
+       "..\..\Src\TomboURI.h"\\r
+       "..\..\Src\TreeViewItem.h"\\r
+       "..\..\Src\Win32Platform.h"\\r
+       \r
+\r
+!ENDIF \r
+\r
+# End Source File\r
+# Begin Source File\r
+\r
+SOURCE=..\..\Src\Message.cpp\r
+\r
+!IF  "$(CFG)" == "Tombo - Win32 (WCE MIPS) Release"\r
+\r
+DEP_CPP_MESSA=\\r
+       "..\..\Src\Message.h"\\r
+       "..\..\Src\MsgRes\DefaultMsg.cpp"\\r
+       "..\..\Src\MsgRes\MsgDef.h"\\r
+       "..\..\Src\Tombo.h"\\r
+       "..\..\Src\TomboLib\File.h"\\r
+       "..\..\Src\TomboLib\Logger.h"\\r
+       "..\..\Src\TomboLib\TString.h"\\r
+       "..\..\Src\TomboLib\Uniconv.h"\\r
+       \r
+\r
+!ELSEIF  "$(CFG)" == "Tombo - Win32 (WCE SH4) Release"\r
+\r
+DEP_CPP_MESSA=\\r
+       "..\..\Src\Message.h"\\r
+       "..\..\Src\MsgRes\DefaultMsg.cpp"\\r
+       "..\..\Src\MsgRes\MsgDef.h"\\r
+       "..\..\Src\Tombo.h"\\r
+       "..\..\Src\TomboLib\File.h"\\r
+       "..\..\Src\TomboLib\Logger.h"\\r
+       "..\..\Src\TomboLib\TString.h"\\r
+       "..\..\Src\TomboLib\Uniconv.h"\\r
+       \r
+\r
+!ELSEIF  "$(CFG)" == "Tombo - Win32 (WCE SH3) Release"\r
+\r
+DEP_CPP_MESSA=\\r
+       "..\..\Src\Message.h"\\r
+       "..\..\Src\MsgRes\DefaultMsg.cpp"\\r
+       "..\..\Src\MsgRes\MsgDef.h"\\r
+       "..\..\Src\Tombo.h"\\r
+       "..\..\Src\TomboLib\File.h"\\r
+       "..\..\Src\TomboLib\Logger.h"\\r
+       "..\..\Src\TomboLib\TString.h"\\r
+       "..\..\Src\TomboLib\Uniconv.h"\\r
+       \r
+\r
+!ELSEIF  "$(CFG)" == "Tombo - Win32 (WCE ARM) Release"\r
+\r
+DEP_CPP_MESSA=\\r
+       "..\..\Src\Message.h"\\r
+       "..\..\Src\MsgRes\DefaultMsg.cpp"\\r
+       "..\..\Src\MsgRes\MsgDef.h"\\r
+       "..\..\Src\Tombo.h"\\r
+       "..\..\Src\TomboLib\File.h"\\r
+       "..\..\Src\TomboLib\Logger.h"\\r
+       "..\..\Src\TomboLib\TString.h"\\r
+       "..\..\Src\TomboLib\Uniconv.h"\\r
+       \r
+\r
+!ELSEIF  "$(CFG)" == "Tombo - Win32 (WCE ARM) Sig3"\r
+\r
+DEP_CPP_MESSA=\\r
+       "..\..\Src\Message.h"\\r
+       "..\..\Src\MsgRes\DefaultMsg.cpp"\\r
+       "..\..\Src\MsgRes\MsgDef.h"\\r
+       "..\..\Src\Tombo.h"\\r
+       "..\..\Src\TomboLib\File.h"\\r
+       "..\..\Src\TomboLib\Logger.h"\\r
+       "..\..\Src\TomboLib\TString.h"\\r
+       "..\..\Src\TomboLib\Uniconv.h"\\r
+       \r
+\r
+!ENDIF \r
+\r
+# End Source File\r
+# Begin Source File\r
+\r
+SOURCE=..\..\Src\NewFolderDialog.cpp\r
+\r
+!IF  "$(CFG)" == "Tombo - Win32 (WCE MIPS) Release"\r
+\r
+DEP_CPP_NEWFO=\\r
+       "..\..\Src\Message.h"\\r
+       "..\..\Src\MsgRes\MsgDef.h"\\r
+       "..\..\Src\NewFolderDialog.h"\\r
+       "..\..\Src\TomboLib\DialogTemplate.h"\\r
+       "..\..\Src\TomboLib\SipControl.h"\\r
+       \r
+\r
+!ELSEIF  "$(CFG)" == "Tombo - Win32 (WCE SH4) Release"\r
+\r
+DEP_CPP_NEWFO=\\r
+       "..\..\Src\Message.h"\\r
+       "..\..\Src\MsgRes\MsgDef.h"\\r
+       "..\..\Src\NewFolderDialog.h"\\r
+       "..\..\Src\TomboLib\DialogTemplate.h"\\r
+       "..\..\Src\TomboLib\SipControl.h"\\r
+       \r
+\r
+!ELSEIF  "$(CFG)" == "Tombo - Win32 (WCE SH3) Release"\r
+\r
+DEP_CPP_NEWFO=\\r
+       "..\..\Src\Message.h"\\r
+       "..\..\Src\MsgRes\MsgDef.h"\\r
+       "..\..\Src\NewFolderDialog.h"\\r
+       "..\..\Src\TomboLib\DialogTemplate.h"\\r
+       "..\..\Src\TomboLib\SipControl.h"\\r
+       \r
+\r
+!ELSEIF  "$(CFG)" == "Tombo - Win32 (WCE ARM) Release"\r
+\r
+DEP_CPP_NEWFO=\\r
+       "..\..\Src\Message.h"\\r
+       "..\..\Src\MsgRes\MsgDef.h"\\r
+       "..\..\Src\NewFolderDialog.h"\\r
+       "..\..\Src\TomboLib\DialogTemplate.h"\\r
+       "..\..\Src\TomboLib\SipControl.h"\\r
+       \r
+\r
+!ELSEIF  "$(CFG)" == "Tombo - Win32 (WCE ARM) Sig3"\r
+\r
+DEP_CPP_NEWFO=\\r
+       "..\..\Src\Message.h"\\r
+       "..\..\Src\MsgRes\MsgDef.h"\\r
+       "..\..\Src\NewFolderDialog.h"\\r
+       "..\..\Src\TomboLib\DialogTemplate.h"\\r
+       "..\..\Src\TomboLib\SipControl.h"\\r
+       \r
+\r
+!ENDIF \r
+\r
+# End Source File\r
+# Begin Source File\r
+\r
+SOURCE=..\..\Src\PasswordDialog.cpp\r
+\r
+!IF  "$(CFG)" == "Tombo - Win32 (WCE MIPS) Release"\r
+\r
+DEP_CPP_PASSW=\\r
+       "..\..\Src\Message.h"\\r
+       "..\..\Src\MsgRes\MsgDef.h"\\r
+       "..\..\Src\PasswordDialog.h"\\r
+       "..\..\Src\Tombo.h"\\r
+       "..\..\Src\TomboLib\DialogTemplate.h"\\r
+       "..\..\Src\TomboLib\File.h"\\r
+       "..\..\Src\TomboLib\Logger.h"\\r
+       "..\..\Src\TomboLib\SipControl.h"\\r
+       "..\..\Src\TomboLib\Uniconv.h"\\r
+       \r
+\r
+!ELSEIF  "$(CFG)" == "Tombo - Win32 (WCE SH4) Release"\r
+\r
+DEP_CPP_PASSW=\\r
+       "..\..\Src\Message.h"\\r
+       "..\..\Src\MsgRes\MsgDef.h"\\r
+       "..\..\Src\PasswordDialog.h"\\r
+       "..\..\Src\Tombo.h"\\r
+       "..\..\Src\TomboLib\DialogTemplate.h"\\r
+       "..\..\Src\TomboLib\File.h"\\r
+       "..\..\Src\TomboLib\Logger.h"\\r
+       "..\..\Src\TomboLib\SipControl.h"\\r
+       "..\..\Src\TomboLib\Uniconv.h"\\r
+       \r
+\r
+!ELSEIF  "$(CFG)" == "Tombo - Win32 (WCE SH3) Release"\r
+\r
+DEP_CPP_PASSW=\\r
+       "..\..\Src\Message.h"\\r
+       "..\..\Src\MsgRes\MsgDef.h"\\r
+       "..\..\Src\PasswordDialog.h"\\r
+       "..\..\Src\Tombo.h"\\r
+       "..\..\Src\TomboLib\DialogTemplate.h"\\r
+       "..\..\Src\TomboLib\File.h"\\r
+       "..\..\Src\TomboLib\Logger.h"\\r
+       "..\..\Src\TomboLib\SipControl.h"\\r
+       "..\..\Src\TomboLib\Uniconv.h"\\r
+       \r
+\r
+!ELSEIF  "$(CFG)" == "Tombo - Win32 (WCE ARM) Release"\r
+\r
+DEP_CPP_PASSW=\\r
+       "..\..\Src\Message.h"\\r
+       "..\..\Src\MsgRes\MsgDef.h"\\r
+       "..\..\Src\PasswordDialog.h"\\r
+       "..\..\Src\Tombo.h"\\r
+       "..\..\Src\TomboLib\DialogTemplate.h"\\r
+       "..\..\Src\TomboLib\File.h"\\r
+       "..\..\Src\TomboLib\Logger.h"\\r
+       "..\..\Src\TomboLib\SipControl.h"\\r
+       "..\..\Src\TomboLib\Uniconv.h"\\r
+       \r
+\r
+!ELSEIF  "$(CFG)" == "Tombo - Win32 (WCE ARM) Sig3"\r
+\r
+DEP_CPP_PASSW=\\r
+       "..\..\Src\Message.h"\\r
+       "..\..\Src\MsgRes\MsgDef.h"\\r
+       "..\..\Src\PasswordDialog.h"\\r
+       "..\..\Src\Tombo.h"\\r
+       "..\..\Src\TomboLib\DialogTemplate.h"\\r
+       "..\..\Src\TomboLib\File.h"\\r
+       "..\..\Src\TomboLib\Logger.h"\\r
+       "..\..\Src\TomboLib\SipControl.h"\\r
+       "..\..\Src\TomboLib\Uniconv.h"\\r
+       \r
+\r
+!ENDIF \r
+\r
+# End Source File\r
+# Begin Source File\r
+\r
+SOURCE=..\..\Src\PasswordManager.cpp\r
+\r
+!IF  "$(CFG)" == "Tombo - Win32 (WCE MIPS) Release"\r
+\r
+DEP_CPP_PASSWO=\\r
+       "..\..\Src\Crypt.h"\\r
+       "..\..\Src\CryptManager.h"\\r
+       "..\..\Src\Message.h"\\r
+       "..\..\Src\MsgRes\MsgDef.h"\\r
+       "..\..\Src\PasswordDialog.h"\\r
+       "..\..\Src\PasswordManager.h"\\r
+       "..\..\Src\Property.h"\\r
+       "..\..\Src\Tombo.h"\\r
+       "..\..\Src\TomboLib\File.h"\\r
+       "..\..\Src\TomboLib\Logger.h"\\r
+       \r
+\r
+!ELSEIF  "$(CFG)" == "Tombo - Win32 (WCE SH4) Release"\r
+\r
+DEP_CPP_PASSWO=\\r
+       "..\..\Src\Crypt.h"\\r
+       "..\..\Src\CryptManager.h"\\r
+       "..\..\Src\Message.h"\\r
+       "..\..\Src\MsgRes\MsgDef.h"\\r
+       "..\..\Src\PasswordDialog.h"\\r
+       "..\..\Src\PasswordManager.h"\\r
+       "..\..\Src\Property.h"\\r
+       "..\..\Src\Tombo.h"\\r
+       "..\..\Src\TomboLib\File.h"\\r
+       "..\..\Src\TomboLib\Logger.h"\\r
+       \r
+\r
+!ELSEIF  "$(CFG)" == "Tombo - Win32 (WCE SH3) Release"\r
+\r
+DEP_CPP_PASSWO=\\r
+       "..\..\Src\Crypt.h"\\r
+       "..\..\Src\CryptManager.h"\\r
+       "..\..\Src\Message.h"\\r
+       "..\..\Src\MsgRes\MsgDef.h"\\r
+       "..\..\Src\PasswordDialog.h"\\r
+       "..\..\Src\PasswordManager.h"\\r
+       "..\..\Src\Property.h"\\r
+       "..\..\Src\Tombo.h"\\r
+       "..\..\Src\TomboLib\File.h"\\r
+       "..\..\Src\TomboLib\Logger.h"\\r
+       \r
+\r
+!ELSEIF  "$(CFG)" == "Tombo - Win32 (WCE ARM) Release"\r
+\r
+DEP_CPP_PASSWO=\\r
+       "..\..\Src\Crypt.h"\\r
+       "..\..\Src\CryptManager.h"\\r
+       "..\..\Src\Message.h"\\r
+       "..\..\Src\MsgRes\MsgDef.h"\\r
+       "..\..\Src\PasswordDialog.h"\\r
+       "..\..\Src\PasswordManager.h"\\r
+       "..\..\Src\Property.h"\\r
+       "..\..\Src\Tombo.h"\\r
+       "..\..\Src\TomboLib\File.h"\\r
+       "..\..\Src\TomboLib\Logger.h"\\r
+       \r
+\r
+!ELSEIF  "$(CFG)" == "Tombo - Win32 (WCE ARM) Sig3"\r
+\r
+DEP_CPP_PASSWO=\\r
+       "..\..\Src\Crypt.h"\\r
+       "..\..\Src\CryptManager.h"\\r
+       "..\..\Src\Message.h"\\r
+       "..\..\Src\MsgRes\MsgDef.h"\\r
+       "..\..\Src\PasswordDialog.h"\\r
+       "..\..\Src\PasswordManager.h"\\r
+       "..\..\Src\Property.h"\\r
+       "..\..\Src\Tombo.h"\\r
+       "..\..\Src\TomboLib\File.h"\\r
+       "..\..\Src\TomboLib\Logger.h"\\r
+       \r
+\r
+!ENDIF \r
+\r
+# End Source File\r
+# Begin Source File\r
+\r
+SOURCE=..\..\Src\YAEdit\PhysicalLineManager.cpp\r
+\r
+!IF  "$(CFG)" == "Tombo - Win32 (WCE MIPS) Release"\r
+\r
+DEP_CPP_PHYSI=\\r
+       "..\..\Src\TomboLib\TString.h"\\r
+       "..\..\Src\TomboLib\Uniconv.h"\\r
+       "..\..\Src\TomboLib\VarBuffer.h"\\r
+       "..\..\Src\YAEdit\MemManager.h"\\r
+       "..\..\Src\YAEdit\PhysicalLineManager.h"\\r
+       "..\..\Src\YAEdit\Region.h"\\r
+       "..\..\Src\YAEdit\StringSplitter.h"\\r
+       \r
+\r
+!ELSEIF  "$(CFG)" == "Tombo - Win32 (WCE SH4) Release"\r
+\r
+DEP_CPP_PHYSI=\\r
+       "..\..\Src\TomboLib\TString.h"\\r
+       "..\..\Src\TomboLib\Uniconv.h"\\r
+       "..\..\Src\TomboLib\VarBuffer.h"\\r
+       "..\..\Src\YAEdit\MemManager.h"\\r
+       "..\..\Src\YAEdit\PhysicalLineManager.h"\\r
+       "..\..\Src\YAEdit\Region.h"\\r
+       "..\..\Src\YAEdit\StringSplitter.h"\\r
+       \r
+\r
+!ELSEIF  "$(CFG)" == "Tombo - Win32 (WCE SH3) Release"\r
+\r
+DEP_CPP_PHYSI=\\r
+       "..\..\Src\TomboLib\TString.h"\\r
+       "..\..\Src\TomboLib\Uniconv.h"\\r
+       "..\..\Src\TomboLib\VarBuffer.h"\\r
+       "..\..\Src\YAEdit\MemManager.h"\\r
+       "..\..\Src\YAEdit\PhysicalLineManager.h"\\r
+       "..\..\Src\YAEdit\Region.h"\\r
+       "..\..\Src\YAEdit\StringSplitter.h"\\r
+       \r
+\r
+!ELSEIF  "$(CFG)" == "Tombo - Win32 (WCE ARM) Release"\r
+\r
+DEP_CPP_PHYSI=\\r
+       "..\..\Src\TomboLib\TString.h"\\r
+       "..\..\Src\TomboLib\Uniconv.h"\\r
+       "..\..\Src\TomboLib\VarBuffer.h"\\r
+       "..\..\Src\YAEdit\MemManager.h"\\r
+       "..\..\Src\YAEdit\PhysicalLineManager.h"\\r
+       "..\..\Src\YAEdit\Region.h"\\r
+       "..\..\Src\YAEdit\StringSplitter.h"\\r
+       \r
+\r
+!ELSEIF  "$(CFG)" == "Tombo - Win32 (WCE ARM) Sig3"\r
+\r
+DEP_CPP_PHYSI=\\r
+       "..\..\Src\TomboLib\TString.h"\\r
+       "..\..\Src\TomboLib\Uniconv.h"\\r
+       "..\..\Src\TomboLib\VarBuffer.h"\\r
+       "..\..\Src\YAEdit\MemManager.h"\\r
+       "..\..\Src\YAEdit\PhysicalLineManager.h"\\r
+       "..\..\Src\YAEdit\Region.h"\\r
+       "..\..\Src\YAEdit\StringSplitter.h"\\r
+       \r
+\r
+!ENDIF \r
+\r
+# End Source File\r
+# Begin Source File\r
+\r
+SOURCE=..\..\Src\PlatformLayer.cpp\r
+\r
+!IF  "$(CFG)" == "Tombo - Win32 (WCE MIPS) Release"\r
+\r
+DEP_CPP_PLATF=\\r
+       "..\..\Src\Message.h"\\r
+       "..\..\Src\MsgRes\MsgDef.h"\\r
+       "..\..\Src\PlatformLayer.h"\\r
+       "..\..\Src\Property.h"\\r
+       "..\..\Src\Tombo.h"\\r
+       "..\..\Src\TomboLib\File.h"\\r
+       "..\..\Src\TomboLib\Logger.h"\\r
+       \r
+\r
+!ELSEIF  "$(CFG)" == "Tombo - Win32 (WCE SH4) Release"\r
+\r
+DEP_CPP_PLATF=\\r
+       "..\..\Src\Message.h"\\r
+       "..\..\Src\MsgRes\MsgDef.h"\\r
+       "..\..\Src\PlatformLayer.h"\\r
+       "..\..\Src\Property.h"\\r
+       "..\..\Src\Tombo.h"\\r
+       "..\..\Src\TomboLib\File.h"\\r
+       "..\..\Src\TomboLib\Logger.h"\\r
+       \r
+\r
+!ELSEIF  "$(CFG)" == "Tombo - Win32 (WCE SH3) Release"\r
+\r
+DEP_CPP_PLATF=\\r
+       "..\..\Src\Message.h"\\r
+       "..\..\Src\MsgRes\MsgDef.h"\\r
+       "..\..\Src\PlatformLayer.h"\\r
+       "..\..\Src\Property.h"\\r
+       "..\..\Src\Tombo.h"\\r
+       "..\..\Src\TomboLib\File.h"\\r
+       "..\..\Src\TomboLib\Logger.h"\\r
+       \r
+\r
+!ELSEIF  "$(CFG)" == "Tombo - Win32 (WCE ARM) Release"\r
+\r
+DEP_CPP_PLATF=\\r
+       "..\..\Src\Message.h"\\r
+       "..\..\Src\MsgRes\MsgDef.h"\\r
+       "..\..\Src\PlatformLayer.h"\\r
+       "..\..\Src\Property.h"\\r
+       "..\..\Src\Tombo.h"\\r
+       "..\..\Src\TomboLib\File.h"\\r
+       "..\..\Src\TomboLib\Logger.h"\\r
+       \r
+\r
+!ELSEIF  "$(CFG)" == "Tombo - Win32 (WCE ARM) Sig3"\r
+\r
+DEP_CPP_PLATF=\\r
+       "..\..\Src\Message.h"\\r
+       "..\..\Src\MsgRes\MsgDef.h"\\r
+       "..\..\Src\PlatformLayer.h"\\r
+       "..\..\Src\Property.h"\\r
+       "..\..\Src\Tombo.h"\\r
+       "..\..\Src\TomboLib\File.h"\\r
+       "..\..\Src\TomboLib\Logger.h"\\r
+       \r
+\r
+!ENDIF \r
+\r
+# End Source File\r
+# Begin Source File\r
+\r
+SOURCE=..\..\Src\Property.cpp\r
+\r
+!IF  "$(CFG)" == "Tombo - Win32 (WCE MIPS) Release"\r
+\r
+DEP_CPP_PROPE=\\r
+       "..\..\expat\include\expat.h"\\r
+       "..\..\Src\FileSelector.h"\\r
+       "..\..\Src\Message.h"\\r
+       "..\..\Src\MsgRes\MsgDef.h"\\r
+       "..\..\Src\PasswordManager.h"\\r
+       "..\..\Src\Property.h"\\r
+       "..\..\Src\Tombo.h"\\r
+       "..\..\Src\TomboLib\AutoPtr.h"\\r
+       "..\..\Src\TomboLib\DialogTemplate.h"\\r
+       "..\..\Src\TomboLib\File.h"\\r
+       "..\..\Src\TomboLib\Logger.h"\\r
+       "..\..\Src\TomboLib\PropertyPage.h"\\r
+       "..\..\Src\TomboLib\TString.h"\\r
+       "..\..\Src\TomboLib\Uniconv.h"\\r
+       "..\..\Src\TomboPropertyTab.h"\\r
+       \r
+\r
+!ELSEIF  "$(CFG)" == "Tombo - Win32 (WCE SH4) Release"\r
+\r
+DEP_CPP_PROPE=\\r
+       "..\..\Src\FileSelector.h"\\r
+       "..\..\Src\Message.h"\\r
+       "..\..\Src\MsgRes\MsgDef.h"\\r
+       "..\..\Src\PasswordManager.h"\\r
+       "..\..\Src\Property.h"\\r
+       "..\..\Src\Tombo.h"\\r
+       "..\..\Src\TomboLib\DialogTemplate.h"\\r
+       "..\..\Src\TomboLib\File.h"\\r
+       "..\..\Src\TomboLib\Logger.h"\\r
+       "..\..\Src\TomboLib\PropertyPage.h"\\r
+       "..\..\Src\TomboLib\TString.h"\\r
+       "..\..\Src\TomboLib\Uniconv.h"\\r
+       \r
+\r
+!ELSEIF  "$(CFG)" == "Tombo - Win32 (WCE SH3) Release"\r
+\r
+DEP_CPP_PROPE=\\r
+       "..\..\Src\FileSelector.h"\\r
+       "..\..\Src\Message.h"\\r
+       "..\..\Src\MsgRes\MsgDef.h"\\r
+       "..\..\Src\PasswordManager.h"\\r
+       "..\..\Src\Property.h"\\r
+       "..\..\Src\Tombo.h"\\r
+       "..\..\Src\TomboLib\DialogTemplate.h"\\r
+       "..\..\Src\TomboLib\File.h"\\r
+       "..\..\Src\TomboLib\Logger.h"\\r
+       "..\..\Src\TomboLib\PropertyPage.h"\\r
+       "..\..\Src\TomboLib\TString.h"\\r
+       "..\..\Src\TomboLib\Uniconv.h"\\r
+       \r
+\r
+!ELSEIF  "$(CFG)" == "Tombo - Win32 (WCE ARM) Release"\r
+\r
+DEP_CPP_PROPE=\\r
+       "..\..\Src\FileSelector.h"\\r
+       "..\..\Src\Message.h"\\r
+       "..\..\Src\MsgRes\MsgDef.h"\\r
+       "..\..\Src\PasswordManager.h"\\r
+       "..\..\Src\Property.h"\\r
+       "..\..\Src\Tombo.h"\\r
+       "..\..\Src\TomboLib\DialogTemplate.h"\\r
+       "..\..\Src\TomboLib\File.h"\\r
+       "..\..\Src\TomboLib\Logger.h"\\r
+       "..\..\Src\TomboLib\PropertyPage.h"\\r
+       "..\..\Src\TomboLib\TString.h"\\r
+       "..\..\Src\TomboLib\Uniconv.h"\\r
+       \r
+\r
+!ELSEIF  "$(CFG)" == "Tombo - Win32 (WCE ARM) Sig3"\r
+\r
+DEP_CPP_PROPE=\\r
+       "..\..\Src\FileSelector.h"\\r
+       "..\..\Src\Message.h"\\r
+       "..\..\Src\MsgRes\MsgDef.h"\\r
+       "..\..\Src\PasswordManager.h"\\r
+       "..\..\Src\Property.h"\\r
+       "..\..\Src\Tombo.h"\\r
+       "..\..\Src\TomboLib\DialogTemplate.h"\\r
+       "..\..\Src\TomboLib\File.h"\\r
+       "..\..\Src\TomboLib\Logger.h"\\r
+       "..\..\Src\TomboLib\PropertyPage.h"\\r
+       "..\..\Src\TomboLib\TString.h"\\r
+       "..\..\Src\TomboLib\Uniconv.h"\\r
+       \r
+\r
+!ENDIF \r
+\r
+# End Source File\r
+# Begin Source File\r
+\r
+SOURCE=..\..\Src\TomboLib\PropertyPage.cpp\r
+\r
+!IF  "$(CFG)" == "Tombo - Win32 (WCE MIPS) Release"\r
+\r
+DEP_CPP_PROPER=\\r
+       "..\..\Src\TomboLib\PropertyPage.h"\\r
+       \r
+\r
+!ELSEIF  "$(CFG)" == "Tombo - Win32 (WCE SH4) Release"\r
+\r
+DEP_CPP_PROPER=\\r
+       "..\..\Src\TomboLib\PropertyPage.h"\\r
+       \r
+\r
+!ELSEIF  "$(CFG)" == "Tombo - Win32 (WCE SH3) Release"\r
+\r
+DEP_CPP_PROPER=\\r
+       "..\..\Src\TomboLib\PropertyPage.h"\\r
+       \r
+\r
+!ELSEIF  "$(CFG)" == "Tombo - Win32 (WCE ARM) Release"\r
+\r
+DEP_CPP_PROPER=\\r
+       "..\..\Src\TomboLib\PropertyPage.h"\\r
+       \r
+\r
+!ELSEIF  "$(CFG)" == "Tombo - Win32 (WCE ARM) Sig3"\r
+\r
+DEP_CPP_PROPER=\\r
+       "..\..\Src\TomboLib\PropertyPage.h"\\r
+       \r
+\r
+!ENDIF \r
+\r
+# End Source File\r
+# Begin Source File\r
+\r
+SOURCE=..\..\Src\YAEdit\Region.cpp\r
+\r
+!IF  "$(CFG)" == "Tombo - Win32 (WCE MIPS) Release"\r
+\r
+DEP_CPP_REGIO=\\r
+       "..\..\Src\YAEdit\Region.h"\\r
+       \r
+\r
+!ELSEIF  "$(CFG)" == "Tombo - Win32 (WCE SH4) Release"\r
+\r
+DEP_CPP_REGIO=\\r
+       "..\..\Src\YAEdit\Region.h"\\r
+       \r
+\r
+!ELSEIF  "$(CFG)" == "Tombo - Win32 (WCE SH3) Release"\r
+\r
+DEP_CPP_REGIO=\\r
+       "..\..\Src\YAEdit\Region.h"\\r
+       \r
+\r
+!ELSEIF  "$(CFG)" == "Tombo - Win32 (WCE ARM) Release"\r
+\r
+DEP_CPP_REGIO=\\r
+       "..\..\Src\YAEdit\Region.h"\\r
+       \r
+\r
+!ELSEIF  "$(CFG)" == "Tombo - Win32 (WCE ARM) Sig3"\r
+\r
+DEP_CPP_REGIO=\\r
+       "..\..\Src\YAEdit\Region.h"\\r
+       \r
+\r
+!ENDIF \r
+\r
+# End Source File\r
+# Begin Source File\r
+\r
+SOURCE=..\..\Src\Repository.cpp\r
+\r
+!IF  "$(CFG)" == "Tombo - Win32 (WCE MIPS) Release"\r
+\r
+DEP_CPP_REPOS=\\r
+       "..\..\Src\MemoNote.h"\\r
+       "..\..\Src\Repository.h"\\r
+       "..\..\Src\RepositoryImpl.h"\\r
+       "..\..\Src\Tombo.h"\\r
+       "..\..\Src\TomboLib\File.h"\\r
+       "..\..\Src\TomboLib\Logger.h"\\r
+       "..\..\Src\TomboLib\TString.h"\\r
+       "..\..\Src\TomboLib\Uniconv.h"\\r
+       "..\..\Src\TomboURI.h"\\r
+       \r
+\r
+!ELSEIF  "$(CFG)" == "Tombo - Win32 (WCE SH4) Release"\r
+\r
+DEP_CPP_REPOS=\\r
+       "..\..\Src\MemoNote.h"\\r
+       "..\..\Src\Repository.h"\\r
+       "..\..\Src\RepositoryImpl.h"\\r
+       "..\..\Src\Tombo.h"\\r
+       "..\..\Src\TomboLib\File.h"\\r
+       "..\..\Src\TomboLib\Logger.h"\\r
+       "..\..\Src\TomboLib\TString.h"\\r
+       "..\..\Src\TomboLib\Uniconv.h"\\r
+       "..\..\Src\TomboURI.h"\\r
+       \r
+\r
+!ELSEIF  "$(CFG)" == "Tombo - Win32 (WCE SH3) Release"\r
+\r
+DEP_CPP_REPOS=\\r
+       "..\..\Src\MemoNote.h"\\r
+       "..\..\Src\Repository.h"\\r
+       "..\..\Src\RepositoryImpl.h"\\r
+       "..\..\Src\Tombo.h"\\r
+       "..\..\Src\TomboLib\File.h"\\r
+       "..\..\Src\TomboLib\Logger.h"\\r
+       "..\..\Src\TomboLib\TString.h"\\r
+       "..\..\Src\TomboLib\Uniconv.h"\\r
+       "..\..\Src\TomboURI.h"\\r
+       \r
+\r
+!ELSEIF  "$(CFG)" == "Tombo - Win32 (WCE ARM) Release"\r
+\r
+DEP_CPP_REPOS=\\r
+       "..\..\Src\MemoNote.h"\\r
+       "..\..\Src\Repository.h"\\r
+       "..\..\Src\RepositoryImpl.h"\\r
+       "..\..\Src\Tombo.h"\\r
+       "..\..\Src\TomboLib\File.h"\\r
+       "..\..\Src\TomboLib\Logger.h"\\r
+       "..\..\Src\TomboLib\TString.h"\\r
+       "..\..\Src\TomboLib\Uniconv.h"\\r
+       "..\..\Src\TomboURI.h"\\r
+       \r
+\r
+!ELSEIF  "$(CFG)" == "Tombo - Win32 (WCE ARM) Sig3"\r
+\r
+DEP_CPP_REPOS=\\r
+       "..\..\Src\MemoNote.h"\\r
+       "..\..\Src\Repository.h"\\r
+       "..\..\Src\RepositoryImpl.h"\\r
+       "..\..\Src\Tombo.h"\\r
+       "..\..\Src\TomboLib\File.h"\\r
+       "..\..\Src\TomboLib\Logger.h"\\r
+       "..\..\Src\TomboLib\TString.h"\\r
+       "..\..\Src\TomboLib\Uniconv.h"\\r
+       "..\..\Src\TomboURI.h"\\r
+       \r
+\r
+!ENDIF \r
+\r
+# End Source File\r
+# Begin Source File\r
+\r
+SOURCE=..\..\Src\RepositoryImpl.cpp\r
+\r
+!IF  "$(CFG)" == "Tombo - Win32 (WCE MIPS) Release"\r
+\r
+DEP_CPP_REPOSI=\\r
+       "..\..\Src\DirList.h"\\r
+       "..\..\Src\MemoFolder.h"\\r
+       "..\..\Src\MemoInfo.h"\\r
+       "..\..\Src\MemoNote.h"\\r
+       "..\..\Src\Message.h"\\r
+       "..\..\Src\MsgRes\MsgDef.h"\\r
+       "..\..\Src\PasswordManager.h"\\r
+       "..\..\Src\Property.h"\\r
+       "..\..\Src\Repository.h"\\r
+       "..\..\Src\RepositoryImpl.h"\\r
+       "..\..\Src\Tombo.h"\\r
+       "..\..\Src\TomboLib\AutoPtr.h"\\r
+       "..\..\Src\TomboLib\DirectoryScanner.h"\\r
+       "..\..\Src\TomboLib\File.h"\\r
+       "..\..\Src\TomboLib\Logger.h"\\r
+       "..\..\Src\TomboLib\TString.h"\\r
+       "..\..\Src\TomboLib\Uniconv.h"\\r
+       "..\..\Src\TomboLib\VarBuffer.h"\\r
+       "..\..\Src\TomboURI.h"\\r
+       "..\..\Src\URIScanner.h"\\r
+       \r
+\r
+!ELSEIF  "$(CFG)" == "Tombo - Win32 (WCE SH4) Release"\r
+\r
+DEP_CPP_REPOSI=\\r
+       "..\..\Src\DirList.h"\\r
+       "..\..\Src\MemoFolder.h"\\r
+       "..\..\Src\MemoInfo.h"\\r
+       "..\..\Src\MemoNote.h"\\r
+       "..\..\Src\Message.h"\\r
+       "..\..\Src\MsgRes\MsgDef.h"\\r
+       "..\..\Src\PasswordManager.h"\\r
+       "..\..\Src\Property.h"\\r
+       "..\..\Src\Repository.h"\\r
+       "..\..\Src\RepositoryImpl.h"\\r
+       "..\..\Src\Tombo.h"\\r
+       "..\..\Src\TomboLib\AutoPtr.h"\\r
+       "..\..\Src\TomboLib\DirectoryScanner.h"\\r
+       "..\..\Src\TomboLib\File.h"\\r
+       "..\..\Src\TomboLib\Logger.h"\\r
+       "..\..\Src\TomboLib\TString.h"\\r
+       "..\..\Src\TomboLib\Uniconv.h"\\r
+       "..\..\Src\TomboLib\VarBuffer.h"\\r
+       "..\..\Src\TomboURI.h"\\r
+       "..\..\Src\URIScanner.h"\\r
+       \r
+\r
+!ELSEIF  "$(CFG)" == "Tombo - Win32 (WCE SH3) Release"\r
+\r
+DEP_CPP_REPOSI=\\r
+       "..\..\Src\DirList.h"\\r
+       "..\..\Src\MemoFolder.h"\\r
+       "..\..\Src\MemoInfo.h"\\r
+       "..\..\Src\MemoNote.h"\\r
+       "..\..\Src\Message.h"\\r
+       "..\..\Src\MsgRes\MsgDef.h"\\r
+       "..\..\Src\PasswordManager.h"\\r
+       "..\..\Src\Property.h"\\r
+       "..\..\Src\Repository.h"\\r
+       "..\..\Src\RepositoryImpl.h"\\r
+       "..\..\Src\Tombo.h"\\r
+       "..\..\Src\TomboLib\AutoPtr.h"\\r
+       "..\..\Src\TomboLib\DirectoryScanner.h"\\r
+       "..\..\Src\TomboLib\File.h"\\r
+       "..\..\Src\TomboLib\Logger.h"\\r
+       "..\..\Src\TomboLib\TString.h"\\r
+       "..\..\Src\TomboLib\Uniconv.h"\\r
+       "..\..\Src\TomboLib\VarBuffer.h"\\r
+       "..\..\Src\TomboURI.h"\\r
+       "..\..\Src\URIScanner.h"\\r
+       \r
+\r
+!ELSEIF  "$(CFG)" == "Tombo - Win32 (WCE ARM) Release"\r
+\r
+DEP_CPP_REPOSI=\\r
+       "..\..\Src\DirList.h"\\r
+       "..\..\Src\MemoFolder.h"\\r
+       "..\..\Src\MemoInfo.h"\\r
+       "..\..\Src\MemoNote.h"\\r
+       "..\..\Src\Message.h"\\r
+       "..\..\Src\MsgRes\MsgDef.h"\\r
+       "..\..\Src\PasswordManager.h"\\r
+       "..\..\Src\Property.h"\\r
+       "..\..\Src\Repository.h"\\r
+       "..\..\Src\RepositoryImpl.h"\\r
+       "..\..\Src\Tombo.h"\\r
+       "..\..\Src\TomboLib\AutoPtr.h"\\r
+       "..\..\Src\TomboLib\DirectoryScanner.h"\\r
+       "..\..\Src\TomboLib\File.h"\\r
+       "..\..\Src\TomboLib\Logger.h"\\r
+       "..\..\Src\TomboLib\TString.h"\\r
+       "..\..\Src\TomboLib\Uniconv.h"\\r
+       "..\..\Src\TomboLib\VarBuffer.h"\\r
+       "..\..\Src\TomboURI.h"\\r
+       "..\..\Src\URIScanner.h"\\r
+       \r
+\r
+!ELSEIF  "$(CFG)" == "Tombo - Win32 (WCE ARM) Sig3"\r
+\r
+DEP_CPP_REPOSI=\\r
+       "..\..\Src\DirList.h"\\r
+       "..\..\Src\MemoFolder.h"\\r
+       "..\..\Src\MemoInfo.h"\\r
+       "..\..\Src\MemoNote.h"\\r
+       "..\..\Src\Message.h"\\r
+       "..\..\Src\MsgRes\MsgDef.h"\\r
+       "..\..\Src\PasswordManager.h"\\r
+       "..\..\Src\Property.h"\\r
+       "..\..\Src\Repository.h"\\r
+       "..\..\Src\RepositoryImpl.h"\\r
+       "..\..\Src\Tombo.h"\\r
+       "..\..\Src\TomboLib\AutoPtr.h"\\r
+       "..\..\Src\TomboLib\DirectoryScanner.h"\\r
+       "..\..\Src\TomboLib\File.h"\\r
+       "..\..\Src\TomboLib\Logger.h"\\r
+       "..\..\Src\TomboLib\TString.h"\\r
+       "..\..\Src\TomboLib\Uniconv.h"\\r
+       "..\..\Src\TomboLib\VarBuffer.h"\\r
+       "..\..\Src\TomboURI.h"\\r
+       "..\..\Src\URIScanner.h"\\r
+       \r
+\r
+!ENDIF \r
+\r
+# End Source File\r
+# Begin Source File\r
+\r
+SOURCE=..\..\Src\SearchDlg.cpp\r
+\r
+!IF  "$(CFG)" == "Tombo - Win32 (WCE MIPS) Release"\r
+\r
+DEP_CPP_SEARC=\\r
+       "..\..\Src\Message.h"\\r
+       "..\..\Src\MsgRes\MsgDef.h"\\r
+       "..\..\Src\Property.h"\\r
+       "..\..\Src\SearchDlg.h"\\r
+       "..\..\Src\Tombo.h"\\r
+       "..\..\Src\TomboLib\DialogTemplate.h"\\r
+       "..\..\Src\TomboLib\File.h"\\r
+       "..\..\Src\TomboLib\Logger.h"\\r
+       "..\..\Src\TomboLib\SipControl.h"\\r
+       "..\..\Src\TomboLib\Uniconv.h"\\r
+       \r
+\r
+!ELSEIF  "$(CFG)" == "Tombo - Win32 (WCE SH4) Release"\r
+\r
+DEP_CPP_SEARC=\\r
+       "..\..\Src\Message.h"\\r
+       "..\..\Src\MsgRes\MsgDef.h"\\r
+       "..\..\Src\Property.h"\\r
+       "..\..\Src\SearchDlg.h"\\r
+       "..\..\Src\Tombo.h"\\r
+       "..\..\Src\TomboLib\DialogTemplate.h"\\r
+       "..\..\Src\TomboLib\File.h"\\r
+       "..\..\Src\TomboLib\Logger.h"\\r
+       "..\..\Src\TomboLib\SipControl.h"\\r
+       "..\..\Src\TomboLib\Uniconv.h"\\r
+       \r
+\r
+!ELSEIF  "$(CFG)" == "Tombo - Win32 (WCE SH3) Release"\r
+\r
+DEP_CPP_SEARC=\\r
+       "..\..\Src\Message.h"\\r
+       "..\..\Src\MsgRes\MsgDef.h"\\r
+       "..\..\Src\Property.h"\\r
+       "..\..\Src\SearchDlg.h"\\r
+       "..\..\Src\Tombo.h"\\r
+       "..\..\Src\TomboLib\DialogTemplate.h"\\r
+       "..\..\Src\TomboLib\File.h"\\r
+       "..\..\Src\TomboLib\Logger.h"\\r
+       "..\..\Src\TomboLib\SipControl.h"\\r
+       "..\..\Src\TomboLib\Uniconv.h"\\r
+       \r
+\r
+!ELSEIF  "$(CFG)" == "Tombo - Win32 (WCE ARM) Release"\r
+\r
+DEP_CPP_SEARC=\\r
+       "..\..\Src\Message.h"\\r
+       "..\..\Src\MsgRes\MsgDef.h"\\r
+       "..\..\Src\Property.h"\\r
+       "..\..\Src\SearchDlg.h"\\r
+       "..\..\Src\Tombo.h"\\r
+       "..\..\Src\TomboLib\DialogTemplate.h"\\r
+       "..\..\Src\TomboLib\File.h"\\r
+       "..\..\Src\TomboLib\Logger.h"\\r
+       "..\..\Src\TomboLib\SipControl.h"\\r
+       "..\..\Src\TomboLib\Uniconv.h"\\r
+       \r
+\r
+!ELSEIF  "$(CFG)" == "Tombo - Win32 (WCE ARM) Sig3"\r
+\r
+DEP_CPP_SEARC=\\r
+       "..\..\Src\Message.h"\\r
+       "..\..\Src\MsgRes\MsgDef.h"\\r
+       "..\..\Src\Property.h"\\r
+       "..\..\Src\SearchDlg.h"\\r
+       "..\..\Src\Tombo.h"\\r
+       "..\..\Src\TomboLib\DialogTemplate.h"\\r
+       "..\..\Src\TomboLib\File.h"\\r
+       "..\..\Src\TomboLib\Logger.h"\\r
+       "..\..\Src\TomboLib\SipControl.h"\\r
+       "..\..\Src\TomboLib\Uniconv.h"\\r
+       \r
+\r
+!ENDIF \r
+\r
+# End Source File\r
+# Begin Source File\r
+\r
+SOURCE=..\..\Src\SearchEngine.cpp\r
+\r
+!IF  "$(CFG)" == "Tombo - Win32 (WCE MIPS) Release"\r
+\r
+DEP_CPP_SEARCH=\\r
+       "..\..\Src\Property.h"\\r
+       "..\..\Src\Repository.h"\\r
+       "..\..\Src\SearchEngine.h"\\r
+       "..\..\Src\Tombo.h"\\r
+       "..\..\Src\TomboLib\AutoPtr.h"\\r
+       "..\..\Src\TomboLib\File.h"\\r
+       "..\..\Src\TomboLib\Logger.h"\\r
+       "..\..\Src\TomboLib\TString.h"\\r
+       "..\..\Src\TomboLib\Uniconv.h"\\r
+       "..\..\Src\TomboURI.h"\\r
+       \r
+\r
+!ELSEIF  "$(CFG)" == "Tombo - Win32 (WCE SH4) Release"\r
+\r
+DEP_CPP_SEARCH=\\r
+       "..\..\Src\Property.h"\\r
+       "..\..\Src\Repository.h"\\r
+       "..\..\Src\SearchEngine.h"\\r
+       "..\..\Src\Tombo.h"\\r
+       "..\..\Src\TomboLib\AutoPtr.h"\\r
+       "..\..\Src\TomboLib\File.h"\\r
+       "..\..\Src\TomboLib\Logger.h"\\r
+       "..\..\Src\TomboLib\TString.h"\\r
+       "..\..\Src\TomboLib\Uniconv.h"\\r
+       "..\..\Src\TomboURI.h"\\r
+       \r
+\r
+!ELSEIF  "$(CFG)" == "Tombo - Win32 (WCE SH3) Release"\r
+\r
+DEP_CPP_SEARCH=\\r
+       "..\..\Src\Property.h"\\r
+       "..\..\Src\Repository.h"\\r
+       "..\..\Src\SearchEngine.h"\\r
+       "..\..\Src\Tombo.h"\\r
+       "..\..\Src\TomboLib\AutoPtr.h"\\r
+       "..\..\Src\TomboLib\File.h"\\r
+       "..\..\Src\TomboLib\Logger.h"\\r
+       "..\..\Src\TomboLib\TString.h"\\r
+       "..\..\Src\TomboLib\Uniconv.h"\\r
+       "..\..\Src\TomboURI.h"\\r
+       \r
+\r
+!ELSEIF  "$(CFG)" == "Tombo - Win32 (WCE ARM) Release"\r
+\r
+DEP_CPP_SEARCH=\\r
+       "..\..\Src\Property.h"\\r
+       "..\..\Src\Repository.h"\\r
+       "..\..\Src\SearchEngine.h"\\r
+       "..\..\Src\Tombo.h"\\r
+       "..\..\Src\TomboLib\AutoPtr.h"\\r
+       "..\..\Src\TomboLib\File.h"\\r
+       "..\..\Src\TomboLib\Logger.h"\\r
+       "..\..\Src\TomboLib\TString.h"\\r
+       "..\..\Src\TomboLib\Uniconv.h"\\r
+       "..\..\Src\TomboURI.h"\\r
+       \r
+\r
+!ELSEIF  "$(CFG)" == "Tombo - Win32 (WCE ARM) Sig3"\r
+\r
+DEP_CPP_SEARCH=\\r
+       "..\..\Src\Property.h"\\r
+       "..\..\Src\Repository.h"\\r
+       "..\..\Src\SearchEngine.h"\\r
+       "..\..\Src\Tombo.h"\\r
+       "..\..\Src\TomboLib\AutoPtr.h"\\r
+       "..\..\Src\TomboLib\File.h"\\r
+       "..\..\Src\TomboLib\Logger.h"\\r
+       "..\..\Src\TomboLib\TString.h"\\r
+       "..\..\Src\TomboLib\Uniconv.h"\\r
+       "..\..\Src\TomboURI.h"\\r
+       \r
+\r
+!ENDIF \r
+\r
+# End Source File\r
+# Begin Source File\r
+\r
+SOURCE=..\..\Src\SearchTree.cpp\r
+\r
+!IF  "$(CFG)" == "Tombo - Win32 (WCE MIPS) Release"\r
+\r
+DEP_CPP_SEARCHT=\\r
+       "..\..\Src\Message.h"\\r
+       "..\..\Src\MsgRes\MsgDef.h"\\r
+       "..\..\Src\Property.h"\\r
+       "..\..\Src\Repository.h"\\r
+       "..\..\Src\SearchEngine.h"\\r
+       "..\..\Src\SearchTree.h"\\r
+       "..\..\Src\Tombo.h"\\r
+       "..\..\Src\TomboLib\DialogTemplate.h"\\r
+       "..\..\Src\TomboLib\File.h"\\r
+       "..\..\Src\TomboLib\Logger.h"\\r
+       "..\..\Src\TomboLib\TString.h"\\r
+       "..\..\Src\TomboLib\Uniconv.h"\\r
+       "..\..\Src\TomboLib\VarBuffer.h"\\r
+       "..\..\Src\TomboURI.h"\\r
+       "..\..\Src\URIScanner.h"\\r
+       \r
+\r
+!ELSEIF  "$(CFG)" == "Tombo - Win32 (WCE SH4) Release"\r
+\r
+DEP_CPP_SEARCHT=\\r
+       "..\..\Src\Message.h"\\r
+       "..\..\Src\MsgRes\MsgDef.h"\\r
+       "..\..\Src\Property.h"\\r
+       "..\..\Src\Repository.h"\\r
+       "..\..\Src\SearchEngine.h"\\r
+       "..\..\Src\SearchTree.h"\\r
+       "..\..\Src\Tombo.h"\\r
+       "..\..\Src\TomboLib\DialogTemplate.h"\\r
+       "..\..\Src\TomboLib\File.h"\\r
+       "..\..\Src\TomboLib\Logger.h"\\r
+       "..\..\Src\TomboLib\TString.h"\\r
+       "..\..\Src\TomboLib\Uniconv.h"\\r
+       "..\..\Src\TomboLib\VarBuffer.h"\\r
+       "..\..\Src\TomboURI.h"\\r
+       "..\..\Src\URIScanner.h"\\r
+       \r
+\r
+!ELSEIF  "$(CFG)" == "Tombo - Win32 (WCE SH3) Release"\r
+\r
+DEP_CPP_SEARCHT=\\r
+       "..\..\Src\Message.h"\\r
+       "..\..\Src\MsgRes\MsgDef.h"\\r
+       "..\..\Src\Property.h"\\r
+       "..\..\Src\Repository.h"\\r
+       "..\..\Src\SearchEngine.h"\\r
+       "..\..\Src\SearchTree.h"\\r
+       "..\..\Src\Tombo.h"\\r
+       "..\..\Src\TomboLib\DialogTemplate.h"\\r
+       "..\..\Src\TomboLib\File.h"\\r
+       "..\..\Src\TomboLib\Logger.h"\\r
+       "..\..\Src\TomboLib\TString.h"\\r
+       "..\..\Src\TomboLib\Uniconv.h"\\r
+       "..\..\Src\TomboLib\VarBuffer.h"\\r
+       "..\..\Src\TomboURI.h"\\r
+       "..\..\Src\URIScanner.h"\\r
+       \r
+\r
+!ELSEIF  "$(CFG)" == "Tombo - Win32 (WCE ARM) Release"\r
+\r
+DEP_CPP_SEARCHT=\\r
+       "..\..\Src\Message.h"\\r
+       "..\..\Src\MsgRes\MsgDef.h"\\r
+       "..\..\Src\Property.h"\\r
+       "..\..\Src\Repository.h"\\r
+       "..\..\Src\SearchEngine.h"\\r
+       "..\..\Src\SearchTree.h"\\r
+       "..\..\Src\Tombo.h"\\r
+       "..\..\Src\TomboLib\DialogTemplate.h"\\r
+       "..\..\Src\TomboLib\File.h"\\r
+       "..\..\Src\TomboLib\Logger.h"\\r
+       "..\..\Src\TomboLib\TString.h"\\r
+       "..\..\Src\TomboLib\Uniconv.h"\\r
+       "..\..\Src\TomboLib\VarBuffer.h"\\r
+       "..\..\Src\TomboURI.h"\\r
+       "..\..\Src\URIScanner.h"\\r
+       \r
+\r
+!ELSEIF  "$(CFG)" == "Tombo - Win32 (WCE ARM) Sig3"\r
+\r
+DEP_CPP_SEARCHT=\\r
+       "..\..\Src\Message.h"\\r
+       "..\..\Src\MsgRes\MsgDef.h"\\r
+       "..\..\Src\Property.h"\\r
+       "..\..\Src\Repository.h"\\r
+       "..\..\Src\SearchEngine.h"\\r
+       "..\..\Src\SearchTree.h"\\r
+       "..\..\Src\Tombo.h"\\r
+       "..\..\Src\TomboLib\DialogTemplate.h"\\r
+       "..\..\Src\TomboLib\File.h"\\r
+       "..\..\Src\TomboLib\Logger.h"\\r
+       "..\..\Src\TomboLib\TString.h"\\r
+       "..\..\Src\TomboLib\Uniconv.h"\\r
+       "..\..\Src\TomboLib\VarBuffer.h"\\r
+       "..\..\Src\TomboURI.h"\\r
+       "..\..\Src\URIScanner.h"\\r
+       \r
+\r
+!ENDIF \r
+\r
+# End Source File\r
+# Begin Source File\r
+\r
+SOURCE=..\..\Src\SelectViewWndProc.cpp\r
+\r
+!IF  "$(CFG)" == "Tombo - Win32 (WCE MIPS) Release"\r
+\r
+DEP_CPP_SELEC=\\r
+       "..\..\Src\MemoSelectView.h"\\r
+       "..\..\Src\Property.h"\\r
+       "..\..\Src\Tombo.h"\\r
+       "..\..\Src\TomboLib\File.h"\\r
+       "..\..\Src\TomboLib\Logger.h"\\r
+       \r
+\r
+!ELSEIF  "$(CFG)" == "Tombo - Win32 (WCE SH4) Release"\r
+\r
+DEP_CPP_SELEC=\\r
+       "..\..\Src\MemoSelectView.h"\\r
+       "..\..\Src\Property.h"\\r
+       "..\..\Src\Tombo.h"\\r
+       "..\..\Src\TomboLib\File.h"\\r
+       "..\..\Src\TomboLib\Logger.h"\\r
+       \r
+\r
+!ELSEIF  "$(CFG)" == "Tombo - Win32 (WCE SH3) Release"\r
+\r
+DEP_CPP_SELEC=\\r
+       "..\..\Src\MemoSelectView.h"\\r
+       "..\..\Src\Property.h"\\r
+       "..\..\Src\Tombo.h"\\r
+       "..\..\Src\TomboLib\File.h"\\r
+       "..\..\Src\TomboLib\Logger.h"\\r
+       \r
+\r
+!ELSEIF  "$(CFG)" == "Tombo - Win32 (WCE ARM) Release"\r
+\r
+DEP_CPP_SELEC=\\r
+       "..\..\Src\MemoSelectView.h"\\r
+       "..\..\Src\Property.h"\\r
+       "..\..\Src\Tombo.h"\\r
+       "..\..\Src\TomboLib\File.h"\\r
+       "..\..\Src\TomboLib\Logger.h"\\r
+       \r
+\r
+!ELSEIF  "$(CFG)" == "Tombo - Win32 (WCE ARM) Sig3"\r
+\r
+DEP_CPP_SELEC=\\r
+       "..\..\Src\MemoSelectView.h"\\r
+       "..\..\Src\Property.h"\\r
+       "..\..\Src\Tombo.h"\\r
+       "..\..\Src\TomboLib\File.h"\\r
+       "..\..\Src\TomboLib\Logger.h"\\r
+       \r
+\r
+!ENDIF \r
+\r
+# End Source File\r
+# Begin Source File\r
+\r
+SOURCE=..\..\Src\TomboLib\SipControl.cpp\r
+\r
+!IF  "$(CFG)" == "Tombo - Win32 (WCE MIPS) Release"\r
+\r
+DEP_CPP_SIPCO=\\r
+       "..\..\Src\Tombo.h"\\r
+       "..\..\Src\TomboLib\File.h"\\r
+       "..\..\Src\TomboLib\Logger.h"\\r
+       "..\..\Src\TomboLib\SipControl.h"\\r
+       \r
+\r
+!ELSEIF  "$(CFG)" == "Tombo - Win32 (WCE SH4) Release"\r
+\r
+DEP_CPP_SIPCO=\\r
+       "..\..\Src\Tombo.h"\\r
+       "..\..\Src\TomboLib\File.h"\\r
+       "..\..\Src\TomboLib\Logger.h"\\r
+       "..\..\Src\TomboLib\SipControl.h"\\r
+       \r
+\r
+!ELSEIF  "$(CFG)" == "Tombo - Win32 (WCE SH3) Release"\r
+\r
+DEP_CPP_SIPCO=\\r
+       "..\..\Src\Tombo.h"\\r
+       "..\..\Src\TomboLib\File.h"\\r
+       "..\..\Src\TomboLib\Logger.h"\\r
+       "..\..\Src\TomboLib\SipControl.h"\\r
+       \r
+\r
+!ELSEIF  "$(CFG)" == "Tombo - Win32 (WCE ARM) Release"\r
+\r
+DEP_CPP_SIPCO=\\r
+       "..\..\Src\Tombo.h"\\r
+       "..\..\Src\TomboLib\File.h"\\r
+       "..\..\Src\TomboLib\Logger.h"\\r
+       "..\..\Src\TomboLib\SipControl.h"\\r
+       \r
+\r
+!ELSEIF  "$(CFG)" == "Tombo - Win32 (WCE ARM) Sig3"\r
+\r
+DEP_CPP_SIPCO=\\r
+       "..\..\Src\Tombo.h"\\r
+       "..\..\Src\TomboLib\File.h"\\r
+       "..\..\Src\TomboLib\Logger.h"\\r
+       "..\..\Src\TomboLib\SipControl.h"\\r
+       \r
+\r
+!ENDIF \r
+\r
+# End Source File\r
+# Begin Source File\r
+\r
+SOURCE=..\..\Src\StatusBar.cpp\r
+\r
+!IF  "$(CFG)" == "Tombo - Win32 (WCE MIPS) Release"\r
+\r
+DEP_CPP_STATU=\\r
+       "..\..\Src\StatusBar.h"\\r
+       \r
+\r
+!ELSEIF  "$(CFG)" == "Tombo - Win32 (WCE SH4) Release"\r
+\r
+DEP_CPP_STATU=\\r
+       "..\..\Src\StatusBar.h"\\r
+       \r
+\r
+!ELSEIF  "$(CFG)" == "Tombo - Win32 (WCE SH3) Release"\r
+\r
+DEP_CPP_STATU=\\r
+       "..\..\Src\StatusBar.h"\\r
+       \r
+\r
+!ELSEIF  "$(CFG)" == "Tombo - Win32 (WCE ARM) Release"\r
+\r
+DEP_CPP_STATU=\\r
+       "..\..\Src\StatusBar.h"\\r
+       \r
+\r
+!ELSEIF  "$(CFG)" == "Tombo - Win32 (WCE ARM) Sig3"\r
+\r
+DEP_CPP_STATU=\\r
+       "..\..\Src\StatusBar.h"\\r
+       \r
+\r
+!ENDIF \r
+\r
+# End Source File\r
+# Begin Source File\r
+\r
+SOURCE=..\..\Src\YAEdit\StringSplitter.cpp\r
+\r
+!IF  "$(CFG)" == "Tombo - Win32 (WCE MIPS) Release"\r
+\r
+DEP_CPP_STRIN=\\r
+       "..\..\Src\TomboLib\VarBuffer.h"\\r
+       "..\..\Src\YAEdit\StringSplitter.h"\\r
+       \r
+\r
+!ELSEIF  "$(CFG)" == "Tombo - Win32 (WCE SH4) Release"\r
+\r
+DEP_CPP_STRIN=\\r
+       "..\..\Src\TomboLib\VarBuffer.h"\\r
+       "..\..\Src\YAEdit\StringSplitter.h"\\r
+       \r
+\r
+!ELSEIF  "$(CFG)" == "Tombo - Win32 (WCE SH3) Release"\r
+\r
+DEP_CPP_STRIN=\\r
+       "..\..\Src\TomboLib\VarBuffer.h"\\r
+       "..\..\Src\YAEdit\StringSplitter.h"\\r
+       \r
+\r
+!ELSEIF  "$(CFG)" == "Tombo - Win32 (WCE ARM) Release"\r
+\r
+DEP_CPP_STRIN=\\r
+       "..\..\Src\TomboLib\VarBuffer.h"\\r
+       "..\..\Src\YAEdit\StringSplitter.h"\\r
+       \r
+\r
+!ELSEIF  "$(CFG)" == "Tombo - Win32 (WCE ARM) Sig3"\r
+\r
+DEP_CPP_STRIN=\\r
+       "..\..\Src\TomboLib\VarBuffer.h"\\r
+       "..\..\Src\YAEdit\StringSplitter.h"\\r
+       \r
+\r
+!ENDIF \r
+\r
+# End Source File\r
+# Begin Source File\r
+\r
+SOURCE=.\res\Tombo.rc\r
+\r
+!IF  "$(CFG)" == "Tombo - Win32 (WCE MIPS) Release"\r
+\r
+!ELSEIF  "$(CFG)" == "Tombo - Win32 (WCE SH4) Release"\r
+\r
+!ELSEIF  "$(CFG)" == "Tombo - Win32 (WCE SH3) Release"\r
+\r
+!ELSEIF  "$(CFG)" == "Tombo - Win32 (WCE ARM) Release"\r
+\r
+!ELSEIF  "$(CFG)" == "Tombo - Win32 (WCE ARM) Sig3"\r
+\r
+!ENDIF \r
+\r
+# End Source File\r
+# Begin Source File\r
+\r
+SOURCE=..\..\Src\TomboPropertyTab.cpp\r
+\r
+!IF  "$(CFG)" == "Tombo - Win32 (WCE MIPS) Release"\r
+\r
+DEP_CPP_TOMBO=\\r
+       "..\..\Src\FileSelector.h"\\r
+       "..\..\Src\Message.h"\\r
+       "..\..\Src\MsgRes\MsgDef.h"\\r
+       "..\..\Src\Property.h"\\r
+       "..\..\Src\Tombo.h"\\r
+       "..\..\Src\TomboLib\DialogTemplate.h"\\r
+       "..\..\Src\TomboLib\File.h"\\r
+       "..\..\Src\TomboLib\Logger.h"\\r
+       "..\..\Src\TomboLib\PropertyPage.h"\\r
+       "..\..\Src\TomboLib\TString.h"\\r
+       "..\..\Src\TomboLib\Uniconv.h"\\r
+       "..\..\Src\TomboPropertyTab.h"\\r
+       \r
+\r
+!ELSEIF  "$(CFG)" == "Tombo - Win32 (WCE SH4) Release"\r
+\r
+DEP_CPP_TOMBO=\\r
+       "..\..\Src\FileSelector.h"\\r
+       "..\..\Src\Message.h"\\r
+       "..\..\Src\MsgRes\MsgDef.h"\\r
+       "..\..\Src\Property.h"\\r
+       "..\..\Src\Tombo.h"\\r
+       "..\..\Src\TomboLib\DialogTemplate.h"\\r
+       "..\..\Src\TomboLib\File.h"\\r
+       "..\..\Src\TomboLib\Logger.h"\\r
+       "..\..\Src\TomboLib\PropertyPage.h"\\r
+       "..\..\Src\TomboLib\TString.h"\\r
+       "..\..\Src\TomboLib\Uniconv.h"\\r
+       "..\..\Src\TomboPropertyTab.h"\\r
+       \r
+\r
+!ELSEIF  "$(CFG)" == "Tombo - Win32 (WCE SH3) Release"\r
+\r
+DEP_CPP_TOMBO=\\r
+       "..\..\Src\FileSelector.h"\\r
+       "..\..\Src\Message.h"\\r
+       "..\..\Src\MsgRes\MsgDef.h"\\r
+       "..\..\Src\Property.h"\\r
+       "..\..\Src\Tombo.h"\\r
+       "..\..\Src\TomboLib\DialogTemplate.h"\\r
+       "..\..\Src\TomboLib\File.h"\\r
+       "..\..\Src\TomboLib\Logger.h"\\r
+       "..\..\Src\TomboLib\PropertyPage.h"\\r
+       "..\..\Src\TomboLib\TString.h"\\r
+       "..\..\Src\TomboLib\Uniconv.h"\\r
+       "..\..\Src\TomboPropertyTab.h"\\r
+       \r
+\r
+!ELSEIF  "$(CFG)" == "Tombo - Win32 (WCE ARM) Release"\r
+\r
+DEP_CPP_TOMBO=\\r
+       "..\..\Src\FileSelector.h"\\r
+       "..\..\Src\Message.h"\\r
+       "..\..\Src\MsgRes\MsgDef.h"\\r
+       "..\..\Src\Property.h"\\r
+       "..\..\Src\Tombo.h"\\r
+       "..\..\Src\TomboLib\DialogTemplate.h"\\r
+       "..\..\Src\TomboLib\File.h"\\r
+       "..\..\Src\TomboLib\Logger.h"\\r
+       "..\..\Src\TomboLib\PropertyPage.h"\\r
+       "..\..\Src\TomboLib\TString.h"\\r
+       "..\..\Src\TomboLib\Uniconv.h"\\r
+       "..\..\Src\TomboPropertyTab.h"\\r
+       \r
+\r
+!ELSEIF  "$(CFG)" == "Tombo - Win32 (WCE ARM) Sig3"\r
+\r
+DEP_CPP_TOMBO=\\r
+       "..\..\Src\FileSelector.h"\\r
+       "..\..\Src\Message.h"\\r
+       "..\..\Src\MsgRes\MsgDef.h"\\r
+       "..\..\Src\Property.h"\\r
+       "..\..\Src\Tombo.h"\\r
+       "..\..\Src\TomboLib\DialogTemplate.h"\\r
+       "..\..\Src\TomboLib\File.h"\\r
+       "..\..\Src\TomboLib\Logger.h"\\r
+       "..\..\Src\TomboLib\PropertyPage.h"\\r
+       "..\..\Src\TomboLib\TString.h"\\r
+       "..\..\Src\TomboLib\Uniconv.h"\\r
+       "..\..\Src\TomboPropertyTab.h"\\r
+       \r
+\r
+!ENDIF \r
+\r
+# End Source File\r
+# Begin Source File\r
+\r
+SOURCE=..\..\Src\TomboURI.cpp\r
+\r
+!IF  "$(CFG)" == "Tombo - Win32 (WCE MIPS) Release"\r
+\r
+DEP_CPP_TOMBOU=\\r
+       "..\..\Src\TomboLib\TString.h"\\r
+       "..\..\Src\TomboURI.h"\\r
+       \r
+\r
+!ELSEIF  "$(CFG)" == "Tombo - Win32 (WCE SH4) Release"\r
+\r
+DEP_CPP_TOMBOU=\\r
+       "..\..\Src\TomboLib\TString.h"\\r
+       "..\..\Src\TomboURI.h"\\r
+       \r
+\r
+!ELSEIF  "$(CFG)" == "Tombo - Win32 (WCE SH3) Release"\r
+\r
+DEP_CPP_TOMBOU=\\r
+       "..\..\Src\TomboLib\TString.h"\\r
+       "..\..\Src\TomboURI.h"\\r
+       \r
+\r
+!ELSEIF  "$(CFG)" == "Tombo - Win32 (WCE ARM) Release"\r
+\r
+DEP_CPP_TOMBOU=\\r
+       "..\..\Src\TomboLib\TString.h"\\r
+       "..\..\Src\TomboURI.h"\\r
+       \r
+\r
+!ELSEIF  "$(CFG)" == "Tombo - Win32 (WCE ARM) Sig3"\r
+\r
+DEP_CPP_TOMBOU=\\r
+       "..\..\Src\TomboLib\TString.h"\\r
+       "..\..\Src\TomboURI.h"\\r
+       \r
+\r
+!ENDIF \r
+\r
+# End Source File\r
+# Begin Source File\r
+\r
+SOURCE=..\..\Src\TreeViewItem.cpp\r
+\r
+!IF  "$(CFG)" == "Tombo - Win32 (WCE MIPS) Release"\r
+\r
+DEP_CPP_TREEV=\\r
+       "..\..\Src\HPCPlatform.h"\\r
+       "..\..\Src\LagendaPlatform.h"\\r
+       "..\..\Src\MainFrame.h"\\r
+       "..\..\Src\MemoDetailsView.h"\\r
+       "..\..\Src\MemoManager.h"\\r
+       "..\..\Src\MemoSelectView.h"\\r
+       "..\..\Src\Message.h"\\r
+       "..\..\Src\MsgRes\MsgDef.h"\\r
+       "..\..\Src\PasswordManager.h"\\r
+       "..\..\Src\PlatformLayer.h"\\r
+       "..\..\Src\PocketPCPlatform.h"\\r
+       "..\..\Src\Property.h"\\r
+       "..\..\Src\PsPCPlatform.h"\\r
+       "..\..\Src\Repository.h"\\r
+       "..\..\Src\Tombo.h"\\r
+       "..\..\Src\TomboLib\AutoPtr.h"\\r
+       "..\..\Src\TomboLib\DirectoryScanner.h"\\r
+       "..\..\Src\TomboLib\File.h"\\r
+       "..\..\Src\TomboLib\Logger.h"\\r
+       "..\..\Src\TomboLib\TString.h"\\r
+       "..\..\Src\TomboLib\Uniconv.h"\\r
+       "..\..\Src\TomboLib\VarBuffer.h"\\r
+       "..\..\Src\TomboURI.h"\\r
+       "..\..\Src\TreeViewItem.h"\\r
+       "..\..\Src\TSParser.h"\\r
+       "..\..\Src\URIScanner.h"\\r
+       "..\..\Src\VFManager.h"\\r
+       "..\..\Src\VFStream.h"\\r
+       "..\..\Src\Win32Platform.h"\\r
+       \r
+NODEP_CPP_TREEV=\\r
+       "..\..\Src\COShellAPI.h"\\r
+       \r
+\r
+!ELSEIF  "$(CFG)" == "Tombo - Win32 (WCE SH4) Release"\r
+\r
+DEP_CPP_TREEV=\\r
+       "..\..\Src\HPCPlatform.h"\\r
+       "..\..\Src\LagendaPlatform.h"\\r
+       "..\..\Src\MainFrame.h"\\r
+       "..\..\Src\MemoDetailsView.h"\\r
+       "..\..\Src\MemoManager.h"\\r
+       "..\..\Src\MemoSelectView.h"\\r
+       "..\..\Src\Message.h"\\r
+       "..\..\Src\MsgRes\MsgDef.h"\\r
+       "..\..\Src\PasswordManager.h"\\r
+       "..\..\Src\PlatformLayer.h"\\r
+       "..\..\Src\PocketPCPlatform.h"\\r
+       "..\..\Src\Property.h"\\r
+       "..\..\Src\PsPCPlatform.h"\\r
+       "..\..\Src\Repository.h"\\r
+       "..\..\Src\Tombo.h"\\r
+       "..\..\Src\TomboLib\AutoPtr.h"\\r
+       "..\..\Src\TomboLib\DirectoryScanner.h"\\r
+       "..\..\Src\TomboLib\File.h"\\r
+       "..\..\Src\TomboLib\Logger.h"\\r
+       "..\..\Src\TomboLib\TString.h"\\r
+       "..\..\Src\TomboLib\Uniconv.h"\\r
+       "..\..\Src\TomboLib\VarBuffer.h"\\r
+       "..\..\Src\TomboURI.h"\\r
+       "..\..\Src\TreeViewItem.h"\\r
+       "..\..\Src\TSParser.h"\\r
+       "..\..\Src\URIScanner.h"\\r
+       "..\..\Src\VFManager.h"\\r
+       "..\..\Src\VFStream.h"\\r
+       "..\..\Src\Win32Platform.h"\\r
+       \r
+NODEP_CPP_TREEV=\\r
+       "..\..\Src\COShellAPI.h"\\r
+       \r
+\r
+!ELSEIF  "$(CFG)" == "Tombo - Win32 (WCE SH3) Release"\r
+\r
+DEP_CPP_TREEV=\\r
+       "..\..\Src\HPCPlatform.h"\\r
+       "..\..\Src\LagendaPlatform.h"\\r
+       "..\..\Src\MainFrame.h"\\r
+       "..\..\Src\MemoDetailsView.h"\\r
+       "..\..\Src\MemoManager.h"\\r
+       "..\..\Src\MemoSelectView.h"\\r
+       "..\..\Src\Message.h"\\r
+       "..\..\Src\MsgRes\MsgDef.h"\\r
+       "..\..\Src\PasswordManager.h"\\r
+       "..\..\Src\PlatformLayer.h"\\r
+       "..\..\Src\PocketPCPlatform.h"\\r
+       "..\..\Src\Property.h"\\r
+       "..\..\Src\PsPCPlatform.h"\\r
+       "..\..\Src\Repository.h"\\r
+       "..\..\Src\Tombo.h"\\r
+       "..\..\Src\TomboLib\AutoPtr.h"\\r
+       "..\..\Src\TomboLib\DirectoryScanner.h"\\r
+       "..\..\Src\TomboLib\File.h"\\r
+       "..\..\Src\TomboLib\Logger.h"\\r
+       "..\..\Src\TomboLib\TString.h"\\r
+       "..\..\Src\TomboLib\Uniconv.h"\\r
+       "..\..\Src\TomboLib\VarBuffer.h"\\r
+       "..\..\Src\TomboURI.h"\\r
+       "..\..\Src\TreeViewItem.h"\\r
+       "..\..\Src\TSParser.h"\\r
+       "..\..\Src\URIScanner.h"\\r
+       "..\..\Src\VFManager.h"\\r
+       "..\..\Src\VFStream.h"\\r
+       "..\..\Src\Win32Platform.h"\\r
+       \r
+NODEP_CPP_TREEV=\\r
+       "..\..\Src\COShellAPI.h"\\r
+       \r
+\r
+!ELSEIF  "$(CFG)" == "Tombo - Win32 (WCE ARM) Release"\r
+\r
+DEP_CPP_TREEV=\\r
+       "..\..\Src\HPCPlatform.h"\\r
+       "..\..\Src\LagendaPlatform.h"\\r
+       "..\..\Src\MainFrame.h"\\r
+       "..\..\Src\MemoDetailsView.h"\\r
+       "..\..\Src\MemoManager.h"\\r
+       "..\..\Src\MemoSelectView.h"\\r
+       "..\..\Src\Message.h"\\r
+       "..\..\Src\MsgRes\MsgDef.h"\\r
+       "..\..\Src\PasswordManager.h"\\r
+       "..\..\Src\PlatformLayer.h"\\r
+       "..\..\Src\PocketPCPlatform.h"\\r
+       "..\..\Src\Property.h"\\r
+       "..\..\Src\PsPCPlatform.h"\\r
+       "..\..\Src\Repository.h"\\r
+       "..\..\Src\Tombo.h"\\r
+       "..\..\Src\TomboLib\AutoPtr.h"\\r
+       "..\..\Src\TomboLib\DirectoryScanner.h"\\r
+       "..\..\Src\TomboLib\File.h"\\r
+       "..\..\Src\TomboLib\Logger.h"\\r
+       "..\..\Src\TomboLib\TString.h"\\r
+       "..\..\Src\TomboLib\Uniconv.h"\\r
+       "..\..\Src\TomboLib\VarBuffer.h"\\r
+       "..\..\Src\TomboURI.h"\\r
+       "..\..\Src\TreeViewItem.h"\\r
+       "..\..\Src\TSParser.h"\\r
+       "..\..\Src\URIScanner.h"\\r
+       "..\..\Src\VFManager.h"\\r
+       "..\..\Src\VFStream.h"\\r
+       "..\..\Src\Win32Platform.h"\\r
+       \r
+NODEP_CPP_TREEV=\\r
+       "..\..\Src\COShellAPI.h"\\r
+       \r
+\r
+!ELSEIF  "$(CFG)" == "Tombo - Win32 (WCE ARM) Sig3"\r
+\r
+DEP_CPP_TREEV=\\r
+       "..\..\Src\HPCPlatform.h"\\r
+       "..\..\Src\LagendaPlatform.h"\\r
+       "..\..\Src\MainFrame.h"\\r
+       "..\..\Src\MemoDetailsView.h"\\r
+       "..\..\Src\MemoManager.h"\\r
+       "..\..\Src\MemoSelectView.h"\\r
+       "..\..\Src\Message.h"\\r
+       "..\..\Src\MsgRes\MsgDef.h"\\r
+       "..\..\Src\PasswordManager.h"\\r
+       "..\..\Src\PlatformLayer.h"\\r
+       "..\..\Src\PocketPCPlatform.h"\\r
+       "..\..\Src\Property.h"\\r
+       "..\..\Src\PsPCPlatform.h"\\r
+       "..\..\Src\Repository.h"\\r
+       "..\..\Src\Tombo.h"\\r
+       "..\..\Src\TomboLib\AutoPtr.h"\\r
+       "..\..\Src\TomboLib\DirectoryScanner.h"\\r
+       "..\..\Src\TomboLib\File.h"\\r
+       "..\..\Src\TomboLib\Logger.h"\\r
+       "..\..\Src\TomboLib\TString.h"\\r
+       "..\..\Src\TomboLib\Uniconv.h"\\r
+       "..\..\Src\TomboLib\VarBuffer.h"\\r
+       "..\..\Src\TomboURI.h"\\r
+       "..\..\Src\TreeViewItem.h"\\r
+       "..\..\Src\TSParser.h"\\r
+       "..\..\Src\URIScanner.h"\\r
+       "..\..\Src\VFManager.h"\\r
+       "..\..\Src\VFStream.h"\\r
+       "..\..\Src\Win32Platform.h"\\r
+       \r
+NODEP_CPP_TREEV=\\r
+       "..\..\Src\COShellAPI.h"\\r
+       \r
+\r
+!ENDIF \r
+\r
+# End Source File\r
+# Begin Source File\r
+\r
+SOURCE=..\..\Src\TSParser.cpp\r
+\r
+!IF  "$(CFG)" == "Tombo - Win32 (WCE MIPS) Release"\r
+\r
+DEP_CPP_TSPAR=\\r
+       "..\..\expat\include\expat.h"\\r
+       "..\..\Src\Tombo.h"\\r
+       "..\..\Src\TomboLib\AutoPtr.h"\\r
+       "..\..\Src\TomboLib\File.h"\\r
+       "..\..\Src\TomboLib\Logger.h"\\r
+       "..\..\Src\TomboLib\TString.h"\\r
+       "..\..\Src\TomboLib\Uniconv.h"\\r
+       "..\..\Src\TomboLib\VarBuffer.h"\\r
+       "..\..\Src\TomboURI.h"\\r
+       "..\..\Src\TSParser.h"\\r
+       "..\..\Src\VFManager.h"\\r
+       "..\..\Src\VFStream.h"\\r
+       \r
+\r
+!ELSEIF  "$(CFG)" == "Tombo - Win32 (WCE SH4) Release"\r
+\r
+DEP_CPP_TSPAR=\\r
+       "..\..\expat\include\expat.h"\\r
+       "..\..\Src\Tombo.h"\\r
+       "..\..\Src\TomboLib\File.h"\\r
+       "..\..\Src\TomboLib\Logger.h"\\r
+       "..\..\Src\TomboLib\Uniconv.h"\\r
+       "..\..\Src\TomboLib\VarBuffer.h"\\r
+       "..\..\Src\TSParser.h"\\r
+       "..\..\Src\VFManager.h"\\r
+       "..\..\Src\VFStream.h"\\r
+       \r
+\r
+!ELSEIF  "$(CFG)" == "Tombo - Win32 (WCE SH3) Release"\r
+\r
+DEP_CPP_TSPAR=\\r
+       "..\..\expat\include\expat.h"\\r
+       "..\..\Src\Tombo.h"\\r
+       "..\..\Src\TomboLib\File.h"\\r
+       "..\..\Src\TomboLib\Logger.h"\\r
+       "..\..\Src\TomboLib\Uniconv.h"\\r
+       "..\..\Src\TomboLib\VarBuffer.h"\\r
+       "..\..\Src\TSParser.h"\\r
+       "..\..\Src\VFManager.h"\\r
+       "..\..\Src\VFStream.h"\\r
+       \r
+\r
+!ELSEIF  "$(CFG)" == "Tombo - Win32 (WCE ARM) Release"\r
+\r
+DEP_CPP_TSPAR=\\r
+       "..\..\expat\include\expat.h"\\r
+       "..\..\Src\Tombo.h"\\r
+       "..\..\Src\TomboLib\File.h"\\r
+       "..\..\Src\TomboLib\Logger.h"\\r
+       "..\..\Src\TomboLib\Uniconv.h"\\r
+       "..\..\Src\TomboLib\VarBuffer.h"\\r
+       "..\..\Src\TSParser.h"\\r
+       "..\..\Src\VFManager.h"\\r
+       "..\..\Src\VFStream.h"\\r
+       \r
+\r
+!ELSEIF  "$(CFG)" == "Tombo - Win32 (WCE ARM) Sig3"\r
+\r
+DEP_CPP_TSPAR=\\r
+       "..\..\expat\include\expat.h"\\r
+       "..\..\Src\Tombo.h"\\r
+       "..\..\Src\TomboLib\File.h"\\r
+       "..\..\Src\TomboLib\Logger.h"\\r
+       "..\..\Src\TomboLib\Uniconv.h"\\r
+       "..\..\Src\TomboLib\VarBuffer.h"\\r
+       "..\..\Src\TSParser.h"\\r
+       "..\..\Src\VFManager.h"\\r
+       "..\..\Src\VFStream.h"\\r
+       \r
+\r
+!ENDIF \r
+\r
+# End Source File\r
+# Begin Source File\r
+\r
+SOURCE=..\..\Src\TomboLib\TString.cpp\r
+\r
+!IF  "$(CFG)" == "Tombo - Win32 (WCE MIPS) Release"\r
+\r
+DEP_CPP_TSTRI=\\r
+       "..\..\Src\TomboLib\TString.h"\\r
+       "..\..\Src\TomboLib\Uniconv.h"\\r
+       \r
+\r
+!ELSEIF  "$(CFG)" == "Tombo - Win32 (WCE SH4) Release"\r
+\r
+DEP_CPP_TSTRI=\\r
+       "..\..\Src\TomboLib\TString.h"\\r
+       "..\..\Src\TomboLib\Uniconv.h"\\r
+       \r
+\r
+!ELSEIF  "$(CFG)" == "Tombo - Win32 (WCE SH3) Release"\r
+\r
+DEP_CPP_TSTRI=\\r
+       "..\..\Src\TomboLib\TString.h"\\r
+       "..\..\Src\TomboLib\Uniconv.h"\\r
+       \r
+\r
+!ELSEIF  "$(CFG)" == "Tombo - Win32 (WCE ARM) Release"\r
+\r
+DEP_CPP_TSTRI=\\r
+       "..\..\Src\TomboLib\TString.h"\\r
+       "..\..\Src\TomboLib\Uniconv.h"\\r
+       \r
+\r
+!ELSEIF  "$(CFG)" == "Tombo - Win32 (WCE ARM) Sig3"\r
+\r
+DEP_CPP_TSTRI=\\r
+       "..\..\Src\TomboLib\TString.h"\\r
+       "..\..\Src\TomboLib\Uniconv.h"\\r
+       \r
+\r
+!ENDIF \r
+\r
+# End Source File\r
+# Begin Source File\r
+\r
+SOURCE=..\..\Src\TomboLib\Uniconv.cpp\r
+\r
+!IF  "$(CFG)" == "Tombo - Win32 (WCE MIPS) Release"\r
+\r
+DEP_CPP_UNICO=\\r
+       "..\..\Src\Property.h"\\r
+       "..\..\Src\Tombo.h"\\r
+       "..\..\Src\TomboLib\AutoPtr.h"\\r
+       "..\..\Src\TomboLib\File.h"\\r
+       "..\..\Src\TomboLib\Logger.h"\\r
+       "..\..\Src\TomboLib\TString.h"\\r
+       "..\..\Src\TomboLib\Uniconv.h"\\r
+       \r
+\r
+!ELSEIF  "$(CFG)" == "Tombo - Win32 (WCE SH4) Release"\r
+\r
+DEP_CPP_UNICO=\\r
+       "..\..\Src\Property.h"\\r
+       "..\..\Src\Tombo.h"\\r
+       "..\..\Src\TomboLib\File.h"\\r
+       "..\..\Src\TomboLib\Logger.h"\\r
+       "..\..\Src\TomboLib\TString.h"\\r
+       "..\..\Src\TomboLib\Uniconv.h"\\r
+       \r
+\r
+!ELSEIF  "$(CFG)" == "Tombo - Win32 (WCE SH3) Release"\r
+\r
+DEP_CPP_UNICO=\\r
+       "..\..\Src\Property.h"\\r
+       "..\..\Src\Tombo.h"\\r
+       "..\..\Src\TomboLib\File.h"\\r
+       "..\..\Src\TomboLib\Logger.h"\\r
+       "..\..\Src\TomboLib\TString.h"\\r
+       "..\..\Src\TomboLib\Uniconv.h"\\r
+       \r
+\r
+!ELSEIF  "$(CFG)" == "Tombo - Win32 (WCE ARM) Release"\r
+\r
+DEP_CPP_UNICO=\\r
+       "..\..\Src\Property.h"\\r
+       "..\..\Src\Tombo.h"\\r
+       "..\..\Src\TomboLib\File.h"\\r
+       "..\..\Src\TomboLib\Logger.h"\\r
+       "..\..\Src\TomboLib\TString.h"\\r
+       "..\..\Src\TomboLib\Uniconv.h"\\r
+       \r
+\r
+!ELSEIF  "$(CFG)" == "Tombo - Win32 (WCE ARM) Sig3"\r
+\r
+DEP_CPP_UNICO=\\r
+       "..\..\Src\Property.h"\\r
+       "..\..\Src\Tombo.h"\\r
+       "..\..\Src\TomboLib\File.h"\\r
+       "..\..\Src\TomboLib\Logger.h"\\r
+       "..\..\Src\TomboLib\TString.h"\\r
+       "..\..\Src\TomboLib\Uniconv.h"\\r
+       \r
+\r
+!ENDIF \r
+\r
+# End Source File\r
+# Begin Source File\r
+\r
+SOURCE=..\..\Src\URIScanner.cpp\r
+\r
+!IF  "$(CFG)" == "Tombo - Win32 (WCE MIPS) Release"\r
+\r
+DEP_CPP_URISC=\\r
+       "..\..\Src\Repository.h"\\r
+       "..\..\Src\Tombo.h"\\r
+       "..\..\Src\TomboLib\File.h"\\r
+       "..\..\Src\TomboLib\Logger.h"\\r
+       "..\..\Src\TomboLib\TString.h"\\r
+       "..\..\Src\TomboLib\Uniconv.h"\\r
+       "..\..\Src\TomboLib\VarBuffer.h"\\r
+       "..\..\Src\TomboURI.h"\\r
+       "..\..\Src\URIScanner.h"\\r
+       \r
+\r
+!ELSEIF  "$(CFG)" == "Tombo - Win32 (WCE SH4) Release"\r
+\r
+DEP_CPP_URISC=\\r
+       "..\..\Src\Repository.h"\\r
+       "..\..\Src\Tombo.h"\\r
+       "..\..\Src\TomboLib\File.h"\\r
+       "..\..\Src\TomboLib\Logger.h"\\r
+       "..\..\Src\TomboLib\TString.h"\\r
+       "..\..\Src\TomboLib\Uniconv.h"\\r
+       "..\..\Src\TomboLib\VarBuffer.h"\\r
+       "..\..\Src\TomboURI.h"\\r
+       "..\..\Src\URIScanner.h"\\r
+       \r
+\r
+!ELSEIF  "$(CFG)" == "Tombo - Win32 (WCE SH3) Release"\r
+\r
+DEP_CPP_URISC=\\r
+       "..\..\Src\Repository.h"\\r
+       "..\..\Src\Tombo.h"\\r
+       "..\..\Src\TomboLib\File.h"\\r
+       "..\..\Src\TomboLib\Logger.h"\\r
+       "..\..\Src\TomboLib\TString.h"\\r
+       "..\..\Src\TomboLib\Uniconv.h"\\r
+       "..\..\Src\TomboLib\VarBuffer.h"\\r
+       "..\..\Src\TomboURI.h"\\r
+       "..\..\Src\URIScanner.h"\\r
+       \r
+\r
+!ELSEIF  "$(CFG)" == "Tombo - Win32 (WCE ARM) Release"\r
+\r
+DEP_CPP_URISC=\\r
+       "..\..\Src\Repository.h"\\r
+       "..\..\Src\Tombo.h"\\r
+       "..\..\Src\TomboLib\File.h"\\r
+       "..\..\Src\TomboLib\Logger.h"\\r
+       "..\..\Src\TomboLib\TString.h"\\r
+       "..\..\Src\TomboLib\Uniconv.h"\\r
+       "..\..\Src\TomboLib\VarBuffer.h"\\r
+       "..\..\Src\TomboURI.h"\\r
+       "..\..\Src\URIScanner.h"\\r
+       \r
+\r
+!ELSEIF  "$(CFG)" == "Tombo - Win32 (WCE ARM) Sig3"\r
+\r
+DEP_CPP_URISC=\\r
+       "..\..\Src\Repository.h"\\r
+       "..\..\Src\Tombo.h"\\r
+       "..\..\Src\TomboLib\File.h"\\r
+       "..\..\Src\TomboLib\Logger.h"\\r
+       "..\..\Src\TomboLib\TString.h"\\r
+       "..\..\Src\TomboLib\Uniconv.h"\\r
+       "..\..\Src\TomboLib\VarBuffer.h"\\r
+       "..\..\Src\TomboURI.h"\\r
+       "..\..\Src\URIScanner.h"\\r
+       \r
+\r
+!ENDIF \r
+\r
+# End Source File\r
+# Begin Source File\r
+\r
+SOURCE=..\..\Src\regex\util.c\r
+\r
+!IF  "$(CFG)" == "Tombo - Win32 (WCE MIPS) Release"\r
+\r
+DEP_CPP_UTIL_=\\r
+       "..\..\oniguruma\oniguruma.h"\\r
+       \r
+\r
+!ELSEIF  "$(CFG)" == "Tombo - Win32 (WCE SH4) Release"\r
+\r
+DEP_CPP_UTIL_=\\r
+       "..\..\oniguruma\oniguruma.h"\\r
+       \r
+\r
+!ELSEIF  "$(CFG)" == "Tombo - Win32 (WCE SH3) Release"\r
+\r
+DEP_CPP_UTIL_=\\r
+       "..\..\oniguruma\oniguruma.h"\\r
+       \r
+\r
+!ELSEIF  "$(CFG)" == "Tombo - Win32 (WCE ARM) Release"\r
+\r
+DEP_CPP_UTIL_=\\r
+       "..\..\oniguruma\oniguruma.h"\\r
+       \r
+\r
+!ELSEIF  "$(CFG)" == "Tombo - Win32 (WCE ARM) Sig3"\r
+\r
+DEP_CPP_UTIL_=\\r
+       "..\..\oniguruma\oniguruma.h"\\r
+       \r
+\r
+!ENDIF \r
+\r
+# End Source File\r
+# Begin Source File\r
+\r
+SOURCE=..\..\Src\TomboLib\VarBuffer.cpp\r
+\r
+!IF  "$(CFG)" == "Tombo - Win32 (WCE MIPS) Release"\r
+\r
+DEP_CPP_VARBU=\\r
+       "..\..\Src\TomboLib\VarBuffer.h"\\r
+       \r
+\r
+!ELSEIF  "$(CFG)" == "Tombo - Win32 (WCE SH4) Release"\r
+\r
+DEP_CPP_VARBU=\\r
+       "..\..\Src\TomboLib\VarBuffer.h"\\r
+       \r
+\r
+!ELSEIF  "$(CFG)" == "Tombo - Win32 (WCE SH3) Release"\r
+\r
+DEP_CPP_VARBU=\\r
+       "..\..\Src\TomboLib\VarBuffer.h"\\r
+       \r
+\r
+!ELSEIF  "$(CFG)" == "Tombo - Win32 (WCE ARM) Release"\r
+\r
+DEP_CPP_VARBU=\\r
+       "..\..\Src\TomboLib\VarBuffer.h"\\r
+       \r
+\r
+!ELSEIF  "$(CFG)" == "Tombo - Win32 (WCE ARM) Sig3"\r
+\r
+DEP_CPP_VARBU=\\r
+       "..\..\Src\TomboLib\VarBuffer.h"\\r
+       \r
+\r
+!ENDIF \r
+\r
+# End Source File\r
+# Begin Source File\r
+\r
+SOURCE=..\..\Src\VFManager.cpp\r
+\r
+!IF  "$(CFG)" == "Tombo - Win32 (WCE MIPS) Release"\r
+\r
+DEP_CPP_VFMAN=\\r
+       "..\..\Src\Message.h"\\r
+       "..\..\Src\MsgRes\MsgDef.h"\\r
+       "..\..\Src\PasswordManager.h"\\r
+       "..\..\Src\Tombo.h"\\r
+       "..\..\Src\TomboLib\File.h"\\r
+       "..\..\Src\TomboLib\Logger.h"\\r
+       "..\..\Src\TomboLib\TString.h"\\r
+       "..\..\Src\TomboLib\Uniconv.h"\\r
+       "..\..\Src\TomboLib\VarBuffer.h"\\r
+       "..\..\Src\TSParser.h"\\r
+       "..\..\Src\VFManager.h"\\r
+       "..\..\Src\VFStream.h"\\r
+       \r
+\r
+!ELSEIF  "$(CFG)" == "Tombo - Win32 (WCE SH4) Release"\r
+\r
+DEP_CPP_VFMAN=\\r
+       "..\..\Src\Message.h"\\r
+       "..\..\Src\MsgRes\MsgDef.h"\\r
+       "..\..\Src\PasswordManager.h"\\r
+       "..\..\Src\Tombo.h"\\r
+       "..\..\Src\TomboLib\File.h"\\r
+       "..\..\Src\TomboLib\Logger.h"\\r
+       "..\..\Src\TomboLib\TString.h"\\r
+       "..\..\Src\TomboLib\Uniconv.h"\\r
+       "..\..\Src\TomboLib\VarBuffer.h"\\r
+       "..\..\Src\TSParser.h"\\r
+       "..\..\Src\VFManager.h"\\r
+       "..\..\Src\VFStream.h"\\r
+       \r
+\r
+!ELSEIF  "$(CFG)" == "Tombo - Win32 (WCE SH3) Release"\r
+\r
+DEP_CPP_VFMAN=\\r
+       "..\..\Src\Message.h"\\r
+       "..\..\Src\MsgRes\MsgDef.h"\\r
+       "..\..\Src\PasswordManager.h"\\r
+       "..\..\Src\Tombo.h"\\r
+       "..\..\Src\TomboLib\File.h"\\r
+       "..\..\Src\TomboLib\Logger.h"\\r
+       "..\..\Src\TomboLib\TString.h"\\r
+       "..\..\Src\TomboLib\Uniconv.h"\\r
+       "..\..\Src\TomboLib\VarBuffer.h"\\r
+       "..\..\Src\TSParser.h"\\r
+       "..\..\Src\VFManager.h"\\r
+       "..\..\Src\VFStream.h"\\r
+       \r
+\r
+!ELSEIF  "$(CFG)" == "Tombo - Win32 (WCE ARM) Release"\r
+\r
+DEP_CPP_VFMAN=\\r
+       "..\..\Src\Message.h"\\r
+       "..\..\Src\MsgRes\MsgDef.h"\\r
+       "..\..\Src\PasswordManager.h"\\r
+       "..\..\Src\Tombo.h"\\r
+       "..\..\Src\TomboLib\File.h"\\r
+       "..\..\Src\TomboLib\Logger.h"\\r
+       "..\..\Src\TomboLib\TString.h"\\r
+       "..\..\Src\TomboLib\Uniconv.h"\\r
+       "..\..\Src\TomboLib\VarBuffer.h"\\r
+       "..\..\Src\TSParser.h"\\r
+       "..\..\Src\VFManager.h"\\r
+       "..\..\Src\VFStream.h"\\r
+       \r
+\r
+!ELSEIF  "$(CFG)" == "Tombo - Win32 (WCE ARM) Sig3"\r
+\r
+DEP_CPP_VFMAN=\\r
+       "..\..\Src\Message.h"\\r
+       "..\..\Src\MsgRes\MsgDef.h"\\r
+       "..\..\Src\PasswordManager.h"\\r
+       "..\..\Src\Tombo.h"\\r
+       "..\..\Src\TomboLib\File.h"\\r
+       "..\..\Src\TomboLib\Logger.h"\\r
+       "..\..\Src\TomboLib\TString.h"\\r
+       "..\..\Src\TomboLib\Uniconv.h"\\r
+       "..\..\Src\TomboLib\VarBuffer.h"\\r
+       "..\..\Src\TSParser.h"\\r
+       "..\..\Src\VFManager.h"\\r
+       "..\..\Src\VFStream.h"\\r
+       \r
+\r
+!ENDIF \r
+\r
+# End Source File\r
+# Begin Source File\r
+\r
+SOURCE=..\..\Src\VFStream.cpp\r
+\r
+!IF  "$(CFG)" == "Tombo - Win32 (WCE MIPS) Release"\r
+\r
+DEP_CPP_VFSTR=\\r
+       "..\..\Src\FilterAddDlg.h"\\r
+       "..\..\Src\MemoSelectView.h"\\r
+       "..\..\Src\Message.h"\\r
+       "..\..\Src\MsgRes\MsgDef.h"\\r
+       "..\..\Src\Property.h"\\r
+       "..\..\Src\Repository.h"\\r
+       "..\..\Src\SearchEngine.h"\\r
+       "..\..\Src\Tombo.h"\\r
+       "..\..\Src\TomboLib\AutoPtr.h"\\r
+       "..\..\Src\TomboLib\DialogTemplate.h"\\r
+       "..\..\Src\TomboLib\DirectoryScanner.h"\\r
+       "..\..\Src\TomboLib\File.h"\\r
+       "..\..\Src\TomboLib\Logger.h"\\r
+       "..\..\Src\TomboLib\TString.h"\\r
+       "..\..\Src\TomboLib\Uniconv.h"\\r
+       "..\..\Src\TomboLib\VarBuffer.h"\\r
+       "..\..\Src\TomboURI.h"\\r
+       "..\..\Src\URIScanner.h"\\r
+       "..\..\Src\VFStream.h"\\r
+       \r
+\r
+!ELSEIF  "$(CFG)" == "Tombo - Win32 (WCE SH4) Release"\r
+\r
+DEP_CPP_VFSTR=\\r
+       "..\..\Src\FilterAddDlg.h"\\r
+       "..\..\Src\MemoSelectView.h"\\r
+       "..\..\Src\Message.h"\\r
+       "..\..\Src\MsgRes\MsgDef.h"\\r
+       "..\..\Src\Property.h"\\r
+       "..\..\Src\Repository.h"\\r
+       "..\..\Src\SearchEngine.h"\\r
+       "..\..\Src\Tombo.h"\\r
+       "..\..\Src\TomboLib\AutoPtr.h"\\r
+       "..\..\Src\TomboLib\DialogTemplate.h"\\r
+       "..\..\Src\TomboLib\DirectoryScanner.h"\\r
+       "..\..\Src\TomboLib\File.h"\\r
+       "..\..\Src\TomboLib\Logger.h"\\r
+       "..\..\Src\TomboLib\TString.h"\\r
+       "..\..\Src\TomboLib\Uniconv.h"\\r
+       "..\..\Src\TomboLib\VarBuffer.h"\\r
+       "..\..\Src\TomboURI.h"\\r
+       "..\..\Src\URIScanner.h"\\r
+       "..\..\Src\VFStream.h"\\r
+       \r
+\r
+!ELSEIF  "$(CFG)" == "Tombo - Win32 (WCE SH3) Release"\r
+\r
+DEP_CPP_VFSTR=\\r
+       "..\..\Src\FilterAddDlg.h"\\r
+       "..\..\Src\MemoSelectView.h"\\r
+       "..\..\Src\Message.h"\\r
+       "..\..\Src\MsgRes\MsgDef.h"\\r
+       "..\..\Src\Property.h"\\r
+       "..\..\Src\Repository.h"\\r
+       "..\..\Src\SearchEngine.h"\\r
+       "..\..\Src\Tombo.h"\\r
+       "..\..\Src\TomboLib\AutoPtr.h"\\r
+       "..\..\Src\TomboLib\DialogTemplate.h"\\r
+       "..\..\Src\TomboLib\DirectoryScanner.h"\\r
+       "..\..\Src\TomboLib\File.h"\\r
+       "..\..\Src\TomboLib\Logger.h"\\r
+       "..\..\Src\TomboLib\TString.h"\\r
+       "..\..\Src\TomboLib\Uniconv.h"\\r
+       "..\..\Src\TomboLib\VarBuffer.h"\\r
+       "..\..\Src\TomboURI.h"\\r
+       "..\..\Src\URIScanner.h"\\r
+       "..\..\Src\VFStream.h"\\r
+       \r
+\r
+!ELSEIF  "$(CFG)" == "Tombo - Win32 (WCE ARM) Release"\r
+\r
+DEP_CPP_VFSTR=\\r
+       "..\..\Src\FilterAddDlg.h"\\r
+       "..\..\Src\MemoSelectView.h"\\r
+       "..\..\Src\Message.h"\\r
+       "..\..\Src\MsgRes\MsgDef.h"\\r
+       "..\..\Src\Property.h"\\r
+       "..\..\Src\Repository.h"\\r
+       "..\..\Src\SearchEngine.h"\\r
+       "..\..\Src\Tombo.h"\\r
+       "..\..\Src\TomboLib\AutoPtr.h"\\r
+       "..\..\Src\TomboLib\DialogTemplate.h"\\r
+       "..\..\Src\TomboLib\DirectoryScanner.h"\\r
+       "..\..\Src\TomboLib\File.h"\\r
+       "..\..\Src\TomboLib\Logger.h"\\r
+       "..\..\Src\TomboLib\TString.h"\\r
+       "..\..\Src\TomboLib\Uniconv.h"\\r
+       "..\..\Src\TomboLib\VarBuffer.h"\\r
+       "..\..\Src\TomboURI.h"\\r
+       "..\..\Src\URIScanner.h"\\r
+       "..\..\Src\VFStream.h"\\r
+       \r
+\r
+!ELSEIF  "$(CFG)" == "Tombo - Win32 (WCE ARM) Sig3"\r
+\r
+DEP_CPP_VFSTR=\\r
+       "..\..\Src\FilterAddDlg.h"\\r
+       "..\..\Src\MemoSelectView.h"\\r
+       "..\..\Src\Message.h"\\r
+       "..\..\Src\MsgRes\MsgDef.h"\\r
+       "..\..\Src\Property.h"\\r
+       "..\..\Src\Repository.h"\\r
+       "..\..\Src\SearchEngine.h"\\r
+       "..\..\Src\Tombo.h"\\r
+       "..\..\Src\TomboLib\AutoPtr.h"\\r
+       "..\..\Src\TomboLib\DialogTemplate.h"\\r
+       "..\..\Src\TomboLib\DirectoryScanner.h"\\r
+       "..\..\Src\TomboLib\File.h"\\r
+       "..\..\Src\TomboLib\Logger.h"\\r
+       "..\..\Src\TomboLib\TString.h"\\r
+       "..\..\Src\TomboLib\Uniconv.h"\\r
+       "..\..\Src\TomboLib\VarBuffer.h"\\r
+       "..\..\Src\TomboURI.h"\\r
+       "..\..\Src\URIScanner.h"\\r
+       "..\..\Src\VFStream.h"\\r
+       \r
+\r
+!ENDIF \r
+\r
+# End Source File\r
+# Begin Source File\r
+\r
+SOURCE=..\..\Src\YAEdit\YAEdit.cpp\r
+\r
+!IF  "$(CFG)" == "Tombo - Win32 (WCE MIPS) Release"\r
+\r
+DEP_CPP_YAEDI=\\r
+       "..\..\Src\TomboLib\Clipboard.h"\\r
+       "..\..\Src\TomboLib\File.h"\\r
+       "..\..\Src\TomboLib\Logger.h"\\r
+       "..\..\Src\TomboLib\TString.h"\\r
+       "..\..\Src\TomboLib\Uniconv.h"\\r
+       "..\..\Src\TomboLib\VarBuffer.h"\\r
+       "..\..\Src\YAEdit\FontWidthCache.h"\\r
+       "..\..\Src\YAEdit\LineManager.h"\\r
+       "..\..\Src\YAEdit\LineWrapper.h"\\r
+       "..\..\Src\YAEdit\LineWrapperImpl.h"\\r
+       "..\..\Src\YAEdit\Region.h"\\r
+       "..\..\Src\YAEdit\YAEdit.h"\\r
+       "..\..\Src\YAEdit\YAEditDoc.h"\\r
+       "..\..\Src\YAEdit\YAEditView.h"\\r
+       \r
+\r
+!ELSEIF  "$(CFG)" == "Tombo - Win32 (WCE SH4) Release"\r
+\r
+DEP_CPP_YAEDI=\\r
+       "..\..\Src\TomboLib\Clipboard.h"\\r
+       "..\..\Src\TomboLib\File.h"\\r
+       "..\..\Src\TomboLib\Logger.h"\\r
+       "..\..\Src\TomboLib\TString.h"\\r
+       "..\..\Src\TomboLib\Uniconv.h"\\r
+       "..\..\Src\TomboLib\VarBuffer.h"\\r
+       "..\..\Src\YAEdit\FontWidthCache.h"\\r
+       "..\..\Src\YAEdit\LineManager.h"\\r
+       "..\..\Src\YAEdit\LineWrapper.h"\\r
+       "..\..\Src\YAEdit\LineWrapperImpl.h"\\r
+       "..\..\Src\YAEdit\Region.h"\\r
+       "..\..\Src\YAEdit\YAEdit.h"\\r
+       "..\..\Src\YAEdit\YAEditDoc.h"\\r
+       "..\..\Src\YAEdit\YAEditView.h"\\r
+       \r
+\r
+!ELSEIF  "$(CFG)" == "Tombo - Win32 (WCE SH3) Release"\r
+\r
+DEP_CPP_YAEDI=\\r
+       "..\..\Src\TomboLib\Clipboard.h"\\r
+       "..\..\Src\TomboLib\File.h"\\r
+       "..\..\Src\TomboLib\Logger.h"\\r
+       "..\..\Src\TomboLib\TString.h"\\r
+       "..\..\Src\TomboLib\Uniconv.h"\\r
+       "..\..\Src\TomboLib\VarBuffer.h"\\r
+       "..\..\Src\YAEdit\FontWidthCache.h"\\r
+       "..\..\Src\YAEdit\LineManager.h"\\r
+       "..\..\Src\YAEdit\LineWrapper.h"\\r
+       "..\..\Src\YAEdit\LineWrapperImpl.h"\\r
+       "..\..\Src\YAEdit\Region.h"\\r
+       "..\..\Src\YAEdit\YAEdit.h"\\r
+       "..\..\Src\YAEdit\YAEditDoc.h"\\r
+       "..\..\Src\YAEdit\YAEditView.h"\\r
+       \r
+\r
+!ELSEIF  "$(CFG)" == "Tombo - Win32 (WCE ARM) Release"\r
+\r
+DEP_CPP_YAEDI=\\r
+       "..\..\Src\TomboLib\Clipboard.h"\\r
+       "..\..\Src\TomboLib\File.h"\\r
+       "..\..\Src\TomboLib\Logger.h"\\r
+       "..\..\Src\TomboLib\TString.h"\\r
+       "..\..\Src\TomboLib\Uniconv.h"\\r
+       "..\..\Src\TomboLib\VarBuffer.h"\\r
+       "..\..\Src\YAEdit\FontWidthCache.h"\\r
+       "..\..\Src\YAEdit\LineManager.h"\\r
+       "..\..\Src\YAEdit\LineWrapper.h"\\r
+       "..\..\Src\YAEdit\LineWrapperImpl.h"\\r
+       "..\..\Src\YAEdit\Region.h"\\r
+       "..\..\Src\YAEdit\YAEdit.h"\\r
+       "..\..\Src\YAEdit\YAEditDoc.h"\\r
+       "..\..\Src\YAEdit\YAEditView.h"\\r
+       \r
+\r
+!ELSEIF  "$(CFG)" == "Tombo - Win32 (WCE ARM) Sig3"\r
+\r
+DEP_CPP_YAEDI=\\r
+       "..\..\Src\TomboLib\Clipboard.h"\\r
+       "..\..\Src\TomboLib\File.h"\\r
+       "..\..\Src\TomboLib\Logger.h"\\r
+       "..\..\Src\TomboLib\TString.h"\\r
+       "..\..\Src\TomboLib\Uniconv.h"\\r
+       "..\..\Src\TomboLib\VarBuffer.h"\\r
+       "..\..\Src\YAEdit\FontWidthCache.h"\\r
+       "..\..\Src\YAEdit\LineManager.h"\\r
+       "..\..\Src\YAEdit\LineWrapper.h"\\r
+       "..\..\Src\YAEdit\LineWrapperImpl.h"\\r
+       "..\..\Src\YAEdit\Region.h"\\r
+       "..\..\Src\YAEdit\YAEdit.h"\\r
+       "..\..\Src\YAEdit\YAEditDoc.h"\\r
+       "..\..\Src\YAEdit\YAEditView.h"\\r
+       \r
+\r
+!ENDIF \r
+\r
+# End Source File\r
+# Begin Source File\r
+\r
+SOURCE=..\..\Src\YAEdit\YAEditDoc.cpp\r
+\r
+!IF  "$(CFG)" == "Tombo - Win32 (WCE MIPS) Release"\r
+\r
+DEP_CPP_YAEDIT=\\r
+       "..\..\Src\TomboLib\Uniconv.h"\\r
+       "..\..\Src\TomboLib\VarBuffer.h"\\r
+       "..\..\Src\YAEdit\LineManager.h"\\r
+       "..\..\Src\YAEdit\LineWrapper.h"\\r
+       "..\..\Src\YAEdit\LineWrapperImpl.h"\\r
+       "..\..\Src\YAEdit\MemManager.h"\\r
+       "..\..\Src\YAEdit\PhysicalLineManager.h"\\r
+       "..\..\Src\YAEdit\Region.h"\\r
+       "..\..\Src\YAEdit\StringSplitter.h"\\r
+       "..\..\Src\YAEdit\YAEdit.h"\\r
+       "..\..\Src\YAEdit\YAEditDoc.h"\\r
+       \r
+\r
+!ELSEIF  "$(CFG)" == "Tombo - Win32 (WCE SH4) Release"\r
+\r
+DEP_CPP_YAEDIT=\\r
+       "..\..\Src\TomboLib\Uniconv.h"\\r
+       "..\..\Src\TomboLib\VarBuffer.h"\\r
+       "..\..\Src\YAEdit\LineManager.h"\\r
+       "..\..\Src\YAEdit\LineWrapper.h"\\r
+       "..\..\Src\YAEdit\LineWrapperImpl.h"\\r
+       "..\..\Src\YAEdit\MemManager.h"\\r
+       "..\..\Src\YAEdit\PhysicalLineManager.h"\\r
+       "..\..\Src\YAEdit\Region.h"\\r
+       "..\..\Src\YAEdit\StringSplitter.h"\\r
+       "..\..\Src\YAEdit\YAEdit.h"\\r
+       "..\..\Src\YAEdit\YAEditDoc.h"\\r
+       \r
+\r
+!ELSEIF  "$(CFG)" == "Tombo - Win32 (WCE SH3) Release"\r
+\r
+DEP_CPP_YAEDIT=\\r
+       "..\..\Src\TomboLib\Uniconv.h"\\r
+       "..\..\Src\TomboLib\VarBuffer.h"\\r
+       "..\..\Src\YAEdit\LineManager.h"\\r
+       "..\..\Src\YAEdit\LineWrapper.h"\\r
+       "..\..\Src\YAEdit\LineWrapperImpl.h"\\r
+       "..\..\Src\YAEdit\MemManager.h"\\r
+       "..\..\Src\YAEdit\PhysicalLineManager.h"\\r
+       "..\..\Src\YAEdit\Region.h"\\r
+       "..\..\Src\YAEdit\StringSplitter.h"\\r
+       "..\..\Src\YAEdit\YAEdit.h"\\r
+       "..\..\Src\YAEdit\YAEditDoc.h"\\r
+       \r
+\r
+!ELSEIF  "$(CFG)" == "Tombo - Win32 (WCE ARM) Release"\r
+\r
+DEP_CPP_YAEDIT=\\r
+       "..\..\Src\TomboLib\Uniconv.h"\\r
+       "..\..\Src\TomboLib\VarBuffer.h"\\r
+       "..\..\Src\YAEdit\LineManager.h"\\r
+       "..\..\Src\YAEdit\LineWrapper.h"\\r
+       "..\..\Src\YAEdit\LineWrapperImpl.h"\\r
+       "..\..\Src\YAEdit\MemManager.h"\\r
+       "..\..\Src\YAEdit\PhysicalLineManager.h"\\r
+       "..\..\Src\YAEdit\Region.h"\\r
+       "..\..\Src\YAEdit\StringSplitter.h"\\r
+       "..\..\Src\YAEdit\YAEdit.h"\\r
+       "..\..\Src\YAEdit\YAEditDoc.h"\\r
+       \r
+\r
+!ELSEIF  "$(CFG)" == "Tombo - Win32 (WCE ARM) Sig3"\r
+\r
+DEP_CPP_YAEDIT=\\r
+       "..\..\Src\TomboLib\Uniconv.h"\\r
+       "..\..\Src\TomboLib\VarBuffer.h"\\r
+       "..\..\Src\YAEdit\LineManager.h"\\r
+       "..\..\Src\YAEdit\LineWrapper.h"\\r
+       "..\..\Src\YAEdit\LineWrapperImpl.h"\\r
+       "..\..\Src\YAEdit\MemManager.h"\\r
+       "..\..\Src\YAEdit\PhysicalLineManager.h"\\r
+       "..\..\Src\YAEdit\Region.h"\\r
+       "..\..\Src\YAEdit\StringSplitter.h"\\r
+       "..\..\Src\YAEdit\YAEdit.h"\\r
+       "..\..\Src\YAEdit\YAEditDoc.h"\\r
+       \r
+\r
+!ENDIF \r
+\r
+# End Source File\r
+# Begin Source File\r
+\r
+SOURCE=..\..\Src\YAEditor.cpp\r
+\r
+!IF  "$(CFG)" == "Tombo - Win32 (WCE MIPS) Release"\r
+\r
+DEP_CPP_YAEDITO=\\r
+       "..\..\Src\HPCPlatform.h"\\r
+       "..\..\Src\LagendaPlatform.h"\\r
+       "..\..\Src\MainFrame.h"\\r
+       "..\..\Src\MemoDetailsView.h"\\r
+       "..\..\Src\MemoManager.h"\\r
+       "..\..\Src\MemoSelectView.h"\\r
+       "..\..\Src\Message.h"\\r
+       "..\..\Src\MsgRes\MsgDef.h"\\r
+       "..\..\Src\PasswordManager.h"\\r
+       "..\..\Src\PlatformLayer.h"\\r
+       "..\..\Src\PocketPCPlatform.h"\\r
+       "..\..\Src\Property.h"\\r
+       "..\..\Src\PsPCPlatform.h"\\r
+       "..\..\Src\Tombo.h"\\r
+       "..\..\Src\TomboLib\File.h"\\r
+       "..\..\Src\TomboLib\Logger.h"\\r
+       "..\..\Src\TomboLib\Uniconv.h"\\r
+       "..\..\Src\Win32Platform.h"\\r
+       "..\..\Src\YAEdit\Region.h"\\r
+       "..\..\Src\YAEdit\YAEdit.h"\\r
+       "..\..\Src\YAEdit\YAEditDoc.h"\\r
+       "..\..\Src\YAEdit\YAEditView.h"\\r
+       "..\..\Src\YAEditor.h"\\r
+       \r
+\r
+!ELSEIF  "$(CFG)" == "Tombo - Win32 (WCE SH4) Release"\r
+\r
+DEP_CPP_YAEDITO=\\r
+       "..\..\Src\HPCPlatform.h"\\r
+       "..\..\Src\LagendaPlatform.h"\\r
+       "..\..\Src\MainFrame.h"\\r
+       "..\..\Src\MemoDetailsView.h"\\r
+       "..\..\Src\MemoManager.h"\\r
+       "..\..\Src\MemoSelectView.h"\\r
+       "..\..\Src\Message.h"\\r
+       "..\..\Src\MsgRes\MsgDef.h"\\r
+       "..\..\Src\PasswordManager.h"\\r
+       "..\..\Src\PlatformLayer.h"\\r
+       "..\..\Src\PocketPCPlatform.h"\\r
+       "..\..\Src\Property.h"\\r
+       "..\..\Src\PsPCPlatform.h"\\r
+       "..\..\Src\Tombo.h"\\r
+       "..\..\Src\TomboLib\File.h"\\r
+       "..\..\Src\TomboLib\Logger.h"\\r
+       "..\..\Src\TomboLib\Uniconv.h"\\r
+       "..\..\Src\Win32Platform.h"\\r
+       "..\..\Src\YAEdit\Region.h"\\r
+       "..\..\Src\YAEdit\YAEdit.h"\\r
+       "..\..\Src\YAEdit\YAEditDoc.h"\\r
+       "..\..\Src\YAEdit\YAEditView.h"\\r
+       "..\..\Src\YAEditor.h"\\r
+       \r
+\r
+!ELSEIF  "$(CFG)" == "Tombo - Win32 (WCE SH3) Release"\r
+\r
+DEP_CPP_YAEDITO=\\r
+       "..\..\Src\HPCPlatform.h"\\r
+       "..\..\Src\LagendaPlatform.h"\\r
+       "..\..\Src\MainFrame.h"\\r
+       "..\..\Src\MemoDetailsView.h"\\r
+       "..\..\Src\MemoManager.h"\\r
+       "..\..\Src\MemoSelectView.h"\\r
+       "..\..\Src\Message.h"\\r
+       "..\..\Src\MsgRes\MsgDef.h"\\r
+       "..\..\Src\PasswordManager.h"\\r
+       "..\..\Src\PlatformLayer.h"\\r
+       "..\..\Src\PocketPCPlatform.h"\\r
+       "..\..\Src\Property.h"\\r
+       "..\..\Src\PsPCPlatform.h"\\r
+       "..\..\Src\Tombo.h"\\r
+       "..\..\Src\TomboLib\File.h"\\r
+       "..\..\Src\TomboLib\Logger.h"\\r
+       "..\..\Src\TomboLib\Uniconv.h"\\r
+       "..\..\Src\Win32Platform.h"\\r
+       "..\..\Src\YAEdit\Region.h"\\r
+       "..\..\Src\YAEdit\YAEdit.h"\\r
+       "..\..\Src\YAEdit\YAEditDoc.h"\\r
+       "..\..\Src\YAEdit\YAEditView.h"\\r
+       "..\..\Src\YAEditor.h"\\r
+       \r
+\r
+!ELSEIF  "$(CFG)" == "Tombo - Win32 (WCE ARM) Release"\r
+\r
+DEP_CPP_YAEDITO=\\r
+       "..\..\Src\HPCPlatform.h"\\r
+       "..\..\Src\LagendaPlatform.h"\\r
+       "..\..\Src\MainFrame.h"\\r
+       "..\..\Src\MemoDetailsView.h"\\r
+       "..\..\Src\MemoManager.h"\\r
+       "..\..\Src\MemoSelectView.h"\\r
+       "..\..\Src\Message.h"\\r
+       "..\..\Src\MsgRes\MsgDef.h"\\r
+       "..\..\Src\PasswordManager.h"\\r
+       "..\..\Src\PlatformLayer.h"\\r
+       "..\..\Src\PocketPCPlatform.h"\\r
+       "..\..\Src\Property.h"\\r
+       "..\..\Src\PsPCPlatform.h"\\r
+       "..\..\Src\Tombo.h"\\r
+       "..\..\Src\TomboLib\File.h"\\r
+       "..\..\Src\TomboLib\Logger.h"\\r
+       "..\..\Src\TomboLib\Uniconv.h"\\r
+       "..\..\Src\Win32Platform.h"\\r
+       "..\..\Src\YAEdit\Region.h"\\r
+       "..\..\Src\YAEdit\YAEdit.h"\\r
+       "..\..\Src\YAEdit\YAEditDoc.h"\\r
+       "..\..\Src\YAEdit\YAEditView.h"\\r
+       "..\..\Src\YAEditor.h"\\r
+       \r
+\r
+!ELSEIF  "$(CFG)" == "Tombo - Win32 (WCE ARM) Sig3"\r
+\r
+DEP_CPP_YAEDITO=\\r
+       "..\..\Src\HPCPlatform.h"\\r
+       "..\..\Src\LagendaPlatform.h"\\r
+       "..\..\Src\MainFrame.h"\\r
+       "..\..\Src\MemoDetailsView.h"\\r
+       "..\..\Src\MemoManager.h"\\r
+       "..\..\Src\MemoSelectView.h"\\r
+       "..\..\Src\Message.h"\\r
+       "..\..\Src\MsgRes\MsgDef.h"\\r
+       "..\..\Src\PasswordManager.h"\\r
+       "..\..\Src\PlatformLayer.h"\\r
+       "..\..\Src\PocketPCPlatform.h"\\r
+       "..\..\Src\Property.h"\\r
+       "..\..\Src\PsPCPlatform.h"\\r
+       "..\..\Src\Tombo.h"\\r
+       "..\..\Src\TomboLib\File.h"\\r
+       "..\..\Src\TomboLib\Logger.h"\\r
+       "..\..\Src\TomboLib\Uniconv.h"\\r
+       "..\..\Src\Win32Platform.h"\\r
+       "..\..\Src\YAEdit\Region.h"\\r
+       "..\..\Src\YAEdit\YAEdit.h"\\r
+       "..\..\Src\YAEdit\YAEditDoc.h"\\r
+       "..\..\Src\YAEdit\YAEditView.h"\\r
+       "..\..\Src\YAEditor.h"\\r
+       \r
+\r
+!ENDIF \r
+\r
+# End Source File\r
+# Begin Source File\r
+\r
+SOURCE=..\..\Src\YAEdit\YAEditView.cpp\r
+\r
+!IF  "$(CFG)" == "Tombo - Win32 (WCE MIPS) Release"\r
+\r
+DEP_CPP_YAEDITV=\\r
+       "..\..\Src\TomboLib\Clipboard.h"\\r
+       "..\..\Src\TomboLib\File.h"\\r
+       "..\..\Src\TomboLib\Logger.h"\\r
+       "..\..\Src\TomboLib\TString.h"\\r
+       "..\..\Src\TomboLib\Uniconv.h"\\r
+       "..\..\Src\TomboLib\VarBuffer.h"\\r
+       "..\..\Src\YAEdit\FontWidthCache.h"\\r
+       "..\..\Src\YAEdit\LineManager.h"\\r
+       "..\..\Src\YAEdit\LineWrapper.h"\\r
+       "..\..\Src\YAEdit\Region.h"\\r
+       "..\..\Src\YAEdit\YAEdit.h"\\r
+       "..\..\Src\YAEdit\YAEditDoc.h"\\r
+       "..\..\Src\YAEdit\YAEditView.h"\\r
+       \r
+\r
+!ELSEIF  "$(CFG)" == "Tombo - Win32 (WCE SH4) Release"\r
+\r
+DEP_CPP_YAEDITV=\\r
+       "..\..\Src\TomboLib\Clipboard.h"\\r
+       "..\..\Src\TomboLib\File.h"\\r
+       "..\..\Src\TomboLib\Logger.h"\\r
+       "..\..\Src\TomboLib\TString.h"\\r
+       "..\..\Src\TomboLib\Uniconv.h"\\r
+       "..\..\Src\TomboLib\VarBuffer.h"\\r
+       "..\..\Src\YAEdit\FontWidthCache.h"\\r
+       "..\..\Src\YAEdit\LineManager.h"\\r
+       "..\..\Src\YAEdit\LineWrapper.h"\\r
+       "..\..\Src\YAEdit\Region.h"\\r
+       "..\..\Src\YAEdit\YAEdit.h"\\r
+       "..\..\Src\YAEdit\YAEditDoc.h"\\r
+       "..\..\Src\YAEdit\YAEditView.h"\\r
+       \r
+\r
+!ELSEIF  "$(CFG)" == "Tombo - Win32 (WCE SH3) Release"\r
+\r
+DEP_CPP_YAEDITV=\\r
+       "..\..\Src\TomboLib\Clipboard.h"\\r
+       "..\..\Src\TomboLib\File.h"\\r
+       "..\..\Src\TomboLib\Logger.h"\\r
+       "..\..\Src\TomboLib\TString.h"\\r
+       "..\..\Src\TomboLib\Uniconv.h"\\r
+       "..\..\Src\TomboLib\VarBuffer.h"\\r
+       "..\..\Src\YAEdit\FontWidthCache.h"\\r
+       "..\..\Src\YAEdit\LineManager.h"\\r
+       "..\..\Src\YAEdit\LineWrapper.h"\\r
+       "..\..\Src\YAEdit\Region.h"\\r
+       "..\..\Src\YAEdit\YAEdit.h"\\r
+       "..\..\Src\YAEdit\YAEditDoc.h"\\r
+       "..\..\Src\YAEdit\YAEditView.h"\\r
+       \r
+\r
+!ELSEIF  "$(CFG)" == "Tombo - Win32 (WCE ARM) Release"\r
+\r
+DEP_CPP_YAEDITV=\\r
+       "..\..\Src\TomboLib\Clipboard.h"\\r
+       "..\..\Src\TomboLib\File.h"\\r
+       "..\..\Src\TomboLib\Logger.h"\\r
+       "..\..\Src\TomboLib\TString.h"\\r
+       "..\..\Src\TomboLib\Uniconv.h"\\r
+       "..\..\Src\TomboLib\VarBuffer.h"\\r
+       "..\..\Src\YAEdit\FontWidthCache.h"\\r
+       "..\..\Src\YAEdit\LineManager.h"\\r
+       "..\..\Src\YAEdit\LineWrapper.h"\\r
+       "..\..\Src\YAEdit\Region.h"\\r
+       "..\..\Src\YAEdit\YAEdit.h"\\r
+       "..\..\Src\YAEdit\YAEditDoc.h"\\r
+       "..\..\Src\YAEdit\YAEditView.h"\\r
+       \r
+\r
+!ELSEIF  "$(CFG)" == "Tombo - Win32 (WCE ARM) Sig3"\r
+\r
+DEP_CPP_YAEDITV=\\r
+       "..\..\Src\TomboLib\Clipboard.h"\\r
+       "..\..\Src\TomboLib\File.h"\\r
+       "..\..\Src\TomboLib\Logger.h"\\r
+       "..\..\Src\TomboLib\TString.h"\\r
+       "..\..\Src\TomboLib\Uniconv.h"\\r
+       "..\..\Src\TomboLib\VarBuffer.h"\\r
+       "..\..\Src\YAEdit\FontWidthCache.h"\\r
+       "..\..\Src\YAEdit\LineManager.h"\\r
+       "..\..\Src\YAEdit\LineWrapper.h"\\r
+       "..\..\Src\YAEdit\Region.h"\\r
+       "..\..\Src\YAEdit\YAEdit.h"\\r
+       "..\..\Src\YAEdit\YAEditDoc.h"\\r
+       "..\..\Src\YAEdit\YAEditView.h"\\r
+       \r
+\r
+!ENDIF \r
+\r
+# End Source File\r
+# End Group\r
+# Begin Group "Header Files"\r
+\r
+# PROP Default_Filter "h;hpp;hxx;hm;inl"\r
+# Begin Source File\r
+\r
+SOURCE=..\..\Src\AboutDialog.h\r
+# End Source File\r
+# Begin Source File\r
+\r
+SOURCE=..\..\Src\TomboLib\AutoPtr.h\r
+# End Source File\r
+# Begin Source File\r
+\r
+SOURCE=..\..\Src\gnupg\bithelp.h\r
+# End Source File\r
+# Begin Source File\r
+\r
+SOURCE=..\..\Src\BookMark.h\r
+# End Source File\r
+# Begin Source File\r
+\r
+SOURCE=..\..\Src\BookMarkDlg.h\r
+# End Source File\r
+# Begin Source File\r
+\r
+SOURCE=..\..\Src\Chipher.h\r
+# End Source File\r
+# Begin Source File\r
+\r
+SOURCE=..\..\Src\TomboLib\Clipboard.h\r
+# End Source File\r
+# Begin Source File\r
+\r
+SOURCE=..\..\Src\regex\config.h\r
+# End Source File\r
+# Begin Source File\r
+\r
+SOURCE=..\..\Src\Crypt.h\r
+# End Source File\r
+# Begin Source File\r
+\r
+SOURCE=..\..\Src\CryptManager.h\r
+# End Source File\r
+# Begin Source File\r
+\r
+SOURCE=..\..\Src\regex\ctypeutil.h\r
+# End Source File\r
+# Begin Source File\r
+\r
+SOURCE=..\..\Src\TomboLib\DialogTemplate.h\r
+# End Source File\r
+# Begin Source File\r
+\r
+SOURCE=..\..\Src\TomboLib\DirectoryScanner.h\r
+# End Source File\r
+# Begin Source File\r
+\r
+SOURCE=..\..\Src\DirList.h\r
+# End Source File\r
+# Begin Source File\r
+\r
+SOURCE=..\..\Src\TomboLib\File.h\r
+# End Source File\r
+# Begin Source File\r
+\r
+SOURCE=..\..\Src\TomboLib\FileInputStream.h\r
+# End Source File\r
+# Begin Source File\r
+\r
+SOURCE=..\..\Src\FileSelector.h\r
+# End Source File\r
+# Begin Source File\r
+\r
+SOURCE=..\..\Src\FilterAddDlg.h\r
+# End Source File\r
+# Begin Source File\r
+\r
+SOURCE=..\..\Src\FilterCtlDlg.h\r
+# End Source File\r
+# Begin Source File\r
+\r
+SOURCE=..\..\Src\FilterDefDlg.h\r
+# End Source File\r
+# Begin Source File\r
+\r
+SOURCE=..\..\Src\YAEdit\FontWidthCache.h\r
+# End Source File\r
+# Begin Source File\r
+\r
+SOURCE=..\..\Src\GrepDialog.h\r
+# End Source File\r
+# Begin Source File\r
+\r
+SOURCE=..\..\Src\HPCPlatform.h\r
+# End Source File\r
+# Begin Source File\r
+\r
+SOURCE=..\..\Src\YAEdit\LineManager.h\r
+# End Source File\r
+# Begin Source File\r
+\r
+SOURCE=..\..\Src\YAEdit\LineWrapper.h\r
+# End Source File\r
+# Begin Source File\r
+\r
+SOURCE=..\..\Src\YAEdit\LineWrapperImpl.h\r
+# End Source File\r
+# Begin Source File\r
+\r
+SOURCE=..\..\Src\TomboLib\List.h\r
+# End Source File\r
+# Begin Source File\r
+\r
+SOURCE=..\..\Src\TomboLib\Logger.h\r
+# End Source File\r
+# Begin Source File\r
+\r
+SOURCE=..\..\Src\MainFrame.h\r
+# End Source File\r
+# Begin Source File\r
+\r
+SOURCE=..\..\Src\YAEdit\MemManager.h\r
+# End Source File\r
+# Begin Source File\r
+\r
+SOURCE=..\..\Src\MemoDetailsView.h\r
+# End Source File\r
+# Begin Source File\r
+\r
+SOURCE=..\..\Src\MemoFolder.h\r
+# End Source File\r
+# Begin Source File\r
+\r
+SOURCE=..\..\Src\MemoInfo.h\r
+# End Source File\r
+# Begin Source File\r
+\r
+SOURCE=..\..\Src\MemoManager.h\r
+# End Source File\r
+# Begin Source File\r
+\r
+SOURCE=..\..\Src\MemoNote.h\r
+# End Source File\r
+# Begin Source File\r
+\r
+SOURCE=..\..\Src\MemoSelectView.h\r
+# End Source File\r
+# Begin Source File\r
+\r
+SOURCE=..\..\Src\Message.h\r
+# End Source File\r
+# Begin Source File\r
+\r
+SOURCE=..\..\Src\NewFolderDialog.h\r
+# End Source File\r
+# Begin Source File\r
+\r
+SOURCE=..\..\Src\PasswordDialog.h\r
+# End Source File\r
+# Begin Source File\r
+\r
+SOURCE=..\..\Src\PasswordManager.h\r
+# End Source File\r
+# Begin Source File\r
+\r
+SOURCE=..\..\Src\YAEdit\PhysicalLineManager.h\r
+# End Source File\r
+# Begin Source File\r
+\r
+SOURCE=..\..\Src\PlatformLayer.h\r
+# End Source File\r
+# Begin Source File\r
+\r
+SOURCE=..\..\Src\Property.h\r
+# End Source File\r
+# Begin Source File\r
+\r
+SOURCE=..\..\Src\TomboLib\PropertyPage.h\r
+# End Source File\r
+# Begin Source File\r
+\r
+SOURCE=..\..\Src\regex\regex.h\r
+# End Source File\r
+# Begin Source File\r
+\r
+SOURCE=..\..\Src\YAEdit\Region.h\r
+# End Source File\r
+# Begin Source File\r
+\r
+SOURCE=..\..\Src\Repository.h\r
+# End Source File\r
+# Begin Source File\r
+\r
+SOURCE=..\..\Src\RepositoryImpl.h\r
+# End Source File\r
+# Begin Source File\r
+\r
+SOURCE=.\res\resource.h\r
+# End Source File\r
+# Begin Source File\r
+\r
+SOURCE=.\resE\resource.h\r
+# End Source File\r
+# Begin Source File\r
+\r
+SOURCE=..\..\Src\SearchDlg.h\r
+# End Source File\r
+# Begin Source File\r
+\r
+SOURCE=..\..\Src\SearchEngine.h\r
+# End Source File\r
+# Begin Source File\r
+\r
+SOURCE=..\..\Src\SearchTree.h\r
+# End Source File\r
+# Begin Source File\r
+\r
+SOURCE=..\..\Src\TomboLib\SipControl.h\r
+# End Source File\r
+# Begin Source File\r
+\r
+SOURCE=..\..\Src\StatusBar.h\r
+# End Source File\r
+# Begin Source File\r
+\r
+SOURCE=..\..\Src\YAEdit\StringSplitter.h\r
+# End Source File\r
+# Begin Source File\r
+\r
+SOURCE=..\..\Src\Tombo.h\r
+# End Source File\r
+# Begin Source File\r
+\r
+SOURCE=..\..\Src\TomboPropertyTab.h\r
+# End Source File\r
+# Begin Source File\r
+\r
+SOURCE=..\..\Src\TomboURI.h\r
+# End Source File\r
+# Begin Source File\r
+\r
+SOURCE=..\..\Src\TreeViewItem.h\r
+# End Source File\r
+# Begin Source File\r
+\r
+SOURCE=..\..\Src\TSParser.h\r
+# End Source File\r
+# Begin Source File\r
+\r
+SOURCE=..\..\Src\TomboLib\TString.h\r
+# End Source File\r
+# Begin Source File\r
+\r
+SOURCE=..\..\Src\TomboLib\Uniconv.h\r
+# End Source File\r
+# Begin Source File\r
+\r
+SOURCE=..\..\Src\URIScanner.h\r
+# End Source File\r
+# Begin Source File\r
+\r
+SOURCE=..\..\Src\TomboLib\VarBuffer.h\r
+# End Source File\r
+# Begin Source File\r
+\r
+SOURCE=..\..\Src\VFManager.h\r
+# End Source File\r
+# Begin Source File\r
+\r
+SOURCE=..\..\Src\VFStream.h\r
+# End Source File\r
+# Begin Source File\r
+\r
+SOURCE=..\..\Src\YAEdit\YAEdit.h\r
+# End Source File\r
+# Begin Source File\r
+\r
+SOURCE=..\..\Src\YAEdit\YAEditDoc.h\r
+# End Source File\r
+# Begin Source File\r
+\r
+SOURCE=..\..\Src\YAEditor.h\r
+# End Source File\r
+# Begin Source File\r
+\r
+SOURCE=..\..\Src\YAEdit\YAEditView.h\r
+# End Source File\r
+# End Group\r
+# Begin Group "Resource Files"\r
+\r
+# PROP Default_Filter "ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe"\r
+# Begin Source File\r
+\r
+SOURCE=..\..\Src\image\draftimg.bmp\r
+# End Source File\r
+# Begin Source File\r
+\r
+SOURCE=.\res\mdtoolbar.bmp\r
+# End Source File\r
+# Begin Source File\r
+\r
+SOURCE=..\..\Src\image\mdtoolbar.bmp\r
+# End Source File\r
+# Begin Source File\r
+\r
+SOURCE=.\res\memoimg.bmp\r
+# End Source File\r
+# Begin Source File\r
+\r
+SOURCE=..\..\Src\image\memoimg.bmp\r
+# End Source File\r
+# Begin Source File\r
+\r
+SOURCE=.\res\rebar.bmp\r
+# End Source File\r
+# Begin Source File\r
+\r
+SOURCE=..\..\Src\image\rebar.bmp\r
+# End Source File\r
+# Begin Source File\r
+\r
+SOURCE=.\res\rebar.ico\r
+# End Source File\r
+# Begin Source File\r
+\r
+SOURCE=.\res\Tombo.ICO\r
+# End Source File\r
+# Begin Source File\r
+\r
+SOURCE=.\resE\Tombo.ICO\r
+# End Source File\r
+# Begin Source File\r
+\r
+SOURCE=..\..\Src\image\Tombo.ICO\r
+# End Source File\r
+# Begin Source File\r
+\r
+SOURCE=.\res\toolbar.bmp\r
+# End Source File\r
+# Begin Source File\r
+\r
+SOURCE=..\..\Src\image\toolbar.bmp\r
+# End Source File\r
+# End Group\r
+# Begin Source File\r
+\r
+SOURCE=..\..\expat\lib\MIPS\libexpatw.lib\r
+\r
+!IF  "$(CFG)" == "Tombo - Win32 (WCE MIPS) Release"\r
+\r
+!ELSEIF  "$(CFG)" == "Tombo - Win32 (WCE SH4) Release"\r
+\r
+# PROP Exclude_From_Build 1\r
+\r
+!ELSEIF  "$(CFG)" == "Tombo - Win32 (WCE SH3) Release"\r
+\r
+# PROP Exclude_From_Build 1\r
+\r
+!ELSEIF  "$(CFG)" == "Tombo - Win32 (WCE ARM) Release"\r
+\r
+# PROP Exclude_From_Build 1\r
+\r
+!ELSEIF  "$(CFG)" == "Tombo - Win32 (WCE ARM) Sig3"\r
+\r
+# PROP BASE Exclude_From_Build 1\r
+# PROP Exclude_From_Build 1\r
+\r
+!ENDIF \r
+\r
+# End Source File\r
+# Begin Source File\r
+\r
+SOURCE=..\..\expat\lib\ARM\libexpatw.lib\r
+\r
+!IF  "$(CFG)" == "Tombo - Win32 (WCE MIPS) Release"\r
+\r
+# PROP Exclude_From_Build 1\r
+\r
+!ELSEIF  "$(CFG)" == "Tombo - Win32 (WCE SH4) Release"\r
+\r
+# PROP Exclude_From_Build 1\r
+\r
+!ELSEIF  "$(CFG)" == "Tombo - Win32 (WCE SH3) Release"\r
+\r
+# PROP Exclude_From_Build 1\r
+\r
+!ELSEIF  "$(CFG)" == "Tombo - Win32 (WCE ARM) Release"\r
+\r
+!ELSEIF  "$(CFG)" == "Tombo - Win32 (WCE ARM) Sig3"\r
+\r
+!ENDIF \r
+\r
+# End Source File\r
+# Begin Source File\r
+\r
+SOURCE=..\..\expat\lib\SH3\libexpatw.lib\r
+\r
+!IF  "$(CFG)" == "Tombo - Win32 (WCE MIPS) Release"\r
+\r
+# PROP Exclude_From_Build 1\r
+\r
+!ELSEIF  "$(CFG)" == "Tombo - Win32 (WCE SH4) Release"\r
+\r
+# PROP Exclude_From_Build 1\r
+\r
+!ELSEIF  "$(CFG)" == "Tombo - Win32 (WCE SH3) Release"\r
+\r
+!ELSEIF  "$(CFG)" == "Tombo - Win32 (WCE ARM) Release"\r
+\r
+# PROP Exclude_From_Build 1\r
+\r
+!ELSEIF  "$(CFG)" == "Tombo - Win32 (WCE ARM) Sig3"\r
+\r
+# PROP BASE Exclude_From_Build 1\r
+# PROP Exclude_From_Build 1\r
+\r
+!ENDIF \r
+\r
+# End Source File\r
+# Begin Source File\r
+\r
+SOURCE=..\..\expat\lib\SH4\libexpatw.lib\r
+\r
+!IF  "$(CFG)" == "Tombo - Win32 (WCE MIPS) Release"\r
+\r
+# PROP Exclude_From_Build 1\r
+\r
+!ELSEIF  "$(CFG)" == "Tombo - Win32 (WCE SH4) Release"\r
+\r
+!ELSEIF  "$(CFG)" == "Tombo - Win32 (WCE SH3) Release"\r
+\r
+# PROP Exclude_From_Build 1\r
+\r
+!ELSEIF  "$(CFG)" == "Tombo - Win32 (WCE ARM) Release"\r
+\r
+# PROP Exclude_From_Build 1\r
+\r
+!ELSEIF  "$(CFG)" == "Tombo - Win32 (WCE ARM) Sig3"\r
+\r
+# PROP BASE Exclude_From_Build 1\r
+# PROP Exclude_From_Build 1\r
+\r
+!ENDIF \r
+\r
+# End Source File\r
+# Begin Source File\r
+\r
+SOURCE=..\..\oniguruma\arm\oniguruma.lib\r
+\r
+!IF  "$(CFG)" == "Tombo - Win32 (WCE MIPS) Release"\r
+\r
+# PROP Exclude_From_Build 1\r
+\r
+!ELSEIF  "$(CFG)" == "Tombo - Win32 (WCE SH4) Release"\r
+\r
+# PROP Exclude_From_Build 1\r
+\r
+!ELSEIF  "$(CFG)" == "Tombo - Win32 (WCE SH3) Release"\r
+\r
+# PROP Exclude_From_Build 1\r
+\r
+!ELSEIF  "$(CFG)" == "Tombo - Win32 (WCE ARM) Release"\r
+\r
+!ELSEIF  "$(CFG)" == "Tombo - Win32 (WCE ARM) Sig3"\r
+\r
+!ENDIF \r
+\r
+# End Source File\r
+# Begin Source File\r
+\r
+SOURCE=..\..\oniguruma\mips\oniguruma.lib\r
+\r
+!IF  "$(CFG)" == "Tombo - Win32 (WCE MIPS) Release"\r
+\r
+!ELSEIF  "$(CFG)" == "Tombo - Win32 (WCE SH4) Release"\r
+\r
+# PROP Exclude_From_Build 1\r
+\r
+!ELSEIF  "$(CFG)" == "Tombo - Win32 (WCE SH3) Release"\r
+\r
+# PROP Exclude_From_Build 1\r
+\r
+!ELSEIF  "$(CFG)" == "Tombo - Win32 (WCE ARM) Release"\r
+\r
+# PROP Exclude_From_Build 1\r
+\r
+!ELSEIF  "$(CFG)" == "Tombo - Win32 (WCE ARM) Sig3"\r
+\r
+# PROP Exclude_From_Build 1\r
+\r
+!ENDIF \r
+\r
+# End Source File\r
+# Begin Source File\r
+\r
+SOURCE=..\..\oniguruma\sh3\oniguruma.lib\r
+\r
+!IF  "$(CFG)" == "Tombo - Win32 (WCE MIPS) Release"\r
+\r
+# PROP Exclude_From_Build 1\r
+\r
+!ELSEIF  "$(CFG)" == "Tombo - Win32 (WCE SH4) Release"\r
+\r
+# PROP Exclude_From_Build 1\r
+\r
+!ELSEIF  "$(CFG)" == "Tombo - Win32 (WCE SH3) Release"\r
+\r
+!ELSEIF  "$(CFG)" == "Tombo - Win32 (WCE ARM) Release"\r
+\r
+# PROP Exclude_From_Build 1\r
+\r
+!ELSEIF  "$(CFG)" == "Tombo - Win32 (WCE ARM) Sig3"\r
+\r
+# PROP Exclude_From_Build 1\r
+\r
+!ENDIF \r
+\r
+# End Source File\r
+# Begin Source File\r
+\r
+SOURCE=..\..\oniguruma\sh4\oniguruma.lib\r
+\r
+!IF  "$(CFG)" == "Tombo - Win32 (WCE MIPS) Release"\r
+\r
+# PROP Exclude_From_Build 1\r
+\r
+!ELSEIF  "$(CFG)" == "Tombo - Win32 (WCE SH4) Release"\r
+\r
+!ELSEIF  "$(CFG)" == "Tombo - Win32 (WCE SH3) Release"\r
+\r
+# PROP Exclude_From_Build 1\r
+\r
+!ELSEIF  "$(CFG)" == "Tombo - Win32 (WCE ARM) Release"\r
+\r
+# PROP Exclude_From_Build 1\r
+\r
+!ELSEIF  "$(CFG)" == "Tombo - Win32 (WCE ARM) Sig3"\r
+\r
+# PROP Exclude_From_Build 1\r
+\r
+!ENDIF \r
+\r
+# End Source File\r
+# End Target\r
+# End Project\r
diff --git a/HpcPro/Tombo/Tombo.vcw b/HpcPro/Tombo/Tombo.vcw
new file mode 100644 (file)
index 0000000..5f2abfc
--- /dev/null
@@ -0,0 +1,29 @@
+Microsoft eMbedded Visual Tools Workspace File, Format Version 3.00\r
+# WARNING: DO NOT EDIT OR DELETE THIS WORKSPACE FILE!\r
+\r
+###############################################################################\r
+\r
+Project: "Tombo"=.\Tombo.vcp - Package Owner=<4>\r
+\r
+Package=<5>\r
+{{{\r
+}}}\r
+\r
+Package=<4>\r
+{{{\r
+}}}\r
+\r
+###############################################################################\r
+\r
+Global:\r
+\r
+Package=<5>\r
+{{{\r
+}}}\r
+\r
+Package=<3>\r
+{{{\r
+}}}\r
+\r
+###############################################################################\r
+\r
diff --git a/HpcPro/Tombo/res/Tombo.rc b/HpcPro/Tombo/res/Tombo.rc
new file mode 100644 (file)
index 0000000..7578fdc
--- /dev/null
@@ -0,0 +1,681 @@
+//Microsoft Developer Studio generated resource script.\r
+//\r
+#include "resource.h"\r
+\r
+#define APSTUDIO_READONLY_SYMBOLS\r
+/////////////////////////////////////////////////////////////////////////////\r
+//\r
+// Generated from the TEXTINCLUDE 2 resource.\r
+//\r
+#include "afxres.h"\r
+\r
+/////////////////////////////////////////////////////////////////////////////\r
+#undef APSTUDIO_READONLY_SYMBOLS\r
+\r
+/////////////////////////////////////////////////////////////////////////////\r
+// Japanese resources\r
+\r
+#if !defined(AFX_RESOURCE_DLL) || defined(AFX_TARG_JPN)\r
+#ifdef _WIN32\r
+LANGUAGE LANG_JAPANESE, SUBLANG_DEFAULT\r
+#pragma code_page(932)\r
+#endif //_WIN32\r
+\r
+/////////////////////////////////////////////////////////////////////////////\r
+//\r
+// Bitmap\r
+//\r
+\r
+IDB_MEMOSELECT_IMAGES   BITMAP  DISCARDABLE     "../../../Src/image/memoimg.bmp"\r
+IDB_ARTICLEBOX          BITMAP  DISCARDABLE     "../../../Src/image/draftimg.bmp"\r
+IDB_TOOLBAR             BITMAP  DISCARDABLE     "../../../Src/image/toolbar.bmp"\r
+IDB_TOOLBAR_DETAILS     BITMAP  DISCARDABLE     "../../../Src/image/mdtoolbar.bmp"\r
+IDB_REBAR               BITMAP  DISCARDABLE     "../../../Src/image/rebar.bmp"\r
+\r
+/////////////////////////////////////////////////////////////////////////////\r
+//\r
+// Icon\r
+//\r
+\r
+// Icon with lowest ID value placed first to ensure application icon\r
+// remains consistent on all systems.\r
+IDI_TOMBO               ICON    DISCARDABLE     "../../../Src/image/Tombo.ico"\r
+\r
+/////////////////////////////////////////////////////////////////////////////\r
+//\r
+// Dialog\r
+//\r
+\r
+IDD_ABOUTBOX DIALOG DISCARDABLE  0, 0, 212, 102\r
+STYLE DS_MODALFRAME | DS_CENTER | WS_POPUP | WS_CAPTION | WS_SYSMENU\r
+EXSTYLE 0x80000000L\r
+CAPTION "About TOMBO"\r
+FONT 8, "Tahoma"\r
+BEGIN\r
+    ICON            IDI_TOMBO,IDC_STATIC,5,5,20,20\r
+    LTEXT           "Tombo Ver. 1.4",IDC_VERSIONINFO,30,10,166,8,SS_NOPREFIX\r
+    EDITTEXT        IDC_COPYRIGHT,5,30,200,65,ES_MULTILINE | ES_AUTOVSCROLL | \r
+                    ES_AUTOHSCROLL | ES_READONLY | WS_VSCROLL | WS_HSCROLL | \r
+                    NOT WS_TABSTOP\r
+END\r
+\r
+IDD_PASSWORD DIALOG DISCARDABLE  0, 0, 114, 53\r
+STYLE DS_MODALFRAME | DS_CENTER | WS_POPUP | WS_CAPTION | WS_SYSMENU\r
+CAPTION "Password"\r
+FONT 9, "Tahoma"\r
+BEGIN\r
+    EDITTEXT        IDC_PASS,5,5,105,12,ES_PASSWORD | ES_AUTOHSCROLL\r
+    EDITTEXT        IDC_PASS2,5,20,105,12,ES_PASSWORD | ES_AUTOHSCROLL\r
+    DEFPUSHBUTTON   "OK",IDOK,25,35,40,12\r
+    PUSHBUTTON      "Cancel",IDCANCEL,70,35,40,12\r
+END\r
+\r
+IDD_PROPTAB_FOLDER DIALOG DISCARDABLE  0, 0, 151, 110\r
+STYLE WS_CHILD | WS_BORDER\r
+FONT 9, "Tahoma"\r
+BEGIN\r
+    LTEXT           "Folder:",IDC_PROPTAB_FOLDER_LABEL,5,5,45,10\r
+    PUSHBUTTON      "...",IDC_FOLDERSEL,135,5,15,10\r
+    LTEXT           "Folder to store Tombo Notes",IDC_PROPTAB_FOLDER_HELP1,\r
+                    10,25,120,10\r
+    CONTROL         "Sync file name and title",IDC_KEEPTITLE,"Button",\r
+                    BS_AUTOCHECKBOX | WS_TABSTOP,5,40,125,10\r
+    LTEXT           "Rename file name if headline changed.",\r
+                    IDC_PROPTAB_FOLDER_HELP2,10,55,120,20\r
+    COMBOBOX        IDC_TOPFOLDER,55,5,80,70,CBS_DROPDOWN | CBS_AUTOHSCROLL | \r
+                    WS_VSCROLL | WS_TABSTOP\r
+    CONTROL         "Open notes read-only mode",IDC_PROP_READONLY,"Button",\r
+                    BS_AUTOCHECKBOX | WS_TABSTOP,5,80,109,10\r
+END\r
+\r
+IDD_FILESELECT DIALOG DISCARDABLE  0, 0, 134, 89\r
+STYLE DS_MODALFRAME | DS_CENTER | WS_POPUP | WS_CAPTION | WS_SYSMENU\r
+CAPTION "Select File"\r
+FONT 9, "Tahoma"\r
+BEGIN\r
+    PUSHBUTTON      "OK",IDOK,55,70,35,15\r
+    PUSHBUTTON      "CANCEL",IDCANCEL,95,70,35,15\r
+    CONTROL         "Tree1",IDC_FILESELECT_TREE,"SysTreeView32",\r
+                    TVS_HASBUTTONS | TVS_HASLINES | TVS_LINESATROOT | \r
+                    WS_BORDER | WS_TABSTOP,5,0,125,65\r
+END\r
+\r
+IDD_PROPTAB_PASSWORD DIALOG DISCARDABLE  0, 0, 131, 121\r
+STYLE WS_CHILD | WS_BORDER\r
+FONT 9, "Tahoma"\r
+BEGIN\r
+    EDITTEXT        IDC_PASS1,5,15,85,12,ES_PASSWORD | ES_AUTOHSCROLL\r
+    EDITTEXT        IDC_PASS2,5,40,85,12,ES_PASSWORD | ES_AUTOHSCROLL\r
+    LTEXT           "Password:",IDC_STATIC,5,5,105,10\r
+    LTEXT           "ReEnter:",IDC_STATIC,5,30,75,10\r
+    EDITTEXT        IDC_PROP_PASSWORD_DESC,5,55,120,60,ES_MULTILINE | \r
+                    ES_AUTOVSCROLL | ES_READONLY\r
+    PUSHBUTTON      "Option",IDC_PROP_SETPASS,95,40,25,12\r
+END\r
+\r
+IDD_NEWFOLDER DIALOG DISCARDABLE  0, 0, 103, 38\r
+STYLE DS_MODALFRAME | DS_CENTER | WS_POPUP | WS_CAPTION | WS_SYSMENU\r
+CAPTION "NewFolder"\r
+FONT 9, "Tahoma"\r
+BEGIN\r
+    EDITTEXT        IDC_NEWFOLDER_NAME,5,5,95,10,ES_AUTOHSCROLL\r
+    DEFPUSHBUTTON   "OK",IDOK,15,20,40,15\r
+    PUSHBUTTON      "Cancel",IDCANCEL,60,20,40,14\r
+END\r
+\r
+IDD_PROPTAB_PASS_TIMEOUT DIALOG DISCARDABLE  0, 0, 136, 111\r
+STYLE WS_CHILD | WS_BORDER\r
+FONT 9, "Tahoma"\r
+BEGIN\r
+    LTEXT           "Password timeout(min):",IDC_PROPTAB_PASS_TIMEOUT_LABEL,\r
+                    5,5,120,10\r
+    EDITTEXT        IDC_PASS_TIMEOUT,60,20,35,12,ES_AUTOHSCROLL\r
+    LTEXT           "Timeout length(1-60).",IDC_PROPTAB_PASS_TIMEOUT_HELP,5,\r
+                    40,125,20\r
+    CONTROL         "Use random",IDC_PASS_TIMEOUT_USE_SAFEFILE,"Button",\r
+                    BS_AUTOCHECKBOX | WS_TABSTOP,5,65,125,10\r
+    LTEXT           "Static",IDC_PROPTAB_PASS_TIMEOUT_SAFEFILE_HELP,5,80,130,\r
+                    30\r
+END\r
+\r
+IDD_PROPTAB_FONT DIALOG DISCARDABLE  0, 0, 162, 107\r
+STYLE WS_CHILD\r
+FONT 9, "Tahoma"\r
+BEGIN\r
+    LTEXT           "Tree:",IDC_PROPTAB_FONT_TREE_LABEL,5,5,25,10\r
+    LTEXT           "Memo:",IDC_PROPTAB_FONT_EDIT_LABEL,5,50,25,10\r
+    COMBOBOX        IDC_FONT_SELECT_NAME,10,20,95,65,CBS_DROPDOWNLIST | \r
+                    CBS_SORT | WS_VSCROLL | WS_TABSTOP\r
+    COMBOBOX        IDC_FONT_DETAILS_NAME,10,65,95,65,CBS_DROPDOWNLIST | \r
+                    CBS_SORT | WS_VSCROLL | WS_TABSTOP\r
+    COMBOBOX        IDC_FONT_SELECT_SIZE,110,20,35,65,CBS_DROPDOWN | \r
+                    WS_VSCROLL | WS_TABSTOP\r
+    COMBOBOX        IDC_FONT_DETAILS_SIZE,110,65,35,65,CBS_DROPDOWN | \r
+                    WS_VSCROLL | WS_TABSTOP\r
+    CONTROL         "Use default",IDC_FONT_SELECT_USEDEFAULT,"Button",\r
+                    BS_AUTOCHECKBOX | WS_TABSTOP,30,5,60,10\r
+    CONTROL         "Use default",IDC_FONT_DETAILS_USEDEFAULT,"Button",\r
+                    BS_AUTOCHECKBOX | WS_TABSTOP,30,50,65,10\r
+    CONTROL         "ClearType font",IDC_FONT_SELECT_CLEARTYPE,"Button",\r
+                    BS_AUTOCHECKBOX | WS_TABSTOP,45,35,105,10\r
+    CONTROL         "ClearType font",IDC_FONT_DETAILS_CLEARTYPE,"Button",\r
+                    BS_AUTOCHECKBOX | WS_TABSTOP,45,80,105,10\r
+END\r
+\r
+IDD_PROPTAB_INSDATE DIALOG DISCARDABLE  0, 0, 152, 102\r
+STYLE WS_CHILD\r
+FONT 9, "Tahoma"\r
+BEGIN\r
+    LTEXT           "Date1:",IDC_PROPTAB_INSDATE_DATE1,5,5,25,10\r
+    LTEXT           "Date2:",IDC_PROPTAB_INSDATE_DATE2,5,20,25,10\r
+    EDITTEXT        IDC_PROP_DATEFORMAT1,35,5,110,12,ES_AUTOHSCROLL\r
+    EDITTEXT        IDC_PROP_DATEFORMAT2,35,20,110,12,ES_AUTOHSCROLL\r
+    EDITTEXT        IDC_DATEFORMAT_DESC,5,40,140,50,ES_MULTILINE | \r
+                    ES_AUTOHSCROLL | ES_READONLY | WS_VSCROLL | NOT \r
+                    WS_TABSTOP\r
+END\r
+\r
+IDD_PROPTAB_KEEPCARET DIALOG DISCARDABLE  0, 0, 147, 97\r
+STYLE WS_CHILD\r
+FONT 9, "Tahoma"\r
+BEGIN\r
+    CONTROL         "Keep Caret",IDC_PROP_KEEPCARET,"Button",BS_AUTOCHECKBOX | \r
+                    WS_TABSTOP,10,5,115,10\r
+    LTEXT           " ",IDC_PROPTAB_KEEPCARET_HELP1,5,20,135,20\r
+    LTEXT           "TabStop",IDC_PROPTAB_KEEPCARET_LABEL,10,45,45,10\r
+    EDITTEXT        IDC_PROP_TABSTOP,55,45,40,12,ES_AUTOHSCROLL\r
+    LTEXT           " ",IDC_PROPTAB_KEEPCARET_HELP2,20,61,105,10\r
+    CONTROL         "Disable Save Dialog",IDC_PROPTAB_DISABLESAVEDLG,"Button",\r
+                    BS_AUTOCHECKBOX | WS_TABSTOP,10,75,110,10\r
+END\r
+\r
+IDD_SEARCH DIALOG DISCARDABLE  0, 0, 163, 89\r
+STYLE DS_MODALFRAME | DS_CENTER | WS_POPUP | WS_CAPTION | WS_SYSMENU\r
+EXSTYLE 0x80000000L\r
+CAPTION "Search"\r
+FONT 9, "Tahoma"\r
+BEGIN\r
+    COMBOBOX        IDC_SEARCH_STRING,5,20,145,75,CBS_DROPDOWN | WS_VSCROLL | \r
+                    WS_TABSTOP\r
+    LTEXT           "Search Str:",IDC_SEARCH_FIND_LABEL,5,5,40,10\r
+    CONTROL         "Case sensitive",IDC_SEARCH_CASESENSITIVE,"Button",\r
+                    BS_AUTOCHECKBOX | WS_TABSTOP,5,40,95,10\r
+    CONTROL         "Find encrypted memo",IDC_SEARCH_ENCRYPTMEMO,"Button",\r
+                    BS_AUTOCHECKBOX | WS_TABSTOP,5,55,100,10\r
+    CONTROL         "Find to file name",IDC_FILENAMEONLY,"Button",\r
+                    BS_AUTOCHECKBOX | WS_TABSTOP,5,70,90,10\r
+    CONTROL         "Up",IDC_SEARCH_DIRECTION_UP,"Button",BS_AUTORADIOBUTTON,\r
+                    115,50,29,10\r
+    CONTROL         "Down",IDC_SEARCH_DIRECTION_DOWN,"Button",\r
+                    BS_AUTORADIOBUTTON,115,60,29,10\r
+    GROUPBOX        "Direction",IDC_SEARCH_DIRECT_LABEL,110,40,40,35\r
+END\r
+\r
+IDD_SEARCHING DIALOG DISCARDABLE  0, 0, 89, 59\r
+STYLE DS_MODALFRAME | DS_CENTER | WS_POPUP\r
+FONT 9, "Tahoma"\r
+BEGIN\r
+    PUSHBUTTON      "Cancel",IDCANCEL,20,35,50,14\r
+    CTEXT           "Searching...",IDC_SEARCHMSG,5,16,80,8\r
+END\r
+\r
+IDD_GREPTAB_MAIN DIALOG DISCARDABLE  0, 0, 146, 91\r
+STYLE WS_CHILD | WS_BORDER\r
+FONT 9, "Tahoma"\r
+BEGIN\r
+    LTEXT           "Target dir:",IDC_GREPTAB_MAIN_POSLABEL,5,5,44,8\r
+    LTEXT           "Static",IDC_GREPTAB_MAIN_STARTDIR,50,5,90,10\r
+    LTEXT           "Search str:",IDC_GREPTAB_MAIN_STRLABEL,5,20,38,8\r
+    COMBOBOX        IDC_GREPTAB_MAIN_SEARCHSTRING,45,20,100,70,CBS_DROPDOWN | \r
+                    WS_VSCROLL | WS_TABSTOP\r
+    CONTROL         "Case sensitive",IDC_GREPTAB_MAIN_CASESENSITIVE,"Button",\r
+                    BS_AUTOCHECKBOX | WS_TABSTOP,10,40,76,10\r
+    CONTROL         "Include encrypted memo",IDC_GREPTAB_MAIN_ENCRYPTNOTE,\r
+                    "Button",BS_AUTOCHECKBOX | WS_TABSTOP,10,55,81,10\r
+    CONTROL         "Find to file name",IDC_GREPTAB_MAIN_FILENAME,"Button",\r
+                    BS_AUTOCHECKBOX | WS_TABSTOP,10,70,78,10\r
+END\r
+\r
+IDD_GREPTAB_PERSIST DIALOG DISCARDABLE  0, 0, 146, 91\r
+STYLE WS_CHILD | WS_BORDER\r
+FONT 9, "Tahoma"\r
+BEGIN\r
+END\r
+\r
+IDD_FILTERCTL DIALOG DISCARDABLE  0, 0, 179, 98\r
+STYLE DS_MODALFRAME | DS_CENTER | WS_POPUP | WS_CAPTION | WS_SYSMENU\r
+CAPTION "Virtual folder"\r
+FONT 9, "Tahoma"\r
+BEGIN\r
+    DEFPUSHBUTTON   "OK",IDOK,30,80,50,14\r
+    PUSHBUTTON      "Cancel",IDCANCEL,85,80,50,14\r
+    CONTROL         "List1",IDC_FILTERCTL_LIST,"SysListView32",LVS_REPORT | \r
+                    LVS_SINGLESEL | LVS_SHOWSELALWAYS | LVS_EDITLABELS | \r
+                    WS_BORDER | WS_TABSTOP,30,5,105,70\r
+    CONTROL         "Save",IDC_FILTERCTL_KEEP,"Button",BS_AUTOCHECKBOX | \r
+                    WS_TABSTOP,145,5,30,10\r
+    PUSHBUTTON      "Up",IDC_FILTERCTL_UP,5,20,20,14\r
+    PUSHBUTTON      "DN",IDC_FILTERCTL_DOWN,5,40,20,14\r
+    PUSHBUTTON      "New",IDC_FILTERCTL_NEW,145,20,25,14\r
+    PUSHBUTTON      "Del",IDC_FILTERCTL_DELETE,145,60,25,14\r
+    PUSHBUTTON      "Ren",IDC_FILTERCTL_RENAME,145,40,25,14\r
+END\r
+\r
+IDD_FILTERDEF_ADD_LIMIT DIALOG DISCARDABLE  0, 0, 119, 65\r
+STYLE DS_MODALFRAME | DS_CENTER | WS_POPUP | WS_CAPTION | WS_SYSMENU\r
+CAPTION "Number filter"\r
+FONT 9, "Tahoma"\r
+BEGIN\r
+    DEFPUSHBUTTON   "OK",IDOK,5,45,50,14\r
+    PUSHBUTTON      "CANCEL",IDCANCEL,60,45,50,14\r
+    LTEXT           "Num Items:",IDC_FILTERDEF_ADD_LIMIT_ITEMS,5,15,36,8\r
+    EDITTEXT        IDC_FILTERDEF_LIMIT_NUMLIMIT,50,15,40,14,ES_AUTOHSCROLL\r
+END\r
+\r
+IDD_FILTERDEF_ADD_REGEX DIALOG DISCARDABLE  0, 0, 135, 109\r
+STYLE DS_MODALFRAME | DS_CENTER | WS_POPUP | WS_CAPTION | WS_SYSMENU\r
+CAPTION "Find filter"\r
+FONT 9, "Tahoma"\r
+BEGIN\r
+    DEFPUSHBUTTON   "OK",IDOK,10,90,50,14\r
+    PUSHBUTTON      "CANCEL",IDCANCEL,65,90,50,14\r
+    LTEXT           "Search str:",IDC_FILTERDEF_ADD_REGEX_LABEL,5,10,36,8\r
+    COMBOBOX        IDC_FILTERDEF_REGEX_SEARCHSTR,50,10,80,80,CBS_DROPDOWN | \r
+                    CBS_SORT | WS_VSCROLL | WS_TABSTOP\r
+    CONTROL         "Case sensitive",IDC_FILTERDEF_REGEX_CASESENSITIVE,\r
+                    "Button",BS_AUTOCHECKBOX | WS_TABSTOP,10,30,77,10\r
+    CONTROL         "Include encrypted memo",IDC_FILTERDEF_REGEX_CRYPTMEMO,\r
+                    "Button",BS_AUTOCHECKBOX | WS_TABSTOP,10,45,78,10\r
+    CONTROL         "Find to file name",IDC_FILTERDEF_REGEX_FILENAME,"Button",\r
+                    BS_AUTOCHECKBOX | WS_TABSTOP,10,60,85,10\r
+    CONTROL         "Invert match",IDC_FILTERDEF_REGEX_NEGATE,"Button",\r
+                    BS_AUTOCHECKBOX | WS_TABSTOP,10,75,83,10\r
+END\r
+\r
+IDD_FILTERDEF_ADD_SORT DIALOG DISCARDABLE  0, 0, 134, 65\r
+STYLE DS_MODALFRAME | DS_CENTER | WS_POPUP | WS_CAPTION | WS_SYSMENU\r
+CAPTION "Sort filter"\r
+FONT 9, "Tahoma"\r
+BEGIN\r
+    DEFPUSHBUTTON   "OK",IDOK,10,40,50,14\r
+    PUSHBUTTON      "CANCEL",IDCANCEL,65,40,50,14\r
+    COMBOBOX        IDC_FILTERDEF_SORT_TYPE,45,15,80,85,CBS_DROPDOWNLIST | \r
+                    WS_VSCROLL | WS_TABSTOP\r
+    LTEXT           "Sort Type:",IDC_FILTERDEF_ADD_SORT_LABEL,5,15,35,8\r
+END\r
+\r
+IDD_FILTERDEF_ADD_TIMESTAMP DIALOG DISCARDABLE  0, 0, 119, 93\r
+STYLE DS_MODALFRAME | DS_CENTER | WS_POPUP | WS_CAPTION | WS_SYSMENU\r
+CAPTION "Timestamp filter"\r
+FONT 9, "Tahoma"\r
+BEGIN\r
+    EDITTEXT        IDC_FILTERDEF_TS_DELTADAY,25,10,30,14,ES_AUTOHSCROLL\r
+    CONTROL         "Newer",IDC_FILTERDEF_TS_NEWER,"Button",\r
+                    BS_AUTORADIOBUTTON,35,35,46,10\r
+    CONTROL         "Older",IDC_FILTERDEF_TS_OLDER,"Button",\r
+                    BS_AUTORADIOBUTTON,35,50,41,10\r
+    DEFPUSHBUTTON   "OK",IDOK,5,75,50,14\r
+    PUSHBUTTON      "CANCEL",IDCANCEL,60,75,50,14\r
+    LTEXT           "days before",IDC_FILTERDEF_ADD_TIMESTAMP_BASEPOINT,60,\r
+                    15,26,8\r
+END\r
+\r
+IDD_FILTERDEF_FILTER DIALOG DISCARDABLE  0, 0, 181, 95\r
+STYLE WS_CHILD | WS_BORDER\r
+FONT 9, "Tahoma"\r
+BEGIN\r
+    CONTROL         "List1",IDC_FILTERDEF_FILTER_LIST,"SysListView32",\r
+                    LVS_REPORT | LVS_SINGLESEL | LVS_SHOWSELALWAYS | \r
+                    WS_BORDER | WS_TABSTOP,5,5,105,85\r
+    PUSHBUTTON      "Up",IDC_FILTERDEF_FILTER_UP,115,15,25,14\r
+    PUSHBUTTON      "Dn",IDC_FILTERDEF_FILTER_DOWN,115,35,25,14\r
+    PUSHBUTTON      "Find",IDC_FILTERDEF_FILTER_REGEX,145,10,30,14\r
+    PUSHBUTTON      "Num",IDC_FILTERDEF_FILTER_LIMIT,145,30,30,14\r
+    PUSHBUTTON      "Date",IDC_FILTERDEF_FILTER_TIMESTAMP,145,50,30,14\r
+    PUSHBUTTON      "Sort",IDC_FILTERDEF_FILTER_SORT,145,70,30,14\r
+    PUSHBUTTON      "Del",IDC_FILTERDEF_FILTER_DELETE,115,65,25,14\r
+END\r
+\r
+IDD_FILTERDEF_SRC DIALOG DISCARDABLE  0, 0, 136, 50\r
+STYLE WS_CHILD | WS_BORDER\r
+FONT 9, "Tahoma"\r
+BEGIN\r
+    EDITTEXT        IDC_FILTERDEF_SRC_PATH,5,15,120,14,ES_AUTOHSCROLL\r
+END\r
+\r
+IDD_PROPTAB_DEFNOTE DIALOG DISCARDABLE  0, 0, 141, 110\r
+STYLE WS_CHILD | WS_BORDER\r
+FONT 9, "Tahoma"\r
+BEGIN\r
+    EDITTEXT        IDC_PROPTAB_DEFNOTE_PATH,5,40,115,12,ES_AUTOHSCROLL | \r
+                    ES_READONLY\r
+    PUSHBUTTON      "Use current",IDC_PROPTAB_DEFNOTE_SETCURRENT,60,60,60,14\r
+    PUSHBUTTON      "Use blank",IDC_PROPTAB_DEFNOTE_SETBLANK,60,80,60,14\r
+    LTEXT           "Top page",IDC_PROPTAB_DEFNOTE_LABEL,5,25,36,8\r
+    CONTROL         "Use Last",IDC_PROPTAB_DEFNOTE_USELAST,"Button",\r
+                    BS_AUTOCHECKBOX | WS_TABSTOP,5,5,130,10\r
+END\r
+\r
+IDD_BOOKMARK_EDIT DIALOG DISCARDABLE  0, 0, 187, 99\r
+STYLE DS_MODALFRAME | DS_CENTER | WS_POPUP | WS_CAPTION | WS_SYSMENU\r
+CAPTION "Edit bookmarks"\r
+FONT 9, "Tahoma"\r
+BEGIN\r
+    DEFPUSHBUTTON   "OK",IDOK,70,80,50,14\r
+    PUSHBUTTON      "Cancel",IDCANCEL,125,80,50,14\r
+    CONTROL         "List1",IDC_BMEDIT_LIST,"SysListView32",LVS_REPORT | \r
+                    WS_BORDER | WS_TABSTOP,30,5,150,70\r
+    PUSHBUTTON      "Up",IDC_BMEDIT_UP,5,15,20,14\r
+    PUSHBUTTON      "Dn",IDC_BMEDIT_DOWN,5,35,20,14\r
+    PUSHBUTTON      "Del",IDC_BMEDIT_DELETE,10,80,50,14\r
+END\r
+\r
+IDD_PROPTAB_EXTAPP DIALOG DISCARDABLE  0, 0, 201, 96\r
+STYLE WS_CHILD | WS_BORDER\r
+FONT 9, "Tahoma"\r
+BEGIN\r
+    CONTROL         "Use file association",IDC_PROP_EXTAPP_USEASSOC,"Button",\r
+                    BS_AUTOCHECKBOX | WS_TABSTOP,5,5,74,10\r
+    EDITTEXT        IDC_PROP_EXTAPP_PATH_EXTAPP1,10,35,70,12,ES_AUTOHSCROLL\r
+    EDITTEXT        IDC_PROP_EXTAPP_PATH_EXTAPP2,10,70,70,12,ES_AUTOHSCROLL\r
+    LTEXT           "Application1",IDC_PROP_EXTAPP_TTL_EXTAPP1,5,20,60,8\r
+    LTEXT           "Application2",IDC_PROP_EXTAPP_TTL_EXTAPP2,5,55,60,8\r
+    PUSHBUTTON      "...",IDC_PROPTAB_EXTAPP_CHOOSE1,85,35,20,10\r
+    PUSHBUTTON      "...",IDC_PROPTAB_EXTAPP_CHOOSE2,85,70,20,10\r
+    EDITTEXT        IDC_PROP_EXTAPP_CAUTION,110,5,75,80,ES_MULTILINE | \r
+                    ES_AUTOVSCROLL | ES_READONLY\r
+END\r
+\r
+IDD_PROPTAB_CODEPAGE DIALOG DISCARDABLE  0, 0, 142, 102\r
+STYLE WS_CHILD\r
+FONT 9, "System"\r
+BEGIN\r
+    LTEXT           "CodePage:",IDC_PROPTAB_CODEPAGE_LABEL,10,5,35,8\r
+    COMBOBOX        IDC_PROPTAB_CODEPAGE_CODEPAGE,5,20,135,90,\r
+                    CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP\r
+    EDITTEXT        IDC_PROPTAB_CODEPAGE_NOTICE,0,40,140,55,ES_MULTILINE | \r
+                    ES_AUTOVSCROLL | ES_READONLY\r
+END\r
+\r
+\r
+/////////////////////////////////////////////////////////////////////////////\r
+//\r
+// Menu\r
+//\r
+\r
+IDR_CONTEXTMENU MENU DISCARDABLE \r
+BEGIN\r
+    POPUP "Menu"\r
+    BEGIN\r
+        MENUITEM "\90Ø\82è\8eæ\82è",                    IDM_CUT\r
+        MENUITEM "\83R\83s\81[",                      IDM_COPY\r
+        MENUITEM SEPARATOR\r
+        MENUITEM "\88Ã\8d\86\89»",                      IDM_ENCRYPT\r
+        MENUITEM "\95\9c\8d\86\89»",                      IDM_DECRYPT\r
+        MENUITEM SEPARATOR\r
+        MENUITEM "\8c\9f\8dõ",                        IDM_SEARCH\r
+        MENUITEM SEPARATOR\r
+        MENUITEM "\90V\8bK\83t\83H\83\8b\83_",                IDM_NEWFOLDER\r
+        MENUITEM SEPARATOR\r
+        MENUITEM "\8dí\8f\9c",                        IDM_DELETEITEM\r
+        MENUITEM "\96¼\91O\82Ì\95Ï\8dX",                  IDM_RENAME\r
+        MENUITEM SEPARATOR\r
+        MENUITEM "\83\8a\83\93\83N\8c³\82Ö\88Ú\93®",              IDM_TRACELINK\r
+    END\r
+END\r
+\r
+\r
+/////////////////////////////////////////////////////////////////////////////\r
+//\r
+// DESIGNINFO\r
+//\r
+\r
+#ifdef APSTUDIO_INVOKED\r
+GUIDELINES DESIGNINFO DISCARDABLE \r
+BEGIN\r
+    IDD_PROPTAB_FOLDER, DIALOG\r
+    BEGIN\r
+        BOTTOMMARGIN, 105\r
+    END\r
+\r
+    IDD_PROPTAB_FONT, DIALOG\r
+    BEGIN\r
+        LEFTMARGIN, 7\r
+        RIGHTMARGIN, 155\r
+        TOPMARGIN, 7\r
+        BOTTOMMARGIN, 100\r
+    END\r
+\r
+    IDD_PROPTAB_INSDATE, DIALOG\r
+    BEGIN\r
+        LEFTMARGIN, 7\r
+        RIGHTMARGIN, 145\r
+        TOPMARGIN, 7\r
+        BOTTOMMARGIN, 95\r
+    END\r
+\r
+    IDD_PROPTAB_KEEPCARET, DIALOG\r
+    BEGIN\r
+        LEFTMARGIN, 7\r
+        RIGHTMARGIN, 140\r
+        TOPMARGIN, 7\r
+        BOTTOMMARGIN, 90\r
+    END\r
+\r
+    IDD_SEARCH, DIALOG\r
+    BEGIN\r
+        LEFTMARGIN, 7\r
+        RIGHTMARGIN, 156\r
+        TOPMARGIN, 7\r
+        BOTTOMMARGIN, 82\r
+    END\r
+\r
+    IDD_SEARCHING, DIALOG\r
+    BEGIN\r
+        LEFTMARGIN, 7\r
+        RIGHTMARGIN, 82\r
+        TOPMARGIN, 7\r
+        BOTTOMMARGIN, 52\r
+    END\r
+\r
+    IDD_GREPTAB_MAIN, DIALOG\r
+    BEGIN\r
+        LEFTMARGIN, 7\r
+        RIGHTMARGIN, 139\r
+        TOPMARGIN, 7\r
+        BOTTOMMARGIN, 84\r
+    END\r
+\r
+    IDD_GREPTAB_PERSIST, DIALOG\r
+    BEGIN\r
+        LEFTMARGIN, 7\r
+        RIGHTMARGIN, 139\r
+        TOPMARGIN, 7\r
+        BOTTOMMARGIN, 84\r
+    END\r
+\r
+    IDD_FILTERCTL, DIALOG\r
+    BEGIN\r
+        LEFTMARGIN, 7\r
+        RIGHTMARGIN, 172\r
+        TOPMARGIN, 7\r
+        BOTTOMMARGIN, 91\r
+    END\r
+\r
+    IDD_FILTERDEF_ADD_LIMIT, DIALOG\r
+    BEGIN\r
+        LEFTMARGIN, 7\r
+        RIGHTMARGIN, 112\r
+        TOPMARGIN, 7\r
+        BOTTOMMARGIN, 58\r
+    END\r
+\r
+    IDD_FILTERDEF_ADD_REGEX, DIALOG\r
+    BEGIN\r
+        LEFTMARGIN, 7\r
+        RIGHTMARGIN, 128\r
+        TOPMARGIN, 7\r
+        BOTTOMMARGIN, 102\r
+    END\r
+\r
+    IDD_FILTERDEF_ADD_SORT, DIALOG\r
+    BEGIN\r
+        LEFTMARGIN, 7\r
+        RIGHTMARGIN, 127\r
+        TOPMARGIN, 7\r
+        BOTTOMMARGIN, 58\r
+    END\r
+\r
+    IDD_FILTERDEF_ADD_TIMESTAMP, DIALOG\r
+    BEGIN\r
+        LEFTMARGIN, 7\r
+        RIGHTMARGIN, 112\r
+        TOPMARGIN, 7\r
+        BOTTOMMARGIN, 86\r
+    END\r
+\r
+    IDD_FILTERDEF_FILTER, DIALOG\r
+    BEGIN\r
+        LEFTMARGIN, 7\r
+        RIGHTMARGIN, 174\r
+        TOPMARGIN, 7\r
+        BOTTOMMARGIN, 88\r
+    END\r
+\r
+    IDD_FILTERDEF_SRC, DIALOG\r
+    BEGIN\r
+        LEFTMARGIN, 7\r
+        RIGHTMARGIN, 129\r
+        TOPMARGIN, 7\r
+        BOTTOMMARGIN, 43\r
+    END\r
+\r
+    IDD_PROPTAB_DEFNOTE, DIALOG\r
+    BEGIN\r
+        LEFTMARGIN, 7\r
+        TOPMARGIN, 7\r
+        BOTTOMMARGIN, 55\r
+    END\r
+\r
+    IDD_BOOKMARK_EDIT, DIALOG\r
+    BEGIN\r
+        LEFTMARGIN, 7\r
+        RIGHTMARGIN, 180\r
+        TOPMARGIN, 7\r
+        BOTTOMMARGIN, 92\r
+    END\r
+\r
+    IDD_PROPTAB_EXTAPP, DIALOG\r
+    BEGIN\r
+        LEFTMARGIN, 7\r
+        RIGHTMARGIN, 194\r
+        TOPMARGIN, 7\r
+        BOTTOMMARGIN, 89\r
+    END\r
+\r
+    IDD_PROPTAB_CODEPAGE, DIALOG\r
+    BEGIN\r
+        LEFTMARGIN, 7\r
+        RIGHTMARGIN, 135\r
+        TOPMARGIN, 7\r
+        BOTTOMMARGIN, 95\r
+    END\r
+END\r
+#endif    // APSTUDIO_INVOKED\r
+\r
+\r
+/////////////////////////////////////////////////////////////////////////////\r
+//\r
+// Accelerator\r
+//\r
+\r
+IDR_ACCEL_SELECT ACCELERATORS DISCARDABLE \r
+BEGIN\r
+    "8",            IDM_SEARCH_PREV,        VIRTKEY, CONTROL, NOINVERT\r
+    "9",            IDM_SEARCH_NEXT,        VIRTKEY, CONTROL, NOINVERT\r
+    "A",            IDM_SELALL,             VIRTKEY, CONTROL, NOINVERT\r
+    "E",            IDM_ENCRYPT,            VIRTKEY, CONTROL, NOINVERT\r
+    "F",            IDM_SEARCH,             VIRTKEY, CONTROL, NOINVERT\r
+    "G",            IDM_GREP,               VIRTKEY, CONTROL, NOINVERT\r
+    "N",            IDM_NEWMEMO,            VIRTKEY, CONTROL, NOINVERT\r
+    "P",            IDM_DECRYPT,            VIRTKEY, CONTROL, NOINVERT\r
+    "Q",            IDM_EXIT,               VIRTKEY, CONTROL, NOINVERT\r
+    "S",            IDM_SAVE,               VIRTKEY, CONTROL, NOINVERT\r
+    VK_F3,          IDM_SEARCH_NEXT,        VIRTKEY, NOINVERT\r
+    VK_F3,          IDM_SEARCH_PREV,        VIRTKEY, SHIFT, NOINVERT\r
+END\r
+\r
+IDR_ACCEL_DETAIL ACCELERATORS DISCARDABLE \r
+BEGIN\r
+    "1",            IDM_INSDATE1,           VIRTKEY, CONTROL, NOINVERT\r
+    "2",            IDM_INSDATE2,           VIRTKEY, CONTROL, NOINVERT\r
+    "8",            IDM_SEARCH_PREV,        VIRTKEY, CONTROL, NOINVERT\r
+    "9",            IDM_SEARCH_NEXT,        VIRTKEY, CONTROL, NOINVERT\r
+    "B",            IDM_TOGGLEREADONLY,     VIRTKEY, CONTROL, NOINVERT\r
+    "C",            IDM_COPY,               VIRTKEY, CONTROL, NOINVERT\r
+    "F",            IDM_SEARCH,             VIRTKEY, CONTROL, NOINVERT\r
+    "N",            IDM_NEWMEMO,            VIRTKEY, CONTROL, NOINVERT\r
+    "Q",            IDM_EXIT,               VIRTKEY, CONTROL, NOINVERT\r
+    "S",            IDM_SAVE,               VIRTKEY, CONTROL, NOINVERT\r
+    "V",            IDM_PASTE,              VIRTKEY, CONTROL, NOINVERT\r
+    VK_ESCAPE,      IDM_RETURNLIST,         VIRTKEY, NOINVERT\r
+    VK_ESCAPE,      IDM_RETURNLIST,         VIRTKEY, SHIFT, NOINVERT\r
+    VK_F3,          IDM_SEARCH_NEXT,        VIRTKEY, NOINVERT\r
+    VK_F3,          IDM_SEARCH_PREV,        VIRTKEY, SHIFT, NOINVERT\r
+    "X",            IDM_CUT,                VIRTKEY, CONTROL, NOINVERT\r
+    "Z",            IDM_UNDO,               VIRTKEY, CONTROL, NOINVERT\r
+END\r
+\r
+#endif    // Japanese resources\r
+/////////////////////////////////////////////////////////////////////////////\r
+\r
+\r
+/////////////////////////////////////////////////////////////////////////////\r
+// English (U.S.) resources\r
+\r
+#if !defined(AFX_RESOURCE_DLL) || defined(AFX_TARG_ENU)\r
+#ifdef _WIN32\r
+LANGUAGE LANG_ENGLISH, SUBLANG_ENGLISH_US\r
+#pragma code_page(1252)\r
+#endif //_WIN32\r
+\r
+#ifdef APSTUDIO_INVOKED\r
+/////////////////////////////////////////////////////////////////////////////\r
+//\r
+// TEXTINCLUDE\r
+//\r
+\r
+1 TEXTINCLUDE DISCARDABLE \r
+BEGIN\r
+    "resource.h\0"\r
+END\r
+\r
+2 TEXTINCLUDE DISCARDABLE \r
+BEGIN\r
+    "#include ""afxres.h""\r\n"\r
+    "\0"\r
+END\r
+\r
+3 TEXTINCLUDE DISCARDABLE \r
+BEGIN\r
+    "\r\n"\r
+    "\0"\r
+END\r
+\r
+#endif    // APSTUDIO_INVOKED\r
+\r
+#endif    // English (U.S.) resources\r
+/////////////////////////////////////////////////////////////////////////////\r
+\r
+\r
+\r
+#ifndef APSTUDIO_INVOKED\r
+/////////////////////////////////////////////////////////////////////////////\r
+//\r
+// Generated from the TEXTINCLUDE 3 resource.\r
+//\r
+\r
+\r
+/////////////////////////////////////////////////////////////////////////////\r
+#endif    // not APSTUDIO_INVOKED\r
+\r
diff --git a/HpcPro/Tombo/res/resource.h b/HpcPro/Tombo/res/resource.h
new file mode 100644 (file)
index 0000000..90b78fe
--- /dev/null
@@ -0,0 +1,248 @@
+//{{NO_DEPENDENCIES}}\r
+// Microsoft Developer Studio generated include file.\r
+// Used by Tombo.rc\r
+//\r
+#define IDS_APP_TITLE                   1\r
+#define IDS_HELLO                       2\r
+#define IDC_HELLOWINCE                  3\r
+#define IDI_TOMBO                       101\r
+#define IDC_MEMODETAILSVIEW             101\r
+#define IDC_MEMOSELECTVIEW              102\r
+#define IDD_ABOUTBOX                    103\r
+#define IDB_MEMOSELECT_IMAGES           104\r
+#define ID_PASSWORDTIMER                104\r
+#define IDD_PASSWORD                    105\r
+#define ID_CMDBAR_MAIN                  105\r
+#define IDD_PROPTAB_FOLDER              106\r
+#define ID_CMDBAR_DETAILS               106\r
+#define IDD_FILESELECT                  107\r
+#define IDC_MEMODETAILSVIEW_NF          107\r
+#define IDB_ARTICLEBOX                  108\r
+#define IDC_STATUS                      108\r
+#define IDD_PROPTAB_PASSWORD            109\r
+#define IDC_TOOLBAR                     109\r
+#define IDD_NEWFOLDER                   110\r
+#define IDC_CMDBAND                     110\r
+#define IDD_PROPTAB_PASS_TIMEOUT        111\r
+#define ID_MENUBAND                     111\r
+#define ID_BUTTONBAND                   112\r
+#define IDM_EXTAPP1                     113\r
+#define IDM_ASSOC                       114\r
+#define IDB_TOOLBAR                     115\r
+#define IDM_EXTAPP2                     115\r
+#define IDB_TOOLBAR_DETAILS             116\r
+#define IDC_TOMBOEDIT                   116\r
+#define IDD_PROPTAB_FONT                117\r
+#define IDT_SELSCROLL                   117\r
+#define IDD_PROPTAB_INSDATE             118\r
+#define IDR_ACCEL_SELECT                120\r
+#define IDR_ACCEL_DETAIL                121\r
+#define IDD_PROPTAB_KEEPCARET           122\r
+#define IDD_SEARCH                      126\r
+#define IDI_REBAR                       127\r
+#define IDD_PROPTAB_DEFNOTE             127\r
+#define IDB_REBAR                       128\r
+#define IDD_SEARCHING                   129\r
+#define IDD_GREPTAB_MAIN                130\r
+#define IDD_GREPTAB_PERSIST             131\r
+#define IDD_FILTERCTL                   132\r
+#define IDR_CONTEXTMENU                 133\r
+#define IDD_BOOKMARK_EDIT               134\r
+#define IDD_PROPTAB_EXTAPP              135\r
+#define IDD_PROPTAB_CODEPAGE            136\r
+#define IDD_FILTERDEF_SRC               138\r
+#define IDD_FILTERDEF_FILTER            139\r
+#define IDD_FILTERDEF_ADD_REGEX         140\r
+#define IDD_FILTERDEF_ADD_LIMIT         141\r
+#define IDD_FILTERDEF_ADD_TIMESTAMP     142\r
+#define IDD_FILTERDEF_ADD_SORT          143\r
+#define IDM_MAIN_MENUITEM1              401\r
+#define IDM_MAIN_MENUITEM2              402\r
+#define IDS_MAIN_MENUITEM1              410\r
+#define IDS_MAIN_MENUITEM2              412\r
+#define IDM_MAIN_MENU                   450\r
+#define IDR_MENU_MAIN                   450\r
+#define IDM_DETAILS_MENU                460\r
+#define IDR_MENU_DETAILS                460\r
+#define IDC_PASS                        1001\r
+#define IDC_TOPFOLDER                   1002\r
+#define IDC_FOLDERSEL                   1003\r
+#define IDC_FILESELECT_TREE             1004\r
+#define IDC_PASS1                       1005\r
+#define IDC_PASS2                       1006\r
+#define IDC_PROP_PASSWORD_DESC          1007\r
+#define IDC_NEWFOLDER_NAME              1008\r
+#define IDC_PASS_TIMEOUT                1010\r
+#define IDC_FONT_SELECT_NAME            1011\r
+#define IDC_FONT_DETAILS_NAME           1012\r
+#define IDC_FONT_SELECT_SIZE            1013\r
+#define IDC_FONT_DETAILS_SIZE           1014\r
+#define IDC_FONT_SELECT_USEDEFAULT      1015\r
+#define IDC_FONT_DETAILS_USEDEFAULT     1016\r
+#define IDC_PROP_DATEFORMAT1            1017\r
+#define IDC_PROP_DATEFORMAT2            1018\r
+#define IDC_PROP_SETPASS                1018\r
+#define IDC_PROP_KEEPCARET              1019\r
+#define IDC_PROP_TABSTOP                1020\r
+#define IDC_KEEPTITLE                   1021\r
+#define IDC_SEARCH_STRING               1022\r
+#define IDC_SEARCH_CASESENSITIVE        1023\r
+#define IDC_SEARCH_ENCRYPTMEMO          1024\r
+#define IDC_EDIT1                       1025\r
+#define IDC_COPYRIGHT                   1025\r
+#define IDC_DATEFORMAT_DESC             1025\r
+#define IDC_PROP_EXTAPP_PATH_EXTAPP1    1025\r
+#define IDC_PROPTAB_CODEPAGE_NOTICE     1025\r
+#define IDC_FILENAMEONLY                1026\r
+#define IDC_PROP_EXTAPP_PATH_EXTAPP2    1026\r
+#define IDC_VERSIONINFO                 1028\r
+#define IDC_SEARCH_DIRECTION_UP         1029\r
+#define IDC_SEARCH_DIRECTION_DOWN       1030\r
+#define IDC_SEARCHMSG                   1031\r
+#define IDC_GREPTAB_MAIN_SEARCHSTRING   1032\r
+#define IDC_GREPTAB_MAIN_CASESENSITIVE  1033\r
+#define IDC_GREPTAB_MAIN_ENCRYPTNOTE    1034\r
+#define IDC_GREPTAB_MAIN_FILENAME       1035\r
+#define IDC_GREPTAB_MAIN_STARTDIR       1036\r
+#define IDC_PROP_READONLY               1037\r
+#define IDC_BMEDIT_LIST                 1039\r
+#define IDC_BMEDIT_UP                   1040\r
+#define IDC_FILTERCTL_LIST              1041\r
+#define IDC_BMEDIT_DOWN                 1041\r
+#define IDC_FILTERCTL_KEEP              1042\r
+#define IDC_BMEDIT_DELETE               1042\r
+#define IDC_FILTERCTL_UP                1043\r
+#define IDC_FILTERDEF_SRC_PATH          1043\r
+#define IDC_FILTERDEF_ADD_REGEX_LABEL   1043\r
+#define IDC_FILTERCTL_DOWN              1044\r
+#define IDC_FILTERDEF_FILTER_LIST       1044\r
+#define IDC_FILTERDEF_ADD_LIMIT_ITEMS   1044\r
+#define IDC_FILTERCTL_NEW               1045\r
+#define IDC_FILTERDEF_FILTER_UP         1045\r
+#define IDC_FILTERDEF_ADD_TIMESTAMP_BASEPOINT 1045\r
+#define IDC_FILTERDEF_FILTER_DOWN       1046\r
+#define IDC_FILTERCTL_DELETE            1046\r
+#define IDC_PROPTAB_DEFNOTE_PATH        1046\r
+#define IDC_FILTERDEF_ADD_SORT_LABEL    1046\r
+#define IDC_FILTERDEF_FILTER_REGEX      1047\r
+#define IDC_FILTERCTL_RENAME            1047\r
+#define IDC_PROPTAB_DEFNOTE_SETCURRENT  1047\r
+#define IDC_GREPTAB_MAIN_POSLABEL       1047\r
+#define IDC_FILTERDEF_REGEX_SEARCHSTR   1048\r
+#define IDC_FILTERDEF_FILTER_LIMIT      1048\r
+#define IDC_PROPTAB_DEFNOTE_SETBLANK    1048\r
+#define IDC_GREPTAB_MAIN_STRLABEL       1048\r
+#define IDC_FILTERDEF_REGEX_CASESENSITIVE 1049\r
+#define IDC_FILTERDEF_FILTER_TIMESTAMP  1049\r
+#define IDC_PROPTAB_FOLDER_LABEL        1049\r
+#define IDC_FILTERDEF_REGEX_CRYPTMEMO   1050\r
+#define IDC_FILTERDEF_FILTER_SORT       1050\r
+#define IDC_PROPTAB_FOLDER_HELP1        1050\r
+#define IDC_FILTERDEF_REGEX_FILENAME    1051\r
+#define IDC_FILTERDEF_FILTER_DELETE     1051\r
+#define IDC_PROPTAB_FOLDER_HELP2        1051\r
+#define IDC_FILTERDEF_REGEX_NEGATE      1052\r
+#define IDC_PROPTAB_PASS_TIMEOUT_LABEL  1052\r
+#define IDC_PROPTAB_PASS_TIMEOUT_HELP   1053\r
+#define IDC_FILTERDEF_LIMIT_NUMLIMIT    1054\r
+#define IDC_PROPTAB_FONT_TREE_LABEL     1054\r
+#define IDC_FILTERDEF_TS_DELTADAY       1055\r
+#define IDC_PROPTAB_FONT_EDIT_LABEL     1055\r
+#define IDC_FILTERDEF_TS_OLDER          1056\r
+#define IDC_PROPTAB_INSDATE_DATE1       1056\r
+#define IDC_FILTERDEF_TS_NEWER          1057\r
+#define IDC_PROPTAB_INSDATE_DATE2       1057\r
+#define IDC_FILTERDEF_SORT_TYPE         1058\r
+#define IDC_PROPTAB_KEEPCARET_HELP1     1058\r
+#define IDC_FONT_SELECT_CLEARTYPE       1059\r
+#define IDC_PROPTAB_KEEPCARET_LABEL     1059\r
+#define IDC_FONT_DETAILS_CLEARTYPE      1060\r
+#define IDC_PROPTAB_KEEPCARET_HELP2     1060\r
+#define IDC_PROPTAB_DEFNOTE_LABEL       1061\r
+#define IDC_SEARCH_FIND_LABEL           1062\r
+#define IDC_SEARCH_DIRECT_LABEL         1063\r
+#define IDC_PROP_EXTAPP_USEASSOC        1064\r
+#define IDC_PROP_EXTAPP_TTL_EXTAPP1     1065\r
+#define IDC_PROP_EXTAPP_TTL_EXTAPP2     1066\r
+#define IDC_PROPTAB_EXTAPP_CHOOSE1      1067\r
+#define IDC_PROPTAB_EXTAPP_CHOOSE2      1068\r
+#define IDC_PROP_EXTAPP_CAUTION         1069\r
+#define IDC_PROPTAB_DISABLESAVEDLG      1070\r
+#define IDC_PASS_TIMEOUT_USE_SAFEFILE   1071\r
+#define IDC_PROPTAB_PASS_TIMEOUT_SAFEFILE_HELP 1072\r
+#define IDC_PROPTAB_CODEPAGE_CODEPAGE   1073\r
+#define IDC_PROPTAB_DEFNOTE_USELAST     1074\r
+#define IDC_PROPTAB_CODEPAGE_LABEL      1075\r
+#define IDM_ACTIONBUTTON                30001\r
+#define IDM_FILE_EXIT                   40002\r
+#define IDM_HELP_ABOUT                  40003\r
+#define IDM_EXIT                        40003\r
+#define IDS_MENUITEM40005               40006\r
+#define IDM_EDIT_MEMO                   40007\r
+#define IDM_DETAILSVIEW_CUT             40008\r
+#define IDM_DETAILSVIEW_COPY            40009\r
+#define IDM_DETAILSVIEW_PASTE           40010\r
+#define IDS_MENUITEM40011               40012\r
+#define IDM_MENUITEM3                   40013\r
+#define IDS_MENUITEM40014               40015\r
+#define IDS_MENUITEM40017               40018\r
+#define IDM_NEWMEMO                     40019\r
+#define IDS_MENUITEM40020               40021\r
+#define IDM_RETURNLIST                  40022\r
+#define IDM_ABOUT                       40023\r
+#define IDM_ENCRYPT                     40024\r
+#define IDM_DECRYPT                     40025\r
+#define IDS_MENUITEM40027               40028\r
+#define IDM_MENU_ENCRYPT                40029\r
+#define IDS_PROPTAB_FOLDER              40029\r
+#define IDM_DELETEITEM                  40030\r
+#define IDS_PROPTAB_TITLE               40030\r
+#define IDM_PROPERTY                    40031\r
+#define IDS_PROPTAB_PASSWORD            40031\r
+#define IDS_PROPERTY_PASSWORD_DESC      40032\r
+#define IDM_NEW                         40032\r
+#define IDS_MENUITEM40033               40034\r
+#define IDM_NEWFOLDER                   40035\r
+#define IDS_PROPTAB_PASS_TIMEOUT        40035\r
+#define IDM_FORGETPASS                  40036\r
+#define IDS_MENUITEM40037               40038\r
+#define IDS_MENUITEM40039               40040\r
+#define IDM_COPY                        40041\r
+#define IDS_MENUITEM40041               40041\r
+#define IDS_PROPTAB_FONT                40041\r
+#define IDM_PASTE                       40042\r
+#define IDS_PROPTAB_DATE                40042\r
+#define IDM_CUT                         40043\r
+#define IDS_PROPTAB_KEEPCARET           40043\r
+#define IDS_GREPTAB_MAIN                40044\r
+#define IDM_SAVE                        40045\r
+#define IDS_GREPTAB_PERSIST             40045\r
+#define IDM_INSDATE1                    40046\r
+#define IDS_PROPTAB_DEFNOTE             40046\r
+#define IDM_INSDATE2                    40047\r
+#define IDM_SELALL                      40048\r
+#define IDM_DETAILS_HSCROLL             40049\r
+#define IDM_TOGGLEPANE                  40050\r
+#define IDM_SEARCH                      40051\r
+#define IDM_SEARCH_NEXT                 40052\r
+#define IDM_SEARCH_PREV                 40053\r
+#define IDM_RENAME                      40054\r
+#define IDM_UNDO                        40055\r
+#define IDM_TOGGLEREADONLY              40056\r
+#define IDM_SHOWSTATUSBAR               40057\r
+#define IDM_GREP                        40058\r
+#define IDM_VFOLDER_DEF                 40059\r
+#define IDM_TRACELINK                   40060\r
+#define IDM_BOOKMARK_ADD                40061\r
+#define IDM_BOOKMARK_CONFIG             40062\r
+\r
+// Next default values for new objects\r
+// \r
+#ifdef APSTUDIO_INVOKED\r
+#ifndef APSTUDIO_READONLY_SYMBOLS\r
+#define _APS_NEXT_RESOURCE_VALUE        137\r
+#define _APS_NEXT_COMMAND_VALUE         40063\r
+#define _APS_NEXT_CONTROL_VALUE         1076\r
+#define _APS_NEXT_SYMED_VALUE           118\r
+#endif\r
+#endif\r
diff --git a/PocketPC/CabWiz/Tombo.inf b/PocketPC/CabWiz/Tombo.inf
new file mode 100644 (file)
index 0000000..a011b21
--- /dev/null
@@ -0,0 +1,87 @@
+[Version]\r
+Signature = "$Windows NT$"\r
+Provider = "FlatFish"\r
+CESignature = "$Windows CE$"\r
+\r
+[DefaultInstall]\r
+AddReg=RegSettings.All\r
+CEShortcuts = Shortcuts.All\r
+\r
+[DefaultInstall.SH3]\r
+CopyFiles = Files.SH3\r
+\r
+[DefaultInstall.MIPS]\r
+CopyFiles = Files.MIPS\r
+\r
+[DefaultInstall.ARM]\r
+CopyFiles = Files.ARM\r
+\r
+[SourceDisksNames]\r
+1 = ,"Common Files",,C:\work2\SF\Tombo\Src\MsgRes\TomboMsg\jp\r
+\r
+[SourceDisksNames.SH3]\r
+2 = ,"SH3 files",,C:\work2\SF\Tombo\PocketPC\Tombo\SH3Rel\r
+3 = ,"SH3 DLL",,C:\work2\SF\Tombo\oniguruma\sh3\r
+4 = ,"RegErase",,C:\work2\SF\Tombo\HPCPro\RegErase\SH3Rel\r
+\r
+[SourceDisksNames.MIPS]\r
+2 = ,"MIPS files",,C:\work2\SF\Tombo\PocketPC\Tombo\MIPSRel\r
+3 = ,"MIPS DLL",,C:\work2\SF\Tombo\oniguruma\mips\r
+4 = ,"RegErase",,C:\work2\SF\Tombo\HPCPro\RegErase\MIPSRel\r
+\r
+[SourceDisksNames.ARM]\r
+2 = ,"ARM files",,C:\work2\SF\Tombo\PocketPC\Tombo\ARMRel\r
+3 = ,"ARM DLL",,C:\work2\SF\Tombo\oniguruma\arm\r
+4 = ,"RegErase",,C:\work2\SF\Tombo\HPCPro\RegErase\ARMRel\r
+\r
+[SourceDisksFiles]\r
+TomboMsg.txt = 1\r
+\r
+[SourceDisksFiles.SH3]\r
+Tombo.exe = 2\r
+oniguruma.dll = 3\r
+RegErase.exe = 4\r
+\r
+[SourceDisksFiles.MIPS]\r
+Tombo.exe = 2\r
+oniguruma.dll = 3\r
+RegErase.exe = 4\r
+\r
+[SourceDisksFiles.ARM]\r
+Tombo.exe = 2\r
+oniguruma.dll = 3\r
+RegErase.exe = 4\r
+\r
+[DestinationDirs]\r
+Files.SH3 = 0,%InstallDir%\Tombo\r
+Files.MIPS = 0,%InstallDir%\Tombo\r
+Files.ARM = 0,%InstallDir%\Tombo\r
+Shortcuts.All = ,%CE11%\r
+\r
+[CEStrings]\r
+AppName = TOMBO\r
+InstallDir = %CE1%\r
+\r
+[Shortcuts.All]\r
+Tombo,0,tombo.exe\r
+\r
+[Files.SH3]\r
+Tombo.exe,,,0\r
+TomboMsg.txt,,,0\r
+oniguruma.dll,,,0\r
+RegErase.exe,,,0\r
+\r
+[Files.MIPS]\r
+Tombo.exe,,,0\r
+TomboMsg.txt,,,0\r
+oniguruma.dll,,,0\r
+RegErase.exe,,,0\r
+\r
+[Files.ARM]\r
+Tombo.exe,,,0\r
+TomboMsg.txt,,,0\r
+oniguruma.dll,,,0\r
+RegErase.exe,,,0\r
+\r
+[RegSettings.All]\r
+\r
diff --git a/PocketPC/CabWiz/TomboE.inf b/PocketPC/CabWiz/TomboE.inf
new file mode 100644 (file)
index 0000000..dacedd4
--- /dev/null
@@ -0,0 +1,87 @@
+[Version]\r
+Signature = "$Windows NT$"\r
+Provider = "FlatFish"\r
+CESignature = "$Windows CE$"\r
+\r
+[DefaultInstall]\r
+AddReg=RegSettings.All\r
+CEShortcuts = Shortcuts.All\r
+\r
+[DefaultInstall.SH3]\r
+CopyFiles = Files.SH3\r
+\r
+[DefaultInstall.MIPS]\r
+CopyFiles = Files.MIPS\r
+\r
+[DefaultInstall.ARM]\r
+CopyFiles = Files.ARM\r
+\r
+[SourceDisksNames]\r
+1 = ,"Common Files",,C:\work2\SF\Tombo\Src\MsgRes\TomboMsg\en\r
+\r
+[SourceDisksNames.SH3]\r
+2 = ,"SH3 files",,C:\work2\SF\Tombo\PocketPC\Tombo\SH3Rel\r
+3 = ,"SH3 DLL",,C:\work2\SF\Tombo\oniguruma\sh3\r
+4 = ,"RegErase",,C:\work2\SF\Tombo\HPCPro\RegErase\SH3Rel\r
+\r
+[SourceDisksNames.MIPS]\r
+2 = ,"MIPS files",,C:\work2\SF\Tombo\PocketPC\Tombo\MIPSRel\r
+3 = ,"MIPS DLL",,C:\work2\SF\Tombo\oniguruma\mips\r
+4 = ,"RegErase",,C:\work2\SF\Tombo\HPCPro\RegErase\MIPSRel\r
+\r
+[SourceDisksNames.ARM]\r
+2 = ,"ARM files",,C:\work2\SF\Tombo\PocketPC\Tombo\ARMRel\r
+3 = ,"ARM DLL",,C:\work2\SF\Tombo\oniguruma\arm\r
+4 = ,"RegErase",,C:\work2\SF\Tombo\HPCPro\RegErase\ARMRel\r
+\r
+[SourceDisksFiles]\r
+TomboMsg.txt = 1\r
+\r
+[SourceDisksFiles.SH3]\r
+Tombo.exe = 2\r
+oniguruma.dll = 3\r
+RegErase.exe = 4\r
+\r
+[SourceDisksFiles.MIPS]\r
+Tombo.exe = 2\r
+oniguruma.dll = 3\r
+RegErase.exe = 4\r
+\r
+[SourceDisksFiles.ARM]\r
+Tombo.exe = 2\r
+oniguruma.dll = 3\r
+RegErase.exe = 4\r
+\r
+[DestinationDirs]\r
+Files.SH3 = 0,%InstallDir%\Tombo\r
+Files.MIPS = 0,%InstallDir%\Tombo\r
+Files.ARM = 0,%InstallDir%\Tombo\r
+Shortcuts.All = ,%CE11%\r
+\r
+[CEStrings]\r
+AppName = TOMBO\r
+InstallDir = %CE1%\r
+\r
+[Shortcuts.All]\r
+Tombo,0,tombo.exe\r
+\r
+[Files.SH3]\r
+Tombo.exe,,,0\r
+TomboMsg.txt,,,0\r
+oniguruma.dll,,,0\r
+RegErase.exe,,,0\r
+\r
+[Files.MIPS]\r
+Tombo.exe,,,0\r
+TomboMsg.txt,,,0\r
+oniguruma.dll,,,0\r
+RegErase.exe,,,0\r
+\r
+[Files.ARM]\r
+Tombo.exe,,,0\r
+TomboMsg.txt,,,0\r
+oniguruma.dll,,,0\r
+RegErase.exe,,,0\r
+\r
+[RegSettings.All]\r
+\r
diff --git a/PocketPC/CabWiz/TomboVGA_en.inf b/PocketPC/CabWiz/TomboVGA_en.inf
new file mode 100644 (file)
index 0000000..77ca595
--- /dev/null
@@ -0,0 +1,52 @@
+[Version]\r
+Signature = "$Windows NT$"\r
+Provider = "FlatFish"\r
+CESignature = "$Windows CE$"\r
+\r
+[CEDevice]\r
+VersionMin=3.00     ; allow install on Pocket PC 2002\r
+VersionMax=99.99\r
+BuildMax=0xE0000000 ; support for square screens and screen rotation\r
+\r
+[DefaultInstall]\r
+AddReg=RegSettings.All\r
+CEShortcuts = Shortcuts.All\r
+\r
+[DefaultInstall.ARM]\r
+CopyFiles = Files.ARM\r
+\r
+[SourceDisksNames]\r
+1 = ,"Common Files",,C:\work2\SF\Tombo\Src\MsgRes\TomboMsg\en\r
+\r
+[SourceDisksNames.ARM]\r
+2 = ,"ARM files",,C:\work2\SF\Tombo\PocketPC\Tombo\ARMReleaseVGA\r
+3 = ,"ARM DLL",,C:\work2\SF\Tombo\oniguruma\arm\r
+4 = ,"RegErase",,C:\work2\SF\Tombo\HPCPro\RegErase\ARMRel\r
+\r
+[SourceDisksFiles]\r
+TomboMsg.txt = 1\r
+\r
+[SourceDisksFiles.ARM]\r
+Tombo.exe = 2\r
+oniguruma.dll = 3\r
+RegErase.exe = 4\r
+\r
+[DestinationDirs]\r
+Files.ARM = 0,%InstallDir%\Tombo\r
+Shortcuts.All = ,%CE11%\r
+\r
+[CEStrings]\r
+AppName = TOMBO\r
+InstallDir = %CE1%\r
+\r
+[Shortcuts.All]\r
+Tombo,0,tombo.exe\r
+\r
+[Files.ARM]\r
+Tombo.exe,,,0\r
+TomboMsg.txt,,,0\r
+oniguruma.dll,,,0\r
+RegErase.exe,,,0\r
+\r
+[RegSettings.All]\r
+\r
diff --git a/PocketPC/CabWiz/TomboVGA_jp.inf b/PocketPC/CabWiz/TomboVGA_jp.inf
new file mode 100644 (file)
index 0000000..f5c03b6
--- /dev/null
@@ -0,0 +1,52 @@
+[Version]\r
+Signature = "$Windows NT$"\r
+Provider = "FlatFish"\r
+CESignature = "$Windows CE$"\r
+\r
+[CEDevice]\r
+VersionMin=3.00     ; allow install on Pocket PC 2002\r
+VersionMax=99.99\r
+BuildMax=0xE0000000 ; support for square screens and screen rotation\r
+\r
+[DefaultInstall]\r
+AddReg=RegSettings.All\r
+CEShortcuts = Shortcuts.All\r
+\r
+[DefaultInstall.ARM]\r
+CopyFiles = Files.ARM\r
+\r
+[SourceDisksNames]\r
+1 = ,"Common Files",,C:\work2\SF\Tombo\Src\MsgRes\TomboMsg\jp\r
+\r
+[SourceDisksNames.ARM]\r
+2 = ,"ARM files",,C:\work2\SF\Tombo\PocketPC\Tombo\ARMReleaseVGA\r
+3 = ,"ARM DLL",,C:\work2\SF\Tombo\oniguruma\arm\r
+4 = ,"RegErase",,C:\work2\SF\Tombo\HPCPro\RegErase\ARMRel\r
+\r
+[SourceDisksFiles]\r
+TomboMsg.txt = 1\r
+\r
+[SourceDisksFiles.ARM]\r
+Tombo.exe = 2\r
+oniguruma.dll = 3\r
+RegErase.exe = 4\r
+\r
+[DestinationDirs]\r
+Files.ARM = 0,%InstallDir%\Tombo\r
+Shortcuts.All = ,%CE11%\r
+\r
+[CEStrings]\r
+AppName = TOMBO\r
+InstallDir = %CE1%\r
+\r
+[Shortcuts.All]\r
+Tombo,0,tombo.exe\r
+\r
+[Files.ARM]\r
+Tombo.exe,,,0\r
+TomboMsg.txt,,,0\r
+oniguruma.dll,,,0\r
+RegErase.exe,,,0\r
+\r
+[RegSettings.All]\r
+\r
diff --git a/PocketPC/CabWiz/mkcab.bat b/PocketPC/CabWiz/mkcab.bat
new file mode 100644 (file)
index 0000000..a045034
--- /dev/null
@@ -0,0 +1 @@
+"C:\Windows CE Tools\wce300\MS Pocket PC\support\ActiveSync\windows ce application installation\cabwiz\cabwiz.exe" "C:\work2\SF\Tombo\PocketPC\CabWiz\Tombo.inf" /err cabwiz.err /cpu sh3 mips arm\r
diff --git a/PocketPC/CabWiz/mkcabE.bat b/PocketPC/CabWiz/mkcabE.bat
new file mode 100644 (file)
index 0000000..14684f9
--- /dev/null
@@ -0,0 +1 @@
+"C:\Windows CE Tools\wce300\MS Pocket PC\support\ActiveSync\windows ce application installation\cabwiz\cabwiz.exe" "C:\work2\SF\Tombo\PocketPC\CabWiz\TomboE.inf" /err cabwiz.err /cpu sh3 mips arm\r
diff --git a/PocketPC/CabWiz/mkcabVGA.bat b/PocketPC/CabWiz/mkcabVGA.bat
new file mode 100644 (file)
index 0000000..83d4f31
--- /dev/null
@@ -0,0 +1,2 @@
+"C:\Windows CE Tools\wce300\MS Pocket PC\support\ActiveSync\windows ce application installation\cabwiz\cabwiz.exe" "C:\work2\SF\Tombo\PocketPC\CabWiz\TomboVGA_jp.inf" /err cabwiz.err /cpu arm\r
+"C:\Windows CE Tools\wce300\MS Pocket PC\support\ActiveSync\windows ce application installation\cabwiz\cabwiz.exe" "C:\work2\SF\Tombo\PocketPC\CabWiz\TomboVGA_en.inf" /err cabwiz.err /cpu arm\r
diff --git a/PocketPC/Tombo/Tombo.vcp b/PocketPC/Tombo/Tombo.vcp
new file mode 100644 (file)
index 0000000..eea6669
--- /dev/null
@@ -0,0 +1,6642 @@
+# Microsoft eMbedded Visual Tools Project File - Name="Tombo" - Package Owner=<4>\r
+# Microsoft eMbedded Visual Tools Generated Build File, Format Version 6.02\r
+# ** DO NOT EDIT **\r
+\r
+# TARGTYPE "Win32 (WCE ARM) Application" 0x8501\r
+# TARGTYPE "Win32 (WCE SH3) Application" 0x8101\r
+# TARGTYPE "Win32 (WCE SH4) Application" 0x8601\r
+# TARGTYPE "Win32 (WCE MIPS) Application" 0x8201\r
+\r
+CFG=Tombo - Win32 (WCE ARM) Release\r
+!MESSAGE This is not a valid makefile. To build this project using NMAKE,\r
+!MESSAGE use the Export Makefile command and run\r
+!MESSAGE \r
+!MESSAGE NMAKE /f "Tombo.vcn".\r
+!MESSAGE \r
+!MESSAGE You can specify a configuration when running NMAKE\r
+!MESSAGE by defining the macro CFG on the command line. For example:\r
+!MESSAGE \r
+!MESSAGE NMAKE /f "Tombo.vcn" CFG="Tombo - Win32 (WCE ARM) Release"\r
+!MESSAGE \r
+!MESSAGE Possible choices for configuration are:\r
+!MESSAGE \r
+!MESSAGE "Tombo - Win32 (WCE MIPS) Release" (based on "Win32 (WCE MIPS) Application")\r
+!MESSAGE "Tombo - Win32 (WCE SH4) Release" (based on "Win32 (WCE SH4) Application")\r
+!MESSAGE "Tombo - Win32 (WCE SH4) Debug" (based on "Win32 (WCE SH4) Application")\r
+!MESSAGE "Tombo - Win32 (WCE SH3) Release" (based on "Win32 (WCE SH3) Application")\r
+!MESSAGE "Tombo - Win32 (WCE ARM) Release" (based on "Win32 (WCE ARM) Application")\r
+!MESSAGE "Tombo - Win32 (WCE ARM) ReleaseVGA" (based on "Win32 (WCE ARM) Application")\r
+!MESSAGE \r
+\r
+# Begin Project\r
+# PROP AllowPerConfigDependencies 0\r
+# PROP Scc_ProjName ""\r
+# PROP Scc_LocalPath ""\r
+# PROP ATL_Project 2\r
+\r
+!IF  "$(CFG)" == "Tombo - Win32 (WCE MIPS) Release"\r
+\r
+# PROP BASE Use_MFC 0\r
+# PROP BASE Use_Debug_Libraries 0\r
+# PROP BASE Output_Dir "MIPSRel"\r
+# PROP BASE Intermediate_Dir "MIPSRel"\r
+# PROP BASE CPU_ID "{D6519010-710F-11D3-99F2-00105A0DF099}"\r
+# PROP BASE Platform_ID "{8A9A2F80-6887-11D3-842E-005004848CBA}"\r
+# PROP BASE Target_Dir ""\r
+# PROP Use_MFC 0\r
+# PROP Use_Debug_Libraries 0\r
+# PROP Output_Dir "MIPSRel"\r
+# PROP Intermediate_Dir "MIPSRel"\r
+# PROP CPU_ID "{D6519010-710F-11D3-99F2-00105A0DF099}"\r
+# PROP Platform_ID "{8A9A2F80-6887-11D3-842E-005004848CBA}"\r
+# PROP Ignore_Export_Lib 0\r
+# PROP Target_Dir ""\r
+RSC=rc.exe\r
+# ADD BASE RSC /l 0x409 /d UNDER_CE=$(CEVersion) /d _WIN32_WCE=$(CEVersion) /d "UNICODE" /d "_UNICODE" /d "NDEBUG" /d "$(CePlatform)" /d "MIPS" /d "_MIPS_" /r\r
+# ADD RSC /l 0x409 /d UNDER_CE=$(CEVersion) /d _WIN32_WCE=$(CEVersion) /d "UNICODE" /d "_UNICODE" /d "NDEBUG" /d "$(CePlatform)" /d "MIPS" /d "_MIPS_" /r\r
+CPP=clmips.exe\r
+# ADD BASE CPP /nologo /W3 /D _WIN32_WCE=$(CEVersion) /D "$(CePlatform)" /D "MIPS" /D "_MIPS_" /D UNDER_CE=$(CEVersion) /D "UNICODE" /D "_UNICODE" /D "NDEBUG" /YX /Oxs /M$(CECrtMT) /c\r
+# ADD CPP /nologo /W3 /I "../../Src/YAEdit" /I "./res" /I "../../Src" /I "../../expat/include" /I "." /I "../../Src/oniguruma/CE" /I "../../oniguruma/" /I "../../Src/TomboLib" /D "MIPS" /D "_MIPS_" /D "NDEBUG" /D "TOMBO" /D UNDER_CE=$(CEVersion) /D _WIN32_WCE=$(CEVersion) /D "$(CePlatform)" /D "UNICODE" /D "_UNICODE" /D "PLATFORM_PKTPC" /D "NOT_RUBY" /YX /Oxs /M$(CECrtMT) /c\r
+MTL=midl.exe\r
+# ADD BASE MTL /nologo /D "NDEBUG" /mktyplib203 /o "NUL" /win32\r
+# ADD MTL /nologo /D "NDEBUG" /mktyplib203 /o "NUL" /win32\r
+BSC32=bscmake.exe\r
+# ADD BASE BSC32 /nologo\r
+# ADD BSC32 /nologo\r
+LINK32=link.exe\r
+# ADD BASE LINK32 commctrl.lib coredll.lib /nologo /base:"0x00010000" /stack:0x10000,0x1000 /entry:"WinMainCRTStartup" /nodefaultlib:"$(CENoDefaultLib)" /subsystem:$(CESubsystem) /MACHINE:MIPS\r
+# ADD LINK32 commctrl.lib coredll.lib aygshell.lib /nologo /base:"0x00010000" /stack:0x10000,0x1000 /entry:"WinMainCRTStartup" /nodefaultlib:"$(CENoDefaultLib)" /subsystem:$(CESubsystem) /MACHINE:MIPS\r
+\r
+!ELSEIF  "$(CFG)" == "Tombo - Win32 (WCE SH4) Release"\r
+\r
+# PROP BASE Use_MFC 0\r
+# PROP BASE Use_Debug_Libraries 0\r
+# PROP BASE Output_Dir "SH4Rel"\r
+# PROP BASE Intermediate_Dir "SH4Rel"\r
+# PROP BASE CPU_ID "{D6519021-710F-11D3-99F2-00105A0DF099}"\r
+# PROP BASE Platform_ID "{8A9A2F80-6887-11D3-842E-005004848CBA}"\r
+# PROP BASE Target_Dir ""\r
+# PROP Use_MFC 0\r
+# PROP Use_Debug_Libraries 0\r
+# PROP Output_Dir "SH4Rel"\r
+# PROP Intermediate_Dir "SH4Rel"\r
+# PROP CPU_ID "{D6519021-710F-11D3-99F2-00105A0DF099}"\r
+# PROP Platform_ID "{8A9A2F80-6887-11D3-842E-005004848CBA}"\r
+# PROP Ignore_Export_Lib 0\r
+# PROP Target_Dir ""\r
+RSC=rc.exe\r
+# ADD BASE RSC /l 0x409 /d UNDER_CE=$(CEVersion) /d _WIN32_WCE=$(CEVersion) /d "NDEBUG" /d "UNICODE" /d "_UNICODE" /d "$(CePlatform)" /d "SHx" /d "SH4" /d "_SH4_" /r\r
+# ADD RSC /l 0x409 /d UNDER_CE=$(CEVersion) /d _WIN32_WCE=$(CEVersion) /d "NDEBUG" /d "UNICODE" /d "_UNICODE" /d "$(CePlatform)" /d "SHx" /d "SH4" /d "_SH4_" /r\r
+CPP=shcl.exe\r
+# ADD BASE CPP /nologo /W3 /D _WIN32_WCE=$(CEVersion) /D "$(CePlatform)" /D "SHx" /D "SH4" /D "_SH4_" /D UNDER_CE=$(CEVersion) /D "UNICODE" /D "_UNICODE" /D "NDEBUG" /YX /Qsh4 /Oxs /M$(CECrtMT) /c\r
+# ADD CPP /nologo /W3 /Od /I "../../Src/YAEdit" /I "./res" /I "../../Src" /I "../../expat/include" /I "." /I "../../Src/oniguruma/CE" /I "../../oniguruma/" /I "../../Src/TomboLib" /D "SHx" /D "SH4" /D "_SH4_" /D "NDEBUG" /D "TOMBO" /D UNDER_CE=$(CEVersion) /D _WIN32_WCE=$(CEVersion) /D "$(CePlatform)" /D "UNICODE" /D "_UNICODE" /D "PLATFORM_PKTPC" /D "NOT_RUBY" /YX /Qsh4 /Oxs /M$(CECrtMT) /c\r
+MTL=midl.exe\r
+# ADD BASE MTL /nologo /D "NDEBUG" /mktyplib203 /o "NUL" /win32\r
+# ADD MTL /nologo /D "NDEBUG" /mktyplib203 /o "NUL" /win32\r
+BSC32=bscmake.exe\r
+# ADD BASE BSC32 /nologo\r
+# ADD BSC32 /nologo\r
+LINK32=link.exe\r
+# ADD BASE LINK32 commctrl.lib coredll.lib /nologo /base:"0x00010000" /stack:0x10000,0x1000 /entry:"WinMainCRTStartup" /nodefaultlib:"$(CENoDefaultLib)" /subsystem:$(CESubsystem) /MACHINE:SH4\r
+# ADD LINK32 commctrl.lib coredll.lib aygshell.lib /nologo /base:"0x00010000" /stack:0x10000,0x1000 /entry:"WinMainCRTStartup" /nodefaultlib:"$(CENoDefaultLib)" /subsystem:$(CESubsystem) /MACHINE:SH4\r
+\r
+!ELSEIF  "$(CFG)" == "Tombo - Win32 (WCE SH4) Debug"\r
+\r
+# PROP BASE Use_MFC 0\r
+# PROP BASE Use_Debug_Libraries 1\r
+# PROP BASE Output_Dir "SH4Dbg"\r
+# PROP BASE Intermediate_Dir "SH4Dbg"\r
+# PROP BASE CPU_ID "{D6519021-710F-11D3-99F2-00105A0DF099}"\r
+# PROP BASE Platform_ID "{8A9A2F80-6887-11D3-842E-005004848CBA}"\r
+# PROP BASE Target_Dir ""\r
+# PROP Use_MFC 0\r
+# PROP Use_Debug_Libraries 1\r
+# PROP Output_Dir "SH4Dbg"\r
+# PROP Intermediate_Dir "SH4Dbg"\r
+# PROP CPU_ID "{D6519021-710F-11D3-99F2-00105A0DF099}"\r
+# PROP Platform_ID "{8A9A2F80-6887-11D3-842E-005004848CBA}"\r
+# PROP Ignore_Export_Lib 0\r
+# PROP Target_Dir ""\r
+RSC=rc.exe\r
+# ADD BASE RSC /l 0x409 /d UNDER_CE=$(CEVersion) /d _WIN32_WCE=$(CEVersion) /d "DEBUG" /d "UNICODE" /d "_UNICODE" /d "$(CePlatform)" /d "SHx" /d "SH4" /d "_SH4_" /r\r
+# ADD RSC /l 0x409 /d UNDER_CE=$(CEVersion) /d _WIN32_WCE=$(CEVersion) /d "DEBUG" /d "UNICODE" /d "_UNICODE" /d "$(CePlatform)" /d "SHx" /d "SH4" /d "_SH4_" /r\r
+CPP=shcl.exe\r
+# ADD BASE CPP /nologo /W3 /Zi /Od /D "DEBUG" /D "SHx" /D "SH4" /D "_SH4_" /D UNDER_CE=$(CEVersion) /D _WIN32_WCE=$(CEVersion) /D "$(CePlatform)" /D "UNICODE" /D "_UNICODE" /YX /Qsh4 /M$(CECrtMTDebug) /c\r
+# ADD CPP /nologo /W3 /Zi /Od /I "../../Src/YAEdit" /I "./res" /I "../../Src" /I "../../expat/include" /I "." /I "../../Src/oniguruma/CE" /I "../../oniguruma/" /I "../../Src/TomboLib" /D "DEBUG" /D "SHx" /D "SH4" /D "_SH4_" /D "TOMBO" /D UNDER_CE=$(CEVersion) /D _WIN32_WCE=$(CEVersion) /D "$(CePlatform)" /D "UNICODE" /D "_UNICODE" /D "PLATFORM_PKTPC" /D "NOT_RUBY" /YX /Qsh4 /M$(CECrtMTDebug) /c\r
+MTL=midl.exe\r
+# ADD BASE MTL /nologo /D "_DEBUG" /mktyplib203 /o "NUL" /win32\r
+# ADD MTL /nologo /D "_DEBUG" /mktyplib203 /o "NUL" /win32\r
+BSC32=bscmake.exe\r
+# ADD BASE BSC32 /nologo\r
+# ADD BSC32 /nologo\r
+LINK32=link.exe\r
+# ADD BASE LINK32 commctrl.lib coredll.lib /nologo /base:"0x00010000" /stack:0x10000,0x1000 /entry:"WinMainCRTStartup" /debug /nodefaultlib:"$(CENoDefaultLib)" /subsystem:$(CESubsystem) /MACHINE:SH4\r
+# ADD LINK32 commctrl.lib coredll.lib aygshell.lib /nologo /base:"0x00010000" /stack:0x10000,0x1000 /entry:"WinMainCRTStartup" /debug /nodefaultlib:"$(CENoDefaultLib)" /subsystem:$(CESubsystem) /MACHINE:SH4\r
+\r
+!ELSEIF  "$(CFG)" == "Tombo - Win32 (WCE SH3) Release"\r
+\r
+# PROP BASE Use_MFC 0\r
+# PROP BASE Use_Debug_Libraries 0\r
+# PROP BASE Output_Dir "SH3Rel"\r
+# PROP BASE Intermediate_Dir "SH3Rel"\r
+# PROP BASE CPU_ID "{D6519020-710F-11D3-99F2-00105A0DF099}"\r
+# PROP BASE Platform_ID "{8A9A2F80-6887-11D3-842E-005004848CBA}"\r
+# PROP BASE Target_Dir ""\r
+# PROP Use_MFC 0\r
+# PROP Use_Debug_Libraries 0\r
+# PROP Output_Dir "SH3Rel"\r
+# PROP Intermediate_Dir "SH3Rel"\r
+# PROP CPU_ID "{D6519020-710F-11D3-99F2-00105A0DF099}"\r
+# PROP Platform_ID "{8A9A2F80-6887-11D3-842E-005004848CBA}"\r
+# PROP Ignore_Export_Lib 0\r
+# PROP Target_Dir ""\r
+RSC=rc.exe\r
+# ADD BASE RSC /l 0x409 /d UNDER_CE=$(CEVersion) /d _WIN32_WCE=$(CEVersion) /d "UNICODE" /d "_UNICODE" /d "NDEBUG" /d "$(CePlatform)" /d "SHx" /d "SH3" /d "_SH3_" /r\r
+# ADD RSC /l 0x409 /d UNDER_CE=$(CEVersion) /d _WIN32_WCE=$(CEVersion) /d "UNICODE" /d "_UNICODE" /d "NDEBUG" /d "$(CePlatform)" /d "SHx" /d "SH3" /d "_SH3_" /r\r
+CPP=shcl.exe\r
+# ADD BASE CPP /nologo /W3 /D _WIN32_WCE=$(CEVersion) /D "$(CePlatform)" /D "SHx" /D "SH3" /D "_SH3_" /D UNDER_CE=$(CEVersion) /D "UNICODE" /D "_UNICODE" /D "NDEBUG" /YX /Oxs /M$(CECrtMT) /c\r
+# ADD CPP /nologo /W3 /Od /I "../../Src/YAEdit" /I "./res" /I "../../Src" /I "../../expat/include" /I "." /I "../../Src/oniguruma/CE" /I "../../oniguruma/" /I "../../Src/TomboLib" /D "SHx" /D "SH3" /D "_SH3_" /D "NDEBUG" /D "TOMBO" /D UNDER_CE=$(CEVersion) /D _WIN32_WCE=$(CEVersion) /D "$(CePlatform)" /D "UNICODE" /D "_UNICODE" /D "PLATFORM_PKTPC" /D "NOT_RUBY" /YX /M$(CECrtMT) /c\r
+MTL=midl.exe\r
+# ADD BASE MTL /nologo /D "NDEBUG" /mktyplib203 /o "NUL" /win32\r
+# ADD MTL /nologo /D "NDEBUG" /mktyplib203 /o "NUL" /win32\r
+BSC32=bscmake.exe\r
+# ADD BASE BSC32 /nologo\r
+# ADD BSC32 /nologo\r
+LINK32=link.exe\r
+# ADD BASE LINK32 commctrl.lib coredll.lib /nologo /base:"0x00010000" /stack:0x10000,0x1000 /entry:"WinMainCRTStartup" /nodefaultlib:"$(CENoDefaultLib)" /subsystem:$(CESubsystem) /MACHINE:SH3\r
+# ADD LINK32 commctrl.lib coredll.lib aygshell.lib /nologo /base:"0x00010000" /stack:0x10000,0x1000 /entry:"WinMainCRTStartup" /nodefaultlib:"$(CENoDefaultLib)" /subsystem:$(CESubsystem) /MACHINE:SH3\r
+\r
+!ELSEIF  "$(CFG)" == "Tombo - Win32 (WCE ARM) Release"\r
+\r
+# PROP BASE Use_MFC 0\r
+# PROP BASE Use_Debug_Libraries 0\r
+# PROP BASE Output_Dir "ARMRel"\r
+# PROP BASE Intermediate_Dir "ARMRel"\r
+# PROP BASE CPU_ID "{D6518FFC-710F-11D3-99F2-00105A0DF099}"\r
+# PROP BASE Platform_ID "{8A9A2F80-6887-11D3-842E-005004848CBA}"\r
+# PROP BASE Target_Dir ""\r
+# PROP Use_MFC 0\r
+# PROP Use_Debug_Libraries 0\r
+# PROP Output_Dir "ARMRel"\r
+# PROP Intermediate_Dir "ARMRel"\r
+# PROP CPU_ID "{D6518FFC-710F-11D3-99F2-00105A0DF099}"\r
+# PROP Platform_ID "{8A9A2F80-6887-11D3-842E-005004848CBA}"\r
+# PROP Ignore_Export_Lib 0\r
+# PROP Target_Dir ""\r
+RSC=rc.exe\r
+# ADD BASE RSC /l 0x409 /d UNDER_CE=$(CEVersion) /d _WIN32_WCE=$(CEVersion) /d "UNICODE" /d "_UNICODE" /d "NDEBUG" /d "$(CePlatform)" /d "ARM" /d "_ARM_" /r\r
+# ADD RSC /l 0x409 /d UNDER_CE=$(CEVersion) /d _WIN32_WCE=$(CEVersion) /d "UNICODE" /d "_UNICODE" /d "NDEBUG" /d "$(CePlatform)" /d "ARM" /d "_ARM_" /r\r
+CPP=clarm.exe\r
+# ADD BASE CPP /nologo /W3 /D _WIN32_WCE=$(CEVersion) /D "$(CePlatform)" /D "ARM" /D "_ARM_" /D UNDER_CE=$(CEVersion) /D "UNICODE" /D "_UNICODE" /D "NDEBUG" /YX /Oxs /M$(CECrtMT) /c\r
+# ADD CPP /nologo /W3 /I "../../Src/YAEdit" /I "./res" /I "../../Src" /I "../../expat/include" /I "." /I "../../Src/oniguruma/CE" /I "../../oniguruma/" /I "../../Src/TomboLib" /D "ARM" /D "_ARM_" /D "NDEBUG" /D "TOMBO" /D UNDER_CE=$(CEVersion) /D _WIN32_WCE=$(CEVersion) /D "$(CePlatform)" /D "UNICODE" /D "_UNICODE" /D "PLATFORM_PKTPC" /D "NOT_RUBY" /YX /Oxs /M$(CECrtMT) /c\r
+MTL=midl.exe\r
+# ADD BASE MTL /nologo /D "NDEBUG" /mktyplib203 /o "NUL" /win32\r
+# ADD MTL /nologo /D "NDEBUG" /mktyplib203 /o "NUL" /win32\r
+BSC32=bscmake.exe\r
+# ADD BASE BSC32 /nologo\r
+# ADD BSC32 /nologo\r
+LINK32=link.exe\r
+# ADD BASE LINK32 commctrl.lib coredll.lib /nologo /base:"0x00010000" /stack:0x10000,0x1000 /entry:"WinMainCRTStartup" /nodefaultlib:"$(CENoDefaultLib)" /subsystem:$(CESubsystem) /align:"4096" /MACHINE:ARM\r
+# ADD LINK32 commctrl.lib coredll.lib aygshell.lib /nologo /base:"0x00010000" /stack:0x10000,0x1000 /entry:"WinMainCRTStartup" /nodefaultlib:"$(CENoDefaultLib)" /subsystem:$(CESubsystem) /align:"4096" /MACHINE:ARM\r
+\r
+!ELSEIF  "$(CFG)" == "Tombo - Win32 (WCE ARM) ReleaseVGA"\r
+\r
+# PROP BASE Use_MFC 0\r
+# PROP BASE Use_Debug_Libraries 0\r
+# PROP BASE Output_Dir "ARMReleaseVGA"\r
+# PROP BASE Intermediate_Dir "ARMReleaseVGA"\r
+# PROP BASE CPU_ID "{D6518FFC-710F-11D3-99F2-00105A0DF099}"\r
+# PROP BASE Platform_ID "{8A9A2F80-6887-11D3-842E-005004848CBA}"\r
+# PROP BASE Ignore_Export_Lib 0\r
+# PROP BASE Target_Dir ""\r
+# PROP Use_MFC 0\r
+# PROP Use_Debug_Libraries 0\r
+# PROP Output_Dir "ARMReleaseVGA"\r
+# PROP Intermediate_Dir "ARMReleaseVGA"\r
+# PROP CPU_ID "{D6518FFC-710F-11D3-99F2-00105A0DF099}"\r
+# PROP Platform_ID "{8A9A2F80-6887-11D3-842E-005004848CBA}"\r
+# PROP Ignore_Export_Lib 0\r
+# PROP Target_Dir ""\r
+RSC=rc.exe\r
+# ADD BASE RSC /l 0x409 /d UNDER_CE=$(CEVersion) /d _WIN32_WCE=$(CEVersion) /d "UNICODE" /d "_UNICODE" /d "NDEBUG" /d "$(CePlatform)" /d "ARM" /d "_ARM_" /r\r
+# ADD RSC /l 0x409 /d UNDER_CE=$(CEVersion) /d _WIN32_WCE=$(CEVersion) /d "UNICODE" /d "_UNICODE" /d "NDEBUG" /d "$(CePlatform)" /d "ARM" /d "_ARM_" /r\r
+CPP=clarm.exe\r
+# ADD BASE CPP /nologo /W3 /D "ARM" /D "_ARM_" /D "NDEBUG" /D "TOMBO" /D UNDER_CE=$(CEVersion) /D _WIN32_WCE=$(CEVersion) /D "$(CePlatform)" /D "UNICODE" /D "_UNICODE" /D "PLATFORM_PKTPC" /YX /Oxs /M$(CECrtMT) /c\r
+# ADD CPP /nologo /W3 /I "../../Src/YAEdit" /I "./res" /I "../../Src" /I "../../expat/include" /I "." /I "../../Src/oniguruma/CE" /I "../../oniguruma/" /I "../../Src/TomboLib" /D "ARM" /D "_ARM_" /D "NDEBUG" /D "FOR_VGA" /D "TOMBO" /D UNDER_CE=$(CEVersion) /D _WIN32_WCE=$(CEVersion) /D "$(CePlatform)" /D "UNICODE" /D "_UNICODE" /D "PLATFORM_PKTPC" /D "NOT_RUBY" /YX /Oxs /M$(CECrtMT) /c\r
+MTL=midl.exe\r
+# ADD BASE MTL /nologo /D "NDEBUG" /mktyplib203 /o "NUL" /win32\r
+# ADD MTL /nologo /D "NDEBUG" /mktyplib203 /o "NUL" /win32\r
+BSC32=bscmake.exe\r
+# ADD BASE BSC32 /nologo\r
+# ADD BSC32 /nologo\r
+LINK32=link.exe\r
+# ADD BASE LINK32 commctrl.lib coredll.lib aygshell.lib /nologo /base:"0x00010000" /stack:0x10000,0x1000 /entry:"WinMainCRTStartup" /nodefaultlib:"$(CENoDefaultLib)" /subsystem:$(CESubsystem) /align:"4096" /MACHINE:ARM\r
+# ADD LINK32 commctrl.lib coredll.lib aygshell.lib /nologo /base:"0x00010000" /stack:0x10000,0x1000 /entry:"WinMainCRTStartup" /nodefaultlib:"$(CENoDefaultLib)" /subsystem:$(CESubsystem) /align:"4096" /MACHINE:ARM\r
+\r
+!ENDIF \r
+\r
+# Begin Target\r
+\r
+# Name "Tombo - Win32 (WCE MIPS) Release"\r
+# Name "Tombo - Win32 (WCE SH4) Release"\r
+# Name "Tombo - Win32 (WCE SH4) Debug"\r
+# Name "Tombo - Win32 (WCE SH3) Release"\r
+# Name "Tombo - Win32 (WCE ARM) Release"\r
+# Name "Tombo - Win32 (WCE ARM) ReleaseVGA"\r
+# Begin Group "Source Files"\r
+\r
+# PROP Default_Filter "cpp;c;cxx;rc;def;r;odl;idl;hpj;bat"\r
+# Begin Source File\r
+\r
+SOURCE=..\..\Src\AboutDialog.cpp\r
+\r
+!IF  "$(CFG)" == "Tombo - Win32 (WCE MIPS) Release"\r
+\r
+DEP_CPP_ABOUT=\\r
+       "..\..\Src\AboutDialog.h"\\r
+       "..\..\Src\Tombo.h"\\r
+       "..\..\Src\TomboLib\File.h"\\r
+       "..\..\Src\TomboLib\Logger.h"\\r
+       \r
+NODEP_CPP_ABOUT=\\r
+       ".\ipapi.h"\\r
+       ".\ygshell.h"\\r
+       \r
+\r
+!ELSEIF  "$(CFG)" == "Tombo - Win32 (WCE SH4) Release"\r
+\r
+DEP_CPP_ABOUT=\\r
+       "..\..\Src\AboutDialog.h"\\r
+       "..\..\Src\Tombo.h"\\r
+       \r
+\r
+!ELSEIF  "$(CFG)" == "Tombo - Win32 (WCE SH4) Debug"\r
+\r
+DEP_CPP_ABOUT=\\r
+       "..\..\Src\AboutDialog.h"\\r
+       "..\..\Src\Tombo.h"\\r
+       \r
+\r
+!ELSEIF  "$(CFG)" == "Tombo - Win32 (WCE SH3) Release"\r
+\r
+DEP_CPP_ABOUT=\\r
+       "..\..\Src\AboutDialog.h"\\r
+       "..\..\Src\Tombo.h"\\r
+       "..\..\Src\TomboLib\File.h"\\r
+       "..\..\Src\TomboLib\Logger.h"\\r
+       \r
+NODEP_CPP_ABOUT=\\r
+       ".\ipapi.h"\\r
+       ".\ygshell.h"\\r
+       \r
+\r
+!ELSEIF  "$(CFG)" == "Tombo - Win32 (WCE ARM) Release"\r
+\r
+DEP_CPP_ABOUT=\\r
+       "..\..\Src\AboutDialog.h"\\r
+       "..\..\Src\Tombo.h"\\r
+       "..\..\Src\TomboLib\File.h"\\r
+       "..\..\Src\TomboLib\Logger.h"\\r
+       \r
+NODEP_CPP_ABOUT=\\r
+       ".\ipapi.h"\\r
+       ".\ygshell.h"\\r
+       \r
+\r
+!ELSEIF  "$(CFG)" == "Tombo - Win32 (WCE ARM) ReleaseVGA"\r
+\r
+DEP_CPP_ABOUT=\\r
+       "..\..\Src\AboutDialog.h"\\r
+       "..\..\Src\Tombo.h"\\r
+       "..\..\Src\TomboLib\File.h"\\r
+       "..\..\Src\TomboLib\Logger.h"\\r
+       {$(INCLUDE)}"aygshell.h"\\r
+       {$(INCLUDE)}"sipapi.h"\\r
+       \r
+\r
+!ENDIF \r
+\r
+# End Source File\r
+# Begin Source File\r
+\r
+SOURCE=..\..\Src\TomboLib\AutoPtr.cpp\r
+\r
+!IF  "$(CFG)" == "Tombo - Win32 (WCE MIPS) Release"\r
+\r
+DEP_CPP_AUTOP=\\r
+       "..\..\Src\TomboLib\AutoPtr.h"\\r
+       \r
+\r
+!ELSEIF  "$(CFG)" == "Tombo - Win32 (WCE SH4) Release"\r
+\r
+DEP_CPP_AUTOP=\\r
+       "..\..\Src\TomboLib\AutoPtr.h"\\r
+       \r
+\r
+!ELSEIF  "$(CFG)" == "Tombo - Win32 (WCE SH4) Debug"\r
+\r
+DEP_CPP_AUTOP=\\r
+       "..\..\Src\TomboLib\AutoPtr.h"\\r
+       \r
+\r
+!ELSEIF  "$(CFG)" == "Tombo - Win32 (WCE SH3) Release"\r
+\r
+DEP_CPP_AUTOP=\\r
+       "..\..\Src\TomboLib\AutoPtr.h"\\r
+       \r
+\r
+!ELSEIF  "$(CFG)" == "Tombo - Win32 (WCE ARM) Release"\r
+\r
+DEP_CPP_AUTOP=\\r
+       "..\..\Src\TomboLib\AutoPtr.h"\\r
+       \r
+\r
+!ELSEIF  "$(CFG)" == "Tombo - Win32 (WCE ARM) ReleaseVGA"\r
+\r
+DEP_CPP_AUTOP=\\r
+       "..\..\Src\TomboLib\AutoPtr.h"\\r
+       \r
+\r
+!ENDIF \r
+\r
+# End Source File\r
+# Begin Source File\r
+\r
+SOURCE=..\..\Src\gnupg\blowfish.c\r
+\r
+!IF  "$(CFG)" == "Tombo - Win32 (WCE MIPS) Release"\r
+\r
+DEP_CPP_BLOWF=\\r
+       "..\..\Src\regex\config.h"\\r
+       "..\..\Src\regex\ctypeutil.h"\\r
+       \r
+NODEP_CPP_BLOWF=\\r
+       "..\..\Src\gnupg\blowfish.h"\\r
+       "..\..\Src\gnupg\dynload.h"\\r
+       \r
+\r
+!ELSEIF  "$(CFG)" == "Tombo - Win32 (WCE SH4) Release"\r
+\r
+DEP_CPP_BLOWF=\\r
+       "..\..\Src\regex\config.h"\\r
+       "..\..\Src\regex\ctypeutil.h"\\r
+       \r
+NODEP_CPP_BLOWF=\\r
+       "..\..\Src\gnupg\blowfish.h"\\r
+       "..\..\Src\gnupg\dynload.h"\\r
+       \r
+\r
+!ELSEIF  "$(CFG)" == "Tombo - Win32 (WCE SH4) Debug"\r
+\r
+DEP_CPP_BLOWF=\\r
+       "..\..\Src\regex\config.h"\\r
+       "..\..\Src\regex\ctypeutil.h"\\r
+       \r
+NODEP_CPP_BLOWF=\\r
+       "..\..\Src\gnupg\blowfish.h"\\r
+       "..\..\Src\gnupg\dynload.h"\\r
+       \r
+\r
+!ELSEIF  "$(CFG)" == "Tombo - Win32 (WCE SH3) Release"\r
+\r
+DEP_CPP_BLOWF=\\r
+       "..\..\Src\regex\config.h"\\r
+       "..\..\Src\regex\ctypeutil.h"\\r
+       \r
+NODEP_CPP_BLOWF=\\r
+       "..\..\Src\gnupg\blowfish.h"\\r
+       "..\..\Src\gnupg\dynload.h"\\r
+       \r
+\r
+!ELSEIF  "$(CFG)" == "Tombo - Win32 (WCE ARM) Release"\r
+\r
+NODEP_CPP_BLOWF=\\r
+       "..\..\Src\gnupg\blowfish.h"\\r
+       "..\..\Src\gnupg\dynload.h"\\r
+       \r
+\r
+!ELSEIF  "$(CFG)" == "Tombo - Win32 (WCE ARM) ReleaseVGA"\r
+\r
+NODEP_CPP_BLOWF=\\r
+       "..\..\Src\gnupg\blowfish.h"\\r
+       "..\..\Src\gnupg\dynload.h"\\r
+       \r
+\r
+!ENDIF \r
+\r
+# End Source File\r
+# Begin Source File\r
+\r
+SOURCE=..\..\Src\BookMark.cpp\r
+\r
+!IF  "$(CFG)" == "Tombo - Win32 (WCE MIPS) Release"\r
+\r
+DEP_CPP_BOOKM=\\r
+       "..\..\Src\BookMark.h"\\r
+       "..\..\Src\Repository.h"\\r
+       "..\..\Src\Tombo.h"\\r
+       "..\..\Src\TomboLib\File.h"\\r
+       "..\..\Src\TomboLib\Logger.h"\\r
+       "..\..\Src\TomboLib\TString.h"\\r
+       "..\..\Src\TomboLib\Uniconv.h"\\r
+       "..\..\Src\TomboLib\VarBuffer.h"\\r
+       "..\..\Src\TomboURI.h"\\r
+       \r
+\r
+!ELSEIF  "$(CFG)" == "Tombo - Win32 (WCE SH4) Release"\r
+\r
+DEP_CPP_BOOKM=\\r
+       "..\..\Src\BookMark.h"\\r
+       "..\..\Src\MemoManager.h"\\r
+       "..\..\Src\MemoNote.h"\\r
+       "..\..\Src\TomboLib\TString.h"\\r
+       "..\..\Src\TomboLib\Uniconv.h"\\r
+       "..\..\Src\TomboLib\VarBuffer.h"\\r
+       "..\..\Src\TreeViewItem.h"\\r
+       \r
+\r
+!ELSEIF  "$(CFG)" == "Tombo - Win32 (WCE SH4) Debug"\r
+\r
+DEP_CPP_BOOKM=\\r
+       "..\..\Src\BookMark.h"\\r
+       "..\..\Src\MemoManager.h"\\r
+       "..\..\Src\MemoNote.h"\\r
+       "..\..\Src\TomboLib\TString.h"\\r
+       "..\..\Src\TomboLib\Uniconv.h"\\r
+       "..\..\Src\TomboLib\VarBuffer.h"\\r
+       "..\..\Src\TreeViewItem.h"\\r
+       \r
+\r
+!ELSEIF  "$(CFG)" == "Tombo - Win32 (WCE SH3) Release"\r
+\r
+DEP_CPP_BOOKM=\\r
+       "..\..\Src\BookMark.h"\\r
+       "..\..\Src\Repository.h"\\r
+       "..\..\Src\Tombo.h"\\r
+       "..\..\Src\TomboLib\File.h"\\r
+       "..\..\Src\TomboLib\Logger.h"\\r
+       "..\..\Src\TomboLib\TString.h"\\r
+       "..\..\Src\TomboLib\Uniconv.h"\\r
+       "..\..\Src\TomboLib\VarBuffer.h"\\r
+       "..\..\Src\TomboURI.h"\\r
+       \r
+\r
+!ELSEIF  "$(CFG)" == "Tombo - Win32 (WCE ARM) Release"\r
+\r
+DEP_CPP_BOOKM=\\r
+       "..\..\Src\BookMark.h"\\r
+       "..\..\Src\Repository.h"\\r
+       "..\..\Src\Tombo.h"\\r
+       "..\..\Src\TomboLib\File.h"\\r
+       "..\..\Src\TomboLib\Logger.h"\\r
+       "..\..\Src\TomboLib\TString.h"\\r
+       "..\..\Src\TomboLib\Uniconv.h"\\r
+       "..\..\Src\TomboLib\VarBuffer.h"\\r
+       "..\..\Src\TomboURI.h"\\r
+       \r
+\r
+!ELSEIF  "$(CFG)" == "Tombo - Win32 (WCE ARM) ReleaseVGA"\r
+\r
+DEP_CPP_BOOKM=\\r
+       "..\..\Src\BookMark.h"\\r
+       "..\..\Src\Repository.h"\\r
+       "..\..\Src\Tombo.h"\\r
+       "..\..\Src\TomboLib\File.h"\\r
+       "..\..\Src\TomboLib\Logger.h"\\r
+       "..\..\Src\TomboLib\TString.h"\\r
+       "..\..\Src\TomboLib\Uniconv.h"\\r
+       "..\..\Src\TomboLib\VarBuffer.h"\\r
+       "..\..\Src\TomboURI.h"\\r
+       \r
+\r
+!ENDIF \r
+\r
+# End Source File\r
+# Begin Source File\r
+\r
+SOURCE=..\..\Src\BookMarkDlg.cpp\r
+\r
+!IF  "$(CFG)" == "Tombo - Win32 (WCE MIPS) Release"\r
+\r
+DEP_CPP_BOOKMA=\\r
+       "..\..\Src\BookMark.h"\\r
+       "..\..\Src\BookMarkDlg.h"\\r
+       "..\..\Src\Message.h"\\r
+       "..\..\Src\MsgRes\MsgDef.h"\\r
+       "..\..\Src\TomboLib\DialogTemplate.h"\\r
+       "..\..\Src\TomboLib\TString.h"\\r
+       "..\..\Src\TomboLib\VarBuffer.h"\\r
+       \r
+\r
+!ELSEIF  "$(CFG)" == "Tombo - Win32 (WCE SH4) Release"\r
+\r
+DEP_CPP_BOOKMA=\\r
+       "..\..\Src\BookMark.h"\\r
+       "..\..\Src\BookMarkDlg.h"\\r
+       "..\..\Src\Message.h"\\r
+       "..\..\Src\TomboLib\DialogTemplate.h"\\r
+       "..\..\Src\TomboLib\TString.h"\\r
+       "..\..\Src\TomboLib\VarBuffer.h"\\r
+       \r
+\r
+!ELSEIF  "$(CFG)" == "Tombo - Win32 (WCE SH4) Debug"\r
+\r
+DEP_CPP_BOOKMA=\\r
+       "..\..\Src\BookMark.h"\\r
+       "..\..\Src\BookMarkDlg.h"\\r
+       "..\..\Src\Message.h"\\r
+       "..\..\Src\TomboLib\DialogTemplate.h"\\r
+       "..\..\Src\TomboLib\TString.h"\\r
+       "..\..\Src\TomboLib\VarBuffer.h"\\r
+       \r
+\r
+!ELSEIF  "$(CFG)" == "Tombo - Win32 (WCE SH3) Release"\r
+\r
+DEP_CPP_BOOKMA=\\r
+       "..\..\Src\BookMark.h"\\r
+       "..\..\Src\BookMarkDlg.h"\\r
+       "..\..\Src\Message.h"\\r
+       "..\..\Src\MsgRes\MsgDef.h"\\r
+       "..\..\Src\TomboLib\DialogTemplate.h"\\r
+       "..\..\Src\TomboLib\TString.h"\\r
+       "..\..\Src\TomboLib\VarBuffer.h"\\r
+       \r
+\r
+!ELSEIF  "$(CFG)" == "Tombo - Win32 (WCE ARM) Release"\r
+\r
+DEP_CPP_BOOKMA=\\r
+       "..\..\Src\BookMark.h"\\r
+       "..\..\Src\BookMarkDlg.h"\\r
+       "..\..\Src\Message.h"\\r
+       "..\..\Src\MsgRes\MsgDef.h"\\r
+       "..\..\Src\TomboLib\DialogTemplate.h"\\r
+       "..\..\Src\TomboLib\TString.h"\\r
+       "..\..\Src\TomboLib\VarBuffer.h"\\r
+       \r
+\r
+!ELSEIF  "$(CFG)" == "Tombo - Win32 (WCE ARM) ReleaseVGA"\r
+\r
+DEP_CPP_BOOKMA=\\r
+       "..\..\Src\BookMark.h"\\r
+       "..\..\Src\BookMarkDlg.h"\\r
+       "..\..\Src\Message.h"\\r
+       "..\..\Src\MsgRes\MsgDef.h"\\r
+       "..\..\Src\TomboLib\DialogTemplate.h"\\r
+       "..\..\Src\TomboLib\TString.h"\\r
+       "..\..\Src\TomboLib\VarBuffer.h"\\r
+       \r
+\r
+!ENDIF \r
+\r
+# End Source File\r
+# Begin Source File\r
+\r
+SOURCE=..\..\Src\TomboLib\Clipboard.cpp\r
+\r
+!IF  "$(CFG)" == "Tombo - Win32 (WCE MIPS) Release"\r
+\r
+DEP_CPP_CLIPB=\\r
+       "..\..\Src\TomboLib\Clipboard.h"\\r
+       "..\..\Src\TomboLib\Uniconv.h"\\r
+       \r
+\r
+!ELSEIF  "$(CFG)" == "Tombo - Win32 (WCE SH4) Release"\r
+\r
+DEP_CPP_CLIPB=\\r
+       "..\..\Src\TomboLib\Clipboard.h"\\r
+       "..\..\Src\TomboLib\Uniconv.h"\\r
+       \r
+\r
+!ELSEIF  "$(CFG)" == "Tombo - Win32 (WCE SH4) Debug"\r
+\r
+DEP_CPP_CLIPB=\\r
+       "..\..\Src\TomboLib\Clipboard.h"\\r
+       "..\..\Src\TomboLib\Uniconv.h"\\r
+       \r
+\r
+!ELSEIF  "$(CFG)" == "Tombo - Win32 (WCE SH3) Release"\r
+\r
+DEP_CPP_CLIPB=\\r
+       "..\..\Src\TomboLib\Clipboard.h"\\r
+       "..\..\Src\TomboLib\Uniconv.h"\\r
+       \r
+\r
+!ELSEIF  "$(CFG)" == "Tombo - Win32 (WCE ARM) Release"\r
+\r
+DEP_CPP_CLIPB=\\r
+       "..\..\Src\TomboLib\Clipboard.h"\\r
+       "..\..\Src\TomboLib\Uniconv.h"\\r
+       \r
+\r
+!ELSEIF  "$(CFG)" == "Tombo - Win32 (WCE ARM) ReleaseVGA"\r
+\r
+DEP_CPP_CLIPB=\\r
+       "..\..\Src\TomboLib\Clipboard.h"\\r
+       "..\..\Src\TomboLib\Uniconv.h"\\r
+       \r
+\r
+!ENDIF \r
+\r
+# End Source File\r
+# Begin Source File\r
+\r
+SOURCE=..\..\Src\Crypt.cpp\r
+\r
+!IF  "$(CFG)" == "Tombo - Win32 (WCE MIPS) Release"\r
+\r
+DEP_CPP_CRYPT=\\r
+       "..\..\Src\Crypt.h"\\r
+       \r
+\r
+!ELSEIF  "$(CFG)" == "Tombo - Win32 (WCE SH4) Release"\r
+\r
+DEP_CPP_CRYPT=\\r
+       "..\..\Src\Crypt.h"\\r
+       \r
+\r
+!ELSEIF  "$(CFG)" == "Tombo - Win32 (WCE SH4) Debug"\r
+\r
+DEP_CPP_CRYPT=\\r
+       "..\..\Src\Crypt.h"\\r
+       \r
+\r
+!ELSEIF  "$(CFG)" == "Tombo - Win32 (WCE SH3) Release"\r
+\r
+DEP_CPP_CRYPT=\\r
+       "..\..\Src\Crypt.h"\\r
+       \r
+\r
+!ELSEIF  "$(CFG)" == "Tombo - Win32 (WCE ARM) Release"\r
+\r
+DEP_CPP_CRYPT=\\r
+       "..\..\Src\Crypt.h"\\r
+       \r
+\r
+!ELSEIF  "$(CFG)" == "Tombo - Win32 (WCE ARM) ReleaseVGA"\r
+\r
+DEP_CPP_CRYPT=\\r
+       "..\..\Src\Crypt.h"\\r
+       \r
+\r
+!ENDIF \r
+\r
+# End Source File\r
+# Begin Source File\r
+\r
+SOURCE=..\..\Src\CryptManager.cpp\r
+\r
+!IF  "$(CFG)" == "Tombo - Win32 (WCE MIPS) Release"\r
+\r
+DEP_CPP_CRYPTM=\\r
+       "..\..\Src\Crypt.h"\\r
+       "..\..\Src\CryptManager.h"\\r
+       "..\..\Src\TomboLib\File.h"\\r
+       \r
+\r
+!ELSEIF  "$(CFG)" == "Tombo - Win32 (WCE SH4) Release"\r
+\r
+DEP_CPP_CRYPTM=\\r
+       "..\..\Src\Crypt.h"\\r
+       "..\..\Src\CryptManager.h"\\r
+       \r
+NODEP_CPP_CRYPTM=\\r
+       "..\..\Src\File.h"\\r
+       \r
+\r
+!ELSEIF  "$(CFG)" == "Tombo - Win32 (WCE SH4) Debug"\r
+\r
+DEP_CPP_CRYPTM=\\r
+       "..\..\Src\Crypt.h"\\r
+       "..\..\Src\CryptManager.h"\\r
+       \r
+NODEP_CPP_CRYPTM=\\r
+       "..\..\Src\File.h"\\r
+       \r
+\r
+!ELSEIF  "$(CFG)" == "Tombo - Win32 (WCE SH3) Release"\r
+\r
+DEP_CPP_CRYPTM=\\r
+       "..\..\Src\Crypt.h"\\r
+       "..\..\Src\CryptManager.h"\\r
+       "..\..\Src\TomboLib\File.h"\\r
+       \r
+\r
+!ELSEIF  "$(CFG)" == "Tombo - Win32 (WCE ARM) Release"\r
+\r
+DEP_CPP_CRYPTM=\\r
+       "..\..\Src\Crypt.h"\\r
+       "..\..\Src\CryptManager.h"\\r
+       "..\..\Src\TomboLib\File.h"\\r
+       \r
+\r
+!ELSEIF  "$(CFG)" == "Tombo - Win32 (WCE ARM) ReleaseVGA"\r
+\r
+DEP_CPP_CRYPTM=\\r
+       "..\..\Src\Crypt.h"\\r
+       "..\..\Src\CryptManager.h"\\r
+       "..\..\Src\TomboLib\File.h"\\r
+       \r
+\r
+!ENDIF \r
+\r
+# End Source File\r
+# Begin Source File\r
+\r
+SOURCE=..\..\Src\DetailsViewWndProc.cpp\r
+\r
+!IF  "$(CFG)" == "Tombo - Win32 (WCE MIPS) Release"\r
+\r
+DEP_CPP_DETAI=\\r
+       "..\..\Src\MemoDetailsView.h"\\r
+       "..\..\Src\PlatformLayer.h"\\r
+       "..\..\Src\PocketPCPlatform.h"\\r
+       "..\..\Src\Property.h"\\r
+       "..\..\Src\Tombo.h"\\r
+       "..\..\Src\TomboLib\File.h"\\r
+       "..\..\Src\TomboLib\Logger.h"\\r
+       \r
+NODEP_CPP_DETAI=\\r
+       ".\ipapi.h"\\r
+       ".\ygshell.h"\\r
+       \r
+\r
+!ELSEIF  "$(CFG)" == "Tombo - Win32 (WCE SH4) Release"\r
+\r
+DEP_CPP_DETAI=\\r
+       "..\..\Src\MemoDetailsView.h"\\r
+       \r
+\r
+!ELSEIF  "$(CFG)" == "Tombo - Win32 (WCE SH4) Debug"\r
+\r
+DEP_CPP_DETAI=\\r
+       "..\..\Src\MemoDetailsView.h"\\r
+       \r
+\r
+!ELSEIF  "$(CFG)" == "Tombo - Win32 (WCE SH3) Release"\r
+\r
+DEP_CPP_DETAI=\\r
+       "..\..\Src\MemoDetailsView.h"\\r
+       "..\..\Src\PlatformLayer.h"\\r
+       "..\..\Src\PocketPCPlatform.h"\\r
+       "..\..\Src\Property.h"\\r
+       "..\..\Src\Tombo.h"\\r
+       "..\..\Src\TomboLib\File.h"\\r
+       "..\..\Src\TomboLib\Logger.h"\\r
+       \r
+NODEP_CPP_DETAI=\\r
+       ".\ipapi.h"\\r
+       ".\ygshell.h"\\r
+       \r
+\r
+!ELSEIF  "$(CFG)" == "Tombo - Win32 (WCE ARM) Release"\r
+\r
+DEP_CPP_DETAI=\\r
+       "..\..\Src\MemoDetailsView.h"\\r
+       "..\..\Src\PlatformLayer.h"\\r
+       "..\..\Src\PocketPCPlatform.h"\\r
+       "..\..\Src\Property.h"\\r
+       "..\..\Src\Tombo.h"\\r
+       "..\..\Src\TomboLib\File.h"\\r
+       "..\..\Src\TomboLib\Logger.h"\\r
+       \r
+NODEP_CPP_DETAI=\\r
+       ".\ipapi.h"\\r
+       ".\ygshell.h"\\r
+       \r
+\r
+!ELSEIF  "$(CFG)" == "Tombo - Win32 (WCE ARM) ReleaseVGA"\r
+\r
+DEP_CPP_DETAI=\\r
+       "..\..\Src\MemoDetailsView.h"\\r
+       "..\..\Src\PlatformLayer.h"\\r
+       "..\..\Src\PocketPCPlatform.h"\\r
+       "..\..\Src\Property.h"\\r
+       "..\..\Src\Tombo.h"\\r
+       "..\..\Src\TomboLib\File.h"\\r
+       "..\..\Src\TomboLib\Logger.h"\\r
+       {$(INCLUDE)}"aygshell.h"\\r
+       {$(INCLUDE)}"sipapi.h"\\r
+       \r
+\r
+!ENDIF \r
+\r
+# End Source File\r
+# Begin Source File\r
+\r
+SOURCE=..\..\Src\TomboLib\DialogTemplate.cpp\r
+\r
+!IF  "$(CFG)" == "Tombo - Win32 (WCE MIPS) Release"\r
+\r
+DEP_CPP_DIALO=\\r
+       "..\..\Src\Message.h"\\r
+       "..\..\Src\MsgRes\MsgDef.h"\\r
+       "..\..\Src\TomboLib\DialogTemplate.h"\\r
+       \r
+\r
+!ELSEIF  "$(CFG)" == "Tombo - Win32 (WCE SH4) Release"\r
+\r
+DEP_CPP_DIALO=\\r
+       "..\..\Src\TomboLib\DialogTemplate.h"\\r
+       \r
+\r
+!ELSEIF  "$(CFG)" == "Tombo - Win32 (WCE SH4) Debug"\r
+\r
+DEP_CPP_DIALO=\\r
+       "..\..\Src\TomboLib\DialogTemplate.h"\\r
+       \r
+\r
+!ELSEIF  "$(CFG)" == "Tombo - Win32 (WCE SH3) Release"\r
+\r
+DEP_CPP_DIALO=\\r
+       "..\..\Src\Message.h"\\r
+       "..\..\Src\MsgRes\MsgDef.h"\\r
+       "..\..\Src\TomboLib\DialogTemplate.h"\\r
+       \r
+\r
+!ELSEIF  "$(CFG)" == "Tombo - Win32 (WCE ARM) Release"\r
+\r
+DEP_CPP_DIALO=\\r
+       "..\..\Src\Message.h"\\r
+       "..\..\Src\MsgRes\MsgDef.h"\\r
+       "..\..\Src\TomboLib\DialogTemplate.h"\\r
+       \r
+\r
+!ELSEIF  "$(CFG)" == "Tombo - Win32 (WCE ARM) ReleaseVGA"\r
+\r
+DEP_CPP_DIALO=\\r
+       "..\..\Src\Message.h"\\r
+       "..\..\Src\MsgRes\MsgDef.h"\\r
+       "..\..\Src\TomboLib\DialogTemplate.h"\\r
+       \r
+\r
+!ENDIF \r
+\r
+# End Source File\r
+# Begin Source File\r
+\r
+SOURCE=..\..\Src\TomboLib\DirectoryScanner.cpp\r
+\r
+!IF  "$(CFG)" == "Tombo - Win32 (WCE MIPS) Release"\r
+\r
+DEP_CPP_DIREC=\\r
+       "..\..\Src\TomboLib\DirectoryScanner.h"\\r
+       "..\..\Src\TomboLib\Uniconv.h"\\r
+       \r
+\r
+!ELSEIF  "$(CFG)" == "Tombo - Win32 (WCE SH4) Release"\r
+\r
+DEP_CPP_DIREC=\\r
+       "..\..\Src\TomboLib\DirectoryScanner.h"\\r
+       "..\..\Src\TomboLib\Uniconv.h"\\r
+       \r
+\r
+!ELSEIF  "$(CFG)" == "Tombo - Win32 (WCE SH4) Debug"\r
+\r
+DEP_CPP_DIREC=\\r
+       "..\..\Src\TomboLib\DirectoryScanner.h"\\r
+       "..\..\Src\TomboLib\Uniconv.h"\\r
+       \r
+\r
+!ELSEIF  "$(CFG)" == "Tombo - Win32 (WCE SH3) Release"\r
+\r
+DEP_CPP_DIREC=\\r
+       "..\..\Src\TomboLib\DirectoryScanner.h"\\r
+       "..\..\Src\TomboLib\Uniconv.h"\\r
+       \r
+\r
+!ELSEIF  "$(CFG)" == "Tombo - Win32 (WCE ARM) Release"\r
+\r
+DEP_CPP_DIREC=\\r
+       "..\..\Src\TomboLib\DirectoryScanner.h"\\r
+       "..\..\Src\TomboLib\Uniconv.h"\\r
+       \r
+\r
+!ELSEIF  "$(CFG)" == "Tombo - Win32 (WCE ARM) ReleaseVGA"\r
+\r
+DEP_CPP_DIREC=\\r
+       "..\..\Src\TomboLib\DirectoryScanner.h"\\r
+       "..\..\Src\TomboLib\Uniconv.h"\\r
+       \r
+\r
+!ENDIF \r
+\r
+# End Source File\r
+# Begin Source File\r
+\r
+SOURCE=..\..\Src\DirList.cpp\r
+\r
+!IF  "$(CFG)" == "Tombo - Win32 (WCE MIPS) Release"\r
+\r
+DEP_CPP_DIRLI=\\r
+       "..\..\Src\DirList.h"\\r
+       "..\..\Src\MemoNote.h"\\r
+       "..\..\Src\Repository.h"\\r
+       "..\..\Src\Tombo.h"\\r
+       "..\..\Src\TomboLib\File.h"\\r
+       "..\..\Src\TomboLib\Logger.h"\\r
+       "..\..\Src\TomboLib\TString.h"\\r
+       "..\..\Src\TomboLib\VarBuffer.h"\\r
+       "..\..\Src\TomboURI.h"\\r
+       \r
+\r
+!ELSEIF  "$(CFG)" == "Tombo - Win32 (WCE SH4) Release"\r
+\r
+DEP_CPP_DIRLI=\\r
+       "..\..\Src\DirList.h"\\r
+       "..\..\Src\MemoManager.h"\\r
+       "..\..\Src\MemoNote.h"\\r
+       "..\..\Src\TreeViewItem.h"\\r
+       \r
+NODEP_CPP_DIRLI=\\r
+       "..\..\Src\VarBuffer.h"\\r
+       \r
+\r
+!ELSEIF  "$(CFG)" == "Tombo - Win32 (WCE SH4) Debug"\r
+\r
+DEP_CPP_DIRLI=\\r
+       "..\..\Src\DirList.h"\\r
+       "..\..\Src\MemoManager.h"\\r
+       "..\..\Src\MemoNote.h"\\r
+       "..\..\Src\TreeViewItem.h"\\r
+       \r
+NODEP_CPP_DIRLI=\\r
+       "..\..\Src\VarBuffer.h"\\r
+       \r
+\r
+!ELSEIF  "$(CFG)" == "Tombo - Win32 (WCE SH3) Release"\r
+\r
+DEP_CPP_DIRLI=\\r
+       "..\..\Src\DirList.h"\\r
+       "..\..\Src\MemoNote.h"\\r
+       "..\..\Src\Repository.h"\\r
+       "..\..\Src\Tombo.h"\\r
+       "..\..\Src\TomboLib\File.h"\\r
+       "..\..\Src\TomboLib\Logger.h"\\r
+       "..\..\Src\TomboLib\TString.h"\\r
+       "..\..\Src\TomboLib\VarBuffer.h"\\r
+       "..\..\Src\TomboURI.h"\\r
+       \r
+\r
+!ELSEIF  "$(CFG)" == "Tombo - Win32 (WCE ARM) Release"\r
+\r
+DEP_CPP_DIRLI=\\r
+       "..\..\Src\DirList.h"\\r
+       "..\..\Src\MemoNote.h"\\r
+       "..\..\Src\Repository.h"\\r
+       "..\..\Src\Tombo.h"\\r
+       "..\..\Src\TomboLib\File.h"\\r
+       "..\..\Src\TomboLib\Logger.h"\\r
+       "..\..\Src\TomboLib\TString.h"\\r
+       "..\..\Src\TomboLib\VarBuffer.h"\\r
+       "..\..\Src\TomboURI.h"\\r
+       \r
+\r
+!ELSEIF  "$(CFG)" == "Tombo - Win32 (WCE ARM) ReleaseVGA"\r
+\r
+DEP_CPP_DIRLI=\\r
+       "..\..\Src\DirList.h"\\r
+       "..\..\Src\MemoNote.h"\\r
+       "..\..\Src\Repository.h"\\r
+       "..\..\Src\Tombo.h"\\r
+       "..\..\Src\TomboLib\File.h"\\r
+       "..\..\Src\TomboLib\Logger.h"\\r
+       "..\..\Src\TomboLib\TString.h"\\r
+       "..\..\Src\TomboLib\VarBuffer.h"\\r
+       "..\..\Src\TomboURI.h"\\r
+       \r
+\r
+!ENDIF \r
+\r
+# End Source File\r
+# Begin Source File\r
+\r
+SOURCE=..\..\Src\TomboLib\File.cpp\r
+\r
+!IF  "$(CFG)" == "Tombo - Win32 (WCE MIPS) Release"\r
+\r
+DEP_CPP_FILE_=\\r
+       "..\..\Src\TomboLib\File.h"\\r
+       \r
+\r
+!ELSEIF  "$(CFG)" == "Tombo - Win32 (WCE SH4) Release"\r
+\r
+DEP_CPP_FILE_=\\r
+       "..\..\Src\TomboLib\File.h"\\r
+       \r
+\r
+!ELSEIF  "$(CFG)" == "Tombo - Win32 (WCE SH4) Debug"\r
+\r
+DEP_CPP_FILE_=\\r
+       "..\..\Src\TomboLib\File.h"\\r
+       \r
+\r
+!ELSEIF  "$(CFG)" == "Tombo - Win32 (WCE SH3) Release"\r
+\r
+DEP_CPP_FILE_=\\r
+       "..\..\Src\TomboLib\File.h"\\r
+       \r
+\r
+!ELSEIF  "$(CFG)" == "Tombo - Win32 (WCE ARM) Release"\r
+\r
+DEP_CPP_FILE_=\\r
+       "..\..\Src\TomboLib\File.h"\\r
+       \r
+\r
+!ELSEIF  "$(CFG)" == "Tombo - Win32 (WCE ARM) ReleaseVGA"\r
+\r
+DEP_CPP_FILE_=\\r
+       "..\..\Src\TomboLib\File.h"\\r
+       \r
+\r
+!ENDIF \r
+\r
+# End Source File\r
+# Begin Source File\r
+\r
+SOURCE=..\..\Src\TomboLib\FileInputStream.cpp\r
+\r
+!IF  "$(CFG)" == "Tombo - Win32 (WCE MIPS) Release"\r
+\r
+DEP_CPP_FILEI=\\r
+       "..\..\Src\TomboLib\FileInputStream.h"\\r
+       \r
+\r
+!ELSEIF  "$(CFG)" == "Tombo - Win32 (WCE SH4) Release"\r
+\r
+DEP_CPP_FILEI=\\r
+       "..\..\Src\TomboLib\FileInputStream.h"\\r
+       \r
+\r
+!ELSEIF  "$(CFG)" == "Tombo - Win32 (WCE SH4) Debug"\r
+\r
+DEP_CPP_FILEI=\\r
+       "..\..\Src\TomboLib\FileInputStream.h"\\r
+       \r
+\r
+!ELSEIF  "$(CFG)" == "Tombo - Win32 (WCE SH3) Release"\r
+\r
+DEP_CPP_FILEI=\\r
+       "..\..\Src\TomboLib\FileInputStream.h"\\r
+       \r
+\r
+!ELSEIF  "$(CFG)" == "Tombo - Win32 (WCE ARM) Release"\r
+\r
+DEP_CPP_FILEI=\\r
+       "..\..\Src\TomboLib\FileInputStream.h"\\r
+       \r
+\r
+!ELSEIF  "$(CFG)" == "Tombo - Win32 (WCE ARM) ReleaseVGA"\r
+\r
+DEP_CPP_FILEI=\\r
+       "..\..\Src\TomboLib\FileInputStream.h"\\r
+       \r
+\r
+!ENDIF \r
+\r
+# End Source File\r
+# Begin Source File\r
+\r
+SOURCE=..\..\Src\FileSelector.cpp\r
+\r
+!IF  "$(CFG)" == "Tombo - Win32 (WCE MIPS) Release"\r
+\r
+DEP_CPP_FILES=\\r
+       "..\..\Src\FileSelector.h"\\r
+       "..\..\Src\Message.h"\\r
+       "..\..\Src\MsgRes\MsgDef.h"\\r
+       "..\..\Src\TomboLib\DialogTemplate.h"\\r
+       \r
+\r
+!ELSEIF  "$(CFG)" == "Tombo - Win32 (WCE SH4) Release"\r
+\r
+DEP_CPP_FILES=\\r
+       "..\..\Src\FileSelector.h"\\r
+       \r
+\r
+!ELSEIF  "$(CFG)" == "Tombo - Win32 (WCE SH4) Debug"\r
+\r
+DEP_CPP_FILES=\\r
+       "..\..\Src\FileSelector.h"\\r
+       \r
+\r
+!ELSEIF  "$(CFG)" == "Tombo - Win32 (WCE SH3) Release"\r
+\r
+DEP_CPP_FILES=\\r
+       "..\..\Src\FileSelector.h"\\r
+       "..\..\Src\Message.h"\\r
+       "..\..\Src\MsgRes\MsgDef.h"\\r
+       "..\..\Src\TomboLib\DialogTemplate.h"\\r
+       \r
+\r
+!ELSEIF  "$(CFG)" == "Tombo - Win32 (WCE ARM) Release"\r
+\r
+DEP_CPP_FILES=\\r
+       "..\..\Src\FileSelector.h"\\r
+       "..\..\Src\Message.h"\\r
+       "..\..\Src\MsgRes\MsgDef.h"\\r
+       "..\..\Src\TomboLib\DialogTemplate.h"\\r
+       \r
+\r
+!ELSEIF  "$(CFG)" == "Tombo - Win32 (WCE ARM) ReleaseVGA"\r
+\r
+DEP_CPP_FILES=\\r
+       "..\..\Src\FileSelector.h"\\r
+       "..\..\Src\Message.h"\\r
+       "..\..\Src\MsgRes\MsgDef.h"\\r
+       "..\..\Src\TomboLib\DialogTemplate.h"\\r
+       \r
+\r
+!ENDIF \r
+\r
+# End Source File\r
+# Begin Source File\r
+\r
+SOURCE=..\..\Src\FilterAddDlg.cpp\r
+\r
+!IF  "$(CFG)" == "Tombo - Win32 (WCE MIPS) Release"\r
+\r
+DEP_CPP_FILTE=\\r
+       "..\..\Src\FilterAddDlg.h"\\r
+       "..\..\Src\Message.h"\\r
+       "..\..\Src\MsgRes\MsgDef.h"\\r
+       "..\..\Src\Property.h"\\r
+       "..\..\Src\Tombo.h"\\r
+       "..\..\Src\TomboLib\DialogTemplate.h"\\r
+       "..\..\Src\TomboLib\File.h"\\r
+       "..\..\Src\TomboLib\Logger.h"\\r
+       "..\..\Src\TomboLib\TString.h"\\r
+       "..\..\Src\TomboLib\VarBuffer.h"\\r
+       "..\..\Src\VFStream.h"\\r
+       \r
+\r
+!ELSEIF  "$(CFG)" == "Tombo - Win32 (WCE SH4) Release"\r
+\r
+DEP_CPP_FILTE=\\r
+       "..\..\Src\FilterAddDlg.h"\\r
+       "..\..\Src\Message.h"\\r
+       "..\..\Src\Property.h"\\r
+       "..\..\Src\Tombo.h"\\r
+       "..\..\Src\VFStream.h"\\r
+       \r
+NODEP_CPP_FILTE=\\r
+       "..\..\Src\DialogTemplate.h"\\r
+       "..\..\Src\File.h"\\r
+       "..\..\Src\Logger.h"\\r
+       "..\..\Src\TString.h"\\r
+       "..\..\Src\VarBuffer.h"\\r
+       \r
+\r
+!ELSEIF  "$(CFG)" == "Tombo - Win32 (WCE SH4) Debug"\r
+\r
+DEP_CPP_FILTE=\\r
+       "..\..\Src\FilterAddDlg.h"\\r
+       "..\..\Src\Message.h"\\r
+       "..\..\Src\Property.h"\\r
+       "..\..\Src\Tombo.h"\\r
+       "..\..\Src\VFStream.h"\\r
+       \r
+NODEP_CPP_FILTE=\\r
+       "..\..\Src\DialogTemplate.h"\\r
+       "..\..\Src\File.h"\\r
+       "..\..\Src\Logger.h"\\r
+       "..\..\Src\TString.h"\\r
+       "..\..\Src\VarBuffer.h"\\r
+       \r
+\r
+!ELSEIF  "$(CFG)" == "Tombo - Win32 (WCE SH3) Release"\r
+\r
+DEP_CPP_FILTE=\\r
+       "..\..\Src\FilterAddDlg.h"\\r
+       "..\..\Src\Message.h"\\r
+       "..\..\Src\MsgRes\MsgDef.h"\\r
+       "..\..\Src\Property.h"\\r
+       "..\..\Src\Tombo.h"\\r
+       "..\..\Src\TomboLib\DialogTemplate.h"\\r
+       "..\..\Src\TomboLib\File.h"\\r
+       "..\..\Src\TomboLib\Logger.h"\\r
+       "..\..\Src\TomboLib\TString.h"\\r
+       "..\..\Src\TomboLib\VarBuffer.h"\\r
+       "..\..\Src\VFStream.h"\\r
+       \r
+\r
+!ELSEIF  "$(CFG)" == "Tombo - Win32 (WCE ARM) Release"\r
+\r
+DEP_CPP_FILTE=\\r
+       "..\..\Src\FilterAddDlg.h"\\r
+       "..\..\Src\Message.h"\\r
+       "..\..\Src\MsgRes\MsgDef.h"\\r
+       "..\..\Src\Property.h"\\r
+       "..\..\Src\Tombo.h"\\r
+       "..\..\Src\TomboLib\DialogTemplate.h"\\r
+       "..\..\Src\TomboLib\File.h"\\r
+       "..\..\Src\TomboLib\Logger.h"\\r
+       "..\..\Src\TomboLib\TString.h"\\r
+       "..\..\Src\TomboLib\VarBuffer.h"\\r
+       "..\..\Src\VFStream.h"\\r
+       \r
+\r
+!ELSEIF  "$(CFG)" == "Tombo - Win32 (WCE ARM) ReleaseVGA"\r
+\r
+DEP_CPP_FILTE=\\r
+       "..\..\Src\FilterAddDlg.h"\\r
+       "..\..\Src\Message.h"\\r
+       "..\..\Src\MsgRes\MsgDef.h"\\r
+       "..\..\Src\Property.h"\\r
+       "..\..\Src\Tombo.h"\\r
+       "..\..\Src\TomboLib\DialogTemplate.h"\\r
+       "..\..\Src\TomboLib\File.h"\\r
+       "..\..\Src\TomboLib\Logger.h"\\r
+       "..\..\Src\TomboLib\TString.h"\\r
+       "..\..\Src\TomboLib\VarBuffer.h"\\r
+       "..\..\Src\VFStream.h"\\r
+       \r
+\r
+!ENDIF \r
+\r
+# End Source File\r
+# Begin Source File\r
+\r
+SOURCE=..\..\Src\FilterCtlDlg.cpp\r
+\r
+!IF  "$(CFG)" == "Tombo - Win32 (WCE MIPS) Release"\r
+\r
+DEP_CPP_FILTER=\\r
+       "..\..\Src\FilterCtlDlg.h"\\r
+       "..\..\Src\FilterDefDlg.h"\\r
+       "..\..\Src\MemoManager.h"\\r
+       "..\..\Src\MemoSelectView.h"\\r
+       "..\..\Src\Message.h"\\r
+       "..\..\Src\MsgRes\MsgDef.h"\\r
+       "..\..\Src\Tombo.h"\\r
+       "..\..\Src\TomboLib\DialogTemplate.h"\\r
+       "..\..\Src\TomboLib\File.h"\\r
+       "..\..\Src\TomboLib\Logger.h"\\r
+       "..\..\Src\TomboLib\TString.h"\\r
+       "..\..\Src\TomboLib\Uniconv.h"\\r
+       "..\..\Src\TomboLib\VarBuffer.h"\\r
+       "..\..\Src\TreeViewItem.h"\\r
+       "..\..\Src\VFManager.h"\\r
+       "..\..\Src\VFStream.h"\\r
+       \r
+\r
+!ELSEIF  "$(CFG)" == "Tombo - Win32 (WCE SH4) Release"\r
+\r
+DEP_CPP_FILTER=\\r
+       "..\..\Src\FilterCtlDlg.h"\\r
+       "..\..\Src\MemoManager.h"\\r
+       "..\..\Src\MemoSelectView.h"\\r
+       "..\..\Src\Message.h"\\r
+       "..\..\Src\TreeViewItem.h"\\r
+       \r
+NODEP_CPP_FILTER=\\r
+       "..\..\Src\TString.h"\\r
+       "..\..\Src\VarBuffer.h"\\r
+       \r
+\r
+!ELSEIF  "$(CFG)" == "Tombo - Win32 (WCE SH4) Debug"\r
+\r
+DEP_CPP_FILTER=\\r
+       "..\..\Src\FilterCtlDlg.h"\\r
+       "..\..\Src\MemoManager.h"\\r
+       "..\..\Src\MemoSelectView.h"\\r
+       "..\..\Src\Message.h"\\r
+       "..\..\Src\TreeViewItem.h"\\r
+       \r
+NODEP_CPP_FILTER=\\r
+       "..\..\Src\TString.h"\\r
+       "..\..\Src\VarBuffer.h"\\r
+       \r
+\r
+!ELSEIF  "$(CFG)" == "Tombo - Win32 (WCE SH3) Release"\r
+\r
+DEP_CPP_FILTER=\\r
+       "..\..\Src\FilterCtlDlg.h"\\r
+       "..\..\Src\FilterDefDlg.h"\\r
+       "..\..\Src\MemoManager.h"\\r
+       "..\..\Src\MemoSelectView.h"\\r
+       "..\..\Src\Message.h"\\r
+       "..\..\Src\MsgRes\MsgDef.h"\\r
+       "..\..\Src\Tombo.h"\\r
+       "..\..\Src\TomboLib\DialogTemplate.h"\\r
+       "..\..\Src\TomboLib\File.h"\\r
+       "..\..\Src\TomboLib\Logger.h"\\r
+       "..\..\Src\TomboLib\TString.h"\\r
+       "..\..\Src\TomboLib\Uniconv.h"\\r
+       "..\..\Src\TomboLib\VarBuffer.h"\\r
+       "..\..\Src\TreeViewItem.h"\\r
+       "..\..\Src\VFManager.h"\\r
+       "..\..\Src\VFStream.h"\\r
+       \r
+\r
+!ELSEIF  "$(CFG)" == "Tombo - Win32 (WCE ARM) Release"\r
+\r
+DEP_CPP_FILTER=\\r
+       "..\..\Src\FilterCtlDlg.h"\\r
+       "..\..\Src\FilterDefDlg.h"\\r
+       "..\..\Src\MemoManager.h"\\r
+       "..\..\Src\MemoSelectView.h"\\r
+       "..\..\Src\Message.h"\\r
+       "..\..\Src\MsgRes\MsgDef.h"\\r
+       "..\..\Src\Tombo.h"\\r
+       "..\..\Src\TomboLib\DialogTemplate.h"\\r
+       "..\..\Src\TomboLib\File.h"\\r
+       "..\..\Src\TomboLib\Logger.h"\\r
+       "..\..\Src\TomboLib\TString.h"\\r
+       "..\..\Src\TomboLib\Uniconv.h"\\r
+       "..\..\Src\TomboLib\VarBuffer.h"\\r
+       "..\..\Src\TreeViewItem.h"\\r
+       "..\..\Src\VFManager.h"\\r
+       "..\..\Src\VFStream.h"\\r
+       \r
+\r
+!ELSEIF  "$(CFG)" == "Tombo - Win32 (WCE ARM) ReleaseVGA"\r
+\r
+DEP_CPP_FILTER=\\r
+       "..\..\Src\FilterCtlDlg.h"\\r
+       "..\..\Src\FilterDefDlg.h"\\r
+       "..\..\Src\MemoManager.h"\\r
+       "..\..\Src\MemoSelectView.h"\\r
+       "..\..\Src\Message.h"\\r
+       "..\..\Src\MsgRes\MsgDef.h"\\r
+       "..\..\Src\Tombo.h"\\r
+       "..\..\Src\TomboLib\DialogTemplate.h"\\r
+       "..\..\Src\TomboLib\File.h"\\r
+       "..\..\Src\TomboLib\Logger.h"\\r
+       "..\..\Src\TomboLib\TString.h"\\r
+       "..\..\Src\TomboLib\Uniconv.h"\\r
+       "..\..\Src\TomboLib\VarBuffer.h"\\r
+       "..\..\Src\TreeViewItem.h"\\r
+       "..\..\Src\VFManager.h"\\r
+       "..\..\Src\VFStream.h"\\r
+       \r
+\r
+!ENDIF \r
+\r
+# End Source File\r
+# Begin Source File\r
+\r
+SOURCE=..\..\Src\FilterDefDlg.cpp\r
+\r
+!IF  "$(CFG)" == "Tombo - Win32 (WCE MIPS) Release"\r
+\r
+DEP_CPP_FILTERD=\\r
+       "..\..\Src\FilterAddDlg.h"\\r
+       "..\..\Src\FilterDefDlg.h"\\r
+       "..\..\Src\Message.h"\\r
+       "..\..\Src\MsgRes\MsgDef.h"\\r
+       "..\..\Src\Tombo.h"\\r
+       "..\..\Src\TomboLib\DialogTemplate.h"\\r
+       "..\..\Src\TomboLib\File.h"\\r
+       "..\..\Src\TomboLib\Logger.h"\\r
+       "..\..\Src\TomboLib\PropertyPage.h"\\r
+       "..\..\Src\TomboLib\TString.h"\\r
+       "..\..\Src\TomboLib\VarBuffer.h"\\r
+       "..\..\Src\TomboURI.h"\\r
+       "..\..\Src\VFManager.h"\\r
+       "..\..\Src\VFStream.h"\\r
+       \r
+\r
+!ELSEIF  "$(CFG)" == "Tombo - Win32 (WCE SH4) Release"\r
+\r
+DEP_CPP_FILTERD=\\r
+       "..\..\Src\FilterAddDlg.h"\\r
+       "..\..\Src\FilterDefDlg.h"\\r
+       "..\..\Src\Message.h"\\r
+       "..\..\Src\Tombo.h"\\r
+       "..\..\Src\VFManager.h"\\r
+       "..\..\Src\VFStream.h"\\r
+       \r
+NODEP_CPP_FILTERD=\\r
+       "..\..\Src\DialogTemplate.h"\\r
+       "..\..\Src\File.h"\\r
+       "..\..\Src\Logger.h"\\r
+       "..\..\Src\PropertyPage.h"\\r
+       "..\..\Src\TString.h"\\r
+       "..\..\Src\VarBuffer.h"\\r
+       \r
+\r
+!ELSEIF  "$(CFG)" == "Tombo - Win32 (WCE SH4) Debug"\r
+\r
+DEP_CPP_FILTERD=\\r
+       "..\..\Src\FilterAddDlg.h"\\r
+       "..\..\Src\FilterDefDlg.h"\\r
+       "..\..\Src\Message.h"\\r
+       "..\..\Src\Tombo.h"\\r
+       "..\..\Src\VFManager.h"\\r
+       "..\..\Src\VFStream.h"\\r
+       \r
+NODEP_CPP_FILTERD=\\r
+       "..\..\Src\DialogTemplate.h"\\r
+       "..\..\Src\File.h"\\r
+       "..\..\Src\Logger.h"\\r
+       "..\..\Src\PropertyPage.h"\\r
+       "..\..\Src\TString.h"\\r
+       "..\..\Src\VarBuffer.h"\\r
+       \r
+\r
+!ELSEIF  "$(CFG)" == "Tombo - Win32 (WCE SH3) Release"\r
+\r
+DEP_CPP_FILTERD=\\r
+       "..\..\Src\FilterAddDlg.h"\\r
+       "..\..\Src\FilterDefDlg.h"\\r
+       "..\..\Src\Message.h"\\r
+       "..\..\Src\MsgRes\MsgDef.h"\\r
+       "..\..\Src\Tombo.h"\\r
+       "..\..\Src\TomboLib\DialogTemplate.h"\\r
+       "..\..\Src\TomboLib\File.h"\\r
+       "..\..\Src\TomboLib\Logger.h"\\r
+       "..\..\Src\TomboLib\PropertyPage.h"\\r
+       "..\..\Src\TomboLib\TString.h"\\r
+       "..\..\Src\TomboLib\VarBuffer.h"\\r
+       "..\..\Src\TomboURI.h"\\r
+       "..\..\Src\VFManager.h"\\r
+       "..\..\Src\VFStream.h"\\r
+       \r
+\r
+!ELSEIF  "$(CFG)" == "Tombo - Win32 (WCE ARM) Release"\r
+\r
+DEP_CPP_FILTERD=\\r
+       "..\..\Src\FilterAddDlg.h"\\r
+       "..\..\Src\FilterDefDlg.h"\\r
+       "..\..\Src\Message.h"\\r
+       "..\..\Src\MsgRes\MsgDef.h"\\r
+       "..\..\Src\Tombo.h"\\r
+       "..\..\Src\TomboLib\DialogTemplate.h"\\r
+       "..\..\Src\TomboLib\File.h"\\r
+       "..\..\Src\TomboLib\Logger.h"\\r
+       "..\..\Src\TomboLib\PropertyPage.h"\\r
+       "..\..\Src\TomboLib\TString.h"\\r
+       "..\..\Src\TomboLib\VarBuffer.h"\\r
+       "..\..\Src\TomboURI.h"\\r
+       "..\..\Src\VFManager.h"\\r
+       "..\..\Src\VFStream.h"\\r
+       \r
+\r
+!ELSEIF  "$(CFG)" == "Tombo - Win32 (WCE ARM) ReleaseVGA"\r
+\r
+DEP_CPP_FILTERD=\\r
+       "..\..\Src\FilterAddDlg.h"\\r
+       "..\..\Src\FilterDefDlg.h"\\r
+       "..\..\Src\Message.h"\\r
+       "..\..\Src\MsgRes\MsgDef.h"\\r
+       "..\..\Src\Tombo.h"\\r
+       "..\..\Src\TomboLib\DialogTemplate.h"\\r
+       "..\..\Src\TomboLib\File.h"\\r
+       "..\..\Src\TomboLib\Logger.h"\\r
+       "..\..\Src\TomboLib\PropertyPage.h"\\r
+       "..\..\Src\TomboLib\TString.h"\\r
+       "..\..\Src\TomboLib\VarBuffer.h"\\r
+       "..\..\Src\TomboURI.h"\\r
+       "..\..\Src\VFManager.h"\\r
+       "..\..\Src\VFStream.h"\\r
+       \r
+\r
+!ENDIF \r
+\r
+# End Source File\r
+# Begin Source File\r
+\r
+SOURCE=..\..\Src\YAEdit\FontWidthCache.cpp\r
+\r
+!IF  "$(CFG)" == "Tombo - Win32 (WCE MIPS) Release"\r
+\r
+DEP_CPP_FONTW=\\r
+       "..\..\Src\YAEdit\FontWidthCache.h"\\r
+       \r
+\r
+!ELSEIF  "$(CFG)" == "Tombo - Win32 (WCE SH4) Release"\r
+\r
+DEP_CPP_FONTW=\\r
+       "..\..\Src\YAEdit\FontWidthCache.h"\\r
+       \r
+\r
+!ELSEIF  "$(CFG)" == "Tombo - Win32 (WCE SH4) Debug"\r
+\r
+DEP_CPP_FONTW=\\r
+       "..\..\Src\YAEdit\FontWidthCache.h"\\r
+       \r
+\r
+!ELSEIF  "$(CFG)" == "Tombo - Win32 (WCE SH3) Release"\r
+\r
+DEP_CPP_FONTW=\\r
+       "..\..\Src\YAEdit\FontWidthCache.h"\\r
+       \r
+\r
+!ELSEIF  "$(CFG)" == "Tombo - Win32 (WCE ARM) Release"\r
+\r
+DEP_CPP_FONTW=\\r
+       "..\..\Src\YAEdit\FontWidthCache.h"\\r
+       \r
+\r
+!ELSEIF  "$(CFG)" == "Tombo - Win32 (WCE ARM) ReleaseVGA"\r
+\r
+DEP_CPP_FONTW=\\r
+       "..\..\Src\YAEdit\FontWidthCache.h"\\r
+       \r
+\r
+!ENDIF \r
+\r
+# End Source File\r
+# Begin Source File\r
+\r
+SOURCE=..\..\Src\GrepDialog.cpp\r
+\r
+!IF  "$(CFG)" == "Tombo - Win32 (WCE MIPS) Release"\r
+\r
+DEP_CPP_GREPD=\\r
+       "..\..\Src\GrepDialog.h"\\r
+       "..\..\Src\Message.h"\\r
+       "..\..\Src\MsgRes\MsgDef.h"\\r
+       "..\..\Src\Property.h"\\r
+       "..\..\Src\Tombo.h"\\r
+       "..\..\Src\TomboLib\DialogTemplate.h"\\r
+       "..\..\Src\TomboLib\File.h"\\r
+       "..\..\Src\TomboLib\Logger.h"\\r
+       "..\..\Src\TomboLib\PropertyPage.h"\\r
+       "..\..\Src\TomboLib\TString.h"\\r
+       \r
+\r
+!ELSEIF  "$(CFG)" == "Tombo - Win32 (WCE SH4) Release"\r
+\r
+DEP_CPP_GREPD=\\r
+       "..\..\Src\GrepDialog.h"\\r
+       "..\..\Src\Message.h"\\r
+       "..\..\Src\Property.h"\\r
+       \r
+NODEP_CPP_GREPD=\\r
+       "..\..\Src\PropertyPage.h"\\r
+       \r
+\r
+!ELSEIF  "$(CFG)" == "Tombo - Win32 (WCE SH4) Debug"\r
+\r
+DEP_CPP_GREPD=\\r
+       "..\..\Src\GrepDialog.h"\\r
+       "..\..\Src\Message.h"\\r
+       "..\..\Src\Property.h"\\r
+       \r
+NODEP_CPP_GREPD=\\r
+       "..\..\Src\PropertyPage.h"\\r
+       \r
+\r
+!ELSEIF  "$(CFG)" == "Tombo - Win32 (WCE SH3) Release"\r
+\r
+DEP_CPP_GREPD=\\r
+       "..\..\Src\GrepDialog.h"\\r
+       "..\..\Src\Message.h"\\r
+       "..\..\Src\MsgRes\MsgDef.h"\\r
+       "..\..\Src\Property.h"\\r
+       "..\..\Src\Tombo.h"\\r
+       "..\..\Src\TomboLib\DialogTemplate.h"\\r
+       "..\..\Src\TomboLib\File.h"\\r
+       "..\..\Src\TomboLib\Logger.h"\\r
+       "..\..\Src\TomboLib\PropertyPage.h"\\r
+       "..\..\Src\TomboLib\TString.h"\\r
+       \r
+\r
+!ELSEIF  "$(CFG)" == "Tombo - Win32 (WCE ARM) Release"\r
+\r
+DEP_CPP_GREPD=\\r
+       "..\..\Src\GrepDialog.h"\\r
+       "..\..\Src\Message.h"\\r
+       "..\..\Src\MsgRes\MsgDef.h"\\r
+       "..\..\Src\Property.h"\\r
+       "..\..\Src\Tombo.h"\\r
+       "..\..\Src\TomboLib\DialogTemplate.h"\\r
+       "..\..\Src\TomboLib\File.h"\\r
+       "..\..\Src\TomboLib\Logger.h"\\r
+       "..\..\Src\TomboLib\PropertyPage.h"\\r
+       "..\..\Src\TomboLib\TString.h"\\r
+       \r
+\r
+!ELSEIF  "$(CFG)" == "Tombo - Win32 (WCE ARM) ReleaseVGA"\r
+\r
+DEP_CPP_GREPD=\\r
+       "..\..\Src\GrepDialog.h"\\r
+       "..\..\Src\Message.h"\\r
+       "..\..\Src\MsgRes\MsgDef.h"\\r
+       "..\..\Src\Property.h"\\r
+       "..\..\Src\Tombo.h"\\r
+       "..\..\Src\TomboLib\DialogTemplate.h"\\r
+       "..\..\Src\TomboLib\File.h"\\r
+       "..\..\Src\TomboLib\Logger.h"\\r
+       "..\..\Src\TomboLib\PropertyPage.h"\\r
+       "..\..\Src\TomboLib\TString.h"\\r
+       \r
+\r
+!ENDIF \r
+\r
+# End Source File\r
+# Begin Source File\r
+\r
+SOURCE=..\..\Src\YAEdit\LineManager.cpp\r
+\r
+!IF  "$(CFG)" == "Tombo - Win32 (WCE MIPS) Release"\r
+\r
+DEP_CPP_LINEM=\\r
+       "..\..\Src\TomboLib\VarBuffer.h"\\r
+       "..\..\Src\YAEdit\LineManager.h"\\r
+       "..\..\Src\YAEdit\LineWrapper.h"\\r
+       "..\..\Src\YAEdit\MemManager.h"\\r
+       "..\..\Src\YAEdit\PhysicalLineManager.h"\\r
+       "..\..\Src\YAEdit\Region.h"\\r
+       "..\..\Src\YAEdit\YAEdit.h"\\r
+       "..\..\Src\YAEdit\YAEditDoc.h"\\r
+       \r
+\r
+!ELSEIF  "$(CFG)" == "Tombo - Win32 (WCE SH4) Release"\r
+\r
+DEP_CPP_LINEM=\\r
+       "..\..\Src\TomboLib\VarBuffer.h"\\r
+       "..\..\Src\YAEdit\LineManager.h"\\r
+       "..\..\Src\YAEdit\LineWrapper.h"\\r
+       "..\..\Src\YAEdit\MemManager.h"\\r
+       "..\..\Src\YAEdit\PhysicalLineManager.h"\\r
+       "..\..\Src\YAEdit\Region.h"\\r
+       "..\..\Src\YAEdit\YAEdit.h"\\r
+       "..\..\Src\YAEdit\YAEditDoc.h"\\r
+       \r
+\r
+!ELSEIF  "$(CFG)" == "Tombo - Win32 (WCE SH4) Debug"\r
+\r
+DEP_CPP_LINEM=\\r
+       "..\..\Src\TomboLib\VarBuffer.h"\\r
+       "..\..\Src\YAEdit\LineManager.h"\\r
+       "..\..\Src\YAEdit\LineWrapper.h"\\r
+       "..\..\Src\YAEdit\MemManager.h"\\r
+       "..\..\Src\YAEdit\PhysicalLineManager.h"\\r
+       "..\..\Src\YAEdit\Region.h"\\r
+       "..\..\Src\YAEdit\YAEdit.h"\\r
+       "..\..\Src\YAEdit\YAEditDoc.h"\\r
+       \r
+\r
+!ELSEIF  "$(CFG)" == "Tombo - Win32 (WCE SH3) Release"\r
+\r
+DEP_CPP_LINEM=\\r
+       "..\..\Src\TomboLib\VarBuffer.h"\\r
+       "..\..\Src\YAEdit\LineManager.h"\\r
+       "..\..\Src\YAEdit\LineWrapper.h"\\r
+       "..\..\Src\YAEdit\MemManager.h"\\r
+       "..\..\Src\YAEdit\PhysicalLineManager.h"\\r
+       "..\..\Src\YAEdit\Region.h"\\r
+       "..\..\Src\YAEdit\YAEdit.h"\\r
+       "..\..\Src\YAEdit\YAEditDoc.h"\\r
+       \r
+\r
+!ELSEIF  "$(CFG)" == "Tombo - Win32 (WCE ARM) Release"\r
+\r
+DEP_CPP_LINEM=\\r
+       "..\..\Src\TomboLib\VarBuffer.h"\\r
+       "..\..\Src\YAEdit\LineManager.h"\\r
+       "..\..\Src\YAEdit\LineWrapper.h"\\r
+       "..\..\Src\YAEdit\MemManager.h"\\r
+       "..\..\Src\YAEdit\PhysicalLineManager.h"\\r
+       "..\..\Src\YAEdit\Region.h"\\r
+       "..\..\Src\YAEdit\YAEdit.h"\\r
+       "..\..\Src\YAEdit\YAEditDoc.h"\\r
+       \r
+\r
+!ELSEIF  "$(CFG)" == "Tombo - Win32 (WCE ARM) ReleaseVGA"\r
+\r
+DEP_CPP_LINEM=\\r
+       "..\..\Src\TomboLib\VarBuffer.h"\\r
+       "..\..\Src\YAEdit\LineManager.h"\\r
+       "..\..\Src\YAEdit\LineWrapper.h"\\r
+       "..\..\Src\YAEdit\MemManager.h"\\r
+       "..\..\Src\YAEdit\PhysicalLineManager.h"\\r
+       "..\..\Src\YAEdit\Region.h"\\r
+       "..\..\Src\YAEdit\YAEdit.h"\\r
+       "..\..\Src\YAEdit\YAEditDoc.h"\\r
+       \r
+\r
+!ENDIF \r
+\r
+# End Source File\r
+# Begin Source File\r
+\r
+SOURCE=..\..\Src\YAEdit\LineWrapper.cpp\r
+\r
+!IF  "$(CFG)" == "Tombo - Win32 (WCE MIPS) Release"\r
+\r
+DEP_CPP_LINEW=\\r
+       "..\..\Src\TomboLib\VarBuffer.h"\\r
+       "..\..\Src\YAEdit\LineWrapper.h"\\r
+       "..\..\Src\YAEdit\Region.h"\\r
+       "..\..\Src\YAEdit\YAEdit.h"\\r
+       \r
+\r
+!ELSEIF  "$(CFG)" == "Tombo - Win32 (WCE SH4) Release"\r
+\r
+DEP_CPP_LINEW=\\r
+       "..\..\Src\TomboLib\VarBuffer.h"\\r
+       "..\..\Src\YAEdit\LineWrapper.h"\\r
+       "..\..\Src\YAEdit\Region.h"\\r
+       "..\..\Src\YAEdit\YAEdit.h"\\r
+       \r
+\r
+!ELSEIF  "$(CFG)" == "Tombo - Win32 (WCE SH4) Debug"\r
+\r
+DEP_CPP_LINEW=\\r
+       "..\..\Src\TomboLib\VarBuffer.h"\\r
+       "..\..\Src\YAEdit\LineWrapper.h"\\r
+       "..\..\Src\YAEdit\Region.h"\\r
+       "..\..\Src\YAEdit\YAEdit.h"\\r
+       \r
+\r
+!ELSEIF  "$(CFG)" == "Tombo - Win32 (WCE SH3) Release"\r
+\r
+DEP_CPP_LINEW=\\r
+       "..\..\Src\TomboLib\VarBuffer.h"\\r
+       "..\..\Src\YAEdit\LineWrapper.h"\\r
+       "..\..\Src\YAEdit\Region.h"\\r
+       "..\..\Src\YAEdit\YAEdit.h"\\r
+       \r
+\r
+!ELSEIF  "$(CFG)" == "Tombo - Win32 (WCE ARM) Release"\r
+\r
+DEP_CPP_LINEW=\\r
+       "..\..\Src\TomboLib\VarBuffer.h"\\r
+       "..\..\Src\YAEdit\LineWrapper.h"\\r
+       "..\..\Src\YAEdit\Region.h"\\r
+       "..\..\Src\YAEdit\YAEdit.h"\\r
+       \r
+\r
+!ELSEIF  "$(CFG)" == "Tombo - Win32 (WCE ARM) ReleaseVGA"\r
+\r
+DEP_CPP_LINEW=\\r
+       "..\..\Src\TomboLib\VarBuffer.h"\\r
+       "..\..\Src\YAEdit\LineWrapper.h"\\r
+       "..\..\Src\YAEdit\Region.h"\\r
+       "..\..\Src\YAEdit\YAEdit.h"\\r
+       \r
+\r
+!ENDIF \r
+\r
+# End Source File\r
+# Begin Source File\r
+\r
+SOURCE=..\..\Src\YAEdit\LineWrapperImpl.cpp\r
+\r
+!IF  "$(CFG)" == "Tombo - Win32 (WCE MIPS) Release"\r
+\r
+DEP_CPP_LINEWR=\\r
+       "..\..\Src\TomboLib\VarBuffer.h"\\r
+       "..\..\Src\YAEdit\LineWrapper.h"\\r
+       "..\..\Src\YAEdit\LineWrapperImpl.h"\\r
+       "..\..\Src\YAEdit\Region.h"\\r
+       "..\..\Src\YAEdit\YAEdit.h"\\r
+       \r
+\r
+!ELSEIF  "$(CFG)" == "Tombo - Win32 (WCE SH4) Release"\r
+\r
+DEP_CPP_LINEWR=\\r
+       "..\..\Src\TomboLib\VarBuffer.h"\\r
+       "..\..\Src\YAEdit\LineWrapper.h"\\r
+       "..\..\Src\YAEdit\LineWrapperImpl.h"\\r
+       "..\..\Src\YAEdit\Region.h"\\r
+       "..\..\Src\YAEdit\YAEdit.h"\\r
+       \r
+\r
+!ELSEIF  "$(CFG)" == "Tombo - Win32 (WCE SH4) Debug"\r
+\r
+DEP_CPP_LINEWR=\\r
+       "..\..\Src\TomboLib\VarBuffer.h"\\r
+       "..\..\Src\YAEdit\LineWrapper.h"\\r
+       "..\..\Src\YAEdit\LineWrapperImpl.h"\\r
+       "..\..\Src\YAEdit\Region.h"\\r
+       "..\..\Src\YAEdit\YAEdit.h"\\r
+       \r
+\r
+!ELSEIF  "$(CFG)" == "Tombo - Win32 (WCE SH3) Release"\r
+\r
+DEP_CPP_LINEWR=\\r
+       "..\..\Src\TomboLib\VarBuffer.h"\\r
+       "..\..\Src\YAEdit\LineWrapper.h"\\r
+       "..\..\Src\YAEdit\LineWrapperImpl.h"\\r
+       "..\..\Src\YAEdit\Region.h"\\r
+       "..\..\Src\YAEdit\YAEdit.h"\\r
+       \r
+\r
+!ELSEIF  "$(CFG)" == "Tombo - Win32 (WCE ARM) Release"\r
+\r
+DEP_CPP_LINEWR=\\r
+       "..\..\Src\TomboLib\VarBuffer.h"\\r
+       "..\..\Src\YAEdit\LineWrapper.h"\\r
+       "..\..\Src\YAEdit\LineWrapperImpl.h"\\r
+       "..\..\Src\YAEdit\Region.h"\\r
+       "..\..\Src\YAEdit\YAEdit.h"\\r
+       \r
+\r
+!ELSEIF  "$(CFG)" == "Tombo - Win32 (WCE ARM) ReleaseVGA"\r
+\r
+DEP_CPP_LINEWR=\\r
+       "..\..\Src\TomboLib\VarBuffer.h"\\r
+       "..\..\Src\YAEdit\LineWrapper.h"\\r
+       "..\..\Src\YAEdit\LineWrapperImpl.h"\\r
+       "..\..\Src\YAEdit\Region.h"\\r
+       "..\..\Src\YAEdit\YAEdit.h"\\r
+       \r
+\r
+!ENDIF \r
+\r
+# End Source File\r
+# Begin Source File\r
+\r
+SOURCE=..\..\Src\TomboLib\List.cpp\r
+\r
+!IF  "$(CFG)" == "Tombo - Win32 (WCE MIPS) Release"\r
+\r
+!ELSEIF  "$(CFG)" == "Tombo - Win32 (WCE SH4) Release"\r
+\r
+!ELSEIF  "$(CFG)" == "Tombo - Win32 (WCE SH4) Debug"\r
+\r
+!ELSEIF  "$(CFG)" == "Tombo - Win32 (WCE SH3) Release"\r
+\r
+!ELSEIF  "$(CFG)" == "Tombo - Win32 (WCE ARM) Release"\r
+\r
+!ELSEIF  "$(CFG)" == "Tombo - Win32 (WCE ARM) ReleaseVGA"\r
+\r
+!ENDIF \r
+\r
+# End Source File\r
+# Begin Source File\r
+\r
+SOURCE=..\..\Src\TomboLib\Logger.cpp\r
+\r
+!IF  "$(CFG)" == "Tombo - Win32 (WCE MIPS) Release"\r
+\r
+DEP_CPP_LOGGE=\\r
+       "..\..\Src\TomboLib\File.h"\\r
+       "..\..\Src\TomboLib\Logger.h"\\r
+       \r
+\r
+!ELSEIF  "$(CFG)" == "Tombo - Win32 (WCE SH4) Release"\r
+\r
+DEP_CPP_LOGGE=\\r
+       "..\..\Src\Tombo.h"\\r
+       "..\..\Src\TomboLib\File.h"\\r
+       "..\..\Src\TomboLib\Logger.h"\\r
+       "..\..\Src\TomboLib\Uniconv.h"\\r
+       \r
+\r
+!ELSEIF  "$(CFG)" == "Tombo - Win32 (WCE SH4) Debug"\r
+\r
+DEP_CPP_LOGGE=\\r
+       "..\..\Src\Tombo.h"\\r
+       "..\..\Src\TomboLib\File.h"\\r
+       "..\..\Src\TomboLib\Logger.h"\\r
+       "..\..\Src\TomboLib\Uniconv.h"\\r
+       \r
+\r
+!ELSEIF  "$(CFG)" == "Tombo - Win32 (WCE SH3) Release"\r
+\r
+DEP_CPP_LOGGE=\\r
+       "..\..\Src\TomboLib\File.h"\\r
+       "..\..\Src\TomboLib\Logger.h"\\r
+       \r
+\r
+!ELSEIF  "$(CFG)" == "Tombo - Win32 (WCE ARM) Release"\r
+\r
+DEP_CPP_LOGGE=\\r
+       "..\..\Src\TomboLib\File.h"\\r
+       "..\..\Src\TomboLib\Logger.h"\\r
+       \r
+\r
+!ELSEIF  "$(CFG)" == "Tombo - Win32 (WCE ARM) ReleaseVGA"\r
+\r
+DEP_CPP_LOGGE=\\r
+       "..\..\Src\TomboLib\File.h"\\r
+       "..\..\Src\TomboLib\Logger.h"\\r
+       \r
+\r
+!ENDIF \r
+\r
+# End Source File\r
+# Begin Source File\r
+\r
+SOURCE=..\..\Src\main.cpp\r
+\r
+!IF  "$(CFG)" == "Tombo - Win32 (WCE MIPS) Release"\r
+\r
+DEP_CPP_MAIN_=\\r
+       "..\..\Src\HPCPlatform.h"\\r
+       "..\..\Src\LagendaPlatform.h"\\r
+       "..\..\Src\MainFrame.h"\\r
+       "..\..\Src\MemoDetailsView.h"\\r
+       "..\..\Src\MemoManager.h"\\r
+       "..\..\Src\MemoSelectView.h"\\r
+       "..\..\Src\Message.h"\\r
+       "..\..\Src\MsgRes\MsgDef.h"\\r
+       "..\..\Src\PasswordManager.h"\\r
+       "..\..\Src\PlatformLayer.h"\\r
+       "..\..\Src\PocketPCPlatform.h"\\r
+       "..\..\Src\Property.h"\\r
+       "..\..\Src\PsPCPlatform.h"\\r
+       "..\..\Src\Tombo.h"\\r
+       "..\..\Src\TomboLib\File.h"\\r
+       "..\..\Src\TomboLib\Logger.h"\\r
+       "..\..\Src\TomboLib\Uniconv.h"\\r
+       "..\..\Src\TomboLib\VarBuffer.h"\\r
+       "..\..\Src\Win32Platform.h"\\r
+       \r
+NODEP_CPP_MAIN_=\\r
+       ".\ipapi.h"\\r
+       ".\ygshell.h"\\r
+       \r
+\r
+!ELSEIF  "$(CFG)" == "Tombo - Win32 (WCE SH4) Release"\r
+\r
+DEP_CPP_MAIN_=\\r
+       "..\..\Src\Chipher.h"\\r
+       "..\..\Src\MainFrame.h"\\r
+       "..\..\Src\MemoDetailsView.h"\\r
+       "..\..\Src\MemoSelectView.h"\\r
+       "..\..\Src\PasswordManager.h"\\r
+       \r
+NODEP_CPP_MAIN_=\\r
+       "..\..\kctrl\kctrl.h"\\r
+       \r
+\r
+!ELSEIF  "$(CFG)" == "Tombo - Win32 (WCE SH4) Debug"\r
+\r
+DEP_CPP_MAIN_=\\r
+       "..\..\Src\Chipher.h"\\r
+       "..\..\Src\MainFrame.h"\\r
+       "..\..\Src\MemoDetailsView.h"\\r
+       "..\..\Src\MemoSelectView.h"\\r
+       "..\..\Src\PasswordManager.h"\\r
+       \r
+NODEP_CPP_MAIN_=\\r
+       "..\..\kctrl\kctrl.h"\\r
+       \r
+\r
+!ELSEIF  "$(CFG)" == "Tombo - Win32 (WCE SH3) Release"\r
+\r
+DEP_CPP_MAIN_=\\r
+       "..\..\Src\HPCPlatform.h"\\r
+       "..\..\Src\LagendaPlatform.h"\\r
+       "..\..\Src\MainFrame.h"\\r
+       "..\..\Src\MemoDetailsView.h"\\r
+       "..\..\Src\MemoManager.h"\\r
+       "..\..\Src\MemoSelectView.h"\\r
+       "..\..\Src\Message.h"\\r
+       "..\..\Src\MsgRes\MsgDef.h"\\r
+       "..\..\Src\PasswordManager.h"\\r
+       "..\..\Src\PlatformLayer.h"\\r
+       "..\..\Src\PocketPCPlatform.h"\\r
+       "..\..\Src\Property.h"\\r
+       "..\..\Src\PsPCPlatform.h"\\r
+       "..\..\Src\Tombo.h"\\r
+       "..\..\Src\TomboLib\File.h"\\r
+       "..\..\Src\TomboLib\Logger.h"\\r
+       "..\..\Src\TomboLib\Uniconv.h"\\r
+       "..\..\Src\TomboLib\VarBuffer.h"\\r
+       "..\..\Src\Win32Platform.h"\\r
+       \r
+NODEP_CPP_MAIN_=\\r
+       ".\ipapi.h"\\r
+       ".\ygshell.h"\\r
+       \r
+\r
+!ELSEIF  "$(CFG)" == "Tombo - Win32 (WCE ARM) Release"\r
+\r
+DEP_CPP_MAIN_=\\r
+       "..\..\Src\HPCPlatform.h"\\r
+       "..\..\Src\LagendaPlatform.h"\\r
+       "..\..\Src\MainFrame.h"\\r
+       "..\..\Src\MemoDetailsView.h"\\r
+       "..\..\Src\MemoManager.h"\\r
+       "..\..\Src\MemoSelectView.h"\\r
+       "..\..\Src\Message.h"\\r
+       "..\..\Src\MsgRes\MsgDef.h"\\r
+       "..\..\Src\PasswordManager.h"\\r
+       "..\..\Src\PlatformLayer.h"\\r
+       "..\..\Src\PocketPCPlatform.h"\\r
+       "..\..\Src\Property.h"\\r
+       "..\..\Src\PsPCPlatform.h"\\r
+       "..\..\Src\Tombo.h"\\r
+       "..\..\Src\TomboLib\File.h"\\r
+       "..\..\Src\TomboLib\Logger.h"\\r
+       "..\..\Src\TomboLib\Uniconv.h"\\r
+       "..\..\Src\TomboLib\VarBuffer.h"\\r
+       "..\..\Src\Win32Platform.h"\\r
+       \r
+NODEP_CPP_MAIN_=\\r
+       ".\ipapi.h"\\r
+       ".\ygshell.h"\\r
+       \r
+\r
+!ELSEIF  "$(CFG)" == "Tombo - Win32 (WCE ARM) ReleaseVGA"\r
+\r
+DEP_CPP_MAIN_=\\r
+       "..\..\Src\HPCPlatform.h"\\r
+       "..\..\Src\LagendaPlatform.h"\\r
+       "..\..\Src\MainFrame.h"\\r
+       "..\..\Src\MemoDetailsView.h"\\r
+       "..\..\Src\MemoManager.h"\\r
+       "..\..\Src\MemoSelectView.h"\\r
+       "..\..\Src\Message.h"\\r
+       "..\..\Src\MsgRes\MsgDef.h"\\r
+       "..\..\Src\PasswordManager.h"\\r
+       "..\..\Src\PlatformLayer.h"\\r
+       "..\..\Src\PocketPCPlatform.h"\\r
+       "..\..\Src\Property.h"\\r
+       "..\..\Src\PsPCPlatform.h"\\r
+       "..\..\Src\Tombo.h"\\r
+       "..\..\Src\TomboLib\File.h"\\r
+       "..\..\Src\TomboLib\Logger.h"\\r
+       "..\..\Src\TomboLib\Uniconv.h"\\r
+       "..\..\Src\TomboLib\VarBuffer.h"\\r
+       "..\..\Src\Win32Platform.h"\\r
+       {$(INCLUDE)}"aygshell.h"\\r
+       {$(INCLUDE)}"sipapi.h"\\r
+       \r
+\r
+!ENDIF \r
+\r
+# End Source File\r
+# Begin Source File\r
+\r
+SOURCE=..\..\Src\MainFrame.cpp\r
+\r
+!IF  "$(CFG)" == "Tombo - Win32 (WCE MIPS) Release"\r
+\r
+DEP_CPP_MAINF=\\r
+       "..\..\Src\AboutDialog.h"\\r
+       "..\..\Src\BookMark.h"\\r
+       "..\..\Src\BookMarkDlg.h"\\r
+       "..\..\Src\DetailsViewDlg.h"\\r
+       "..\..\Src\FilterCtlDlg.h"\\r
+       "..\..\Src\GrepDialog.h"\\r
+       "..\..\Src\HPCPlatform.h"\\r
+       "..\..\Src\LagendaPlatform.h"\\r
+       "..\..\Src\MainFrame.h"\\r
+       "..\..\Src\MemoDetailsView.h"\\r
+       "..\..\Src\MemoManager.h"\\r
+       "..\..\Src\MemoSelectView.h"\\r
+       "..\..\Src\Message.h"\\r
+       "..\..\Src\MsgRes\MsgDef.h"\\r
+       "..\..\Src\PasswordManager.h"\\r
+       "..\..\Src\PlatformLayer.h"\\r
+       "..\..\Src\PocketPCPlatform.h"\\r
+       "..\..\Src\Property.h"\\r
+       "..\..\Src\PsPCPlatform.h"\\r
+       "..\..\Src\Repository.h"\\r
+       "..\..\Src\SearchDlg.h"\\r
+       "..\..\Src\SearchEngine.h"\\r
+       "..\..\Src\SearchTree.h"\\r
+       "..\..\Src\StatusBar.h"\\r
+       "..\..\Src\Tombo.h"\\r
+       "..\..\Src\TomboLib\DialogTemplate.h"\\r
+       "..\..\Src\TomboLib\File.h"\\r
+       "..\..\Src\TomboLib\Logger.h"\\r
+       "..\..\Src\TomboLib\SipControl.h"\\r
+       "..\..\Src\TomboLib\TString.h"\\r
+       "..\..\Src\TomboLib\Uniconv.h"\\r
+       "..\..\Src\TomboLib\VarBuffer.h"\\r
+       "..\..\Src\TomboURI.h"\\r
+       "..\..\Src\TreeViewItem.h"\\r
+       "..\..\Src\VFManager.h"\\r
+       "..\..\Src\Win32Platform.h"\\r
+       "..\..\Src\YAEdit\Region.h"\\r
+       "..\..\Src\YAEdit\YAEdit.h"\\r
+       "..\..\Src\YAEditor.h"\\r
+       \r
+NODEP_CPP_MAINF=\\r
+       ".\ipapi.h"\\r
+       ".\ygshell.h"\\r
+       \r
+\r
+!ELSEIF  "$(CFG)" == "Tombo - Win32 (WCE SH4) Release"\r
+\r
+DEP_CPP_MAINF=\\r
+       "..\..\Src\MainFrame.h"\\r
+       "..\..\Src\MemoDetailsView.h"\\r
+       "..\..\Src\MemoNote.h"\\r
+       "..\..\Src\MemoSelectView.h"\\r
+       "..\..\Src\PasswordManager.h"\\r
+       "..\..\Src\Tombo.h"\\r
+       \r
+\r
+!ELSEIF  "$(CFG)" == "Tombo - Win32 (WCE SH4) Debug"\r
+\r
+DEP_CPP_MAINF=\\r
+       "..\..\Src\MainFrame.h"\\r
+       "..\..\Src\MemoDetailsView.h"\\r
+       "..\..\Src\MemoNote.h"\\r
+       "..\..\Src\MemoSelectView.h"\\r
+       "..\..\Src\PasswordManager.h"\\r
+       "..\..\Src\Tombo.h"\\r
+       \r
+\r
+!ELSEIF  "$(CFG)" == "Tombo - Win32 (WCE SH3) Release"\r
+\r
+DEP_CPP_MAINF=\\r
+       "..\..\Src\AboutDialog.h"\\r
+       "..\..\Src\BookMark.h"\\r
+       "..\..\Src\BookMarkDlg.h"\\r
+       "..\..\Src\DetailsViewDlg.h"\\r
+       "..\..\Src\FilterCtlDlg.h"\\r
+       "..\..\Src\GrepDialog.h"\\r
+       "..\..\Src\HPCPlatform.h"\\r
+       "..\..\Src\LagendaPlatform.h"\\r
+       "..\..\Src\MainFrame.h"\\r
+       "..\..\Src\MemoDetailsView.h"\\r
+       "..\..\Src\MemoManager.h"\\r
+       "..\..\Src\MemoSelectView.h"\\r
+       "..\..\Src\Message.h"\\r
+       "..\..\Src\MsgRes\MsgDef.h"\\r
+       "..\..\Src\PasswordManager.h"\\r
+       "..\..\Src\PlatformLayer.h"\\r
+       "..\..\Src\PocketPCPlatform.h"\\r
+       "..\..\Src\Property.h"\\r
+       "..\..\Src\PsPCPlatform.h"\\r
+       "..\..\Src\Repository.h"\\r
+       "..\..\Src\SearchDlg.h"\\r
+       "..\..\Src\SearchEngine.h"\\r
+       "..\..\Src\SearchTree.h"\\r
+       "..\..\Src\StatusBar.h"\\r
+       "..\..\Src\Tombo.h"\\r
+       "..\..\Src\TomboLib\DialogTemplate.h"\\r
+       "..\..\Src\TomboLib\File.h"\\r
+       "..\..\Src\TomboLib\Logger.h"\\r
+       "..\..\Src\TomboLib\SipControl.h"\\r
+       "..\..\Src\TomboLib\TString.h"\\r
+       "..\..\Src\TomboLib\Uniconv.h"\\r
+       "..\..\Src\TomboLib\VarBuffer.h"\\r
+       "..\..\Src\TomboURI.h"\\r
+       "..\..\Src\TreeViewItem.h"\\r
+       "..\..\Src\VFManager.h"\\r
+       "..\..\Src\Win32Platform.h"\\r
+       "..\..\Src\YAEdit\Region.h"\\r
+       "..\..\Src\YAEdit\YAEdit.h"\\r
+       "..\..\Src\YAEditor.h"\\r
+       \r
+NODEP_CPP_MAINF=\\r
+       ".\ipapi.h"\\r
+       ".\ygshell.h"\\r
+       \r
+\r
+!ELSEIF  "$(CFG)" == "Tombo - Win32 (WCE ARM) Release"\r
+\r
+DEP_CPP_MAINF=\\r
+       "..\..\Src\AboutDialog.h"\\r
+       "..\..\Src\BookMark.h"\\r
+       "..\..\Src\BookMarkDlg.h"\\r
+       "..\..\Src\DetailsViewDlg.h"\\r
+       "..\..\Src\FilterCtlDlg.h"\\r
+       "..\..\Src\GrepDialog.h"\\r
+       "..\..\Src\HPCPlatform.h"\\r
+       "..\..\Src\LagendaPlatform.h"\\r
+       "..\..\Src\MainFrame.h"\\r
+       "..\..\Src\MemoDetailsView.h"\\r
+       "..\..\Src\MemoManager.h"\\r
+       "..\..\Src\MemoSelectView.h"\\r
+       "..\..\Src\Message.h"\\r
+       "..\..\Src\MsgRes\MsgDef.h"\\r
+       "..\..\Src\PasswordManager.h"\\r
+       "..\..\Src\PlatformLayer.h"\\r
+       "..\..\Src\PocketPCPlatform.h"\\r
+       "..\..\Src\Property.h"\\r
+       "..\..\Src\PsPCPlatform.h"\\r
+       "..\..\Src\Repository.h"\\r
+       "..\..\Src\SearchDlg.h"\\r
+       "..\..\Src\SearchEngine.h"\\r
+       "..\..\Src\SearchTree.h"\\r
+       "..\..\Src\StatusBar.h"\\r
+       "..\..\Src\Tombo.h"\\r
+       "..\..\Src\TomboLib\DialogTemplate.h"\\r
+       "..\..\Src\TomboLib\File.h"\\r
+       "..\..\Src\TomboLib\Logger.h"\\r
+       "..\..\Src\TomboLib\SipControl.h"\\r
+       "..\..\Src\TomboLib\TString.h"\\r
+       "..\..\Src\TomboLib\Uniconv.h"\\r
+       "..\..\Src\TomboLib\VarBuffer.h"\\r
+       "..\..\Src\TomboURI.h"\\r
+       "..\..\Src\TreeViewItem.h"\\r
+       "..\..\Src\VFManager.h"\\r
+       "..\..\Src\Win32Platform.h"\\r
+       "..\..\Src\YAEdit\Region.h"\\r
+       "..\..\Src\YAEdit\YAEdit.h"\\r
+       "..\..\Src\YAEditor.h"\\r
+       \r
+NODEP_CPP_MAINF=\\r
+       ".\ipapi.h"\\r
+       ".\ygshell.h"\\r
+       \r
+\r
+!ELSEIF  "$(CFG)" == "Tombo - Win32 (WCE ARM) ReleaseVGA"\r
+\r
+DEP_CPP_MAINF=\\r
+       "..\..\Src\AboutDialog.h"\\r
+       "..\..\Src\BookMark.h"\\r
+       "..\..\Src\BookMarkDlg.h"\\r
+       "..\..\Src\DetailsViewDlg.h"\\r
+       "..\..\Src\FilterCtlDlg.h"\\r
+       "..\..\Src\GrepDialog.h"\\r
+       "..\..\Src\HPCPlatform.h"\\r
+       "..\..\Src\LagendaPlatform.h"\\r
+       "..\..\Src\MainFrame.h"\\r
+       "..\..\Src\MemoDetailsView.h"\\r
+       "..\..\Src\MemoManager.h"\\r
+       "..\..\Src\MemoSelectView.h"\\r
+       "..\..\Src\Message.h"\\r
+       "..\..\Src\MsgRes\MsgDef.h"\\r
+       "..\..\Src\PasswordManager.h"\\r
+       "..\..\Src\PlatformLayer.h"\\r
+       "..\..\Src\PocketPCPlatform.h"\\r
+       "..\..\Src\Property.h"\\r
+       "..\..\Src\PsPCPlatform.h"\\r
+       "..\..\Src\Repository.h"\\r
+       "..\..\Src\SearchDlg.h"\\r
+       "..\..\Src\SearchEngine.h"\\r
+       "..\..\Src\SearchTree.h"\\r
+       "..\..\Src\StatusBar.h"\\r
+       "..\..\Src\Tombo.h"\\r
+       "..\..\Src\TomboLib\DialogTemplate.h"\\r
+       "..\..\Src\TomboLib\File.h"\\r
+       "..\..\Src\TomboLib\Logger.h"\\r
+       "..\..\Src\TomboLib\SipControl.h"\\r
+       "..\..\Src\TomboLib\TString.h"\\r
+       "..\..\Src\TomboLib\Uniconv.h"\\r
+       "..\..\Src\TomboLib\VarBuffer.h"\\r
+       "..\..\Src\TomboURI.h"\\r
+       "..\..\Src\TreeViewItem.h"\\r
+       "..\..\Src\VFManager.h"\\r
+       "..\..\Src\Win32Platform.h"\\r
+       "..\..\Src\YAEdit\Region.h"\\r
+       "..\..\Src\YAEdit\YAEdit.h"\\r
+       "..\..\Src\YAEditor.h"\\r
+       {$(INCLUDE)}"aygshell.h"\\r
+       {$(INCLUDE)}"sipapi.h"\\r
+       \r
+\r
+!ENDIF \r
+\r
+# End Source File\r
+# Begin Source File\r
+\r
+SOURCE=..\..\Src\gnupg\md5.c\r
+\r
+!IF  "$(CFG)" == "Tombo - Win32 (WCE MIPS) Release"\r
+\r
+DEP_CPP_MD5_C=\\r
+       "..\..\Src\gnupg\bithelp.h"\\r
+       "..\..\Src\regex\config.h"\\r
+       "..\..\Src\regex\ctypeutil.h"\\r
+       \r
+NODEP_CPP_MD5_C=\\r
+       "..\..\Src\gnupg\dynload.h"\\r
+       \r
+\r
+!ELSEIF  "$(CFG)" == "Tombo - Win32 (WCE SH4) Release"\r
+\r
+DEP_CPP_MD5_C=\\r
+       "..\..\Src\gnupg\bithelp.h"\\r
+       \r
+NODEP_CPP_MD5_C=\\r
+       "..\..\Src\gnupg\dynload.h"\\r
+       \r
+\r
+!ELSEIF  "$(CFG)" == "Tombo - Win32 (WCE SH4) Debug"\r
+\r
+DEP_CPP_MD5_C=\\r
+       "..\..\Src\gnupg\bithelp.h"\\r
+       \r
+NODEP_CPP_MD5_C=\\r
+       "..\..\Src\gnupg\dynload.h"\\r
+       \r
+\r
+!ELSEIF  "$(CFG)" == "Tombo - Win32 (WCE SH3) Release"\r
+\r
+DEP_CPP_MD5_C=\\r
+       "..\..\Src\gnupg\bithelp.h"\\r
+       "..\..\Src\regex\config.h"\\r
+       "..\..\Src\regex\ctypeutil.h"\\r
+       \r
+NODEP_CPP_MD5_C=\\r
+       "..\..\Src\gnupg\dynload.h"\\r
+       \r
+\r
+!ELSEIF  "$(CFG)" == "Tombo - Win32 (WCE ARM) Release"\r
+\r
+DEP_CPP_MD5_C=\\r
+       "..\..\Src\gnupg\bithelp.h"\\r
+       \r
+NODEP_CPP_MD5_C=\\r
+       "..\..\Src\gnupg\dynload.h"\\r
+       \r
+\r
+!ELSEIF  "$(CFG)" == "Tombo - Win32 (WCE ARM) ReleaseVGA"\r
+\r
+DEP_CPP_MD5_C=\\r
+       "..\..\Src\gnupg\bithelp.h"\\r
+       \r
+NODEP_CPP_MD5_C=\\r
+       "..\..\Src\gnupg\dynload.h"\\r
+       \r
+\r
+!ENDIF \r
+\r
+# End Source File\r
+# Begin Source File\r
+\r
+SOURCE=..\..\Src\YAEdit\MemManager.cpp\r
+\r
+!IF  "$(CFG)" == "Tombo - Win32 (WCE MIPS) Release"\r
+\r
+DEP_CPP_MEMMA=\\r
+       "..\..\Src\YAEdit\MemManager.h"\\r
+       \r
+\r
+!ELSEIF  "$(CFG)" == "Tombo - Win32 (WCE SH4) Release"\r
+\r
+DEP_CPP_MEMMA=\\r
+       "..\..\Src\YAEdit\MemManager.h"\\r
+       \r
+\r
+!ELSEIF  "$(CFG)" == "Tombo - Win32 (WCE SH4) Debug"\r
+\r
+DEP_CPP_MEMMA=\\r
+       "..\..\Src\YAEdit\MemManager.h"\\r
+       \r
+\r
+!ELSEIF  "$(CFG)" == "Tombo - Win32 (WCE SH3) Release"\r
+\r
+DEP_CPP_MEMMA=\\r
+       "..\..\Src\YAEdit\MemManager.h"\\r
+       \r
+\r
+!ELSEIF  "$(CFG)" == "Tombo - Win32 (WCE ARM) Release"\r
+\r
+DEP_CPP_MEMMA=\\r
+       "..\..\Src\YAEdit\MemManager.h"\\r
+       \r
+\r
+!ELSEIF  "$(CFG)" == "Tombo - Win32 (WCE ARM) ReleaseVGA"\r
+\r
+DEP_CPP_MEMMA=\\r
+       "..\..\Src\YAEdit\MemManager.h"\\r
+       \r
+\r
+!ENDIF \r
+\r
+# End Source File\r
+# Begin Source File\r
+\r
+SOURCE=..\..\Src\MemoDetailsView.cpp\r
+\r
+!IF  "$(CFG)" == "Tombo - Win32 (WCE MIPS) Release"\r
+\r
+DEP_CPP_MEMOD=\\r
+       "..\..\Src\HPCPlatform.h"\\r
+       "..\..\Src\LagendaPlatform.h"\\r
+       "..\..\Src\MainFrame.h"\\r
+       "..\..\Src\MemoDetailsView.h"\\r
+       "..\..\Src\MemoManager.h"\\r
+       "..\..\Src\MemoSelectView.h"\\r
+       "..\..\Src\Message.h"\\r
+       "..\..\Src\MsgRes\MsgDef.h"\\r
+       "..\..\Src\PasswordManager.h"\\r
+       "..\..\Src\PlatformLayer.h"\\r
+       "..\..\Src\PocketPCPlatform.h"\\r
+       "..\..\Src\Property.h"\\r
+       "..\..\Src\PsPCPlatform.h"\\r
+       "..\..\Src\Repository.h"\\r
+       "..\..\Src\SearchEngine.h"\\r
+       "..\..\Src\Tombo.h"\\r
+       "..\..\Src\TomboLib\AutoPtr.h"\\r
+       "..\..\Src\TomboLib\File.h"\\r
+       "..\..\Src\TomboLib\Logger.h"\\r
+       "..\..\Src\TomboLib\TString.h"\\r
+       "..\..\Src\TomboLib\Uniconv.h"\\r
+       "..\..\Src\TomboLib\VarBuffer.h"\\r
+       "..\..\Src\TomboURI.h"\\r
+       "..\..\Src\Win32Platform.h"\\r
+       \r
+NODEP_CPP_MEMOD=\\r
+       ".\ipapi.h"\\r
+       ".\ygshell.h"\\r
+       \r
+\r
+!ELSEIF  "$(CFG)" == "Tombo - Win32 (WCE SH4) Release"\r
+\r
+DEP_CPP_MEMOD=\\r
+       "..\..\Src\MemoDetailsView.h"\\r
+       "..\..\Src\MemoNote.h"\\r
+       "..\..\Src\PasswordManager.h"\\r
+       \r
+\r
+!ELSEIF  "$(CFG)" == "Tombo - Win32 (WCE SH4) Debug"\r
+\r
+DEP_CPP_MEMOD=\\r
+       "..\..\Src\MemoDetailsView.h"\\r
+       "..\..\Src\MemoNote.h"\\r
+       "..\..\Src\PasswordManager.h"\\r
+       \r
+\r
+!ELSEIF  "$(CFG)" == "Tombo - Win32 (WCE SH3) Release"\r
+\r
+DEP_CPP_MEMOD=\\r
+       "..\..\Src\HPCPlatform.h"\\r
+       "..\..\Src\LagendaPlatform.h"\\r
+       "..\..\Src\MainFrame.h"\\r
+       "..\..\Src\MemoDetailsView.h"\\r
+       "..\..\Src\MemoManager.h"\\r
+       "..\..\Src\MemoSelectView.h"\\r
+       "..\..\Src\Message.h"\\r
+       "..\..\Src\MsgRes\MsgDef.h"\\r
+       "..\..\Src\PasswordManager.h"\\r
+       "..\..\Src\PlatformLayer.h"\\r
+       "..\..\Src\PocketPCPlatform.h"\\r
+       "..\..\Src\Property.h"\\r
+       "..\..\Src\PsPCPlatform.h"\\r
+       "..\..\Src\Repository.h"\\r
+       "..\..\Src\SearchEngine.h"\\r
+       "..\..\Src\Tombo.h"\\r
+       "..\..\Src\TomboLib\AutoPtr.h"\\r
+       "..\..\Src\TomboLib\File.h"\\r
+       "..\..\Src\TomboLib\Logger.h"\\r
+       "..\..\Src\TomboLib\TString.h"\\r
+       "..\..\Src\TomboLib\Uniconv.h"\\r
+       "..\..\Src\TomboLib\VarBuffer.h"\\r
+       "..\..\Src\TomboURI.h"\\r
+       "..\..\Src\Win32Platform.h"\\r
+       \r
+NODEP_CPP_MEMOD=\\r
+       ".\ipapi.h"\\r
+       ".\ygshell.h"\\r
+       \r
+\r
+!ELSEIF  "$(CFG)" == "Tombo - Win32 (WCE ARM) Release"\r
+\r
+DEP_CPP_MEMOD=\\r
+       "..\..\Src\HPCPlatform.h"\\r
+       "..\..\Src\LagendaPlatform.h"\\r
+       "..\..\Src\MainFrame.h"\\r
+       "..\..\Src\MemoDetailsView.h"\\r
+       "..\..\Src\MemoManager.h"\\r
+       "..\..\Src\MemoSelectView.h"\\r
+       "..\..\Src\Message.h"\\r
+       "..\..\Src\MsgRes\MsgDef.h"\\r
+       "..\..\Src\PasswordManager.h"\\r
+       "..\..\Src\PlatformLayer.h"\\r
+       "..\..\Src\PocketPCPlatform.h"\\r
+       "..\..\Src\Property.h"\\r
+       "..\..\Src\PsPCPlatform.h"\\r
+       "..\..\Src\Repository.h"\\r
+       "..\..\Src\SearchEngine.h"\\r
+       "..\..\Src\Tombo.h"\\r
+       "..\..\Src\TomboLib\AutoPtr.h"\\r
+       "..\..\Src\TomboLib\File.h"\\r
+       "..\..\Src\TomboLib\Logger.h"\\r
+       "..\..\Src\TomboLib\TString.h"\\r
+       "..\..\Src\TomboLib\Uniconv.h"\\r
+       "..\..\Src\TomboLib\VarBuffer.h"\\r
+       "..\..\Src\TomboURI.h"\\r
+       "..\..\Src\Win32Platform.h"\\r
+       \r
+NODEP_CPP_MEMOD=\\r
+       ".\ipapi.h"\\r
+       ".\ygshell.h"\\r
+       \r
+\r
+!ELSEIF  "$(CFG)" == "Tombo - Win32 (WCE ARM) ReleaseVGA"\r
+\r
+DEP_CPP_MEMOD=\\r
+       "..\..\Src\HPCPlatform.h"\\r
+       "..\..\Src\LagendaPlatform.h"\\r
+       "..\..\Src\MainFrame.h"\\r
+       "..\..\Src\MemoDetailsView.h"\\r
+       "..\..\Src\MemoManager.h"\\r
+       "..\..\Src\MemoSelectView.h"\\r
+       "..\..\Src\Message.h"\\r
+       "..\..\Src\MsgRes\MsgDef.h"\\r
+       "..\..\Src\PasswordManager.h"\\r
+       "..\..\Src\PlatformLayer.h"\\r
+       "..\..\Src\PocketPCPlatform.h"\\r
+       "..\..\Src\Property.h"\\r
+       "..\..\Src\PsPCPlatform.h"\\r
+       "..\..\Src\Repository.h"\\r
+       "..\..\Src\SearchEngine.h"\\r
+       "..\..\Src\Tombo.h"\\r
+       "..\..\Src\TomboLib\AutoPtr.h"\\r
+       "..\..\Src\TomboLib\File.h"\\r
+       "..\..\Src\TomboLib\Logger.h"\\r
+       "..\..\Src\TomboLib\TString.h"\\r
+       "..\..\Src\TomboLib\Uniconv.h"\\r
+       "..\..\Src\TomboLib\VarBuffer.h"\\r
+       "..\..\Src\TomboURI.h"\\r
+       "..\..\Src\Win32Platform.h"\\r
+       {$(INCLUDE)}"aygshell.h"\\r
+       {$(INCLUDE)}"sipapi.h"\\r
+       \r
+\r
+!ENDIF \r
+\r
+# End Source File\r
+# Begin Source File\r
+\r
+SOURCE=..\..\Src\MemoFolder.cpp\r
+\r
+!IF  "$(CFG)" == "Tombo - Win32 (WCE MIPS) Release"\r
+\r
+DEP_CPP_MEMOF=\\r
+       "..\..\Src\MemoFolder.h"\\r
+       "..\..\Src\MemoNote.h"\\r
+       "..\..\Src\Message.h"\\r
+       "..\..\Src\MsgRes\MsgDef.h"\\r
+       "..\..\Src\PasswordManager.h"\\r
+       "..\..\Src\Repository.h"\\r
+       "..\..\Src\Tombo.h"\\r
+       "..\..\Src\TomboLib\DirectoryScanner.h"\\r
+       "..\..\Src\TomboLib\File.h"\\r
+       "..\..\Src\TomboLib\Logger.h"\\r
+       "..\..\Src\TomboLib\TString.h"\\r
+       "..\..\Src\TomboLib\Uniconv.h"\\r
+       "..\..\Src\TomboURI.h"\\r
+       \r
+\r
+!ELSEIF  "$(CFG)" == "Tombo - Win32 (WCE SH4) Release"\r
+\r
+DEP_CPP_MEMOF=\\r
+       "..\..\Src\MemoFolder.h"\\r
+       "..\..\Src\Tombo.h"\\r
+       \r
+NODEP_CPP_MEMOF=\\r
+       "..\..\Src\DirectoryScanner.h"\\r
+       "..\..\Src\File.h"\\r
+       "..\..\Src\Logger.h"\\r
+       "..\..\Src\TString.h"\\r
+       "..\..\Src\Uniconv.h"\\r
+       \r
+\r
+!ELSEIF  "$(CFG)" == "Tombo - Win32 (WCE SH4) Debug"\r
+\r
+DEP_CPP_MEMOF=\\r
+       "..\..\Src\MemoFolder.h"\\r
+       "..\..\Src\Tombo.h"\\r
+       \r
+NODEP_CPP_MEMOF=\\r
+       "..\..\Src\DirectoryScanner.h"\\r
+       "..\..\Src\File.h"\\r
+       "..\..\Src\Logger.h"\\r
+       "..\..\Src\TString.h"\\r
+       "..\..\Src\Uniconv.h"\\r
+       \r
+\r
+!ELSEIF  "$(CFG)" == "Tombo - Win32 (WCE SH3) Release"\r
+\r
+DEP_CPP_MEMOF=\\r
+       "..\..\Src\MemoFolder.h"\\r
+       "..\..\Src\MemoNote.h"\\r
+       "..\..\Src\Message.h"\\r
+       "..\..\Src\MsgRes\MsgDef.h"\\r
+       "..\..\Src\PasswordManager.h"\\r
+       "..\..\Src\Repository.h"\\r
+       "..\..\Src\Tombo.h"\\r
+       "..\..\Src\TomboLib\DirectoryScanner.h"\\r
+       "..\..\Src\TomboLib\File.h"\\r
+       "..\..\Src\TomboLib\Logger.h"\\r
+       "..\..\Src\TomboLib\TString.h"\\r
+       "..\..\Src\TomboLib\Uniconv.h"\\r
+       "..\..\Src\TomboURI.h"\\r
+       \r
+\r
+!ELSEIF  "$(CFG)" == "Tombo - Win32 (WCE ARM) Release"\r
+\r
+DEP_CPP_MEMOF=\\r
+       "..\..\Src\MemoFolder.h"\\r
+       "..\..\Src\MemoNote.h"\\r
+       "..\..\Src\Message.h"\\r
+       "..\..\Src\MsgRes\MsgDef.h"\\r
+       "..\..\Src\PasswordManager.h"\\r
+       "..\..\Src\Repository.h"\\r
+       "..\..\Src\Tombo.h"\\r
+       "..\..\Src\TomboLib\DirectoryScanner.h"\\r
+       "..\..\Src\TomboLib\File.h"\\r
+       "..\..\Src\TomboLib\Logger.h"\\r
+       "..\..\Src\TomboLib\TString.h"\\r
+       "..\..\Src\TomboLib\Uniconv.h"\\r
+       "..\..\Src\TomboURI.h"\\r
+       \r
+\r
+!ELSEIF  "$(CFG)" == "Tombo - Win32 (WCE ARM) ReleaseVGA"\r
+\r
+DEP_CPP_MEMOF=\\r
+       "..\..\Src\MemoFolder.h"\\r
+       "..\..\Src\MemoNote.h"\\r
+       "..\..\Src\Message.h"\\r
+       "..\..\Src\MsgRes\MsgDef.h"\\r
+       "..\..\Src\PasswordManager.h"\\r
+       "..\..\Src\Repository.h"\\r
+       "..\..\Src\Tombo.h"\\r
+       "..\..\Src\TomboLib\DirectoryScanner.h"\\r
+       "..\..\Src\TomboLib\File.h"\\r
+       "..\..\Src\TomboLib\Logger.h"\\r
+       "..\..\Src\TomboLib\TString.h"\\r
+       "..\..\Src\TomboLib\Uniconv.h"\\r
+       "..\..\Src\TomboURI.h"\\r
+       \r
+\r
+!ENDIF \r
+\r
+# End Source File\r
+# Begin Source File\r
+\r
+SOURCE=..\..\Src\MemoInfo.cpp\r
+\r
+!IF  "$(CFG)" == "Tombo - Win32 (WCE MIPS) Release"\r
+\r
+DEP_CPP_MEMOI=\\r
+       "..\..\Src\MemoInfo.h"\\r
+       "..\..\Src\Tombo.h"\\r
+       "..\..\Src\TomboLib\File.h"\\r
+       "..\..\Src\TomboLib\Logger.h"\\r
+       "..\..\Src\TomboLib\TString.h"\\r
+       \r
+\r
+!ELSEIF  "$(CFG)" == "Tombo - Win32 (WCE SH4) Release"\r
+\r
+DEP_CPP_MEMOI=\\r
+       "..\..\Src\MemoInfo.h"\\r
+       "..\..\Src\Property.h"\\r
+       "..\..\Src\Tombo.h"\\r
+       \r
+NODEP_CPP_MEMOI=\\r
+       "..\..\Src\File.h"\\r
+       "..\..\Src\TString.h"\\r
+       \r
+\r
+!ELSEIF  "$(CFG)" == "Tombo - Win32 (WCE SH4) Debug"\r
+\r
+DEP_CPP_MEMOI=\\r
+       "..\..\Src\MemoInfo.h"\\r
+       "..\..\Src\Property.h"\\r
+       "..\..\Src\Tombo.h"\\r
+       \r
+NODEP_CPP_MEMOI=\\r
+       "..\..\Src\File.h"\\r
+       "..\..\Src\TString.h"\\r
+       \r
+\r
+!ELSEIF  "$(CFG)" == "Tombo - Win32 (WCE SH3) Release"\r
+\r
+DEP_CPP_MEMOI=\\r
+       "..\..\Src\MemoInfo.h"\\r
+       "..\..\Src\Tombo.h"\\r
+       "..\..\Src\TomboLib\File.h"\\r
+       "..\..\Src\TomboLib\Logger.h"\\r
+       "..\..\Src\TomboLib\TString.h"\\r
+       \r
+\r
+!ELSEIF  "$(CFG)" == "Tombo - Win32 (WCE ARM) Release"\r
+\r
+DEP_CPP_MEMOI=\\r
+       "..\..\Src\MemoInfo.h"\\r
+       "..\..\Src\Tombo.h"\\r
+       "..\..\Src\TomboLib\File.h"\\r
+       "..\..\Src\TomboLib\Logger.h"\\r
+       "..\..\Src\TomboLib\TString.h"\\r
+       \r
+\r
+!ELSEIF  "$(CFG)" == "Tombo - Win32 (WCE ARM) ReleaseVGA"\r
+\r
+DEP_CPP_MEMOI=\\r
+       "..\..\Src\MemoInfo.h"\\r
+       "..\..\Src\Tombo.h"\\r
+       "..\..\Src\TomboLib\File.h"\\r
+       "..\..\Src\TomboLib\Logger.h"\\r
+       "..\..\Src\TomboLib\TString.h"\\r
+       \r
+\r
+!ENDIF \r
+\r
+# End Source File\r
+# Begin Source File\r
+\r
+SOURCE=..\..\Src\MemoManager.cpp\r
+\r
+!IF  "$(CFG)" == "Tombo - Win32 (WCE MIPS) Release"\r
+\r
+DEP_CPP_MEMOM=\\r
+       "..\..\Src\HPCPlatform.h"\\r
+       "..\..\Src\LagendaPlatform.h"\\r
+       "..\..\Src\MainFrame.h"\\r
+       "..\..\Src\MemoDetailsView.h"\\r
+       "..\..\Src\MemoManager.h"\\r
+       "..\..\Src\MemoSelectView.h"\\r
+       "..\..\Src\Message.h"\\r
+       "..\..\Src\MsgRes\MsgDef.h"\\r
+       "..\..\Src\NewFolderDialog.h"\\r
+       "..\..\Src\PasswordManager.h"\\r
+       "..\..\Src\PlatformLayer.h"\\r
+       "..\..\Src\PocketPCPlatform.h"\\r
+       "..\..\Src\Property.h"\\r
+       "..\..\Src\PsPCPlatform.h"\\r
+       "..\..\Src\Repository.h"\\r
+       "..\..\Src\SearchEngine.h"\\r
+       "..\..\Src\Tombo.h"\\r
+       "..\..\Src\TomboLib\AutoPtr.h"\\r
+       "..\..\Src\TomboLib\File.h"\\r
+       "..\..\Src\TomboLib\Logger.h"\\r
+       "..\..\Src\TomboLib\TString.h"\\r
+       "..\..\Src\TomboLib\Uniconv.h"\\r
+       "..\..\Src\TomboLib\VarBuffer.h"\\r
+       "..\..\Src\TomboURI.h"\\r
+       "..\..\Src\TreeViewItem.h"\\r
+       "..\..\Src\Win32Platform.h"\\r
+       \r
+\r
+!ELSEIF  "$(CFG)" == "Tombo - Win32 (WCE SH4) Release"\r
+\r
+DEP_CPP_MEMOM=\\r
+       "..\..\Src\MemoDetailsView.h"\\r
+       "..\..\Src\MemoManager.h"\\r
+       "..\..\Src\MemoNote.h"\\r
+       "..\..\Src\MemoSelectView.h"\\r
+       "..\..\Src\Tombo.h"\\r
+       \r
+NODEP_CPP_MEMOM=\\r
+       "..\..\Src\Uniconv.h"\\r
+       \r
+\r
+!ELSEIF  "$(CFG)" == "Tombo - Win32 (WCE SH4) Debug"\r
+\r
+DEP_CPP_MEMOM=\\r
+       "..\..\Src\MemoDetailsView.h"\\r
+       "..\..\Src\MemoManager.h"\\r
+       "..\..\Src\MemoNote.h"\\r
+       "..\..\Src\MemoSelectView.h"\\r
+       "..\..\Src\Tombo.h"\\r
+       \r
+NODEP_CPP_MEMOM=\\r
+       "..\..\Src\Uniconv.h"\\r
+       \r
+\r
+!ELSEIF  "$(CFG)" == "Tombo - Win32 (WCE SH3) Release"\r
+\r
+DEP_CPP_MEMOM=\\r
+       "..\..\Src\HPCPlatform.h"\\r
+       "..\..\Src\LagendaPlatform.h"\\r
+       "..\..\Src\MainFrame.h"\\r
+       "..\..\Src\MemoDetailsView.h"\\r
+       "..\..\Src\MemoManager.h"\\r
+       "..\..\Src\MemoSelectView.h"\\r
+       "..\..\Src\Message.h"\\r
+       "..\..\Src\MsgRes\MsgDef.h"\\r
+       "..\..\Src\NewFolderDialog.h"\\r
+       "..\..\Src\PasswordManager.h"\\r
+       "..\..\Src\PlatformLayer.h"\\r
+       "..\..\Src\PocketPCPlatform.h"\\r
+       "..\..\Src\Property.h"\\r
+       "..\..\Src\PsPCPlatform.h"\\r
+       "..\..\Src\Repository.h"\\r
+       "..\..\Src\SearchEngine.h"\\r
+       "..\..\Src\Tombo.h"\\r
+       "..\..\Src\TomboLib\AutoPtr.h"\\r
+       "..\..\Src\TomboLib\File.h"\\r
+       "..\..\Src\TomboLib\Logger.h"\\r
+       "..\..\Src\TomboLib\TString.h"\\r
+       "..\..\Src\TomboLib\Uniconv.h"\\r
+       "..\..\Src\TomboLib\VarBuffer.h"\\r
+       "..\..\Src\TomboURI.h"\\r
+       "..\..\Src\TreeViewItem.h"\\r
+       "..\..\Src\Win32Platform.h"\\r
+       \r
+\r
+!ELSEIF  "$(CFG)" == "Tombo - Win32 (WCE ARM) Release"\r
+\r
+DEP_CPP_MEMOM=\\r
+       "..\..\Src\HPCPlatform.h"\\r
+       "..\..\Src\LagendaPlatform.h"\\r
+       "..\..\Src\MainFrame.h"\\r
+       "..\..\Src\MemoDetailsView.h"\\r
+       "..\..\Src\MemoManager.h"\\r
+       "..\..\Src\MemoSelectView.h"\\r
+       "..\..\Src\Message.h"\\r
+       "..\..\Src\MsgRes\MsgDef.h"\\r
+       "..\..\Src\PasswordManager.h"\\r
+       "..\..\Src\PlatformLayer.h"\\r
+       "..\..\Src\PocketPCPlatform.h"\\r
+       "..\..\Src\Property.h"\\r
+       "..\..\Src\PsPCPlatform.h"\\r
+       "..\..\Src\Repository.h"\\r
+       "..\..\Src\SearchEngine.h"\\r
+       "..\..\Src\Tombo.h"\\r
+       "..\..\Src\TomboLib\File.h"\\r
+       "..\..\Src\TomboLib\Logger.h"\\r
+       "..\..\Src\TomboLib\TString.h"\\r
+       "..\..\Src\TomboLib\Uniconv.h"\\r
+       "..\..\Src\TomboLib\VarBuffer.h"\\r
+       "..\..\Src\TomboURI.h"\\r
+       "..\..\Src\TreeViewItem.h"\\r
+       "..\..\Src\Win32Platform.h"\\r
+       \r
+\r
+!ELSEIF  "$(CFG)" == "Tombo - Win32 (WCE ARM) ReleaseVGA"\r
+\r
+DEP_CPP_MEMOM=\\r
+       "..\..\Src\HPCPlatform.h"\\r
+       "..\..\Src\LagendaPlatform.h"\\r
+       "..\..\Src\MainFrame.h"\\r
+       "..\..\Src\MemoDetailsView.h"\\r
+       "..\..\Src\MemoManager.h"\\r
+       "..\..\Src\MemoSelectView.h"\\r
+       "..\..\Src\Message.h"\\r
+       "..\..\Src\MsgRes\MsgDef.h"\\r
+       "..\..\Src\PasswordManager.h"\\r
+       "..\..\Src\PlatformLayer.h"\\r
+       "..\..\Src\PocketPCPlatform.h"\\r
+       "..\..\Src\Property.h"\\r
+       "..\..\Src\PsPCPlatform.h"\\r
+       "..\..\Src\Repository.h"\\r
+       "..\..\Src\SearchEngine.h"\\r
+       "..\..\Src\Tombo.h"\\r
+       "..\..\Src\TomboLib\AutoPtr.h"\\r
+       "..\..\Src\TomboLib\File.h"\\r
+       "..\..\Src\TomboLib\Logger.h"\\r
+       "..\..\Src\TomboLib\TString.h"\\r
+       "..\..\Src\TomboLib\Uniconv.h"\\r
+       "..\..\Src\TomboLib\VarBuffer.h"\\r
+       "..\..\Src\TomboURI.h"\\r
+       "..\..\Src\TreeViewItem.h"\\r
+       "..\..\Src\Win32Platform.h"\\r
+       \r
+\r
+!ENDIF \r
+\r
+# End Source File\r
+# Begin Source File\r
+\r
+SOURCE=..\..\Src\MemoNote.cpp\r
+\r
+!IF  "$(CFG)" == "Tombo - Win32 (WCE MIPS) Release"\r
+\r
+DEP_CPP_MEMON=\\r
+       "..\..\Src\Crypt.h"\\r
+       "..\..\Src\CryptManager.h"\\r
+       "..\..\Src\MemoInfo.h"\\r
+       "..\..\Src\MemoManager.h"\\r
+       "..\..\Src\MemoNote.h"\\r
+       "..\..\Src\Message.h"\\r
+       "..\..\Src\MsgRes\MsgDef.h"\\r
+       "..\..\Src\PasswordManager.h"\\r
+       "..\..\Src\Property.h"\\r
+       "..\..\Src\Repository.h"\\r
+       "..\..\Src\Tombo.h"\\r
+       "..\..\Src\TomboLib\File.h"\\r
+       "..\..\Src\TomboLib\Logger.h"\\r
+       "..\..\Src\TomboLib\TString.h"\\r
+       "..\..\Src\TomboLib\Uniconv.h"\\r
+       "..\..\Src\TomboURI.h"\\r
+       \r
+\r
+!ELSEIF  "$(CFG)" == "Tombo - Win32 (WCE SH4) Release"\r
+\r
+DEP_CPP_MEMON=\\r
+       "..\..\Src\Crypt.h"\\r
+       "..\..\Src\CryptManager.h"\\r
+       "..\..\Src\MemoNote.h"\\r
+       "..\..\Src\PasswordManager.h"\\r
+       "..\..\Src\Tombo.h"\\r
+       \r
+NODEP_CPP_MEMON=\\r
+       "..\..\Src\File.h"\\r
+       "..\..\Src\Uniconv.h"\\r
+       \r
+\r
+!ELSEIF  "$(CFG)" == "Tombo - Win32 (WCE SH4) Debug"\r
+\r
+DEP_CPP_MEMON=\\r
+       "..\..\Src\Crypt.h"\\r
+       "..\..\Src\CryptManager.h"\\r
+       "..\..\Src\MemoNote.h"\\r
+       "..\..\Src\PasswordManager.h"\\r
+       "..\..\Src\Tombo.h"\\r
+       \r
+NODEP_CPP_MEMON=\\r
+       "..\..\Src\File.h"\\r
+       "..\..\Src\Uniconv.h"\\r
+       \r
+\r
+!ELSEIF  "$(CFG)" == "Tombo - Win32 (WCE SH3) Release"\r
+\r
+DEP_CPP_MEMON=\\r
+       "..\..\Src\Crypt.h"\\r
+       "..\..\Src\CryptManager.h"\\r
+       "..\..\Src\MemoInfo.h"\\r
+       "..\..\Src\MemoManager.h"\\r
+       "..\..\Src\MemoNote.h"\\r
+       "..\..\Src\Message.h"\\r
+       "..\..\Src\MsgRes\MsgDef.h"\\r
+       "..\..\Src\PasswordManager.h"\\r
+       "..\..\Src\Property.h"\\r
+       "..\..\Src\Repository.h"\\r
+       "..\..\Src\Tombo.h"\\r
+       "..\..\Src\TomboLib\File.h"\\r
+       "..\..\Src\TomboLib\Logger.h"\\r
+       "..\..\Src\TomboLib\TString.h"\\r
+       "..\..\Src\TomboLib\Uniconv.h"\\r
+       "..\..\Src\TomboURI.h"\\r
+       \r
+\r
+!ELSEIF  "$(CFG)" == "Tombo - Win32 (WCE ARM) Release"\r
+\r
+DEP_CPP_MEMON=\\r
+       "..\..\Src\Crypt.h"\\r
+       "..\..\Src\CryptManager.h"\\r
+       "..\..\Src\MemoInfo.h"\\r
+       "..\..\Src\MemoManager.h"\\r
+       "..\..\Src\MemoNote.h"\\r
+       "..\..\Src\Message.h"\\r
+       "..\..\Src\MsgRes\MsgDef.h"\\r
+       "..\..\Src\PasswordManager.h"\\r
+       "..\..\Src\Property.h"\\r
+       "..\..\Src\Repository.h"\\r
+       "..\..\Src\Tombo.h"\\r
+       "..\..\Src\TomboLib\File.h"\\r
+       "..\..\Src\TomboLib\Logger.h"\\r
+       "..\..\Src\TomboLib\TString.h"\\r
+       "..\..\Src\TomboLib\Uniconv.h"\\r
+       "..\..\Src\TomboURI.h"\\r
+       \r
+\r
+!ELSEIF  "$(CFG)" == "Tombo - Win32 (WCE ARM) ReleaseVGA"\r
+\r
+DEP_CPP_MEMON=\\r
+       "..\..\Src\Crypt.h"\\r
+       "..\..\Src\CryptManager.h"\\r
+       "..\..\Src\MemoInfo.h"\\r
+       "..\..\Src\MemoManager.h"\\r
+       "..\..\Src\MemoNote.h"\\r
+       "..\..\Src\Message.h"\\r
+       "..\..\Src\MsgRes\MsgDef.h"\\r
+       "..\..\Src\PasswordManager.h"\\r
+       "..\..\Src\Property.h"\\r
+       "..\..\Src\Repository.h"\\r
+       "..\..\Src\Tombo.h"\\r
+       "..\..\Src\TomboLib\AutoPtr.h"\\r
+       "..\..\Src\TomboLib\File.h"\\r
+       "..\..\Src\TomboLib\Logger.h"\\r
+       "..\..\Src\TomboLib\TString.h"\\r
+       "..\..\Src\TomboLib\Uniconv.h"\\r
+       "..\..\Src\TomboURI.h"\\r
+       \r
+\r
+!ENDIF \r
+\r
+# End Source File\r
+# Begin Source File\r
+\r
+SOURCE=..\..\Src\MemoSelectView.cpp\r
+\r
+!IF  "$(CFG)" == "Tombo - Win32 (WCE MIPS) Release"\r
+\r
+DEP_CPP_MEMOS=\\r
+       "..\..\Src\HPCPlatform.h"\\r
+       "..\..\Src\LagendaPlatform.h"\\r
+       "..\..\Src\MainFrame.h"\\r
+       "..\..\Src\MemoDetailsView.h"\\r
+       "..\..\Src\MemoManager.h"\\r
+       "..\..\Src\MemoSelectView.h"\\r
+       "..\..\Src\Message.h"\\r
+       "..\..\Src\MsgRes\MsgDef.h"\\r
+       "..\..\Src\PasswordManager.h"\\r
+       "..\..\Src\PlatformLayer.h"\\r
+       "..\..\Src\PocketPCPlatform.h"\\r
+       "..\..\Src\Property.h"\\r
+       "..\..\Src\PsPCPlatform.h"\\r
+       "..\..\Src\Repository.h"\\r
+       "..\..\Src\Tombo.h"\\r
+       "..\..\Src\TomboLib\AutoPtr.h"\\r
+       "..\..\Src\TomboLib\File.h"\\r
+       "..\..\Src\TomboLib\Logger.h"\\r
+       "..\..\Src\TomboLib\TString.h"\\r
+       "..\..\Src\TomboLib\Uniconv.h"\\r
+       "..\..\Src\TomboLib\VarBuffer.h"\\r
+       "..\..\Src\TomboURI.h"\\r
+       "..\..\Src\TreeViewItem.h"\\r
+       "..\..\Src\Win32Platform.h"\\r
+       \r
+NODEP_CPP_MEMOS=\\r
+       ".\ipapi.h"\\r
+       ".\ygshell.h"\\r
+       \r
+\r
+!ELSEIF  "$(CFG)" == "Tombo - Win32 (WCE SH4) Release"\r
+\r
+DEP_CPP_MEMOS=\\r
+       "..\..\Src\MemoNote.h"\\r
+       "..\..\Src\MemoSelectView.h"\\r
+       "..\..\Src\Tombo.h"\\r
+       \r
+\r
+!ELSEIF  "$(CFG)" == "Tombo - Win32 (WCE SH4) Debug"\r
+\r
+DEP_CPP_MEMOS=\\r
+       "..\..\Src\MemoNote.h"\\r
+       "..\..\Src\MemoSelectView.h"\\r
+       "..\..\Src\Tombo.h"\\r
+       \r
+\r
+!ELSEIF  "$(CFG)" == "Tombo - Win32 (WCE SH3) Release"\r
+\r
+DEP_CPP_MEMOS=\\r
+       "..\..\Src\HPCPlatform.h"\\r
+       "..\..\Src\LagendaPlatform.h"\\r
+       "..\..\Src\MainFrame.h"\\r
+       "..\..\Src\MemoDetailsView.h"\\r
+       "..\..\Src\MemoManager.h"\\r
+       "..\..\Src\MemoSelectView.h"\\r
+       "..\..\Src\Message.h"\\r
+       "..\..\Src\MsgRes\MsgDef.h"\\r
+       "..\..\Src\PasswordManager.h"\\r
+       "..\..\Src\PlatformLayer.h"\\r
+       "..\..\Src\PocketPCPlatform.h"\\r
+       "..\..\Src\Property.h"\\r
+       "..\..\Src\PsPCPlatform.h"\\r
+       "..\..\Src\Repository.h"\\r
+       "..\..\Src\Tombo.h"\\r
+       "..\..\Src\TomboLib\AutoPtr.h"\\r
+       "..\..\Src\TomboLib\File.h"\\r
+       "..\..\Src\TomboLib\Logger.h"\\r
+       "..\..\Src\TomboLib\TString.h"\\r
+       "..\..\Src\TomboLib\Uniconv.h"\\r
+       "..\..\Src\TomboLib\VarBuffer.h"\\r
+       "..\..\Src\TomboURI.h"\\r
+       "..\..\Src\TreeViewItem.h"\\r
+       "..\..\Src\Win32Platform.h"\\r
+       \r
+NODEP_CPP_MEMOS=\\r
+       ".\ipapi.h"\\r
+       ".\ygshell.h"\\r
+       \r
+\r
+!ELSEIF  "$(CFG)" == "Tombo - Win32 (WCE ARM) Release"\r
+\r
+DEP_CPP_MEMOS=\\r
+       "..\..\Src\HPCPlatform.h"\\r
+       "..\..\Src\LagendaPlatform.h"\\r
+       "..\..\Src\MainFrame.h"\\r
+       "..\..\Src\MemoDetailsView.h"\\r
+       "..\..\Src\MemoManager.h"\\r
+       "..\..\Src\MemoSelectView.h"\\r
+       "..\..\Src\Message.h"\\r
+       "..\..\Src\MsgRes\MsgDef.h"\\r
+       "..\..\Src\NewFolderDialog.h"\\r
+       "..\..\Src\PasswordManager.h"\\r
+       "..\..\Src\PlatformLayer.h"\\r
+       "..\..\Src\PocketPCPlatform.h"\\r
+       "..\..\Src\Property.h"\\r
+       "..\..\Src\PsPCPlatform.h"\\r
+       "..\..\Src\Repository.h"\\r
+       "..\..\Src\Tombo.h"\\r
+       "..\..\Src\TomboLib\AutoPtr.h"\\r
+       "..\..\Src\TomboLib\File.h"\\r
+       "..\..\Src\TomboLib\Logger.h"\\r
+       "..\..\Src\TomboLib\TString.h"\\r
+       "..\..\Src\TomboLib\Uniconv.h"\\r
+       "..\..\Src\TomboLib\VarBuffer.h"\\r
+       "..\..\Src\TomboURI.h"\\r
+       "..\..\Src\TreeViewItem.h"\\r
+       "..\..\Src\Win32Platform.h"\\r
+       \r
+NODEP_CPP_MEMOS=\\r
+       ".\ipapi.h"\\r
+       ".\ygshell.h"\\r
+       \r
+\r
+!ELSEIF  "$(CFG)" == "Tombo - Win32 (WCE ARM) ReleaseVGA"\r
+\r
+DEP_CPP_MEMOS=\\r
+       "..\..\Src\HPCPlatform.h"\\r
+       "..\..\Src\LagendaPlatform.h"\\r
+       "..\..\Src\MainFrame.h"\\r
+       "..\..\Src\MemoDetailsView.h"\\r
+       "..\..\Src\MemoManager.h"\\r
+       "..\..\Src\MemoSelectView.h"\\r
+       "..\..\Src\Message.h"\\r
+       "..\..\Src\MsgRes\MsgDef.h"\\r
+       "..\..\Src\NewFolderDialog.h"\\r
+       "..\..\Src\PasswordManager.h"\\r
+       "..\..\Src\PlatformLayer.h"\\r
+       "..\..\Src\PocketPCPlatform.h"\\r
+       "..\..\Src\Property.h"\\r
+       "..\..\Src\PsPCPlatform.h"\\r
+       "..\..\Src\Repository.h"\\r
+       "..\..\Src\Tombo.h"\\r
+       "..\..\Src\TomboLib\AutoPtr.h"\\r
+       "..\..\Src\TomboLib\File.h"\\r
+       "..\..\Src\TomboLib\Logger.h"\\r
+       "..\..\Src\TomboLib\TString.h"\\r
+       "..\..\Src\TomboLib\Uniconv.h"\\r
+       "..\..\Src\TomboLib\VarBuffer.h"\\r
+       "..\..\Src\TomboURI.h"\\r
+       "..\..\Src\TreeViewItem.h"\\r
+       "..\..\Src\Win32Platform.h"\\r
+       {$(INCLUDE)}"aygshell.h"\\r
+       {$(INCLUDE)}"sipapi.h"\\r
+       \r
+\r
+!ENDIF \r
+\r
+# End Source File\r
+# Begin Source File\r
+\r
+SOURCE=..\..\Src\Message.cpp\r
+\r
+!IF  "$(CFG)" == "Tombo - Win32 (WCE MIPS) Release"\r
+\r
+DEP_CPP_MESSA=\\r
+       "..\..\Src\Message.h"\\r
+       "..\..\Src\MsgRes\DefaultMsg.cpp"\\r
+       "..\..\Src\MsgRes\MsgDef.h"\\r
+       "..\..\Src\Tombo.h"\\r
+       "..\..\Src\TomboLib\File.h"\\r
+       "..\..\Src\TomboLib\Logger.h"\\r
+       "..\..\Src\TomboLib\TString.h"\\r
+       "..\..\Src\TomboLib\Uniconv.h"\\r
+       \r
+\r
+!ELSEIF  "$(CFG)" == "Tombo - Win32 (WCE SH4) Release"\r
+\r
+DEP_CPP_MESSA=\\r
+       "..\..\Src\Message.h"\\r
+       "..\..\Src\MsgRes\DefaultMsg.cpp"\\r
+       "..\..\Src\MsgRes\MsgDef.h"\\r
+       "..\..\Src\Tombo.h"\\r
+       "..\..\Src\TomboLib\File.h"\\r
+       "..\..\Src\TomboLib\Logger.h"\\r
+       "..\..\Src\TomboLib\TString.h"\\r
+       "..\..\Src\TomboLib\Uniconv.h"\\r
+       \r
+\r
+!ELSEIF  "$(CFG)" == "Tombo - Win32 (WCE SH4) Debug"\r
+\r
+DEP_CPP_MESSA=\\r
+       "..\..\Src\Message.h"\\r
+       "..\..\Src\MsgRes\DefaultMsg.cpp"\\r
+       "..\..\Src\MsgRes\MsgDef.h"\\r
+       "..\..\Src\Tombo.h"\\r
+       "..\..\Src\TomboLib\File.h"\\r
+       "..\..\Src\TomboLib\Logger.h"\\r
+       "..\..\Src\TomboLib\TString.h"\\r
+       "..\..\Src\TomboLib\Uniconv.h"\\r
+       \r
+\r
+!ELSEIF  "$(CFG)" == "Tombo - Win32 (WCE SH3) Release"\r
+\r
+DEP_CPP_MESSA=\\r
+       "..\..\Src\Message.h"\\r
+       "..\..\Src\MsgRes\DefaultMsg.cpp"\\r
+       "..\..\Src\MsgRes\MsgDef.h"\\r
+       "..\..\Src\Tombo.h"\\r
+       "..\..\Src\TomboLib\File.h"\\r
+       "..\..\Src\TomboLib\Logger.h"\\r
+       "..\..\Src\TomboLib\TString.h"\\r
+       "..\..\Src\TomboLib\Uniconv.h"\\r
+       \r
+\r
+!ELSEIF  "$(CFG)" == "Tombo - Win32 (WCE ARM) Release"\r
+\r
+DEP_CPP_MESSA=\\r
+       "..\..\Src\Message.h"\\r
+       "..\..\Src\MsgRes\DefaultMsg.cpp"\\r
+       "..\..\Src\MsgRes\MsgDef.h"\\r
+       "..\..\Src\Tombo.h"\\r
+       "..\..\Src\TomboLib\File.h"\\r
+       "..\..\Src\TomboLib\Logger.h"\\r
+       "..\..\Src\TomboLib\TString.h"\\r
+       "..\..\Src\TomboLib\Uniconv.h"\\r
+       \r
+\r
+!ELSEIF  "$(CFG)" == "Tombo - Win32 (WCE ARM) ReleaseVGA"\r
+\r
+DEP_CPP_MESSA=\\r
+       "..\..\Src\Message.h"\\r
+       "..\..\Src\MsgRes\DefaultMsg.cpp"\\r
+       "..\..\Src\MsgRes\MsgDef.h"\\r
+       "..\..\Src\Tombo.h"\\r
+       "..\..\Src\TomboLib\File.h"\\r
+       "..\..\Src\TomboLib\Logger.h"\\r
+       "..\..\Src\TomboLib\TString.h"\\r
+       "..\..\Src\TomboLib\Uniconv.h"\\r
+       \r
+\r
+!ENDIF \r
+\r
+# End Source File\r
+# Begin Source File\r
+\r
+SOURCE=..\..\Src\NewFolderDialog.cpp\r
+\r
+!IF  "$(CFG)" == "Tombo - Win32 (WCE MIPS) Release"\r
+\r
+DEP_CPP_NEWFO=\\r
+       "..\..\Src\Message.h"\\r
+       "..\..\Src\MsgRes\MsgDef.h"\\r
+       "..\..\Src\NewFolderDialog.h"\\r
+       "..\..\Src\TomboLib\DialogTemplate.h"\\r
+       "..\..\Src\TomboLib\SipControl.h"\\r
+       \r
+\r
+!ELSEIF  "$(CFG)" == "Tombo - Win32 (WCE SH4) Release"\r
+\r
+DEP_CPP_NEWFO=\\r
+       "..\..\Src\NewFolderDialog.h"\\r
+       \r
+\r
+!ELSEIF  "$(CFG)" == "Tombo - Win32 (WCE SH4) Debug"\r
+\r
+DEP_CPP_NEWFO=\\r
+       "..\..\Src\NewFolderDialog.h"\\r
+       \r
+\r
+!ELSEIF  "$(CFG)" == "Tombo - Win32 (WCE SH3) Release"\r
+\r
+DEP_CPP_NEWFO=\\r
+       "..\..\Src\Message.h"\\r
+       "..\..\Src\MsgRes\MsgDef.h"\\r
+       "..\..\Src\NewFolderDialog.h"\\r
+       "..\..\Src\TomboLib\DialogTemplate.h"\\r
+       "..\..\Src\TomboLib\SipControl.h"\\r
+       \r
+\r
+!ELSEIF  "$(CFG)" == "Tombo - Win32 (WCE ARM) Release"\r
+\r
+DEP_CPP_NEWFO=\\r
+       "..\..\Src\Message.h"\\r
+       "..\..\Src\MsgRes\MsgDef.h"\\r
+       "..\..\Src\NewFolderDialog.h"\\r
+       "..\..\Src\TomboLib\DialogTemplate.h"\\r
+       "..\..\Src\TomboLib\SipControl.h"\\r
+       \r
+\r
+!ELSEIF  "$(CFG)" == "Tombo - Win32 (WCE ARM) ReleaseVGA"\r
+\r
+DEP_CPP_NEWFO=\\r
+       "..\..\Src\Message.h"\\r
+       "..\..\Src\MsgRes\MsgDef.h"\\r
+       "..\..\Src\NewFolderDialog.h"\\r
+       "..\..\Src\TomboLib\DialogTemplate.h"\\r
+       "..\..\Src\TomboLib\SipControl.h"\\r
+       \r
+\r
+!ENDIF \r
+\r
+# End Source File\r
+# Begin Source File\r
+\r
+SOURCE=..\..\Src\PasswordDialog.cpp\r
+\r
+!IF  "$(CFG)" == "Tombo - Win32 (WCE MIPS) Release"\r
+\r
+DEP_CPP_PASSW=\\r
+       "..\..\Src\Message.h"\\r
+       "..\..\Src\MsgRes\MsgDef.h"\\r
+       "..\..\Src\PasswordDialog.h"\\r
+       "..\..\Src\Tombo.h"\\r
+       "..\..\Src\TomboLib\DialogTemplate.h"\\r
+       "..\..\Src\TomboLib\File.h"\\r
+       "..\..\Src\TomboLib\Logger.h"\\r
+       "..\..\Src\TomboLib\SipControl.h"\\r
+       "..\..\Src\TomboLib\Uniconv.h"\\r
+       \r
+\r
+!ELSEIF  "$(CFG)" == "Tombo - Win32 (WCE SH4) Release"\r
+\r
+DEP_CPP_PASSW=\\r
+       "..\..\Src\PasswordDialog.h"\\r
+       \r
+NODEP_CPP_PASSW=\\r
+       "..\..\Src\Uniconv.h"\\r
+       \r
+\r
+!ELSEIF  "$(CFG)" == "Tombo - Win32 (WCE SH4) Debug"\r
+\r
+DEP_CPP_PASSW=\\r
+       "..\..\Src\PasswordDialog.h"\\r
+       \r
+NODEP_CPP_PASSW=\\r
+       "..\..\Src\Uniconv.h"\\r
+       \r
+\r
+!ELSEIF  "$(CFG)" == "Tombo - Win32 (WCE SH3) Release"\r
+\r
+DEP_CPP_PASSW=\\r
+       "..\..\Src\Message.h"\\r
+       "..\..\Src\MsgRes\MsgDef.h"\\r
+       "..\..\Src\PasswordDialog.h"\\r
+       "..\..\Src\Tombo.h"\\r
+       "..\..\Src\TomboLib\DialogTemplate.h"\\r
+       "..\..\Src\TomboLib\File.h"\\r
+       "..\..\Src\TomboLib\Logger.h"\\r
+       "..\..\Src\TomboLib\SipControl.h"\\r
+       "..\..\Src\TomboLib\Uniconv.h"\\r
+       \r
+\r
+!ELSEIF  "$(CFG)" == "Tombo - Win32 (WCE ARM) Release"\r
+\r
+DEP_CPP_PASSW=\\r
+       "..\..\Src\Message.h"\\r
+       "..\..\Src\MsgRes\MsgDef.h"\\r
+       "..\..\Src\PasswordDialog.h"\\r
+       "..\..\Src\Tombo.h"\\r
+       "..\..\Src\TomboLib\DialogTemplate.h"\\r
+       "..\..\Src\TomboLib\File.h"\\r
+       "..\..\Src\TomboLib\Logger.h"\\r
+       "..\..\Src\TomboLib\SipControl.h"\\r
+       "..\..\Src\TomboLib\Uniconv.h"\\r
+       \r
+\r
+!ELSEIF  "$(CFG)" == "Tombo - Win32 (WCE ARM) ReleaseVGA"\r
+\r
+DEP_CPP_PASSW=\\r
+       "..\..\Src\Message.h"\\r
+       "..\..\Src\MsgRes\MsgDef.h"\\r
+       "..\..\Src\PasswordDialog.h"\\r
+       "..\..\Src\Tombo.h"\\r
+       "..\..\Src\TomboLib\DialogTemplate.h"\\r
+       "..\..\Src\TomboLib\File.h"\\r
+       "..\..\Src\TomboLib\Logger.h"\\r
+       "..\..\Src\TomboLib\SipControl.h"\\r
+       "..\..\Src\TomboLib\Uniconv.h"\\r
+       \r
+\r
+!ENDIF \r
+\r
+# End Source File\r
+# Begin Source File\r
+\r
+SOURCE=..\..\Src\PasswordManager.cpp\r
+\r
+!IF  "$(CFG)" == "Tombo - Win32 (WCE MIPS) Release"\r
+\r
+DEP_CPP_PASSWO=\\r
+       "..\..\Src\Crypt.h"\\r
+       "..\..\Src\CryptManager.h"\\r
+       "..\..\Src\Message.h"\\r
+       "..\..\Src\MsgRes\MsgDef.h"\\r
+       "..\..\Src\PasswordDialog.h"\\r
+       "..\..\Src\PasswordManager.h"\\r
+       "..\..\Src\Property.h"\\r
+       "..\..\Src\Tombo.h"\\r
+       "..\..\Src\TomboLib\File.h"\\r
+       "..\..\Src\TomboLib\Logger.h"\\r
+       \r
+\r
+!ELSEIF  "$(CFG)" == "Tombo - Win32 (WCE SH4) Release"\r
+\r
+DEP_CPP_PASSWO=\\r
+       "..\..\Src\PasswordDialog.h"\\r
+       "..\..\Src\PasswordManager.h"\\r
+       \r
+\r
+!ELSEIF  "$(CFG)" == "Tombo - Win32 (WCE SH4) Debug"\r
+\r
+DEP_CPP_PASSWO=\\r
+       "..\..\Src\PasswordDialog.h"\\r
+       "..\..\Src\PasswordManager.h"\\r
+       \r
+\r
+!ELSEIF  "$(CFG)" == "Tombo - Win32 (WCE SH3) Release"\r
+\r
+DEP_CPP_PASSWO=\\r
+       "..\..\Src\Crypt.h"\\r
+       "..\..\Src\CryptManager.h"\\r
+       "..\..\Src\Message.h"\\r
+       "..\..\Src\MsgRes\MsgDef.h"\\r
+       "..\..\Src\PasswordDialog.h"\\r
+       "..\..\Src\PasswordManager.h"\\r
+       "..\..\Src\Property.h"\\r
+       "..\..\Src\Tombo.h"\\r
+       "..\..\Src\TomboLib\File.h"\\r
+       "..\..\Src\TomboLib\Logger.h"\\r
+       \r
+\r
+!ELSEIF  "$(CFG)" == "Tombo - Win32 (WCE ARM) Release"\r
+\r
+DEP_CPP_PASSWO=\\r
+       "..\..\Src\Crypt.h"\\r
+       "..\..\Src\CryptManager.h"\\r
+       "..\..\Src\Message.h"\\r
+       "..\..\Src\MsgRes\MsgDef.h"\\r
+       "..\..\Src\PasswordDialog.h"\\r
+       "..\..\Src\PasswordManager.h"\\r
+       "..\..\Src\Property.h"\\r
+       "..\..\Src\Tombo.h"\\r
+       "..\..\Src\TomboLib\File.h"\\r
+       "..\..\Src\TomboLib\Logger.h"\\r
+       \r
+\r
+!ELSEIF  "$(CFG)" == "Tombo - Win32 (WCE ARM) ReleaseVGA"\r
+\r
+DEP_CPP_PASSWO=\\r
+       "..\..\Src\Crypt.h"\\r
+       "..\..\Src\CryptManager.h"\\r
+       "..\..\Src\Message.h"\\r
+       "..\..\Src\MsgRes\MsgDef.h"\\r
+       "..\..\Src\PasswordDialog.h"\\r
+       "..\..\Src\PasswordManager.h"\\r
+       "..\..\Src\Property.h"\\r
+       "..\..\Src\Tombo.h"\\r
+       "..\..\Src\TomboLib\File.h"\\r
+       "..\..\Src\TomboLib\Logger.h"\\r
+       \r
+\r
+!ENDIF \r
+\r
+# End Source File\r
+# Begin Source File\r
+\r
+SOURCE=..\..\Src\YAEdit\PhysicalLineManager.cpp\r
+\r
+!IF  "$(CFG)" == "Tombo - Win32 (WCE MIPS) Release"\r
+\r
+DEP_CPP_PHYSI=\\r
+       "..\..\Src\TomboLib\TString.h"\\r
+       "..\..\Src\TomboLib\Uniconv.h"\\r
+       "..\..\Src\TomboLib\VarBuffer.h"\\r
+       "..\..\Src\YAEdit\MemManager.h"\\r
+       "..\..\Src\YAEdit\PhysicalLineManager.h"\\r
+       "..\..\Src\YAEdit\Region.h"\\r
+       "..\..\Src\YAEdit\StringSplitter.h"\\r
+       \r
+\r
+!ELSEIF  "$(CFG)" == "Tombo - Win32 (WCE SH4) Release"\r
+\r
+DEP_CPP_PHYSI=\\r
+       "..\..\Src\TomboLib\TString.h"\\r
+       "..\..\Src\TomboLib\Uniconv.h"\\r
+       "..\..\Src\TomboLib\VarBuffer.h"\\r
+       "..\..\Src\YAEdit\MemManager.h"\\r
+       "..\..\Src\YAEdit\PhysicalLineManager.h"\\r
+       "..\..\Src\YAEdit\Region.h"\\r
+       "..\..\Src\YAEdit\StringSplitter.h"\\r
+       \r
+\r
+!ELSEIF  "$(CFG)" == "Tombo - Win32 (WCE SH4) Debug"\r
+\r
+DEP_CPP_PHYSI=\\r
+       "..\..\Src\TomboLib\TString.h"\\r
+       "..\..\Src\TomboLib\Uniconv.h"\\r
+       "..\..\Src\TomboLib\VarBuffer.h"\\r
+       "..\..\Src\YAEdit\MemManager.h"\\r
+       "..\..\Src\YAEdit\PhysicalLineManager.h"\\r
+       "..\..\Src\YAEdit\Region.h"\\r
+       "..\..\Src\YAEdit\StringSplitter.h"\\r
+       \r
+\r
+!ELSEIF  "$(CFG)" == "Tombo - Win32 (WCE SH3) Release"\r
+\r
+DEP_CPP_PHYSI=\\r
+       "..\..\Src\TomboLib\TString.h"\\r
+       "..\..\Src\TomboLib\Uniconv.h"\\r
+       "..\..\Src\TomboLib\VarBuffer.h"\\r
+       "..\..\Src\YAEdit\MemManager.h"\\r
+       "..\..\Src\YAEdit\PhysicalLineManager.h"\\r
+       "..\..\Src\YAEdit\Region.h"\\r
+       "..\..\Src\YAEdit\StringSplitter.h"\\r
+       \r
+\r
+!ELSEIF  "$(CFG)" == "Tombo - Win32 (WCE ARM) Release"\r
+\r
+DEP_CPP_PHYSI=\\r
+       "..\..\Src\TomboLib\TString.h"\\r
+       "..\..\Src\TomboLib\Uniconv.h"\\r
+       "..\..\Src\TomboLib\VarBuffer.h"\\r
+       "..\..\Src\YAEdit\MemManager.h"\\r
+       "..\..\Src\YAEdit\PhysicalLineManager.h"\\r
+       "..\..\Src\YAEdit\Region.h"\\r
+       "..\..\Src\YAEdit\StringSplitter.h"\\r
+       \r
+\r
+!ELSEIF  "$(CFG)" == "Tombo - Win32 (WCE ARM) ReleaseVGA"\r
+\r
+DEP_CPP_PHYSI=\\r
+       "..\..\Src\TomboLib\TString.h"\\r
+       "..\..\Src\TomboLib\Uniconv.h"\\r
+       "..\..\Src\TomboLib\VarBuffer.h"\\r
+       "..\..\Src\YAEdit\MemManager.h"\\r
+       "..\..\Src\YAEdit\PhysicalLineManager.h"\\r
+       "..\..\Src\YAEdit\Region.h"\\r
+       "..\..\Src\YAEdit\StringSplitter.h"\\r
+       \r
+\r
+!ENDIF \r
+\r
+# End Source File\r
+# Begin Source File\r
+\r
+SOURCE=..\..\Src\PlatformLayer.cpp\r
+\r
+!IF  "$(CFG)" == "Tombo - Win32 (WCE MIPS) Release"\r
+\r
+DEP_CPP_PLATF=\\r
+       "..\..\Src\Message.h"\\r
+       "..\..\Src\MsgRes\MsgDef.h"\\r
+       "..\..\Src\PlatformLayer.h"\\r
+       "..\..\Src\Property.h"\\r
+       "..\..\Src\Tombo.h"\\r
+       "..\..\Src\TomboLib\File.h"\\r
+       "..\..\Src\TomboLib\Logger.h"\\r
+       \r
+\r
+!ELSEIF  "$(CFG)" == "Tombo - Win32 (WCE SH4) Release"\r
+\r
+DEP_CPP_PLATF=\\r
+       "..\..\Src\PlatformLayer.h"\\r
+       "..\..\Src\Tombo.h"\\r
+       "..\..\Src\TomboLib\File.h"\\r
+       "..\..\Src\TomboLib\Logger.h"\\r
+       \r
+\r
+!ELSEIF  "$(CFG)" == "Tombo - Win32 (WCE SH4) Debug"\r
+\r
+DEP_CPP_PLATF=\\r
+       "..\..\Src\PlatformLayer.h"\\r
+       "..\..\Src\Tombo.h"\\r
+       "..\..\Src\TomboLib\File.h"\\r
+       "..\..\Src\TomboLib\Logger.h"\\r
+       \r
+\r
+!ELSEIF  "$(CFG)" == "Tombo - Win32 (WCE SH3) Release"\r
+\r
+DEP_CPP_PLATF=\\r
+       "..\..\Src\Message.h"\\r
+       "..\..\Src\MsgRes\MsgDef.h"\\r
+       "..\..\Src\PlatformLayer.h"\\r
+       "..\..\Src\Property.h"\\r
+       "..\..\Src\Tombo.h"\\r
+       "..\..\Src\TomboLib\File.h"\\r
+       "..\..\Src\TomboLib\Logger.h"\\r
+       \r
+\r
+!ELSEIF  "$(CFG)" == "Tombo - Win32 (WCE ARM) Release"\r
+\r
+DEP_CPP_PLATF=\\r
+       "..\..\Src\Message.h"\\r
+       "..\..\Src\MsgRes\MsgDef.h"\\r
+       "..\..\Src\PlatformLayer.h"\\r
+       "..\..\Src\Property.h"\\r
+       "..\..\Src\Tombo.h"\\r
+       "..\..\Src\TomboLib\File.h"\\r
+       "..\..\Src\TomboLib\Logger.h"\\r
+       \r
+\r
+!ELSEIF  "$(CFG)" == "Tombo - Win32 (WCE ARM) ReleaseVGA"\r
+\r
+DEP_CPP_PLATF=\\r
+       "..\..\Src\Message.h"\\r
+       "..\..\Src\MsgRes\MsgDef.h"\\r
+       "..\..\Src\PlatformLayer.h"\\r
+       "..\..\Src\Property.h"\\r
+       "..\..\Src\Tombo.h"\\r
+       "..\..\Src\TomboLib\File.h"\\r
+       "..\..\Src\TomboLib\Logger.h"\\r
+       \r
+\r
+!ENDIF \r
+\r
+# End Source File\r
+# Begin Source File\r
+\r
+SOURCE=..\..\Src\PocketPCPlatform.cpp\r
+\r
+!IF  "$(CFG)" == "Tombo - Win32 (WCE MIPS) Release"\r
+\r
+DEP_CPP_POCKE=\\r
+       "..\..\Src\Message.h"\\r
+       "..\..\Src\MsgRes\MsgDef.h"\\r
+       "..\..\Src\PlatformLayer.h"\\r
+       "..\..\Src\PocketPCPlatform.h"\\r
+       "..\..\Src\Property.h"\\r
+       "..\..\Src\Tombo.h"\\r
+       "..\..\Src\TomboLib\File.h"\\r
+       "..\..\Src\TomboLib\Logger.h"\\r
+       "..\..\Src\TomboLib\SipControl.h"\\r
+       \r
+NODEP_CPP_POCKE=\\r
+       ".\ipapi.h"\\r
+       ".\ygshell.h"\\r
+       \r
+\r
+!ELSEIF  "$(CFG)" == "Tombo - Win32 (WCE SH4) Release"\r
+\r
+DEP_CPP_POCKE=\\r
+       "..\..\Src\Message.h"\\r
+       "..\..\Src\PlatformLayer.h"\\r
+       "..\..\Src\PocketPCPlatform.h"\\r
+       "..\..\Src\Property.h"\\r
+       "..\..\Src\TomboLib\SipControl.h"\\r
+       \r
+\r
+!ELSEIF  "$(CFG)" == "Tombo - Win32 (WCE SH4) Debug"\r
+\r
+DEP_CPP_POCKE=\\r
+       "..\..\Src\Message.h"\\r
+       "..\..\Src\PlatformLayer.h"\\r
+       "..\..\Src\PocketPCPlatform.h"\\r
+       "..\..\Src\Property.h"\\r
+       "..\..\Src\TomboLib\SipControl.h"\\r
+       \r
+\r
+!ELSEIF  "$(CFG)" == "Tombo - Win32 (WCE SH3) Release"\r
+\r
+DEP_CPP_POCKE=\\r
+       "..\..\Src\Message.h"\\r
+       "..\..\Src\MsgRes\MsgDef.h"\\r
+       "..\..\Src\PlatformLayer.h"\\r
+       "..\..\Src\PocketPCPlatform.h"\\r
+       "..\..\Src\Property.h"\\r
+       "..\..\Src\Tombo.h"\\r
+       "..\..\Src\TomboLib\File.h"\\r
+       "..\..\Src\TomboLib\Logger.h"\\r
+       "..\..\Src\TomboLib\SipControl.h"\\r
+       \r
+NODEP_CPP_POCKE=\\r
+       ".\ipapi.h"\\r
+       ".\ygshell.h"\\r
+       \r
+\r
+!ELSEIF  "$(CFG)" == "Tombo - Win32 (WCE ARM) Release"\r
+\r
+DEP_CPP_POCKE=\\r
+       "..\..\Src\Message.h"\\r
+       "..\..\Src\MsgRes\MsgDef.h"\\r
+       "..\..\Src\PlatformLayer.h"\\r
+       "..\..\Src\PocketPCPlatform.h"\\r
+       "..\..\Src\Property.h"\\r
+       "..\..\Src\Tombo.h"\\r
+       "..\..\Src\TomboLib\File.h"\\r
+       "..\..\Src\TomboLib\Logger.h"\\r
+       "..\..\Src\TomboLib\SipControl.h"\\r
+       \r
+NODEP_CPP_POCKE=\\r
+       ".\ipapi.h"\\r
+       ".\ygshell.h"\\r
+       \r
+\r
+!ELSEIF  "$(CFG)" == "Tombo - Win32 (WCE ARM) ReleaseVGA"\r
+\r
+DEP_CPP_POCKE=\\r
+       "..\..\Src\Message.h"\\r
+       "..\..\Src\MsgRes\MsgDef.h"\\r
+       "..\..\Src\PlatformLayer.h"\\r
+       "..\..\Src\PocketPCPlatform.h"\\r
+       "..\..\Src\Property.h"\\r
+       "..\..\Src\Tombo.h"\\r
+       "..\..\Src\TomboLib\File.h"\\r
+       "..\..\Src\TomboLib\Logger.h"\\r
+       "..\..\Src\TomboLib\SipControl.h"\\r
+       {$(INCLUDE)}"aygshell.h"\\r
+       {$(INCLUDE)}"sipapi.h"\\r
+       \r
+\r
+!ENDIF \r
+\r
+# End Source File\r
+# Begin Source File\r
+\r
+SOURCE=..\..\Src\Property.cpp\r
+\r
+!IF  "$(CFG)" == "Tombo - Win32 (WCE MIPS) Release"\r
+\r
+DEP_CPP_PROPE=\\r
+       "..\..\Src\FileSelector.h"\\r
+       "..\..\Src\Message.h"\\r
+       "..\..\Src\MsgRes\MsgDef.h"\\r
+       "..\..\Src\PasswordManager.h"\\r
+       "..\..\Src\Property.h"\\r
+       "..\..\Src\Tombo.h"\\r
+       "..\..\Src\TomboLib\DialogTemplate.h"\\r
+       "..\..\Src\TomboLib\File.h"\\r
+       "..\..\Src\TomboLib\Logger.h"\\r
+       "..\..\Src\TomboLib\PropertyPage.h"\\r
+       "..\..\Src\TomboLib\TString.h"\\r
+       "..\..\Src\TomboLib\Uniconv.h"\\r
+       \r
+\r
+!ELSEIF  "$(CFG)" == "Tombo - Win32 (WCE SH4) Release"\r
+\r
+DEP_CPP_PROPE=\\r
+       "..\..\Src\FileSelector.h"\\r
+       "..\..\Src\Property.h"\\r
+       "..\..\Src\Tombo.h"\\r
+       \r
+\r
+!ELSEIF  "$(CFG)" == "Tombo - Win32 (WCE SH4) Debug"\r
+\r
+DEP_CPP_PROPE=\\r
+       "..\..\Src\FileSelector.h"\\r
+       "..\..\Src\Property.h"\\r
+       "..\..\Src\Tombo.h"\\r
+       \r
+\r
+!ELSEIF  "$(CFG)" == "Tombo - Win32 (WCE SH3) Release"\r
+\r
+DEP_CPP_PROPE=\\r
+       "..\..\Src\FileSelector.h"\\r
+       "..\..\Src\Message.h"\\r
+       "..\..\Src\MsgRes\MsgDef.h"\\r
+       "..\..\Src\PasswordManager.h"\\r
+       "..\..\Src\Property.h"\\r
+       "..\..\Src\Tombo.h"\\r
+       "..\..\Src\TomboLib\DialogTemplate.h"\\r
+       "..\..\Src\TomboLib\File.h"\\r
+       "..\..\Src\TomboLib\Logger.h"\\r
+       "..\..\Src\TomboLib\PropertyPage.h"\\r
+       "..\..\Src\TomboLib\TString.h"\\r
+       "..\..\Src\TomboLib\Uniconv.h"\\r
+       \r
+\r
+!ELSEIF  "$(CFG)" == "Tombo - Win32 (WCE ARM) Release"\r
+\r
+DEP_CPP_PROPE=\\r
+       "..\..\Src\FileSelector.h"\\r
+       "..\..\Src\Message.h"\\r
+       "..\..\Src\MsgRes\MsgDef.h"\\r
+       "..\..\Src\PasswordManager.h"\\r
+       "..\..\Src\Property.h"\\r
+       "..\..\Src\Tombo.h"\\r
+       "..\..\Src\TomboLib\DialogTemplate.h"\\r
+       "..\..\Src\TomboLib\File.h"\\r
+       "..\..\Src\TomboLib\Logger.h"\\r
+       "..\..\Src\TomboLib\PropertyPage.h"\\r
+       "..\..\Src\TomboLib\TString.h"\\r
+       "..\..\Src\TomboLib\Uniconv.h"\\r
+       \r
+\r
+!ELSEIF  "$(CFG)" == "Tombo - Win32 (WCE ARM) ReleaseVGA"\r
+\r
+DEP_CPP_PROPE=\\r
+       "..\..\expat\include\expat.h"\\r
+       "..\..\Src\FileSelector.h"\\r
+       "..\..\Src\Message.h"\\r
+       "..\..\Src\MsgRes\MsgDef.h"\\r
+       "..\..\Src\PasswordManager.h"\\r
+       "..\..\Src\Property.h"\\r
+       "..\..\Src\Tombo.h"\\r
+       "..\..\Src\TomboLib\AutoPtr.h"\\r
+       "..\..\Src\TomboLib\DialogTemplate.h"\\r
+       "..\..\Src\TomboLib\File.h"\\r
+       "..\..\Src\TomboLib\Logger.h"\\r
+       "..\..\Src\TomboLib\PropertyPage.h"\\r
+       "..\..\Src\TomboLib\TString.h"\\r
+       "..\..\Src\TomboLib\Uniconv.h"\\r
+       "..\..\Src\TomboPropertyTab.h"\\r
+       \r
+\r
+!ENDIF \r
+\r
+# End Source File\r
+# Begin Source File\r
+\r
+SOURCE=..\..\Src\TomboLib\PropertyPage.cpp\r
+\r
+!IF  "$(CFG)" == "Tombo - Win32 (WCE MIPS) Release"\r
+\r
+DEP_CPP_PROPER=\\r
+       "..\..\Src\TomboLib\PropertyPage.h"\\r
+       \r
+NODEP_CPP_PROPER=\\r
+       ".\ipapi.h"\\r
+       ".\ygshell.h"\\r
+       \r
+\r
+!ELSEIF  "$(CFG)" == "Tombo - Win32 (WCE SH4) Release"\r
+\r
+DEP_CPP_PROPER=\\r
+       "..\..\Src\TomboLib\PropertyPage.h"\\r
+       \r
+\r
+!ELSEIF  "$(CFG)" == "Tombo - Win32 (WCE SH4) Debug"\r
+\r
+DEP_CPP_PROPER=\\r
+       "..\..\Src\TomboLib\PropertyPage.h"\\r
+       \r
+\r
+!ELSEIF  "$(CFG)" == "Tombo - Win32 (WCE SH3) Release"\r
+\r
+DEP_CPP_PROPER=\\r
+       "..\..\Src\TomboLib\PropertyPage.h"\\r
+       \r
+NODEP_CPP_PROPER=\\r
+       ".\ipapi.h"\\r
+       ".\ygshell.h"\\r
+       \r
+\r
+!ELSEIF  "$(CFG)" == "Tombo - Win32 (WCE ARM) Release"\r
+\r
+DEP_CPP_PROPER=\\r
+       "..\..\Src\TomboLib\PropertyPage.h"\\r
+       \r
+NODEP_CPP_PROPER=\\r
+       ".\ipapi.h"\\r
+       ".\ygshell.h"\\r
+       \r
+\r
+!ELSEIF  "$(CFG)" == "Tombo - Win32 (WCE ARM) ReleaseVGA"\r
+\r
+DEP_CPP_PROPER=\\r
+       "..\..\Src\TomboLib\PropertyPage.h"\\r
+       {$(INCLUDE)}"aygshell.h"\\r
+       {$(INCLUDE)}"sipapi.h"\\r
+       \r
+\r
+!ENDIF \r
+\r
+# End Source File\r
+# Begin Source File\r
+\r
+SOURCE=..\..\Src\YAEdit\Region.cpp\r
+\r
+!IF  "$(CFG)" == "Tombo - Win32 (WCE MIPS) Release"\r
+\r
+DEP_CPP_REGIO=\\r
+       "..\..\Src\YAEdit\Region.h"\\r
+       \r
+\r
+!ELSEIF  "$(CFG)" == "Tombo - Win32 (WCE SH4) Release"\r
+\r
+DEP_CPP_REGIO=\\r
+       "..\..\Src\YAEdit\Region.h"\\r
+       \r
+\r
+!ELSEIF  "$(CFG)" == "Tombo - Win32 (WCE SH4) Debug"\r
+\r
+DEP_CPP_REGIO=\\r
+       "..\..\Src\YAEdit\Region.h"\\r
+       \r
+\r
+!ELSEIF  "$(CFG)" == "Tombo - Win32 (WCE SH3) Release"\r
+\r
+DEP_CPP_REGIO=\\r
+       "..\..\Src\YAEdit\Region.h"\\r
+       \r
+\r
+!ELSEIF  "$(CFG)" == "Tombo - Win32 (WCE ARM) Release"\r
+\r
+DEP_CPP_REGIO=\\r
+       "..\..\Src\YAEdit\Region.h"\\r
+       \r
+\r
+!ELSEIF  "$(CFG)" == "Tombo - Win32 (WCE ARM) ReleaseVGA"\r
+\r
+DEP_CPP_REGIO=\\r
+       "..\..\Src\YAEdit\Region.h"\\r
+       \r
+\r
+!ENDIF \r
+\r
+# End Source File\r
+# Begin Source File\r
+\r
+SOURCE=..\..\Src\Repository.cpp\r
+\r
+!IF  "$(CFG)" == "Tombo - Win32 (WCE MIPS) Release"\r
+\r
+DEP_CPP_REPOS=\\r
+       "..\..\Src\MemoNote.h"\\r
+       "..\..\Src\Repository.h"\\r
+       "..\..\Src\RepositoryImpl.h"\\r
+       "..\..\Src\Tombo.h"\\r
+       "..\..\Src\TomboLib\File.h"\\r
+       "..\..\Src\TomboLib\Logger.h"\\r
+       "..\..\Src\TomboLib\TString.h"\\r
+       "..\..\Src\TomboLib\Uniconv.h"\\r
+       "..\..\Src\TomboURI.h"\\r
+       \r
+\r
+!ELSEIF  "$(CFG)" == "Tombo - Win32 (WCE SH4) Release"\r
+\r
+DEP_CPP_REPOS=\\r
+       "..\..\Src\Repository.h"\\r
+       "..\..\Src\TomboLib\Uniconv.h"\\r
+       \r
+\r
+!ELSEIF  "$(CFG)" == "Tombo - Win32 (WCE SH4) Debug"\r
+\r
+DEP_CPP_REPOS=\\r
+       "..\..\Src\Repository.h"\\r
+       "..\..\Src\TomboLib\Uniconv.h"\\r
+       \r
+\r
+!ELSEIF  "$(CFG)" == "Tombo - Win32 (WCE SH3) Release"\r
+\r
+DEP_CPP_REPOS=\\r
+       "..\..\Src\MemoNote.h"\\r
+       "..\..\Src\Repository.h"\\r
+       "..\..\Src\RepositoryImpl.h"\\r
+       "..\..\Src\Tombo.h"\\r
+       "..\..\Src\TomboLib\File.h"\\r
+       "..\..\Src\TomboLib\Logger.h"\\r
+       "..\..\Src\TomboLib\TString.h"\\r
+       "..\..\Src\TomboLib\Uniconv.h"\\r
+       "..\..\Src\TomboURI.h"\\r
+       \r
+\r
+!ELSEIF  "$(CFG)" == "Tombo - Win32 (WCE ARM) Release"\r
+\r
+DEP_CPP_REPOS=\\r
+       "..\..\Src\MemoNote.h"\\r
+       "..\..\Src\Repository.h"\\r
+       "..\..\Src\RepositoryImpl.h"\\r
+       "..\..\Src\Tombo.h"\\r
+       "..\..\Src\TomboLib\File.h"\\r
+       "..\..\Src\TomboLib\Logger.h"\\r
+       "..\..\Src\TomboLib\TString.h"\\r
+       "..\..\Src\TomboLib\Uniconv.h"\\r
+       "..\..\Src\TomboURI.h"\\r
+       \r
+\r
+!ELSEIF  "$(CFG)" == "Tombo - Win32 (WCE ARM) ReleaseVGA"\r
+\r
+DEP_CPP_REPOS=\\r
+       "..\..\Src\MemoNote.h"\\r
+       "..\..\Src\Repository.h"\\r
+       "..\..\Src\RepositoryImpl.h"\\r
+       "..\..\Src\Tombo.h"\\r
+       "..\..\Src\TomboLib\File.h"\\r
+       "..\..\Src\TomboLib\Logger.h"\\r
+       "..\..\Src\TomboLib\TString.h"\\r
+       "..\..\Src\TomboLib\Uniconv.h"\\r
+       "..\..\Src\TomboURI.h"\\r
+       \r
+\r
+!ENDIF \r
+\r
+# End Source File\r
+# Begin Source File\r
+\r
+SOURCE=..\..\Src\RepositoryImpl.cpp\r
+\r
+!IF  "$(CFG)" == "Tombo - Win32 (WCE MIPS) Release"\r
+\r
+DEP_CPP_REPOSI=\\r
+       "..\..\Src\DirList.h"\\r
+       "..\..\Src\MemoFolder.h"\\r
+       "..\..\Src\MemoInfo.h"\\r
+       "..\..\Src\MemoNote.h"\\r
+       "..\..\Src\Message.h"\\r
+       "..\..\Src\MsgRes\MsgDef.h"\\r
+       "..\..\Src\PasswordManager.h"\\r
+       "..\..\Src\Property.h"\\r
+       "..\..\Src\Repository.h"\\r
+       "..\..\Src\RepositoryImpl.h"\\r
+       "..\..\Src\Tombo.h"\\r
+       "..\..\Src\TomboLib\AutoPtr.h"\\r
+       "..\..\Src\TomboLib\DirectoryScanner.h"\\r
+       "..\..\Src\TomboLib\File.h"\\r
+       "..\..\Src\TomboLib\Logger.h"\\r
+       "..\..\Src\TomboLib\TString.h"\\r
+       "..\..\Src\TomboLib\Uniconv.h"\\r
+       "..\..\Src\TomboLib\VarBuffer.h"\\r
+       "..\..\Src\TomboURI.h"\\r
+       "..\..\Src\URIScanner.h"\\r
+       \r
+\r
+!ELSEIF  "$(CFG)" == "Tombo - Win32 (WCE SH4) Release"\r
+\r
+DEP_CPP_REPOSI=\\r
+       "..\..\Src\MemoInfo.h"\\r
+       "..\..\Src\MemoManager.h"\\r
+       "..\..\Src\MemoNote.h"\\r
+       "..\..\Src\Message.h"\\r
+       "..\..\Src\MsgRes\MsgDef.h"\\r
+       "..\..\Src\PasswordManager.h"\\r
+       "..\..\Src\Repository.h"\\r
+       "..\..\Src\RepositoryImpl.h"\\r
+       "..\..\Src\TomboLib\AutoPtr.h"\\r
+       "..\..\Src\TomboLib\TString.h"\\r
+       "..\..\Src\TomboLib\Uniconv.h"\\r
+       "..\..\Src\TomboLib\VarBuffer.h"\\r
+       "..\..\Src\TomboURI.h"\\r
+       "..\..\Src\TreeViewItem.h"\\r
+       \r
+\r
+!ELSEIF  "$(CFG)" == "Tombo - Win32 (WCE SH4) Debug"\r
+\r
+DEP_CPP_REPOSI=\\r
+       "..\..\Src\MemoInfo.h"\\r
+       "..\..\Src\MemoManager.h"\\r
+       "..\..\Src\MemoNote.h"\\r
+       "..\..\Src\Message.h"\\r
+       "..\..\Src\MsgRes\MsgDef.h"\\r
+       "..\..\Src\PasswordManager.h"\\r
+       "..\..\Src\Repository.h"\\r
+       "..\..\Src\RepositoryImpl.h"\\r
+       "..\..\Src\TomboLib\AutoPtr.h"\\r
+       "..\..\Src\TomboLib\TString.h"\\r
+       "..\..\Src\TomboLib\Uniconv.h"\\r
+       "..\..\Src\TomboLib\VarBuffer.h"\\r
+       "..\..\Src\TomboURI.h"\\r
+       "..\..\Src\TreeViewItem.h"\\r
+       \r
+\r
+!ELSEIF  "$(CFG)" == "Tombo - Win32 (WCE SH3) Release"\r
+\r
+DEP_CPP_REPOSI=\\r
+       "..\..\Src\DirList.h"\\r
+       "..\..\Src\MemoFolder.h"\\r
+       "..\..\Src\MemoInfo.h"\\r
+       "..\..\Src\MemoNote.h"\\r
+       "..\..\Src\Message.h"\\r
+       "..\..\Src\MsgRes\MsgDef.h"\\r
+       "..\..\Src\PasswordManager.h"\\r
+       "..\..\Src\Property.h"\\r
+       "..\..\Src\Repository.h"\\r
+       "..\..\Src\RepositoryImpl.h"\\r
+       "..\..\Src\Tombo.h"\\r
+       "..\..\Src\TomboLib\AutoPtr.h"\\r
+       "..\..\Src\TomboLib\DirectoryScanner.h"\\r
+       "..\..\Src\TomboLib\File.h"\\r
+       "..\..\Src\TomboLib\Logger.h"\\r
+       "..\..\Src\TomboLib\TString.h"\\r
+       "..\..\Src\TomboLib\Uniconv.h"\\r
+       "..\..\Src\TomboLib\VarBuffer.h"\\r
+       "..\..\Src\TomboURI.h"\\r
+       "..\..\Src\URIScanner.h"\\r
+       \r
+\r
+!ELSEIF  "$(CFG)" == "Tombo - Win32 (WCE ARM) Release"\r
+\r
+DEP_CPP_REPOSI=\\r
+       "..\..\Src\DirList.h"\\r
+       "..\..\Src\MemoFolder.h"\\r
+       "..\..\Src\MemoInfo.h"\\r
+       "..\..\Src\MemoNote.h"\\r
+       "..\..\Src\Message.h"\\r
+       "..\..\Src\MsgRes\MsgDef.h"\\r
+       "..\..\Src\PasswordManager.h"\\r
+       "..\..\Src\Property.h"\\r
+       "..\..\Src\Repository.h"\\r
+       "..\..\Src\RepositoryImpl.h"\\r
+       "..\..\Src\Tombo.h"\\r
+       "..\..\Src\TomboLib\AutoPtr.h"\\r
+       "..\..\Src\TomboLib\DirectoryScanner.h"\\r
+       "..\..\Src\TomboLib\File.h"\\r
+       "..\..\Src\TomboLib\Logger.h"\\r
+       "..\..\Src\TomboLib\TString.h"\\r
+       "..\..\Src\TomboLib\Uniconv.h"\\r
+       "..\..\Src\TomboLib\VarBuffer.h"\\r
+       "..\..\Src\TomboURI.h"\\r
+       "..\..\Src\URIScanner.h"\\r
+       \r
+\r
+!ELSEIF  "$(CFG)" == "Tombo - Win32 (WCE ARM) ReleaseVGA"\r
+\r
+DEP_CPP_REPOSI=\\r
+       "..\..\Src\DirList.h"\\r
+       "..\..\Src\MemoFolder.h"\\r
+       "..\..\Src\MemoInfo.h"\\r
+       "..\..\Src\MemoNote.h"\\r
+       "..\..\Src\Message.h"\\r
+       "..\..\Src\MsgRes\MsgDef.h"\\r
+       "..\..\Src\PasswordManager.h"\\r
+       "..\..\Src\Property.h"\\r
+       "..\..\Src\Repository.h"\\r
+       "..\..\Src\RepositoryImpl.h"\\r
+       "..\..\Src\Tombo.h"\\r
+       "..\..\Src\TomboLib\AutoPtr.h"\\r
+       "..\..\Src\TomboLib\DirectoryScanner.h"\\r
+       "..\..\Src\TomboLib\File.h"\\r
+       "..\..\Src\TomboLib\Logger.h"\\r
+       "..\..\Src\TomboLib\TString.h"\\r
+       "..\..\Src\TomboLib\Uniconv.h"\\r
+       "..\..\Src\TomboLib\VarBuffer.h"\\r
+       "..\..\Src\TomboURI.h"\\r
+       "..\..\Src\URIScanner.h"\\r
+       \r
+\r
+!ENDIF \r
+\r
+# End Source File\r
+# Begin Source File\r
+\r
+SOURCE=..\..\Src\SearchDlg.cpp\r
+\r
+!IF  "$(CFG)" == "Tombo - Win32 (WCE MIPS) Release"\r
+\r
+DEP_CPP_SEARC=\\r
+       "..\..\Src\Message.h"\\r
+       "..\..\Src\MsgRes\MsgDef.h"\\r
+       "..\..\Src\Property.h"\\r
+       "..\..\Src\SearchDlg.h"\\r
+       "..\..\Src\Tombo.h"\\r
+       "..\..\Src\TomboLib\DialogTemplate.h"\\r
+       "..\..\Src\TomboLib\File.h"\\r
+       "..\..\Src\TomboLib\Logger.h"\\r
+       "..\..\Src\TomboLib\SipControl.h"\\r
+       "..\..\Src\TomboLib\Uniconv.h"\\r
+       \r
+\r
+!ELSEIF  "$(CFG)" == "Tombo - Win32 (WCE SH4) Release"\r
+\r
+DEP_CPP_SEARC=\\r
+       "..\..\Src\Property.h"\\r
+       "..\..\Src\SearchDlg.h"\\r
+       "..\..\Src\Tombo.h"\\r
+       \r
+NODEP_CPP_SEARC=\\r
+       "..\..\Src\File.h"\\r
+       "..\..\Src\Logger.h"\\r
+       "..\..\Src\SipControl.h"\\r
+       "..\..\Src\Uniconv.h"\\r
+       \r
+\r
+!ELSEIF  "$(CFG)" == "Tombo - Win32 (WCE SH4) Debug"\r
+\r
+DEP_CPP_SEARC=\\r
+       "..\..\Src\Property.h"\\r
+       "..\..\Src\SearchDlg.h"\\r
+       "..\..\Src\Tombo.h"\\r
+       \r
+NODEP_CPP_SEARC=\\r
+       "..\..\Src\File.h"\\r
+       "..\..\Src\Logger.h"\\r
+       "..\..\Src\SipControl.h"\\r
+       "..\..\Src\Uniconv.h"\\r
+       \r
+\r
+!ELSEIF  "$(CFG)" == "Tombo - Win32 (WCE SH3) Release"\r
+\r
+DEP_CPP_SEARC=\\r
+       "..\..\Src\Message.h"\\r
+       "..\..\Src\MsgRes\MsgDef.h"\\r
+       "..\..\Src\Property.h"\\r
+       "..\..\Src\SearchDlg.h"\\r
+       "..\..\Src\Tombo.h"\\r
+       "..\..\Src\TomboLib\DialogTemplate.h"\\r
+       "..\..\Src\TomboLib\File.h"\\r
+       "..\..\Src\TomboLib\Logger.h"\\r
+       "..\..\Src\TomboLib\SipControl.h"\\r
+       "..\..\Src\TomboLib\Uniconv.h"\\r
+       \r
+\r
+!ELSEIF  "$(CFG)" == "Tombo - Win32 (WCE ARM) Release"\r
+\r
+DEP_CPP_SEARC=\\r
+       "..\..\Src\Message.h"\\r
+       "..\..\Src\MsgRes\MsgDef.h"\\r
+       "..\..\Src\Property.h"\\r
+       "..\..\Src\SearchDlg.h"\\r
+       "..\..\Src\Tombo.h"\\r
+       "..\..\Src\TomboLib\DialogTemplate.h"\\r
+       "..\..\Src\TomboLib\File.h"\\r
+       "..\..\Src\TomboLib\Logger.h"\\r
+       "..\..\Src\TomboLib\SipControl.h"\\r
+       "..\..\Src\TomboLib\Uniconv.h"\\r
+       \r
+\r
+!ELSEIF  "$(CFG)" == "Tombo - Win32 (WCE ARM) ReleaseVGA"\r
+\r
+DEP_CPP_SEARC=\\r
+       "..\..\Src\Message.h"\\r
+       "..\..\Src\MsgRes\MsgDef.h"\\r
+       "..\..\Src\Property.h"\\r
+       "..\..\Src\SearchDlg.h"\\r
+       "..\..\Src\Tombo.h"\\r
+       "..\..\Src\TomboLib\DialogTemplate.h"\\r
+       "..\..\Src\TomboLib\File.h"\\r
+       "..\..\Src\TomboLib\Logger.h"\\r
+       "..\..\Src\TomboLib\SipControl.h"\\r
+       "..\..\Src\TomboLib\Uniconv.h"\\r
+       \r
+\r
+!ENDIF \r
+\r
+# End Source File\r
+# Begin Source File\r
+\r
+SOURCE=..\..\Src\SearchEngine.cpp\r
+\r
+!IF  "$(CFG)" == "Tombo - Win32 (WCE MIPS) Release"\r
+\r
+DEP_CPP_SEARCH=\\r
+       "..\..\Src\Property.h"\\r
+       "..\..\Src\Repository.h"\\r
+       "..\..\Src\SearchEngine.h"\\r
+       "..\..\Src\Tombo.h"\\r
+       "..\..\Src\TomboLib\File.h"\\r
+       "..\..\Src\TomboLib\Logger.h"\\r
+       "..\..\Src\TomboLib\TString.h"\\r
+       "..\..\Src\TomboLib\Uniconv.h"\\r
+       "..\..\Src\TomboURI.h"\\r
+       \r
+\r
+!ELSEIF  "$(CFG)" == "Tombo - Win32 (WCE SH4) Release"\r
+\r
+DEP_CPP_SEARCH=\\r
+       "..\..\Src\SearchEngine.h"\\r
+       \r
+\r
+!ELSEIF  "$(CFG)" == "Tombo - Win32 (WCE SH4) Debug"\r
+\r
+DEP_CPP_SEARCH=\\r
+       "..\..\Src\SearchEngine.h"\\r
+       \r
+\r
+!ELSEIF  "$(CFG)" == "Tombo - Win32 (WCE SH3) Release"\r
+\r
+DEP_CPP_SEARCH=\\r
+       "..\..\Src\Property.h"\\r
+       "..\..\Src\Repository.h"\\r
+       "..\..\Src\SearchEngine.h"\\r
+       "..\..\Src\Tombo.h"\\r
+       "..\..\Src\TomboLib\File.h"\\r
+       "..\..\Src\TomboLib\Logger.h"\\r
+       "..\..\Src\TomboLib\TString.h"\\r
+       "..\..\Src\TomboLib\Uniconv.h"\\r
+       "..\..\Src\TomboURI.h"\\r
+       \r
+\r
+!ELSEIF  "$(CFG)" == "Tombo - Win32 (WCE ARM) Release"\r
+\r
+DEP_CPP_SEARCH=\\r
+       "..\..\Src\Property.h"\\r
+       "..\..\Src\Repository.h"\\r
+       "..\..\Src\SearchEngine.h"\\r
+       "..\..\Src\Tombo.h"\\r
+       "..\..\Src\TomboLib\AutoPtr.h"\\r
+       "..\..\Src\TomboLib\File.h"\\r
+       "..\..\Src\TomboLib\Logger.h"\\r
+       "..\..\Src\TomboLib\TString.h"\\r
+       "..\..\Src\TomboLib\Uniconv.h"\\r
+       "..\..\Src\TomboURI.h"\\r
+       \r
+\r
+!ELSEIF  "$(CFG)" == "Tombo - Win32 (WCE ARM) ReleaseVGA"\r
+\r
+DEP_CPP_SEARCH=\\r
+       "..\..\Src\Property.h"\\r
+       "..\..\Src\Repository.h"\\r
+       "..\..\Src\SearchEngine.h"\\r
+       "..\..\Src\Tombo.h"\\r
+       "..\..\Src\TomboLib\AutoPtr.h"\\r
+       "..\..\Src\TomboLib\File.h"\\r
+       "..\..\Src\TomboLib\Logger.h"\\r
+       "..\..\Src\TomboLib\TString.h"\\r
+       "..\..\Src\TomboLib\Uniconv.h"\\r
+       "..\..\Src\TomboURI.h"\\r
+       \r
+\r
+!ENDIF \r
+\r
+# End Source File\r
+# Begin Source File\r
+\r
+SOURCE=..\..\Src\SearchTree.cpp\r
+\r
+!IF  "$(CFG)" == "Tombo - Win32 (WCE MIPS) Release"\r
+\r
+DEP_CPP_SEARCHT=\\r
+       "..\..\Src\Message.h"\\r
+       "..\..\Src\MsgRes\MsgDef.h"\\r
+       "..\..\Src\Property.h"\\r
+       "..\..\Src\Repository.h"\\r
+       "..\..\Src\SearchEngine.h"\\r
+       "..\..\Src\SearchTree.h"\\r
+       "..\..\Src\Tombo.h"\\r
+       "..\..\Src\TomboLib\DialogTemplate.h"\\r
+       "..\..\Src\TomboLib\File.h"\\r
+       "..\..\Src\TomboLib\Logger.h"\\r
+       "..\..\Src\TomboLib\TString.h"\\r
+       "..\..\Src\TomboLib\Uniconv.h"\\r
+       "..\..\Src\TomboLib\VarBuffer.h"\\r
+       "..\..\Src\TomboURI.h"\\r
+       "..\..\Src\URIScanner.h"\\r
+       \r
+\r
+!ELSEIF  "$(CFG)" == "Tombo - Win32 (WCE SH4) Release"\r
+\r
+DEP_CPP_SEARCHT=\\r
+       "..\..\Src\DirList.h"\\r
+       "..\..\Src\SearchEngine.h"\\r
+       "..\..\Src\SearchTree.h"\\r
+       \r
+NODEP_CPP_SEARCHT=\\r
+       "..\..\Src\TString.h"\\r
+       "..\..\Src\VarBuffer.h"\\r
+       \r
+\r
+!ELSEIF  "$(CFG)" == "Tombo - Win32 (WCE SH4) Debug"\r
+\r
+DEP_CPP_SEARCHT=\\r
+       "..\..\Src\DirList.h"\\r
+       "..\..\Src\SearchEngine.h"\\r
+       "..\..\Src\SearchTree.h"\\r
+       \r
+NODEP_CPP_SEARCHT=\\r
+       "..\..\Src\TString.h"\\r
+       "..\..\Src\VarBuffer.h"\\r
+       \r
+\r
+!ELSEIF  "$(CFG)" == "Tombo - Win32 (WCE SH3) Release"\r
+\r
+DEP_CPP_SEARCHT=\\r
+       "..\..\Src\Message.h"\\r
+       "..\..\Src\MsgRes\MsgDef.h"\\r
+       "..\..\Src\Property.h"\\r
+       "..\..\Src\Repository.h"\\r
+       "..\..\Src\SearchEngine.h"\\r
+       "..\..\Src\SearchTree.h"\\r
+       "..\..\Src\Tombo.h"\\r
+       "..\..\Src\TomboLib\DialogTemplate.h"\\r
+       "..\..\Src\TomboLib\File.h"\\r
+       "..\..\Src\TomboLib\Logger.h"\\r
+       "..\..\Src\TomboLib\TString.h"\\r
+       "..\..\Src\TomboLib\Uniconv.h"\\r
+       "..\..\Src\TomboLib\VarBuffer.h"\\r
+       "..\..\Src\TomboURI.h"\\r
+       "..\..\Src\URIScanner.h"\\r
+       \r
+\r
+!ELSEIF  "$(CFG)" == "Tombo - Win32 (WCE ARM) Release"\r
+\r
+DEP_CPP_SEARCHT=\\r
+       "..\..\Src\Message.h"\\r
+       "..\..\Src\MsgRes\MsgDef.h"\\r
+       "..\..\Src\Property.h"\\r
+       "..\..\Src\Repository.h"\\r
+       "..\..\Src\SearchEngine.h"\\r
+       "..\..\Src\SearchTree.h"\\r
+       "..\..\Src\Tombo.h"\\r
+       "..\..\Src\TomboLib\DialogTemplate.h"\\r
+       "..\..\Src\TomboLib\File.h"\\r
+       "..\..\Src\TomboLib\Logger.h"\\r
+       "..\..\Src\TomboLib\TString.h"\\r
+       "..\..\Src\TomboLib\Uniconv.h"\\r
+       "..\..\Src\TomboLib\VarBuffer.h"\\r
+       "..\..\Src\TomboURI.h"\\r
+       "..\..\Src\URIScanner.h"\\r
+       \r
+\r
+!ELSEIF  "$(CFG)" == "Tombo - Win32 (WCE ARM) ReleaseVGA"\r
+\r
+DEP_CPP_SEARCHT=\\r
+       "..\..\Src\Message.h"\\r
+       "..\..\Src\MsgRes\MsgDef.h"\\r
+       "..\..\Src\Property.h"\\r
+       "..\..\Src\Repository.h"\\r
+       "..\..\Src\SearchEngine.h"\\r
+       "..\..\Src\SearchTree.h"\\r
+       "..\..\Src\Tombo.h"\\r
+       "..\..\Src\TomboLib\DialogTemplate.h"\\r
+       "..\..\Src\TomboLib\File.h"\\r
+       "..\..\Src\TomboLib\Logger.h"\\r
+       "..\..\Src\TomboLib\TString.h"\\r
+       "..\..\Src\TomboLib\Uniconv.h"\\r
+       "..\..\Src\TomboLib\VarBuffer.h"\\r
+       "..\..\Src\TomboURI.h"\\r
+       "..\..\Src\URIScanner.h"\\r
+       \r
+\r
+!ENDIF \r
+\r
+# End Source File\r
+# Begin Source File\r
+\r
+SOURCE=..\..\Src\SelectViewWndProc.cpp\r
+\r
+!IF  "$(CFG)" == "Tombo - Win32 (WCE MIPS) Release"\r
+\r
+DEP_CPP_SELEC=\\r
+       "..\..\Src\MemoSelectView.h"\\r
+       "..\..\Src\Property.h"\\r
+       "..\..\Src\Tombo.h"\\r
+       "..\..\Src\TomboLib\File.h"\\r
+       "..\..\Src\TomboLib\Logger.h"\\r
+       \r
+NODEP_CPP_SELEC=\\r
+       ".\ipapi.h"\\r
+       ".\ygshell.h"\\r
+       \r
+\r
+!ELSEIF  "$(CFG)" == "Tombo - Win32 (WCE SH4) Release"\r
+\r
+DEP_CPP_SELEC=\\r
+       "..\..\Src\MemoSelectView.h"\\r
+       \r
+\r
+!ELSEIF  "$(CFG)" == "Tombo - Win32 (WCE SH4) Debug"\r
+\r
+DEP_CPP_SELEC=\\r
+       "..\..\Src\MemoSelectView.h"\\r
+       \r
+\r
+!ELSEIF  "$(CFG)" == "Tombo - Win32 (WCE SH3) Release"\r
+\r
+DEP_CPP_SELEC=\\r
+       "..\..\Src\MemoSelectView.h"\\r
+       "..\..\Src\Property.h"\\r
+       "..\..\Src\Tombo.h"\\r
+       "..\..\Src\TomboLib\File.h"\\r
+       "..\..\Src\TomboLib\Logger.h"\\r
+       \r
+NODEP_CPP_SELEC=\\r
+       ".\ipapi.h"\\r
+       ".\ygshell.h"\\r
+       \r
+\r
+!ELSEIF  "$(CFG)" == "Tombo - Win32 (WCE ARM) Release"\r
+\r
+DEP_CPP_SELEC=\\r
+       "..\..\Src\MemoSelectView.h"\\r
+       "..\..\Src\Property.h"\\r
+       "..\..\Src\Tombo.h"\\r
+       "..\..\Src\TomboLib\File.h"\\r
+       "..\..\Src\TomboLib\Logger.h"\\r
+       \r
+NODEP_CPP_SELEC=\\r
+       ".\ipapi.h"\\r
+       ".\ygshell.h"\\r
+       \r
+\r
+!ELSEIF  "$(CFG)" == "Tombo - Win32 (WCE ARM) ReleaseVGA"\r
+\r
+DEP_CPP_SELEC=\\r
+       "..\..\Src\MemoSelectView.h"\\r
+       "..\..\Src\Property.h"\\r
+       "..\..\Src\Tombo.h"\\r
+       "..\..\Src\TomboLib\File.h"\\r
+       "..\..\Src\TomboLib\Logger.h"\\r
+       {$(INCLUDE)}"aygshell.h"\\r
+       {$(INCLUDE)}"sipapi.h"\\r
+       \r
+\r
+!ENDIF \r
+\r
+# End Source File\r
+# Begin Source File\r
+\r
+SOURCE=..\..\Src\TomboLib\SipControl.cpp\r
+\r
+!IF  "$(CFG)" == "Tombo - Win32 (WCE MIPS) Release"\r
+\r
+DEP_CPP_SIPCO=\\r
+       "..\..\Src\Tombo.h"\\r
+       "..\..\Src\TomboLib\File.h"\\r
+       "..\..\Src\TomboLib\Logger.h"\\r
+       "..\..\Src\TomboLib\SipControl.h"\\r
+       \r
+NODEP_CPP_SIPCO=\\r
+       ".\ip.h"\\r
+       ".\ipapi.h"\\r
+       ".\ygshell.h"\\r
+       \r
+\r
+!ELSEIF  "$(CFG)" == "Tombo - Win32 (WCE SH4) Release"\r
+\r
+DEP_CPP_SIPCO=\\r
+       "..\..\Src\Tombo.h"\\r
+       "..\..\Src\TomboLib\File.h"\\r
+       "..\..\Src\TomboLib\Logger.h"\\r
+       "..\..\Src\TomboLib\SipControl.h"\\r
+       \r
+\r
+!ELSEIF  "$(CFG)" == "Tombo - Win32 (WCE SH4) Debug"\r
+\r
+DEP_CPP_SIPCO=\\r
+       "..\..\Src\Tombo.h"\\r
+       "..\..\Src\TomboLib\File.h"\\r
+       "..\..\Src\TomboLib\Logger.h"\\r
+       "..\..\Src\TomboLib\SipControl.h"\\r
+       \r
+\r
+!ELSEIF  "$(CFG)" == "Tombo - Win32 (WCE SH3) Release"\r
+\r
+DEP_CPP_SIPCO=\\r
+       "..\..\Src\Tombo.h"\\r
+       "..\..\Src\TomboLib\File.h"\\r
+       "..\..\Src\TomboLib\Logger.h"\\r
+       "..\..\Src\TomboLib\SipControl.h"\\r
+       \r
+NODEP_CPP_SIPCO=\\r
+       ".\ip.h"\\r
+       ".\ipapi.h"\\r
+       ".\ygshell.h"\\r
+       \r
+\r
+!ELSEIF  "$(CFG)" == "Tombo - Win32 (WCE ARM) Release"\r
+\r
+DEP_CPP_SIPCO=\\r
+       "..\..\Src\Tombo.h"\\r
+       "..\..\Src\TomboLib\File.h"\\r
+       "..\..\Src\TomboLib\Logger.h"\\r
+       "..\..\Src\TomboLib\SipControl.h"\\r
+       \r
+NODEP_CPP_SIPCO=\\r
+       ".\ip.h"\\r
+       ".\ipapi.h"\\r
+       ".\ygshell.h"\\r
+       \r
+\r
+!ELSEIF  "$(CFG)" == "Tombo - Win32 (WCE ARM) ReleaseVGA"\r
+\r
+DEP_CPP_SIPCO=\\r
+       "..\..\Src\Tombo.h"\\r
+       "..\..\Src\TomboLib\File.h"\\r
+       "..\..\Src\TomboLib\Logger.h"\\r
+       "..\..\Src\TomboLib\SipControl.h"\\r
+       {$(INCLUDE)}"aygshell.h"\\r
+       {$(INCLUDE)}"sip.h"\\r
+       {$(INCLUDE)}"sipapi.h"\\r
+       \r
+\r
+!ENDIF \r
+\r
+# End Source File\r
+# Begin Source File\r
+\r
+SOURCE=..\..\Src\StatusBar.cpp\r
+\r
+!IF  "$(CFG)" == "Tombo - Win32 (WCE MIPS) Release"\r
+\r
+DEP_CPP_STATU=\\r
+       "..\..\Src\StatusBar.h"\\r
+       \r
+\r
+!ELSEIF  "$(CFG)" == "Tombo - Win32 (WCE SH4) Release"\r
+\r
+DEP_CPP_STATU=\\r
+       "..\..\Src\StatusBar.h"\\r
+       \r
+\r
+!ELSEIF  "$(CFG)" == "Tombo - Win32 (WCE SH4) Debug"\r
+\r
+DEP_CPP_STATU=\\r
+       "..\..\Src\StatusBar.h"\\r
+       \r
+\r
+!ELSEIF  "$(CFG)" == "Tombo - Win32 (WCE SH3) Release"\r
+\r
+DEP_CPP_STATU=\\r
+       "..\..\Src\StatusBar.h"\\r
+       \r
+\r
+!ELSEIF  "$(CFG)" == "Tombo - Win32 (WCE ARM) Release"\r
+\r
+DEP_CPP_STATU=\\r
+       "..\..\Src\StatusBar.h"\\r
+       \r
+\r
+!ELSEIF  "$(CFG)" == "Tombo - Win32 (WCE ARM) ReleaseVGA"\r
+\r
+DEP_CPP_STATU=\\r
+       "..\..\Src\StatusBar.h"\\r
+       \r
+\r
+!ENDIF \r
+\r
+# End Source File\r
+# Begin Source File\r
+\r
+SOURCE=..\..\Src\YAEdit\StringSplitter.cpp\r
+\r
+!IF  "$(CFG)" == "Tombo - Win32 (WCE MIPS) Release"\r
+\r
+DEP_CPP_STRIN=\\r
+       "..\..\Src\TomboLib\VarBuffer.h"\\r
+       "..\..\Src\YAEdit\StringSplitter.h"\\r
+       \r
+\r
+!ELSEIF  "$(CFG)" == "Tombo - Win32 (WCE SH4) Release"\r
+\r
+DEP_CPP_STRIN=\\r
+       "..\..\Src\TomboLib\VarBuffer.h"\\r
+       "..\..\Src\YAEdit\StringSplitter.h"\\r
+       \r
+\r
+!ELSEIF  "$(CFG)" == "Tombo - Win32 (WCE SH4) Debug"\r
+\r
+DEP_CPP_STRIN=\\r
+       "..\..\Src\TomboLib\VarBuffer.h"\\r
+       "..\..\Src\YAEdit\StringSplitter.h"\\r
+       \r
+\r
+!ELSEIF  "$(CFG)" == "Tombo - Win32 (WCE SH3) Release"\r
+\r
+DEP_CPP_STRIN=\\r
+       "..\..\Src\TomboLib\VarBuffer.h"\\r
+       "..\..\Src\YAEdit\StringSplitter.h"\\r
+       \r
+\r
+!ELSEIF  "$(CFG)" == "Tombo - Win32 (WCE ARM) Release"\r
+\r
+DEP_CPP_STRIN=\\r
+       "..\..\Src\TomboLib\VarBuffer.h"\\r
+       "..\..\Src\YAEdit\StringSplitter.h"\\r
+       \r
+\r
+!ELSEIF  "$(CFG)" == "Tombo - Win32 (WCE ARM) ReleaseVGA"\r
+\r
+DEP_CPP_STRIN=\\r
+       "..\..\Src\TomboLib\VarBuffer.h"\\r
+       "..\..\Src\YAEdit\StringSplitter.h"\\r
+       \r
+\r
+!ENDIF \r
+\r
+# End Source File\r
+# Begin Source File\r
+\r
+SOURCE=.\res\Tombo.rc\r
+\r
+!IF  "$(CFG)" == "Tombo - Win32 (WCE MIPS) Release"\r
+\r
+!ELSEIF  "$(CFG)" == "Tombo - Win32 (WCE SH4) Release"\r
+\r
+!ELSEIF  "$(CFG)" == "Tombo - Win32 (WCE SH4) Debug"\r
+\r
+!ELSEIF  "$(CFG)" == "Tombo - Win32 (WCE SH3) Release"\r
+\r
+!ELSEIF  "$(CFG)" == "Tombo - Win32 (WCE ARM) Release"\r
+\r
+!ELSEIF  "$(CFG)" == "Tombo - Win32 (WCE ARM) ReleaseVGA"\r
+\r
+!ENDIF \r
+\r
+# End Source File\r
+# Begin Source File\r
+\r
+SOURCE=..\..\Src\TomboPropertyTab.cpp\r
+\r
+!IF  "$(CFG)" == "Tombo - Win32 (WCE MIPS) Release"\r
+\r
+DEP_CPP_TOMBO=\\r
+       "..\..\Src\FileSelector.h"\\r
+       "..\..\Src\Message.h"\\r
+       "..\..\Src\MsgRes\MsgDef.h"\\r
+       "..\..\Src\Property.h"\\r
+       "..\..\Src\Tombo.h"\\r
+       "..\..\Src\TomboLib\DialogTemplate.h"\\r
+       "..\..\Src\TomboLib\File.h"\\r
+       "..\..\Src\TomboLib\Logger.h"\\r
+       "..\..\Src\TomboLib\PropertyPage.h"\\r
+       "..\..\Src\TomboLib\TString.h"\\r
+       "..\..\Src\TomboLib\Uniconv.h"\\r
+       "..\..\Src\TomboPropertyTab.h"\\r
+       \r
+\r
+!ELSEIF  "$(CFG)" == "Tombo - Win32 (WCE SH4) Release"\r
+\r
+DEP_CPP_TOMBO=\\r
+       "..\..\Src\FileSelector.h"\\r
+       "..\..\Src\Message.h"\\r
+       "..\..\Src\MsgRes\MsgDef.h"\\r
+       "..\..\Src\Property.h"\\r
+       "..\..\Src\Tombo.h"\\r
+       "..\..\Src\TomboLib\DialogTemplate.h"\\r
+       "..\..\Src\TomboLib\File.h"\\r
+       "..\..\Src\TomboLib\Logger.h"\\r
+       "..\..\Src\TomboLib\PropertyPage.h"\\r
+       "..\..\Src\TomboLib\TString.h"\\r
+       "..\..\Src\TomboLib\Uniconv.h"\\r
+       "..\..\Src\TomboPropertyTab.h"\\r
+       \r
+\r
+!ELSEIF  "$(CFG)" == "Tombo - Win32 (WCE SH4) Debug"\r
+\r
+DEP_CPP_TOMBO=\\r
+       "..\..\Src\FileSelector.h"\\r
+       "..\..\Src\Message.h"\\r
+       "..\..\Src\MsgRes\MsgDef.h"\\r
+       "..\..\Src\Property.h"\\r
+       "..\..\Src\Tombo.h"\\r
+       "..\..\Src\TomboLib\DialogTemplate.h"\\r
+       "..\..\Src\TomboLib\File.h"\\r
+       "..\..\Src\TomboLib\Logger.h"\\r
+       "..\..\Src\TomboLib\PropertyPage.h"\\r
+       "..\..\Src\TomboLib\TString.h"\\r
+       "..\..\Src\TomboLib\Uniconv.h"\\r
+       "..\..\Src\TomboPropertyTab.h"\\r
+       \r
+\r
+!ELSEIF  "$(CFG)" == "Tombo - Win32 (WCE SH3) Release"\r
+\r
+DEP_CPP_TOMBO=\\r
+       "..\..\Src\FileSelector.h"\\r
+       "..\..\Src\Message.h"\\r
+       "..\..\Src\MsgRes\MsgDef.h"\\r
+       "..\..\Src\Property.h"\\r
+       "..\..\Src\Tombo.h"\\r
+       "..\..\Src\TomboLib\DialogTemplate.h"\\r
+       "..\..\Src\TomboLib\File.h"\\r
+       "..\..\Src\TomboLib\Logger.h"\\r
+       "..\..\Src\TomboLib\PropertyPage.h"\\r
+       "..\..\Src\TomboLib\TString.h"\\r
+       "..\..\Src\TomboLib\Uniconv.h"\\r
+       "..\..\Src\TomboPropertyTab.h"\\r
+       \r
+\r
+!ELSEIF  "$(CFG)" == "Tombo - Win32 (WCE ARM) Release"\r
+\r
+DEP_CPP_TOMBO=\\r
+       "..\..\Src\FileSelector.h"\\r
+       "..\..\Src\Message.h"\\r
+       "..\..\Src\MsgRes\MsgDef.h"\\r
+       "..\..\Src\Property.h"\\r
+       "..\..\Src\Tombo.h"\\r
+       "..\..\Src\TomboLib\DialogTemplate.h"\\r
+       "..\..\Src\TomboLib\File.h"\\r
+       "..\..\Src\TomboLib\Logger.h"\\r
+       "..\..\Src\TomboLib\PropertyPage.h"\\r
+       "..\..\Src\TomboLib\TString.h"\\r
+       "..\..\Src\TomboLib\Uniconv.h"\\r
+       "..\..\Src\TomboPropertyTab.h"\\r
+       \r
+\r
+!ELSEIF  "$(CFG)" == "Tombo - Win32 (WCE ARM) ReleaseVGA"\r
+\r
+DEP_CPP_TOMBO=\\r
+       "..\..\Src\FileSelector.h"\\r
+       "..\..\Src\Message.h"\\r
+       "..\..\Src\MsgRes\MsgDef.h"\\r
+       "..\..\Src\Property.h"\\r
+       "..\..\Src\Tombo.h"\\r
+       "..\..\Src\TomboLib\DialogTemplate.h"\\r
+       "..\..\Src\TomboLib\File.h"\\r
+       "..\..\Src\TomboLib\Logger.h"\\r
+       "..\..\Src\TomboLib\PropertyPage.h"\\r
+       "..\..\Src\TomboLib\TString.h"\\r
+       "..\..\Src\TomboLib\Uniconv.h"\\r
+       "..\..\Src\TomboPropertyTab.h"\\r
+       \r
+\r
+!ENDIF \r
+\r
+# End Source File\r
+# Begin Source File\r
+\r
+SOURCE=..\..\Src\TomboURI.cpp\r
+\r
+!IF  "$(CFG)" == "Tombo - Win32 (WCE MIPS) Release"\r
+\r
+DEP_CPP_TOMBOU=\\r
+       "..\..\Src\TomboLib\TString.h"\\r
+       "..\..\Src\TomboURI.h"\\r
+       \r
+\r
+!ELSEIF  "$(CFG)" == "Tombo - Win32 (WCE SH4) Release"\r
+\r
+DEP_CPP_TOMBOU=\\r
+       "..\..\Src\TomboLib\TString.h"\\r
+       "..\..\Src\TomboURI.h"\\r
+       \r
+\r
+!ELSEIF  "$(CFG)" == "Tombo - Win32 (WCE SH4) Debug"\r
+\r
+DEP_CPP_TOMBOU=\\r
+       "..\..\Src\TomboLib\TString.h"\\r
+       "..\..\Src\TomboURI.h"\\r
+       \r
+\r
+!ELSEIF  "$(CFG)" == "Tombo - Win32 (WCE SH3) Release"\r
+\r
+DEP_CPP_TOMBOU=\\r
+       "..\..\Src\TomboLib\TString.h"\\r
+       "..\..\Src\TomboURI.h"\\r
+       \r
+\r
+!ELSEIF  "$(CFG)" == "Tombo - Win32 (WCE ARM) Release"\r
+\r
+DEP_CPP_TOMBOU=\\r
+       "..\..\Src\TomboLib\TString.h"\\r
+       "..\..\Src\TomboURI.h"\\r
+       \r
+\r
+!ELSEIF  "$(CFG)" == "Tombo - Win32 (WCE ARM) ReleaseVGA"\r
+\r
+DEP_CPP_TOMBOU=\\r
+       "..\..\Src\TomboLib\TString.h"\\r
+       "..\..\Src\TomboURI.h"\\r
+       \r
+\r
+!ENDIF \r
+\r
+# End Source File\r
+# Begin Source File\r
+\r
+SOURCE=..\..\Src\TreeViewItem.cpp\r
+\r
+!IF  "$(CFG)" == "Tombo - Win32 (WCE MIPS) Release"\r
+\r
+DEP_CPP_TREEV=\\r
+       "..\..\Src\HPCPlatform.h"\\r
+       "..\..\Src\LagendaPlatform.h"\\r
+       "..\..\Src\MainFrame.h"\\r
+       "..\..\Src\MemoDetailsView.h"\\r
+       "..\..\Src\MemoManager.h"\\r
+       "..\..\Src\MemoSelectView.h"\\r
+       "..\..\Src\Message.h"\\r
+       "..\..\Src\MsgRes\MsgDef.h"\\r
+       "..\..\Src\PasswordManager.h"\\r
+       "..\..\Src\PlatformLayer.h"\\r
+       "..\..\Src\PocketPCPlatform.h"\\r
+       "..\..\Src\Property.h"\\r
+       "..\..\Src\PsPCPlatform.h"\\r
+       "..\..\Src\Repository.h"\\r
+       "..\..\Src\Tombo.h"\\r
+       "..\..\Src\TomboLib\AutoPtr.h"\\r
+       "..\..\Src\TomboLib\DirectoryScanner.h"\\r
+       "..\..\Src\TomboLib\File.h"\\r
+       "..\..\Src\TomboLib\Logger.h"\\r
+       "..\..\Src\TomboLib\TString.h"\\r
+       "..\..\Src\TomboLib\Uniconv.h"\\r
+       "..\..\Src\TomboLib\VarBuffer.h"\\r
+       "..\..\Src\TomboURI.h"\\r
+       "..\..\Src\TreeViewItem.h"\\r
+       "..\..\Src\TSParser.h"\\r
+       "..\..\Src\URIScanner.h"\\r
+       "..\..\Src\VFManager.h"\\r
+       "..\..\Src\VFStream.h"\\r
+       "..\..\Src\Win32Platform.h"\\r
+       \r
+NODEP_CPP_TREEV=\\r
+       "..\..\Src\COShellAPI.h"\\r
+       \r
+\r
+!ELSEIF  "$(CFG)" == "Tombo - Win32 (WCE SH4) Release"\r
+\r
+DEP_CPP_TREEV=\\r
+       "..\..\Src\MemoNote.h"\\r
+       "..\..\Src\MemoSelectView.h"\\r
+       "..\..\Src\Tombo.h"\\r
+       "..\..\Src\TreeViewItem.h"\\r
+       \r
+NODEP_CPP_TREEV=\\r
+       "..\..\Src\File.h"\\r
+       "..\..\Src\Logger.h"\\r
+       "..\..\Src\TString.h"\\r
+       \r
+\r
+!ELSEIF  "$(CFG)" == "Tombo - Win32 (WCE SH4) Debug"\r
+\r
+DEP_CPP_TREEV=\\r
+       "..\..\Src\MemoNote.h"\\r
+       "..\..\Src\MemoSelectView.h"\\r
+       "..\..\Src\Tombo.h"\\r
+       "..\..\Src\TreeViewItem.h"\\r
+       \r
+NODEP_CPP_TREEV=\\r
+       "..\..\Src\File.h"\\r
+       "..\..\Src\Logger.h"\\r
+       "..\..\Src\TString.h"\\r
+       \r
+\r
+!ELSEIF  "$(CFG)" == "Tombo - Win32 (WCE SH3) Release"\r
+\r
+DEP_CPP_TREEV=\\r
+       "..\..\Src\HPCPlatform.h"\\r
+       "..\..\Src\LagendaPlatform.h"\\r
+       "..\..\Src\MainFrame.h"\\r
+       "..\..\Src\MemoDetailsView.h"\\r
+       "..\..\Src\MemoManager.h"\\r
+       "..\..\Src\MemoSelectView.h"\\r
+       "..\..\Src\Message.h"\\r
+       "..\..\Src\MsgRes\MsgDef.h"\\r
+       "..\..\Src\PasswordManager.h"\\r
+       "..\..\Src\PlatformLayer.h"\\r
+       "..\..\Src\PocketPCPlatform.h"\\r
+       "..\..\Src\Property.h"\\r
+       "..\..\Src\PsPCPlatform.h"\\r
+       "..\..\Src\Repository.h"\\r
+       "..\..\Src\Tombo.h"\\r
+       "..\..\Src\TomboLib\AutoPtr.h"\\r
+       "..\..\Src\TomboLib\DirectoryScanner.h"\\r
+       "..\..\Src\TomboLib\File.h"\\r
+       "..\..\Src\TomboLib\Logger.h"\\r
+       "..\..\Src\TomboLib\TString.h"\\r
+       "..\..\Src\TomboLib\Uniconv.h"\\r
+       "..\..\Src\TomboLib\VarBuffer.h"\\r
+       "..\..\Src\TomboURI.h"\\r
+       "..\..\Src\TreeViewItem.h"\\r
+       "..\..\Src\TSParser.h"\\r
+       "..\..\Src\URIScanner.h"\\r
+       "..\..\Src\VFManager.h"\\r
+       "..\..\Src\VFStream.h"\\r
+       "..\..\Src\Win32Platform.h"\\r
+       \r
+NODEP_CPP_TREEV=\\r
+       "..\..\Src\COShellAPI.h"\\r
+       \r
+\r
+!ELSEIF  "$(CFG)" == "Tombo - Win32 (WCE ARM) Release"\r
+\r
+DEP_CPP_TREEV=\\r
+       "..\..\Src\HPCPlatform.h"\\r
+       "..\..\Src\LagendaPlatform.h"\\r
+       "..\..\Src\MainFrame.h"\\r
+       "..\..\Src\MemoDetailsView.h"\\r
+       "..\..\Src\MemoManager.h"\\r
+       "..\..\Src\MemoSelectView.h"\\r
+       "..\..\Src\Message.h"\\r
+       "..\..\Src\MsgRes\MsgDef.h"\\r
+       "..\..\Src\PasswordManager.h"\\r
+       "..\..\Src\PlatformLayer.h"\\r
+       "..\..\Src\PocketPCPlatform.h"\\r
+       "..\..\Src\Property.h"\\r
+       "..\..\Src\PsPCPlatform.h"\\r
+       "..\..\Src\Repository.h"\\r
+       "..\..\Src\Tombo.h"\\r
+       "..\..\Src\TomboLib\AutoPtr.h"\\r
+       "..\..\Src\TomboLib\DirectoryScanner.h"\\r
+       "..\..\Src\TomboLib\File.h"\\r
+       "..\..\Src\TomboLib\Logger.h"\\r
+       "..\..\Src\TomboLib\TString.h"\\r
+       "..\..\Src\TomboLib\Uniconv.h"\\r
+       "..\..\Src\TomboLib\VarBuffer.h"\\r
+       "..\..\Src\TomboURI.h"\\r
+       "..\..\Src\TreeViewItem.h"\\r
+       "..\..\Src\TSParser.h"\\r
+       "..\..\Src\URIScanner.h"\\r
+       "..\..\Src\VFManager.h"\\r
+       "..\..\Src\VFStream.h"\\r
+       "..\..\Src\Win32Platform.h"\\r
+       \r
+NODEP_CPP_TREEV=\\r
+       "..\..\Src\COShellAPI.h"\\r
+       \r
+\r
+!ELSEIF  "$(CFG)" == "Tombo - Win32 (WCE ARM) ReleaseVGA"\r
+\r
+DEP_CPP_TREEV=\\r
+       "..\..\Src\HPCPlatform.h"\\r
+       "..\..\Src\LagendaPlatform.h"\\r
+       "..\..\Src\MainFrame.h"\\r
+       "..\..\Src\MemoDetailsView.h"\\r
+       "..\..\Src\MemoManager.h"\\r
+       "..\..\Src\MemoSelectView.h"\\r
+       "..\..\Src\Message.h"\\r
+       "..\..\Src\MsgRes\MsgDef.h"\\r
+       "..\..\Src\PasswordManager.h"\\r
+       "..\..\Src\PlatformLayer.h"\\r
+       "..\..\Src\PocketPCPlatform.h"\\r
+       "..\..\Src\Property.h"\\r
+       "..\..\Src\PsPCPlatform.h"\\r
+       "..\..\Src\Repository.h"\\r
+       "..\..\Src\Tombo.h"\\r
+       "..\..\Src\TomboLib\AutoPtr.h"\\r
+       "..\..\Src\TomboLib\DirectoryScanner.h"\\r
+       "..\..\Src\TomboLib\File.h"\\r
+       "..\..\Src\TomboLib\Logger.h"\\r
+       "..\..\Src\TomboLib\TString.h"\\r
+       "..\..\Src\TomboLib\Uniconv.h"\\r
+       "..\..\Src\TomboLib\VarBuffer.h"\\r
+       "..\..\Src\TomboURI.h"\\r
+       "..\..\Src\TreeViewItem.h"\\r
+       "..\..\Src\TSParser.h"\\r
+       "..\..\Src\URIScanner.h"\\r
+       "..\..\Src\VFManager.h"\\r
+       "..\..\Src\VFStream.h"\\r
+       "..\..\Src\Win32Platform.h"\\r
+       \r
+NODEP_CPP_TREEV=\\r
+       "..\..\Src\COShellAPI.h"\\r
+       \r
+\r
+!ENDIF \r
+\r
+# End Source File\r
+# Begin Source File\r
+\r
+SOURCE=..\..\Src\TSParser.cpp\r
+\r
+!IF  "$(CFG)" == "Tombo - Win32 (WCE MIPS) Release"\r
+\r
+DEP_CPP_TSPAR=\\r
+       "..\..\expat\include\expat.h"\\r
+       "..\..\Src\Tombo.h"\\r
+       "..\..\Src\TomboLib\File.h"\\r
+       "..\..\Src\TomboLib\Logger.h"\\r
+       "..\..\Src\TomboLib\Uniconv.h"\\r
+       "..\..\Src\TomboLib\VarBuffer.h"\\r
+       "..\..\Src\TSParser.h"\\r
+       "..\..\Src\VFManager.h"\\r
+       "..\..\Src\VFStream.h"\\r
+       \r
+\r
+!ELSEIF  "$(CFG)" == "Tombo - Win32 (WCE SH4) Release"\r
+\r
+DEP_CPP_TSPAR=\\r
+       "..\..\Src\MemoSelectView.h"\\r
+       "..\..\Src\TreeViewItem.h"\\r
+       "..\..\Src\TSParser.h"\\r
+       \r
+NODEP_CPP_TSPAR=\\r
+       "..\..\Src\Uniconv.h"\\r
+       \r
+\r
+!ELSEIF  "$(CFG)" == "Tombo - Win32 (WCE SH4) Debug"\r
+\r
+DEP_CPP_TSPAR=\\r
+       "..\..\Src\MemoSelectView.h"\\r
+       "..\..\Src\TreeViewItem.h"\\r
+       "..\..\Src\TSParser.h"\\r
+       \r
+NODEP_CPP_TSPAR=\\r
+       "..\..\Src\Uniconv.h"\\r
+       \r
+\r
+!ELSEIF  "$(CFG)" == "Tombo - Win32 (WCE SH3) Release"\r
+\r
+DEP_CPP_TSPAR=\\r
+       "..\..\expat\include\expat.h"\\r
+       "..\..\Src\Tombo.h"\\r
+       "..\..\Src\TomboLib\File.h"\\r
+       "..\..\Src\TomboLib\Logger.h"\\r
+       "..\..\Src\TomboLib\Uniconv.h"\\r
+       "..\..\Src\TomboLib\VarBuffer.h"\\r
+       "..\..\Src\TSParser.h"\\r
+       "..\..\Src\VFManager.h"\\r
+       "..\..\Src\VFStream.h"\\r
+       \r
+\r
+!ELSEIF  "$(CFG)" == "Tombo - Win32 (WCE ARM) Release"\r
+\r
+DEP_CPP_TSPAR=\\r
+       "..\..\expat\include\expat.h"\\r
+       "..\..\Src\Tombo.h"\\r
+       "..\..\Src\TomboLib\File.h"\\r
+       "..\..\Src\TomboLib\Logger.h"\\r
+       "..\..\Src\TomboLib\Uniconv.h"\\r
+       "..\..\Src\TomboLib\VarBuffer.h"\\r
+       "..\..\Src\TSParser.h"\\r
+       "..\..\Src\VFManager.h"\\r
+       "..\..\Src\VFStream.h"\\r
+       \r
+\r
+!ELSEIF  "$(CFG)" == "Tombo - Win32 (WCE ARM) ReleaseVGA"\r
+\r
+DEP_CPP_TSPAR=\\r
+       "..\..\expat\include\expat.h"\\r
+       "..\..\Src\Tombo.h"\\r
+       "..\..\Src\TomboLib\AutoPtr.h"\\r
+       "..\..\Src\TomboLib\File.h"\\r
+       "..\..\Src\TomboLib\Logger.h"\\r
+       "..\..\Src\TomboLib\TString.h"\\r
+       "..\..\Src\TomboLib\Uniconv.h"\\r
+       "..\..\Src\TomboLib\VarBuffer.h"\\r
+       "..\..\Src\TomboURI.h"\\r
+       "..\..\Src\TSParser.h"\\r
+       "..\..\Src\VFManager.h"\\r
+       "..\..\Src\VFStream.h"\\r
+       \r
+\r
+!ENDIF \r
+\r
+# End Source File\r
+# Begin Source File\r
+\r
+SOURCE=..\..\Src\TomboLib\TString.cpp\r
+\r
+!IF  "$(CFG)" == "Tombo - Win32 (WCE MIPS) Release"\r
+\r
+DEP_CPP_TSTRI=\\r
+       "..\..\Src\TomboLib\TString.h"\\r
+       "..\..\Src\TomboLib\Uniconv.h"\\r
+       \r
+\r
+!ELSEIF  "$(CFG)" == "Tombo - Win32 (WCE SH4) Release"\r
+\r
+DEP_CPP_TSTRI=\\r
+       "..\..\Src\Property.h"\\r
+       "..\..\Src\Tombo.h"\\r
+       "..\..\Src\TomboLib\File.h"\\r
+       "..\..\Src\TomboLib\Logger.h"\\r
+       "..\..\Src\TomboLib\TString.h"\\r
+       "..\..\Src\TomboLib\Uniconv.h"\\r
+       \r
+\r
+!ELSEIF  "$(CFG)" == "Tombo - Win32 (WCE SH4) Debug"\r
+\r
+DEP_CPP_TSTRI=\\r
+       "..\..\Src\Property.h"\\r
+       "..\..\Src\Tombo.h"\\r
+       "..\..\Src\TomboLib\File.h"\\r
+       "..\..\Src\TomboLib\Logger.h"\\r
+       "..\..\Src\TomboLib\TString.h"\\r
+       "..\..\Src\TomboLib\Uniconv.h"\\r
+       \r
+\r
+!ELSEIF  "$(CFG)" == "Tombo - Win32 (WCE SH3) Release"\r
+\r
+DEP_CPP_TSTRI=\\r
+       "..\..\Src\TomboLib\TString.h"\\r
+       "..\..\Src\TomboLib\Uniconv.h"\\r
+       \r
+\r
+!ELSEIF  "$(CFG)" == "Tombo - Win32 (WCE ARM) Release"\r
+\r
+DEP_CPP_TSTRI=\\r
+       "..\..\Src\TomboLib\TString.h"\\r
+       "..\..\Src\TomboLib\Uniconv.h"\\r
+       \r
+\r
+!ELSEIF  "$(CFG)" == "Tombo - Win32 (WCE ARM) ReleaseVGA"\r
+\r
+DEP_CPP_TSTRI=\\r
+       "..\..\Src\TomboLib\TString.h"\\r
+       "..\..\Src\TomboLib\Uniconv.h"\\r
+       \r
+\r
+!ENDIF \r
+\r
+# End Source File\r
+# Begin Source File\r
+\r
+SOURCE=..\..\Src\TomboLib\Uniconv.cpp\r
+\r
+!IF  "$(CFG)" == "Tombo - Win32 (WCE MIPS) Release"\r
+\r
+DEP_CPP_UNICO=\\r
+       "..\..\Src\Property.h"\\r
+       "..\..\Src\Tombo.h"\\r
+       "..\..\Src\TomboLib\File.h"\\r
+       "..\..\Src\TomboLib\Logger.h"\\r
+       "..\..\Src\TomboLib\TString.h"\\r
+       "..\..\Src\TomboLib\Uniconv.h"\\r
+       \r
+\r
+!ELSEIF  "$(CFG)" == "Tombo - Win32 (WCE SH4) Release"\r
+\r
+DEP_CPP_UNICO=\\r
+       "..\..\Src\Property.h"\\r
+       "..\..\Src\Tombo.h"\\r
+       "..\..\Src\TomboLib\File.h"\\r
+       "..\..\Src\TomboLib\Logger.h"\\r
+       "..\..\Src\TomboLib\Uniconv.h"\\r
+       \r
+\r
+!ELSEIF  "$(CFG)" == "Tombo - Win32 (WCE SH4) Debug"\r
+\r
+DEP_CPP_UNICO=\\r
+       "..\..\Src\Property.h"\\r
+       "..\..\Src\Tombo.h"\\r
+       "..\..\Src\TomboLib\File.h"\\r
+       "..\..\Src\TomboLib\Logger.h"\\r
+       "..\..\Src\TomboLib\Uniconv.h"\\r
+       \r
+\r
+!ELSEIF  "$(CFG)" == "Tombo - Win32 (WCE SH3) Release"\r
+\r
+DEP_CPP_UNICO=\\r
+       "..\..\Src\Property.h"\\r
+       "..\..\Src\Tombo.h"\\r
+       "..\..\Src\TomboLib\File.h"\\r
+       "..\..\Src\TomboLib\Logger.h"\\r
+       "..\..\Src\TomboLib\TString.h"\\r
+       "..\..\Src\TomboLib\Uniconv.h"\\r
+       \r
+\r
+!ELSEIF  "$(CFG)" == "Tombo - Win32 (WCE ARM) Release"\r
+\r
+DEP_CPP_UNICO=\\r
+       "..\..\Src\Property.h"\\r
+       "..\..\Src\Tombo.h"\\r
+       "..\..\Src\TomboLib\File.h"\\r
+       "..\..\Src\TomboLib\Logger.h"\\r
+       "..\..\Src\TomboLib\TString.h"\\r
+       "..\..\Src\TomboLib\Uniconv.h"\\r
+       \r
+\r
+!ELSEIF  "$(CFG)" == "Tombo - Win32 (WCE ARM) ReleaseVGA"\r
+\r
+DEP_CPP_UNICO=\\r
+       "..\..\Src\Property.h"\\r
+       "..\..\Src\Tombo.h"\\r
+       "..\..\Src\TomboLib\AutoPtr.h"\\r
+       "..\..\Src\TomboLib\File.h"\\r
+       "..\..\Src\TomboLib\Logger.h"\\r
+       "..\..\Src\TomboLib\TString.h"\\r
+       "..\..\Src\TomboLib\Uniconv.h"\\r
+       \r
+\r
+!ENDIF \r
+\r
+# End Source File\r
+# Begin Source File\r
+\r
+SOURCE=..\..\Src\URIScanner.cpp\r
+\r
+!IF  "$(CFG)" == "Tombo - Win32 (WCE MIPS) Release"\r
+\r
+DEP_CPP_URISC=\\r
+       "..\..\Src\Repository.h"\\r
+       "..\..\Src\Tombo.h"\\r
+       "..\..\Src\TomboLib\File.h"\\r
+       "..\..\Src\TomboLib\Logger.h"\\r
+       "..\..\Src\TomboLib\TString.h"\\r
+       "..\..\Src\TomboLib\Uniconv.h"\\r
+       "..\..\Src\TomboLib\VarBuffer.h"\\r
+       "..\..\Src\TomboURI.h"\\r
+       "..\..\Src\URIScanner.h"\\r
+       \r
+\r
+!ELSEIF  "$(CFG)" == "Tombo - Win32 (WCE SH4) Release"\r
+\r
+DEP_CPP_URISC=\\r
+       "..\..\Src\Repository.h"\\r
+       "..\..\Src\Tombo.h"\\r
+       "..\..\Src\TomboLib\File.h"\\r
+       "..\..\Src\TomboLib\Logger.h"\\r
+       "..\..\Src\TomboLib\TString.h"\\r
+       "..\..\Src\TomboLib\Uniconv.h"\\r
+       "..\..\Src\TomboLib\VarBuffer.h"\\r
+       "..\..\Src\TomboURI.h"\\r
+       "..\..\Src\URIScanner.h"\\r
+       \r
+\r
+!ELSEIF  "$(CFG)" == "Tombo - Win32 (WCE SH4) Debug"\r
+\r
+DEP_CPP_URISC=\\r
+       "..\..\Src\Repository.h"\\r
+       "..\..\Src\Tombo.h"\\r
+       "..\..\Src\TomboLib\File.h"\\r
+       "..\..\Src\TomboLib\Logger.h"\\r
+       "..\..\Src\TomboLib\TString.h"\\r
+       "..\..\Src\TomboLib\Uniconv.h"\\r
+       "..\..\Src\TomboLib\VarBuffer.h"\\r
+       "..\..\Src\TomboURI.h"\\r
+       "..\..\Src\URIScanner.h"\\r
+       \r
+\r
+!ELSEIF  "$(CFG)" == "Tombo - Win32 (WCE SH3) Release"\r
+\r
+DEP_CPP_URISC=\\r
+       "..\..\Src\Repository.h"\\r
+       "..\..\Src\Tombo.h"\\r
+       "..\..\Src\TomboLib\File.h"\\r
+       "..\..\Src\TomboLib\Logger.h"\\r
+       "..\..\Src\TomboLib\TString.h"\\r
+       "..\..\Src\TomboLib\Uniconv.h"\\r
+       "..\..\Src\TomboLib\VarBuffer.h"\\r
+       "..\..\Src\TomboURI.h"\\r
+       "..\..\Src\URIScanner.h"\\r
+       \r
+\r
+!ELSEIF  "$(CFG)" == "Tombo - Win32 (WCE ARM) Release"\r
+\r
+DEP_CPP_URISC=\\r
+       "..\..\Src\Repository.h"\\r
+       "..\..\Src\Tombo.h"\\r
+       "..\..\Src\TomboLib\File.h"\\r
+       "..\..\Src\TomboLib\Logger.h"\\r
+       "..\..\Src\TomboLib\TString.h"\\r
+       "..\..\Src\TomboLib\Uniconv.h"\\r
+       "..\..\Src\TomboLib\VarBuffer.h"\\r
+       "..\..\Src\TomboURI.h"\\r
+       "..\..\Src\URIScanner.h"\\r
+       \r
+\r
+!ELSEIF  "$(CFG)" == "Tombo - Win32 (WCE ARM) ReleaseVGA"\r
+\r
+DEP_CPP_URISC=\\r
+       "..\..\Src\Repository.h"\\r
+       "..\..\Src\Tombo.h"\\r
+       "..\..\Src\TomboLib\File.h"\\r
+       "..\..\Src\TomboLib\Logger.h"\\r
+       "..\..\Src\TomboLib\TString.h"\\r
+       "..\..\Src\TomboLib\Uniconv.h"\\r
+       "..\..\Src\TomboLib\VarBuffer.h"\\r
+       "..\..\Src\TomboURI.h"\\r
+       "..\..\Src\URIScanner.h"\\r
+       \r
+\r
+!ENDIF \r
+\r
+# End Source File\r
+# Begin Source File\r
+\r
+SOURCE=..\..\Src\regex\util.c\r
+\r
+!IF  "$(CFG)" == "Tombo - Win32 (WCE MIPS) Release"\r
+\r
+DEP_CPP_UTIL_=\\r
+       "..\..\oniguruma\oniguruma.h"\\r
+       \r
+\r
+!ELSEIF  "$(CFG)" == "Tombo - Win32 (WCE SH4) Release"\r
+\r
+DEP_CPP_UTIL_=\\r
+       "..\..\oniguruma\oniguruma.h"\\r
+       \r
+\r
+!ELSEIF  "$(CFG)" == "Tombo - Win32 (WCE SH4) Debug"\r
+\r
+DEP_CPP_UTIL_=\\r
+       "..\..\oniguruma\oniguruma.h"\\r
+       \r
+\r
+!ELSEIF  "$(CFG)" == "Tombo - Win32 (WCE SH3) Release"\r
+\r
+DEP_CPP_UTIL_=\\r
+       "..\..\oniguruma\oniguruma.h"\\r
+       \r
+\r
+!ELSEIF  "$(CFG)" == "Tombo - Win32 (WCE ARM) Release"\r
+\r
+DEP_CPP_UTIL_=\\r
+       "..\..\oniguruma\oniguruma.h"\\r
+       \r
+\r
+!ELSEIF  "$(CFG)" == "Tombo - Win32 (WCE ARM) ReleaseVGA"\r
+\r
+DEP_CPP_UTIL_=\\r
+       "..\..\oniguruma\oniguruma.h"\\r
+       \r
+\r
+!ENDIF \r
+\r
+# End Source File\r
+# Begin Source File\r
+\r
+SOURCE=..\..\Src\TomboLib\VarBuffer.cpp\r
+\r
+!IF  "$(CFG)" == "Tombo - Win32 (WCE MIPS) Release"\r
+\r
+DEP_CPP_VARBU=\\r
+       "..\..\Src\TomboLib\VarBuffer.h"\\r
+       \r
+\r
+!ELSEIF  "$(CFG)" == "Tombo - Win32 (WCE SH4) Release"\r
+\r
+DEP_CPP_VARBU=\\r
+       "..\..\Src\TomboLib\VarBuffer.h"\\r
+       \r
+\r
+!ELSEIF  "$(CFG)" == "Tombo - Win32 (WCE SH4) Debug"\r
+\r
+DEP_CPP_VARBU=\\r
+       "..\..\Src\TomboLib\VarBuffer.h"\\r
+       \r
+\r
+!ELSEIF  "$(CFG)" == "Tombo - Win32 (WCE SH3) Release"\r
+\r
+DEP_CPP_VARBU=\\r
+       "..\..\Src\TomboLib\VarBuffer.h"\\r
+       \r
+\r
+!ELSEIF  "$(CFG)" == "Tombo - Win32 (WCE ARM) Release"\r
+\r
+DEP_CPP_VARBU=\\r
+       "..\..\Src\TomboLib\VarBuffer.h"\\r
+       \r
+\r
+!ELSEIF  "$(CFG)" == "Tombo - Win32 (WCE ARM) ReleaseVGA"\r
+\r
+DEP_CPP_VARBU=\\r
+       "..\..\Src\TomboLib\VarBuffer.h"\\r
+       \r
+\r
+!ENDIF \r
+\r
+# End Source File\r
+# Begin Source File\r
+\r
+SOURCE=..\..\Src\VFManager.cpp\r
+\r
+!IF  "$(CFG)" == "Tombo - Win32 (WCE MIPS) Release"\r
+\r
+DEP_CPP_VFMAN=\\r
+       "..\..\Src\Message.h"\\r
+       "..\..\Src\MsgRes\MsgDef.h"\\r
+       "..\..\Src\PasswordManager.h"\\r
+       "..\..\Src\Tombo.h"\\r
+       "..\..\Src\TomboLib\File.h"\\r
+       "..\..\Src\TomboLib\Logger.h"\\r
+       "..\..\Src\TomboLib\TString.h"\\r
+       "..\..\Src\TomboLib\Uniconv.h"\\r
+       "..\..\Src\TomboLib\VarBuffer.h"\\r
+       "..\..\Src\TSParser.h"\\r
+       "..\..\Src\VFManager.h"\\r
+       "..\..\Src\VFStream.h"\\r
+       \r
+\r
+!ELSEIF  "$(CFG)" == "Tombo - Win32 (WCE SH4) Release"\r
+\r
+DEP_CPP_VFMAN=\\r
+       "..\..\Src\Message.h"\\r
+       "..\..\Src\PasswordManager.h"\\r
+       "..\..\Src\Tombo.h"\\r
+       "..\..\Src\TSParser.h"\\r
+       "..\..\Src\VFManager.h"\\r
+       "..\..\Src\VFStream.h"\\r
+       \r
+NODEP_CPP_VFMAN=\\r
+       "..\..\Src\File.h"\\r
+       "..\..\Src\Logger.h"\\r
+       "..\..\Src\TString.h"\\r
+       "..\..\Src\Uniconv.h"\\r
+       "..\..\Src\VarBuffer.h"\\r
+       \r
+\r
+!ELSEIF  "$(CFG)" == "Tombo - Win32 (WCE SH4) Debug"\r
+\r
+DEP_CPP_VFMAN=\\r
+       "..\..\Src\Message.h"\\r
+       "..\..\Src\PasswordManager.h"\\r
+       "..\..\Src\Tombo.h"\\r
+       "..\..\Src\TSParser.h"\\r
+       "..\..\Src\VFManager.h"\\r
+       "..\..\Src\VFStream.h"\\r
+       \r
+NODEP_CPP_VFMAN=\\r
+       "..\..\Src\File.h"\\r
+       "..\..\Src\Logger.h"\\r
+       "..\..\Src\TString.h"\\r
+       "..\..\Src\Uniconv.h"\\r
+       "..\..\Src\VarBuffer.h"\\r
+       \r
+\r
+!ELSEIF  "$(CFG)" == "Tombo - Win32 (WCE SH3) Release"\r
+\r
+DEP_CPP_VFMAN=\\r
+       "..\..\Src\Message.h"\\r
+       "..\..\Src\MsgRes\MsgDef.h"\\r
+       "..\..\Src\PasswordManager.h"\\r
+       "..\..\Src\Tombo.h"\\r
+       "..\..\Src\TomboLib\File.h"\\r
+       "..\..\Src\TomboLib\Logger.h"\\r
+       "..\..\Src\TomboLib\TString.h"\\r
+       "..\..\Src\TomboLib\Uniconv.h"\\r
+       "..\..\Src\TomboLib\VarBuffer.h"\\r
+       "..\..\Src\TSParser.h"\\r
+       "..\..\Src\VFManager.h"\\r
+       "..\..\Src\VFStream.h"\\r
+       \r
+\r
+!ELSEIF  "$(CFG)" == "Tombo - Win32 (WCE ARM) Release"\r
+\r
+DEP_CPP_VFMAN=\\r
+       "..\..\Src\Message.h"\\r
+       "..\..\Src\MsgRes\MsgDef.h"\\r
+       "..\..\Src\PasswordManager.h"\\r
+       "..\..\Src\Tombo.h"\\r
+       "..\..\Src\TomboLib\File.h"\\r
+       "..\..\Src\TomboLib\Logger.h"\\r
+       "..\..\Src\TomboLib\TString.h"\\r
+       "..\..\Src\TomboLib\Uniconv.h"\\r
+       "..\..\Src\TomboLib\VarBuffer.h"\\r
+       "..\..\Src\TSParser.h"\\r
+       "..\..\Src\VFManager.h"\\r
+       "..\..\Src\VFStream.h"\\r
+       \r
+\r
+!ELSEIF  "$(CFG)" == "Tombo - Win32 (WCE ARM) ReleaseVGA"\r
+\r
+DEP_CPP_VFMAN=\\r
+       "..\..\Src\Message.h"\\r
+       "..\..\Src\MsgRes\MsgDef.h"\\r
+       "..\..\Src\PasswordManager.h"\\r
+       "..\..\Src\Tombo.h"\\r
+       "..\..\Src\TomboLib\File.h"\\r
+       "..\..\Src\TomboLib\Logger.h"\\r
+       "..\..\Src\TomboLib\TString.h"\\r
+       "..\..\Src\TomboLib\Uniconv.h"\\r
+       "..\..\Src\TomboLib\VarBuffer.h"\\r
+       "..\..\Src\TSParser.h"\\r
+       "..\..\Src\VFManager.h"\\r
+       "..\..\Src\VFStream.h"\\r
+       \r
+\r
+!ENDIF \r
+\r
+# End Source File\r
+# Begin Source File\r
+\r
+SOURCE=..\..\Src\VFStream.cpp\r
+\r
+!IF  "$(CFG)" == "Tombo - Win32 (WCE MIPS) Release"\r
+\r
+DEP_CPP_VFSTR=\\r
+       "..\..\Src\FilterAddDlg.h"\\r
+       "..\..\Src\MemoSelectView.h"\\r
+       "..\..\Src\Message.h"\\r
+       "..\..\Src\MsgRes\MsgDef.h"\\r
+       "..\..\Src\Property.h"\\r
+       "..\..\Src\Repository.h"\\r
+       "..\..\Src\SearchEngine.h"\\r
+       "..\..\Src\Tombo.h"\\r
+       "..\..\Src\TomboLib\AutoPtr.h"\\r
+       "..\..\Src\TomboLib\DialogTemplate.h"\\r
+       "..\..\Src\TomboLib\DirectoryScanner.h"\\r
+       "..\..\Src\TomboLib\File.h"\\r
+       "..\..\Src\TomboLib\Logger.h"\\r
+       "..\..\Src\TomboLib\TString.h"\\r
+       "..\..\Src\TomboLib\Uniconv.h"\\r
+       "..\..\Src\TomboLib\VarBuffer.h"\\r
+       "..\..\Src\TomboURI.h"\\r
+       "..\..\Src\URIScanner.h"\\r
+       "..\..\Src\VFStream.h"\\r
+       \r
+\r
+!ELSEIF  "$(CFG)" == "Tombo - Win32 (WCE SH4) Release"\r
+\r
+DEP_CPP_VFSTR=\\r
+       "..\..\Src\VFStream.h"\\r
+       \r
+\r
+!ELSEIF  "$(CFG)" == "Tombo - Win32 (WCE SH4) Debug"\r
+\r
+DEP_CPP_VFSTR=\\r
+       "..\..\Src\VFStream.h"\\r
+       \r
+\r
+!ELSEIF  "$(CFG)" == "Tombo - Win32 (WCE SH3) Release"\r
+\r
+DEP_CPP_VFSTR=\\r
+       "..\..\Src\FilterAddDlg.h"\\r
+       "..\..\Src\MemoSelectView.h"\\r
+       "..\..\Src\Message.h"\\r
+       "..\..\Src\MsgRes\MsgDef.h"\\r
+       "..\..\Src\Property.h"\\r
+       "..\..\Src\Repository.h"\\r
+       "..\..\Src\SearchEngine.h"\\r
+       "..\..\Src\Tombo.h"\\r
+       "..\..\Src\TomboLib\AutoPtr.h"\\r
+       "..\..\Src\TomboLib\DialogTemplate.h"\\r
+       "..\..\Src\TomboLib\DirectoryScanner.h"\\r
+       "..\..\Src\TomboLib\File.h"\\r
+       "..\..\Src\TomboLib\Logger.h"\\r
+       "..\..\Src\TomboLib\TString.h"\\r
+       "..\..\Src\TomboLib\Uniconv.h"\\r
+       "..\..\Src\TomboLib\VarBuffer.h"\\r
+       "..\..\Src\TomboURI.h"\\r
+       "..\..\Src\URIScanner.h"\\r
+       "..\..\Src\VFStream.h"\\r
+       \r
+\r
+!ELSEIF  "$(CFG)" == "Tombo - Win32 (WCE ARM) Release"\r
+\r
+DEP_CPP_VFSTR=\\r
+       "..\..\Src\FilterAddDlg.h"\\r
+       "..\..\Src\MemoSelectView.h"\\r
+       "..\..\Src\Message.h"\\r
+       "..\..\Src\MsgRes\MsgDef.h"\\r
+       "..\..\Src\Property.h"\\r
+       "..\..\Src\Repository.h"\\r
+       "..\..\Src\SearchEngine.h"\\r
+       "..\..\Src\Tombo.h"\\r
+       "..\..\Src\TomboLib\AutoPtr.h"\\r
+       "..\..\Src\TomboLib\DialogTemplate.h"\\r
+       "..\..\Src\TomboLib\DirectoryScanner.h"\\r
+       "..\..\Src\TomboLib\File.h"\\r
+       "..\..\Src\TomboLib\Logger.h"\\r
+       "..\..\Src\TomboLib\TString.h"\\r
+       "..\..\Src\TomboLib\Uniconv.h"\\r
+       "..\..\Src\TomboLib\VarBuffer.h"\\r
+       "..\..\Src\TomboURI.h"\\r
+       "..\..\Src\URIScanner.h"\\r
+       "..\..\Src\VFStream.h"\\r
+       \r
+\r
+!ELSEIF  "$(CFG)" == "Tombo - Win32 (WCE ARM) ReleaseVGA"\r
+\r
+DEP_CPP_VFSTR=\\r
+       "..\..\Src\FilterAddDlg.h"\\r
+       "..\..\Src\MemoSelectView.h"\\r
+       "..\..\Src\Message.h"\\r
+       "..\..\Src\MsgRes\MsgDef.h"\\r
+       "..\..\Src\Property.h"\\r
+       "..\..\Src\Repository.h"\\r
+       "..\..\Src\SearchEngine.h"\\r
+       "..\..\Src\Tombo.h"\\r
+       "..\..\Src\TomboLib\AutoPtr.h"\\r
+       "..\..\Src\TomboLib\DialogTemplate.h"\\r
+       "..\..\Src\TomboLib\DirectoryScanner.h"\\r
+       "..\..\Src\TomboLib\File.h"\\r
+       "..\..\Src\TomboLib\Logger.h"\\r
+       "..\..\Src\TomboLib\TString.h"\\r
+       "..\..\Src\TomboLib\Uniconv.h"\\r
+       "..\..\Src\TomboLib\VarBuffer.h"\\r
+       "..\..\Src\TomboURI.h"\\r
+       "..\..\Src\URIScanner.h"\\r
+       "..\..\Src\VFStream.h"\\r
+       \r
+\r
+!ENDIF \r
+\r
+# End Source File\r
+# Begin Source File\r
+\r
+SOURCE=..\..\Src\YAEdit\YAEdit.cpp\r
+\r
+!IF  "$(CFG)" == "Tombo - Win32 (WCE MIPS) Release"\r
+\r
+DEP_CPP_YAEDI=\\r
+       "..\..\Src\TomboLib\Clipboard.h"\\r
+       "..\..\Src\TomboLib\File.h"\\r
+       "..\..\Src\TomboLib\Logger.h"\\r
+       "..\..\Src\TomboLib\TString.h"\\r
+       "..\..\Src\TomboLib\Uniconv.h"\\r
+       "..\..\Src\TomboLib\VarBuffer.h"\\r
+       "..\..\Src\YAEdit\FontWidthCache.h"\\r
+       "..\..\Src\YAEdit\LineManager.h"\\r
+       "..\..\Src\YAEdit\LineWrapper.h"\\r
+       "..\..\Src\YAEdit\LineWrapperImpl.h"\\r
+       "..\..\Src\YAEdit\Region.h"\\r
+       "..\..\Src\YAEdit\YAEdit.h"\\r
+       "..\..\Src\YAEdit\YAEditDoc.h"\\r
+       "..\..\Src\YAEdit\YAEditView.h"\\r
+       \r
+\r
+!ELSEIF  "$(CFG)" == "Tombo - Win32 (WCE SH4) Release"\r
+\r
+DEP_CPP_YAEDI=\\r
+       "..\..\Src\TomboLib\Clipboard.h"\\r
+       "..\..\Src\TomboLib\File.h"\\r
+       "..\..\Src\TomboLib\Logger.h"\\r
+       "..\..\Src\TomboLib\TString.h"\\r
+       "..\..\Src\TomboLib\Uniconv.h"\\r
+       "..\..\Src\TomboLib\VarBuffer.h"\\r
+       "..\..\Src\YAEdit\FontWidthCache.h"\\r
+       "..\..\Src\YAEdit\LineManager.h"\\r
+       "..\..\Src\YAEdit\LineWrapper.h"\\r
+       "..\..\Src\YAEdit\LineWrapperImpl.h"\\r
+       "..\..\Src\YAEdit\Region.h"\\r
+       "..\..\Src\YAEdit\YAEdit.h"\\r
+       "..\..\Src\YAEdit\YAEditDoc.h"\\r
+       "..\..\Src\YAEdit\YAEditView.h"\\r
+       \r
+\r
+!ELSEIF  "$(CFG)" == "Tombo - Win32 (WCE SH4) Debug"\r
+\r
+DEP_CPP_YAEDI=\\r
+       "..\..\Src\TomboLib\Clipboard.h"\\r
+       "..\..\Src\TomboLib\File.h"\\r
+       "..\..\Src\TomboLib\Logger.h"\\r
+       "..\..\Src\TomboLib\TString.h"\\r
+       "..\..\Src\TomboLib\Uniconv.h"\\r
+       "..\..\Src\TomboLib\VarBuffer.h"\\r
+       "..\..\Src\YAEdit\FontWidthCache.h"\\r
+       "..\..\Src\YAEdit\LineManager.h"\\r
+       "..\..\Src\YAEdit\LineWrapper.h"\\r
+       "..\..\Src\YAEdit\LineWrapperImpl.h"\\r
+       "..\..\Src\YAEdit\Region.h"\\r
+       "..\..\Src\YAEdit\YAEdit.h"\\r
+       "..\..\Src\YAEdit\YAEditDoc.h"\\r
+       "..\..\Src\YAEdit\YAEditView.h"\\r
+       \r
+\r
+!ELSEIF  "$(CFG)" == "Tombo - Win32 (WCE SH3) Release"\r
+\r
+DEP_CPP_YAEDI=\\r
+       "..\..\Src\TomboLib\Clipboard.h"\\r
+       "..\..\Src\TomboLib\File.h"\\r
+       "..\..\Src\TomboLib\Logger.h"\\r
+       "..\..\Src\TomboLib\TString.h"\\r
+       "..\..\Src\TomboLib\Uniconv.h"\\r
+       "..\..\Src\TomboLib\VarBuffer.h"\\r
+       "..\..\Src\YAEdit\FontWidthCache.h"\\r
+       "..\..\Src\YAEdit\LineManager.h"\\r
+       "..\..\Src\YAEdit\LineWrapper.h"\\r
+       "..\..\Src\YAEdit\LineWrapperImpl.h"\\r
+       "..\..\Src\YAEdit\Region.h"\\r
+       "..\..\Src\YAEdit\YAEdit.h"\\r
+       "..\..\Src\YAEdit\YAEditDoc.h"\\r
+       "..\..\Src\YAEdit\YAEditView.h"\\r
+       \r
+\r
+!ELSEIF  "$(CFG)" == "Tombo - Win32 (WCE ARM) Release"\r
+\r
+DEP_CPP_YAEDI=\\r
+       "..\..\Src\TomboLib\Clipboard.h"\\r
+       "..\..\Src\TomboLib\File.h"\\r
+       "..\..\Src\TomboLib\Logger.h"\\r
+       "..\..\Src\TomboLib\TString.h"\\r
+       "..\..\Src\TomboLib\Uniconv.h"\\r
+       "..\..\Src\TomboLib\VarBuffer.h"\\r
+       "..\..\Src\YAEdit\FontWidthCache.h"\\r
+       "..\..\Src\YAEdit\LineManager.h"\\r
+       "..\..\Src\YAEdit\LineWrapper.h"\\r
+       "..\..\Src\YAEdit\LineWrapperImpl.h"\\r
+       "..\..\Src\YAEdit\Region.h"\\r
+       "..\..\Src\YAEdit\YAEdit.h"\\r
+       "..\..\Src\YAEdit\YAEditDoc.h"\\r
+       "..\..\Src\YAEdit\YAEditView.h"\\r
+       \r
+\r
+!ELSEIF  "$(CFG)" == "Tombo - Win32 (WCE ARM) ReleaseVGA"\r
+\r
+DEP_CPP_YAEDI=\\r
+       "..\..\Src\TomboLib\Clipboard.h"\\r
+       "..\..\Src\TomboLib\File.h"\\r
+       "..\..\Src\TomboLib\Logger.h"\\r
+       "..\..\Src\TomboLib\TString.h"\\r
+       "..\..\Src\TomboLib\Uniconv.h"\\r
+       "..\..\Src\TomboLib\VarBuffer.h"\\r
+       "..\..\Src\YAEdit\FontWidthCache.h"\\r
+       "..\..\Src\YAEdit\LineManager.h"\\r
+       "..\..\Src\YAEdit\LineWrapper.h"\\r
+       "..\..\Src\YAEdit\LineWrapperImpl.h"\\r
+       "..\..\Src\YAEdit\Region.h"\\r
+       "..\..\Src\YAEdit\YAEdit.h"\\r
+       "..\..\Src\YAEdit\YAEditDoc.h"\\r
+       "..\..\Src\YAEdit\YAEditView.h"\\r
+       \r
+\r
+!ENDIF \r
+\r
+# End Source File\r
+# Begin Source File\r
+\r
+SOURCE=..\..\Src\YAEdit\YAEditDoc.cpp\r
+\r
+!IF  "$(CFG)" == "Tombo - Win32 (WCE MIPS) Release"\r
+\r
+DEP_CPP_YAEDIT=\\r
+       "..\..\Src\TomboLib\Uniconv.h"\\r
+       "..\..\Src\TomboLib\VarBuffer.h"\\r
+       "..\..\Src\YAEdit\LineManager.h"\\r
+       "..\..\Src\YAEdit\LineWrapper.h"\\r
+       "..\..\Src\YAEdit\LineWrapperImpl.h"\\r
+       "..\..\Src\YAEdit\MemManager.h"\\r
+       "..\..\Src\YAEdit\PhysicalLineManager.h"\\r
+       "..\..\Src\YAEdit\Region.h"\\r
+       "..\..\Src\YAEdit\StringSplitter.h"\\r
+       "..\..\Src\YAEdit\YAEdit.h"\\r
+       "..\..\Src\YAEdit\YAEditDoc.h"\\r
+       \r
+\r
+!ELSEIF  "$(CFG)" == "Tombo - Win32 (WCE SH4) Release"\r
+\r
+DEP_CPP_YAEDIT=\\r
+       "..\..\Src\TomboLib\Uniconv.h"\\r
+       "..\..\Src\TomboLib\VarBuffer.h"\\r
+       "..\..\Src\YAEdit\LineManager.h"\\r
+       "..\..\Src\YAEdit\LineWrapper.h"\\r
+       "..\..\Src\YAEdit\LineWrapperImpl.h"\\r
+       "..\..\Src\YAEdit\MemManager.h"\\r
+       "..\..\Src\YAEdit\PhysicalLineManager.h"\\r
+       "..\..\Src\YAEdit\Region.h"\\r
+       "..\..\Src\YAEdit\StringSplitter.h"\\r
+       "..\..\Src\YAEdit\YAEdit.h"\\r
+       "..\..\Src\YAEdit\YAEditDoc.h"\\r
+       \r
+\r
+!ELSEIF  "$(CFG)" == "Tombo - Win32 (WCE SH4) Debug"\r
+\r
+DEP_CPP_YAEDIT=\\r
+       "..\..\Src\TomboLib\Uniconv.h"\\r
+       "..\..\Src\TomboLib\VarBuffer.h"\\r
+       "..\..\Src\YAEdit\LineManager.h"\\r
+       "..\..\Src\YAEdit\LineWrapper.h"\\r
+       "..\..\Src\YAEdit\LineWrapperImpl.h"\\r
+       "..\..\Src\YAEdit\MemManager.h"\\r
+       "..\..\Src\YAEdit\PhysicalLineManager.h"\\r
+       "..\..\Src\YAEdit\Region.h"\\r
+       "..\..\Src\YAEdit\StringSplitter.h"\\r
+       "..\..\Src\YAEdit\YAEdit.h"\\r
+       "..\..\Src\YAEdit\YAEditDoc.h"\\r
+       \r
+\r
+!ELSEIF  "$(CFG)" == "Tombo - Win32 (WCE SH3) Release"\r
+\r
+DEP_CPP_YAEDIT=\\r
+       "..\..\Src\TomboLib\Uniconv.h"\\r
+       "..\..\Src\TomboLib\VarBuffer.h"\\r
+       "..\..\Src\YAEdit\LineManager.h"\\r
+       "..\..\Src\YAEdit\LineWrapper.h"\\r
+       "..\..\Src\YAEdit\LineWrapperImpl.h"\\r
+       "..\..\Src\YAEdit\MemManager.h"\\r
+       "..\..\Src\YAEdit\PhysicalLineManager.h"\\r
+       "..\..\Src\YAEdit\Region.h"\\r
+       "..\..\Src\YAEdit\StringSplitter.h"\\r
+       "..\..\Src\YAEdit\YAEdit.h"\\r
+       "..\..\Src\YAEdit\YAEditDoc.h"\\r
+       \r
+\r
+!ELSEIF  "$(CFG)" == "Tombo - Win32 (WCE ARM) Release"\r
+\r
+DEP_CPP_YAEDIT=\\r
+       "..\..\Src\TomboLib\Uniconv.h"\\r
+       "..\..\Src\TomboLib\VarBuffer.h"\\r
+       "..\..\Src\YAEdit\LineManager.h"\\r
+       "..\..\Src\YAEdit\LineWrapper.h"\\r
+       "..\..\Src\YAEdit\LineWrapperImpl.h"\\r
+       "..\..\Src\YAEdit\MemManager.h"\\r
+       "..\..\Src\YAEdit\PhysicalLineManager.h"\\r
+       "..\..\Src\YAEdit\Region.h"\\r
+       "..\..\Src\YAEdit\StringSplitter.h"\\r
+       "..\..\Src\YAEdit\YAEdit.h"\\r
+       "..\..\Src\YAEdit\YAEditDoc.h"\\r
+       \r
+\r
+!ELSEIF  "$(CFG)" == "Tombo - Win32 (WCE ARM) ReleaseVGA"\r
+\r
+DEP_CPP_YAEDIT=\\r
+       "..\..\Src\TomboLib\Uniconv.h"\\r
+       "..\..\Src\TomboLib\VarBuffer.h"\\r
+       "..\..\Src\YAEdit\LineManager.h"\\r
+       "..\..\Src\YAEdit\LineWrapper.h"\\r
+       "..\..\Src\YAEdit\LineWrapperImpl.h"\\r
+       "..\..\Src\YAEdit\MemManager.h"\\r
+       "..\..\Src\YAEdit\PhysicalLineManager.h"\\r
+       "..\..\Src\YAEdit\Region.h"\\r
+       "..\..\Src\YAEdit\StringSplitter.h"\\r
+       "..\..\Src\YAEdit\YAEdit.h"\\r
+       "..\..\Src\YAEdit\YAEditDoc.h"\\r
+       \r
+\r
+!ENDIF \r
+\r
+# End Source File\r
+# Begin Source File\r
+\r
+SOURCE=..\..\Src\YAEditor.cpp\r
+\r
+!IF  "$(CFG)" == "Tombo - Win32 (WCE MIPS) Release"\r
+\r
+DEP_CPP_YAEDITO=\\r
+       "..\..\Src\HPCPlatform.h"\\r
+       "..\..\Src\LagendaPlatform.h"\\r
+       "..\..\Src\MainFrame.h"\\r
+       "..\..\Src\MemoDetailsView.h"\\r
+       "..\..\Src\MemoManager.h"\\r
+       "..\..\Src\MemoSelectView.h"\\r
+       "..\..\Src\Message.h"\\r
+       "..\..\Src\MsgRes\MsgDef.h"\\r
+       "..\..\Src\PasswordManager.h"\\r
+       "..\..\Src\PlatformLayer.h"\\r
+       "..\..\Src\PocketPCPlatform.h"\\r
+       "..\..\Src\Property.h"\\r
+       "..\..\Src\PsPCPlatform.h"\\r
+       "..\..\Src\Tombo.h"\\r
+       "..\..\Src\TomboLib\File.h"\\r
+       "..\..\Src\TomboLib\Logger.h"\\r
+       "..\..\Src\TomboLib\Uniconv.h"\\r
+       "..\..\Src\Win32Platform.h"\\r
+       "..\..\Src\YAEdit\Region.h"\\r
+       "..\..\Src\YAEdit\YAEdit.h"\\r
+       "..\..\Src\YAEdit\YAEditDoc.h"\\r
+       "..\..\Src\YAEdit\YAEditView.h"\\r
+       "..\..\Src\YAEditor.h"\\r
+       \r
+\r
+!ELSEIF  "$(CFG)" == "Tombo - Win32 (WCE SH4) Release"\r
+\r
+DEP_CPP_YAEDITO=\\r
+       "..\..\Src\HPCPlatform.h"\\r
+       "..\..\Src\LagendaPlatform.h"\\r
+       "..\..\Src\MainFrame.h"\\r
+       "..\..\Src\MemoDetailsView.h"\\r
+       "..\..\Src\MemoManager.h"\\r
+       "..\..\Src\MemoSelectView.h"\\r
+       "..\..\Src\Message.h"\\r
+       "..\..\Src\MsgRes\MsgDef.h"\\r
+       "..\..\Src\PasswordManager.h"\\r
+       "..\..\Src\PlatformLayer.h"\\r
+       "..\..\Src\PocketPCPlatform.h"\\r
+       "..\..\Src\Property.h"\\r
+       "..\..\Src\PsPCPlatform.h"\\r
+       "..\..\Src\Tombo.h"\\r
+       "..\..\Src\TomboLib\File.h"\\r
+       "..\..\Src\TomboLib\Logger.h"\\r
+       "..\..\Src\TomboLib\Uniconv.h"\\r
+       "..\..\Src\Win32Platform.h"\\r
+       "..\..\Src\YAEditor.h"\\r
+       \r
+NODEP_CPP_YAEDITO=\\r
+       "..\..\Src\Region.h"\\r
+       "..\..\Src\YAEdit.h"\\r
+       "..\..\Src\YAEditDoc.h"\\r
+       "..\..\Src\YAEditView.h"\\r
+       \r
+\r
+!ELSEIF  "$(CFG)" == "Tombo - Win32 (WCE SH4) Debug"\r
+\r
+DEP_CPP_YAEDITO=\\r
+       "..\..\Src\HPCPlatform.h"\\r
+       "..\..\Src\LagendaPlatform.h"\\r
+       "..\..\Src\MainFrame.h"\\r
+       "..\..\Src\MemoDetailsView.h"\\r
+       "..\..\Src\MemoManager.h"\\r
+       "..\..\Src\MemoSelectView.h"\\r
+       "..\..\Src\Message.h"\\r
+       "..\..\Src\MsgRes\MsgDef.h"\\r
+       "..\..\Src\PasswordManager.h"\\r
+       "..\..\Src\PlatformLayer.h"\\r
+       "..\..\Src\PocketPCPlatform.h"\\r
+       "..\..\Src\Property.h"\\r
+       "..\..\Src\PsPCPlatform.h"\\r
+       "..\..\Src\Tombo.h"\\r
+       "..\..\Src\TomboLib\File.h"\\r
+       "..\..\Src\TomboLib\Logger.h"\\r
+       "..\..\Src\TomboLib\Uniconv.h"\\r
+       "..\..\Src\Win32Platform.h"\\r
+       "..\..\Src\YAEditor.h"\\r
+       \r
+NODEP_CPP_YAEDITO=\\r
+       "..\..\Src\Region.h"\\r
+       "..\..\Src\YAEdit.h"\\r
+       "..\..\Src\YAEditDoc.h"\\r
+       "..\..\Src\YAEditView.h"\\r
+       \r
+\r
+!ELSEIF  "$(CFG)" == "Tombo - Win32 (WCE SH3) Release"\r
+\r
+DEP_CPP_YAEDITO=\\r
+       "..\..\Src\HPCPlatform.h"\\r
+       "..\..\Src\LagendaPlatform.h"\\r
+       "..\..\Src\MainFrame.h"\\r
+       "..\..\Src\MemoDetailsView.h"\\r
+       "..\..\Src\MemoManager.h"\\r
+       "..\..\Src\MemoSelectView.h"\\r
+       "..\..\Src\Message.h"\\r
+       "..\..\Src\MsgRes\MsgDef.h"\\r
+       "..\..\Src\PasswordManager.h"\\r
+       "..\..\Src\PlatformLayer.h"\\r
+       "..\..\Src\PocketPCPlatform.h"\\r
+       "..\..\Src\Property.h"\\r
+       "..\..\Src\PsPCPlatform.h"\\r
+       "..\..\Src\Tombo.h"\\r
+       "..\..\Src\TomboLib\File.h"\\r
+       "..\..\Src\TomboLib\Logger.h"\\r
+       "..\..\Src\TomboLib\Uniconv.h"\\r
+       "..\..\Src\Win32Platform.h"\\r
+       "..\..\Src\YAEdit\Region.h"\\r
+       "..\..\Src\YAEdit\YAEdit.h"\\r
+       "..\..\Src\YAEdit\YAEditDoc.h"\\r
+       "..\..\Src\YAEdit\YAEditView.h"\\r
+       "..\..\Src\YAEditor.h"\\r
+       \r
+\r
+!ELSEIF  "$(CFG)" == "Tombo - Win32 (WCE ARM) Release"\r
+\r
+DEP_CPP_YAEDITO=\\r
+       "..\..\Src\HPCPlatform.h"\\r
+       "..\..\Src\LagendaPlatform.h"\\r
+       "..\..\Src\MainFrame.h"\\r
+       "..\..\Src\MemoDetailsView.h"\\r
+       "..\..\Src\MemoManager.h"\\r
+       "..\..\Src\MemoSelectView.h"\\r
+       "..\..\Src\Message.h"\\r
+       "..\..\Src\MsgRes\MsgDef.h"\\r
+       "..\..\Src\PasswordManager.h"\\r
+       "..\..\Src\PlatformLayer.h"\\r
+       "..\..\Src\PocketPCPlatform.h"\\r
+       "..\..\Src\Property.h"\\r
+       "..\..\Src\PsPCPlatform.h"\\r
+       "..\..\Src\Tombo.h"\\r
+       "..\..\Src\TomboLib\File.h"\\r
+       "..\..\Src\TomboLib\Logger.h"\\r
+       "..\..\Src\TomboLib\Uniconv.h"\\r
+       "..\..\Src\Win32Platform.h"\\r
+       "..\..\Src\YAEdit\Region.h"\\r
+       "..\..\Src\YAEdit\YAEdit.h"\\r
+       "..\..\Src\YAEdit\YAEditDoc.h"\\r
+       "..\..\Src\YAEdit\YAEditView.h"\\r
+       "..\..\Src\YAEditor.h"\\r
+       \r
+\r
+!ELSEIF  "$(CFG)" == "Tombo - Win32 (WCE ARM) ReleaseVGA"\r
+\r
+DEP_CPP_YAEDITO=\\r
+       "..\..\Src\HPCPlatform.h"\\r
+       "..\..\Src\LagendaPlatform.h"\\r
+       "..\..\Src\MainFrame.h"\\r
+       "..\..\Src\MemoDetailsView.h"\\r
+       "..\..\Src\MemoManager.h"\\r
+       "..\..\Src\MemoSelectView.h"\\r
+       "..\..\Src\Message.h"\\r
+       "..\..\Src\MsgRes\MsgDef.h"\\r
+       "..\..\Src\PasswordManager.h"\\r
+       "..\..\Src\PlatformLayer.h"\\r
+       "..\..\Src\PocketPCPlatform.h"\\r
+       "..\..\Src\Property.h"\\r
+       "..\..\Src\PsPCPlatform.h"\\r
+       "..\..\Src\Tombo.h"\\r
+       "..\..\Src\TomboLib\File.h"\\r
+       "..\..\Src\TomboLib\Logger.h"\\r
+       "..\..\Src\TomboLib\Uniconv.h"\\r
+       "..\..\Src\Win32Platform.h"\\r
+       "..\..\Src\YAEdit\Region.h"\\r
+       "..\..\Src\YAEdit\YAEdit.h"\\r
+       "..\..\Src\YAEdit\YAEditDoc.h"\\r
+       "..\..\Src\YAEdit\YAEditView.h"\\r
+       "..\..\Src\YAEditor.h"\\r
+       \r
+\r
+!ENDIF \r
+\r
+# End Source File\r
+# Begin Source File\r
+\r
+SOURCE=..\..\Src\YAEdit\YAEditView.cpp\r
+\r
+!IF  "$(CFG)" == "Tombo - Win32 (WCE MIPS) Release"\r
+\r
+DEP_CPP_YAEDITV=\\r
+       "..\..\Src\TomboLib\Clipboard.h"\\r
+       "..\..\Src\TomboLib\File.h"\\r
+       "..\..\Src\TomboLib\Logger.h"\\r
+       "..\..\Src\TomboLib\TString.h"\\r
+       "..\..\Src\TomboLib\Uniconv.h"\\r
+       "..\..\Src\TomboLib\VarBuffer.h"\\r
+       "..\..\Src\YAEdit\FontWidthCache.h"\\r
+       "..\..\Src\YAEdit\LineManager.h"\\r
+       "..\..\Src\YAEdit\LineWrapper.h"\\r
+       "..\..\Src\YAEdit\Region.h"\\r
+       "..\..\Src\YAEdit\YAEdit.h"\\r
+       "..\..\Src\YAEdit\YAEditDoc.h"\\r
+       "..\..\Src\YAEdit\YAEditView.h"\\r
+       \r
+\r
+!ELSEIF  "$(CFG)" == "Tombo - Win32 (WCE SH4) Release"\r
+\r
+DEP_CPP_YAEDITV=\\r
+       "..\..\Src\TomboLib\Clipboard.h"\\r
+       "..\..\Src\TomboLib\File.h"\\r
+       "..\..\Src\TomboLib\Logger.h"\\r
+       "..\..\Src\TomboLib\TString.h"\\r
+       "..\..\Src\TomboLib\Uniconv.h"\\r
+       "..\..\Src\TomboLib\VarBuffer.h"\\r
+       "..\..\Src\YAEdit\FontWidthCache.h"\\r
+       "..\..\Src\YAEdit\LineManager.h"\\r
+       "..\..\Src\YAEdit\LineWrapper.h"\\r
+       "..\..\Src\YAEdit\Region.h"\\r
+       "..\..\Src\YAEdit\YAEdit.h"\\r
+       "..\..\Src\YAEdit\YAEditDoc.h"\\r
+       "..\..\Src\YAEdit\YAEditView.h"\\r
+       \r
+\r
+!ELSEIF  "$(CFG)" == "Tombo - Win32 (WCE SH4) Debug"\r
+\r
+DEP_CPP_YAEDITV=\\r
+       "..\..\Src\TomboLib\Clipboard.h"\\r
+       "..\..\Src\TomboLib\File.h"\\r
+       "..\..\Src\TomboLib\Logger.h"\\r
+       "..\..\Src\TomboLib\TString.h"\\r
+       "..\..\Src\TomboLib\Uniconv.h"\\r
+       "..\..\Src\TomboLib\VarBuffer.h"\\r
+       "..\..\Src\YAEdit\FontWidthCache.h"\\r
+       "..\..\Src\YAEdit\LineManager.h"\\r
+       "..\..\Src\YAEdit\LineWrapper.h"\\r
+       "..\..\Src\YAEdit\Region.h"\\r
+       "..\..\Src\YAEdit\YAEdit.h"\\r
+       "..\..\Src\YAEdit\YAEditDoc.h"\\r
+       "..\..\Src\YAEdit\YAEditView.h"\\r
+       \r
+\r
+!ELSEIF  "$(CFG)" == "Tombo - Win32 (WCE SH3) Release"\r
+\r
+DEP_CPP_YAEDITV=\\r
+       "..\..\Src\TomboLib\Clipboard.h"\\r
+       "..\..\Src\TomboLib\File.h"\\r
+       "..\..\Src\TomboLib\Logger.h"\\r
+       "..\..\Src\TomboLib\TString.h"\\r
+       "..\..\Src\TomboLib\Uniconv.h"\\r
+       "..\..\Src\TomboLib\VarBuffer.h"\\r
+       "..\..\Src\YAEdit\FontWidthCache.h"\\r
+       "..\..\Src\YAEdit\LineManager.h"\\r
+       "..\..\Src\YAEdit\LineWrapper.h"\\r
+       "..\..\Src\YAEdit\Region.h"\\r
+       "..\..\Src\YAEdit\YAEdit.h"\\r
+       "..\..\Src\YAEdit\YAEditDoc.h"\\r
+       "..\..\Src\YAEdit\YAEditView.h"\\r
+       \r
+\r
+!ELSEIF  "$(CFG)" == "Tombo - Win32 (WCE ARM) Release"\r
+\r
+DEP_CPP_YAEDITV=\\r
+       "..\..\Src\TomboLib\Clipboard.h"\\r
+       "..\..\Src\TomboLib\File.h"\\r
+       "..\..\Src\TomboLib\Logger.h"\\r
+       "..\..\Src\TomboLib\TString.h"\\r
+       "..\..\Src\TomboLib\Uniconv.h"\\r
+       "..\..\Src\TomboLib\VarBuffer.h"\\r
+       "..\..\Src\YAEdit\FontWidthCache.h"\\r
+       "..\..\Src\YAEdit\LineManager.h"\\r
+       "..\..\Src\YAEdit\LineWrapper.h"\\r
+       "..\..\Src\YAEdit\Region.h"\\r
+       "..\..\Src\YAEdit\YAEdit.h"\\r
+       "..\..\Src\YAEdit\YAEditDoc.h"\\r
+       "..\..\Src\YAEdit\YAEditView.h"\\r
+       \r
+\r
+!ELSEIF  "$(CFG)" == "Tombo - Win32 (WCE ARM) ReleaseVGA"\r
+\r
+DEP_CPP_YAEDITV=\\r
+       "..\..\Src\TomboLib\Clipboard.h"\\r
+       "..\..\Src\TomboLib\File.h"\\r
+       "..\..\Src\TomboLib\Logger.h"\\r
+       "..\..\Src\TomboLib\TString.h"\\r
+       "..\..\Src\TomboLib\Uniconv.h"\\r
+       "..\..\Src\TomboLib\VarBuffer.h"\\r
+       "..\..\Src\YAEdit\FontWidthCache.h"\\r
+       "..\..\Src\YAEdit\LineManager.h"\\r
+       "..\..\Src\YAEdit\LineWrapper.h"\\r
+       "..\..\Src\YAEdit\Region.h"\\r
+       "..\..\Src\YAEdit\YAEdit.h"\\r
+       "..\..\Src\YAEdit\YAEditDoc.h"\\r
+       "..\..\Src\YAEdit\YAEditView.h"\\r
+       \r
+\r
+!ENDIF \r
+\r
+# End Source File\r
+# End Group\r
+# Begin Group "Header Files"\r
+\r
+# PROP Default_Filter "h;hpp;hxx;hm;inl"\r
+# Begin Source File\r
+\r
+SOURCE=..\..\Src\AboutDialog.h\r
+# End Source File\r
+# Begin Source File\r
+\r
+SOURCE=..\..\Src\TomboLib\AutoPtr.h\r
+# End Source File\r
+# Begin Source File\r
+\r
+SOURCE="C:\Program Files\Windows CE Tools\wce300\MS Pocket PC\include\aygshell.h"\r
+# End Source File\r
+# Begin Source File\r
+\r
+SOURCE=..\..\Src\gnupg\bithelp.h\r
+# End Source File\r
+# Begin Source File\r
+\r
+SOURCE=..\..\Src\BookMark.h\r
+# End Source File\r
+# Begin Source File\r
+\r
+SOURCE=..\..\Src\BookMarkDlg.h\r
+# End Source File\r
+# Begin Source File\r
+\r
+SOURCE=..\..\Src\Chipher.h\r
+# End Source File\r
+# Begin Source File\r
+\r
+SOURCE=..\..\Src\TomboLib\Clipboard.h\r
+# End Source File\r
+# Begin Source File\r
+\r
+SOURCE=..\..\Src\Crypt.h\r
+# End Source File\r
+# Begin Source File\r
+\r
+SOURCE=..\..\Src\CryptManager.h\r
+# End Source File\r
+# Begin Source File\r
+\r
+SOURCE=..\..\Src\TomboLib\DialogTemplate.h\r
+# End Source File\r
+# Begin Source File\r
+\r
+SOURCE=..\..\Src\TomboLib\DirectoryScanner.h\r
+# End Source File\r
+# Begin Source File\r
+\r
+SOURCE=..\..\Src\DirList.h\r
+# End Source File\r
+# Begin Source File\r
+\r
+SOURCE=..\..\Src\TomboLib\File.h\r
+# End Source File\r
+# Begin Source File\r
+\r
+SOURCE=..\..\Src\TomboLib\FileInputStream.h\r
+# End Source File\r
+# Begin Source File\r
+\r
+SOURCE=..\..\Src\FileSelector.h\r
+# End Source File\r
+# Begin Source File\r
+\r
+SOURCE=..\..\Src\FilterAddDlg.h\r
+# End Source File\r
+# Begin Source File\r
+\r
+SOURCE=..\..\Src\FilterCtlDlg.h\r
+# End Source File\r
+# Begin Source File\r
+\r
+SOURCE=..\..\Src\FilterDefDlg.h\r
+# End Source File\r
+# Begin Source File\r
+\r
+SOURCE=..\..\Src\YAEdit\FontWidthCache.h\r
+# End Source File\r
+# Begin Source File\r
+\r
+SOURCE=..\..\Src\GrepDialog.h\r
+# End Source File\r
+# Begin Source File\r
+\r
+SOURCE=..\..\Src\YAEdit\LineManager.h\r
+# End Source File\r
+# Begin Source File\r
+\r
+SOURCE=..\..\Src\YAEdit\LineWrapper.h\r
+# End Source File\r
+# Begin Source File\r
+\r
+SOURCE=..\..\Src\YAEdit\LineWrapperImpl.h\r
+# End Source File\r
+# Begin Source File\r
+\r
+SOURCE=..\..\Src\TomboLib\List.h\r
+# End Source File\r
+# Begin Source File\r
+\r
+SOURCE=..\..\Src\TomboLib\Logger.h\r
+# End Source File\r
+# Begin Source File\r
+\r
+SOURCE=..\..\Src\MainFrame.h\r
+# End Source File\r
+# Begin Source File\r
+\r
+SOURCE=..\..\Src\YAEdit\MemManager.h\r
+# End Source File\r
+# Begin Source File\r
+\r
+SOURCE=..\..\Src\MemoDetailsView.h\r
+# End Source File\r
+# Begin Source File\r
+\r
+SOURCE=..\..\Src\MemoFolder.h\r
+# End Source File\r
+# Begin Source File\r
+\r
+SOURCE=..\..\Src\MemoInfo.h\r
+# End Source File\r
+# Begin Source File\r
+\r
+SOURCE=..\..\Src\MemoManager.h\r
+# End Source File\r
+# Begin Source File\r
+\r
+SOURCE=..\..\Src\MemoNote.h\r
+# End Source File\r
+# Begin Source File\r
+\r
+SOURCE=..\..\Src\MemoSelectView.h\r
+# End Source File\r
+# Begin Source File\r
+\r
+SOURCE=..\..\Src\NewFolderDialog.h\r
+# End Source File\r
+# Begin Source File\r
+\r
+SOURCE=.\res\newres.h\r
+# End Source File\r
+# Begin Source File\r
+\r
+SOURCE=..\..\Src\PasswordDialog.h\r
+# End Source File\r
+# Begin Source File\r
+\r
+SOURCE=..\..\Src\PasswordManager.h\r
+# End Source File\r
+# Begin Source File\r
+\r
+SOURCE=..\..\Src\YAEdit\PhysicalLineManager.h\r
+# End Source File\r
+# Begin Source File\r
+\r
+SOURCE=..\..\Src\PlatformLayer.h\r
+# End Source File\r
+# Begin Source File\r
+\r
+SOURCE=..\..\Src\PocketPCPlatform.h\r
+# End Source File\r
+# Begin Source File\r
+\r
+SOURCE=..\..\Src\Property.h\r
+# End Source File\r
+# Begin Source File\r
+\r
+SOURCE=..\..\Src\TomboLib\PropertyPage.h\r
+# End Source File\r
+# Begin Source File\r
+\r
+SOURCE=..\..\Src\YAEdit\Region.h\r
+# End Source File\r
+# Begin Source File\r
+\r
+SOURCE=..\..\Src\Repository.h\r
+# End Source File\r
+# Begin Source File\r
+\r
+SOURCE=..\..\Src\RepositoryImpl.h\r
+# End Source File\r
+# Begin Source File\r
+\r
+SOURCE=.\res\resource.h\r
+# End Source File\r
+# Begin Source File\r
+\r
+SOURCE=..\..\Src\SearchDlg.h\r
+# End Source File\r
+# Begin Source File\r
+\r
+SOURCE=..\..\Src\SearchEngine.h\r
+# End Source File\r
+# Begin Source File\r
+\r
+SOURCE=..\..\Src\SearchTree.h\r
+# End Source File\r
+# Begin Source File\r
+\r
+SOURCE="C:\Program Files\Windows CE Tools\wce300\MS Pocket PC\include\sip.h"\r
+# End Source File\r
+# Begin Source File\r
+\r
+SOURCE="C:\Program Files\Windows CE Tools\wce300\MS Pocket PC\include\sipapi.h"\r
+# End Source File\r
+# Begin Source File\r
+\r
+SOURCE=..\..\Src\TomboLib\SipControl.h\r
+# End Source File\r
+# Begin Source File\r
+\r
+SOURCE=..\..\Src\StatusBar.h\r
+# End Source File\r
+# Begin Source File\r
+\r
+SOURCE=..\..\Src\YAEdit\StringSplitter.h\r
+# End Source File\r
+# Begin Source File\r
+\r
+SOURCE=..\..\Src\Tombo.h\r
+# End Source File\r
+# Begin Source File\r
+\r
+SOURCE=..\..\Src\TomboPropertyTab.h\r
+# End Source File\r
+# Begin Source File\r
+\r
+SOURCE=..\..\Src\TomboURI.h\r
+# End Source File\r
+# Begin Source File\r
+\r
+SOURCE=..\..\Src\TreeViewItem.h\r
+# End Source File\r
+# Begin Source File\r
+\r
+SOURCE=..\..\Src\TSParser.h\r
+# End Source File\r
+# Begin Source File\r
+\r
+SOURCE=..\..\Src\TomboLib\TString.h\r
+# End Source File\r
+# Begin Source File\r
+\r
+SOURCE=..\..\Src\TomboLib\Uniconv.h\r
+# End Source File\r
+# Begin Source File\r
+\r
+SOURCE=..\..\Src\URIScanner.h\r
+# End Source File\r
+# Begin Source File\r
+\r
+SOURCE=..\..\Src\TomboLib\VarBuffer.h\r
+# End Source File\r
+# Begin Source File\r
+\r
+SOURCE=..\..\Src\VFManager.h\r
+# End Source File\r
+# Begin Source File\r
+\r
+SOURCE=..\..\Src\VFStream.h\r
+# End Source File\r
+# Begin Source File\r
+\r
+SOURCE=..\..\Src\YAEdit\YAEdit.h\r
+# End Source File\r
+# Begin Source File\r
+\r
+SOURCE=..\..\Src\YAEdit\YAEditDoc.h\r
+# End Source File\r
+# Begin Source File\r
+\r
+SOURCE=..\..\Src\YAEditor.h\r
+# End Source File\r
+# Begin Source File\r
+\r
+SOURCE=..\..\Src\YAEdit\YAEditView.h\r
+# End Source File\r
+# End Group\r
+# Begin Group "Resource Files"\r
+\r
+# PROP Default_Filter "ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe"\r
+# Begin Source File\r
+\r
+SOURCE=..\..\Src\image\bitmap1.bmp\r
+# End Source File\r
+# Begin Source File\r
+\r
+SOURCE=.\res\draftimg.bmp\r
+# End Source File\r
+# Begin Source File\r
+\r
+SOURCE=..\..\Src\image\draftimg.bmp\r
+# End Source File\r
+# Begin Source File\r
+\r
+SOURCE=.\res\memoimg.bmp\r
+# End Source File\r
+# Begin Source File\r
+\r
+SOURCE=..\..\Src\image\memoimg.bmp\r
+# End Source File\r
+# Begin Source File\r
+\r
+SOURCE=..\..\Src\image\memoimg24.bmp\r
+# End Source File\r
+# Begin Source File\r
+\r
+SOURCE=..\..\Src\image\memoimg322.bmp\r
+# End Source File\r
+# Begin Source File\r
+\r
+SOURCE=.\res\Tombo.ICO\r
+# End Source File\r
+# Begin Source File\r
+\r
+SOURCE=.\resE\Tombo.ICO\r
+# End Source File\r
+# Begin Source File\r
+\r
+SOURCE=..\..\Src\image\Tombo.ICO\r
+# End Source File\r
+# Begin Source File\r
+\r
+SOURCE=.\res\toolbar.bmp\r
+# End Source File\r
+# Begin Source File\r
+\r
+SOURCE=..\..\Src\image\toolbar.bmp\r
+# End Source File\r
+# Begin Source File\r
+\r
+SOURCE=..\..\Src\image\toolbarlarge.bmp\r
+# End Source File\r
+# End Group\r
+# Begin Source File\r
+\r
+SOURCE=..\..\expat\lib\ARM\libexpatw.lib\r
+\r
+!IF  "$(CFG)" == "Tombo - Win32 (WCE MIPS) Release"\r
+\r
+# PROP Exclude_From_Build 1\r
+\r
+!ELSEIF  "$(CFG)" == "Tombo - Win32 (WCE SH4) Release"\r
+\r
+!ELSEIF  "$(CFG)" == "Tombo - Win32 (WCE SH4) Debug"\r
+\r
+!ELSEIF  "$(CFG)" == "Tombo - Win32 (WCE SH3) Release"\r
+\r
+# PROP Exclude_From_Build 1\r
+\r
+!ELSEIF  "$(CFG)" == "Tombo - Win32 (WCE ARM) Release"\r
+\r
+!ELSEIF  "$(CFG)" == "Tombo - Win32 (WCE ARM) ReleaseVGA"\r
+\r
+!ENDIF \r
+\r
+# End Source File\r
+# Begin Source File\r
+\r
+SOURCE=..\..\expat\lib\MIPS\libexpatw.lib\r
+\r
+!IF  "$(CFG)" == "Tombo - Win32 (WCE MIPS) Release"\r
+\r
+!ELSEIF  "$(CFG)" == "Tombo - Win32 (WCE SH4) Release"\r
+\r
+!ELSEIF  "$(CFG)" == "Tombo - Win32 (WCE SH4) Debug"\r
+\r
+!ELSEIF  "$(CFG)" == "Tombo - Win32 (WCE SH3) Release"\r
+\r
+# PROP Exclude_From_Build 1\r
+\r
+!ELSEIF  "$(CFG)" == "Tombo - Win32 (WCE ARM) Release"\r
+\r
+# PROP Exclude_From_Build 1\r
+\r
+!ELSEIF  "$(CFG)" == "Tombo - Win32 (WCE ARM) ReleaseVGA"\r
+\r
+# PROP BASE Exclude_From_Build 1\r
+# PROP Exclude_From_Build 1\r
+\r
+!ENDIF \r
+\r
+# End Source File\r
+# Begin Source File\r
+\r
+SOURCE=..\..\expat\lib\SH3\libexpatw.lib\r
+\r
+!IF  "$(CFG)" == "Tombo - Win32 (WCE MIPS) Release"\r
+\r
+# PROP Exclude_From_Build 1\r
+\r
+!ELSEIF  "$(CFG)" == "Tombo - Win32 (WCE SH4) Release"\r
+\r
+!ELSEIF  "$(CFG)" == "Tombo - Win32 (WCE SH4) Debug"\r
+\r
+!ELSEIF  "$(CFG)" == "Tombo - Win32 (WCE SH3) Release"\r
+\r
+!ELSEIF  "$(CFG)" == "Tombo - Win32 (WCE ARM) Release"\r
+\r
+# PROP Exclude_From_Build 1\r
+\r
+!ELSEIF  "$(CFG)" == "Tombo - Win32 (WCE ARM) ReleaseVGA"\r
+\r
+# PROP BASE Exclude_From_Build 1\r
+# PROP Exclude_From_Build 1\r
+\r
+!ENDIF \r
+\r
+# End Source File\r
+# Begin Source File\r
+\r
+SOURCE=..\..\oniguruma\arm\oniguruma.lib\r
+\r
+!IF  "$(CFG)" == "Tombo - Win32 (WCE MIPS) Release"\r
+\r
+# PROP Exclude_From_Build 1\r
+\r
+!ELSEIF  "$(CFG)" == "Tombo - Win32 (WCE SH4) Release"\r
+\r
+# PROP Exclude_From_Build 1\r
+\r
+!ELSEIF  "$(CFG)" == "Tombo - Win32 (WCE SH4) Debug"\r
+\r
+# PROP Exclude_From_Build 1\r
+\r
+!ELSEIF  "$(CFG)" == "Tombo - Win32 (WCE SH3) Release"\r
+\r
+# PROP Exclude_From_Build 1\r
+\r
+!ELSEIF  "$(CFG)" == "Tombo - Win32 (WCE ARM) Release"\r
+\r
+!ELSEIF  "$(CFG)" == "Tombo - Win32 (WCE ARM) ReleaseVGA"\r
+\r
+!ENDIF \r
+\r
+# End Source File\r
+# Begin Source File\r
+\r
+SOURCE=..\..\oniguruma\mips\oniguruma.lib\r
+\r
+!IF  "$(CFG)" == "Tombo - Win32 (WCE MIPS) Release"\r
+\r
+!ELSEIF  "$(CFG)" == "Tombo - Win32 (WCE SH4) Release"\r
+\r
+# PROP Exclude_From_Build 1\r
+\r
+!ELSEIF  "$(CFG)" == "Tombo - Win32 (WCE SH4) Debug"\r
+\r
+# PROP Exclude_From_Build 1\r
+\r
+!ELSEIF  "$(CFG)" == "Tombo - Win32 (WCE SH3) Release"\r
+\r
+# PROP Exclude_From_Build 1\r
+\r
+!ELSEIF  "$(CFG)" == "Tombo - Win32 (WCE ARM) Release"\r
+\r
+# PROP Exclude_From_Build 1\r
+\r
+!ELSEIF  "$(CFG)" == "Tombo - Win32 (WCE ARM) ReleaseVGA"\r
+\r
+# PROP Exclude_From_Build 1\r
+\r
+!ENDIF \r
+\r
+# End Source File\r
+# Begin Source File\r
+\r
+SOURCE=..\..\oniguruma\sh3\oniguruma.lib\r
+\r
+!IF  "$(CFG)" == "Tombo - Win32 (WCE MIPS) Release"\r
+\r
+# PROP Exclude_From_Build 1\r
+\r
+!ELSEIF  "$(CFG)" == "Tombo - Win32 (WCE SH4) Release"\r
+\r
+# PROP Exclude_From_Build 1\r
+\r
+!ELSEIF  "$(CFG)" == "Tombo - Win32 (WCE SH4) Debug"\r
+\r
+# PROP Exclude_From_Build 1\r
+\r
+!ELSEIF  "$(CFG)" == "Tombo - Win32 (WCE SH3) Release"\r
+\r
+!ELSEIF  "$(CFG)" == "Tombo - Win32 (WCE ARM) Release"\r
+\r
+# PROP Exclude_From_Build 1\r
+\r
+!ELSEIF  "$(CFG)" == "Tombo - Win32 (WCE ARM) ReleaseVGA"\r
+\r
+# PROP Exclude_From_Build 1\r
+\r
+!ENDIF \r
+\r
+# End Source File\r
+# End Target\r
+# End Project\r
diff --git a/PocketPC/Tombo/Tombo.vcw b/PocketPC/Tombo/Tombo.vcw
new file mode 100644 (file)
index 0000000..71467ce
--- /dev/null
@@ -0,0 +1,30 @@
+Microsoft eMbedded Visual Tools Workspace File, Format Version 3.00\r
+# WARNING: DO NOT EDIT OR DELETE THIS WORKSPACE FILE!\r
+\r
+###############################################################################\r
+\r
+Project: "Tombo"=.\Tombo.vcp - Package Owner=<4>\r
+\r
+Package=<5>\r
+{{{\r
+}}}\r
+\r
+Package=<4>\r
+{{{\r
+}}}\r
+\r
+###############################################################################\r
+\r
+Global:\r
+\r
+Package=<5>\r
+{{{\r
+}}}\r
+\r
+Package=<3>\r
+{{{\r
+}}}\r
+\r
+###############################################################################\r
+\r
+\r
diff --git a/PocketPC/Tombo/res/Tombo.rc b/PocketPC/Tombo/res/Tombo.rc
new file mode 100644 (file)
index 0000000..535da5d
--- /dev/null
@@ -0,0 +1,934 @@
+//Microsoft Developer Studio generated resource script.\r
+//\r
+#include "resource.h"\r
+\r
+#define APSTUDIO_READONLY_SYMBOLS\r
+/////////////////////////////////////////////////////////////////////////////\r
+//\r
+// Generated from the TEXTINCLUDE 2 resource.\r
+//\r
+#include "newres.h"\r
+\r
+/////////////////////////////////////////////////////////////////////////////\r
+#undef APSTUDIO_READONLY_SYMBOLS\r
+\r
+/////////////////////////////////////////////////////////////////////////////\r
+// Japanese resources\r
+\r
+#if !defined(AFX_RESOURCE_DLL) || defined(AFX_TARG_JPN)\r
+#ifdef _WIN32\r
+LANGUAGE LANG_JAPANESE, SUBLANG_DEFAULT\r
+#pragma code_page(932)\r
+#endif //_WIN32\r
+\r
+/////////////////////////////////////////////////////////////////////////////\r
+//\r
+// Bitmap\r
+//\r
+\r
+IDB_MEMOSELECT_IMAGES   BITMAP  DISCARDABLE     "../../../Src/image/memoimg.bmp"\r
+IDB_ARTICLEBOX          BITMAP  DISCARDABLE     "../../../Src/image/draftimg.bmp"\r
+IDB_TOOLBAR             BITMAP  DISCARDABLE     "../../../Src/image/toolbar.bmp"\r
+IDB_MEMOSELECT_IMAGES24 BITMAP  DISCARDABLE     "../../../src/image/memoimg24.bmp"\r
+IDB_TOOLBAR_LARGE       BITMAP  DISCARDABLE     "../../../src/image/toolbarlarge.bmp"\r
+\r
+/////////////////////////////////////////////////////////////////////////////\r
+//\r
+// Icon\r
+//\r
+\r
+// Icon with lowest ID value placed first to ensure application icon\r
+// remains consistent on all systems.\r
+IDI_TOMBO               ICON    DISCARDABLE     "../../../Src/image/Tombo.ICO"\r
+\r
+/////////////////////////////////////////////////////////////////////////////\r
+//\r
+// Data\r
+//\r
+\r
+IDM_MAIN_MENU SHMENUBAR DISCARDABLE \r
+BEGIN\r
+    IDM_MAIN_MENU, 10,\r
+    2, 40019, TBSTATE_ENABLED, TBSTYLE_AUTOSIZE, 60178, 0, 0,\r
+    I_IMAGENONE, IDM_EDIT_MEMO, TBSTATE_ENABLED, \r
+    TBSTYLE_DROPDOWN | TBSTYLE_AUTOSIZE, IDS_MENUITEM40081, 0, 0,\r
+    11, IDM_MS_BOOKMARK, TBSTATE_ENABLED, \r
+    TBSTYLE_DROPDOWN | TBSTYLE_AUTOSIZE, 63664, 0, 1,\r
+    I_IMAGENONE, IDM_MENUITEM3, TBSTATE_ENABLED, \r
+    TBSTYLE_DROPDOWN | TBSTYLE_AUTOSIZE, IDS_MENUITEM40083, 0, 2,\r
+    I_IMAGENONE, 0, TBSTATE_ENABLED, TBSTYLE_SEP, 0, 0, NOMENU,\r
+    9, 40062, TBSTATE_ENABLED, TBSTYLE_AUTOSIZE, 0, 0, 3,\r
+    7, 40064, 0, TBSTYLE_AUTOSIZE, 0, 0, 3,\r
+    8, 40063, 0, TBSTYLE_AUTOSIZE, 0, 0, 3,\r
+    I_IMAGENONE, 0, TBSTATE_ENABLED, TBSTYLE_SEP, 0, 0, NOMENU,\r
+    6, 40078, TBSTATE_ENABLED, TBSTYLE_AUTOSIZE, 0, 0, 3,\r
+END\r
+\r
+IDM_DETAILS_MENU SHMENUBAR DISCARDABLE \r
+BEGIN\r
+    IDM_DETAILS_MENU, 11,\r
+    0, 40022, TBSTATE_ENABLED, TBSTYLE_AUTOSIZE, 60178, 0, 0,\r
+    5, 40044, TBSTATE_ENABLED, TBSTYLE_AUTOSIZE, 60178, 0, 0,\r
+    I_IMAGENONE, IDM_EDIT_MEMO, TBSTATE_ENABLED, \r
+    TBSTYLE_DROPDOWN | TBSTYLE_AUTOSIZE, IDM_COPY, 0, 0,\r
+    I_IMAGENONE, IDM_DETAILS_TOOL, TBSTATE_ENABLED, \r
+    TBSTYLE_DROPDOWN | TBSTYLE_AUTOSIZE, IDS_MENUITEM40014, 0, 1,\r
+    I_IMAGENONE, 0, TBSTATE_ENABLED, TBSTYLE_SEP, 0, 0, NOMENU,\r
+    3, 40053, TBSTATE_ENABLED, TBSTYLE_AUTOSIZE, 0, 0, 2,\r
+    4, 40054, TBSTATE_ENABLED, TBSTYLE_AUTOSIZE, 0, 0, 2,\r
+    I_IMAGENONE, 0, TBSTATE_ENABLED, TBSTYLE_SEP, 0, 0, NOMENU,\r
+    7, 40064, 0, TBSTYLE_AUTOSIZE, 0, 0, 2,\r
+    8, 40063, 0, TBSTYLE_AUTOSIZE, 0, 0, 2,\r
+    I_IMAGENONE, 0, TBSTATE_ENABLED, TBSTYLE_SEP, 0, 0, NOMENU,\r
+END\r
+\r
+IDM_DETAILSDLG_MENU SHMENUBAR DISCARDABLE \r
+BEGIN\r
+    IDM_DETAILSDLG_MENU, 10,\r
+    5, 40044, TBSTATE_ENABLED, TBSTYLE_AUTOSIZE, 60178, 0, 0,\r
+    I_IMAGENONE, IDM_EDIT_MEMO, TBSTATE_ENABLED, \r
+    TBSTYLE_DROPDOWN | TBSTYLE_AUTOSIZE, IDM_COPY, 0, 0,\r
+    I_IMAGENONE, IDM_DETAILS_TOOL, TBSTATE_ENABLED, \r
+    TBSTYLE_DROPDOWN | TBSTYLE_AUTOSIZE, IDS_MENUITEM40014, IDM_DETAILS_TOOL, \r
+    1,\r
+    I_IMAGENONE, 0, TBSTATE_ENABLED, TBSTYLE_SEP, 0, 0, NOMENU,\r
+    3, 40053, TBSTATE_ENABLED, TBSTYLE_AUTOSIZE, 0, IDM_INSDATE, 2,\r
+    4, 40054, TBSTATE_ENABLED, TBSTYLE_AUTOSIZE, 0, 0, 2,\r
+    I_IMAGENONE, 0, TBSTATE_ENABLED, TBSTYLE_SEP, 0, 0, NOMENU,\r
+    7, IDM_SEARCH_PREV, 0, TBSTYLE_AUTOSIZE, 0, 0, 2,\r
+    8, IDM_SEARCH_NEXT, 0, TBSTYLE_AUTOSIZE, 0, IDM_SEARCH_NEXT, 2,\r
+    I_IMAGENONE, 0, TBSTATE_ENABLED, TBSTYLE_SEP, 0, 0, NOMENU,\r
+END\r
+\r
+\r
+/////////////////////////////////////////////////////////////////////////////\r
+//\r
+// Menubar\r
+//\r
+\r
+IDM_MAIN_MENU MENU DISCARDABLE \r
+BEGIN\r
+    POPUP "Memo"\r
+    BEGIN\r
+        MENUITEM SEPARATOR\r
+    END\r
+    POPUP ""\r
+    BEGIN\r
+        MENUITEM SEPARATOR\r
+    END\r
+    POPUP "Tool"\r
+    BEGIN\r
+        MENUITEM SEPARATOR\r
+    END\r
+END\r
+\r
+IDM_DETAILS_MENU MENU DISCARDABLE \r
+BEGIN\r
+    POPUP "\95Ò\8fW"\r
+    BEGIN\r
+        MENUITEM SEPARATOR\r
+    END\r
+    POPUP "\83c\81[\83\8b"\r
+    BEGIN\r
+        MENUITEM SEPARATOR\r
+    END\r
+END\r
+\r
+IDM_DETAILSDLG_MENU MENU DISCARDABLE \r
+BEGIN\r
+    POPUP "\95Ò\8fW"\r
+    BEGIN\r
+        MENUITEM "\90Ø\82è\8eæ\82è",                    IDM_CUT\r
+        MENUITEM "\83R\83s\81[",                      IDM_COPY\r
+        MENUITEM "\93\\82è\95t\82¯",                    IDM_PASTE\r
+        MENUITEM SEPARATOR\r
+        MENUITEM "\91S\91I\91ð",                      IDM_SELALL\r
+        MENUITEM SEPARATOR\r
+        MENUITEM "\8c\9f\8dõ",                        IDM_SEARCH\r
+        MENUITEM "\8e\9f\82ð\8c\9f\8dõ",                    IDM_SEARCH_NEXT\r
+        MENUITEM "\91O\82ð\8c\9f\8dõ",                    IDM_SEARCH_PREV\r
+    END\r
+    POPUP "\83c\81[\83\8b"\r
+    BEGIN\r
+        MENUITEM "\90Ü\82è\95Ô\82µ\82Ä\95\\8e¦",              IDM_DETAILS_HSCROLL, CHECKED\r
+    END\r
+END\r
+\r
+\r
+/////////////////////////////////////////////////////////////////////////////\r
+//\r
+// Dialog\r
+//\r
+\r
+IDD_ABOUTBOX DIALOG DISCARDABLE  0, 0, 162, 166\r
+STYLE DS_MODALFRAME | DS_CENTER | WS_POPUP | WS_CAPTION | WS_SYSMENU\r
+EXSTYLE 0x80000000L\r
+CAPTION "About TOMBO"\r
+FONT 8, "Tahoma"\r
+BEGIN\r
+    ICON            IDI_TOMBO,IDC_STATIC,10,10,20,20\r
+    LTEXT           "Tombo Ver. 1.4",IDC_VERSIONINFO,40,15,100,8,SS_NOPREFIX\r
+    EDITTEXT        IDC_COPYRIGHT,7,34,143,120,ES_MULTILINE | ES_AUTOVSCROLL | \r
+                    ES_AUTOHSCROLL | ES_READONLY | WS_VSCROLL | WS_HSCROLL | \r
+                    NOT WS_TABSTOP\r
+END\r
+\r
+IDD_PASSWORD DIALOG DISCARDABLE  0, 0, 114, 53\r
+STYLE DS_MODALFRAME | DS_CENTER | WS_POPUP | WS_CAPTION | WS_SYSMENU\r
+CAPTION "Password"\r
+FONT 9, "Tahoma"\r
+BEGIN\r
+    EDITTEXT        IDC_PASS,5,5,105,12,ES_PASSWORD | ES_AUTOHSCROLL\r
+    EDITTEXT        IDC_PASS2,5,20,105,12,ES_PASSWORD | ES_AUTOHSCROLL\r
+    DEFPUSHBUTTON   "OK",IDOK,25,35,40,12\r
+    PUSHBUTTON      "Cancel",IDCANCEL,70,35,40,12\r
+END\r
+\r
+IDD_PROPTAB_FOLDER DIALOG DISCARDABLE  0, 0, 131, 111\r
+STYLE WS_CHILD | WS_BORDER\r
+FONT 9, "Tahoma"\r
+BEGIN\r
+    LTEXT           "Folder:",IDC_PROPTAB_FOLDER_LABEL,5,0,65,10\r
+    PUSHBUTTON      "...",IDC_FOLDERSEL,100,15,15,10\r
+    LTEXT           "Folder to store Tombo Notes",IDC_PROPTAB_FOLDER_HELP1,\r
+                    10,30,115,10\r
+    CONTROL         "Sync file name and title",IDC_KEEPTITLE,"Button",\r
+                    BS_AUTOCHECKBOX | WS_TABSTOP,5,45,120,10\r
+    LTEXT           "Rename file name if headline changed.",\r
+                    IDC_PROPTAB_FOLDER_HELP2,10,65,115,20\r
+    COMBOBOX        IDC_TOPFOLDER,5,15,90,85,CBS_DROPDOWN | CBS_AUTOHSCROLL | \r
+                    WS_VSCROLL | WS_TABSTOP\r
+    CONTROL         "Open notes read-only mode",IDC_PROP_READONLY,"Button",\r
+                    BS_AUTOCHECKBOX | WS_TABSTOP,5,90,115,10\r
+END\r
+\r
+IDD_FILESELECT DIALOG DISCARDABLE  0, 0, 135, 94\r
+STYLE DS_MODALFRAME | DS_CENTER | WS_POPUP | WS_CAPTION | WS_SYSMENU\r
+CAPTION "Select File"\r
+FONT 9, "Tahoma"\r
+BEGIN\r
+    PUSHBUTTON      "OK",IDOK,55,70,35,15\r
+    PUSHBUTTON      "CANCEL",IDCANCEL,95,70,35,15\r
+    CONTROL         "Tree1",IDC_FILESELECT_TREE,"SysTreeView32",\r
+                    TVS_HASBUTTONS | TVS_HASLINES | TVS_LINESATROOT | \r
+                    WS_BORDER | WS_TABSTOP,5,5,125,65\r
+END\r
+\r
+IDD_PROPTAB_PASSWORD DIALOG DISCARDABLE  0, 0, 131, 121\r
+STYLE WS_CHILD | WS_BORDER\r
+FONT 9, "Tahoma"\r
+BEGIN\r
+    EDITTEXT        IDC_PASS1,5,15,90,12,ES_PASSWORD | ES_AUTOHSCROLL\r
+    EDITTEXT        IDC_PASS2,5,40,90,12,ES_PASSWORD | ES_AUTOHSCROLL\r
+    LTEXT           "Password:",IDC_STATIC,5,5,105,10\r
+    LTEXT           "ReEnter:",IDC_STATIC,5,30,75,10\r
+    EDITTEXT        IDC_PROP_PASSWORD_DESC,5,55,120,60,ES_MULTILINE | \r
+                    ES_AUTOVSCROLL | ES_READONLY\r
+    PUSHBUTTON      "Option",IDC_PROP_SETPASS,95,39,29,13\r
+END\r
+\r
+IDD_NEWFOLDER DIALOG DISCARDABLE  0, 0, 103, 44\r
+STYLE DS_MODALFRAME | DS_CENTER | WS_POPUP | WS_CAPTION | WS_SYSMENU\r
+CAPTION "NewFolder"\r
+FONT 9, "Tahoma"\r
+BEGIN\r
+    EDITTEXT        IDC_NEWFOLDER_NAME,5,5,95,12,ES_AUTOHSCROLL\r
+    DEFPUSHBUTTON   "OK",IDOK,10,25,40,15\r
+    PUSHBUTTON      "Cancel",IDCANCEL,55,25,40,14\r
+END\r
+\r
+IDD_PROPTAB_PASS_TIMEOUT DIALOG DISCARDABLE  0, 0, 131, 121\r
+STYLE WS_CHILD | WS_BORDER\r
+FONT 9, "Tahoma"\r
+BEGIN\r
+    LTEXT           "Password timeout(min):",IDC_PROPTAB_PASS_TIMEOUT_LABEL,\r
+                    5,5,120,10\r
+    EDITTEXT        IDC_PASS_TIMEOUT,35,20,35,12,ES_AUTOHSCROLL\r
+    LTEXT           "Timeout length(1-60).",IDC_PROPTAB_PASS_TIMEOUT_HELP,5,\r
+                    35,120,20\r
+    CONTROL         "Use random file name",IDC_PASS_TIMEOUT_USE_SAFEFILE,\r
+                    "Button",BS_AUTOCHECKBOX | WS_TABSTOP,10,60,115,10\r
+    LTEXT           "Static",IDC_PROPTAB_PASS_TIMEOUT_SAFEFILE_HELP,5,80,125,\r
+                    35\r
+END\r
+\r
+IDD_PROPTAB_FONT DIALOG DISCARDABLE  0, 0, 117, 122\r
+STYLE WS_CHILD\r
+FONT 9, "Tahoma"\r
+BEGIN\r
+    LTEXT           "Tree:",IDC_PROPTAB_FONT_TREE_LABEL,5,5,25,10\r
+    LTEXT           "Memo:",IDC_PROPTAB_FONT_EDIT_LABEL,5,65,25,10\r
+    COMBOBOX        IDC_FONT_SELECT_NAME,10,20,75,65,CBS_DROPDOWNLIST | \r
+                    CBS_SORT | WS_VSCROLL | WS_TABSTOP\r
+    COMBOBOX        IDC_FONT_DETAILS_NAME,10,80,75,65,CBS_DROPDOWNLIST | \r
+                    CBS_SORT | WS_VSCROLL | WS_TABSTOP\r
+    COMBOBOX        IDC_FONT_SELECT_SIZE,10,35,35,65,CBS_DROPDOWN | \r
+                    WS_VSCROLL | WS_TABSTOP\r
+    COMBOBOX        IDC_FONT_DETAILS_SIZE,10,94,35,65,CBS_DROPDOWN | \r
+                    WS_VSCROLL | WS_TABSTOP\r
+    CONTROL         "Use default",IDC_FONT_SELECT_USEDEFAULT,"Button",\r
+                    BS_AUTOCHECKBOX | WS_TABSTOP,30,5,85,10\r
+    CONTROL         "Use default",IDC_FONT_DETAILS_USEDEFAULT,"Button",\r
+                    BS_AUTOCHECKBOX | WS_TABSTOP,30,65,80,10\r
+    CONTROL         "ClearType font",IDC_FONT_SELECT_CLEARTYPE,"Button",\r
+                    BS_AUTOCHECKBOX | WS_TABSTOP,10,50,105,9\r
+    CONTROL         "ClearType font",IDC_FONT_DETAILS_CLEARTYPE,"Button",\r
+                    BS_AUTOCHECKBOX | WS_TABSTOP,10,110,100,9\r
+END\r
+\r
+IDD_PROPTAB_INSDATE DIALOG DISCARDABLE  0, 0, 132, 122\r
+STYLE WS_CHILD\r
+FONT 9, "Tahoma"\r
+BEGIN\r
+    LTEXT           "Date1:",IDC_PROPTAB_INSDATE_DATE1,10,5,25,10\r
+    LTEXT           "Date2:",IDC_PROPTAB_INSDATE_DATE2,10,20,25,10\r
+    EDITTEXT        IDC_PROP_DATEFORMAT1,41,5,84,12,ES_AUTOHSCROLL\r
+    EDITTEXT        IDC_PROP_DATEFORMAT2,41,20,84,12,ES_AUTOHSCROLL\r
+    EDITTEXT        IDC_DATEFORMAT_DESC,5,35,120,80,ES_MULTILINE | \r
+                    ES_AUTOHSCROLL | ES_READONLY | WS_VSCROLL | NOT \r
+                    WS_TABSTOP\r
+END\r
+\r
+IDD_PROPTAB_KEEPCARET DIALOG DISCARDABLE  0, 0, 132, 127\r
+STYLE WS_CHILD\r
+FONT 9, "Tahoma"\r
+BEGIN\r
+    CONTROL         "Keep Caret",IDC_PROP_KEEPCARET,"Button",BS_AUTOCHECKBOX | \r
+                    WS_TABSTOP,5,5,125,10\r
+    LTEXT           " ",IDC_PROPTAB_KEEPCARET_HELP1,10,20,120,20\r
+    LTEXT           "TabStop",IDC_PROPTAB_KEEPCARET_LABEL,5,40,40,10\r
+    EDITTEXT        IDC_PROP_TABSTOP,50,40,35,12,ES_AUTOHSCROLL\r
+    LTEXT           " ",IDC_PROPTAB_KEEPCARET_HELP2,10,50,120,10\r
+    CONTROL         "Show title",IDC_PROP_SWITCHTITLE,"Button",\r
+                    BS_AUTOCHECKBOX | WS_TABSTOP,5,70,125,10\r
+    LTEXT           "Show memo title to titlebar",\r
+                    IDC_PROPTAB_KEEPCARET_HELP3,10,85,120,15\r
+    CONTROL         "Disable save dialog",IDC_PROPTAB_DISABLESAVEDLG,"Button",\r
+                    BS_AUTOCHECKBOX | WS_TABSTOP,5,105,125,10\r
+END\r
+\r
+IDD_PROPTAB_APPBUTTON DIALOG DISCARDABLE  0, 0, 122, 127\r
+STYLE WS_CHILD\r
+FONT 9, "Tahoma"\r
+BEGIN\r
+    CONTROL         "Button1",IDC_PROP_APPBUTTON1,"Button",BS_AUTOCHECKBOX | \r
+                    WS_TABSTOP,5,5,105,10\r
+    CONTROL         "Button4",IDC_PROP_APPBUTTON4,"Button",BS_AUTOCHECKBOX | \r
+                    WS_TABSTOP,5,50,105,10\r
+    CONTROL         "Button2",IDC_PROP_APPBUTTON2,"Button",BS_AUTOCHECKBOX | \r
+                    WS_TABSTOP,5,20,105,10\r
+    CONTROL         "Button3",IDC_PROP_APPBUTTON3,"Button",BS_AUTOCHECKBOX | \r
+                    WS_TABSTOP,5,35,105,10\r
+    CONTROL         "Button5",IDC_PROP_APPBUTTON5,"Button",BS_AUTOCHECKBOX | \r
+                    WS_TABSTOP,5,65,105,10\r
+    LTEXT           "Assigin Appliction button to action button. It is enabled after restarting TOMBO",\r
+                    IDC_PROPTAB_APPBTN_HELP,5,80,110,30\r
+    CONTROL         "Disable close notes on edit view",\r
+                    IDC_PROPTAB_DISABLEACTION,"Button",BS_AUTOCHECKBOX | \r
+                    WS_TABSTOP,5,115,115,10\r
+END\r
+\r
+IDD_SEARCH DIALOG DISCARDABLE  0, 0, 111, 129\r
+STYLE DS_MODALFRAME | DS_CENTER | WS_POPUP | WS_CAPTION | WS_SYSMENU\r
+EXSTYLE 0x80000000L\r
+CAPTION "Search"\r
+FONT 9, "Tahoma"\r
+BEGIN\r
+    LTEXT           "Search Str:",IDC_SEARCH_FIND_LABEL,5,5,40,8\r
+    CONTROL         "Case sensitive",IDC_SEARCH_CASESENSITIVE,"Button",\r
+                    BS_AUTOCHECKBOX | WS_TABSTOP,5,35,100,15\r
+    COMBOBOX        IDC_SEARCH_STRING,5,15,100,50,CBS_DROPDOWN | WS_VSCROLL | \r
+                    WS_TABSTOP\r
+    CONTROL         "Find encrypted memo",IDC_SEARCH_ENCRYPTMEMO,"Button",\r
+                    BS_AUTOCHECKBOX | WS_TABSTOP,5,80,100,15\r
+    CONTROL         "Find to file name",IDC_FILENAMEONLY,"Button",\r
+                    BS_AUTOCHECKBOX | WS_TABSTOP,5,100,105,10\r
+    CONTROL         "Up",IDC_SEARCH_DIRECTION_UP,"Button",BS_AUTORADIOBUTTON,\r
+                    15,60,29,10\r
+    CONTROL         "Down",IDC_SEARCH_DIRECTION_DOWN,"Button",\r
+                    BS_AUTORADIOBUTTON,45,60,29,10\r
+    GROUPBOX        "Direction",IDC_SEARCH_DIRECT_LABEL,5,50,75,25\r
+END\r
+\r
+IDD_SEARCHING DIALOG DISCARDABLE  0, 0, 91, 63\r
+STYLE DS_MODALFRAME | DS_CENTER | WS_POPUP\r
+FONT 9, "Tahoma"\r
+BEGIN\r
+    PUSHBUTTON      "Cancel",IDCANCEL,20,40,50,14\r
+    CTEXT           "Searching...",IDC_SEARCHMSG,5,20,80,8\r
+END\r
+\r
+IDD_GREPTAB_MAIN DIALOG DISCARDABLE  0, 0, 136, 111\r
+STYLE WS_CHILD | WS_BORDER\r
+FONT 9, "Tahoma"\r
+BEGIN\r
+    LTEXT           "Target dir:",IDC_GREPTAB_MAIN_POSLABEL,5,6,44,8\r
+    LTEXT           "Static",IDC_GREPTAB_MAIN_STARTDIR,55,5,75,8\r
+    LTEXT           "Search str:",IDC_GREPTAB_MAIN_STRLABEL,5,20,38,8\r
+    COMBOBOX        IDC_GREPTAB_MAIN_SEARCHSTRING,55,20,75,80,CBS_DROPDOWN | \r
+                    WS_VSCROLL | WS_TABSTOP\r
+    CONTROL         "Case sensitive",IDC_GREPTAB_MAIN_CASESENSITIVE,"Button",\r
+                    BS_AUTOCHECKBOX | WS_TABSTOP,10,40,76,10\r
+    CONTROL         "Include encrypted memo",IDC_GREPTAB_MAIN_ENCRYPTNOTE,\r
+                    "Button",BS_AUTOCHECKBOX | WS_TABSTOP,10,55,81,10\r
+    CONTROL         "Find to file name",IDC_GREPTAB_MAIN_FILENAME,"Button",\r
+                    BS_AUTOCHECKBOX | WS_TABSTOP,10,70,78,10\r
+END\r
+\r
+IDD_GREPTAB_PERSIST DIALOG DISCARDABLE  0, 0, 136, 111\r
+STYLE WS_CHILD | WS_BORDER\r
+FONT 9, "Tahoma"\r
+BEGIN\r
+END\r
+\r
+IDD_FILTERCTL DIALOG DISCARDABLE  0, 0, 139, 99\r
+STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU\r
+CAPTION "Virtual folder"\r
+FONT 9, "Tahoma"\r
+BEGIN\r
+    DEFPUSHBUTTON   "OK",IDOK,15,80,40,14\r
+    PUSHBUTTON      "Cancel",IDCANCEL,60,80,40,14\r
+    CONTROL         "List1",IDC_FILTERCTL_LIST,"SysListView32",LVS_REPORT | \r
+                    LVS_SINGLESEL | LVS_SHOWSELALWAYS | LVS_EDITLABELS | \r
+                    WS_BORDER | WS_TABSTOP,25,5,75,70\r
+    CONTROL         "Save",IDC_FILTERCTL_KEEP,"Button",BS_AUTOCHECKBOX | \r
+                    WS_TABSTOP,105,5,30,10\r
+    PUSHBUTTON      "Up",IDC_FILTERCTL_UP,0,20,20,14\r
+    PUSHBUTTON      "DN",IDC_FILTERCTL_DOWN,0,40,20,14\r
+    PUSHBUTTON      "New",IDC_FILTERCTL_NEW,105,25,20,14\r
+    PUSHBUTTON      "Del",IDC_FILTERCTL_DELETE,105,65,20,14\r
+    PUSHBUTTON      "Ren",IDC_FILTERCTL_RENAME,105,45,20,14\r
+END\r
+\r
+IDD_FILTERDEF_ADD_LIMIT DIALOG DISCARDABLE  0, 0, 119, 65\r
+STYLE DS_MODALFRAME | DS_CENTER | WS_POPUP | WS_CAPTION | WS_SYSMENU\r
+CAPTION "Number filter"\r
+FONT 9, "Tahoma"\r
+BEGIN\r
+    DEFPUSHBUTTON   "OK",IDOK,5,45,50,14\r
+    PUSHBUTTON      "CANCEL",IDCANCEL,60,45,50,14\r
+    LTEXT           "Num Items:",IDC_FILTERDEF_ADD_LIMIT_ITEMS,5,15,36,8\r
+    EDITTEXT        IDC_FILTERDEF_LIMIT_NUMLIMIT,50,15,40,14,ES_AUTOHSCROLL\r
+END\r
+\r
+IDD_FILTERDEF_ADD_REGEX DIALOG DISCARDABLE  0, 0, 134, 119\r
+STYLE DS_MODALFRAME | DS_CENTER | WS_POPUP | WS_CAPTION | WS_SYSMENU\r
+CAPTION "Find filter"\r
+FONT 9, "Tahoma"\r
+BEGIN\r
+    DEFPUSHBUTTON   "OK",IDOK,10,100,50,14\r
+    PUSHBUTTON      "CANCEL",IDCANCEL,65,100,50,14\r
+    LTEXT           "Search str:",IDC_FILTERDEF_ADD_REGEX_LABEL,5,10,36,8\r
+    COMBOBOX        IDC_FILTERDEF_REGEX_SEARCHSTR,50,10,80,80,CBS_DROPDOWN | \r
+                    CBS_SORT | WS_VSCROLL | WS_TABSTOP\r
+    CONTROL         "Case sensitive",IDC_FILTERDEF_REGEX_CASESENSITIVE,\r
+                    "Button",BS_AUTOCHECKBOX | WS_TABSTOP,10,35,77,10\r
+    CONTROL         "Include encrypted memo",IDC_FILTERDEF_REGEX_CRYPTMEMO,\r
+                    "Button",BS_AUTOCHECKBOX | WS_TABSTOP,10,50,78,10\r
+    CONTROL         "Find to file name",IDC_FILTERDEF_REGEX_FILENAME,"Button",\r
+                    BS_AUTOCHECKBOX | WS_TABSTOP,10,65,85,10\r
+    CONTROL         "Invert match",IDC_FILTERDEF_REGEX_NEGATE,"Button",\r
+                    BS_AUTOCHECKBOX | WS_TABSTOP,10,80,83,10\r
+END\r
+\r
+IDD_FILTERDEF_ADD_SORT DIALOG DISCARDABLE  0, 0, 134, 65\r
+STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU\r
+CAPTION "Sort filter"\r
+FONT 9, "Tahoma"\r
+BEGIN\r
+    DEFPUSHBUTTON   "OK",IDOK,10,40,50,14\r
+    PUSHBUTTON      "CANCEL",IDCANCEL,65,40,50,14\r
+    COMBOBOX        IDC_FILTERDEF_SORT_TYPE,45,15,80,85,CBS_DROPDOWNLIST | \r
+                    WS_VSCROLL | WS_TABSTOP\r
+    LTEXT           "Sort Type:",IDC_FILTERDEF_ADD_SORT_LABEL,5,15,35,8\r
+END\r
+\r
+IDD_FILTERDEF_ADD_TIMESTAMP DIALOG DISCARDABLE  0, 0, 119, 93\r
+STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU\r
+CAPTION "Timestamp filter"\r
+FONT 9, "Tahoma"\r
+BEGIN\r
+    EDITTEXT        IDC_FILTERDEF_TS_DELTADAY,25,10,30,14,ES_AUTOHSCROLL\r
+    CONTROL         "Newer",IDC_FILTERDEF_TS_NEWER,"Button",\r
+                    BS_AUTORADIOBUTTON,35,35,46,10\r
+    CONTROL         "Older",IDC_FILTERDEF_TS_OLDER,"Button",\r
+                    BS_AUTORADIOBUTTON,35,50,41,10\r
+    DEFPUSHBUTTON   "OK",IDOK,5,75,50,14\r
+    PUSHBUTTON      "CANCEL",IDCANCEL,60,75,50,14\r
+    LTEXT           "days before",IDC_FILTERDEF_ADD_TIMESTAMP_BASEPOINT,60,\r
+                    15,26,8\r
+END\r
+\r
+IDD_FILTERDEF_FILTER DIALOG DISCARDABLE  0, 0, 136, 120\r
+STYLE WS_CHILD | WS_BORDER\r
+FONT 9, "Tahoma"\r
+BEGIN\r
+    CONTROL         "List1",IDC_FILTERDEF_FILTER_LIST,"SysListView32",\r
+                    LVS_REPORT | LVS_SINGLESEL | LVS_SHOWSELALWAYS | \r
+                    WS_BORDER | WS_TABSTOP,5,5,100,85\r
+    PUSHBUTTON      "Up",IDC_FILTERDEF_FILTER_UP,110,20,20,14\r
+    PUSHBUTTON      "Dn",IDC_FILTERDEF_FILTER_DOWN,110,40,20,14\r
+    PUSHBUTTON      "Find",IDC_FILTERDEF_FILTER_REGEX,5,95,25,14\r
+    PUSHBUTTON      "Num",IDC_FILTERDEF_FILTER_LIMIT,35,95,25,14\r
+    PUSHBUTTON      "Date",IDC_FILTERDEF_FILTER_TIMESTAMP,65,95,25,14\r
+    PUSHBUTTON      "Sort",IDC_FILTERDEF_FILTER_SORT,95,95,25,14\r
+    PUSHBUTTON      "Del",IDC_FILTERDEF_FILTER_DELETE,110,70,20,14\r
+END\r
+\r
+IDD_FILTERDEF_SRC DIALOG DISCARDABLE  0, 0, 136, 50\r
+STYLE WS_CHILD | WS_BORDER\r
+FONT 9, "Tahoma"\r
+BEGIN\r
+    EDITTEXT        IDC_FILTERDEF_SRC_PATH,5,15,120,14,ES_AUTOHSCROLL\r
+END\r
+\r
+IDD_PROPTAB_SIP DIALOG DISCARDABLE  0, 0, 122, 132\r
+STYLE WS_CHILD\r
+FONT 9, "Tahoma"\r
+BEGIN\r
+    CONTROL         "Keep space over the SIP",IDC_PROP_SIPDELTA,"Button",\r
+                    BS_AUTOCHECKBOX | WS_TABSTOP,5,10,110,10\r
+END\r
+\r
+IDD_PROPTAB_DEFNOTE DIALOG DISCARDABLE  0, 0, 131, 96\r
+STYLE WS_CHILD | WS_BORDER\r
+FONT 9, "Tahoma"\r
+BEGIN\r
+    EDITTEXT        IDC_PROPTAB_DEFNOTE_PATH,5,40,115,12,ES_AUTOHSCROLL | \r
+                    ES_READONLY\r
+    PUSHBUTTON      "Use current",IDC_PROPTAB_DEFNOTE_SETCURRENT,60,60,60,14\r
+    PUSHBUTTON      "Use blank",IDC_PROPTAB_DEFNOTE_SETBLANK,60,80,60,14\r
+    LTEXT           "Top page",IDC_PROPTAB_DEFNOTE_LABEL,5,25,45,8\r
+    CONTROL         "Use Last",IDC_PROPTAB_DEFNOTE_USELAST,"Button",\r
+                    BS_AUTOCHECKBOX | WS_TABSTOP,5,5,125,10\r
+END\r
+\r
+IDD_BOOKMARK_EDIT DIALOG DISCARDABLE  0, 0, 134, 99\r
+STYLE DS_MODALFRAME | DS_CENTER | WS_POPUP | WS_CAPTION | WS_SYSMENU\r
+CAPTION "Edit bookmarks"\r
+FONT 9, "Tahoma"\r
+BEGIN\r
+    DEFPUSHBUTTON   "OK",IDOK,10,80,50,14\r
+    PUSHBUTTON      "Cancel",IDCANCEL,65,80,50,14\r
+    CONTROL         "List1",IDC_BMEDIT_LIST,"SysListView32",LVS_REPORT | \r
+                    WS_BORDER | WS_TABSTOP,5,5,85,70\r
+    PUSHBUTTON      "Up",IDC_BMEDIT_UP,100,15,20,14\r
+    PUSHBUTTON      "Dn",IDC_BMEDIT_DOWN,100,35,20,14\r
+    PUSHBUTTON      "Del",IDC_BMEDIT_DELETE,100,60,30,14\r
+END\r
+\r
+IDD_DETAILSVIEW DIALOG DISCARDABLE  0, 0, 139, 154\r
+STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU\r
+CAPTION "Dialog"\r
+FONT 9, "Tahoma"\r
+BEGIN\r
+END\r
+\r
+IDD_PROPTAB_EXTAPP DIALOG DISCARDABLE  0, 0, 126, 131\r
+STYLE WS_CHILD | WS_BORDER\r
+FONT 9, "Tahoma"\r
+BEGIN\r
+    CONTROL         "Use file association",IDC_PROP_EXTAPP_USEASSOC,"Button",\r
+                    BS_AUTOCHECKBOX | WS_TABSTOP,5,5,74,10\r
+    EDITTEXT        IDC_PROP_EXTAPP_PATH_EXTAPP1,10,30,80,12,ES_AUTOHSCROLL\r
+    EDITTEXT        IDC_PROP_EXTAPP_PATH_EXTAPP2,10,60,80,12,ES_AUTOHSCROLL\r
+    LTEXT           "Application1",IDC_PROP_EXTAPP_TTL_EXTAPP1,7,18,60,8\r
+    LTEXT           "Application2",IDC_PROP_EXTAPP_TTL_EXTAPP2,7,49,60,8\r
+    PUSHBUTTON      "...",IDC_PROPTAB_EXTAPP_CHOOSE1,95,30,20,10\r
+    PUSHBUTTON      "...",IDC_PROPTAB_EXTAPP_CHOOSE2,95,60,20,10\r
+    EDITTEXT        IDC_PROP_EXTAPP_CAUTION,5,80,115,50,ES_MULTILINE | \r
+                    ES_AUTOVSCROLL | ES_READONLY | WS_VSCROLL\r
+END\r
+\r
+IDD_PROPTAB_CODEPAGE DIALOG DISCARDABLE  0, 0, 132, 92\r
+STYLE WS_CHILD\r
+FONT 9, "System"\r
+BEGIN\r
+    LTEXT           "CodePage:",IDC_PROPTAB_CODEPAGE_LABEL,5,10,120,8\r
+    COMBOBOX        IDC_PROPTAB_CODEPAGE_CODEPAGE,5,25,125,60,\r
+                    CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP\r
+    EDITTEXT        IDC_PROPTAB_CODEPAGE_NOTICE,5,45,125,45,ES_MULTILINE | \r
+                    ES_AUTOVSCROLL | ES_READONLY\r
+END\r
+\r
+\r
+/////////////////////////////////////////////////////////////////////////////\r
+//\r
+// DESIGNINFO\r
+//\r
+\r
+#ifdef APSTUDIO_INVOKED\r
+GUIDELINES DESIGNINFO DISCARDABLE \r
+BEGIN\r
+    IDD_ABOUTBOX, DIALOG\r
+    BEGIN\r
+        LEFTMARGIN, 7\r
+        RIGHTMARGIN, 157\r
+        TOPMARGIN, 7\r
+        BOTTOMMARGIN, 154\r
+    END\r
+\r
+    IDD_PASSWORD, DIALOG\r
+    BEGIN\r
+        LEFTMARGIN, 7\r
+        RIGHTMARGIN, 107\r
+        TOPMARGIN, 7\r
+        BOTTOMMARGIN, 46\r
+    END\r
+\r
+    IDD_PROPTAB_FOLDER, DIALOG\r
+    BEGIN\r
+        LEFTMARGIN, 7\r
+        RIGHTMARGIN, 124\r
+        TOPMARGIN, 7\r
+        BOTTOMMARGIN, 104\r
+    END\r
+\r
+    IDD_FILESELECT, DIALOG\r
+    BEGIN\r
+        RIGHTMARGIN, 134\r
+        BOTTOMMARGIN, 89\r
+    END\r
+\r
+    IDD_PROPTAB_PASSWORD, DIALOG\r
+    BEGIN\r
+        LEFTMARGIN, 7\r
+        RIGHTMARGIN, 124\r
+        TOPMARGIN, 7\r
+        BOTTOMMARGIN, 114\r
+    END\r
+\r
+    IDD_NEWFOLDER, DIALOG\r
+    BEGIN\r
+        LEFTMARGIN, 7\r
+        RIGHTMARGIN, 96\r
+        TOPMARGIN, 7\r
+        BOTTOMMARGIN, 37\r
+    END\r
+\r
+    IDD_PROPTAB_PASS_TIMEOUT, DIALOG\r
+    BEGIN\r
+        LEFTMARGIN, 7\r
+        RIGHTMARGIN, 124\r
+        TOPMARGIN, 7\r
+        BOTTOMMARGIN, 114\r
+    END\r
+\r
+    IDD_PROPTAB_FONT, DIALOG\r
+    BEGIN\r
+        LEFTMARGIN, 7\r
+        RIGHTMARGIN, 110\r
+        TOPMARGIN, 7\r
+        BOTTOMMARGIN, 115\r
+    END\r
+\r
+    IDD_PROPTAB_INSDATE, DIALOG\r
+    BEGIN\r
+        LEFTMARGIN, 7\r
+        RIGHTMARGIN, 125\r
+        TOPMARGIN, 7\r
+        BOTTOMMARGIN, 115\r
+    END\r
+\r
+    IDD_PROPTAB_KEEPCARET, DIALOG\r
+    BEGIN\r
+        LEFTMARGIN, 7\r
+        RIGHTMARGIN, 125\r
+        TOPMARGIN, 7\r
+        BOTTOMMARGIN, 120\r
+    END\r
+\r
+    IDD_PROPTAB_APPBUTTON, DIALOG\r
+    BEGIN\r
+        LEFTMARGIN, 7\r
+        RIGHTMARGIN, 115\r
+        TOPMARGIN, 7\r
+        BOTTOMMARGIN, 120\r
+    END\r
+\r
+    IDD_SEARCH, DIALOG\r
+    BEGIN\r
+        LEFTMARGIN, 7\r
+        RIGHTMARGIN, 104\r
+        TOPMARGIN, 7\r
+        BOTTOMMARGIN, 122\r
+    END\r
+\r
+    IDD_SEARCHING, DIALOG\r
+    BEGIN\r
+        LEFTMARGIN, 7\r
+        RIGHTMARGIN, 84\r
+        TOPMARGIN, 7\r
+        BOTTOMMARGIN, 56\r
+    END\r
+\r
+    IDD_GREPTAB_MAIN, DIALOG\r
+    BEGIN\r
+        LEFTMARGIN, 7\r
+        RIGHTMARGIN, 129\r
+        TOPMARGIN, 7\r
+        BOTTOMMARGIN, 104\r
+    END\r
+\r
+    IDD_GREPTAB_PERSIST, DIALOG\r
+    BEGIN\r
+        LEFTMARGIN, 7\r
+        RIGHTMARGIN, 129\r
+        TOPMARGIN, 7\r
+        BOTTOMMARGIN, 104\r
+    END\r
+\r
+    IDD_FILTERCTL, DIALOG\r
+    BEGIN\r
+        LEFTMARGIN, 7\r
+        RIGHTMARGIN, 132\r
+        TOPMARGIN, 7\r
+        BOTTOMMARGIN, 92\r
+    END\r
+\r
+    IDD_FILTERDEF_ADD_LIMIT, DIALOG\r
+    BEGIN\r
+        LEFTMARGIN, 7\r
+        RIGHTMARGIN, 112\r
+        TOPMARGIN, 7\r
+        BOTTOMMARGIN, 58\r
+    END\r
+\r
+    IDD_FILTERDEF_ADD_REGEX, DIALOG\r
+    BEGIN\r
+        LEFTMARGIN, 7\r
+        RIGHTMARGIN, 127\r
+        TOPMARGIN, 7\r
+        BOTTOMMARGIN, 112\r
+    END\r
+\r
+    IDD_FILTERDEF_ADD_SORT, DIALOG\r
+    BEGIN\r
+        LEFTMARGIN, 7\r
+        RIGHTMARGIN, 127\r
+        TOPMARGIN, 7\r
+        BOTTOMMARGIN, 58\r
+    END\r
+\r
+    IDD_FILTERDEF_ADD_TIMESTAMP, DIALOG\r
+    BEGIN\r
+        LEFTMARGIN, 7\r
+        RIGHTMARGIN, 112\r
+        TOPMARGIN, 7\r
+        BOTTOMMARGIN, 86\r
+    END\r
+\r
+    IDD_FILTERDEF_FILTER, DIALOG\r
+    BEGIN\r
+        LEFTMARGIN, 7\r
+        RIGHTMARGIN, 129\r
+        TOPMARGIN, 7\r
+        BOTTOMMARGIN, 113\r
+    END\r
+\r
+    IDD_FILTERDEF_SRC, DIALOG\r
+    BEGIN\r
+        LEFTMARGIN, 7\r
+        RIGHTMARGIN, 129\r
+        TOPMARGIN, 7\r
+        BOTTOMMARGIN, 43\r
+    END\r
+\r
+    IDD_PROPTAB_SIP, DIALOG\r
+    BEGIN\r
+        LEFTMARGIN, 7\r
+        RIGHTMARGIN, 115\r
+        TOPMARGIN, 7\r
+        BOTTOMMARGIN, 125\r
+    END\r
+\r
+    IDD_PROPTAB_DEFNOTE, DIALOG\r
+    BEGIN\r
+        LEFTMARGIN, 7\r
+        TOPMARGIN, 7\r
+        BOTTOMMARGIN, 41\r
+    END\r
+\r
+    IDD_BOOKMARK_EDIT, DIALOG\r
+    BEGIN\r
+        LEFTMARGIN, 7\r
+        RIGHTMARGIN, 127\r
+        TOPMARGIN, 7\r
+        BOTTOMMARGIN, 92\r
+    END\r
+\r
+    IDD_DETAILSVIEW, DIALOG\r
+    BEGIN\r
+        LEFTMARGIN, 7\r
+        RIGHTMARGIN, 132\r
+        TOPMARGIN, 7\r
+        BOTTOMMARGIN, 147\r
+    END\r
+\r
+    IDD_PROPTAB_EXTAPP, DIALOG\r
+    BEGIN\r
+        LEFTMARGIN, 7\r
+        RIGHTMARGIN, 119\r
+        TOPMARGIN, 7\r
+        BOTTOMMARGIN, 124\r
+    END\r
+\r
+    IDD_PROPTAB_CODEPAGE, DIALOG\r
+    BEGIN\r
+        LEFTMARGIN, 7\r
+        RIGHTMARGIN, 125\r
+        TOPMARGIN, 7\r
+        BOTTOMMARGIN, 85\r
+    END\r
+END\r
+#endif    // APSTUDIO_INVOKED\r
+\r
+\r
+/////////////////////////////////////////////////////////////////////////////\r
+//\r
+// Accelerator\r
+//\r
+\r
+IDR_ACCEL_SELECT ACCELERATORS DISCARDABLE \r
+BEGIN\r
+    "E",            IDM_ENCRYPT,            VIRTKEY, CONTROL, NOINVERT\r
+    "F",            IDM_SEARCH,             VIRTKEY, CONTROL, NOINVERT\r
+    "G",            IDM_GREP,               VIRTKEY, CONTROL, NOINVERT\r
+    "N",            IDM_NEWMEMO,            VIRTKEY, CONTROL, NOINVERT\r
+    "P",            IDM_DECRYPT,            VIRTKEY, CONTROL, NOINVERT\r
+    "Q",            IDM_EXIT,               VIRTKEY, CONTROL, NOINVERT\r
+    VK_DELETE,      IDM_DELETEITEM,         VIRTKEY, NOINVERT\r
+    VK_F3,          IDM_SEARCH_NEXT,        VIRTKEY, NOINVERT\r
+    VK_F3,          IDM_SEARCH_PREV,        VIRTKEY, SHIFT, NOINVERT\r
+END\r
+\r
+IDR_ACCEL_DETAIL ACCELERATORS DISCARDABLE \r
+BEGIN\r
+    "1",            IDM_INSDATE1,           VIRTKEY, CONTROL, NOINVERT\r
+    "2",            IDM_INSDATE2,           VIRTKEY, CONTROL, NOINVERT\r
+    "B",            IDM_TOGGLEREADONLY,     VIRTKEY, CONTROL, NOINVERT\r
+    "F",            IDM_SEARCH,             VIRTKEY, CONTROL, NOINVERT\r
+    "Q",            IDM_EXIT,               VIRTKEY, CONTROL, NOINVERT\r
+    "S",            IDM_SAVE,               VIRTKEY, CONTROL, NOINVERT\r
+    VK_ESCAPE,      IDM_RETURNLIST,         VIRTKEY, NOINVERT\r
+    VK_F3,          IDM_SEARCH_NEXT,        VIRTKEY, NOINVERT\r
+    VK_F3,          IDM_SEARCH_PREV,        VIRTKEY, SHIFT, NOINVERT\r
+    "Z",            IDM_UNDO,               VIRTKEY, CONTROL, NOINVERT\r
+END\r
+\r
+\r
+/////////////////////////////////////////////////////////////////////////////\r
+//\r
+// CEUX\r
+//\r
+\r
+HI_RES_AWARE CEUX DISCARDABLE \r
+BEGIN\r
+    0x0001\r
+END\r
+\r
+\r
+/////////////////////////////////////////////////////////////////////////////\r
+//\r
+// String Table\r
+//\r
+\r
+STRINGTABLE DISCARDABLE \r
+BEGIN\r
+    IDS_MAIN_MENUITEM1      "File"\r
+END\r
+\r
+STRINGTABLE DISCARDABLE \r
+BEGIN\r
+    IDS_MENUITEM40005       "\83\81"\r
+    IDS_MENUITEM40014       "Tool"\r
+END\r
+\r
+STRINGTABLE DISCARDABLE \r
+BEGIN\r
+    IDS_MENUITEM40017       "\90V\8bK"\r
+    IDS_MENUITEM40020       "\90V\8bK\83\81\83\82"\r
+    IDS_MENUITEM40027       "\83\81\83\82"\r
+END\r
+\r
+STRINGTABLE DISCARDABLE \r
+BEGIN\r
+    IDS_MENUITEM40033       "\90V\8bK"\r
+    IDS_MENUITEM40037       "\88ê\97\97"\r
+    IDS_MENUITEM40039       "\90V\8bK"\r
+    IDS_MENUITEM40041       "\95Ò\8fW"\r
+    IDS_MENUITEM40045       "\95Û\91¶"\r
+END\r
+\r
+STRINGTABLE DISCARDABLE \r
+BEGIN\r
+    IDS_MENUITEM40048       "HELO"\r
+    IDS_MENUITEM40051       "DV_POPUP"\r
+    IDS_MENUITEM40056       "SV_POPUP"\r
+END\r
+\r
+STRINGTABLE DISCARDABLE \r
+BEGIN\r
+    IDS_MENUITEM40072       "\82¨\8bC\82É\93ü\82è"\r
+END\r
+\r
+STRINGTABLE DISCARDABLE \r
+BEGIN\r
+    IDS_MENUITEM40079       "Memo"\r
+    IDS_MENUITEM40081       "Memo"\r
+    IDS_MENUITEM40083       "Tool"\r
+END\r
+\r
+#endif    // Japanese resources\r
+/////////////////////////////////////////////////////////////////////////////\r
+\r
+\r
+/////////////////////////////////////////////////////////////////////////////\r
+// English (U.S.) resources\r
+\r
+#if !defined(AFX_RESOURCE_DLL) || defined(AFX_TARG_ENU)\r
+#ifdef _WIN32\r
+LANGUAGE LANG_ENGLISH, SUBLANG_ENGLISH_US\r
+#pragma code_page(1252)\r
+#endif //_WIN32\r
+\r
+#ifdef APSTUDIO_INVOKED\r
+/////////////////////////////////////////////////////////////////////////////\r
+//\r
+// TEXTINCLUDE\r
+//\r
+\r
+1 TEXTINCLUDE DISCARDABLE \r
+BEGIN\r
+    "resource.h\0"\r
+END\r
+\r
+2 TEXTINCLUDE DISCARDABLE \r
+BEGIN\r
+    "#include ""newres.h""\r\n"\r
+    "\0"\r
+END\r
+\r
+3 TEXTINCLUDE DISCARDABLE \r
+BEGIN\r
+    "\r\n"\r
+    "\0"\r
+END\r
+\r
+#endif    // APSTUDIO_INVOKED\r
+\r
+#endif    // English (U.S.) resources\r
+/////////////////////////////////////////////////////////////////////////////\r
+\r
+\r
+\r
+#ifndef APSTUDIO_INVOKED\r
+/////////////////////////////////////////////////////////////////////////////\r
+//\r
+// Generated from the TEXTINCLUDE 3 resource.\r
+//\r
+\r
+\r
+/////////////////////////////////////////////////////////////////////////////\r
+#endif    // not APSTUDIO_INVOKED\r
+\r
diff --git a/PocketPC/Tombo/res/Tombo.rc2 b/PocketPC/Tombo/res/Tombo.rc2
new file mode 100644 (file)
index 0000000..cd8539a
--- /dev/null
@@ -0,0 +1,34 @@
+\r
+/////////////////////////////////////////////////////////////////////////////\r
+HI_RES_AWARE CEUX {1}\r
+/////////////////////////////////////////////////////////////////////////////\r
+\r
+/////////////////////////////////////////////////////////////////////////////\r
+//\r
+// SHMENUBAR\r
+//\r
+\r
+IDM_MAIN_MENU SHMENUBAR DISCARDABLE\r
+BEGIN\r
+    IDM_MAIN_MENU, \r
+    2,\r
+\r
+//    I_IMAGENONE, IDM_EXIT, TBSTATE_ENABLED, TBSTYLE_DROPDOWN | TBSTYLE_AUTOSIZE,\r
+//    IDS_TREEVIEW_SOFTBUTTON_LEFT, 0, 0,\r
+    I_IMAGENONE, IDM_NEWMEMO, TBSTATE_ENABLED, TBSTYLE_DROPDOWN | TBSTYLE_AUTOSIZE,\r
+    IDS_TREEVIEW_SOFTBUTTON_LEFT, 0, 0,\r
+    \r
+    I_IMAGENONE, IDM_MAIN_MENU, TBSTATE_ENABLED, TBSTYLE_DROPDOWN | TBSTYLE_AUTOSIZE,\r
+    IDS_TREEVIEW_SOFTBUTTON_RIGHT, 0, 1,\r
+END\r
+\r
+IDM_DETAILS_MENU SHMENUBAR DISCARDABLE\r
+BEGIN\r
+       IDM_DETAILS_MENU,\r
+       2,\r
+    I_IMAGENONE, IDM_SAVE, TBSTATE_ENABLED, TBSTYLE_BUTTON | TBSTYLE_AUTOSIZE,\r
+    IDS_EDITVIEW_SOFTBUTTON_LEFT, 0, NOMENU,\r
+\r
+    I_IMAGENONE, IDM_EXIT, TBSTATE_ENABLED, TBSTYLE_DROPDOWN | TBSTYLE_AUTOSIZE,\r
+    IDS_EDITVIEW_SOFTBUTTON_RIGHT, 0, 1,\r
+END\r
diff --git a/PocketPC/Tombo/res/newres.h b/PocketPC/Tombo/res/newres.h
new file mode 100644 (file)
index 0000000..8289ebe
--- /dev/null
@@ -0,0 +1,41 @@
+#ifndef __NEWRES_H__\r
+#define __NEWRES_H__\r
+\r
+#if !defined(UNDER_CE)\r
+#define UNDER_CE _WIN32_WCE\r
+#endif\r
+\r
+#if defined(_WIN32_WCE)\r
+       #if !defined(WCEOLE_ENABLE_DIALOGEX)\r
+               #define DIALOGEX DIALOG DISCARDABLE\r
+       #endif\r
+       #include <commctrl.h>\r
+       #define  SHMENUBAR RCDATA\r
+       #if defined(WIN32_PLATFORM_PSPC) && (_WIN32_WCE >= 300)\r
+               #include <aygshell.h>\r
+               #define AFXCE_IDR_SCRATCH_SHMENU  28700\r
+       #else\r
+               #define I_IMAGENONE             (-2)\r
+               #define NOMENU                  0xFFFF\r
+               #define IDS_SHNEW               1\r
+\r
+               #define IDM_SHAREDNEW        10\r
+               #define IDM_SHAREDNEWDEFAULT 11\r
+       #endif // _WIN32_WCE_PSPC\r
+       #define AFXCE_IDD_SAVEMODIFIEDDLG 28701\r
+#endif // _WIN32_WCE\r
+\r
+#ifdef RC_INVOKED\r
+#ifndef _INC_WINDOWS\r
+#define _INC_WINDOWS\r
+       #include "winuser.h"           // extract from windows header\r
+       #include "winver.h"   \r
+#endif\r
+#endif\r
+\r
+#ifdef IDC_STATIC\r
+#undef IDC_STATIC\r
+#endif\r
+#define IDC_STATIC      (-1)\r
+\r
+#endif //__NEWRES_H__\r
diff --git a/PocketPC/Tombo/res/resource.h b/PocketPC/Tombo/res/resource.h
new file mode 100644 (file)
index 0000000..3ae7f1d
--- /dev/null
@@ -0,0 +1,272 @@
+//{{NO_DEPENDENCIES}}\r
+// Microsoft Developer Studio generated include file.\r
+// Used by Tombo.rc\r
+//\r
+#define IDS_APP_TITLE                   1\r
+#define IDS_HELLO                       2\r
+#define IDC_HELLOWINCE                  3\r
+#define IDI_TOMBO                       101\r
+#define IDC_MEMODETAILSVIEW             101\r
+#define IDC_MEMOSELECTVIEW              102\r
+#define IDD_ABOUTBOX                    103\r
+#define IDB_MEMOSELECT_IMAGES           104\r
+#define ID_PASSWORDTIMER                104\r
+#define IDD_PASSWORD                    105\r
+#define IDC_MEMODETAILSVIEW_NF          105\r
+#define IDD_PROPTAB_FOLDER              106\r
+#define IDC_DETAILSVIEWDLG              106\r
+#define IDD_FILESELECT                  107\r
+#define IDM_TRACELINK                   107\r
+#define IDB_ARTICLEBOX                  108\r
+#define IDM_ASSOC                       108\r
+#define IDD_PROPTAB_PASSWORD            109\r
+#define IDM_EXTAPP1                     109\r
+#define IDD_NEWFOLDER                   110\r
+#define IDM_EXTAPP2                     110\r
+#define IDD_PROPTAB_PASS_TIMEOUT        111\r
+#define IDC_TOMBOEDIT                   111\r
+#define IDD_PROPTAB_FONT                112\r
+#define IDT_SELSCROLL                   112\r
+#define IDB_TOOLBAR                     114\r
+#define IDR_MENUBAR1                    115\r
+#define IDR_POPUP                       115\r
+#define IDD_PROPTAB_INSDATE             116\r
+#define IDR_ACCEL_SELECT                117\r
+#define IDR_ACCEL_DETAIL                118\r
+#define IDD_PROPTAB_KEEPCARET           119\r
+#define IDD_PROPTAB_APPBUTTON           120\r
+#define IDD_SEARCH                      121\r
+#define IDD_SEARCHING                   122\r
+#define IDD_GREPTAB_MAIN                123\r
+#define IDD_GREPTAB_PERSIST             124\r
+#define IDD_DIALOG1                     125\r
+#define IDD_FILTERCTL                   126\r
+#define IDD_DIALOG2                     127\r
+#define IDD_PROPTAB_DEFNOTE             127\r
+#define IDD_PROPTAB_SIP                 128\r
+#define IDD_DETAILSVIEW                 129\r
+#define IDB_MEMOSELECT_IMAGES24         131\r
+#define IDB_TOOLBAR_LARGE               133\r
+#define IDD_BOOKMARK_EDIT               134\r
+#define IDD_PROPTAB_EXTAPP              135\r
+#define IDD_PROPTAB_CODEPAGE            136\r
+#define IDD_FILTERDEF_SRC               138\r
+#define IDD_FILTERDEF_FILTER            139\r
+#define IDD_FILTERDEF_ADD_REGEX         140\r
+#define IDD_FILTERDEF_ADD_LIMIT         141\r
+#define IDD_FILTERDEF_ADD_TIMESTAMP     142\r
+#define IDD_FILTERDEF_ADD_SORT          143\r
+#define IDD_LANG_DLG                    149\r
+#define IDM_MAIN_MENUITEM1              401\r
+#define IDM_MAIN_MENUITEM2              402\r
+#define IDS_MAIN_MENUITEM1              410\r
+#define IDS_MAIN_MENUITEM2              412\r
+#define IDM_MAIN_MENU                   450\r
+#define IDM_DETAILS_MENU                460\r
+#define IDM_DETAILSDLG_MENU             461\r
+#define IDC_PASS                        1001\r
+#define IDC_TOPFOLDER                   1002\r
+#define IDC_FOLDERSEL                   1003\r
+#define IDC_FILESELECT_TREE             1004\r
+#define IDC_PASS1                       1005\r
+#define IDC_PASS2                       1006\r
+#define IDC_PROP_PASSWORD_DESC          1007\r
+#define IDC_NEWFOLDER_NAME              1008\r
+#define IDC_PASS_TIMEOUT                1010\r
+#define IDC_FONT_SELECT_NAME            1011\r
+#define IDC_FONT_DETAILS_NAME           1012\r
+#define IDC_FONT_SELECT_SIZE            1013\r
+#define IDC_FONT_DETAILS_SIZE           1014\r
+#define IDC_FONT_SELECT_USEDEFAULT      1015\r
+#define IDC_FONT_DETAILS_USEDEFAULT     1016\r
+#define IDC_PROP_DATEFORMAT1            1017\r
+#define IDC_PROP_DATEFORMAT2            1018\r
+#define IDC_PROP_SETPASS                1019\r
+#define IDC_PROP_KEEPCARET              1020\r
+#define IDC_PROP_APPBUTTON1             1021\r
+#define IDC_PROP_APPBUTTON4             1022\r
+#define IDC_PROP_TABSTOP                1022\r
+#define IDC_PROP_APPBUTTON2             1023\r
+#define IDC_PROP_SWITCHTITLE            1023\r
+#define IDC_PROP_APPBUTTON3             1024\r
+#define IDC_KEEPTITLE                   1024\r
+#define IDC_PROP_APPBUTTON5             1025\r
+#define IDC_PROP_EXTAPP_PATH_EXTAPP1    1025\r
+#define IDC_SEARCH_CASESENSITIVE        1026\r
+#define IDC_PROP_EXTAPP_PATH_EXTAPP2    1026\r
+#define IDC_SEARCH_STRING               1027\r
+#define IDC_SEARCH_ENCRYPTMEMO          1028\r
+#define IDC_COPYRIGHT                   1029\r
+#define IDC_FILENAMEONLY                1030\r
+#define IDC_DATEFORMAT_DESC             1032\r
+#define IDC_VERSIONINFO                 1033\r
+#define IDC_SEARCH_DIRECTION_UP         1034\r
+#define IDC_SEARCH_DIRECTION_DOWN       1035\r
+#define IDC_SEARCHMSG                   1036\r
+#define IDC_PROPTAB_DISABLEACTION       1037\r
+#define IDC_GREPTAB_MAIN_SEARCHSTRING   1038\r
+#define IDC_GREPTAB_MAIN_CASESENSITIVE  1039\r
+#define IDC_BMEDIT_LIST                 1039\r
+#define IDC_GREPTAB_MAIN_ENCRYPTNOTE    1040\r
+#define IDC_BMEDIT_UP                   1040\r
+#define IDC_GREPTAB_MAIN_FILENAME       1041\r
+#define IDC_FILTERCTL_LIST              1041\r
+#define IDC_BMEDIT_DOWN                 1041\r
+#define IDC_GREPTAB_MAIN_STARTDIR       1042\r
+#define IDC_FILTERCTL_KEEP              1042\r
+#define IDC_BMEDIT_DELETE               1042\r
+#define IDC_PROP_READONLY               1043\r
+#define IDC_FILTERCTL_UP                1043\r
+#define IDC_FILTERDEF_SRC_PATH          1043\r
+#define IDC_FILTERCTL_DOWN              1044\r
+#define IDC_FILTERDEF_FILTER_LIST       1044\r
+#define IDC_PROP_SIPDELTA               1044\r
+#define IDC_FILTERCTL_NEW               1045\r
+#define IDC_FILTERDEF_FILTER_UP         1045\r
+#define IDC_PROPTAB_FOLDER_LABEL        1045\r
+#define IDC_FILTERDEF_FILTER_DOWN       1046\r
+#define IDC_FILTERCTL_DELETE            1046\r
+#define IDC_PROPTAB_DEFNOTE_PATH        1046\r
+#define IDC_PROPTAB_FOLDER_HELP1        1046\r
+#define IDC_FILTERDEF_FILTER_REGEX      1047\r
+#define IDC_FILTERCTL_RENAME            1047\r
+#define IDC_PROPTAB_DEFNOTE_SETCURRENT  1047\r
+#define IDC_PROPTAB_FOLDER_HELP2        1047\r
+#define IDC_FILTERDEF_REGEX_SEARCHSTR   1048\r
+#define IDC_FILTERDEF_FILTER_LIMIT      1048\r
+#define IDC_PROPTAB_DEFNOTE_SETBLANK    1048\r
+#define IDC_FILTERDEF_REGEX_CASESENSITIVE 1049\r
+#define IDC_FILTERDEF_FILTER_TIMESTAMP  1049\r
+#define IDC_FILTERDEF_REGEX_CRYPTMEMO   1050\r
+#define IDC_FILTERDEF_FILTER_SORT       1050\r
+#define IDC_FILTERDEF_REGEX_FILENAME    1051\r
+#define IDC_FILTERDEF_FILTER_DELETE     1051\r
+#define IDC_FILTERDEF_REGEX_NEGATE      1052\r
+#define IDC_FILTERDEF_ADD_REGEX_LABEL   1053\r
+#define IDC_FILTERDEF_LIMIT_NUMLIMIT    1054\r
+#define IDC_FILTERDEF_TS_DELTADAY       1055\r
+#define IDC_FILTERDEF_ADD_LIMIT_ITEMS   1055\r
+#define IDC_FILTERDEF_TS_OLDER          1056\r
+#define IDC_FILTERDEF_TS_NEWER          1057\r
+#define IDC_FILTERDEF_SORT_TYPE         1058\r
+#define IDC_FILTERDEF_ADD_TIMESTAMP_BASEPOINT 1058\r
+#define IDC_FONT_SELECT_CLEARTYPE       1059\r
+#define IDC_FILTERDEF_ADD_SORT_LABEL    1059\r
+#define IDC_FONT_DETAILS_CLEARTYPE      1060\r
+#define IDC_GREPTAB_MAIN_POSLABEL       1060\r
+#define IDC_GREPTAB_MAIN_STRLABEL       1061\r
+#define IDC_PROPTAB_PASS_TIMEOUT_LABEL  1062\r
+#define IDC_PROPTAB_PASS_TIMEOUT_HELP   1063\r
+#define IDC_PROPTAB_FONT_TREE_LABEL     1064\r
+#define IDC_PROP_EXTAPP_USEASSOC        1064\r
+#define IDC_PROPTAB_FONT_EDIT_LABEL     1065\r
+#define IDC_PROP_EXTAPP_TTL_EXTAPP1     1065\r
+#define IDC_PROPTAB_INSDATE_DATE1       1066\r
+#define IDC_PROP_EXTAPP_TTL_EXTAPP2     1066\r
+#define IDC_PROPTAB_INSDATE_DATE2       1067\r
+#define IDC_PROPTAB_EXTAPP_CHOOSE1      1067\r
+#define IDC_PROPTAB_KEEPCARET_HELP1     1068\r
+#define IDC_PROPTAB_EXTAPP_CHOOSE2      1068\r
+#define IDC_PROPTAB_KEEPCARET_HELP2     1069\r
+#define IDC_PROP_EXTAPP_CAUTION         1069\r
+#define IDC_PROPTAB_KEEPCARET_HELP3     1070\r
+#define IDC_PROPTAB_KEEPCARET_LABEL     1071\r
+#define IDC_PROPTAB_DEFNOTE_LABEL       1072\r
+#define IDC_SEARCH_FIND_LABEL           1073\r
+#define IDC_SEARCH_DIRECT_LABEL         1074\r
+#define IDC_PROPTAB_APPBTN_HELP         1075\r
+#define IDC_PROPTAB_DISABLESAVEDLG      1076\r
+#define IDC_PASS_TIMEOUT_USE_SAFEFILE   1077\r
+#define IDC_PROPTAB_PASS_TIMEOUT_SAFEFILE_HELP 1078\r
+#define IDC_PROPTAB_CODEPAGE_CODEPAGE   1079\r
+#define IDC_PROPTAB_DEFNOTE_USELAST     1080\r
+#define IDC_PROPTAB_CODEPAGE_NOTICE     1081\r
+#define IDC_PROPTAB_CODEPAGE_LABEL      1082\r
+#define IDC_LANG_LIST                   1099\r
+#define IDM_ACTIONBUTTON                30001\r
+#define IDM_FILE_EXIT                   40002\r
+#define IDM_HELP_ABOUT                  40003\r
+#define IDM_EXIT                        40003\r
+#define IDS_MENUITEM40005               40006\r
+#define IDM_EDIT_MEMO                   40007\r
+#define IDM_DETAILSVIEW_CUT             40008\r
+#define IDM_DETAILSVIEW_COPY            40009\r
+#define IDM_DETAILSVIEW_PASTE           40010\r
+#define IDS_MENUITEM40011               40012\r
+#define IDM_MENUITEM3                   40013\r
+#define IDS_MENUITEM40014               40015\r
+#define IDS_MENUITEM40017               40018\r
+#define IDM_NEWMEMO                     40019\r
+#define IDS_MENUITEM40020               40021\r
+#define IDM_RETURNLIST                  40022\r
+#define IDM_ABOUT                       40023\r
+#define IDM_ENCRYPT                     40024\r
+#define IDM_DECRYPT                     40025\r
+#define IDS_MENUITEM40027               40028\r
+#define IDM_MENU_ENCRYPT                40029\r
+#define IDS_PROPTAB_FOLDER              40029\r
+#define IDM_DELETEITEM                  40030\r
+#define IDS_PROPTAB_TITLE               40030\r
+#define IDM_PROPERTY                    40031\r
+#define IDS_PROPTAB_PASSWORD            40031\r
+#define IDS_PROPERTY_PASSWORD_DESC      40032\r
+#define IDM_NEW                         40032\r
+#define IDS_MENUITEM40033               40034\r
+#define IDM_NEWFOLDER                   40035\r
+#define IDS_PROPTAB_PASS_TIMEOUT        40035\r
+#define IDM_FORGETPASS                  40036\r
+#define IDS_MENUITEM40037               40038\r
+#define IDS_MENUITEM40039               40040\r
+#define IDM_COPY                        40041\r
+#define IDS_MENUITEM40041               40041\r
+#define IDM_PASTE                       40042\r
+#define IDS_PROPTAB_FONT                40042\r
+#define IDM_CUT                         40043\r
+#define IDM_SAVE                        40044\r
+#define IDS_MENUITEM40045               40046\r
+#define IDM_POPUP                       40047\r
+#define IDS_MENUITEM40048               40049\r
+#define ID_MENUITEM40050                40050\r
+#define IDS_MENUITEM40051               40052\r
+#define IDM_INSDATE                     40053\r
+#define IDM_INSDATE1                    40053\r
+#define IDS_PROPTAB_DATE                40053\r
+#define IDM_INSDATE2                    40054\r
+#define ID_MENUITEM40055                40055\r
+#define IDS_MENUITEM40056               40057\r
+#define IDS_PROPTAB_KEEPCARET           40058\r
+#define IDM_SELALL                      40058\r
+#define IDS_PROPTAB_APPBUTTON           40059\r
+#define IDM_DETAILS_HSCROLL             40059\r
+#define IDM_DETAILS_TOOL                40060\r
+#define IDS_GREPTAB_MAIN                40060\r
+#define IDS_GREPTAB_PERSIST             40061\r
+#define IDM_SEARCH                      40062\r
+#define IDS_PROPTAB_SIP                 40062\r
+#define IDM_SEARCH_NEXT                 40063\r
+#define IDS_PROPTAB_DEFNOTE             40063\r
+#define IDM_SEARCH_PREV                 40064\r
+#define IDM_RENAME                      40065\r
+#define IDM_UNDO                        40067\r
+#define IDM_TOGGLEREADONLY              40068\r
+#define IDM_GREP                        40069\r
+#define IDM_VFOLDER_DEF                 40070\r
+#define IDS_MENUITEM40072               40073\r
+#define IDM_BOOKMARK_ADD                40074\r
+#define IDM_BOOKMARK_CONFIG             40075\r
+#define IDM_MS_BOOKMARK                 40077\r
+#define IDM_TOGGLEPANE                  40078\r
+#define IDS_MENUITEM40079               40080\r
+#define IDS_MENUITEM40081               40082\r
+#define IDS_MENUITEM40083               40084\r
+\r
+// Next default values for new objects\r
+// \r
+#ifdef APSTUDIO_INVOKED\r
+#ifndef APSTUDIO_READONLY_SYMBOLS\r
+#define _APS_NEXT_RESOURCE_VALUE        137\r
+#define _APS_NEXT_COMMAND_VALUE         40085\r
+#define _APS_NEXT_CONTROL_VALUE         1083\r
+#define _APS_NEXT_SYMED_VALUE           113\r
+#endif\r
+#endif\r
diff --git a/Src/AboutDialog.cpp b/Src/AboutDialog.cpp
new file mode 100644 (file)
index 0000000..755859c
--- /dev/null
@@ -0,0 +1,109 @@
+#include <windows.h>\r
+#include "Tombo.h"\r
+\r
+#ifdef _WIN32_WCE\r
+#if defined(PLATFORM_PKTPC) || defined(PLATFORM_WM5)\r
+#include <aygshell.h>\r
+#endif\r
+#endif\r
+\r
+#include "resource.h"\r
+#include "AboutDialog.h"\r
+\r
+// version info\r
+\r
+//#define TOMBO_VERSION_INFO TEXT("Tombo version 1.17")\r
+#define TOMBO_VERSION_INFO TEXT("Tombo 2.0 beta 4")\r
+\r
+// copyrights and credits\r
+\r
+LPCTSTR pCopyright = \r
+TOMBO_VERSION_INFO\r
+TEXT("\r\n")\r
+TEXT("  Copyright(C) 2000-2003 Tomohisa Hirami\r\n")\r
+TEXT("  Copyright(C) 2004-2006 TOMBO maintainers\r\n")\r
+TEXT("\r\n")\r
+TEXT("MD5 library:\r\n")\r
+TEXT("  Copyright (C) 1995,1996,1998,1999 Free Software Foundation, Inc.\r\n")\r
+TEXT("\r\n")\r
+TEXT("BLOWFISH encryption library:\r\n")\r
+TEXT("  Copyright (C) 1998 Free Software Foundation, Inc.\r\n")\r
+TEXT("\r\n")\r
+TEXT("Oniguruma(regular expression matching and search library):\r\n")\r
+TEXT("  Copyright (c) 2002-2005  K.Kosako  <sndgk393 AT ybb DOT ne DOT jp>\r\n")\r
+TEXT("  All rights reserved.\r\n")\r
+TEXT("  ** Oniguruma is distributed under BSD License. ** \r\n")\r
+TEXT("\r\n")\r
+TEXT("The Expat XML Parser:\r\n")\r
+TEXT("  Copyright (c) 1998, 1999, 2000 Thai Open Source Software Center Ltd\r\n")\r
+TEXT("                               and Clark Cooper\r\n")\r
+TEXT("  Copyright (c) 2001, 2002 Expat maintainers.\r\n")\r
+TEXT("  ** Expat library is distributed under MIT License. ** \r\n")\r
+TEXT("--------\r\n")\r
+TEXT("TOMBO is free software; you can redistribute it and/or modify\r\n")\r
+TEXT("it under the terms of the GNU General Public License as published by\r\n")\r
+TEXT("the Free Software Foundation; either version 2 of the License, or\r\n")\r
+TEXT(" any later version.\r\n")\r
+TEXT("\r\n")\r
+TEXT("TOMBO is distributed in the hope that it will be useful,\r\n")\r
+TEXT("but WITHOUT ANY WARRANTY; without even the implied warranty of\r\n")\r
+TEXT("MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\r\n")\r
+TEXT("GNU General Public License for more details.\r\n")\r
+TEXT("\r\n")\r
+TEXT("You should have received a copy of the GNU General Public License\r\n")\r
+TEXT("along with this program; if not, write to the Free Software\r\n")\r
+TEXT("Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA\r\n")\r
+TEXT("\r\n")\r
+TEXT("--------\r\n")\r
+TEXT("\r\n")\r
+TEXT("TOMBO\t: http://homepage2.nifty.com/thirami\r\n")\r
+TEXT("GnuPG\t: http://www.gnupg.org/\r\n")\r
+TEXT("Oniguruma: http://www.geocities.jp/kosako3/oniguruma/\r\n")\r
+TEXT("Expat\t: http://www.libexpat.org/\r\n")\r
+TEXT("\r\n")\r
+TEXT("--------\r\n")\r
+TEXT("\r\n")\r
+TEXT("CREDITS:\r\n")\r
+TEXT("  Program\r\n")\r
+TEXT("      Tomohisa Hirami\r\n")\r
+TEXT("  Improve document and convert to DocBook:\r\n")\r
+TEXT("      Kevin Grover\r\n")\r
+TEXT("\r\n")\r
+TEXT("Thanks To:\r\n")\r
+TEXT("  Gerry Busch\r\n")\r
+TEXT("  Michael Efimov\r\n")\r
+TEXT("  Shigeyuki Matsuki\r\n");\r
+\r
+\r
+static LRESULT CALLBACK AboutDlgProc(HWND hDlg, UINT message, WPARAM wParam, LPARAM lParam)\r
+{\r
+       switch (message) {\r
+       case WM_INITDIALOG:\r
+#if defined(PLATFORM_PKTPC) || defined(PLATFORM_WM5)\r
+               SHINITDLGINFO shidi;\r
+               shidi.dwMask = SHIDIM_FLAGS;\r
+               shidi.dwFlags = SHIDIF_DONEBUTTON | SHIDIF_SIPDOWN | SHIDIF_SIZEDLGFULLSCREEN;\r
+               shidi.hDlg = hDlg;\r
+               SHInitDialog(&shidi);\r
+#endif\r
+               {\r
+                       HWND hCopyright = GetDlgItem(hDlg, IDC_COPYRIGHT);\r
+                       SetWindowText(hCopyright, pCopyright);\r
+                       HWND hVersion = GetDlgItem(hDlg, IDC_VERSIONINFO);\r
+                       SetWindowText(hVersion, TOMBO_VERSION_INFO);\r
+                       return TRUE;\r
+               }\r
+       case WM_COMMAND:\r
+               if ((LOWORD(wParam) == IDOK) || (LOWORD(wParam) == IDCANCEL)) {\r
+                       EndDialog(hDlg, LOWORD(wParam));\r
+                       return TRUE;\r
+               }\r
+               break;\r
+       }\r
+       return FALSE;\r
+}\r
+\r
+void AboutDialog::Popup(HINSTANCE hInst, HWND hParent)\r
+{\r
+       DialogBox(hInst, (LPCTSTR)IDD_ABOUTBOX, hParent, (DLGPROC)AboutDlgProc);\r
+}
\ No newline at end of file
diff --git a/Src/AboutDialog.h b/Src/AboutDialog.h
new file mode 100644 (file)
index 0000000..84f19a6
--- /dev/null
@@ -0,0 +1,12 @@
+#ifndef ABOUTDIALOG_H\r
+#define ABOUTDIALOG_H\r
+\r
+#define TOMBO_VERSION TEXT("1.15")\r
+\r
+class AboutDialog {\r
+public:\r
+       void Popup(HINSTANCE hInst, HWND hParent);\r
+};\r
+\r
+\r
+#endif
\ No newline at end of file
diff --git a/Src/BookMark.cpp b/Src/BookMark.cpp
new file mode 100644 (file)
index 0000000..3e28cbb
--- /dev/null
@@ -0,0 +1,182 @@
+#include <windows.h>\r
+#include <tchar.h>\r
+#include "Tombo.h"\r
+#include "VarBuffer.h"\r
+#include "TString.h"\r
+#include "TomboURI.h"\r
+#include "UniConv.h"\r
+#include "BookMark.h"\r
+\r
+#include "Repository.h"\r
+\r
+////////////////////////////////////\r
+// ctor & dtor\r
+////////////////////////////////////\r
+\r
+BookMark::BookMark()\r
+{\r
+}\r
+\r
+BookMark::~BookMark()\r
+{\r
+       Clear();\r
+}\r
+\r
+BOOL BookMark::Init(WORD nBaseID)\r
+{\r
+       nBookMarkIDBase = nMaxBookMarkID = nBaseID;\r
+       return vBookMark.Init(10, 10);\r
+}\r
+\r
+/////////////////////////////////////////\r
+// Clear current bookmarks\r
+/////////////////////////////////////////\r
+\r
+void BookMark::Clear()\r
+{\r
+       DWORD n = vBookMark.NumItems();\r
+       for (DWORD i = 0; i < n; i++) {\r
+               BookMarkItem *p = vBookMark.GetUnit(i);\r
+\r
+               delete [] p->pPath;\r
+               delete [] p->pName;\r
+       }\r
+       vBookMark.Clear(TRUE);\r
+       nMaxBookMarkID = nBookMarkIDBase;\r
+}\r
+\r
+\r
+/////////////////////////////////////////\r
+// check the ID is assigned to bookmark?\r
+/////////////////////////////////////////\r
+\r
+BOOL BookMark::IsBookMarkID(WORD nID)\r
+{\r
+       return nBookMarkIDBase <= nID  && nID < nMaxBookMarkID;\r
+}\r
+\r
+/////////////////////////////////////////\r
+// Allocate book mark\r
+/////////////////////////////////////////\r
+\r
+const BookMarkItem *BookMark::Assign(LPCTSTR pPath)\r
+{\r
+       // get headline \r
+       TString sTitle;\r
+\r
+       TomboURI tURI;\r
+       if (!tURI.Init(pPath)) return NULL;\r
+       if (!g_Repository.GetHeadLine(&tURI, &sTitle)) return NULL;\r
+\r
+       BookMarkItem bi;\r
+\r
+       bi.nID = nMaxBookMarkID;\r
+       bi.pName = StringDup(sTitle.Get());\r
+       bi.pPath = StringDup(pPath);\r
+\r
+       if (!vBookMark.Add(&bi)) return NULL;\r
+\r
+       nMaxBookMarkID++;\r
+       return vBookMark.GetUnit(vBookMark.NumItems() - 1);\r
+}\r
+\r
+/////////////////////////////////////////\r
+// Find bookmark\r
+/////////////////////////////////////////\r
+\r
+const BookMarkItem *BookMark::Find(WORD nID)\r
+{\r
+       BookMarkItem *p = NULL;\r
+       DWORD n = vBookMark.NumItems();\r
+       for (DWORD i = 0; i < n; i++) {\r
+               if (vBookMark.GetUnit(i)->nID == nID) {\r
+                       p = vBookMark.GetUnit(i);\r
+                       break;\r
+               }\r
+       }\r
+       return p;\r
+}\r
+\r
+/////////////////////////////////////////\r
+// enum bookmarks\r
+/////////////////////////////////////////\r
+\r
+DWORD BookMark::NumItems()\r
+{\r
+       return vBookMark.NumItems();\r
+}\r
+\r
+const BookMarkItem *BookMark::GetUnit(DWORD n)\r
+{\r
+       return vBookMark.GetUnit(n);\r
+}\r
+\r
+\r
+/////////////////////////////////////////\r
+// import\r
+/////////////////////////////////////////\r
+// for read from registry\r
+\r
+BOOL BookMark::ImportFromMultiSZ(LPCTSTR pBookMarks)\r
+{\r
+       // release current bookmarks\r
+       Clear();\r
+\r
+       // load bookmarks\r
+       LPCTSTR p = pBookMarks;\r
+       while(*p) {\r
+               if (*p == TEXT('\\') && *(p+1) == TEXT('\0')) {\r
+                       if (!Assign(TEXT(""))) return FALSE;\r
+               } else {\r
+                       if (!Assign(p)) return FALSE;\r
+               }\r
+               p += _tcslen(p) + 1;\r
+       }\r
+\r
+       return TRUE;\r
+}\r
+\r
+/////////////////////////////////////////\r
+// export\r
+/////////////////////////////////////////\r
+// for write to registry\r
+\r
+LPTSTR BookMark::ExportToMultiSZ()\r
+{\r
+       DWORD nSize = 0;\r
+\r
+       DWORD i;\r
+\r
+       BookMarkItem *p = NULL;\r
+       DWORD n = vBookMark.NumItems();\r
+       for (i = 0; i < n; i++) {\r
+               p = vBookMark.GetUnit(i);\r
+\r
+               if (_tcslen(p->pPath) == 0) {\r
+                       // root node\r
+                       nSize++;\r
+               }\r
+\r
+               nSize += _tcslen(p->pPath) + 1;\r
+       }\r
+       nSize++;\r
+\r
+       LPTSTR pMarks = new TCHAR[nSize];\r
+       if (pMarks == NULL) return NULL;\r
+\r
+       LPTSTR pCur = pMarks;\r
+       for (i = 0; i < n; i++) {\r
+               p = vBookMark.GetUnit(i);\r
+\r
+               if (_tcslen(p->pPath) == 0) {\r
+                       *pCur++ = TEXT('\\');\r
+                       *pCur++ = TEXT('\0');\r
+               } else {\r
+                       _tcscpy(pCur, p->pPath);\r
+                       pCur += _tcslen(p->pPath) + 1;\r
+               }\r
+       }\r
+       *pCur = TEXT('\0');\r
+\r
+       return pMarks;\r
+}\r
diff --git a/Src/BookMark.h b/Src/BookMark.h
new file mode 100644 (file)
index 0000000..2867ad3
--- /dev/null
@@ -0,0 +1,56 @@
+#ifndef BOOKMARK_H\r
+#define BOOKMARK_H\r
+\r
+////////////////////////////////////\r
+// book mark items\r
+////////////////////////////////////\r
+\r
+struct BookMarkItem {\r
+       WORD nID;\r
+       LPTSTR pPath;\r
+       LPTSTR pName;\r
+};\r
+\r
+////////////////////////////////////\r
+// book mark\r
+////////////////////////////////////\r
+\r
+class BookMark {\r
+       WORD nBookMarkIDBase;\r
+       WORD nMaxBookMarkID;\r
+       TVector<BookMarkItem> vBookMark;\r
+public:\r
+       ////////////////////////////////////////\r
+       // ctor & dtor, initialize\r
+       BookMark();\r
+       ~BookMark();\r
+       BOOL Init(WORD nBaseID);\r
+\r
+       void Clear();\r
+\r
+       ////////////////////////////////////////\r
+       // get/check ID members\r
+\r
+       BOOL IsBookMarkID(WORD nID);\r
+       WORD GetBaseID() { return nBookMarkIDBase; }\r
+       WORD GetAssignedID() { return nMaxBookMarkID; }\r
+\r
+       ////////////////////////////////////////\r
+       // add/find bookmark\r
+\r
+       const BookMarkItem *Assign(LPCTSTR pPath);\r
+       const BookMarkItem *Find(WORD nID);\r
+\r
+       ////////////////////////////////////////\r
+       // enumeration methods\r
+       DWORD NumItems();\r
+       const BookMarkItem *GetUnit(DWORD n);\r
+\r
+       ////////////////////////////////////////\r
+       // for load/store bookmarks\r
+       BOOL ImportFromMultiSZ(LPCTSTR pBookMarks);\r
+       LPTSTR ExportToMultiSZ();\r
+\r
+};\r
+\r
+#endif
\ No newline at end of file
diff --git a/Src/BookMarkDlg.cpp b/Src/BookMarkDlg.cpp
new file mode 100644 (file)
index 0000000..256c3dd
--- /dev/null
@@ -0,0 +1,206 @@
+#include <windows.h>\r
+#include <commctrl.h>\r
+#include <tchar.h>\r
+#include "DialogTemplate.h"\r
+#include "TString.h"\r
+#include "resource.h"\r
+#include "Message.h"\r
+#include "VarBuffer.h"\r
+#include "BookMarkDlg.h"\r
+#include "BookMark.h"\r
+\r
+static BOOL GetLVItem(HWND hList, int iItem, int iSubItem, TString *pBuf);\r
+static void LVSetSel(HWND hList, int iItem, BOOL bSet);\r
+\r
+////////////////////////////////////////////////////////////////\r
+// ctor & dtor\r
+////////////////////////////////////////////////////////////////\r
+\r
+BOOL BookMarkDlg::Init(BookMark *p)\r
+{\r
+       pBookMark = p;\r
+       return TRUE;\r
+}\r
+\r
+static DlgMsgRes aMsgRes[] = {\r
+       { IDC_BMEDIT_UP,     MSG_ID_DLG_BMEDIT_UP },\r
+       { IDC_BMEDIT_DOWN,   MSG_ID_DLG_BMEDIT_DOWN },\r
+       { IDC_BMEDIT_DELETE, MSG_ID_DLG_BMEDIT_DELETE },\r
+       { IDOK,              MSG_ID_DLG_CMN_OK },\r
+       { IDCANCEL,          MSG_ID_DLG_CMN_CANCEL },\r
+};\r
+\r
+////////////////////////////////////////////////////////////////\r
+// Initialize dialog\r
+////////////////////////////////////////////////////////////////\r
+\r
+void BookMarkDlg::InitDialog(HWND hDlg)\r
+{\r
+       OverrideDlgMsg(hDlg, MSG_ID_DLG_BMEDIT_TITLE, aMsgRes, sizeof(aMsgRes) / sizeof(DlgMsgRes));\r
+\r
+       HWND hList = GetDlgItem(hDlg, IDC_BMEDIT_LIST);\r
+\r
+       // init listview\r
+       LV_COLUMN lvc;\r
+       lvc.mask = LVCF_FMT | LVCF_WIDTH | LVCF_TEXT;\r
+       lvc.fmt = LVCFMT_LEFT;\r
+\r
+       lvc.cx = 100;\r
+       lvc.pszText = (LPTSTR)MSG_BMDLG_TITLE_NAME;\r
+       ListView_InsertColumn(hList, 0, &lvc);\r
+\r
+       lvc.cx = 150;\r
+       lvc.pszText = (LPTSTR)MSG_BMDLG_TITLE_PATH;\r
+       ListView_InsertColumn(hList, 1, &lvc);\r
+       \r
+       // Insert item\r
+       DWORD n = pBookMark->NumItems();\r
+       for (DWORD i = 0; i < n; i++) {\r
+               const BookMarkItem *pItem = pBookMark->GetUnit(i);\r
+               InsertItem(hList, i, pItem);\r
+       }\r
+}\r
+\r
+BOOL BookMarkDlg::InsertItem(HWND hList, DWORD iPos, const BookMarkItem *pItem)\r
+{\r
+       LV_ITEM li;\r
+       li.iItem = iPos;\r
+       li.mask = LVIF_TEXT;\r
+       li.pszText = pItem->pName;\r
+       li.cchTextMax = _tcslen(pItem->pName);\r
+       li.iSubItem = 0;\r
+       ListView_InsertItem(hList, &li);\r
+\r
+       li.mask = LVIF_TEXT;\r
+       li.pszText = pItem->pPath;\r
+       li.cchTextMax = _tcslen(pItem->pPath);\r
+       li.iSubItem = 1;\r
+       ListView_SetItem(hList, &li);\r
+       return TRUE;\r
+}\r
+\r
+////////////////////////////////////////////////////////////////\r
+// OK button\r
+////////////////////////////////////////////////////////////////\r
+\r
+BOOL BookMarkDlg::OnOK()\r
+{\r
+       pBookMark->Clear();\r
+\r
+       HWND hList = GetDlgItem(hDialog, IDC_BMEDIT_LIST);\r
+       int n = ListView_GetItemCount(hList);\r
+\r
+       TString sPath;\r
+       for (int i = 0; i < n; i++) {\r
+               if (!GetLVItem(hList, i, 1, &sPath)) return TRUE;\r
+               pBookMark->Assign(sPath.Get());\r
+       }\r
+\r
+       return TRUE;\r
+}\r
+\r
+////////////////////////////////////////////////////////////////\r
+// Command handler\r
+////////////////////////////////////////////////////////////////\r
+\r
+BOOL BookMarkDlg::OnCommand(HWND hDlg, WPARAM wParam, LPARAM lParam)\r
+{\r
+       switch(LOWORD(wParam)) {\r
+       case IDC_BMEDIT_UP:\r
+               return Command_UpDown(hDlg, -1);\r
+       case IDC_BMEDIT_DOWN:\r
+               return Command_UpDown(hDlg, 1);\r
+       case IDC_BMEDIT_DELETE:\r
+               return Command_Delete(hDlg);\r
+       }\r
+       return TRUE;\r
+}\r
+\r
+\r
+////////////////////////////////////////////////////////////////\r
+// swap position\r
+////////////////////////////////////////////////////////////////\r
+\r
+BOOL BookMarkDlg::Command_UpDown(HWND hDlg, int iDelta)\r
+{\r
+       HWND hList = GetDlgItem(hDlg, IDC_BMEDIT_LIST);\r
+       int iSel = ListView_GetNextItem(hList, -1, LVNI_SELECTED);\r
+\r
+       if (iSel + iDelta < 0 || iSel + iDelta >= (int)pBookMark->NumItems()) return TRUE;\r
+\r
+       TString sName1, sPath1;\r
+       TString sName2, sPath2;\r
+\r
+       // get data\r
+       if (!GetLVItem(hList, iSel, 0, &sName1) ||\r
+               !GetLVItem(hList, iSel, 1, &sPath1) ||\r
+               !GetLVItem(hList, iSel + iDelta, 0, &sName2) ||\r
+               !GetLVItem(hList, iSel + iDelta, 1, &sPath2)) return TRUE;\r
+\r
+       // swap and set data\r
+       ListView_SetItemText(hList, iSel, 0, sName2.Get());\r
+       ListView_SetItemText(hList, iSel, 1, sPath2.Get());\r
+       ListView_SetItemText(hList, iSel + iDelta, 0, sName1.Get());\r
+       ListView_SetItemText(hList, iSel + iDelta, 1, sPath1.Get());\r
+\r
+       // set selection info\r
+       LVSetSel(hList, iSel, FALSE);\r
+       LVSetSel(hList, iSel + iDelta, TRUE);\r
+\r
+       SetFocus(hList);\r
+       return TRUE;\r
+}\r
+\r
+////////////////////////////////////////////////////////////////\r
+// delete item\r
+////////////////////////////////////////////////////////////////\r
+\r
+BOOL BookMarkDlg::Command_Delete(HWND hDlg)\r
+{\r
+       // confirm delete\r
+       if (MessageBox(hDlg, MSG_CONFIRM, MSG_DEL_BOOKMARK, MB_YESNO | MB_ICONQUESTION) != IDYES) return TRUE;\r
+\r
+       HWND hList = GetDlgItem(hDlg, IDC_BMEDIT_LIST);\r
+       int iSel;\r
+\r
+       while(1) {\r
+               iSel = ListView_GetNextItem(hList, -1, LVNI_SELECTED);\r
+               if (iSel == -1) break;\r
+               ListView_DeleteItem(hList, iSel);\r
+       }\r
+       return TRUE;\r
+}\r
+\r
+////////////////////////////////////////////////////////////////\r
+// helper functions\r
+////////////////////////////////////////////////////////////////\r
+\r
+static BOOL GetLVItem(HWND hList, int iItem, int iSubItem, TString *pBuf)\r
+{\r
+       TCHAR buf[MAX_PATH * 2];\r
+\r
+       LVITEM li;\r
+       li.mask = LVIF_TEXT;\r
+       li.iItem = iItem;\r
+       li.iSubItem = iSubItem;\r
+       li.pszText = buf;\r
+       li.cchTextMax = MAX_PATH*2;\r
+       ListView_GetItem(hList, &li);\r
+\r
+       return pBuf->Set(buf);\r
+}\r
+\r
+static void LVSetSel(HWND hList, int iItem, BOOL bSet)\r
+{\r
+       LVITEM li;\r
+       li.mask = LVIF_STATE;\r
+       li.iItem = iItem;\r
+       li.iSubItem = 0;\r
+       li.stateMask = LVIS_SELECTED | LVIS_FOCUSED;\r
+       if (bSet) {\r
+               li.state = LVIS_SELECTED | LVIS_FOCUSED;\r
+       } else {\r
+               li.state = 0;\r
+       }\r
+       ListView_SetItem(hList, &li);\r
+}\r
diff --git a/Src/BookMarkDlg.h b/Src/BookMarkDlg.h
new file mode 100644 (file)
index 0000000..c3d6e9a
--- /dev/null
@@ -0,0 +1,28 @@
+#ifndef BOOKMARKDLG_H\r
+#define BOOKMARKDLG_H\r
+\r
+class BookMark;\r
+struct BookMarkItem;\r
+\r
+class BookMarkDlg : public Tombo_Lib::DialogTemplate {\r
+       BookMark *pBookMark;\r
+protected:\r
+       BOOL InsertItem(HWND hList, DWORD iPos, const BookMarkItem *pItem);\r
+public:\r
+       BOOL Init(BookMark *p);\r
+\r
+       void InitDialog(HWND hDlg);\r
+       BOOL OnOK();\r
+\r
+       DWORD Popup(HINSTANCE hInst, HWND hParent) {\r
+               return DialogTemplate::Popup(hInst, IDD_BOOKMARK_EDIT, hParent);\r
+       }\r
+\r
+       BOOL OnCommand(HWND hDlg, WPARAM wParam, LPARAM lParam);\r
+       BOOL Command_UpDown(HWND hDlg, int iDelta);\r
+       BOOL Command_Delete(HWND hDlg);\r
+\r
+};\r
+\r
+\r
+#endif
\ No newline at end of file
diff --git a/Src/Chipher.h b/Src/Chipher.h
new file mode 100644 (file)
index 0000000..da57b06
--- /dev/null
@@ -0,0 +1,13 @@
+#ifndef CHIPHER_H\r
+#define CHIPHER_H\r
+\r
+#ifdef __cplusplus\r
+extern "C" {\r
+#endif\r
+\r
+\r
+#ifdef __cplusplus\r
+}\r
+#endif\r
+\r
+#endif
\ No newline at end of file
diff --git a/Src/Crypt.cpp b/Src/Crypt.cpp
new file mode 100644 (file)
index 0000000..006163a
--- /dev/null
@@ -0,0 +1,54 @@
+#include <windows.h>\r
+#include "Crypt.h"\r
+\r
+extern "C" {\r
+       void *BF_Init(byte *key, unsigned keylen);\r
+       void BF_Enc(void *handle, byte *chipher, byte *plain, int len);\r
+       void BF_Dec(void *handle, byte *plain, byte *chipher);\r
+       void BF_Free(void *handle);\r
+};\r
+\r
+\r
+Crypt::Crypt() : handle(NULL)\r
+{\r
+}\r
+\r
+Crypt::~Crypt()\r
+{\r
+       if (handle != NULL) {\r
+               BF_Free(handle);\r
+       }\r
+}\r
+\r
+BOOL Crypt::ResetStream(byte *key, unsigned int len)\r
+{\r
+       if (handle != NULL) {\r
+               BF_Free(handle);\r
+               handle = NULL;\r
+       }\r
+\r
+       handle = BF_Init(key, len);\r
+       if (handle == NULL) return FALSE;\r
+\r
+       return TRUE;\r
+}\r
+\r
+BOOL Crypt::Encrypt(byte *chipher, byte *plain, int len)\r
+{\r
+       if (handle == NULL) {\r
+               SetLastError(ERROR_INVALID_DATA);\r
+               return FALSE;\r
+       }\r
+       BF_Enc(handle, chipher, plain, len);\r
+       return TRUE;\r
+}\r
+\r
+BOOL Crypt::Decrypt(byte *plain, byte *chipher)\r
+{\r
+       if (handle == NULL) {\r
+               SetLastError(ERROR_INVALID_DATA);\r
+               return FALSE;\r
+       }\r
+       BF_Dec(handle, plain, chipher);\r
+       return TRUE;\r
+}\r
diff --git a/Src/Crypt.h b/Src/Crypt.h
new file mode 100644 (file)
index 0000000..a01389c
--- /dev/null
@@ -0,0 +1,15 @@
+#ifndef CRYPT_H\r
+#define CRYPT_H\r
+\r
+class Crypt {\r
+       void *handle;\r
+public:\r
+       Crypt();\r
+       ~Crypt();\r
+\r
+       BOOL ResetStream(byte *key, unsigned int len);\r
+       BOOL Encrypt(byte *chipher, byte *plain, int len);\r
+       BOOL Decrypt(byte *plain, byte *chipher);\r
+};\r
+\r
+#endif\r
diff --git a/Src/CryptManager.cpp b/Src/CryptManager.cpp
new file mode 100644 (file)
index 0000000..fbb40f8
--- /dev/null
@@ -0,0 +1,304 @@
+#include <windows.h>\r
+#include <stdlib.h>\r
+#include "CryptManager.h"\r
+#include "File.h"\r
+\r
+void WipeOutAndDelete(char *p, DWORD len);\r
+#ifdef _WIN32_WCE\r
+void WipeOutAndDelete(LPTSTR p, DWORD len);\r
+#endif\r
+\r
+BOOL CryptManager::Init(const char *pKey)\r
+{\r
+       SYSTEMTIME st;\r
+       GetSystemTime(&st);\r
+       FILETIME ft;\r
+       SystemTimeToFileTime(&st, &ft);\r
+       srand(ft.dwLowDateTime);\r
+\r
+       getMD5Sum(md5key, (byte*)pKey, strlen(pKey));\r
+       return TRUE;\r
+}\r
+\r
+//////////////////////////////////////////////////\r
+// \83f\83X\83g\83\89\83N\83^\r
+//////////////////////////////////////////////////\r
+// \83Z\83L\83\85\83\8a\83e\83B\8fã\81A\95Û\8e\9d\82µ\82Ä\82¢\82½md5key\82ð\8fÁ\8b\8e\82·\82é\81B\r
+\r
+CryptManager::~CryptManager()\r
+{\r
+       for (DWORD i = 0; i < 16; i++) {\r
+               md5key[i] = 0;\r
+       }\r
+}\r
+\r
+//////////////////////////////////////////////////\r
+// \83f\81[\83^\82Ì\88Ã\8d\86\89»\r
+//////////////////////////////////////////////////\r
+\r
+BOOL CryptManager::Encrypt(LPBYTE pBuf, int len)\r
+{\r
+       if (len == 0) return FALSE;\r
+\r
+       if (!crypt.ResetStream(md5key, 16)) return FALSE;\r
+       BYTE buf[8];\r
+       LPBYTE p = pBuf;\r
+       int n = len;\r
+       int i;\r
+       while (n > 8) {\r
+               for (i = 0; i < 8; i++) {\r
+                       buf[i] = p[i];\r
+               }\r
+               crypt.Encrypt(p, buf, 8);\r
+               p += 8;\r
+               n -= 8;\r
+       }\r
+       if (n > 0) {\r
+               for (i = 0; i < n; i++) {\r
+                       buf[i] = p[i];\r
+               }\r
+               crypt.Encrypt(p, buf, n);\r
+       }\r
+\r
+       for (i = 0; i < 8; i++) buf[i] = 0;\r
+       return TRUE;\r
+}\r
+\r
+//////////////////////////////////////////////////\r
+// \83f\81[\83^\82Ì\95\9c\8d\86\r
+//////////////////////////////////////////////////\r
+\r
+BOOL CryptManager::Decrypt(LPBYTE pBuf, int len)\r
+{\r
+       if (len == 0) return FALSE;\r
+\r
+       if (!crypt.ResetStream(md5key, 16)) return FALSE;\r
+\r
+       BYTE buf[8];\r
+       LPBYTE p = pBuf;\r
+       int n = len;\r
+       int i;\r
+       while (n >= 8) {\r
+               for (i = 0; i < 8; i++) {\r
+                       buf[i] = p[i];\r
+               }\r
+               crypt.Decrypt(p, buf);\r
+               p += 8;\r
+               n -= 8;\r
+       }\r
+\r
+       for (i = 0; i < 8; i++) buf[i] = 0;\r
+       return TRUE;\r
+}\r
+\r
+//////////////////////////////////////////////////\r
+// \83f\81[\83^\82Ì\88Ã\8d\86\89»\82Æ\83t\83@\83C\83\8b\82Ö\82Ì\95Û\91\r
+//////////////////////////////////////////////////\r
+\r
+BOOL CryptManager::EncryptAndStore(const LPBYTE pData, int nSize, LPCTSTR pFileName)\r
+{\r
+       int len;\r
+       LPBYTE pBuf = EncryptBuffer(pData, nSize, &len);\r
+       // \83t\83@\83C\83\8b\82Ö\82Ì\95Û\91\r
+       File outf;\r
+\r
+       if (!outf.Open(pFileName, GENERIC_WRITE, 0, OPEN_ALWAYS)) {\r
+               WipeOutAndDelete((char*)pBuf, len);\r
+               return FALSE;\r
+       }\r
+       if (!outf.Write(pBuf, len)) {\r
+               TCHAR buf[1024];\r
+               wsprintf(buf, TEXT("CryptManager::EncryptAndStore write failed %d"), GetLastError());\r
+               MessageBox(NULL, buf, TEXT("DEBUG"), MB_OK);\r
+       }\r
+       if (!outf.SetEOF()) return FALSE;\r
+       outf.Close();\r
+\r
+       WipeOutAndDelete((char*)pBuf, len);\r
+       return TRUE;\r
+}\r
+\r
+//////////////////////////////////////////////////\r
+// Encrypt data and add header\r
+//////////////////////////////////////////////////\r
+// CryptManager\82É\82æ\82é\88Ã\8d\86\89»\83t\83@\83C\83\8b\82Ì\83t\83H\81[\83}\83b\83g\r
+// The format of the container is:\r
+// 0-3  : BF01(4 bytes)\r
+// 4-7  : data length (include randum area + md5sum)(4 bytes)\r
+// 8-15 :* random data(8 bytes)\r
+//16-31 :* md5sum of plain text(16 bytes)\r
+//32-   :* data\r
+\r
+// '*' is encrypted.\r
+// \r
+\r
+LPBYTE CryptManager::EncryptBuffer(const LPBYTE pData, int nSize, int *pLen)\r
+{\r
+       int i=0;\r
+       int len = ((nSize >> 3) + 1) * 8;\r
+       len += 24;\r
+\r
+       len += 8;\r
+\r
+       LPBYTE pBufF = new BYTE[len];\r
+       if (pBufF == NULL) {\r
+               SetLastError(ERROR_NOT_ENOUGH_MEMORY);\r
+               return NULL;\r
+       }\r
+       LPBYTE pBuf = pBufF + 8;\r
+\r
+       // set random number\r
+       for (i = 0; i < 8; i++) {\r
+               pBuf[i] = (BYTE)(rand() & 0xFF);\r
+       }\r
+\r
+       strncpy((char*)pBufF, "BF01", 4);\r
+       *(int*)(pBufF + 4) = nSize;\r
+\r
+       // get md5sum of plain data\r
+       getMD5Sum(pBuf + 8, pData, nSize);\r
+\r
+       // copy plain data\r
+       LPBYTE p = pBuf + 24;\r
+       const BYTE *q = pData;\r
+       for (i = 0; i < nSize; i++) {\r
+               *p++ = *q++;\r
+       }\r
+\r
+       // encryption\r
+       if (!Encrypt(pBuf, nSize + 24)) {\r
+               WipeOutAndDelete((char*)pBufF, len);\r
+               return NULL;\r
+       }\r
+       *pLen = len;\r
+       return pBufF;\r
+}\r
+\r
+//////////////////////////////////////////////////\r
+// Load from file and decrypt data\r
+//////////////////////////////////////////////////\r
+\r
+LPBYTE CryptManager::LoadAndDecrypt(LPDWORD pSize, LPCTSTR pFileName)\r
+{\r
+       File inf;\r
+       if (!inf.Open(pFileName, GENERIC_READ, 0, OPEN_EXISTING)) {\r
+               return NULL;\r
+       }\r
+\r
+       DWORD nFileSize = inf.FileSize();\r
+       char version[5];\r
+       DWORD n;\r
+       DWORD nDataSize;\r
+\r
+       // \83o\81[\83W\83\87\83\93\83w\83b\83_\r
+       n = 4;\r
+       inf.Read((LPBYTE)version, &n);\r
+       version[4] = '\0';\r
+       if (strcmp(version, "BF01") != 0) {\r
+               SetLastError(ERROR_INVALID_DATA);\r
+               return NULL;\r
+       }\r
+\r
+       // \83f\81[\83^\92·\r
+       n = sizeof(nDataSize);\r
+       inf.Read((LPBYTE)&nDataSize, &n);\r
+\r
+       LPBYTE pBuf = new BYTE[nFileSize + 1];\r
+       n = nFileSize - 4 - sizeof(nDataSize);\r
+       inf.Read(pBuf, &n);\r
+\r
+       if (!Decrypt(pBuf, n)) {\r
+               WipeOutAndDelete((char*)pBuf, nFileSize + 1);\r
+               return NULL;\r
+       }\r
+\r
+       // \95\9c\8d\86\89»\95¶MD5SUM\82Ì\8eæ\93¾\r
+       BYTE decriptsum[16];\r
+       getMD5Sum(decriptsum, pBuf + 24, nDataSize);\r
+\r
+       // \90³\82µ\82­\95\9c\8d\86\89»\82Å\82«\82½\82©\82Ì\83`\83F\83b\83N\r
+       for (int i = 0; i < 16; i++) {\r
+               if (pBuf[8 + i] != decriptsum[i]) {\r
+                       WipeOutAndDelete((char*)pBuf, nFileSize + 1);\r
+                       SetLastError(ERROR_INVALID_PASSWORD);\r
+                       return NULL;\r
+               }\r
+       }\r
+       pBuf[nDataSize + 24] = '\0';\r
+       *pSize = nDataSize;\r
+\r
+       // \97Ì\88æ\8dÄ\8am\95Û\r
+       // \97\90\90\94\83f\81[\83^\82ÆMD5SUM\82ð\82Ü\82Æ\82ß\82Ä\95\9c\8d\86\89»\82·\82é\82½\82ß\82É1\82Â\82Ì\83o\83b\83t\83@\82Å\8am\95Û\82µ\82½\82ª\81A\r
+       // delete\82ð\90³\82µ\82­\8ds\82¦\82é\82æ\82¤\82É\97Ì\88æ\82ð\8dÄ\8am\95Û\81A\83R\83s\81[\82µ\82Ä\95Ô\82·\r
+       LPBYTE pData = new BYTE[nDataSize + 2];\r
+       if (pData == NULL) {\r
+               WipeOutAndDelete((char*)pBuf, nFileSize + 2);\r
+               SetLastError(ERROR_NOT_ENOUGH_MEMORY);\r
+               return NULL;\r
+       }\r
+       memcpy(pData, pBuf + 24, nDataSize);\r
+       pData[nDataSize] = '\0';\r
+       pData[nDataSize + 1] = '\0';    // sentinel for the file is UTF16\r
+       WipeOutAndDelete((char*)pBuf, nFileSize + 1);\r
+       return pData;\r
+}\r
+\r
+LPBYTE CryptManager::DecryptBuffer(const LPBYTE pCrypted, int nSize)\r
+{\r
+       if (nSize % 8 != 0) {\r
+               SetLastError(ERROR_INVALID_DATA);\r
+               return NULL;\r
+       }\r
+\r
+       LPBYTE pBuf = new BYTE[nSize];\r
+       if (pBuf == NULL) return NULL;\r
+\r
+       memcpy(pBuf, pCrypted, nSize);\r
+\r
+       if (!Decrypt(pBuf + 8, nSize - 8)) {\r
+               WipeOutAndDelete((char*)pBuf, nSize);\r
+               return NULL;\r
+       }\r
+\r
+       DWORD n = *(LPDWORD)(pBuf + 4);\r
+\r
+       BYTE decriptsum[16];\r
+       getMD5Sum(decriptsum, pBuf + 32, n);\r
+\r
+       for (int i = 0; i < 16; i++) {\r
+               if (pBuf[16 + i] != decriptsum[i]) {\r
+                       WipeOutAndDelete((char*)pBuf, nSize);\r
+                       SetLastError(ERROR_INVALID_PASSWORD);\r
+                       return NULL;\r
+               }\r
+       }\r
+\r
+       LPBYTE pData = new BYTE[n + 1];\r
+       if (pData == NULL) {\r
+               WipeOutAndDelete((char*)pBuf, nSize);\r
+               SetLastError(ERROR_NOT_ENOUGH_MEMORY);\r
+               return NULL;\r
+       }\r
+       memcpy(pData, pBuf + 32, n);\r
+       pData[n] = 0;\r
+\r
+       WipeOutAndDelete((char*)pBuf, nSize);\r
+       return pData;\r
+}\r
+\r
+void WipeOutAndDelete(LPTSTR p, DWORD len)\r
+{\r
+       for (DWORD i = 0; i < len; i++) p[i] = TEXT('\0');\r
+       delete [] p;\r
+}\r
+\r
+\r
+#ifdef _WIN32_WCE\r
+void WipeOutAndDelete(char *p, DWORD len)\r
+{\r
+       for (DWORD i = 0; i < len; i++) p[i] = TEXT('\0');\r
+       delete [] p;\r
+}\r
+\r
+#endif\r
+\r
diff --git a/Src/CryptManager.h b/Src/CryptManager.h
new file mode 100644 (file)
index 0000000..017a85b
--- /dev/null
@@ -0,0 +1,39 @@
+#ifndef CRYPTMANAGER_H\r
+#define CRYPTMANAGER_H\r
+\r
+#include "Crypt.h"\r
+\r
+class CryptManager {\r
+       Crypt crypt;\r
+       BYTE md5key[16];\r
+\r
+public:\r
+       ~CryptManager();\r
+\r
+       // Set password\r
+       BOOL Init(const char *pKey);\r
+\r
+       // pBuf\82É\95½\95\82ð\90Ý\92è\82µ\82Ä\8cÄ\82Ô\82±\82Æ\82ÅpBuf\82É\88Ã\8d\86\95\82ð\95Ô\82·\81B\r
+       BOOL Encrypt(LPBYTE pBuf, int len);\r
+\r
+       // pBuf\82É\88Ã\8d\86\95\82ð\90Ý\92è\82µ\82Ä\8cÄ\82Ô\82±\82Æ\82ÅpBuf\82É\95½\95\82ð\95Ô\82·\81B\r
+       // len\82Í8\82Ì\94{\90\94\82Å\82È\82¯\82ê\82Î\82È\82ç\82È\82¢\81B\r
+       BOOL Decrypt(LPBYTE pBuf, int len);\r
+\r
+       // \83e\83L\83X\83g\82ð\8eó\82¯\8eæ\82è\81A\88Ã\8d\86\89»\82µ\82Ä\83t\83@\83C\83\8b\82É\95Û\91\82·\82é\r
+       BOOL EncryptAndStore(const LPBYTE pData, int nSize, LPCTSTR pFileName);\r
+\r
+       // \88Ã\8d\86\89»\82³\82ê\82½\83t\83@\83C\83\8b\82ð\95\9c\8d\86\89»\82·\82é\81B*pSize\82É\82Í\96{\93\96\82Ì\83o\83C\83g\90\94\82ª\93ü\82é\81B\r
+       // \82Ü\82½\81A\96ß\82è\92l\82Ì\83f\81[\83^\97ñ\82Ì\8dÅ\8cã\82É\82ÍNULL\82ª\95t\89Á\82³\82ê\82Ä\82¢\82é\81B\r
+       // \96ß\82è\92l\82Ì\83o\83b\83t\83@\82Ínew\82³\82ê\82Ä\82¢\82é\82½\82ß\81A\82¢\82ç\82È\82­\82È\82Á\82½\92i\8aK\82Å\8cÄ\82Ñ\8fo\82µ\8c³\82ªdelete[]\82·\82é\95K\97v\82ª\82 \82é\81B\r
+       LPBYTE LoadAndDecrypt(LPDWORD pSize, LPCTSTR pFileName);\r
+\r
+       LPBYTE EncryptBuffer(const LPBYTE pData, int nSize, int *pLen);\r
+       LPBYTE DecryptBuffer(const LPBYTE pCrypted, int nSize);\r
+};\r
+\r
+extern "C" {\r
+       void getMD5Sum(byte *md5sum, byte *in, int len);\r
+};\r
+#endif\r
+\r
diff --git a/Src/DetailsViewDlg.cpp b/Src/DetailsViewDlg.cpp
new file mode 100644 (file)
index 0000000..929398f
--- /dev/null
@@ -0,0 +1,137 @@
+#include <windows.h>\r
+#include <tchar.h>\r
+\r
+#include <aygshell.h>\r
+\r
+#include "Tombo.h"\r
+#include "resource.h"\r
+#include "MemoManager.h"\r
+#include "DialogTemplate.h"\r
+#include "DetailsViewDlg.h"\r
+#include "MemoDetailsView.h"\r
+#include "Property.h"\r
+#include "MemoNote.h"\r
+#include "Message.h"\r
+\r
+#include "Tombo.h"\r
+#define NUM_TOOLBAR_BMP 12\r
+\r
+///////////////////////////////////////////////////\r
+// view callback\r
+///////////////////////////////////////////////////\r
+\r
+class DetailsViewDlgCallback : public MemoDetailsViewCallback {\r
+       MemoManager *pMgr;\r
+       DetailsViewDlg *pDlg;\r
+public:\r
+       DetailsViewDlgCallback(MemoManager *pm, DetailsViewDlg *p) : pMgr(pm), pDlg(p) {}\r
+       void GetFocusCallback(MemoDetailsView *pView);\r
+       void SetModifyStatusCallback(MemoDetailsView *pView);\r
+       void SetReadOnlyStatusCallback(MemoDetailsView *pView);\r
+\r
+       void SetSearchFlg(BOOL bFlg);\r
+\r
+       SearchEngineA *GetSearchEngine(MemoDetailsView *pView);\r
+       void GetCurrentSelectedPath(MemoDetailsView *pView, TString *pPath);\r
+};\r
+\r
+void DetailsViewDlgCallback::GetFocusCallback(MemoDetailsView *pView) {}\r
+void DetailsViewDlgCallback::SetModifyStatusCallback(MemoDetailsView *pView)\r
+{\r
+       pDlg->SetModify();\r
+}\r
+\r
+void DetailsViewDlgCallback::SetReadOnlyStatusCallback(MemoDetailsView *pView) {}\r
+void DetailsViewDlgCallback::SetSearchFlg(BOOL bFlg) {}\r
+\r
+SearchEngineA *DetailsViewDlgCallback::GetSearchEngine(MemoDetailsView *pView)\r
+{\r
+       return pMgr->GetSearchEngine();\r
+}\r
+void DetailsViewDlgCallback::GetCurrentSelectedPath(MemoDetailsView *pView, TString *pPath)\r
+{\r
+       pMgr->GetCurrentSelectedPath(pPath);\r
+}\r
+\r
+///////////////////////////////////////////////////\r
+// \r
+///////////////////////////////////////////////////\r
+\r
+DetailsViewDlg::DetailsViewDlg() : pText(NULL)\r
+{\r
+}\r
+\r
+DetailsViewDlg::~DetailsViewDlg()\r
+{\r
+       delete [] pText;\r
+}\r
+\r
+void DetailsViewDlg::InitDialog(HWND hDlg)\r
+{\r
+       hDialog = hDlg;\r
+\r
+       // set PocketPC style dialog\r
+       SHINITDLGINFO shidi;\r
+       shidi.dwMask = SHIDIM_FLAGS;\r
+       shidi.dwFlags = SHIDIF_DONEBUTTON | SHIDIF_SIPDOWN | SHIDIF_SIZEDLGFULLSCREEN;\r
+       shidi.hDlg = hDlg;\r
+       SHInitDialog(&shidi);\r
+\r
+       // create menu bar\r
+       SHMENUBARINFO mbi;\r
+       memset(&mbi, 0, sizeof(SHMENUBARINFO));\r
+       mbi.cbSize = sizeof(SHMENUBARINFO);\r
+       mbi.hwndParent = hDlg;\r
+       mbi.nToolBarId = IDM_DETAILSDLG_MENU;\r
+       mbi.hInstRes =g_hInstance;\r
+       mbi.nBmpId = IDB_TOOLBAR;\r
+       mbi.cBmpImages = NUM_TOOLBAR_BMP;\r
+       SHCreateMenuBar(&mbi);\r
+\r
+       hMenubar = mbi.hwndMB;\r
+\r
+       RECT r;\r
+       GetClientRect(hDlg, &r);\r
+\r
+       DetailsViewDlgCallback *pCB = new DetailsViewDlgCallback(pMgr, this);\r
+       SimpleEditor *p = new SimpleEditor(pCB);\r
+       p->Init(pMgr, 2000, 2001);\r
+       p->Create(TEXT("MemoDetailsDlg"), r, hDlg, g_hInstance, g_Property.DetailsViewFont());\r
+       pView = p;\r
+\r
+       pView->Show(SW_SHOW);\r
+       pView->SetMemo(pText, 0, FALSE);\r
+       MemoNote::WipeOutAndDelete(pText);\r
+       pText = NULL;\r
+\r
+       pView->SetModifyStatus();\r
+       pView->SetFocus();\r
+}\r
+\r
+BOOL DetailsViewDlg::OnOK()\r
+{\r
+       if (pView->IsModify()) {\r
+               int iResult = MessageBox(hDialog, MSG_MEMO_EDITED, MSG_CONFIRM_SAVE, MB_ICONQUESTION | MB_YESNOCANCEL | MB_APPLMODAL);\r
+               if (iResult == IDCANCEL) return FALSE;\r
+               if (iResult == IDYES) {\r
+                       delete [] pText;\r
+                       pText = NULL;\r
+               }\r
+               // override popup results\r
+               nResult = iResult;\r
+       }\r
+       return TRUE;\r
+}\r
+\r
+DWORD DetailsViewDlg::Popup(HINSTANCE hInst, HWND hParent, MemoManager *p, LPTSTR pt)\r
+{\r
+       pText = pt;\r
+       pMgr = p;\r
+       return DialogTemplate::Popup(hInst, IDD_DETAILSVIEW, hParent);  \r
+}\r
+\r
+void DetailsViewDlg::SetModify()\r
+{\r
+       BOOL bEnable = pView->IsModify();\r
+       SendMessage(hMenubar, TB_ENABLEBUTTON, IDM_SAVE, MAKELONG(bEnable, 0));\r
+}
\ No newline at end of file
diff --git a/Src/DetailsViewDlg.h b/Src/DetailsViewDlg.h
new file mode 100644 (file)
index 0000000..84d167a
--- /dev/null
@@ -0,0 +1,31 @@
+#ifndef DETAILSVIEWDLG_H\r
+#define DETAILSVIEWDLG_H\r
+\r
+class MemoDetailsView;\r
+class MemoManager;\r
+\r
+class DetailsViewDlg : public Tombo_Lib::DialogTemplate\r
+{\r
+       HWND hDialog;\r
+       HWND hMenubar;\r
+\r
+       MemoManager *pMgr;\r
+       MemoDetailsView *pView;\r
+\r
+       LPTSTR pText;\r
+public:\r
+       DetailsViewDlg();\r
+       ~DetailsViewDlg();\r
+\r
+       void InitDialog(HWND hDlg);\r
+       BOOL OnOK();\r
+\r
+       DWORD Popup(HINSTANCE hInst, HWND hParent, MemoManager *pMgr, LPTSTR pText);\r
+\r
+       void SetModify();\r
+\r
+       LPCTSTR GetText() { return pText; }\r
+\r
+};\r
+\r
+#endif\r
diff --git a/Src/DetailsViewWndProc.cpp b/Src/DetailsViewWndProc.cpp
new file mode 100644 (file)
index 0000000..0c0e4c8
--- /dev/null
@@ -0,0 +1,168 @@
+#include <windows.h>\r
+#include <tchar.h>\r
+#if defined(PLATFORM_PKTPC) || defined(PLATFORM_WM5)\r
+#include <aygshell.h>\r
+#endif\r
+#include "Tombo.h"\r
+#include "resource.h"\r
+#include "MemoDetailsView.h"\r
+\r
+#if defined(PLATFORM_PKTPC) || defined(PLATFORM_WM5)\r
+#include "PlatformLayer.h"\r
+#endif\r
+\r
+#include "Property.h"\r
+\r
+static SUPER_WND_PROC gSuperProc;\r
+\r
+#define KEY_ESC 0x1B\r
+#define KEY_CTRL_A 1\r
+#define KEY_CTRL_B 2\r
+#define KEY_CTRL_C 3\r
+\r
+#define KEY_COLON       0xBB\r
+#define KEY_SEMICOLON   0xBA\r
+\r
+void SetWndProc(SUPER_WND_PROC wp)\r
+{\r
+       gSuperProc = wp;\r
+}\r
+\r
+/////////////////////////////////////////\r
+// Window procedure for sub classing editview\r
+/////////////////////////////////////////\r
+SUPER_WND_PROC gDefaultProc;\r
+DWORD gDelta;\r
+\r
+LRESULT CALLBACK DetailsViewSuperProc(HWND hwnd, UINT msg, WPARAM wParam, LPARAM lParam)\r
+{\r
+       if (msg == WM_CREATE) {\r
+               LPCREATESTRUCT pCS = (LPCREATESTRUCT)lParam;\r
+               SimpleEditor *frm = (SimpleEditor*)pCS->lpCreateParams;\r
+               SetWindowLong(hwnd, gDelta, (LONG)frm);\r
+       }\r
+       return CallWindowProc(gDefaultProc, hwnd, msg, wParam, lParam);\r
+}\r
+\r
+#if defined(PLATFORM_SIG3)\r
+INT nSelBase = -1;\r
+#endif\r
+\r
+LRESULT CALLBACK NewDetailsViewProc(HWND hwnd, UINT msg, WPARAM wParam, LPARAM lParam)\r
+{\r
+       SimpleEditor *pView = (SimpleEditor*)GetWindowLong(hwnd, gDelta);\r
+       if (pView == NULL) {\r
+               return CallWindowProc(gDefaultProc, hwnd, msg, wParam, lParam);\r
+       }\r
+\r
+       switch(msg) {\r
+       case WM_CLEAR:\r
+               if (pView->IsReadOnly()) return 0;\r
+               break;\r
+       case WM_CUT:\r
+               if (pView->IsReadOnly()) return 0;\r
+               break;\r
+       case WM_PASTE:\r
+               if (pView->IsReadOnly()) return 0;\r
+               break;\r
+       case WM_KEYDOWN:\r
+               if (pView->OnKeyDown(hwnd, wParam, lParam) == 0) return 0;\r
+               break;\r
+       case WM_CHAR:\r
+               pView->SetMDSearchFlg(TRUE); // clear search status flag\r
+\r
+               // if read only mode, ignore key events\r
+               if (pView->IsReadOnly()) {\r
+                       if (wParam == KEY_CTRL_C) break;        // Ctrl-C should not disable\r
+                       return 0;\r
+               }\r
+               // disable Ctrl-B(BELL)\r
+               if (wParam == KEY_CTRL_A || wParam == KEY_CTRL_B) return 0;\r
+               break;\r
+\r
+       case WM_COMMAND:\r
+               pView->OnCommand(hwnd, wParam, lParam);\r
+               break;\r
+\r
+#if defined(PLATFORM_PKTPC) || defined(PLATFORM_WM5)\r
+       case WM_LBUTTONDOWN:\r
+               {\r
+                       // clear search status\r
+                       pView->SetMDSearchFlg(TRUE);\r
+\r
+                       // Tap&hold\r
+                       SHRGINFO rgi;\r
+                       rgi.cbSize = sizeof(SHRGINFO);\r
+                       rgi.hwndClient = hwnd;\r
+                       rgi.ptDown.x = LOWORD(lParam);\r
+                       rgi.ptDown.y = HIWORD(lParam);\r
+                       rgi.dwFlags = SHRG_RETURNCMD;\r
+\r
+                       if (SHRecognizeGesture(&rgi) == GN_CONTEXTMENU) {\r
+                               HMENU hPopup = PLATFORM_TYPE::LoadDetailsViewPopupMenu();\r
+\r
+                               int x, y;\r
+                               UINT nFlg = TPM_RETURNCMD | TPM_LEFTALIGN | TPM_TOPALIGN;\r
+                               RECT r;\r
+                               GetWindowRect(hwnd, &r);\r
+\r
+                               x = rgi.ptDown.x;\r
+                               if (x < (r.right - r.left) / 2) {\r
+                                       nFlg |= TPM_LEFTALIGN;\r
+                                       x++;\r
+                               } else {\r
+                                       nFlg |= TPM_RIGHTALIGN;\r
+                                       x--;\r
+                               }\r
+\r
+                               y = rgi.ptDown.y + r.top;\r
+\r
+                               if (rgi.ptDown.y + r.top < r.bottom / 2) {\r
+                                       nFlg |= TPM_TOPALIGN;\r
+                                       y++;\r
+                               } else {\r
+                                       nFlg |= TPM_BOTTOMALIGN;\r
+                                       y--;\r
+                               }\r
+\r
+                               DWORD nID = TrackPopupMenuEx(hPopup, nFlg, x, y, hwnd, NULL);\r
+                               DestroyMenu(hPopup);\r
+                               if (nID != 0) {\r
+\r
+                                       if (nID == IDM_PASTE) {\r
+                                               CallWindowProc(gSuperProc, hwnd, msg, wParam, lParam);\r
+                                       }\r
+                                       pView->OnCommand(hwnd, MAKEWPARAM(nID, 0), 0);\r
+                               }\r
+                               return 0;\r
+                       }\r
+                       break;\r
+               }\r
+#else\r
+       case WM_LBUTTONDOWN:\r
+               // clear search status\r
+               pView->SetMDSearchFlg(TRUE);\r
+#if defined(PLATFORM_SIG3)\r
+               {\r
+                       INT xPos, yPos;\r
+                       xPos = (INT)LOWORD(lParam);\r
+                       yPos = (INT)HIWORD(lParam);\r
+                       LPARAM l = MAKELPARAM(xPos, yPos);\r
+                       nSelBase = SendMessage(hwnd, EM_CHARFROMPOS, 0, l) & 0xFFFF;\r
+               }\r
+#endif\r
+               break;\r
+#endif\r
+       case WM_SETFOCUS:\r
+               {\r
+                       if (pView) pView->OnGetFocus();\r
+                       break;\r
+               }\r
+       }\r
+\r
+       LRESULT lResult = CallWindowProc(gSuperProc, hwnd, msg, wParam, lParam);\r
+       if (pView && msg != EM_GETMODIFY) {\r
+               pView->SetModifyStatus();\r
+       }\r
+    return lResult;\r
+}\r
diff --git a/Src/DirList.cpp b/Src/DirList.cpp
new file mode 100644 (file)
index 0000000..d61451f
--- /dev/null
@@ -0,0 +1,111 @@
+#include <windows.h>\r
+#include <tchar.h>\r
+#include "Tombo.h"\r
+#include "DirList.h"\r
+#include "MemoNote.h"\r
+#include "TString.h"\r
+#include "TomboURI.h"\r
+#include "Repository.h"\r
+\r
+static StringBufferT *pSortSB;\r
+extern "C" int SortItems(const void *e1, const void *e2)\r
+{\r
+       const DirListItem *p1 = (const DirListItem*)e1;\r
+       const DirListItem *p2 = (const DirListItem*)e2;\r
+       LPCTSTR q1 = pSortSB->Get(p1->nHeadLinePos);\r
+       LPCTSTR q2 = pSortSB->Get(p2->nHeadLinePos);\r
+       if (p1->bFolder == p2->bFolder) {\r
+               return _tcsicmp(q1, q2);\r
+       } else {\r
+               if (p1->bFolder) {\r
+                       return -1;\r
+               } else {\r
+                       return 1;\r
+               }\r
+       }\r
+}\r
+\r
+BOOL DirList::Init(LPCTSTR pUB)\r
+{\r
+       pURIBase = pUB;\r
+\r
+       if (!vDirList.Init(50, 10)) return FALSE;\r
+       if (!sbDirList.Init(400, 20)) return FALSE;\r
+       return TRUE;\r
+}\r
+\r
+DirList::~DirList()\r
+{\r
+}\r
+\r
+DWORD DirList::GetList(LPCTSTR pMatchPath, BOOL bSkipEncrypt, BOOL bLooseDecrypt)\r
+{\r
+       BOOL bPartial = FALSE;\r
+\r
+       // make folder/file list\r
+       WIN32_FIND_DATA wfd;\r
+       HANDLE hHandle = FindFirstFile(pMatchPath, &wfd);\r
+       if (hHandle != INVALID_HANDLE_VALUE) {\r
+               struct DirListItem di;\r
+\r
+               do {\r
+                       if (_tcscmp(wfd.cFileName, TEXT(".")) == 0 || _tcscmp(wfd.cFileName, TEXT("..")) == 0) continue;\r
+\r
+                       DWORD l = _tcslen(wfd.cFileName);\r
+                       if (wfd.dwFileAttributes & FILE_ATTRIBUTE_DIRECTORY) {\r
+                               // folder \r
+                               di.bFolder = TRUE;\r
+                       } else {\r
+                               // file\r
+                               DWORD n = MemoNote::IsNote(wfd.cFileName);\r
+                               if (n == NOTE_TYPE_NO || n == NOTE_TYPE_TDT) continue;\r
+                               \r
+                               di.bFolder = FALSE;\r
+                       }\r
+\r
+                       if (!sbDirList.Add(pURIBase, _tcslen(pURIBase), &(di.nURIPos))) return DIRLIST_GETLIST_RESULT_FAIL;\r
+                       DWORD d;\r
+                       if (!sbDirList.Add(wfd.cFileName, l, &d)) return DIRLIST_GETLIST_RESULT_FAIL;\r
+                       if (wfd.dwFileAttributes & FILE_ATTRIBUTE_DIRECTORY) {\r
+                               if (!sbDirList.Add(TEXT("/"), 1, &d)) return DIRLIST_GETLIST_RESULT_FAIL;\r
+                       }\r
+                       if (!sbDirList.Add(TEXT(""), 1, &d)) return DIRLIST_GETLIST_RESULT_FAIL;\r
+\r
+                       TomboURI sURI;\r
+                       TString sHeadLine;\r
+                       if (!sURI.Init(GetFileName(di.nURIPos))) return DIRLIST_GETLIST_RESULT_FAIL;\r
+\r
+                       URIOption opt(NOTE_OPTIONMASK_ENCRYPTED);\r
+                       g_Repository.GetOption(&sURI, &opt);\r
+\r
+                       if (!opt.bEncrypt || !bSkipEncrypt) {\r
+                               if (!g_Repository.GetHeadLine(&sURI, &sHeadLine)) {\r
+                                       if (GetLastError() == ERROR_INVALID_PASSWORD && bLooseDecrypt) {\r
+                                               bPartial = TRUE;\r
+                                               sHeadLine.Set(TEXT("????????"));\r
+                                       } else {\r
+                                               return DIRLIST_GETLIST_RESULT_FAIL;\r
+                                       }\r
+                               }\r
+                               if (!sbDirList.Add(sHeadLine.Get(), _tcslen(sHeadLine.Get()) + 1, &(di.nHeadLinePos))) return DIRLIST_GETLIST_RESULT_FAIL;\r
+       \r
+                               // Add file name to buffer\r
+                               if (!sbDirList.Add(wfd.cFileName, l + 1, &(di.nFileNamePos))) return DIRLIST_GETLIST_RESULT_FAIL;\r
+                               if (!vDirList.Add(&di)) return DIRLIST_GETLIST_RESULT_FAIL;\r
+                       }\r
+               } while(FindNextFile(hHandle, &wfd));\r
+               FindClose(hHandle);\r
+       }\r
+\r
+       DWORD n = vDirList.NumItems();\r
+\r
+       // sort \r
+       pSortSB = &sbDirList;\r
+       qsort((LPBYTE)vDirList.GetBuf(), n, sizeof(struct DirListItem), SortItems);\r
+\r
+       if (bPartial) {\r
+               return DIRLIST_GETLIST_RESULT_PARTIAL;\r
+       } else {\r
+               return DIRLIST_GETLIST_RESULT_SUCCESS;\r
+       }\r
+}\r
diff --git a/Src/DirList.h b/Src/DirList.h
new file mode 100644 (file)
index 0000000..13e4773
--- /dev/null
@@ -0,0 +1,41 @@
+#ifndef DIRLIST_H\r
+#define DIRLIST_H\r
+\r
+#include "VarBuffer.h"\r
+\r
+#define DIRLIST_GETLIST_RESULT_FAIL 0\r
+#define DIRLIST_GETLIST_RESULT_SUCCESS 1\r
+#define DIRLIST_GETLIST_RESULT_PARTIAL 2\r
+\r
+//////////////////////////////////////////////////////\r
+// Directory item information\r
+//////////////////////////////////////////////////////\r
+\r
+struct DirListItem {\r
+       DWORD nFileNamePos;\r
+       DWORD nURIPos;\r
+       DWORD nHeadLinePos;\r
+       BOOL bFolder;\r
+};\r
+\r
+//////////////////////////////////////////////////////\r
+// Directory list scanner\r
+//////////////////////////////////////////////////////\r
+\r
+class DirList {\r
+       LPCTSTR pURIBase;\r
+public:\r
+       TVector<DirListItem> vDirList;\r
+       StringBufferT sbDirList;\r
+\r
+       BOOL Init(LPCTSTR pURIBase);\r
+       ~DirList();\r
+\r
+       DWORD GetList(LPCTSTR pMatchPath, BOOL bSkipEncrypt, BOOL bLooseDecrypt);\r
+\r
+       DWORD NumItems() { return vDirList.NumItems(); }\r
+       DirListItem *GetItem(DWORD n) { return vDirList.GetUnit(n); }\r
+       LPCTSTR GetFileName(DWORD n) { return sbDirList.Get(n); }\r
+};\r
+\r
+#endif\r
diff --git a/Src/FileSelector.cpp b/Src/FileSelector.cpp
new file mode 100644 (file)
index 0000000..fa9eee9
--- /dev/null
@@ -0,0 +1,448 @@
+#include <windows.h>\r
+#include <tchar.h>\r
+#include <commctrl.h>\r
+#include "FileSelector.h"\r
+#include "Resource.h"\r
+\r
+#include "DialogTemplate.h"\r
+#include "Message.h"\r
+\r
+#if defined(PLATFORM_WIN32)\r
+////////////////////////////////////////////////////\r
+////////////////////////////////////////////////////\r
+// File selection(win32)\r
+////////////////////////////////////////////////////\r
+////////////////////////////////////////////////////\r
+\r
+#include <shlobj.h>\r
+\r
+DWORD FileSelector::Popup(HINSTANCE hInst, HWND hWnd, LPCTSTR pTitle, LPCTSTR pExt)\r
+{\r
+       if (pExt != NULL) {\r
+               OPENFILENAME ofn;\r
+               TCHAR fname[MAX_PATH];\r
+\r
+               fname[0] = aPath[0] = TEXT('\0');\r
+\r
+               memset(&ofn, 0, sizeof(ofn));\r
+               ofn.lStructSize = sizeof(ofn);\r
+               ofn.hwndOwner = hWnd;\r
+               ofn.lpstrFilter = pExt;\r
+               ofn.lpstrFile = aPath;\r
+               ofn.nMaxFile = MAX_PATH;\r
+               ofn.lpstrFileTitle = fname;\r
+               ofn.nMaxFileTitle = MAX_PATH;\r
+               ofn.lpstrTitle = pTitle;\r
+               ofn.Flags = OFN_FILEMUSTEXIST | OFN_HIDEREADONLY;\r
+               if (GetOpenFileName(&ofn)) {\r
+                       return IDOK;\r
+               } else {\r
+                       return IDCANCEL;\r
+               }\r
+       } else {\r
+               LPITEMIDLIST pIdList;\r
+               TCHAR buf[MAX_PATH];\r
+               BROWSEINFO bi;\r
+               ZeroMemory(&bi, sizeof(bi));\r
+               bi.hwndOwner = hWnd;\r
+               bi.pszDisplayName = buf;\r
+               bi.lpszTitle = pTitle;\r
+               bi.ulFlags = BIF_RETURNONLYFSDIRS;\r
+\r
+               pIdList = SHBrowseForFolder(&bi);\r
+               if (pIdList == NULL) return IDCANCEL;\r
+\r
+               SHGetPathFromIDList(pIdList, aPath); \r
+               CoTaskMemFree(pIdList);\r
+               return IDOK;\r
+       }\r
+}\r
+\r
+#else // PLATFORM_WIN32\r
+////////////////////////////////////////////////////\r
+////////////////////////////////////////////////////\r
+// File selection (CE)\r
+////////////////////////////////////////////////////\r
+////////////////////////////////////////////////////\r
+\r
+\r
+#define IMAGE_CX 16\r
+#define IMAGE_CY 16\r
+#define NUM_BITMAPS 4\r
+\r
+#define IMG_FOLDER 0\r
+#define IMG_FOLDER_SEL 1\r
+#define IMG_ARTICLE 2\r
+#define IMG_DRIVE 3\r
+\r
+//////////////////////////////////////////////////\r
+// dtor\r
+//////////////////////////////////////////////////\r
+FileSelector::~FileSelector()\r
+{\r
+       if (hImg) ImageList_Destroy(hImg);\r
+}\r
+\r
+//////////////////////////////////////////////////\r
+// Dialog Procedure\r
+//////////////////////////////////////////////////\r
+\r
+static BOOL APIENTRY DlgProc(HWND hDlg, UINT nMessage, WPARAM wParam, LPARAM lParam)\r
+{\r
+       FileSelector *pDlg;\r
+\r
+       if (nMessage == WM_INITDIALOG) {\r
+               // \83I\83u\83W\83F\83N\83g\82ð\8bL\89¯\82µ\82Ä\82¨\82­\r
+               SetWindowLong(hDlg, DWL_USER, lParam);\r
+               pDlg = (FileSelector*)lParam;\r
+\r
+               pDlg->InitDialog(hDlg);\r
+               return TRUE;\r
+       }\r
+\r
+       pDlg = (FileSelector*)GetWindowLong(hDlg, DWL_USER);\r
+       if (pDlg == NULL) return FALSE;\r
+\r
+       switch(nMessage) {\r
+       case WM_COMMAND:\r
+               switch (LOWORD(wParam)) {\r
+               case IDOK:\r
+                       pDlg->OnOK(hDlg);\r
+                       break;\r
+               case IDCANCEL:\r
+                       EndDialog(hDlg, IDCANCEL);\r
+                       break;\r
+               }\r
+               return TRUE;\r
+       case WM_NOTIFY:\r
+               if (wParam == IDC_FILESELECT_TREE) {\r
+                       pDlg->OnTreeNotify(hDlg, wParam, lParam);\r
+               }\r
+               return TRUE;\r
+       }\r
+       return FALSE;\r
+}\r
+\r
+//////////////////////////////////////////////////\r
+// Popup\r
+//////////////////////////////////////////////////\r
+\r
+DWORD FileSelector::Popup(HINSTANCE hInst, HWND hWnd, LPCTSTR pt, LPCTSTR pExt)\r
+{\r
+       // Create image list\r
+       if (hImg == NULL) {\r
+           if ((hImg = ImageList_Create(IMAGE_CX, IMAGE_CY, ILC_MASK, NUM_BITMAPS, 0)) == NULL) return IDCANCEL;\r
+            HBITMAP hBmp = LoadBitmap(hInst, MAKEINTRESOURCE(IDB_ARTICLEBOX)); \r
+               COLORREF rgbTransparent = RGB(0, 255, 0);\r
+               ImageList_AddMasked(hImg, hBmp, rgbTransparent); \r
+           DeleteObject(hBmp); \r
+       }\r
+\r
+       pTitle = pt;\r
+       if (pExt != NULL) pExtension = pExt;\r
+\r
+       DWORD result;\r
+       result = DialogBoxParam(hInst, MAKEINTRESOURCE(IDD_FILESELECT), hWnd, (DLGPROC)DlgProc, (LONG)this);\r
+       DWORD n = GetLastError();\r
+       return result;\r
+}\r
+\r
+//////////////////////////////////////////////////\r
+// Initialize dialog\r
+//////////////////////////////////////////////////\r
+\r
+static DlgMsgRes aMsgRes[] = {\r
+       { IDOK,     MSG_ID_DLG_CMN_OK},\r
+       { IDCANCEL, MSG_ID_DLG_CMN_CANCEL},\r
+};\r
+\r
+void FileSelector::InitDialog(HWND hWnd)\r
+{\r
+       OverrideDlgMsg(hWnd, MSG_ID_DLG_FILESELECT_TITLE, aMsgRes, sizeof(aMsgRes)/sizeof(DlgMsgRes));\r
+\r
+       HWND hTree = GetDlgItem(hWnd, IDC_FILESELECT_TREE);\r
+\r
+    TreeView_SetImageList(hTree, hImg, TVSIL_NORMAL); \r
+       TreeView_DeleteAllItems(hTree);\r
+\r
+       // \83h\83\89\83C\83u\83m\81[\83h\82ð\8dì\90¬\r
+       TV_INSERTSTRUCT ti;\r
+       ti.hParent = TVI_ROOT;\r
+       ti.hInsertAfter = TVI_LAST;\r
+\r
+       TCHAR buf[3];\r
+\r
+       ti.item.mask = TVIF_TEXT | TVIF_IMAGE | TVIF_SELECTEDIMAGE | TVIF_PARAM;\r
+       ti.item.iImage = ti.item.iSelectedImage = IMG_DRIVE;\r
+       ti.item.pszText = buf;\r
+       ti.item.lParam = NULL;\r
+       buf[1] = TEXT(':');\r
+       buf[2] = TEXT('\0');\r
+\r
+       TV_INSERTSTRUCT td;\r
+       td.hInsertAfter = TVI_LAST;\r
+       td.item.mask = TVIF_TEXT | TVIF_IMAGE | TVIF_SELECTEDIMAGE;\r
+       td.item.iImage = IMG_FOLDER;\r
+       td.item.iSelectedImage = IMG_FOLDER_SEL;\r
+       td.item.pszText = TEXT("DUMMY");\r
+\r
+#ifdef _WIN32_WCE\r
+       _tcscpy(buf, TEXT("\\"));\r
+       td.hParent = TreeView_InsertItem(hTree, &ti);\r
+       TreeView_InsertItem(hTree, &td);\r
+#else\r
+       UINT ut;\r
+       for (buf[0] = TEXT('A'); buf[0] <= TEXT('Z'); buf[0]++) {\r
+               ut = GetDriveType(buf);\r
+               if (ut == DRIVE_FIXED || ut == DRIVE_REMOTE || ut == DRIVE_RAMDISK) {\r
+                       td.hParent = TreeView_InsertItem(hTree, &ti);\r
+                       if (td.hParent == NULL) {\r
+                               TCHAR buf[1024];\r
+                               wsprintf(buf, TEXT("Can't insert tree item %d"), GetLastError());\r
+                               MessageBox(NULL, buf, TEXT("WARNING"), MB_ICONEXCLAMATION | MB_OK);\r
+                       }\r
+                       TreeView_InsertItem(hTree, &td);\r
+               }\r
+       }\r
+#endif\r
+\r
+       // \83^\83C\83g\83\8b\82Ì\90Ý\92è\r
+       SetWindowText(hWnd, pTitle);\r
+\r
+       // OK\83{\83^\83\93\82Í\8dÅ\8f\89\82Ídisable\r
+       HWND hOk = GetDlgItem(hWnd, IDOK);\r
+       EnableWindow(hOk, FALSE);\r
+}\r
+\r
+///////////////////////////////////////////////////////////////////\r
+// \83c\83\8a\81[\83r\83\85\81[\82Æ\91I\91ð\82³\82ê\82½\83A\83C\83e\83\80\82©\82ç\81A\83p\83X\82Æ\82È\82é\95\8e\9a\97ñ\82ð\93¾\82é\81B\r
+//\r
+// \96ß\82è\92l\82Í\95\8e\9a\97ñ\82Ì\90æ\93ª\81B(pBuf\82Ì\92\86\82ð\8ew\82·)\r
+// pBuf\82Í\8cã\82ë\91¤\82©\82ç\91O\82É\8cü\82©\82Á\82Ä\8eg\97p\82·\82é\81B\r
+static LPTSTR GeneratePath(HWND hTree, HTREEITEM hItem, LPTSTR pBuf, DWORD nSiz)\r
+{\r
+       LPTSTR p = pBuf + nSiz - 2;\r
+       *(p+1) = TEXT('\0');\r
+\r
+       TV_ITEM it;\r
+       TCHAR buf[MAX_PATH];\r
+\r
+       HTREEITEM h = hItem;\r
+       it.mask = TVIF_HANDLE | TVIF_TEXT | TVIF_PARAM;\r
+       it.pszText = buf;\r
+\r
+       while(h) {\r
+               it.hItem = h;\r
+               it.cchTextMax = MAX_PATH;\r
+               TreeView_GetItem(hTree, &it);\r
+\r
+               *p-- = TEXT('\\');\r
+               p -= _tcslen(buf) - 1;\r
+               _tcsncpy(p, buf, _tcslen(buf));\r
+               p--;\r
+\r
+               h = TreeView_GetParent(hTree, h);\r
+       }\r
+#ifdef _WIN32_WCE\r
+       // CE\82Ì\8fê\8d\87\81A\83h\83\89\83C\83u\82ª\82È\82¢\82½\82ß\81A\82»\82Ì\82Ü\82Ü\82¾\82Æ'\\'\82Æ\82È\82Á\82Ä\82µ\82Ü\82¤\81B\82»\82±\82Å+1\82µ\82Ä'\'\82ð1\82Â\8f\9c\82­\81B\r
+       return p + 2;\r
+#else\r
+       return p + 1;\r
+#endif\r
+}\r
+\r
+//////////////////////////////////////////////////\r
+// \83c\83\8a\81[\82É\91Î\82·\82éNOTIFY\r
+//////////////////////////////////////////////////\r
+\r
+// \83t\83H\83\8b\83_\83m\81[\83h\82Í\83r\83\85\81[\82É'+'\82ð\95\\8e¦\82³\82¹\82é\82½\82ß\81A\83_\83~\81[\83m\81[\83h\82ð1\82Â\8e\9d\82Á\82Ä\82¢\82é\81B\r
+// \83m\81[\83h\83I\81[\83v\83\93\8e\9e\82É\82Í\83_\83~\81[\83m\81[\83h\82ð\8fÁ\82µ\82Ä\81A\83t\83H\83\8b\83_\82Ì\93à\97e\82ð\92Ç\89Á\82·\82é\81B\r
+// \95Â\82\82é\82Æ\82«\82É\82Í\8eq\8b\9f\82Ì\97v\91f\82ð\8fÁ\82µ\82Ä\81A\83_\83~\81[\83m\81[\83h\82ð\92Ç\89Á\82·\82é\81B\r
+\r
+void FileSelector::OnTreeNotify(HWND hWnd, WPARAM wParam, LPARAM lParam)\r
+{\r
+       LPNM_TREEVIEW pHdr = (LPNM_TREEVIEW)lParam;\r
+       HWND hTree = GetDlgItem(hWnd, IDC_FILESELECT_TREE);\r
+\r
+       switch(pHdr->hdr.code) {\r
+       case TVN_ITEMEXPANDING:\r
+               if(pHdr->action == TVE_EXPAND) {\r
+                       // \83c\83\8a\81[\82ð\8aJ\82±\82¤\82Æ\82µ\82½\r
+                       TreeExpand(hTree, pHdr->itemNew.hItem);\r
+               } else {\r
+                       // \83c\83\8a\81[\82ð\95Â\82\82æ\82¤\82Æ\82µ\82½\r
+                       TreeCollapse(hTree, pHdr->itemNew.hItem);\r
+               }\r
+               break;\r
+       case TVN_SELCHANGED:\r
+               ItemSelect(hWnd, hTree, pHdr->itemNew.hItem);\r
+               break;\r
+       }\r
+}\r
+\r
+//////////////////////////////////////////////////\r
+// OK\r
+//////////////////////////////////////////////////\r
+\r
+void FileSelector::OnOK(HWND hWnd)\r
+{\r
+       HWND hTree = GetDlgItem(hWnd, IDC_FILESELECT_TREE);\r
+       HTREEITEM h = TreeView_GetSelection(hTree);\r
+       pPath = GeneratePath(hTree, h, aPath, MAX_PATH);\r
+       if (pExtension) {\r
+               pPath[_tcslen(pPath) - 1] = TEXT('\0');\r
+       }\r
+\r
+       EndDialog(hWnd, IDOK);\r
+}\r
+\r
+//////////////////////////////////////////////////\r
+//\r
+\r
+static HTREEITEM GetInsertAfter(HWND hTree, HTREEITEM hItem, LPCTSTR pStr, BOOL bFolder)\r
+{\r
+       HTREEITEM h = TreeView_GetChild(hTree, hItem);\r
+\r
+       if (h == NULL) return TVI_FIRST;\r
+\r
+       HTREEITEM hd = TVI_FIRST;\r
+       TV_ITEM ti;\r
+       HTREEITEM res = TVI_LAST;\r
+\r
+       TCHAR buf[MAX_PATH];\r
+\r
+       ti.mask = TVIF_HANDLE | TVIF_TEXT | TVIF_IMAGE;\r
+       while (h) {\r
+               ti.hItem = h;\r
+               ti.pszText = buf;\r
+               ti.cchTextMax = MAX_PATH;\r
+\r
+               TreeView_GetItem(hTree, &ti);\r
+               if (!(ti.iImage == IMG_FOLDER && bFolder == FALSE)) {\r
+                       if (_tcsicmp(buf, pStr) >= 0) {\r
+                               res = hd;\r
+                               break;\r
+                       }\r
+               }\r
+               hd = h;\r
+               h = TreeView_GetNextSibling(hTree, h);\r
+       }\r
+       return res;\r
+}\r
+\r
+//////////////////////////////////////////////////\r
+// \83c\83\8a\81[\82Ì\93W\8aJ\r
+//////////////////////////////////////////////////\r
+\r
+void FileSelector::TreeExpand(HWND hTree, HTREEITEM hItem)\r
+{\r
+       TCHAR buf[MAX_PATH], buf2[MAX_PATH];\r
+       LPTSTR pPath = GeneratePath(hTree, hItem, buf, MAX_PATH);\r
+               \r
+       HTREEITEM di = TreeView_GetChild(hTree, hItem);\r
+       TreeView_DeleteItem(hTree, di);\r
+       \r
+       // \83f\83B\83\8c\83N\83g\83\8a\88ê\97\97\82Ì\8eæ\93¾\81E\83c\83\8a\81[\82Ö\82Ì\92Ç\89Á\r
+       WIN32_FIND_DATA wfd;\r
+       TV_INSERTSTRUCT ti;\r
+       ti.hParent = hItem;\r
+       ti.hInsertAfter = TVI_LAST;\r
+       ti.item.mask = TVIF_TEXT | TVIF_IMAGE | TVIF_SELECTEDIMAGE | TVIF_PARAM;\r
+       ti.item.iImage = IMG_FOLDER;\r
+       ti.item.iSelectedImage = IMG_FOLDER_SEL;\r
+       ti.item.pszText = wfd.cFileName;\r
+       ti.item.lParam = (LPARAM)hItem;\r
+       \r
+       // \93W\8aJ\97p\82Ì"+"\83{\83^\83\93\82ð\95\\8e¦\82³\82¹\82é\82½\82ß\82Ì\83_\83~\81[\83m\81[\83h\r
+       TV_INSERTSTRUCT td;\r
+       td.hInsertAfter = TVI_LAST;\r
+       td.item.mask = TVIF_TEXT | TVIF_IMAGE | TVIF_SELECTEDIMAGE;\r
+       td.item.iImage = IMG_FOLDER;\r
+       td.item.iSelectedImage = IMG_FOLDER_SEL;\r
+       td.item.pszText = TEXT("DUMMY");\r
+\r
+       wsprintf(buf2, TEXT("%s*.*"), pPath);\r
+       HANDLE hFile = FindFirstFile(buf2, &wfd);\r
+       if (hFile != INVALID_HANDLE_VALUE) {\r
+               do {\r
+                       if (!(wfd.dwFileAttributes & FILE_ATTRIBUTE_DIRECTORY)) continue;\r
+                       if (_tcscmp(wfd.cFileName, TEXT(".")) == 0 ||\r
+                               _tcscmp(wfd.cFileName, TEXT("..")) == 0) continue;\r
+\r
+                       // \91}\93ü\r
+                       ti.hInsertAfter = GetInsertAfter(hTree, hItem, wfd.cFileName, TRUE);\r
+                       td.hParent = TreeView_InsertItem(hTree, &ti);\r
+\r
+                       // \83_\83~\81[\83m\81[\83h\82ð\91}\93ü\r
+                       TreeView_InsertItem(hTree, &td);\r
+\r
+               } while(FindNextFile(hFile, &wfd));\r
+               FindClose(hFile);\r
+       }\r
+       \r
+       // \83t\83@\83C\83\8b\91I\91ð\82Ì\8fê\8d\87\82É\82Í\83t\83@\83C\83\8b\82à\95\\8e¦\82·\82é\r
+       if (pExtension) {\r
+               ti.item.iImage = ti.item.iSelectedImage = IMG_ARTICLE;\r
+               wsprintf(buf2, TEXT("%s%s"), pPath, pExtension);\r
+               hFile = FindFirstFile(buf2, &wfd);\r
+               if (hFile != INVALID_HANDLE_VALUE) {\r
+                       do {\r
+                               if (wfd.dwFileAttributes & FILE_ATTRIBUTE_DIRECTORY) continue;\r
+\r
+                               ti.hInsertAfter = GetInsertAfter(hTree, hItem, wfd.cFileName, FALSE);\r
+                               TreeView_InsertItem(hTree, &ti);\r
+                       } while(FindNextFile(hFile, &wfd));\r
+                       FindClose(hFile);\r
+               }\r
+       }\r
+}\r
+\r
+//////////////////////////////////////////////////\r
+// \83c\83\8a\81[\82ð\95Â\82\82é\r
+//////////////////////////////////////////////////\r
+\r
+void FileSelector::TreeCollapse(HWND hTree, HTREEITEM hItem) \r
+{\r
+       // \89º\88Ê\83m\81[\83h\82Ì\8dí\8f\9c\r
+       HTREEITEM h = TreeView_GetChild(hTree, hItem);\r
+       HTREEITEM hd;\r
+       while (h) {\r
+               hd = h;\r
+               h = TreeView_GetNextSibling(hTree, h);\r
+               TreeView_DeleteItem(hTree, hd);\r
+       }\r
+       \r
+       // \83_\83~\81[\83m\81[\83h\82Ì\91}\93ü\r
+       TV_INSERTSTRUCT td;\r
+       td.hParent = hItem;\r
+       td.hInsertAfter = TVI_LAST;\r
+       td.item.mask = TVIF_TEXT | TVIF_IMAGE | TVIF_SELECTEDIMAGE;\r
+       td.item.iImage = IMG_FOLDER;\r
+       td.item.iSelectedImage = IMG_FOLDER_SEL;\r
+       td.item.pszText = TEXT("DUMMY");\r
+       TreeView_InsertItem(hTree, &td);\r
+}\r
+\r
+//////////////////////////////////////////////////\r
+// \83m\81[\83h\82Ì\91I\91ð\r
+//////////////////////////////////////////////////\r
+//\81@\83t\83@\83C\83\8b\91I\91ð\82Ì\8fê\8d\87\81A\83t\83H\83\8b\83_\82ð\91I\91ð\82µ\82Ä\82¢\82é\8fê\8d\87\82É\82ÍOK\83{\83^\83\93\82ðdisable\82É\82·\82é\81B\r
+\r
+void FileSelector::ItemSelect(HWND hDlg, HWND hTree, HTREEITEM hItem)\r
+{\r
+       HWND hOk = GetDlgItem(hDlg, IDOK);\r
+       BOOL bEnable;\r
+\r
+       if (pExtension) {\r
+               TV_ITEM ti;\r
+               ti.mask = TVIF_HANDLE | TVIF_IMAGE;\r
+               ti.hItem = hItem;\r
+               TreeView_GetItem(hTree, &ti);\r
+               bEnable = (ti.iImage == IMG_ARTICLE);\r
+       } else {\r
+               bEnable = TRUE;\r
+       }\r
+       EnableWindow(hOk, bEnable);\r
+}\r
+\r
+#endif // PLATFORM_WIN32
\ No newline at end of file
diff --git a/Src/FileSelector.h b/Src/FileSelector.h
new file mode 100644 (file)
index 0000000..3e593d5
--- /dev/null
@@ -0,0 +1,53 @@
+#ifndef FILESELECTOR_H\r
+#define FILESELECTOR_H\r
+\r
+///////////////////////////////////////////////////\r
+// \83t\83@\83C\83\8b\82à\82µ\82­\82Í\83t\83H\83\8b\83_\82ð\91I\91ð\82³\82¹\82é\83Z\83\8c\83N\83^\r
+///////////////////////////////////////////////////\r
+\r
+#if defined(PLATFORM_WIN32)\r
+class FileSelector {\r
+       TCHAR aPath[MAX_PATH];\r
+public:\r
+       FileSelector() {}\r
+       ~FileSelector(){}\r
+\r
+       // pExt == NULL : \83t\83H\83\8b\83_\82Ì\91I\91ð\r
+       // pExt != NULL : \8ew\92è\82µ\82½\8ag\92£\8eq\82ð\8e\9d\82Â\83t\83@\83C\83\8b\82Ì\91I\91ð\r
+       DWORD Popup(HINSTANCE hInst, HWND hWnd, LPCTSTR pTitle, LPCTSTR pExt);\r
+\r
+       LPCTSTR SelectedPath() { return aPath; }\r
+};\r
+\r
+#else\r
+class FileSelector {\r
+       HWND hDialog;\r
+       HIMAGELIST hImg;\r
+\r
+       TCHAR aPath[MAX_PATH];\r
+       LPTSTR pPath;\r
+\r
+       LPCTSTR pTitle;\r
+       LPCTSTR pExtension;\r
+protected:\r
+       void TreeExpand(HWND hTree, HTREEITEM hItem);\r
+       void TreeCollapse(HWND hTree, HTREEITEM hItem);\r
+       void ItemSelect(HWND hDlg, HWND hTree, HTREEITEM hItem);\r
+\r
+public:\r
+       FileSelector() : hDialog(NULL), hImg(NULL), pPath(NULL), pTitle(NULL), pExtension(NULL) {}\r
+       ~FileSelector();\r
+\r
+       // pExt == NULL : \83t\83H\83\8b\83_\82Ì\91I\91ð\r
+       // pExt != NULL : \8ew\92è\82µ\82½\8ag\92£\8eq\82ð\8e\9d\82Â\83t\83@\83C\83\8b\82Ì\91I\91ð\r
+       DWORD Popup(HINSTANCE hInst, HWND hWnd, LPCTSTR pTitle, LPCTSTR pExt);\r
+\r
+       void InitDialog(HWND hDlg);\r
+       void OnTreeNotify(HWND hDlg, WPARAM wParam, LPARAM lParam);\r
+       void OnOK(HWND hDlg);\r
+\r
+       LPCTSTR SelectedPath() { return pPath; }\r
+};\r
+#endif\r
+\r
+#endif\r
diff --git a/Src/FilterAddDlg.cpp b/Src/FilterAddDlg.cpp
new file mode 100644 (file)
index 0000000..cca976a
--- /dev/null
@@ -0,0 +1,268 @@
+#include <windows.h>\r
+#include <tchar.h>\r
+#if defined(PLATFORM_WIN32)\r
+#include <stdio.h>\r
+#endif\r
+#include "resource.h"\r
+#include "Tombo.h"\r
+#include "Message.h"\r
+#include "DialogTemplate.h"\r
+#include "VFStream.h"\r
+#include "FilterAddDlg.h"\r
+#include "Property.h"\r
+#include "TString.h"\r
+\r
+////////////////////////////////////////////////////////////////\r
+////////////////////////////////////////////////////////////////\r
+// Regex filter\r
+////////////////////////////////////////////////////////////////\r
+////////////////////////////////////////////////////////////////\r
+\r
+////////////////////////////////////////////////////////////////\r
+// ctor & dtor\r
+////////////////////////////////////////////////////////////////\r
+\r
+RegexFilterAddDlg::~RegexFilterAddDlg()\r
+{\r
+       delete pMatchStr;\r
+}\r
+\r
+BOOL RegexFilterAddDlg::Init(LPCTSTR pMatch, BOOL bCS, BOOL bCE, BOOL bFile, BOOL bNeg)\r
+{\r
+       pMatchStr = new TString();\r
+       if (pMatchStr == NULL) return FALSE;\r
+\r
+       if (pMatch) {\r
+               if (!pMatchStr->Set(pMatch)) return FALSE;\r
+               bCaseSensitive = bCS;\r
+               bCheckEncrypt = bCE;\r
+               bMatchFileName = bFile;\r
+               bNegate = bNeg;\r
+       }\r
+\r
+       return TRUE;\r
+}\r
+\r
+static DlgMsgRes aRegexRes[] = {\r
+       { IDC_FILTERDEF_ADD_REGEX_LABEL,     MSG_ID_DLG_FILTERDEF_ADD_REGEX_FINDSTR },\r
+       { IDC_FILTERDEF_REGEX_CASESENSITIVE, MSG_ID_DLG_FILTERDEF_ADD_REGEX_CASESENSITIVE },\r
+       { IDC_FILTERDEF_REGEX_CRYPTMEMO,     MSG_ID_DLG_FILTERDEF_ADD_REGEX_INCLUDECRYPTED },\r
+       { IDC_FILTERDEF_REGEX_FILENAME,      MSG_ID_DLG_FILTERDEF_ADD_REGEX_FORFILENAME },\r
+       { IDC_FILTERDEF_REGEX_NEGATE,        MSG_ID_DLG_FILTERDEF_ADD_REGEX_EXCLUDE },\r
+       { IDOK,                              MSG_ID_DLG_CMN_OK },\r
+       { IDCANCEL,                          MSG_ID_DLG_CMN_CANCEL },\r
+};\r
+\r
+void RegexFilterAddDlg::InitDialog(HWND hDlg)\r
+{\r
+       OverrideDlgMsg(hDlg, MSG_ID_DLG_FILTERDEF_ADD_REGEX_TITLE, aRegexRes, sizeof(aRegexRes) / sizeof(DlgMsgRes));\r
+\r
+       HWND hSearchStr = GetDlgItem(hDlg, IDC_FILTERDEF_REGEX_SEARCHSTR);\r
+       LPCTSTR pHist = g_Property.GetSearchHist();\r
+       SetHistoryToComboBox(hSearchStr, pHist);\r
+\r
+       if (pMatchStr->Get() != NULL) {\r
+               SendMessage(hSearchStr, CB_INSERTSTRING, 0, (LPARAM)(pMatchStr->Get()));\r
+               SendMessage(hSearchStr, CB_SETCURSEL, 0, 0);\r
+\r
+               HWND hCS = GetDlgItem(hDlg, IDC_FILTERDEF_REGEX_CASESENSITIVE);\r
+               HWND hCE = GetDlgItem(hDlg, IDC_FILTERDEF_REGEX_CRYPTMEMO);\r
+               HWND hCF = GetDlgItem(hDlg, IDC_FILTERDEF_REGEX_FILENAME);\r
+               HWND hNg = GetDlgItem(hDlg, IDC_FILTERDEF_REGEX_NEGATE);\r
+\r
+               SendMessage(hCS, BM_SETCHECK, bCaseSensitive ? BST_CHECKED : BST_UNCHECKED, 0);\r
+               SendMessage(hCE, BM_SETCHECK, bCheckEncrypt ? BST_CHECKED : BST_UNCHECKED, 0);\r
+               SendMessage(hCF, BM_SETCHECK, bMatchFileName ? BST_CHECKED : BST_UNCHECKED, 0);\r
+               SendMessage(hNg, BM_SETCHECK, bNegate ? BST_CHECKED : BST_UNCHECKED, 0);\r
+       }\r
+}\r
+\r
+BOOL RegexFilterAddDlg::OnOK()\r
+{\r
+       HWND hSearchStr = GetDlgItem(hDialog, IDC_FILTERDEF_REGEX_SEARCHSTR);\r
+       HWND hCase = GetDlgItem(hDialog, IDC_FILTERDEF_REGEX_CASESENSITIVE);\r
+       HWND hEncrypt = GetDlgItem(hDialog, IDC_FILTERDEF_REGEX_CRYPTMEMO);\r
+       HWND hFilteTarget = GetDlgItem(hDialog, IDC_FILTERDEF_REGEX_FILENAME);\r
+       HWND hNegate = GetDlgItem(hDialog, IDC_FILTERDEF_REGEX_NEGATE);\r
+\r
+       DWORD nLen = GetWindowTextLength(hSearchStr);\r
+       if (!pMatchStr->Alloc(nLen + 1)) return FALSE;\r
+       GetWindowText(hSearchStr, pMatchStr->Get(), nLen + 1);\r
+       g_Property.SetSearchHist(GetHistoryFromComboBox(hSearchStr, pMatchStr->Get(), NUM_SEARCH_HISTORY));\r
+\r
+       bCaseSensitive = SendMessage(hCase, BM_GETCHECK, 0, 0) == BST_CHECKED;\r
+       bCheckEncrypt = SendMessage(hEncrypt, BM_GETCHECK, 0, 0) == BST_CHECKED;\r
+       bMatchFileName = SendMessage(hFilteTarget, BM_GETCHECK, 0, 0) == BST_CHECKED;\r
+       bNegate = SendMessage(hNegate, BM_GETCHECK, 0, 0) == BST_CHECKED;\r
+\r
+       return TRUE;\r
+}\r
+\r
+////////////////////////////////////////////////////////////////\r
+////////////////////////////////////////////////////////////////\r
+// Limit filter\r
+////////////////////////////////////////////////////////////////\r
+////////////////////////////////////////////////////////////////\r
+\r
+static DlgMsgRes aLimitRes[] = {\r
+       { IDC_FILTERDEF_ADD_LIMIT_ITEMS, MSG_ID_DLG_FILTERDEF_ADD_LIMIT_ITEMS },\r
+       { IDOK,                          MSG_ID_DLG_CMN_OK },\r
+       { IDCANCEL,                      MSG_ID_DLG_CMN_CANCEL },\r
+};\r
+\r
+void LimitFilterAddDlg::InitDialog(HWND hDlg)\r
+{\r
+       OverrideDlgMsg(hDlg, MSG_ID_DLG_FILTERDEF_ADD_LIMIT_TITLE, aLimitRes, sizeof(aLimitRes) / sizeof(DlgMsgRes));\r
+       if (nLimit != 0) {\r
+               TCHAR buf[32];\r
+               HWND hNumLimit = GetDlgItem(hDlg, IDC_FILTERDEF_LIMIT_NUMLIMIT);\r
+               _stprintf(buf, TEXT("%d"), nLimit);\r
+               SetWindowText(hNumLimit, buf);\r
+       }\r
+}\r
+\r
+BOOL LimitFilterAddDlg::OnOK()\r
+{\r
+       HWND hNumLimit = GetDlgItem(hDialog, IDC_FILTERDEF_LIMIT_NUMLIMIT);\r
+       \r
+       TCHAR buf[32];\r
+       GetWindowText(hNumLimit, buf, 32);\r
+       int iNum = _ttoi(buf);\r
+       if (iNum <= 0) {\r
+               MessageBox(hDialog, MSG_SET_POSITIVE, TOMBO_APP_NAME, MB_OK | MB_ICONWARNING);\r
+               return FALSE;\r
+       }\r
+       nLimit = iNum;\r
+       return TRUE;\r
+}\r
+\r
+////////////////////////////////////////////////////////////////\r
+////////////////////////////////////////////////////////////////\r
+// Timestamp filter\r
+////////////////////////////////////////////////////////////////\r
+////////////////////////////////////////////////////////////////\r
+BOOL TimestampFilterAddDlg::Init(DWORD nD, BOOL b)\r
+{\r
+       nDeltaDays = nD;\r
+       bNewer = b;\r
+       return TRUE;\r
+}\r
+\r
+static DlgMsgRes aTimestampRes[] = {\r
+       { IDC_FILTERDEF_ADD_TIMESTAMP_BASEPOINT, MSG_ID_DLG_FILTERDEF_ADD_TIMESTAMP_BASETIME },\r
+       { IDC_FILTERDEF_TS_NEWER,                MSG_ID_DLG_FILTERDEF_ADD_TIMESTAMP_NEWER },\r
+       { IDC_FILTERDEF_TS_OLDER,                MSG_ID_DLG_FILTERDEF_ADD_TIMESTAMP_OLDER },\r
+       { IDOK,                                  MSG_ID_DLG_CMN_OK },\r
+       { IDCANCEL,                              MSG_ID_DLG_CMN_CANCEL },\r
+};\r
+\r
+void TimestampFilterAddDlg::InitDialog(HWND hDlg)\r
+{\r
+       OverrideDlgMsg(hDlg, MSG_ID_DLG_FILTERDEF_ADD_TIMESTAMP_TITLE, aTimestampRes, sizeof(aTimestampRes)/sizeof(DlgMsgRes));\r
+\r
+       HWND hNewer = GetDlgItem(hDlg, IDC_FILTERDEF_TS_NEWER);\r
+\r
+       if (nDeltaDays == 0) {\r
+               SendMessage(hNewer, BM_SETCHECK, BST_CHECKED, 0);\r
+       } else {\r
+               HWND hDelta = GetDlgItem(hDialog, IDC_FILTERDEF_TS_DELTADAY);\r
+               TCHAR buf[32];\r
+               _stprintf(buf, TEXT("%d"), nDeltaDays);\r
+               SetWindowText(hDelta, buf);\r
+               if (bNewer) {\r
+                       SendMessage(hNewer, BM_SETCHECK, BST_CHECKED, 0);\r
+               } else {\r
+                       HWND hOlder = GetDlgItem(hDlg, IDC_FILTERDEF_TS_OLDER);\r
+                       SendMessage(hOlder, BM_SETCHECK, BST_CHECKED, 0);\r
+               }\r
+       }\r
+}\r
+\r
+BOOL TimestampFilterAddDlg::OnOK()\r
+{\r
+       // get day\r
+       HWND hDelta = GetDlgItem(hDialog, IDC_FILTERDEF_TS_DELTADAY);\r
+       TCHAR buf[32];\r
+       GetWindowText(hDelta, buf, 32);\r
+       int iNum = _ttoi(buf);\r
+       if (iNum <= 0) {\r
+               MessageBox(hDialog, MSG_SET_POSITIVE, TOMBO_APP_NAME, MB_OK | MB_ICONWARNING);\r
+               return FALSE;\r
+       }\r
+       nDeltaDays = iNum;\r
+\r
+       // get mode\r
+       HWND hNewer = GetDlgItem(hDialog, IDC_FILTERDEF_TS_NEWER);\r
+       bNewer = SendMessage(hNewer, BM_GETCHECK, 0, 0) == BST_CHECKED;\r
+\r
+       return TRUE;\r
+}\r
+\r
+////////////////////////////////////////////////////////////////\r
+////////////////////////////////////////////////////////////////\r
+// Sort filter\r
+////////////////////////////////////////////////////////////////\r
+////////////////////////////////////////////////////////////////\r
+\r
+static DlgMsgRes aSortRes[] = {\r
+       { IDC_FILTERDEF_ADD_SORT_LABEL, MSG_ID_DLG_FILTERDEF_ADD_SORT_METHOD },\r
+       { IDOK,                         MSG_ID_DLG_CMN_OK },\r
+       { IDCANCEL,                     MSG_ID_DLG_CMN_CANCEL },\r
+};\r
+\r
+void SortFilterAddDlg::InitDialog(HWND hDlg)\r
+{\r
+       OverrideDlgMsg(hDlg, MSG_ID_DLG_FILTERDEF_ADD_SORT_TITLE, aSortRes, sizeof(aSortRes)/sizeof(DlgMsgRes));\r
+\r
+       HWND hSortType = GetDlgItem(hDlg, IDC_FILTERDEF_SORT_TYPE);\r
+       SendMessage(hSortType, CB_ADDSTRING, 0, (LPARAM)MSG_STREAM_VALUE_SORT_FNAME_ASC);\r
+       SendMessage(hSortType, CB_ADDSTRING, 0, (LPARAM)MSG_STREAM_VALUE_SORT_FNAME_DSC);\r
+       SendMessage(hSortType, CB_ADDSTRING, 0, (LPARAM)MSG_STREAM_VALUE_SORT_LASTUPD_ASC);\r
+       SendMessage(hSortType, CB_ADDSTRING, 0, (LPARAM)MSG_STREAM_VALUE_SORT_LASTUPD_DSC);\r
+       SendMessage(hSortType, CB_ADDSTRING, 0, (LPARAM)MSG_STREAM_VALUE_SORT_CREATE_ASC);\r
+       SendMessage(hSortType, CB_ADDSTRING, 0, (LPARAM)MSG_STREAM_VALUE_SORT_CREATE_DSC);\r
+       SendMessage(hSortType, CB_ADDSTRING, 0, (LPARAM)MSG_STREAM_VALUE_SORT_FILESIZE_ASC);\r
+       SendMessage(hSortType, CB_ADDSTRING, 0, (LPARAM)MSG_STREAM_VALUE_SORT_FILESIZE_DSC);\r
+\r
+       DWORD n;\r
+       switch (sfType) {\r
+       case VFSortFilter::SortFunc_FileNameAsc:        n = 0; break;\r
+       case VFSortFilter::SortFunc_FileNameDsc:        n = 1; break;\r
+       case VFSortFilter::SortFunc_LastUpdateAsc:      n = 2; break;\r
+       case VFSortFilter::SortFunc_LastUpdateDsc:      n = 3; break;\r
+       case VFSortFilter::SortFunc_CreateDateAsc:      n = 4; break;\r
+       case VFSortFilter::SortFunc_CreateDateDsc:      n = 5; break;\r
+       case VFSortFilter::SortFunc_FileSizeAsc:        n = 6; break;\r
+       case VFSortFilter::SortFunc_FileSizeDsc:        n = 7; break;\r
+       default:\r
+               n = 0;\r
+       }\r
+\r
+       SendMessage(hSortType, CB_SETCURSEL, n, 0);\r
+}\r
+\r
+#define NUM_SOFTFILTER_SORT_TYPE 8\r
+\r
+static VFSortFilter::SortFuncType sfComboList[NUM_SOFTFILTER_SORT_TYPE] = {\r
+       VFSortFilter::SortFunc_FileNameAsc,\r
+       VFSortFilter::SortFunc_FileNameDsc,\r
+       VFSortFilter::SortFunc_LastUpdateAsc,\r
+       VFSortFilter::SortFunc_LastUpdateDsc,\r
+       VFSortFilter::SortFunc_CreateDateAsc,\r
+       VFSortFilter::SortFunc_CreateDateDsc,\r
+       VFSortFilter::SortFunc_FileSizeAsc,\r
+       VFSortFilter::SortFunc_FileSizeDsc\r
+\r
+};\r
+\r
+BOOL SortFilterAddDlg::OnOK()\r
+{\r
+       HWND hSortType = GetDlgItem(hDialog, IDC_FILTERDEF_SORT_TYPE);\r
+       DWORD n = SendMessage(hSortType, CB_GETCURSEL, 0, 0);\r
+       if (n >= NUM_SOFTFILTER_SORT_TYPE) {\r
+               sfType = VFSortFilter::SortFunc_Unknown;\r
+       } else {\r
+               sfType = sfComboList[n];\r
+       }\r
+       return TRUE;\r
+}
\ No newline at end of file
diff --git a/Src/FilterAddDlg.h b/Src/FilterAddDlg.h
new file mode 100644 (file)
index 0000000..fc32bc8
--- /dev/null
@@ -0,0 +1,106 @@
+#ifndef FILTERADDDLG_H\r
+#define FILTERADDDLG_H\r
+\r
+class TString;\r
+\r
+////////////////////////////////////////////////////////////////\r
+// Regex filter\r
+////////////////////////////////////////////////////////////////\r
+\r
+class RegexFilterAddDlg : public Tombo_Lib::DialogTemplate {\r
+       TString *pMatchStr;\r
+       BOOL bCaseSensitive;\r
+       BOOL bCheckEncrypt;\r
+       BOOL bMatchFileName;\r
+       BOOL bNegate;\r
+\r
+public:\r
+       ~RegexFilterAddDlg();\r
+       BOOL Init(LPCTSTR pMatch = NULL, \r
+                               BOOL bCS = FALSE, BOOL bCE = FALSE, \r
+                               BOOL bFile = FALSE, BOOL bNeg = FALSE);\r
+\r
+       void InitDialog(HWND hDlg);\r
+       BOOL OnOK();\r
+\r
+       DWORD Popup(HINSTANCE hInst, HWND hParent) {\r
+               return DialogTemplate::Popup(hInst, IDD_FILTERDEF_ADD_REGEX, hParent);\r
+       }\r
+\r
+       ////////////////////////////\r
+       // Accessor\r
+       TString *GetMatchString() { return pMatchStr; }\r
+       BOOL IsCaseSensitive() { return bCaseSensitive; }\r
+       BOOL IsCheckEncrypt() { return bCheckEncrypt; }\r
+       BOOL IsCheckFileName() { return bMatchFileName; }\r
+       BOOL IsNegate() { return bNegate; }\r
+};\r
+\r
+////////////////////////////////////////////////////////////////\r
+// Regex filter\r
+////////////////////////////////////////////////////////////////\r
+\r
+class LimitFilterAddDlg : public Tombo_Lib::DialogTemplate {\r
+       DWORD nLimit;\r
+public:\r
+       LimitFilterAddDlg() : nLimit(0) {}\r
+       BOOL Init(DWORD n = 0) { nLimit = n; return TRUE; }\r
+\r
+       void InitDialog(HWND hDlg);\r
+       BOOL OnOK();\r
+\r
+       DWORD Popup(HINSTANCE hInst, HWND hParent) {\r
+               return DialogTemplate::Popup(hInst, IDD_FILTERDEF_ADD_LIMIT, hParent);\r
+       }\r
+\r
+       ////////////////////////////\r
+       // Accessor\r
+       DWORD GetLimit() { return nLimit; }\r
+};\r
+\r
+////////////////////////////////////////////////////////////////\r
+// Timestamp filter\r
+////////////////////////////////////////////////////////////////\r
+\r
+class TimestampFilterAddDlg : public Tombo_Lib::DialogTemplate {\r
+       DWORD nDeltaDays;\r
+       BOOL bNewer;\r
+public:\r
+       TimestampFilterAddDlg() : nDeltaDays(0), bNewer(FALSE) {}\r
+       BOOL Init(DWORD nDelta = 0, BOOL bNew = FALSE);\r
+\r
+       void InitDialog(HWND hDlg);\r
+       BOOL OnOK();\r
+\r
+       DWORD Popup(HINSTANCE hInst, HWND hParent) {\r
+               return DialogTemplate::Popup(hInst, IDD_FILTERDEF_ADD_TIMESTAMP, hParent);\r
+       }\r
+\r
+       ////////////////////////////\r
+       // Accessor\r
+       DWORD GetDeltaDay() { return nDeltaDays; }\r
+       BOOL IsNewer() { return bNewer; }\r
+\r
+};\r
+\r
+////////////////////////////////////////////////////////////////\r
+// Sort filter\r
+////////////////////////////////////////////////////////////////\r
+\r
+class SortFilterAddDlg : public Tombo_Lib::DialogTemplate {\r
+       VFSortFilter::SortFuncType sfType;\r
+public:\r
+       BOOL Init(VFSortFilter::SortFuncType sf = VFSortFilter::SortFunc_Unknown) { sfType = sf; return TRUE; }\r
+\r
+       void InitDialog(HWND hDlg);\r
+       BOOL OnOK();\r
+\r
+       DWORD Popup(HINSTANCE hInst, HWND hParent) {\r
+               return DialogTemplate::Popup(hInst, IDD_FILTERDEF_ADD_SORT, hParent);\r
+       }\r
+\r
+       VFSortFilter::SortFuncType GetType() { return sfType; }\r
+\r
+};\r
+\r
+#endif
\ No newline at end of file
diff --git a/Src/FilterCtlDlg.cpp b/Src/FilterCtlDlg.cpp
new file mode 100644 (file)
index 0000000..ca71d35
--- /dev/null
@@ -0,0 +1,548 @@
+#include <windows.h>\r
+#include <commctrl.h>\r
+#include <tchar.h>\r
+\r
+#include "resource.h"\r
+#include "Tombo.h"\r
+#include "Message.h"\r
+#include "TString.h"\r
+#include "UniConv.h"\r
+#include "TreeViewItem.h"\r
+#include "MemoSelectView.h"\r
+#include "FilterCtlDlg.h"\r
+#include "VFManager.h"\r
+#include "VFStream.h"\r
+#include "FilterDefDlg.h"\r
+#include "DialogTemplate.h"\r
+\r
+extern HINSTANCE g_hInstance;\r
+\r
+static LRESULT CALLBACK FilterCtlDlgProc(HWND hDlg, UINT message, WPARAM wParam, LPARAM lParam);\r
+\r
+/////////////////////////////////////////\r
+// initialize\r
+/////////////////////////////////////////\r
+\r
+\r
+BOOL FilterCtlDlg::Init(MemoSelectView *p, VFManager *pMgr)\r
+{\r
+       pManager = pMgr;\r
+       pView = p;\r
+       return TRUE;\r
+}\r
+\r
+/////////////////////////////////////////\r
+// entry point\r
+/////////////////////////////////////////\r
+\r
+DWORD FilterCtlDlg::Popup(HINSTANCE hInst, HWND hParent, HIMAGELIST hImgList)\r
+{\r
+       hImageList = hImgList;\r
+       return DialogBoxParam(hInst, MAKEINTRESOURCE(IDD_FILTERCTL), hParent, (DLGPROC)FilterCtlDlgProc, (LONG)this);\r
+}\r
+\r
+/////////////////////////////////////////\r
+// Initialize dialog\r
+/////////////////////////////////////////\r
+\r
+class FilterAddListener : public VirtualFolderEnumListener {\r
+public:\r
+       DWORD nCount;\r
+       LV_ITEM *pItem;\r
+       HWND hListView;\r
+\r
+       DWORD nNKPos;\r
+\r
+       BOOL ProcessStream(LPCTSTR pName, BOOL bPersit, VFDirectoryGenerator *pGen, VFStore *pStore);\r
+};\r
+\r
+BOOL FilterAddListener::ProcessStream(LPCTSTR pName, BOOL bPersist, VFDirectoryGenerator *pGen, VFStore *pStore)\r
+{\r
+       // create lParam;\r
+       VFInfo *pInfo = new VFInfo();\r
+       if (!pInfo) return FALSE;\r
+       \r
+       pInfo->pName = StringDup(pName);\r
+       if (pInfo->pName == NULL) return FALSE;\r
+       pInfo->bPersist = bPersist;\r
+       pInfo->pGenerator = pGen;\r
+       pInfo->pStore = pStore;\r
+\r
+       pItem->iItem = nCount++;\r
+       pItem->cchTextMax = _tcslen(pName);\r
+       pItem->pszText = (LPTSTR)pName;\r
+       pItem->lParam = (LPARAM)pInfo;\r
+       if (bPersist) {\r
+               pItem->iImage = VFOLDER_IMAGE_PERSIST;\r
+       } else {\r
+               if (nNKPos == 0xFFFFFFFF) {\r
+                       nNKPos = nCount - 1;\r
+               }\r
+               pItem->iImage = VFOLDER_IMAGE_TEMP;\r
+       }\r
+       ListView_InsertItem(hListView, pItem);\r
+       return TRUE;\r
+}\r
+\r
+static DlgMsgRes aDlgMsgRes[] = {\r
+       { IDC_FILTERCTL_UP,     MSG_ID_DLG_FILTERCTL_UP },\r
+       { IDC_FILTERCTL_DOWN,   MSG_ID_DLG_FILTERCTL_DOWN },\r
+       { IDC_FILTERCTL_KEEP,   MSG_ID_DLG_FILTERCTL_KEEP },\r
+       { IDC_FILTERCTL_NEW,    MSG_ID_DLG_FILTERCTL_NEW },\r
+       { IDC_FILTERCTL_RENAME, MSG_ID_DLG_FILTERCTL_RENAME },\r
+       { IDC_FILTERCTL_DELETE, MSG_ID_DLG_FILTERCTL_DELETE },\r
+       { IDOK,                 MSG_ID_DLG_CMN_OK },\r
+       { IDCANCEL,             MSG_ID_DLG_CMN_CANCEL },\r
+};\r
+\r
+void FilterCtlDlg::InitDialog(HWND hDlg)\r
+{\r
+       OverrideDlgMsg(hDlg, MSG_ID_DLG_FILTERCTL_TITLE, aDlgMsgRes, sizeof(aDlgMsgRes)/sizeof(DlgMsgRes));\r
+\r
+       HWND hList = GetDlgItem(hDlg, IDC_FILTERCTL_LIST);\r
+\r
+       ListView_SetImageList(hList, hImageList, LVSIL_SMALL);\r
+\r
+       /////////////////////////////////////////\r
+       // Insert column headers\r
+\r
+       LV_COLUMN lvc;\r
+       lvc.mask = LVCF_FMT | LVCF_WIDTH | LVCF_TEXT;\r
+       lvc.fmt = LVCFMT_LEFT;\r
+       lvc.cx = 200;\r
+       lvc.pszText = (LPTSTR)MSG_VFOLDER_NAME_TTL;\r
+       ListView_InsertColumn(hList, 0, &lvc);\r
+\r
+       /////////////////////////////////////////\r
+       // Insert current items\r
+\r
+       LVITEM li;\r
+       li.mask = LVIF_TEXT | LVIF_IMAGE | LVIF_PARAM;\r
+       li.iSubItem = 0;\r
+       DWORD i = 0;\r
+\r
+       FilterAddListener fal;\r
+       fal.nCount = 0;\r
+       fal.hListView = hList;\r
+       fal.pItem = &li;\r
+       fal.nNKPos = 0xFFFFFFFF;\r
+\r
+       pManager->Enum(&fal);\r
+       if (fal.nNKPos == 0xFFFFFFFF) {\r
+               nNotKeepPos = fal.nCount;\r
+       } else {\r
+               nNotKeepPos = fal.nNKPos;\r
+       }\r
+\r
+       HWND hSave = GetDlgItem(hDlg, IDC_FILTERCTL_KEEP);\r
+       HWND hUp = GetDlgItem(hDlg, IDC_FILTERCTL_UP);\r
+       HWND hDown = GetDlgItem(hDlg, IDC_FILTERCTL_DOWN);\r
+\r
+       EnableWindow(hSave, FALSE);\r
+       EnableWindow(hUp, FALSE);\r
+       EnableWindow(hDown, FALSE);\r
+}\r
+\r
+/////////////////////////////////////////\r
+// destroy dialog\r
+/////////////////////////////////////////\r
+\r
+void FilterCtlDlg::DestroyDialog(HWND hDlg, int iResult)\r
+{\r
+       // prevent removing imagelist\r
+       HWND hList = GetDlgItem(hDlg, IDC_FILTERCTL_LIST);\r
+       ListView_SetImageList(hList, NULL, LVSIL_SMALL);\r
+\r
+       // release items\r
+       int n = ListView_GetItemCount(hList);\r
+       int i;\r
+       LV_ITEM li;\r
+       VFInfo *pInfo;\r
+       li.mask = LVIF_PARAM;\r
+       for (i = 0; i < n; i++) {\r
+               li.iItem = i;\r
+               ListView_GetItem(hList, &li);\r
+               pInfo = (VFInfo*)li.lParam;\r
+               pInfo->Release();\r
+               delete pInfo;\r
+       }\r
+\r
+       EndDialog(hDlg, iResult);\r
+}\r
+\r
+/////////////////////////////////////////\r
+// Update virtual folder definitions\r
+/////////////////////////////////////////\r
+\r
+BOOL FilterCtlDlg::OnOK(HWND hDlg)\r
+{\r
+       HWND hList = GetDlgItem(hDlg, IDC_FILTERCTL_LIST);\r
+\r
+       int n = ListView_GetItemCount(hList);\r
+       VFInfo **ppInfoArray = new VFInfo*[n];\r
+       if (!ppInfoArray) return TRUE;\r
+\r
+       int i;\r
+       LV_ITEM li;\r
+       VFInfo *pInfo;\r
+       li.mask = LVIF_PARAM;\r
+       for (i = 0; i < n; i++) {\r
+               li.iItem = i;\r
+               ListView_GetItem(hList, &li);\r
+               pInfo = (VFInfo*)li.lParam;\r
+               ppInfoArray[i] = pInfo;\r
+       }\r
+       pManager->UpdateVirtualFolders(ppInfoArray, n);\r
+       return TRUE;\r
+}\r
+\r
+/////////////////////////////////////////\r
+// Delete node from listview\r
+/////////////////////////////////////////\r
+\r
+void FilterCtlDlg::DeleteSelectedItem(HWND hDlg)\r
+{\r
+       HWND hList = GetDlgItem(hDlg, IDC_FILTERCTL_LIST);\r
+\r
+       int iSel = ListView_GetNextItem(hList, -1, LVNI_SELECTED);\r
+       if (iSel < 0 ) return;\r
+\r
+       if (MessageBox(hDlg, MSG_CONFIRM_DEL_VFOLDER, MSG_DEL_VFOLDER_TTL, MB_YESNO | MB_ICONQUESTION) != IDYES) return;\r
+\r
+       LVITEM li;\r
+       li.mask = LVIF_PARAM;\r
+       li.iItem = iSel;\r
+       li.iSubItem = 0;\r
+       ListView_GetItem(hList, &li);\r
+       VFInfo *pInfo = (VFInfo*)li.lParam;\r
+\r
+       pInfo->Release();\r
+       delete pInfo;\r
+       ListView_DeleteItem(hList, iSel);\r
+}\r
+\r
+/////////////////////////////////////////\r
+// "Save" checkbox\r
+/////////////////////////////////////////\r
+\r
+void FilterCtlDlg::Command_ToggleKeep(HWND hDlg)\r
+{\r
+       HWND hList = GetDlgItem(hDlg, IDC_FILTERCTL_LIST);\r
+       HWND hSave = GetDlgItem(hDlg, IDC_FILTERCTL_KEEP);\r
+\r
+\r
+       int iSel = ListView_GetNextItem(hList, -1, LVNI_SELECTED);\r
+       LVITEM li;\r
+       li.mask = LVIF_PARAM;\r
+       li.iItem = iSel;\r
+       li.iSubItem = 0;\r
+       ListView_GetItem(hList, &li);\r
+       VFInfo *pInfo = (VFInfo*)li.lParam;\r
+\r
+       li.mask = LVIF_IMAGE | LVIF_TEXT | LVIF_PARAM | LVIF_STATE;\r
+       li.pszText = pInfo->pName;\r
+       li.cchTextMax = _tcslen(pInfo->pName);\r
+       li.lParam = (LPARAM)pInfo;\r
+       li.state =      LVIS_FOCUSED | LVIS_SELECTED;\r
+\r
+       if (SendMessage(hSave, BM_GETCHECK, 0, 0) == BST_CHECKED) {\r
+               pInfo->bPersist = TRUE;\r
+       \r
+               ListView_DeleteItem(hList, iSel);\r
+               li.iImage = 8;\r
+               li.iItem = nNotKeepPos++;\r
+       } else {\r
+               pInfo->bPersist = FALSE;\r
+\r
+               ListView_DeleteItem(hList, iSel);\r
+               li.iImage = 6;\r
+               li.iItem = --nNotKeepPos;\r
+       }\r
+       ListView_InsertItem(hList, &li);\r
+}\r
+\r
+/////////////////////////////////////////\r
+// "Up"/"Down" button\r
+/////////////////////////////////////////\r
+\r
+BOOL FilterCtlDlg::Command_UpDown(HWND hDlg, int delta)\r
+{\r
+       HWND hList = GetDlgItem(hDlg, IDC_FILTERCTL_LIST);\r
+       int iSel = ListView_GetNextItem(hList, -1, LVNI_SELECTED);\r
+\r
+       if (iSel < 0) return TRUE;\r
+\r
+       LVITEM li;\r
+       li.mask = LVIF_STATE | LVIF_IMAGE | LVIF_PARAM;\r
+       li.iItem = iSel;\r
+       li.iSubItem = 0;\r
+       ListView_GetItem(hList, &li);\r
+\r
+       VFInfo *pInfo = (VFInfo*)li.lParam;\r
+\r
+       ListView_DeleteItem(hList, iSel);\r
+\r
+       li.iItem = iSel + delta;\r
+       li.mask |= LVIF_TEXT;\r
+       li.pszText = pInfo->pName;\r
+       li.cchTextMax = _tcslen(pInfo->pName);\r
+       li.state =      LVIS_FOCUSED | LVIS_SELECTED;\r
+       ListView_InsertItem(hList, &li);\r
+\r
+       SetFocus(hList);\r
+       return TRUE;\r
+}\r
+\r
+/////////////////////////////////////////\r
+// "New" button\r
+/////////////////////////////////////////\r
+\r
+void FilterCtlDlg::Command_New(HWND hDlg)\r
+{\r
+       // Create empty VFInfo\r
+       VFInfo *pInfo = new VFInfo();\r
+       if (!pInfo ||\r
+               !(pInfo->pGenerator = new VFDirectoryGenerator()) ||\r
+               !pInfo->pGenerator->Init(TEXT(""), FALSE) ||\r
+               !(pInfo->pStore = new VFStore()) ||\r
+               !pInfo->pStore->Init()) {\r
+               MessageBox(hDlg, MSG_NOT_ENOUGH_MEMORY, TOMBO_APP_NAME, MB_OK | MB_ICONERROR);\r
+               if (pInfo) {\r
+                       delete pInfo->pGenerator;\r
+                       delete pInfo->pStore;\r
+\r
+               }\r
+               delete pInfo;\r
+               return;\r
+       }\r
+       pInfo->pGenerator->SetNext(pInfo->pStore);\r
+\r
+       // Popup dialog\r
+       FilterDefDlg fd;\r
+       fd.Init();\r
+       if (fd.Popup(g_hInstance, hDlg, pInfo, TRUE) == IDOK) {\r
+               // Assign name to virtual folder\r
+               pInfo->pName = pManager->GetNodeName();\r
+               if (pInfo->pName == NULL) {\r
+                       MessageBox(hDlg, MSG_NOT_ENOUGH_MEMORY, TOMBO_APP_NAME, MB_OK | MB_ICONERROR);\r
+                       pInfo->Release();\r
+                       delete pInfo;\r
+                       return;\r
+               }\r
+               pInfo->bPersist = TRUE;\r
+\r
+               // Insert to list\r
+               HWND hList = GetDlgItem(hDlg, IDC_FILTERCTL_LIST);\r
+               LVITEM li;\r
+               li.mask = LVIF_STATE | LVIF_TEXT | LVIF_PARAM | LVIF_IMAGE;\r
+               li.iItem = ListView_GetItemCount(hList);\r
+               li.iSubItem = 0;\r
+               li.state =      LVIS_FOCUSED | LVIS_SELECTED;\r
+               li.pszText = pInfo->pName;\r
+               li.cchTextMax = _tcslen(pInfo->pName);\r
+               li.lParam = (LPARAM)pInfo;\r
+               li.iImage = VFOLDER_IMAGE_PERSIST;\r
+\r
+               int idx = ListView_InsertItem(hList, &li);\r
+               BOOL bX = ListView_EnsureVisible(hList, idx, TRUE);\r
+\r
+       } else {\r
+               pInfo->Release();\r
+               delete pInfo;\r
+       }\r
+\r
+}\r
+\r
+/////////////////////////////////////////\r
+// "Delete" button\r
+/////////////////////////////////////////\r
+\r
+void FilterCtlDlg::Command_Delete(HWND hDlg)\r
+{\r
+       DeleteSelectedItem(hDlg);\r
+}\r
+\r
+/////////////////////////////////////////\r
+// "Rename" button\r
+/////////////////////////////////////////\r
+\r
+void FilterCtlDlg::Command_Rename(HWND hDlg)\r
+{\r
+       HWND hList = GetDlgItem(hDlg, IDC_FILTERCTL_LIST);\r
+       int iSel = ListView_GetNextItem(hList, -1, LVNI_SELECTED);\r
+\r
+       if (iSel < 0) return;\r
+\r
+       SetFocus(hList);\r
+       ListView_EditLabel(hList, iSel);\r
+}\r
+\r
+/////////////////////////////////////////\r
+// WM_NOTIFY handler\r
+/////////////////////////////////////////\r
+\r
+BOOL FilterCtlDlg::OnNotify(HWND hDlg, WPARAM wParam, LPARAM lParam)\r
+{\r
+       NMHDR *pHdr = (NMHDR*)lParam;\r
+       if (pHdr->code == LVN_ITEMCHANGED) {\r
+               return Notify_ItemChanged(hDlg, lParam);\r
+       }\r
+       if (pHdr->code == LVN_ENDLABELEDIT) {\r
+               return Notify_EndLabelEdit(hDlg, lParam);\r
+       }\r
+       if (pHdr->code == LVN_KEYDOWN) {\r
+               return Notify_Keydown(hDlg, lParam);\r
+       }\r
+       if (pHdr->code == NM_DBLCLK) {\r
+               return Notify_DblClick(hDlg, lParam);\r
+       }\r
+       return TRUE;\r
+}\r
+\r
+/////////////////////////////////////////\r
+// LVN_ITEMCHANGED\r
+/////////////////////////////////////////\r
+BOOL FilterCtlDlg::Notify_ItemChanged(HWND hDlg, LPARAM lParam)\r
+{\r
+       NMHDR *pHdr = (NMHDR*)lParam;\r
+       NMLISTVIEW *pLv = (NMLISTVIEW*)lParam;\r
+       if (pLv->uNewState & LVIS_FOCUSED) {\r
+               VFInfo *pInfo = (VFInfo*)pLv->lParam;\r
+\r
+               HWND hSave = GetDlgItem(hDlg, IDC_FILTERCTL_KEEP);\r
+               HWND hUp = GetDlgItem(hDlg, IDC_FILTERCTL_UP);\r
+               HWND hDown = GetDlgItem(hDlg, IDC_FILTERCTL_DOWN);\r
+\r
+               EnableWindow(hSave, TRUE);\r
+               SendMessage(hSave, BM_SETCHECK, pInfo->bPersist ? BST_CHECKED : BST_UNCHECKED, 0);\r
+\r
+               EnableWindow(hUp, pLv->iItem > 0);\r
+               EnableWindow(hDown, pLv->iItem < ListView_GetItemCount(pHdr->hwndFrom) - 1);\r
+       }\r
+       return TRUE;\r
+}\r
+\r
+/////////////////////////////////////////\r
+// LVN_ENDLABELEDIT\r
+/////////////////////////////////////////\r
+\r
+BOOL FilterCtlDlg::Notify_EndLabelEdit(HWND hDlg, LPARAM lParam)\r
+{\r
+       NMLVDISPINFO *pDi = (NMLVDISPINFO*)lParam;\r
+       NMHDR *pHdr = (NMHDR*)lParam;\r
+       VFInfo *pInfo = (VFInfo*)(pDi->item.lParam);\r
+\r
+       if (pDi->item.pszText == NULL) return FALSE;\r
+\r
+       delete [] pInfo->pName;\r
+       pInfo->pName = StringDup(pDi->item.pszText);\r
+       ListView_SetItem(pHdr->hwndFrom, &(pDi->item));\r
+       return TRUE;\r
+}\r
+\r
+/////////////////////////////////////////\r
+// NMKEYDOWN\r
+/////////////////////////////////////////\r
+\r
+BOOL FilterCtlDlg::Notify_Keydown(HWND hDlg, LPARAM lParam)\r
+{\r
+       NMHDR *pHdr = (NMHDR*)lParam;\r
+       NMLVKEYDOWN *pKd = (NMLVKEYDOWN*)lParam;\r
+       if (pKd->wVKey != VK_DELETE) return TRUE;\r
+\r
+       DeleteSelectedItem(hDlg);\r
+       return TRUE;\r
+}\r
+\r
+/////////////////////////////////////////\r
+// NMDBLCLK\r
+/////////////////////////////////////////\r
+\r
+BOOL FilterCtlDlg::Notify_DblClick(HWND hDlg, LPARAM lParam)\r
+{\r
+       NMLISTVIEW* pLv = (NMLISTVIEW*)lParam;\r
+       HWND hList = GetDlgItem(hDlg, IDC_FILTERCTL_LIST);\r
+\r
+       // get base info\r
+       int iSel = ListView_GetNextItem(hList, -1, LVNI_SELECTED);\r
+       if (iSel < 0 ) return TRUE;\r
+       LVITEM li;\r
+       li.mask = LVIF_PARAM;\r
+       li.iItem = iSel;\r
+       li.iSubItem = 0;\r
+       ListView_GetItem(hList, &li);\r
+       VFInfo *pInfoMaster = (VFInfo*)li.lParam;\r
+\r
+       // copy VFInfo for update\r
+       VFInfo *pInfoUpd = pInfoMaster->Clone();        \r
+       if (pInfoUpd == NULL) return FALSE;\r
+       // popup dialog\r
+       FilterDefDlg fd;\r
+       fd.Init();\r
+       if (fd.Popup(g_hInstance, hDlg, pInfoUpd, FALSE) == IDOK) {\r
+               li.lParam = (LPARAM)pInfoUpd;\r
+               ListView_SetItem(hList, &li);\r
+\r
+               pInfoMaster->Release();\r
+               delete pInfoMaster;\r
+\r
+       } else {\r
+               pInfoUpd->Release();\r
+               delete pInfoUpd;\r
+       }\r
+       return TRUE;\r
+}\r
+\r
+/////////////////////////////////////////\r
+// Dialog procedure\r
+/////////////////////////////////////////\r
+\r
+static LRESULT CALLBACK FilterCtlDlgProc(HWND hDlg, UINT nMessage, WPARAM wParam, LPARAM lParam)\r
+{\r
+       FilterCtlDlg *pDlg;\r
+       if (nMessage == WM_INITDIALOG) {\r
+               SetWindowLong(hDlg, DWL_USER, lParam);\r
+               pDlg = (FilterCtlDlg*)lParam;\r
+\r
+               pDlg->InitDialog(hDlg);\r
+               return TRUE;\r
+       }\r
+       pDlg = (FilterCtlDlg*)GetWindowLong(hDlg, DWL_USER);\r
+       if (pDlg == NULL) return FALSE;\r
+\r
+       switch(nMessage) {\r
+       case WM_COMMAND:\r
+               switch (wParam) {\r
+               case IDOK:\r
+                       if (pDlg->OnOK(hDlg)) {\r
+                               pDlg->DestroyDialog(hDlg, IDOK);\r
+                       }\r
+                       break;\r
+               case IDCANCEL:\r
+                       pDlg->DestroyDialog(hDlg, IDCANCEL);\r
+                       break;\r
+               case IDC_FILTERCTL_KEEP:\r
+                       pDlg->Command_ToggleKeep(hDlg);\r
+                       break;\r
+               case IDC_FILTERCTL_UP:\r
+                       pDlg->Command_UpDown(hDlg, -1);\r
+                       break;\r
+               case IDC_FILTERCTL_DOWN:\r
+                       pDlg->Command_UpDown(hDlg, 1);\r
+                       break;\r
+               case IDC_FILTERCTL_NEW:\r
+                       pDlg->Command_New(hDlg);\r
+                       break;\r
+               case IDC_FILTERCTL_DELETE:\r
+                       pDlg->Command_Delete(hDlg);\r
+                       break;\r
+               case IDC_FILTERCTL_RENAME:\r
+                       pDlg->Command_Rename(hDlg);\r
+                       break;\r
+               }\r
+               return TRUE;\r
+       case WM_NOTIFY:\r
+               return pDlg->OnNotify(hDlg, wParam, lParam);\r
+       }\r
+       return FALSE;\r
+}\r
diff --git a/Src/FilterCtlDlg.h b/Src/FilterCtlDlg.h
new file mode 100644 (file)
index 0000000..5d85b5e
--- /dev/null
@@ -0,0 +1,40 @@
+#ifndef FILTERCTLDLG_H\r
+#define FILTERCTLDLG_H\r
+\r
+class MemoSelectView;\r
+class VFManager;\r
+\r
+class FilterCtlDlg {\r
+       HIMAGELIST hImageList;\r
+       MemoSelectView *pView;\r
+       VFManager *pManager;\r
+\r
+       DWORD nNotKeepPos;\r
+\r
+protected:\r
+       void DeleteSelectedItem(HWND hDlg);\r
+\r
+public:\r
+       BOOL Init(MemoSelectView *pView, VFManager *pManager);\r
+\r
+       DWORD Popup(HINSTANCE hInst, HWND hParent, HIMAGELIST hImgList); \r
+\r
+       void InitDialog(HWND hDlg);\r
+       void DestroyDialog(HWND hDlg, int iResult);\r
+\r
+       BOOL OnOK(HWND hDlg);\r
+       BOOL OnNotify(HWND hDlg, WPARAM wParam, LPARAM lParam);\r
+\r
+       BOOL Command_UpDown(HWND hDlg, int delta);\r
+       void Command_ToggleKeep(HWND hDlg);\r
+       void Command_New(HWND hDlg);\r
+       void Command_Delete(HWND hDlg);\r
+       void Command_Rename(HWND hDlg);\r
+\r
+       BOOL Notify_ItemChanged(HWND hDlg, LPARAM lParam);\r
+       BOOL Notify_EndLabelEdit(HWND hDlg, LPARAM lParam);\r
+       BOOL Notify_Keydown(HWND hDlg, LPARAM lParam);\r
+       BOOL Notify_DblClick(HWND hDlg, LPARAM lParam);\r
+};\r
+\r
+#endif
\ No newline at end of file
diff --git a/Src/FilterDefDlg.cpp b/Src/FilterDefDlg.cpp
new file mode 100644 (file)
index 0000000..15a74cc
--- /dev/null
@@ -0,0 +1,509 @@
+#include <windows.h>\r
+#include <commctrl.h>\r
+#include <tchar.h>\r
+#include "resource.h"\r
+#include "Message.h"\r
+#include "Tombo.h"\r
+#include "TString.h"\r
+#include "TomboURI.h"\r
+#include "FilterDefDlg.h"\r
+#include "PropertyPage.h"\r
+#include "VarBuffer.h"\r
+#include "VFManager.h"\r
+#include "VFStream.h"\r
+#include "DialogTemplate.h"\r
+#include "FilterAddDlg.h"\r
+\r
+#define NUM_TAB_FILTERCTL 2\r
+\r
+BOOL FilterDefDlg::Init()\r
+{\r
+       return TRUE;\r
+}\r
+\r
+/////////////////////////////////////////\r
+// Src tab\r
+/////////////////////////////////////////\r
+\r
+\r
+class FilterDlgSrcTab : public PropertyTab {\r
+       FilterDefDlg *pDialog;\r
+public:\r
+       FilterDlgSrcTab(FilterDefDlg *pDlg) : pDialog(pDlg), \r
+               PropertyTab(IDD_FILTERDEF_SRC, MSG_FILTERDEFPROPTTL_SRC, \r
+               (DLGPROC)DefaultPageProc) {}\r
+\r
+       void Init(HWND hDlg);\r
+       BOOL Apply(HWND hDlg);\r
+};\r
+\r
+void FilterDlgSrcTab::Init(HWND hDlg)\r
+{\r
+       HWND hSrcPath = GetDlgItem(hDlg, IDC_FILTERDEF_SRC_PATH);\r
+       SetWindowText(hSrcPath, pDialog->pInfo->pGenerator->GetURI()->GetFullURI());\r
+}\r
+\r
+BOOL FilterDlgSrcTab::Apply(HWND hDlg)\r
+{\r
+       HWND hEdit = GetDlgItem(hDlg, IDC_FILTERDEF_SRC_PATH);\r
+\r
+       DWORD nLen = GetWindowTextLength(hEdit);\r
+       TString sPath;\r
+\r
+       if (!sPath.Alloc(nLen + 1)) return FALSE;\r
+       GetWindowText(hEdit, sPath.Get(), nLen + 1);\r
+\r
+       TomboURI sURI;\r
+       if (!sURI.Init(sPath.Get())) return FALSE;\r
+\r
+       return pDialog->pInfo->pGenerator->SetURI(&sURI);\r
+}\r
+\r
+/////////////////////////////////////////\r
+// Filter tab\r
+/////////////////////////////////////////\r
+\r
+class FilterDlgFilterTab : public PropertyTab {\r
+       FilterDefDlg *pDialog;\r
+protected:\r
+       BOOL InsertItem(HWND hList, DWORD iPos, VFStream *pStream, BOOL bFocus);\r
+       void DeleteSelectedItem(HWND hDlg);\r
+public:\r
+       FilterDlgFilterTab(FilterDefDlg *pDlg) : pDialog(pDlg), \r
+               PropertyTab(IDD_FILTERDEF_FILTER, MSG_FILTERDEFPROPTTL_FILTER, \r
+               (DLGPROC)DefaultPageProc) {}\r
+\r
+       void Init(HWND hDlg);\r
+       BOOL Apply(HWND hDlg);\r
+       void Cancel(HWND hDlg, WPARAM wParam, LPARAM lParam);\r
+       BOOL OnCommand(HWND hDlg, WPARAM wParam, LPARAM lParam);\r
+       BOOL OnNotify(HWND hDlg, WPARAM wParam, LPARAM lParam);\r
+\r
+       BOOL Notify_Keydown(HWND hDlg, LPARAM lParam);\r
+       BOOL Notify_ItemChanged(HWND hDlg, LPARAM lParam);\r
+       BOOL Notify_DblClick(HWND hDlg, LPARAM lParam);\r
+       BOOL Command_UpDown(HWND hDlg, int nDelta);\r
+       BOOL Command_Regex(HWND hDlg);\r
+       BOOL Command_Limit(HWND hDlg);\r
+       BOOL Command_Timestamp(HWND hDlg);\r
+       BOOL Command_Sort(HWND hDlg);\r
+       BOOL Command_Delete(HWND hDlg);\r
+};\r
+\r
+static DlgMsgRes aFilterRes[] = {\r
+       { IDC_FILTERDEF_FILTER_UP,        MSG_ID_DLG_FILTERDEF_FILTER_UP },\r
+       { IDC_FILTERDEF_FILTER_DOWN,      MSG_ID_DLG_FILTERDEF_FILTER_DOWN },\r
+       { IDC_FILTERDEF_FILTER_DELETE,    MSG_ID_DLG_FILTERDEF_FILTER_DELETE },\r
+       { IDC_FILTERDEF_FILTER_REGEX,     MSG_ID_DLG_FILTERDEF_FILTER_FIND },\r
+       { IDC_FILTERDEF_FILTER_LIMIT,     MSG_ID_DLG_FILTERDEF_FILTER_NUMBER },\r
+       { IDC_FILTERDEF_FILTER_TIMESTAMP, MSG_ID_DLG_FILTERDEF_FILTER_TIMESTAMP },\r
+       { IDC_FILTERDEF_FILTER_SORT,      MSG_ID_DLG_FILTERDEF_FILTER_SORT },\r
+};\r
+\r
+void FilterDlgFilterTab::Init(HWND hDlg)\r
+{\r
+       OverrideDlgMsg(hDlg, -1, aFilterRes, sizeof(aFilterRes)/sizeof(DlgMsgRes));\r
+\r
+       HWND hList = GetDlgItem(hDlg, IDC_FILTERDEF_FILTER_LIST);\r
+       /////////////////////////////////////////\r
+       // Insert column headers\r
+       \r
+       LV_COLUMN lvc;\r
+       lvc.mask = LVCF_FMT | LVCF_WIDTH | LVCF_TEXT;\r
+       lvc.fmt = LVCFMT_LEFT;\r
+\r
+       lvc.cx = 100;\r
+       lvc.pszText = (LPTSTR)MSG_FILTERDEFPROPTTL_FILTERTYPE_HDR;\r
+       ListView_InsertColumn(hList, 0, &lvc);\r
+\r
+       lvc.cx = 150;\r
+       lvc.pszText = (LPTSTR)MSG_FILTERDEFPROPTTL_FILTERVAL_HDR;\r
+       ListView_InsertColumn(hList, 1, &lvc);\r
+\r
+       /////////////////////////////////////////\r
+       // Create stream data\r
+\r
+       DWORD i = 0;\r
+       VFStream *p = pDialog->pInfo->pGenerator->GetNext();\r
+\r
+       // for exclude VFStore, loop condition is not "p".\r
+       while(p->GetNext()) {\r
+               InsertItem(hList, i, p, FALSE);\r
+               i++;\r
+               p = p->GetNext();\r
+       }\r
+\r
+       /////////////////////////////////////////\r
+       // Initialize buttons\r
+       HWND hUp = GetDlgItem(hDlg, IDC_FILTERDEF_FILTER_UP);\r
+       HWND hDown = GetDlgItem(hDlg, IDC_FILTERDEF_FILTER_DOWN);\r
+       EnableWindow(hUp, FALSE);\r
+       EnableWindow(hDown, FALSE);\r
+}\r
+\r
+BOOL FilterDlgFilterTab::Apply(HWND hDlg) \r
+{\r
+       HWND hList = GetDlgItem(hDlg, IDC_FILTERDEF_FILTER_LIST);\r
+       VFInfo *pInfo = pDialog->pInfo;\r
+       VFDirectoryGenerator *pGen = pInfo->pGenerator;\r
+       VFStore *pStore = pInfo->pStore;\r
+\r
+       int n = ListView_GetItemCount(hList);\r
+       int i;\r
+       LVITEM li;\r
+\r
+       li.mask = LVIF_PARAM;\r
+       li.iSubItem = 0;\r
+\r
+       VFStream *pPrev = pGen;\r
+\r
+       for (i = 0; i < n; i++) {\r
+               li.iItem = i;\r
+               ListView_GetItem(hList, &li);\r
+\r
+               VFStream *p = (VFStream*)li.lParam;\r
+\r
+               pPrev->SetNext(p);\r
+               pPrev = p;\r
+       }\r
+       \r
+       pPrev->SetNext(pStore);\r
+\r
+       return TRUE; \r
+}\r
+\r
+void FilterDlgFilterTab::Cancel(HWND hDlg, WPARAM wParam, LPARAM lParam)\r
+{\r
+       Apply(hDlg);\r
+}\r
+\r
+BOOL FilterDlgFilterTab::InsertItem(HWND hList, DWORD iPos, VFStream *pStream, BOOL bFocus)\r
+{\r
+       LV_ITEM li;\r
+       TString sValue;\r
+\r
+       li.iItem = iPos;\r
+\r
+       // type\r
+       li.mask = LVIF_TEXT | LVIF_PARAM;\r
+       li.pszText = (LPTSTR)pStream->GetFilterType();\r
+       li.cchTextMax = _tcslen(li.pszText);\r
+       li.iSubItem = 0;\r
+       li.lParam = (LPARAM)pStream;\r
+       if (bFocus) {\r
+               li.mask |= LVIF_STATE;\r
+               li.state = li.stateMask = LVIS_FOCUSED | LVIS_SELECTED;\r
+       }\r
+       ListView_InsertItem(hList, &li);\r
+\r
+       // value\r
+       if (!pStream->ToString(&sValue)) return FALSE;\r
+\r
+       li.mask = LVIF_TEXT;\r
+       li.pszText = sValue.Get();\r
+       li.cchTextMax = _tcslen(li.pszText);\r
+       li.iSubItem = 1;\r
+       ListView_SetItem(hList, &li);\r
+       return TRUE;\r
+}\r
+\r
+/////////////////////////////////////////\r
+// WM_COMMAND handler\r
+/////////////////////////////////////////\r
+\r
+BOOL FilterDlgFilterTab::OnCommand(HWND hDlg, WPARAM wParam, LPARAM lParam)\r
+{\r
+       switch(LOWORD(wParam)) {\r
+       case IDC_FILTERDEF_FILTER_UP:\r
+               return Command_UpDown(hDlg, -1);\r
+       case IDC_FILTERDEF_FILTER_DOWN:\r
+               return Command_UpDown(hDlg, 1);\r
+       case IDC_FILTERDEF_FILTER_REGEX:\r
+               return Command_Regex(hDlg);\r
+       case IDC_FILTERDEF_FILTER_LIMIT:\r
+               return Command_Limit(hDlg);\r
+       case IDC_FILTERDEF_FILTER_TIMESTAMP:\r
+               return Command_Timestamp(hDlg);\r
+       case IDC_FILTERDEF_FILTER_SORT:\r
+               return Command_Sort(hDlg);\r
+       case IDC_FILTERDEF_FILTER_DELETE:\r
+               return Command_Delete(hDlg);\r
+       }\r
+       return TRUE;\r
+}\r
+\r
+BOOL FilterDlgFilterTab::Command_UpDown(HWND hDlg, int iDelta)\r
+{\r
+       HWND hList = GetDlgItem(hDlg, IDC_FILTERDEF_FILTER_LIST);\r
+       int iSel = ListView_GetNextItem(hList, -1, LVNI_SELECTED);\r
+\r
+       if (iSel < 0) return TRUE;\r
+\r
+       LVITEM li;\r
+       li.mask = LVIF_PARAM;\r
+       li.iItem = iSel;\r
+       li.iSubItem = 0;\r
+       ListView_GetItem(hList, &li);\r
+\r
+       VFStream *pStream = (VFStream*)li.lParam;\r
+\r
+       ListView_DeleteItem(hList, iSel);\r
+\r
+       InsertItem(hList, iSel + iDelta, pStream, TRUE);\r
+       SetFocus(hList);\r
+       return TRUE;\r
+}\r
+\r
+BOOL FilterDlgFilterTab::Command_Regex(HWND hDlg)\r
+{\r
+       RegexFilterAddDlg ad;\r
+       if (!ad.Init()) {\r
+               MessageBox(hDlg, MSG_DLG_INIT_FAIL, TOMBO_APP_NAME, MB_OK | MB_ICONERROR);\r
+               return TRUE;\r
+       }\r
+       if (ad.Popup(g_hInstance, hDlg) == IDOK) {\r
+               VFRegexFilter *pFilter = new VFRegexFilter();\r
+               if (pFilter == NULL) {\r
+                       MessageBox(hDlg, MSG_NOT_ENOUGH_MEMORY, TOMBO_APP_NAME, MB_OK | MB_ICONERROR);\r
+                       return TRUE;\r
+               }\r
+\r
+               if (!pFilter->Init(ad.GetMatchString()->Get(), \r
+                       ad.IsCaseSensitive(), ad.IsCheckEncrypt(), \r
+                       ad.IsCheckFileName(), ad.IsNegate(), g_pPasswordManager)) {\r
+                       MessageBox(hDlg, MSG_INVALID_REGEXP, TOMBO_APP_NAME, MB_OK | MB_ICONWARNING);\r
+                       return TRUE;\r
+               }\r
+               HWND hList = GetDlgItem(hDlg, IDC_FILTERDEF_FILTER_LIST);\r
+               DWORD iPos = ListView_GetItemCount(hList);\r
+               InsertItem(hList, iPos, pFilter, TRUE);\r
+       }\r
+\r
+       return TRUE;\r
+}\r
+\r
+BOOL FilterDlgFilterTab::Command_Limit(HWND hDlg)\r
+{\r
+       LimitFilterAddDlg ad;\r
+       if (!ad.Init()) {\r
+               MessageBox(hDlg, MSG_DLG_INIT_FAIL, TOMBO_APP_NAME, MB_OK | MB_ICONERROR);\r
+               return TRUE;\r
+       }\r
+       if (ad.Popup(g_hInstance, hDlg) == IDOK) {\r
+               VFLimitFilter *pFilter = new VFLimitFilter();\r
+               if (!pFilter || !pFilter->Init(ad.GetLimit())) {\r
+                       MessageBox(hDlg, MSG_NOT_ENOUGH_MEMORY, TOMBO_APP_NAME, MB_OK | MB_ICONERROR);\r
+                       return TRUE;\r
+               }\r
+               HWND hList = GetDlgItem(hDlg, IDC_FILTERDEF_FILTER_LIST);\r
+               DWORD iPos = ListView_GetItemCount(hList);\r
+               InsertItem(hList, iPos, pFilter, TRUE);\r
+       }\r
+       return TRUE;\r
+}\r
+\r
+BOOL FilterDlgFilterTab::Command_Timestamp(HWND hDlg)\r
+{\r
+       TimestampFilterAddDlg ad;\r
+       if (!ad.Init()) {\r
+               MessageBox(hDlg, MSG_DLG_INIT_FAIL, TOMBO_APP_NAME, MB_OK | MB_ICONERROR);\r
+               return TRUE;\r
+       }\r
+       if (ad.Popup(g_hInstance, hDlg) == IDOK) {\r
+               VFTimestampFilter *pFilter = new VFTimestampFilter();\r
+               if (!pFilter || !pFilter->Init(ad.GetDeltaDay(), ad.IsNewer())) {\r
+                       MessageBox(hDlg, MSG_NOT_ENOUGH_MEMORY, TOMBO_APP_NAME, MB_OK | MB_ICONERROR);\r
+                       return TRUE;\r
+               }\r
+               HWND hList = GetDlgItem(hDlg, IDC_FILTERDEF_FILTER_LIST);\r
+               DWORD iPos = ListView_GetItemCount(hList);\r
+               InsertItem(hList, iPos, pFilter, TRUE);\r
+       }\r
+       return TRUE;\r
+}\r
+\r
+BOOL FilterDlgFilterTab::Command_Sort(HWND hDlg)\r
+{\r
+       SortFilterAddDlg ad;\r
+       if (!ad.Init()) {\r
+               MessageBox(hDlg, MSG_DLG_INIT_FAIL, TOMBO_APP_NAME, MB_OK | MB_ICONERROR);\r
+               return TRUE;\r
+       }\r
+       if (ad.Popup(g_hInstance, hDlg) == IDOK) {\r
+               VFSortFilter *pFilter = new VFSortFilter();\r
+               if (!pFilter || !pFilter->Init(ad.GetType())) {\r
+                       MessageBox(hDlg, MSG_NOT_ENOUGH_MEMORY, TOMBO_APP_NAME, MB_OK | MB_ICONERROR);\r
+                       return TRUE;\r
+               }\r
+               HWND hList = GetDlgItem(hDlg, IDC_FILTERDEF_FILTER_LIST);\r
+               DWORD iPos = ListView_GetItemCount(hList);\r
+               InsertItem(hList, iPos, pFilter, TRUE);\r
+       }\r
+       return TRUE;\r
+}\r
+\r
+BOOL FilterDlgFilterTab::Command_Delete(HWND hDlg)\r
+{\r
+       DeleteSelectedItem(hDlg);\r
+       return TRUE;\r
+}\r
+\r
+/////////////////////////////////////////\r
+// WM_NOTIFY handler\r
+/////////////////////////////////////////\r
+\r
+BOOL FilterDlgFilterTab::OnNotify(HWND hDlg, WPARAM wParam, LPARAM lParam)\r
+{\r
+       NMHDR *pHdr = (NMHDR*)lParam;\r
+       if (pHdr->code == LVN_KEYDOWN) {\r
+               return Notify_Keydown(hDlg, lParam);\r
+       }\r
+       if (pHdr->code == LVN_ITEMCHANGED) {\r
+               return Notify_ItemChanged(hDlg, lParam);\r
+       }\r
+       if (pHdr->code == NM_DBLCLK && pHdr->idFrom == IDC_FILTERDEF_FILTER_LIST) {\r
+               return Notify_DblClick(hDlg, lParam);\r
+       }\r
+       return FALSE;\r
+}\r
+\r
+BOOL FilterDlgFilterTab::Notify_Keydown(HWND hDlg, LPARAM lParam)\r
+{\r
+       NMHDR *pHdr = (NMHDR*)lParam;\r
+\r
+       if (pHdr->idFrom != IDC_FILTERDEF_FILTER_LIST) return FALSE;\r
+       if (pHdr->code != LVN_KEYDOWN) return FALSE;\r
+       HWND hList = pHdr->hwndFrom;\r
+\r
+       NMLVKEYDOWN *pKd = (NMLVKEYDOWN*)lParam;\r
+       if (pKd->wVKey != VK_DELETE) return TRUE;\r
+\r
+       DeleteSelectedItem(hDlg);\r
+       return TRUE;\r
+}\r
+\r
+void FilterDlgFilterTab::DeleteSelectedItem(HWND hDlg)\r
+{\r
+       HWND hList = GetDlgItem(hDlg, IDC_FILTERDEF_FILTER_LIST);\r
+\r
+       int iSel = ListView_GetNextItem(hList, -1, LVNI_SELECTED);\r
+       if (iSel < 0 ) return;\r
+\r
+       LV_ITEM li;\r
+       li.mask = LVIF_PARAM;\r
+       li.iItem = iSel;\r
+       li.iSubItem = 0;\r
+       ListView_GetItem(hList, &li);\r
+       VFStream *p = (VFStream*)li.lParam;\r
+       ListView_DeleteItem(hList, iSel);\r
+       delete p;\r
+\r
+       // select altanative item\r
+       li.mask = LVIF_STATE;\r
+       li.iItem = (iSel == 0) ? 0 : iSel - 1;\r
+       li.state = li.stateMask = LVIS_FOCUSED | LVIS_SELECTED;\r
+       ListView_SetItem(hList, &li);\r
+}\r
+\r
+BOOL FilterDlgFilterTab::Notify_ItemChanged(HWND hDlg, LPARAM lParam)\r
+{\r
+       NMHDR *pHdr = (NMHDR*)lParam;\r
+       NMLISTVIEW *pLv = (NMLISTVIEW*)lParam;\r
+       if (pLv->uNewState & LVIS_FOCUSED) {\r
+\r
+               HWND hUp = GetDlgItem(hDlg, IDC_FILTERDEF_FILTER_UP);\r
+               HWND hDown = GetDlgItem(hDlg, IDC_FILTERDEF_FILTER_DOWN);\r
+\r
+               EnableWindow(hUp, pLv->iItem > 0);\r
+               EnableWindow(hDown, pLv->iItem < ListView_GetItemCount(pHdr->hwndFrom) - 1);\r
+       }\r
+       return TRUE;\r
+}\r
+\r
+BOOL FilterDlgFilterTab::Notify_DblClick(HWND hDlg, LPARAM lParam)\r
+{\r
+       NMLISTVIEW* pLv = (NMLISTVIEW*)lParam;\r
+       HWND hList = GetDlgItem(hDlg, IDC_FILTERDEF_FILTER_LIST);\r
+\r
+       int iSel = ListView_GetNextItem(hList, -1, LVNI_SELECTED);\r
+       if (iSel < 0 ) return TRUE;\r
+\r
+       LVITEM li;\r
+       li.mask = LVIF_PARAM;\r
+       li.iItem = iSel;\r
+       li.iSubItem = 0;\r
+       ListView_GetItem(hList, &li);\r
+\r
+       VFStream *pStream = (VFStream*)li.lParam;\r
+       if (pStream->UpdateParamWithDialog(g_hInstance, hDlg)) {\r
+               // update value\r
+               TString sValue;\r
+               if (!pStream->ToString(&sValue)) return FALSE;\r
+               \r
+               li.mask = LVIF_TEXT;\r
+               li.pszText= sValue.Get();\r
+               li.cchTextMax = _tcslen(li.pszText);\r
+               li.iItem = iSel;\r
+               li.iSubItem = 1;\r
+               ListView_SetItem(hList, &li);\r
+\r
+       }\r
+       return TRUE;\r
+}\r
+\r
+/////////////////////////////////////////\r
+// ViewType tab\r
+/////////////////////////////////////////\r
+#ifdef COMMENT\r
+class FilterDlgViewTypeTab : public PropertyTab {\r
+       FilterDefDlg *pDialog;\r
+public:\r
+       FilterDlgViewTypeTab(FilterDefDlg *pDlg) : pDialog(pDlg), \r
+               PropertyTab(IDD_FILTERDEF_VIEWTYPE, MSG_FILTERDEFPROPTTL_SRC, \r
+               (DLGPROC)DefaultPageProc) {}\r
+\r
+       void Init(HWND hDlg);\r
+       BOOL Apply(HWND hDlg);\r
+};\r
+\r
+void FilterDlgViewTypeTab::Init(HWND hDlg)\r
+{\r
+       HWND hViewType = GetDlgItem(hDlg, IDC_FILTERDEF_VIEW_TYPE);\r
+       SendMessage(hViewType, CB_ADDSTRING, 0, (LPARAM)MSG_FILTEDEF_VIEW_TYPE_DEFAULT);\r
+       SendMessage(hViewType, CB_ADDSTRING, 0, (LPARAM)MSG_FILTEDEF_VIEW_TYPE_PREV);\r
+       SendMessage(hViewType, CB_ADDSTRING, 0, (LPARAM)MSG_FILTEDEF_VIEW_TYPE_POST);\r
+       SendMessage(hViewType, CB_SETCURSEL, pDialog->pInfo->nViewType, 0);\r
+\r
+}\r
+\r
+BOOL FilterDlgViewTypeTab::Apply(HWND hDlg)\r
+{\r
+       HWND hViewType = GetDlgItem(hDlg, IDC_FILTERDEF_VIEW_TYPE);\r
+       pDialog->pInfo->nViewType = SendMessage(hViewType, CB_GETCURSEL, 0, 0);\r
+       return TRUE;\r
+}\r
+#endif\r
+/////////////////////////////////////////\r
+// Dialog popup\r
+/////////////////////////////////////////\r
+\r
+DWORD FilterDefDlg::Popup(HINSTANCE hInst, HWND hParent, VFInfo *pi, BOOL bNew)\r
+{\r
+       PropertyTab *pages[NUM_TAB_FILTERCTL];\r
+       FilterDlgSrcTab pgSrc(this);\r
+       FilterDlgFilterTab pgFilter(this);\r
+//     FilterDlgViewTypeTab pgViewType(this);\r
+\r
+       pages[0] = &pgSrc;\r
+       pages[1] = &pgFilter;\r
+//     pages[2] = &pgViewType;\r
+\r
+       pInfo = pi;\r
+\r
+//     DWORD nStartPage = bNew ? 0 : 1;\r
+       DWORD nStartPage = 1;\r
+       PropertyPage pp;\r
+       DWORD res = pp.Popup(hInst, hParent, pages, NUM_TAB_FILTERCTL, MSG_FILTERDEFDLG_TTL, MAKEINTRESOURCE(IDI_TOMBO), nStartPage);\r
+       return res;\r
+}\r
+\r
diff --git a/Src/FilterDefDlg.h b/Src/FilterDefDlg.h
new file mode 100644 (file)
index 0000000..768d095
--- /dev/null
@@ -0,0 +1,24 @@
+#ifndef FILTERDEFDLG_H\r
+#define FILTERDEFDLG_H\r
+\r
+class VFInfo;\r
+\r
+class FilterDefDlg {\r
+public:\r
+       VFInfo *pInfo;\r
+\r
+       ///////////////////////////\r
+       // ctor & dtor\r
+\r
+       FilterDefDlg() : pInfo(NULL) {}\r
+       ~FilterDefDlg() {}\r
+       \r
+       BOOL Init();\r
+\r
+       ///////////////////////////\r
+       // Popup function (entry point for other class&funcs)\r
+\r
+       DWORD Popup(HINSTANCE hInst, HWND hWnd, VFInfo *pInfo, BOOL bNew);\r
+};\r
+\r
+#endif\r
diff --git a/Src/GNUPG/bithelp.h b/Src/GNUPG/bithelp.h
new file mode 100644 (file)
index 0000000..98f474c
--- /dev/null
@@ -0,0 +1,41 @@
+/* bithelp.h  -  Some bit manipulation helpers\r
+ *     Copyright (C) 1999 Free Software Foundation, Inc.\r
+ *\r
+ * This file is part of GnuPG.\r
+ *\r
+ * GnuPG is free software; you can redistribute it and/or modify\r
+ * it under the terms of the GNU General Public License as published by\r
+ * the Free Software Foundation; either version 2 of the License, or\r
+ * (at your option) any later version.\r
+ *\r
+ * GnuPG is distributed in the hope that it will be useful,\r
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of\r
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\r
+ * GNU General Public License for more details.\r
+ *\r
+ * You should have received a copy of the GNU General Public License\r
+ * along with this program; if not, write to the Free Software\r
+ * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA\r
+ */\r
+#ifndef G10_BITHELP_H\r
+#define G10_BITHELP_H\r
+\r
+\r
+/****************\r
+ * Rotate a 32 bit integer by n bytes\r
+ */\r
+#if defined(__GNUC__) && defined(__i386__)\r
+static inline u32\r
+rol( u32 x, int n)\r
+{\r
+       __asm__("roll %%cl,%0"\r
+               :"=r" (x)\r
+               :"0" (x),"c" (n));\r
+       return x;\r
+}\r
+#else\r
+  #define rol(x,n) ( ((x) << (n)) | ((x) >> (32-(n))) )\r
+#endif\r
+\r
+\r
+#endif /*G10_BITHELP_H*/\r
diff --git a/Src/GNUPG/blowfish.c b/Src/GNUPG/blowfish.c
new file mode 100644 (file)
index 0000000..9ba5559
--- /dev/null
@@ -0,0 +1,726 @@
+/* blowfish.c  -  Blowfish encryption\r
+ *     Copyright (C) 1998 Free Software Foundation, Inc.\r
+ *\r
+ * For a description of the algorithm, see:\r
+ *   Bruce Schneier: Applied Cryptography. John Wiley & Sons, 1996.\r
+ *   ISBN 0-471-11709-9. Pages 336 ff.\r
+ *\r
+ * This file is part of GnuPG.\r
+ *\r
+ * GnuPG is free software; you can redistribute it and/or modify\r
+ * it under the terms of the GNU General Public License as published by\r
+ * the Free Software Foundation; either version 2 of the License, or\r
+ * (at your option) any later version.\r
+ *\r
+ * GnuPG is distributed in the hope that it will be useful,\r
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of\r
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\r
+ * GNU General Public License for more details.\r
+ *\r
+ * You should have received a copy of the GNU General Public License\r
+ * along with this program; if not, write to the Free Software\r
+ * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA\r
+ */\r
+\r
+/* Test values:\r
+ * key   "abcdefghijklmnopqrstuvwxyz";\r
+ * plain  "BLOWFISH"\r
+ * cipher 32 4E D0 FE F4 13 A2 03\r
+ *\r
+ */\r
+\r
+#ifndef TOMBO\r
+#include <config.h>\r
+#include <stdio.h>\r
+#include <stdlib.h>\r
+#include <string.h>\r
+#include <assert.h>\r
+#include "types.h"\r
+#include "errors.h"\r
+#include "blowfish.h"\r
+#include "dynload.h"\r
+#endif\r
+\r
+#ifdef TOMBO\r
+#include <windows.h>\r
+#define u32 DWORD\r
+#define G10ERR_WEAK_KEY       43 /* NOTE: hardcoded into the cipher modules */\r
+#define G10ERR_SELFTEST_FAILED 50\r
+\r
+#endif\r
+\r
+\r
+#define CIPHER_ALGO_BLOWFISH    4  /* blowfish 128 bit key */\r
+\r
+#define BLOWFISH_BLOCKSIZE 8\r
+#define BLOWFISH_ROUNDS 16\r
+\r
+typedef struct {\r
+    u32 s0[256];\r
+    u32 s1[256];\r
+    u32 s2[256];\r
+    u32 s3[256];\r
+    u32 p[BLOWFISH_ROUNDS+2];\r
+} BLOWFISH_context;\r
+\r
+static int  bf_setkey( BLOWFISH_context *c, byte *key, unsigned keylen );\r
+static void encrypt_block( BLOWFISH_context *bc, byte *outbuf, byte *inbuf );\r
+static void decrypt_block( BLOWFISH_context *bc, byte *outbuf, byte *inbuf );\r
+\r
+\r
+/* precomputed S boxes */\r
+static const u32 ks0[256] = {\r
+    0xD1310BA6,0x98DFB5AC,0x2FFD72DB,0xD01ADFB7,0xB8E1AFED,0x6A267E96,\r
+    0xBA7C9045,0xF12C7F99,0x24A19947,0xB3916CF7,0x0801F2E2,0x858EFC16,\r
+    0x636920D8,0x71574E69,0xA458FEA3,0xF4933D7E,0x0D95748F,0x728EB658,\r
+    0x718BCD58,0x82154AEE,0x7B54A41D,0xC25A59B5,0x9C30D539,0x2AF26013,\r
+    0xC5D1B023,0x286085F0,0xCA417918,0xB8DB38EF,0x8E79DCB0,0x603A180E,\r
+    0x6C9E0E8B,0xB01E8A3E,0xD71577C1,0xBD314B27,0x78AF2FDA,0x55605C60,\r
+    0xE65525F3,0xAA55AB94,0x57489862,0x63E81440,0x55CA396A,0x2AAB10B6,\r
+    0xB4CC5C34,0x1141E8CE,0xA15486AF,0x7C72E993,0xB3EE1411,0x636FBC2A,\r
+    0x2BA9C55D,0x741831F6,0xCE5C3E16,0x9B87931E,0xAFD6BA33,0x6C24CF5C,\r
+    0x7A325381,0x28958677,0x3B8F4898,0x6B4BB9AF,0xC4BFE81B,0x66282193,\r
+    0x61D809CC,0xFB21A991,0x487CAC60,0x5DEC8032,0xEF845D5D,0xE98575B1,\r
+    0xDC262302,0xEB651B88,0x23893E81,0xD396ACC5,0x0F6D6FF3,0x83F44239,\r
+    0x2E0B4482,0xA4842004,0x69C8F04A,0x9E1F9B5E,0x21C66842,0xF6E96C9A,\r
+    0x670C9C61,0xABD388F0,0x6A51A0D2,0xD8542F68,0x960FA728,0xAB5133A3,\r
+    0x6EEF0B6C,0x137A3BE4,0xBA3BF050,0x7EFB2A98,0xA1F1651D,0x39AF0176,\r
+    0x66CA593E,0x82430E88,0x8CEE8619,0x456F9FB4,0x7D84A5C3,0x3B8B5EBE,\r
+    0xE06F75D8,0x85C12073,0x401A449F,0x56C16AA6,0x4ED3AA62,0x363F7706,\r
+    0x1BFEDF72,0x429B023D,0x37D0D724,0xD00A1248,0xDB0FEAD3,0x49F1C09B,\r
+    0x075372C9,0x80991B7B,0x25D479D8,0xF6E8DEF7,0xE3FE501A,0xB6794C3B,\r
+    0x976CE0BD,0x04C006BA,0xC1A94FB6,0x409F60C4,0x5E5C9EC2,0x196A2463,\r
+    0x68FB6FAF,0x3E6C53B5,0x1339B2EB,0x3B52EC6F,0x6DFC511F,0x9B30952C,\r
+    0xCC814544,0xAF5EBD09,0xBEE3D004,0xDE334AFD,0x660F2807,0x192E4BB3,\r
+    0xC0CBA857,0x45C8740F,0xD20B5F39,0xB9D3FBDB,0x5579C0BD,0x1A60320A,\r
+    0xD6A100C6,0x402C7279,0x679F25FE,0xFB1FA3CC,0x8EA5E9F8,0xDB3222F8,\r
+    0x3C7516DF,0xFD616B15,0x2F501EC8,0xAD0552AB,0x323DB5FA,0xFD238760,\r
+    0x53317B48,0x3E00DF82,0x9E5C57BB,0xCA6F8CA0,0x1A87562E,0xDF1769DB,\r
+    0xD542A8F6,0x287EFFC3,0xAC6732C6,0x8C4F5573,0x695B27B0,0xBBCA58C8,\r
+    0xE1FFA35D,0xB8F011A0,0x10FA3D98,0xFD2183B8,0x4AFCB56C,0x2DD1D35B,\r
+    0x9A53E479,0xB6F84565,0xD28E49BC,0x4BFB9790,0xE1DDF2DA,0xA4CB7E33,\r
+    0x62FB1341,0xCEE4C6E8,0xEF20CADA,0x36774C01,0xD07E9EFE,0x2BF11FB4,\r
+    0x95DBDA4D,0xAE909198,0xEAAD8E71,0x6B93D5A0,0xD08ED1D0,0xAFC725E0,\r
+    0x8E3C5B2F,0x8E7594B7,0x8FF6E2FB,0xF2122B64,0x8888B812,0x900DF01C,\r
+    0x4FAD5EA0,0x688FC31C,0xD1CFF191,0xB3A8C1AD,0x2F2F2218,0xBE0E1777,\r
+    0xEA752DFE,0x8B021FA1,0xE5A0CC0F,0xB56F74E8,0x18ACF3D6,0xCE89E299,\r
+    0xB4A84FE0,0xFD13E0B7,0x7CC43B81,0xD2ADA8D9,0x165FA266,0x80957705,\r
+    0x93CC7314,0x211A1477,0xE6AD2065,0x77B5FA86,0xC75442F5,0xFB9D35CF,\r
+    0xEBCDAF0C,0x7B3E89A0,0xD6411BD3,0xAE1E7E49,0x00250E2D,0x2071B35E,\r
+    0x226800BB,0x57B8E0AF,0x2464369B,0xF009B91E,0x5563911D,0x59DFA6AA,\r
+    0x78C14389,0xD95A537F,0x207D5BA2,0x02E5B9C5,0x83260376,0x6295CFA9,\r
+    0x11C81968,0x4E734A41,0xB3472DCA,0x7B14A94A,0x1B510052,0x9A532915,\r
+    0xD60F573F,0xBC9BC6E4,0x2B60A476,0x81E67400,0x08BA6FB5,0x571BE91F,\r
+    0xF296EC6B,0x2A0DD915,0xB6636521,0xE7B9F9B6,0xFF34052E,0xC5855664,\r
+    0x53B02D5D,0xA99F8FA1,0x08BA4799,0x6E85076A };\r
+\r
+static const u32 ks1[256] = {\r
+    0x4B7A70E9,0xB5B32944,0xDB75092E,0xC4192623,0xAD6EA6B0,0x49A7DF7D,\r
+    0x9CEE60B8,0x8FEDB266,0xECAA8C71,0x699A17FF,0x5664526C,0xC2B19EE1,\r
+    0x193602A5,0x75094C29,0xA0591340,0xE4183A3E,0x3F54989A,0x5B429D65,\r
+    0x6B8FE4D6,0x99F73FD6,0xA1D29C07,0xEFE830F5,0x4D2D38E6,0xF0255DC1,\r
+    0x4CDD2086,0x8470EB26,0x6382E9C6,0x021ECC5E,0x09686B3F,0x3EBAEFC9,\r
+    0x3C971814,0x6B6A70A1,0x687F3584,0x52A0E286,0xB79C5305,0xAA500737,\r
+    0x3E07841C,0x7FDEAE5C,0x8E7D44EC,0x5716F2B8,0xB03ADA37,0xF0500C0D,\r
+    0xF01C1F04,0x0200B3FF,0xAE0CF51A,0x3CB574B2,0x25837A58,0xDC0921BD,\r
+    0xD19113F9,0x7CA92FF6,0x94324773,0x22F54701,0x3AE5E581,0x37C2DADC,\r
+    0xC8B57634,0x9AF3DDA7,0xA9446146,0x0FD0030E,0xECC8C73E,0xA4751E41,\r
+    0xE238CD99,0x3BEA0E2F,0x3280BBA1,0x183EB331,0x4E548B38,0x4F6DB908,\r
+    0x6F420D03,0xF60A04BF,0x2CB81290,0x24977C79,0x5679B072,0xBCAF89AF,\r
+    0xDE9A771F,0xD9930810,0xB38BAE12,0xDCCF3F2E,0x5512721F,0x2E6B7124,\r
+    0x501ADDE6,0x9F84CD87,0x7A584718,0x7408DA17,0xBC9F9ABC,0xE94B7D8C,\r
+    0xEC7AEC3A,0xDB851DFA,0x63094366,0xC464C3D2,0xEF1C1847,0x3215D908,\r
+    0xDD433B37,0x24C2BA16,0x12A14D43,0x2A65C451,0x50940002,0x133AE4DD,\r
+    0x71DFF89E,0x10314E55,0x81AC77D6,0x5F11199B,0x043556F1,0xD7A3C76B,\r
+    0x3C11183B,0x5924A509,0xF28FE6ED,0x97F1FBFA,0x9EBABF2C,0x1E153C6E,\r
+    0x86E34570,0xEAE96FB1,0x860E5E0A,0x5A3E2AB3,0x771FE71C,0x4E3D06FA,\r
+    0x2965DCB9,0x99E71D0F,0x803E89D6,0x5266C825,0x2E4CC978,0x9C10B36A,\r
+    0xC6150EBA,0x94E2EA78,0xA5FC3C53,0x1E0A2DF4,0xF2F74EA7,0x361D2B3D,\r
+    0x1939260F,0x19C27960,0x5223A708,0xF71312B6,0xEBADFE6E,0xEAC31F66,\r
+    0xE3BC4595,0xA67BC883,0xB17F37D1,0x018CFF28,0xC332DDEF,0xBE6C5AA5,\r
+    0x65582185,0x68AB9802,0xEECEA50F,0xDB2F953B,0x2AEF7DAD,0x5B6E2F84,\r
+    0x1521B628,0x29076170,0xECDD4775,0x619F1510,0x13CCA830,0xEB61BD96,\r
+    0x0334FE1E,0xAA0363CF,0xB5735C90,0x4C70A239,0xD59E9E0B,0xCBAADE14,\r
+    0xEECC86BC,0x60622CA7,0x9CAB5CAB,0xB2F3846E,0x648B1EAF,0x19BDF0CA,\r
+    0xA02369B9,0x655ABB50,0x40685A32,0x3C2AB4B3,0x319EE9D5,0xC021B8F7,\r
+    0x9B540B19,0x875FA099,0x95F7997E,0x623D7DA8,0xF837889A,0x97E32D77,\r
+    0x11ED935F,0x16681281,0x0E358829,0xC7E61FD6,0x96DEDFA1,0x7858BA99,\r
+    0x57F584A5,0x1B227263,0x9B83C3FF,0x1AC24696,0xCDB30AEB,0x532E3054,\r
+    0x8FD948E4,0x6DBC3128,0x58EBF2EF,0x34C6FFEA,0xFE28ED61,0xEE7C3C73,\r
+    0x5D4A14D9,0xE864B7E3,0x42105D14,0x203E13E0,0x45EEE2B6,0xA3AAABEA,\r
+    0xDB6C4F15,0xFACB4FD0,0xC742F442,0xEF6ABBB5,0x654F3B1D,0x41CD2105,\r
+    0xD81E799E,0x86854DC7,0xE44B476A,0x3D816250,0xCF62A1F2,0x5B8D2646,\r
+    0xFC8883A0,0xC1C7B6A3,0x7F1524C3,0x69CB7492,0x47848A0B,0x5692B285,\r
+    0x095BBF00,0xAD19489D,0x1462B174,0x23820E00,0x58428D2A,0x0C55F5EA,\r
+    0x1DADF43E,0x233F7061,0x3372F092,0x8D937E41,0xD65FECF1,0x6C223BDB,\r
+    0x7CDE3759,0xCBEE7460,0x4085F2A7,0xCE77326E,0xA6078084,0x19F8509E,\r
+    0xE8EFD855,0x61D99735,0xA969A7AA,0xC50C06C2,0x5A04ABFC,0x800BCADC,\r
+    0x9E447A2E,0xC3453484,0xFDD56705,0x0E1E9EC9,0xDB73DBD3,0x105588CD,\r
+    0x675FDA79,0xE3674340,0xC5C43465,0x713E38D8,0x3D28F89E,0xF16DFF20,\r
+    0x153E21E7,0x8FB03D4A,0xE6E39F2B,0xDB83ADF7 };\r
+\r
+static const u32 ks2[256] = {\r
+    0xE93D5A68,0x948140F7,0xF64C261C,0x94692934,0x411520F7,0x7602D4F7,\r
+    0xBCF46B2E,0xD4A20068,0xD4082471,0x3320F46A,0x43B7D4B7,0x500061AF,\r
+    0x1E39F62E,0x97244546,0x14214F74,0xBF8B8840,0x4D95FC1D,0x96B591AF,\r
+    0x70F4DDD3,0x66A02F45,0xBFBC09EC,0x03BD9785,0x7FAC6DD0,0x31CB8504,\r
+    0x96EB27B3,0x55FD3941,0xDA2547E6,0xABCA0A9A,0x28507825,0x530429F4,\r
+    0x0A2C86DA,0xE9B66DFB,0x68DC1462,0xD7486900,0x680EC0A4,0x27A18DEE,\r
+    0x4F3FFEA2,0xE887AD8C,0xB58CE006,0x7AF4D6B6,0xAACE1E7C,0xD3375FEC,\r
+    0xCE78A399,0x406B2A42,0x20FE9E35,0xD9F385B9,0xEE39D7AB,0x3B124E8B,\r
+    0x1DC9FAF7,0x4B6D1856,0x26A36631,0xEAE397B2,0x3A6EFA74,0xDD5B4332,\r
+    0x6841E7F7,0xCA7820FB,0xFB0AF54E,0xD8FEB397,0x454056AC,0xBA489527,\r
+    0x55533A3A,0x20838D87,0xFE6BA9B7,0xD096954B,0x55A867BC,0xA1159A58,\r
+    0xCCA92963,0x99E1DB33,0xA62A4A56,0x3F3125F9,0x5EF47E1C,0x9029317C,\r
+    0xFDF8E802,0x04272F70,0x80BB155C,0x05282CE3,0x95C11548,0xE4C66D22,\r
+    0x48C1133F,0xC70F86DC,0x07F9C9EE,0x41041F0F,0x404779A4,0x5D886E17,\r
+    0x325F51EB,0xD59BC0D1,0xF2BCC18F,0x41113564,0x257B7834,0x602A9C60,\r
+    0xDFF8E8A3,0x1F636C1B,0x0E12B4C2,0x02E1329E,0xAF664FD1,0xCAD18115,\r
+    0x6B2395E0,0x333E92E1,0x3B240B62,0xEEBEB922,0x85B2A20E,0xE6BA0D99,\r
+    0xDE720C8C,0x2DA2F728,0xD0127845,0x95B794FD,0x647D0862,0xE7CCF5F0,\r
+    0x5449A36F,0x877D48FA,0xC39DFD27,0xF33E8D1E,0x0A476341,0x992EFF74,\r
+    0x3A6F6EAB,0xF4F8FD37,0xA812DC60,0xA1EBDDF8,0x991BE14C,0xDB6E6B0D,\r
+    0xC67B5510,0x6D672C37,0x2765D43B,0xDCD0E804,0xF1290DC7,0xCC00FFA3,\r
+    0xB5390F92,0x690FED0B,0x667B9FFB,0xCEDB7D9C,0xA091CF0B,0xD9155EA3,\r
+    0xBB132F88,0x515BAD24,0x7B9479BF,0x763BD6EB,0x37392EB3,0xCC115979,\r
+    0x8026E297,0xF42E312D,0x6842ADA7,0xC66A2B3B,0x12754CCC,0x782EF11C,\r
+    0x6A124237,0xB79251E7,0x06A1BBE6,0x4BFB6350,0x1A6B1018,0x11CAEDFA,\r
+    0x3D25BDD8,0xE2E1C3C9,0x44421659,0x0A121386,0xD90CEC6E,0xD5ABEA2A,\r
+    0x64AF674E,0xDA86A85F,0xBEBFE988,0x64E4C3FE,0x9DBC8057,0xF0F7C086,\r
+    0x60787BF8,0x6003604D,0xD1FD8346,0xF6381FB0,0x7745AE04,0xD736FCCC,\r
+    0x83426B33,0xF01EAB71,0xB0804187,0x3C005E5F,0x77A057BE,0xBDE8AE24,\r
+    0x55464299,0xBF582E61,0x4E58F48F,0xF2DDFDA2,0xF474EF38,0x8789BDC2,\r
+    0x5366F9C3,0xC8B38E74,0xB475F255,0x46FCD9B9,0x7AEB2661,0x8B1DDF84,\r
+    0x846A0E79,0x915F95E2,0x466E598E,0x20B45770,0x8CD55591,0xC902DE4C,\r
+    0xB90BACE1,0xBB8205D0,0x11A86248,0x7574A99E,0xB77F19B6,0xE0A9DC09,\r
+    0x662D09A1,0xC4324633,0xE85A1F02,0x09F0BE8C,0x4A99A025,0x1D6EFE10,\r
+    0x1AB93D1D,0x0BA5A4DF,0xA186F20F,0x2868F169,0xDCB7DA83,0x573906FE,\r
+    0xA1E2CE9B,0x4FCD7F52,0x50115E01,0xA70683FA,0xA002B5C4,0x0DE6D027,\r
+    0x9AF88C27,0x773F8641,0xC3604C06,0x61A806B5,0xF0177A28,0xC0F586E0,\r
+    0x006058AA,0x30DC7D62,0x11E69ED7,0x2338EA63,0x53C2DD94,0xC2C21634,\r
+    0xBBCBEE56,0x90BCB6DE,0xEBFC7DA1,0xCE591D76,0x6F05E409,0x4B7C0188,\r
+    0x39720A3D,0x7C927C24,0x86E3725F,0x724D9DB9,0x1AC15BB4,0xD39EB8FC,\r
+    0xED545578,0x08FCA5B5,0xD83D7CD3,0x4DAD0FC4,0x1E50EF5E,0xB161E6F8,\r
+    0xA28514D9,0x6C51133C,0x6FD5C7E7,0x56E14EC4,0x362ABFCE,0xDDC6C837,\r
+    0xD79A3234,0x92638212,0x670EFA8E,0x406000E0 };\r
+\r
+static const u32 ks3[256] = {\r
+    0x3A39CE37,0xD3FAF5CF,0xABC27737,0x5AC52D1B,0x5CB0679E,0x4FA33742,\r
+    0xD3822740,0x99BC9BBE,0xD5118E9D,0xBF0F7315,0xD62D1C7E,0xC700C47B,\r
+    0xB78C1B6B,0x21A19045,0xB26EB1BE,0x6A366EB4,0x5748AB2F,0xBC946E79,\r
+    0xC6A376D2,0x6549C2C8,0x530FF8EE,0x468DDE7D,0xD5730A1D,0x4CD04DC6,\r
+    0x2939BBDB,0xA9BA4650,0xAC9526E8,0xBE5EE304,0xA1FAD5F0,0x6A2D519A,\r
+    0x63EF8CE2,0x9A86EE22,0xC089C2B8,0x43242EF6,0xA51E03AA,0x9CF2D0A4,\r
+    0x83C061BA,0x9BE96A4D,0x8FE51550,0xBA645BD6,0x2826A2F9,0xA73A3AE1,\r
+    0x4BA99586,0xEF5562E9,0xC72FEFD3,0xF752F7DA,0x3F046F69,0x77FA0A59,\r
+    0x80E4A915,0x87B08601,0x9B09E6AD,0x3B3EE593,0xE990FD5A,0x9E34D797,\r
+    0x2CF0B7D9,0x022B8B51,0x96D5AC3A,0x017DA67D,0xD1CF3ED6,0x7C7D2D28,\r
+    0x1F9F25CF,0xADF2B89B,0x5AD6B472,0x5A88F54C,0xE029AC71,0xE019A5E6,\r
+    0x47B0ACFD,0xED93FA9B,0xE8D3C48D,0x283B57CC,0xF8D56629,0x79132E28,\r
+    0x785F0191,0xED756055,0xF7960E44,0xE3D35E8C,0x15056DD4,0x88F46DBA,\r
+    0x03A16125,0x0564F0BD,0xC3EB9E15,0x3C9057A2,0x97271AEC,0xA93A072A,\r
+    0x1B3F6D9B,0x1E6321F5,0xF59C66FB,0x26DCF319,0x7533D928,0xB155FDF5,\r
+    0x03563482,0x8ABA3CBB,0x28517711,0xC20AD9F8,0xABCC5167,0xCCAD925F,\r
+    0x4DE81751,0x3830DC8E,0x379D5862,0x9320F991,0xEA7A90C2,0xFB3E7BCE,\r
+    0x5121CE64,0x774FBE32,0xA8B6E37E,0xC3293D46,0x48DE5369,0x6413E680,\r
+    0xA2AE0810,0xDD6DB224,0x69852DFD,0x09072166,0xB39A460A,0x6445C0DD,\r
+    0x586CDECF,0x1C20C8AE,0x5BBEF7DD,0x1B588D40,0xCCD2017F,0x6BB4E3BB,\r
+    0xDDA26A7E,0x3A59FF45,0x3E350A44,0xBCB4CDD5,0x72EACEA8,0xFA6484BB,\r
+    0x8D6612AE,0xBF3C6F47,0xD29BE463,0x542F5D9E,0xAEC2771B,0xF64E6370,\r
+    0x740E0D8D,0xE75B1357,0xF8721671,0xAF537D5D,0x4040CB08,0x4EB4E2CC,\r
+    0x34D2466A,0x0115AF84,0xE1B00428,0x95983A1D,0x06B89FB4,0xCE6EA048,\r
+    0x6F3F3B82,0x3520AB82,0x011A1D4B,0x277227F8,0x611560B1,0xE7933FDC,\r
+    0xBB3A792B,0x344525BD,0xA08839E1,0x51CE794B,0x2F32C9B7,0xA01FBAC9,\r
+    0xE01CC87E,0xBCC7D1F6,0xCF0111C3,0xA1E8AAC7,0x1A908749,0xD44FBD9A,\r
+    0xD0DADECB,0xD50ADA38,0x0339C32A,0xC6913667,0x8DF9317C,0xE0B12B4F,\r
+    0xF79E59B7,0x43F5BB3A,0xF2D519FF,0x27D9459C,0xBF97222C,0x15E6FC2A,\r
+    0x0F91FC71,0x9B941525,0xFAE59361,0xCEB69CEB,0xC2A86459,0x12BAA8D1,\r
+    0xB6C1075E,0xE3056A0C,0x10D25065,0xCB03A442,0xE0EC6E0E,0x1698DB3B,\r
+    0x4C98A0BE,0x3278E964,0x9F1F9532,0xE0D392DF,0xD3A0342B,0x8971F21E,\r
+    0x1B0A7441,0x4BA3348C,0xC5BE7120,0xC37632D8,0xDF359F8D,0x9B992F2E,\r
+    0xE60B6F47,0x0FE3F11D,0xE54CDA54,0x1EDAD891,0xCE6279CF,0xCD3E7E6F,\r
+    0x1618B166,0xFD2C1D05,0x848FD2C5,0xF6FB2299,0xF523F357,0xA6327623,\r
+    0x93A83531,0x56CCCD02,0xACF08162,0x5A75EBB5,0x6E163697,0x88D273CC,\r
+    0xDE966292,0x81B949D0,0x4C50901B,0x71C65614,0xE6C6C7BD,0x327A140A,\r
+    0x45E1D006,0xC3F27B9A,0xC9AA53FD,0x62A80F00,0xBB25BFE2,0x35BDD2F6,\r
+    0x71126905,0xB2040222,0xB6CBCF7C,0xCD769C2B,0x53113EC0,0x1640E3D3,\r
+    0x38ABBD60,0x2547ADF0,0xBA38209C,0xF746CE76,0x77AFA1C5,0x20756060,\r
+    0x85CBFE4E,0x8AE88DD8,0x7AAAF9B0,0x4CF9AA7E,0x1948C25C,0x02FB8A8C,\r
+    0x01C36AE4,0xD6EBE1F9,0x90D4F869,0xA65CDEA0,0x3F09252D,0xC208E69F,\r
+    0xB74E6132,0xCE77E25B,0x578FDFE3,0x3AC372E6 };\r
+\r
+static const u32 ps[BLOWFISH_ROUNDS+2] = {\r
+    0x243F6A88,0x85A308D3,0x13198A2E,0x03707344,0xA4093822,0x299F31D0,\r
+    0x082EFA98,0xEC4E6C89,0x452821E6,0x38D01377,0xBE5466CF,0x34E90C6C,\r
+    0xC0AC29B7,0xC97C50DD,0x3F84D5B5,0xB5470917,0x9216D5D9,0x8979FB1B };\r
+\r
+\r
+\r
+#if BLOWFISH_ROUNDS != 16\r
+static inline u32\r
+function_F( BLOWFISH_context *bc, u32 x )\r
+{\r
+    u16 a, b, c, d;\r
+\r
+  #ifdef BIG_ENDIAN_HOST\r
+    a = ((byte*)&x)[0];\r
+    b = ((byte*)&x)[1];\r
+    c = ((byte*)&x)[2];\r
+    d = ((byte*)&x)[3];\r
+  #else\r
+    a = ((byte*)&x)[3];\r
+    b = ((byte*)&x)[2];\r
+    c = ((byte*)&x)[1];\r
+    d = ((byte*)&x)[0];\r
+  #endif\r
+\r
+    return ((bc->s0[a] + bc->s1[b]) ^ bc->s2[c] ) + bc->s3[d];\r
+}\r
+#endif\r
+\r
+#ifdef BIG_ENDIAN_HOST\r
+  #define F(x) ((( s0[((byte*)&x)[0]] + s1[((byte*)&x)[1]])     \\r
+                  ^ s2[((byte*)&x)[2]]) + s3[((byte*)&x)[3]] )\r
+#else\r
+  #define F(x) ((( s0[((byte*)&x)[3]] + s1[((byte*)&x)[2]])     \\r
+                  ^ s2[((byte*)&x)[1]]) + s3[((byte*)&x)[0]] )\r
+#endif\r
+#define R(l,r,i)  do { l ^= p[i]; r ^= F(l); } while(0)\r
+\r
+\r
+static void\r
+encrypt(  BLOWFISH_context *bc, u32 *ret_xl, u32 *ret_xr )\r
+{\r
+  #if BLOWFISH_ROUNDS == 16\r
+    u32 xl, xr, *s0, *s1, *s2, *s3, *p;\r
+\r
+    xl = *ret_xl;\r
+    xr = *ret_xr;\r
+    p = bc->p;\r
+    s0 = bc->s0;\r
+    s1 = bc->s1;\r
+    s2 = bc->s2;\r
+    s3 = bc->s3;\r
+\r
+    R( xl, xr, 0);\r
+    R( xr, xl, 1);\r
+    R( xl, xr, 2);\r
+    R( xr, xl, 3);\r
+    R( xl, xr, 4);\r
+    R( xr, xl, 5);\r
+    R( xl, xr, 6);\r
+    R( xr, xl, 7);\r
+    R( xl, xr, 8);\r
+    R( xr, xl, 9);\r
+    R( xl, xr, 10);\r
+    R( xr, xl, 11);\r
+    R( xl, xr, 12);\r
+    R( xr, xl, 13);\r
+    R( xl, xr, 14);\r
+    R( xr, xl, 15);\r
+\r
+    xl ^= p[BLOWFISH_ROUNDS];\r
+    xr ^= p[BLOWFISH_ROUNDS+1];\r
+\r
+    *ret_xl = xr;\r
+    *ret_xr = xl;\r
+\r
+  #else\r
+    u32 xl, xr, temp, *p;\r
+    int i;\r
+\r
+    xl = *ret_xl;\r
+    xr = *ret_xr;\r
+    p = bc->p;\r
+\r
+    for(i=0; i < BLOWFISH_ROUNDS; i++ ) {\r
+       xl ^= p[i];\r
+       xr ^= function_F(bc, xl);\r
+       temp = xl;\r
+       xl = xr;\r
+       xr = temp;\r
+    }\r
+    temp = xl;\r
+    xl = xr;\r
+    xr = temp;\r
+\r
+    xr ^= p[BLOWFISH_ROUNDS];\r
+    xl ^= p[BLOWFISH_ROUNDS+1];\r
+\r
+    *ret_xl = xl;\r
+    *ret_xr = xr;\r
+  #endif\r
+}\r
+\r
+\r
+static void\r
+decrypt(  BLOWFISH_context *bc, u32 *ret_xl, u32 *ret_xr )\r
+{\r
+  #if BLOWFISH_ROUNDS == 16\r
+    u32 xl, xr, *s0, *s1, *s2, *s3, *p;\r
+\r
+    xl = *ret_xl;\r
+    xr = *ret_xr;\r
+    p = bc->p;\r
+    s0 = bc->s0;\r
+    s1 = bc->s1;\r
+    s2 = bc->s2;\r
+    s3 = bc->s3;\r
+\r
+    R( xl, xr, 17);\r
+    R( xr, xl, 16);\r
+    R( xl, xr, 15);\r
+    R( xr, xl, 14);\r
+    R( xl, xr, 13);\r
+    R( xr, xl, 12);\r
+    R( xl, xr, 11);\r
+    R( xr, xl, 10);\r
+    R( xl, xr, 9);\r
+    R( xr, xl, 8);\r
+    R( xl, xr, 7);\r
+    R( xr, xl, 6);\r
+    R( xl, xr, 5);\r
+    R( xr, xl, 4);\r
+    R( xl, xr, 3);\r
+    R( xr, xl, 2);\r
+\r
+    xl ^= p[1];\r
+    xr ^= p[0];\r
+\r
+    *ret_xl = xr;\r
+    *ret_xr = xl;\r
+\r
+  #else\r
+    u32 xl, xr, temp, *p;\r
+    int i;\r
+\r
+    xl = *ret_xl;\r
+    xr = *ret_xr;\r
+    p = bc->p;\r
+\r
+    for(i=BLOWFISH_ROUNDS+1; i > 1; i-- ) {\r
+       xl ^= p[i];\r
+       xr ^= function_F(bc, xl);\r
+       temp = xl;\r
+       xl = xr;\r
+       xr = temp;\r
+    }\r
+\r
+    temp = xl;\r
+    xl = xr;\r
+    xr = temp;\r
+\r
+    xr ^= p[1];\r
+    xl ^= p[0];\r
+\r
+    *ret_xl = xl;\r
+    *ret_xr = xr;\r
+  #endif\r
+}\r
+\r
+#undef F\r
+#undef R\r
+\r
+static void\r
+encrypt_block( BLOWFISH_context *bc, byte *outbuf, byte *inbuf )\r
+{\r
+    u32 d1, d2;\r
+\r
+    d1 = inbuf[0] << 24 | inbuf[1] << 16 | inbuf[2] << 8 | inbuf[3];\r
+    d2 = inbuf[4] << 24 | inbuf[5] << 16 | inbuf[6] << 8 | inbuf[7];\r
+    encrypt( bc, &d1, &d2 );\r
+    outbuf[0] = (d1 >> 24) & 0xff;\r
+    outbuf[1] = (d1 >> 16) & 0xff;\r
+    outbuf[2] = (d1 >> 8) & 0xff;\r
+    outbuf[3] =  d1       & 0xff;\r
+    outbuf[4] = (d2 >> 24) & 0xff;\r
+    outbuf[5] = (d2 >> 16) & 0xff;\r
+    outbuf[6] = (d2 >> 8) & 0xff;\r
+    outbuf[7] =  d2       & 0xff;\r
+}\r
+\r
+\r
+static void\r
+decrypt_block( BLOWFISH_context *bc, byte *outbuf, byte *inbuf )\r
+{\r
+    u32 d1, d2;\r
+\r
+    d1 = inbuf[0] << 24 | inbuf[1] << 16 | inbuf[2] << 8 | inbuf[3];\r
+    d2 = inbuf[4] << 24 | inbuf[5] << 16 | inbuf[6] << 8 | inbuf[7];\r
+    decrypt( bc, &d1, &d2 );\r
+    outbuf[0] = (d1 >> 24) & 0xff;\r
+    outbuf[1] = (d1 >> 16) & 0xff;\r
+    outbuf[2] = (d1 >> 8) & 0xff;\r
+    outbuf[3] =  d1       & 0xff;\r
+    outbuf[4] = (d2 >> 24) & 0xff;\r
+    outbuf[5] = (d2 >> 16) & 0xff;\r
+    outbuf[6] = (d2 >> 8) & 0xff;\r
+    outbuf[7] =  d2       & 0xff;\r
+}\r
+\r
+\r
+static const char*\r
+selftest(void)\r
+{\r
+    BLOWFISH_context c;\r
+    byte plain[] = "BLOWFISH";\r
+    byte buffer[8];\r
+    byte plain3[] = { 0xFE, 0xDC, 0xBA, 0x98, 0x76, 0x54, 0x32, 0x10 };\r
+    byte key3[] = { 0x41, 0x79, 0x6E, 0xA0, 0x52, 0x61, 0x6E, 0xE4 };\r
+    byte cipher3[] = { 0xE1, 0x13, 0xF4, 0x10, 0x2C, 0xFC, 0xCE, 0x43 };\r
+\r
+    bf_setkey( &c, "abcdefghijklmnopqrstuvwxyz", 26 );\r
+    encrypt_block( &c, buffer, plain );\r
+    if( memcmp( buffer, "\x32\x4E\xD0\xFE\xF4\x13\xA2\x03", 8 ) )\r
+       return "Blowfish selftest failed (1).";\r
+    decrypt_block( &c, buffer, buffer );\r
+    if( memcmp( buffer, plain, 8 ) )\r
+       return "Blowfish selftest failed (2).";\r
+\r
+    bf_setkey( &c, key3, 8 );\r
+    encrypt_block( &c, buffer, plain3 );\r
+    if( memcmp( buffer, cipher3, 8 ) )\r
+       return "Blowfish selftest failed (3).";\r
+    decrypt_block( &c, buffer, buffer );\r
+    if( memcmp( buffer, plain3, 8 ) )\r
+       return "Blowfish selftest failed (4).";\r
+    return NULL;\r
+}\r
+\r
+\r
+\r
+static int\r
+bf_setkey( BLOWFISH_context *c, byte *key, unsigned keylen )\r
+{\r
+    int i, j;\r
+    u32 data, datal, datar;\r
+    static int initialized;\r
+    static const char *selftest_failed;\r
+\r
+    if( !initialized ) {\r
+       initialized = 1;\r
+       selftest_failed = selftest();\r
+#ifndef TOMBO\r
+       if( selftest_failed )\r
+           fprintf(stderr,"%s\n", selftest_failed ); \r
+#endif\r
+    }\r
+    if( selftest_failed )\r
+       return G10ERR_SELFTEST_FAILED;\r
+\r
+    for(i=0; i < BLOWFISH_ROUNDS+2; i++ )\r
+       c->p[i] = ps[i];\r
+    for(i=0; i < 256; i++ ) {\r
+       c->s0[i] = ks0[i];\r
+       c->s1[i] = ks1[i];\r
+       c->s2[i] = ks2[i];\r
+       c->s3[i] = ks3[i];\r
+    }\r
+\r
+    for(i=j=0; i < BLOWFISH_ROUNDS+2; i++ ) {\r
+      #ifdef BIG_ENDIAN_HOST\r
+       ((byte*)&data)[0] = key[j];\r
+       ((byte*)&data)[1] = key[(j+1)%keylen];\r
+       ((byte*)&data)[2] = key[(j+2)%keylen];\r
+       ((byte*)&data)[3] = key[(j+3)%keylen];\r
+      #else\r
+       ((byte*)&data)[3] = key[j];\r
+       ((byte*)&data)[2] = key[(j+1)%keylen];\r
+       ((byte*)&data)[1] = key[(j+2)%keylen];\r
+       ((byte*)&data)[0] = key[(j+3)%keylen];\r
+      #endif\r
+       c->p[i] ^= data;\r
+       j = (j+4) % keylen;\r
+    }\r
+\r
+    datal = datar = 0;\r
+    for(i=0; i < BLOWFISH_ROUNDS+2; i += 2 ) {\r
+       encrypt( c, &datal, &datar );\r
+       c->p[i]   = datal;\r
+       c->p[i+1] = datar;\r
+    }\r
+    for(i=0; i < 256; i += 2 ) {\r
+       encrypt( c, &datal, &datar );\r
+       c->s0[i]   = datal;\r
+       c->s0[i+1] = datar;\r
+    }\r
+    for(i=0; i < 256; i += 2 ) {\r
+       encrypt( c, &datal, &datar );\r
+       c->s1[i]   = datal;\r
+       c->s1[i+1] = datar;\r
+    }\r
+    for(i=0; i < 256; i += 2 ) {\r
+       encrypt( c, &datal, &datar );\r
+       c->s2[i]   = datal;\r
+       c->s2[i+1] = datar;\r
+    }\r
+    for(i=0; i < 256; i += 2 ) {\r
+       encrypt( c, &datal, &datar );\r
+       c->s3[i]   = datal;\r
+       c->s3[i+1] = datar;\r
+    }\r
+\r
+\r
+    /* Check for weak key.  A weak key is a key in which a value in */\r
+    /* the P-array (here c) occurs more than once per table.       */\r
+    for(i=0; i < 255; i++ ) {\r
+       for( j=i+1; j < 256; j++) {\r
+           if( (c->s0[i] == c->s0[j]) || (c->s1[i] == c->s1[j]) ||\r
+               (c->s2[i] == c->s2[j]) || (c->s3[i] == c->s3[j]) )\r
+               return G10ERR_WEAK_KEY;\r
+       }\r
+    }\r
+\r
+    return 0;\r
+}\r
+\r
+\r
+/****************\r
+ * Return some information about the algorithm.  We need algo here to\r
+ * distinguish different flavors of the algorithm.\r
+ * Returns: A pointer to string describing the algorithm or NULL if\r
+ *         the ALGO is invalid.\r
+ */\r
+const char *\r
+blowfish_get_info( int algo, size_t *keylen,\r
+                  size_t *blocksize, size_t *contextsize,\r
+                  int  (**r_setkey)( void *c, byte *key, unsigned keylen ),\r
+                  void (**r_encrypt)( void *c, byte *outbuf, byte *inbuf ),\r
+                  void (**r_decrypt)( void *c, byte *outbuf, byte *inbuf )\r
+                )\r
+{\r
+    *keylen = 128;\r
+    *blocksize = BLOWFISH_BLOCKSIZE;\r
+    *contextsize = sizeof(BLOWFISH_context);\r
+    *(int  (**)(BLOWFISH_context*, byte*, unsigned))r_setkey\r
+                                                       = bf_setkey;\r
+    *(void (**)(BLOWFISH_context*, byte*, byte*))r_encrypt\r
+                                                       = encrypt_block;\r
+    *(void (**)(BLOWFISH_context*, byte*, byte*))r_decrypt\r
+                                                       = decrypt_block;\r
+\r
+    if( algo == CIPHER_ALGO_BLOWFISH )\r
+       return "BLOWFISH";\r
+    return NULL;\r
+}\r
+\r
+#ifdef TOMBO\r
+\r
+typedef struct browfish_cbc {\r
+       byte buf[BLOWFISH_BLOCKSIZE];\r
+       BLOWFISH_context ctx;\r
+} BLOWFISH_CBC;\r
\r
+void *BF_Init(byte *key, unsigned keylen)\r
+{\r
+       char *IV = "BLOWFISH";\r
+       int i;\r
+\r
+       BLOWFISH_CBC *ctx = (BLOWFISH_CBC*)LocalAlloc(LMEM_FIXED, sizeof(BLOWFISH_CBC));\r
+\r
+       if (ctx == NULL) return NULL;\r
+\r
+       for (i = 0; i < BLOWFISH_BLOCKSIZE; i++) {\r
+               ctx->buf[i] = IV[i];\r
+       }\r
+       bf_setkey(&(ctx->ctx), key, keylen);\r
+\r
+       return ctx;\r
+}\r
+\r
+void BF_Enc(void *handle, byte *chipher, byte *plain, int len)\r
+{\r
+       byte buf[8];\r
+       int j;\r
+\r
+       BLOWFISH_CBC *ctx = (BLOWFISH_CBC*)handle;\r
+\r
+       for (j = 0; j < 8; j++) {\r
+               if (j < len) {\r
+                       buf[j] = ctx->buf[j] ^ plain[j];\r
+               } else {\r
+                       buf[j] = ctx->buf[j];\r
+               }\r
+       }\r
+       encrypt_block(&(ctx->ctx), chipher, buf);\r
+       for (j = 0; j < 8; j++) {\r
+               ctx->buf[j] = chipher[j];\r
+       }\r
+}\r
+\r
+void BF_Dec(void *handle, byte *plain, byte *chipher)\r
+{\r
+       int j;\r
+       byte buf[8];\r
+       BLOWFISH_CBC *ctx = (BLOWFISH_CBC*)handle;\r
+\r
+       decrypt_block(&(ctx->ctx), buf, chipher);\r
+       for (j = 0; j < 8; j++) {\r
+               plain[j] = buf[j] ^ ctx->buf[j];\r
+       }\r
+       for (j = 0; j < 8; j++) {\r
+               ctx->buf[j] = chipher[j];\r
+       }\r
+}\r
+\r
+void BF_Free(void *handle)\r
+{\r
+       BLOWFISH_CBC *ctx = (BLOWFISH_CBC*)handle;\r
+       LocalFree(ctx);\r
+}\r
+\r
+const char *CheckBlowFish()\r
+{\r
+       return selftest();\r
+}\r
+\r
+#ifdef COMMENT\r
+\r
+void BlowFishTest()\r
+{\r
+       char *key = "HELLO WORLD";\r
+       char *plainData = "Good News for WindowsCE Users!";\r
+       BLOWFISH_CBC ctx;\r
+\r
+       int i;\r
+\r
+       int l;\r
+\r
+       byte chipher[1024];\r
+       char plain[1024];\r
+\r
+       byte *cp;\r
+       char *pp;\r
+\r
+       cp = chipher;\r
+       pp = plain;\r
+\r
+       for (i = 0; i < 1024; i++) {chipher[i] = plain[i] = 0; }\r
+\r
+       // Encrypt\r
+       l = strlen(plainData);\r
+       cp = chipher;\r
+       pp = plainData;\r
+       if (l > 0) {\r
+               BF_Init(&ctx, (byte*)key, strlen(key));\r
+               while(l > 8) {\r
+                       BF_Enc(&ctx, cp, (byte*)pp, 8);\r
+                       cp += 8;\r
+                       pp += 8;\r
+                       l -= 8;\r
+               }\r
+               BF_Enc(&ctx, cp, (byte*)pp, l);\r
+       }\r
+       \r
+\r
+       BF_Init(&ctx, (byte*)key, strlen(key));\r
+       BF_Dec(&ctx, plain     , chipher     );\r
+       BF_Dec(&ctx, plain +  8, chipher +  8);\r
+       BF_Dec(&ctx, plain + 16, chipher + 16);\r
+       BF_Dec(&ctx, plain + 24, chipher + 24);\r
+}\r
+\r
+#endif\r
+\r
+#endif\r
+\r
diff --git a/Src/GNUPG/md5.c b/Src/GNUPG/md5.c
new file mode 100644 (file)
index 0000000..59c63e6
--- /dev/null
@@ -0,0 +1,437 @@
+/* md5.c - MD5 Message-Digest Algorithm\r
+ *     Copyright (C) 1995, 1996, 1998, 1999 Free Software Foundation, Inc.\r
+ *\r
+ * according to the definition of MD5 in RFC 1321 from April 1992.\r
+ * NOTE: This is *not* the same file as the one from glibc.\r
+ *\r
+ * This program is free software; you can redistribute it and/or modify it\r
+ * under the terms of the GNU General Public License as published by the\r
+ * Free Software Foundation; either version 2, or (at your option) any\r
+ * later version.\r
+ *\r
+ * This program is distributed in the hope that it will be useful,\r
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of\r
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\r
+ * GNU General Public License for more details.\r
+ *\r
+ * You should have received a copy of the GNU General Public License\r
+ * along with this program; if not, write to the Free Software Foundation,\r
+ * Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.\r
+ */\r
+/* Written by Ulrich Drepper <drepper@gnu.ai.mit.edu>, 1995.  */\r
+/* heavily modified for GnuPG by <werner.koch@guug.de> */\r
+\r
+/* Test values:\r
+ * ""                  D4 1D 8C D9 8F 00 B2 04  E9 80 09 98 EC F8 42 7E\r
+ * "a"                 0C C1 75 B9 C0 F1 B6 A8  31 C3 99 E2 69 77 26 61\r
+ * "abc                90 01 50 98 3C D2 4F B0  D6 96 3F 7D 28 E1 7F 72\r
+ * "message digest"    F9 6B 69 7D 7C B7 93 8D  52 5A 2F 31 AA F1 61 D0\r
+ */\r
+\r
+#ifndef TOMBO\r
+#include <config.h>\r
+\r
+#include <stdio.h>\r
+#include <stdlib.h>\r
+#include <string.h>\r
+#include <assert.h>\r
+#include "util.h"\r
+#include "memory.h"\r
+#include "dynload.h"\r
+#endif\r
+\r
+#ifdef TOMBO\r
+#include <windows.h>\r
+#define u32 DWORD\r
+#define DIM(v) (sizeof(v)/sizeof((v)[0]))\r
+#endif\r
+\r
+#include "bithelp.h"\r
+\r
+\r
+typedef struct {\r
+    u32 A,B,C,D;         /* chaining variables */\r
+    u32  nblocks;\r
+    byte buf[64];\r
+    int  count;\r
+} MD5_CONTEXT;\r
+\r
+\r
+static void\r
+md5_init( MD5_CONTEXT *ctx )\r
+{\r
+    ctx->A = 0x67452301;\r
+    ctx->B = 0xefcdab89;\r
+    ctx->C = 0x98badcfe;\r
+    ctx->D = 0x10325476;\r
+\r
+    ctx->nblocks = 0;\r
+    ctx->count = 0;\r
+}\r
+\r
+\r
+\r
+\r
+/* These are the four functions used in the four steps of the MD5 algorithm\r
+   and defined in the RFC 1321.  The first function is a little bit optimized\r
+   (as found in Colin Plumbs public domain implementation).  */\r
+/* #define FF(b, c, d) ((b & c) | (~b & d)) */\r
+#define FF(b, c, d) (d ^ (b & (c ^ d)))\r
+#define FG(b, c, d) FF (d, b, c)\r
+#define FH(b, c, d) (b ^ c ^ d)\r
+#define FI(b, c, d) (c ^ (b | ~d))\r
+\r
+\r
+/****************\r
+ * transform n*64 bytes\r
+ */\r
+static void\r
+/*transform( MD5_CONTEXT *ctx, const void *buffer, size_t len )*/\r
+transform( MD5_CONTEXT *ctx, byte *data )\r
+{\r
+    u32 correct_words[16];\r
+    u32 A = ctx->A;\r
+    u32 B = ctx->B;\r
+    u32 C = ctx->C;\r
+    u32 D = ctx->D;\r
+    u32 *cwp = correct_words;\r
+\r
+  #ifdef BIG_ENDIAN_HOST\r
+    { int i;\r
+      byte *p2, *p1;\r
+      for(i=0, p1=data, p2=(byte*)correct_words; i < 16; i++, p2 += 4 ) {\r
+       p2[3] = *p1++;\r
+       p2[2] = *p1++;\r
+       p2[1] = *p1++;\r
+       p2[0] = *p1++;\r
+      }\r
+    }\r
+  #else\r
+    memcpy( correct_words, data, 64 );\r
+  #endif\r
+\r
+\r
+#define OP(a, b, c, d, s, T)                                       \\r
+  do                                                               \\r
+    {                                                              \\r
+      a += FF (b, c, d) + (*cwp++) + T;            \\r
+      a = rol(a, s);                                               \\r
+      a += b;                                                      \\r
+    }                                                              \\r
+  while (0)\r
+\r
+    /* Before we start, one word about the strange constants.\r
+       They are defined in RFC 1321 as\r
+\r
+       T[i] = (int) (4294967296.0 * fabs (sin (i))), i=1..64\r
+     */\r
+\r
+    /* Round 1.  */\r
+    OP (A, B, C, D,  7, 0xd76aa478);\r
+    OP (D, A, B, C, 12, 0xe8c7b756);\r
+    OP (C, D, A, B, 17, 0x242070db);\r
+    OP (B, C, D, A, 22, 0xc1bdceee);\r
+    OP (A, B, C, D,  7, 0xf57c0faf);\r
+    OP (D, A, B, C, 12, 0x4787c62a);\r
+    OP (C, D, A, B, 17, 0xa8304613);\r
+    OP (B, C, D, A, 22, 0xfd469501);\r
+    OP (A, B, C, D,  7, 0x698098d8);\r
+    OP (D, A, B, C, 12, 0x8b44f7af);\r
+    OP (C, D, A, B, 17, 0xffff5bb1);\r
+    OP (B, C, D, A, 22, 0x895cd7be);\r
+    OP (A, B, C, D,  7, 0x6b901122);\r
+    OP (D, A, B, C, 12, 0xfd987193);\r
+    OP (C, D, A, B, 17, 0xa679438e);\r
+    OP (B, C, D, A, 22, 0x49b40821);\r
+\r
+#undef OP\r
+#define OP(f, a, b, c, d, k, s, T)  \\r
+    do                                                               \\r
+      {                                                              \\r
+       a += f (b, c, d) + correct_words[k] + T;                      \\r
+       a = rol(a, s);                                                \\r
+       a += b;                                                       \\r
+      }                                                              \\r
+    while (0)\r
+\r
+    /* Round 2.  */\r
+    OP (FG, A, B, C, D,  1,  5, 0xf61e2562);\r
+    OP (FG, D, A, B, C,  6,  9, 0xc040b340);\r
+    OP (FG, C, D, A, B, 11, 14, 0x265e5a51);\r
+    OP (FG, B, C, D, A,  0, 20, 0xe9b6c7aa);\r
+    OP (FG, A, B, C, D,  5,  5, 0xd62f105d);\r
+    OP (FG, D, A, B, C, 10,  9, 0x02441453);\r
+    OP (FG, C, D, A, B, 15, 14, 0xd8a1e681);\r
+    OP (FG, B, C, D, A,  4, 20, 0xe7d3fbc8);\r
+    OP (FG, A, B, C, D,  9,  5, 0x21e1cde6);\r
+    OP (FG, D, A, B, C, 14,  9, 0xc33707d6);\r
+    OP (FG, C, D, A, B,  3, 14, 0xf4d50d87);\r
+    OP (FG, B, C, D, A,  8, 20, 0x455a14ed);\r
+    OP (FG, A, B, C, D, 13,  5, 0xa9e3e905);\r
+    OP (FG, D, A, B, C,  2,  9, 0xfcefa3f8);\r
+    OP (FG, C, D, A, B,  7, 14, 0x676f02d9);\r
+    OP (FG, B, C, D, A, 12, 20, 0x8d2a4c8a);\r
+\r
+    /* Round 3.  */\r
+    OP (FH, A, B, C, D,  5,  4, 0xfffa3942);\r
+    OP (FH, D, A, B, C,  8, 11, 0x8771f681);\r
+    OP (FH, C, D, A, B, 11, 16, 0x6d9d6122);\r
+    OP (FH, B, C, D, A, 14, 23, 0xfde5380c);\r
+    OP (FH, A, B, C, D,  1,  4, 0xa4beea44);\r
+    OP (FH, D, A, B, C,  4, 11, 0x4bdecfa9);\r
+    OP (FH, C, D, A, B,  7, 16, 0xf6bb4b60);\r
+    OP (FH, B, C, D, A, 10, 23, 0xbebfbc70);\r
+    OP (FH, A, B, C, D, 13,  4, 0x289b7ec6);\r
+    OP (FH, D, A, B, C,  0, 11, 0xeaa127fa);\r
+    OP (FH, C, D, A, B,  3, 16, 0xd4ef3085);\r
+    OP (FH, B, C, D, A,  6, 23, 0x04881d05);\r
+    OP (FH, A, B, C, D,  9,  4, 0xd9d4d039);\r
+    OP (FH, D, A, B, C, 12, 11, 0xe6db99e5);\r
+    OP (FH, C, D, A, B, 15, 16, 0x1fa27cf8);\r
+    OP (FH, B, C, D, A,  2, 23, 0xc4ac5665);\r
+\r
+    /* Round 4.  */\r
+    OP (FI, A, B, C, D,  0,  6, 0xf4292244);\r
+    OP (FI, D, A, B, C,  7, 10, 0x432aff97);\r
+    OP (FI, C, D, A, B, 14, 15, 0xab9423a7);\r
+    OP (FI, B, C, D, A,  5, 21, 0xfc93a039);\r
+    OP (FI, A, B, C, D, 12,  6, 0x655b59c3);\r
+    OP (FI, D, A, B, C,  3, 10, 0x8f0ccc92);\r
+    OP (FI, C, D, A, B, 10, 15, 0xffeff47d);\r
+    OP (FI, B, C, D, A,  1, 21, 0x85845dd1);\r
+    OP (FI, A, B, C, D,  8,  6, 0x6fa87e4f);\r
+    OP (FI, D, A, B, C, 15, 10, 0xfe2ce6e0);\r
+    OP (FI, C, D, A, B,  6, 15, 0xa3014314);\r
+    OP (FI, B, C, D, A, 13, 21, 0x4e0811a1);\r
+    OP (FI, A, B, C, D,  4,  6, 0xf7537e82);\r
+    OP (FI, D, A, B, C, 11, 10, 0xbd3af235);\r
+    OP (FI, C, D, A, B,  2, 15, 0x2ad7d2bb);\r
+    OP (FI, B, C, D, A,  9, 21, 0xeb86d391);\r
+\r
+    /* Put checksum in context given as argument.  */\r
+    ctx->A += A;\r
+    ctx->B += B;\r
+    ctx->C += C;\r
+    ctx->D += D;\r
+}\r
+\r
+\r
+\r
+/* The routine updates the message-digest context to\r
+ * account for the presence of each of the characters inBuf[0..inLen-1]\r
+ * in the message whose digest is being computed.\r
+ */\r
+static void\r
+md5_write( MD5_CONTEXT *hd, byte *inbuf, size_t inlen)\r
+{\r
+    if( hd->count == 64 ) { /* flush the buffer */\r
+       transform( hd, hd->buf );\r
+       hd->count = 0;\r
+       hd->nblocks++;\r
+    }\r
+    if( !inbuf )\r
+       return;\r
+    if( hd->count ) {\r
+       for( ; inlen && hd->count < 64; inlen-- )\r
+           hd->buf[hd->count++] = *inbuf++;\r
+       md5_write( hd, NULL, 0 );\r
+       if( !inlen )\r
+           return;\r
+    }\r
+\r
+    while( inlen >= 64 ) {\r
+       transform( hd, inbuf );\r
+       hd->count = 0;\r
+       hd->nblocks++;\r
+       inlen -= 64;\r
+       inbuf += 64;\r
+    }\r
+    for( ; inlen && hd->count < 64; inlen-- )\r
+       hd->buf[hd->count++] = *inbuf++;\r
+\r
+}\r
+\r
+\r
+\r
+/* The routine final terminates the message-digest computation and\r
+ * ends with the desired message digest in mdContext->digest[0...15].\r
+ * The handle is prepared for a new MD5 cycle.\r
+ * Returns 16 bytes representing the digest.\r
+ */\r
+\r
+static void\r
+md5_final( MD5_CONTEXT *hd )\r
+{\r
+    u32 t, msb, lsb;\r
+    byte *p;\r
+\r
+    md5_write(hd, NULL, 0); /* flush */;\r
+\r
+    msb = 0;\r
+    t = hd->nblocks;\r
+    if( (lsb = t << 6) < t ) /* multiply by 64 to make a byte count */\r
+       msb++;\r
+    msb += t >> 26;\r
+    t = lsb;\r
+    if( (lsb = t + hd->count) < t ) /* add the count */\r
+       msb++;\r
+    t = lsb;\r
+    if( (lsb = t << 3) < t ) /* multiply by 8 to make a bit count */\r
+       msb++;\r
+    msb += t >> 29;\r
+\r
+    if( hd->count < 56 ) { /* enough room */\r
+       hd->buf[hd->count++] = 0x80; /* pad */\r
+       while( hd->count < 56 )\r
+           hd->buf[hd->count++] = 0;  /* pad */\r
+    }\r
+    else { /* need one extra block */\r
+       hd->buf[hd->count++] = 0x80; /* pad character */\r
+       while( hd->count < 64 )\r
+           hd->buf[hd->count++] = 0;\r
+       md5_write(hd, NULL, 0);  /* flush */;\r
+       memset(hd->buf, 0, 56 ); /* fill next block with zeroes */\r
+    }\r
+    /* append the 64 bit count */\r
+    hd->buf[56] = lsb     ;\r
+    hd->buf[57] = lsb >>  8;\r
+    hd->buf[58] = lsb >> 16;\r
+    hd->buf[59] = lsb >> 24;\r
+    hd->buf[60] = msb     ;\r
+    hd->buf[61] = msb >>  8;\r
+    hd->buf[62] = msb >> 16;\r
+    hd->buf[63] = msb >> 24;\r
+    transform( hd, hd->buf );\r
+\r
+    p = hd->buf;\r
+  #ifdef BIG_ENDIAN_HOST\r
+    #define X(a) do { *p++ = hd->##a     ; *p++ = hd->##a >> 8;      \\r
+                     *p++ = hd->##a >> 16; *p++ = hd->##a >> 24; } while(0)\r
+  #else /* little endian */\r
+    /*#define X(a) do { *(u32*)p = hd->##a ; p += 4; } while(0)*/\r
+    /* Unixware's cpp doesn't like the above construct so we do it his way:\r
+     * (reported by Allan Clark) */\r
+    #define X(a) do { *(u32*)p = (*hd).a ; p += 4; } while(0)\r
+  #endif\r
+    X(A);\r
+    X(B);\r
+    X(C);\r
+    X(D);\r
+  #undef X\r
+\r
+}\r
+\r
+static byte *\r
+md5_read( MD5_CONTEXT *hd )\r
+{\r
+    return hd->buf;\r
+}\r
+\r
+/****************\r
+ * Return some information about the algorithm.  We need algo here to\r
+ * distinguish different flavors of the algorithm.\r
+ * Returns: A pointer to string describing the algorithm or NULL if\r
+ *         the ALGO is invalid.\r
+ */\r
+static const char *\r
+md5_get_info( int algo, size_t *contextsize,\r
+              byte **r_asnoid, int *r_asnlen, int *r_mdlen,\r
+              void (**r_init)( void *c ),\r
+              void (**r_write)( void *c, byte *buf, size_t nbytes ),\r
+              void (**r_final)( void *c ),\r
+              byte *(**r_read)( void *c )\r
+            )\r
+{\r
+    static byte asn[18] = /* Object ID is 1.2.840.113549.2.5 */\r
+                   { 0x30, 0x20, 0x30, 0x0c, 0x06, 0x08, 0x2a, 0x86,0x48,\r
+                     0x86, 0xf7, 0x0d, 0x02, 0x05, 0x05, 0x00, 0x04, 0x10 };\r
+\r
+    if( algo != 1 )\r
+       return NULL;\r
+\r
+    *contextsize = sizeof(MD5_CONTEXT);\r
+    *r_asnoid = asn;\r
+    *r_asnlen = DIM(asn);\r
+    *r_mdlen = 16;\r
+    *(void  (**)(MD5_CONTEXT *))r_init                = md5_init;\r
+    *(void  (**)(MD5_CONTEXT *, byte*, size_t))r_write = md5_write;\r
+    *(void  (**)(MD5_CONTEXT *))r_final               = md5_final;\r
+    *(byte *(**)(MD5_CONTEXT *))r_read                = md5_read;\r
+\r
+    return "MD5";\r
+}\r
+\r
+\r
+#ifndef IS_MODULE\r
+static\r
+#endif\r
+const char * const gnupgext_version = "MD5 ($Revision: 1.2 $)";\r
+\r
+static struct {\r
+    int class;\r
+    int version;\r
+    int  value;\r
+    void (*func)(void);\r
+} func_table[] = {\r
+    { 10, 1, 0, (void(*)(void))md5_get_info },\r
+    { 11, 1, 1 },\r
+};\r
+\r
+\r
+#ifndef IS_MODULE\r
+static\r
+#endif\r
+void *\r
+gnupgext_enum_func( int what, int *sequence, int *class, int *vers )\r
+{\r
+    void *ret;\r
+    int i = *sequence;\r
+\r
+    do {\r
+       if( i >= DIM(func_table) || i < 0 )\r
+           return NULL;\r
+       *class = func_table[i].class;\r
+       *vers  = func_table[i].version;\r
+       switch( *class ) {\r
+         case 11: case 21: case 31: ret = &func_table[i].value; break;\r
+         default:                   ret = func_table[i].func; break;\r
+       }\r
+       i++;\r
+    } while( what && what != *class );\r
+\r
+    *sequence = i;\r
+    return ret;\r
+}\r
+\r
+\r
+\r
+#ifndef TOMBO\r
+#ifndef IS_MODULE\r
+void\r
+md5_constructor(void)\r
+{\r
+    register_internal_cipher_extension( gnupgext_version, gnupgext_enum_func );\r
+}\r
+#endif\r
+#endif\r
+\r
+#ifdef TOMBO\r
+\r
+void getMD5Sum(byte *md5sum, byte *in, int len)\r
+{\r
+       MD5_CONTEXT cxt;\r
+       int i;\r
+\r
+       md5_init(&cxt);\r
+       md5_write(&cxt, in, len);\r
+       md5_final(&cxt);\r
+\r
+       for (i = 0; i < 16; i++) {\r
+               md5sum[i] = cxt.buf[i];\r
+       }\r
+}\r
+\r
+#endif\r
+\r
+\r
+/* end of file */\r
diff --git a/Src/GrepDialog.cpp b/Src/GrepDialog.cpp
new file mode 100644 (file)
index 0000000..8fb5ceb
--- /dev/null
@@ -0,0 +1,136 @@
+#include <windows.h>\r
+#include <tchar.h>\r
+#include "Tombo.h"\r
+#include "resource.h"\r
+#include "Message.h"\r
+#include "GrepDialog.h"\r
+#include "Property.h"\r
+#include "PropertyPage.h"\r
+#include "DialogTemplate.h"\r
+\r
+#define NUM_GREP_PROP_PAGES 1\r
+\r
+/////////////////////////////////////////\r
+// ctor & dtor\r
+/////////////////////////////////////////\r
+\r
+BOOL GrepDialog::Init(LPCTSTR pPath)\r
+{\r
+       if (!sPath.Set(pPath)) return FALSE;\r
+       return TRUE;\r
+}\r
+\r
+/////////////////////////////////////////\r
+// Main Tab\r
+/////////////////////////////////////////\r
+\r
+class GrepMainTab : public PropertyTab {\r
+       GrepDialog *pDialog;\r
+public:\r
+       GrepMainTab(GrepDialog *pDlg) : pDialog(pDlg), PropertyTab(IDD_GREPTAB_MAIN, MSG_GREPTAB_MAIN, (DLGPROC)DefaultPageProc) {}\r
+       ~GrepMainTab() {}\r
+\r
+       void Init(HWND hDlg);\r
+       BOOL Apply(HWND hDlg);\r
+       BOOL OnCommand(HWND hDlg, WPARAM wParam, LPARAM lParam);\r
+};\r
+\r
+static DlgMsgRes aGrepMain[] = {\r
+       { IDC_GREPTAB_MAIN_POSLABEL,      MSG_ID_DLG_GREPTAB_MAIN_POSLABEL },\r
+       { IDC_GREPTAB_MAIN_STRLABEL,      MSG_ID_DLG_GREPTAB_MAIN_STRLABEL },\r
+       { IDC_GREPTAB_MAIN_CASESENSITIVE, MSG_ID_DLG_FILTERDEF_ADD_REGEX_CASESENSITIVE },\r
+       { IDC_GREPTAB_MAIN_ENCRYPTNOTE,   MSG_ID_DLG_FILTERDEF_ADD_REGEX_INCLUDECRYPTED },\r
+       { IDC_GREPTAB_MAIN_FILENAME,      MSG_ID_DLG_FILTERDEF_ADD_REGEX_FORFILENAME },\r
+};\r
+\r
+void GrepMainTab::Init(HWND hDlg)\r
+{\r
+       OverrideDlgMsg(hDlg, -1, aGrepMain, sizeof(aGrepMain)/sizeof(DlgMsgRes));\r
+\r
+       HWND hCombo = GetDlgItem(hDlg, IDC_GREPTAB_MAIN_SEARCHSTRING);\r
+       HWND hPath = GetDlgItem(hDlg, IDC_GREPTAB_MAIN_STARTDIR);\r
+\r
+       TString sDispPath;\r
+       if (!sDispPath.Join(TEXT("folder:\\"), pDialog->GetPath())) return;\r
+       SetWindowText(hPath, sDispPath.Get());\r
+       LPCTSTR pHist = g_Property.GetSearchHist();\r
+       SetHistoryToComboBox(hCombo, pHist);\r
+}\r
+\r
+BOOL GrepMainTab::Apply(HWND hDlg)\r
+{\r
+       HWND hCaseSensitive = GetDlgItem(hDlg, IDC_GREPTAB_MAIN_CASESENSITIVE);\r
+       HWND hCheckCrypted = GetDlgItem(hDlg, IDC_GREPTAB_MAIN_ENCRYPTNOTE);\r
+       HWND hCheckFileName = GetDlgItem(hDlg, IDC_GREPTAB_MAIN_FILENAME);\r
+       HWND hMatchString = GetDlgItem(hDlg, IDC_GREPTAB_MAIN_SEARCHSTRING);\r
+\r
+       TString *pMatchString = pDialog->GetMatchStringPtr();\r
+       DWORD nLen = GetWindowTextLength(hMatchString);\r
+       if (!pMatchString->Alloc(nLen + 1)) return FALSE;\r
+       GetWindowText(hMatchString, pMatchString->Get(), nLen + 1);\r
+       g_Property.SetSearchHist(GetHistoryFromComboBox(hMatchString, pMatchString->Get(), NUM_SEARCH_HISTORY));\r
+\r
+       pDialog->SetCaseSensitive(SendMessage(hCaseSensitive, BM_GETCHECK, 0, 0) == BST_CHECKED);\r
+       pDialog->SetCheckCryptedMemo(SendMessage(hCheckCrypted, BM_GETCHECK, 0, 0) == BST_CHECKED);\r
+       pDialog->SetCheckFileName(SendMessage(hCheckFileName, BM_GETCHECK, 0, 0) == BST_CHECKED);\r
+\r
+       return TRUE;\r
+}\r
+\r
+BOOL GrepMainTab::OnCommand(HWND hDlg, WPARAM wParam, LPARAM lParam)\r
+{\r
+       return TRUE;\r
+}\r
+\r
+/////////////////////////////////////////\r
+// Persistent Tab\r
+/////////////////////////////////////////\r
+\r
+class GrepPersistTab : public PropertyTab {\r
+public:\r
+       GrepPersistTab() : PropertyTab(IDD_GREPTAB_PERSIST, MSG_GREPTAB_PERSIST, (DLGPROC)DefaultPageProc) {}\r
+       ~GrepPersistTab() {}\r
+\r
+       void Init(HWND hDlg);\r
+       BOOL Apply(HWND hDlg);\r
+       BOOL OnCommand(HWND hDlg, WPARAM wParam, LPARAM lParam);\r
+};\r
+\r
+//static DlgMsgRes aPersist[] = {\r
+//     { IDC_PROPTAB_PERSIST_SELECTPERSIST, MSG_ID_DLG_GREPTAB_PERSIST_KEEP },\r
+//     { IDC_GREPTAB_PERSIST_LABEL, MSG_ID_DLG_GREPTAB_PERSIST_LABEL },\r
+//};\r
+\r
+void GrepPersistTab::Init(HWND hDlg)\r
+{\r
+//     OverrideDlgMsg(hDlg, -1, aPersist, sizeof(aPersist)/sizeof(DlgMsgRes));\r
+}\r
+\r
+BOOL GrepPersistTab::Apply(HWND hDlg)\r
+{\r
+       return TRUE;\r
+}\r
+\r
+BOOL GrepPersistTab::OnCommand(HWND hDlg, WPARAM wParam, LPARAM lParam)\r
+{\r
+       return TRUE;\r
+}\r
+\r
+/////////////////////////////////////////\r
+// Dialog popup\r
+/////////////////////////////////////////\r
+\r
+DWORD GrepDialog::Popup(HINSTANCE hInst, HWND hParent)\r
+{\r
+       PropertyTab *pages[NUM_GREP_PROP_PAGES];\r
+       GrepMainTab pgMain(this);\r
+       GrepPersistTab pgPersist;\r
+\r
+       pages[0] = &pgMain;\r
+//     pages[1] = &pgPersist;\r
+\r
+       PropertyPage pp;\r
+\r
+       return pp.Popup(hInst, hParent, pages, NUM_GREP_PROP_PAGES, MSG_GREPTAB_MAIN_TTL, MAKEINTRESOURCE(IDI_TOMBO));\r
+}\r
+\r
diff --git a/Src/GrepDialog.h b/Src/GrepDialog.h
new file mode 100644 (file)
index 0000000..0146a7d
--- /dev/null
@@ -0,0 +1,52 @@
+#ifndef GREPDIALOG_H\r
+#define GREPDIALOG_H\r
+\r
+#include "TString.h"\r
+\r
+/////////////////////////////////////////\r
+// Advanced grep setting dialog\r
+/////////////////////////////////////////\r
+\r
+class GrepDialog {\r
+       TString sPath;\r
+       TString sMatchString;\r
+\r
+       BOOL bCaseSensitive;\r
+       BOOL bCheckCryptedMemo;\r
+       BOOL bCheckFileName;\r
+public:\r
+\r
+       ///////////////////////////\r
+       // ctor & dtor\r
+\r
+       GrepDialog() {}\r
+       ~GrepDialog() {}\r
+\r
+       BOOL Init(LPCTSTR pPath);\r
+\r
+       ///////////////////////////\r
+       // Popup function (entry point for other class&funcs)\r
+\r
+       DWORD Popup(HINSTANCE hInst, HWND hWnd);\r
+\r
+       ///////////////////////////\r
+       // Data accessor\r
+\r
+       LPCTSTR GetPath() { return sPath.Get(); }\r
+       LPCTSTR GetMatchString() { return sMatchString.Get(); }\r
+       LPCTSTR GetName() { return NULL; }\r
+\r
+       BOOL IsCaseSensitive() { return bCaseSensitive; }\r
+       BOOL IsCheckCryptedMemo() { return bCheckCryptedMemo; }\r
+       BOOL IsCheckFileName() { return bCheckFileName; }\r
+       BOOL IsNegate() { return 0; }\r
+\r
+       ///////////////////////////\r
+       // for property tabs\r
+       void SetCaseSensitive(BOOL b) { bCaseSensitive = b; }\r
+       void SetCheckCryptedMemo(BOOL b) { bCheckCryptedMemo = b; }\r
+       void SetCheckFileName(BOOL b) { bCheckFileName = b; }\r
+       TString *GetMatchStringPtr() { return &sMatchString; }\r
+};\r
+\r
+#endif\r
diff --git a/Src/HPCPlatform.cpp b/Src/HPCPlatform.cpp
new file mode 100644 (file)
index 0000000..d49e394
--- /dev/null
@@ -0,0 +1,409 @@
+#if defined(PLATFORM_HPC)\r
+#include <windows.h>\r
+#include <commctrl.h>\r
+\r
+#include "resource.h"\r
+#include "Property.h"\r
+#include "Tombo.h"\r
+#include "Message.h"\r
+\r
+#include "StatusBar.h"\r
+#include "PlatformLayer.h"\r
+#include "HPCPlatform.h"\r
+#include "Property.h"\r
+\r
+#define NUM_MY_TOOLBAR_BMPS 0\r
+#define NUM_IMG_BUTTONS 10\r
+\r
+#define NUM_CMDBAR_BUTTONS 19\r
+static TBBUTTON aCmdBarButtons[NUM_CMDBAR_BUTTONS] = {\r
+       {0,                                  0,              TBSTATE_ENABLED, TBSTYLE_SEP,    0, 0, 0, -1},\r
+       {STD_FILENEW + NUM_MY_TOOLBAR_BMPS,  IDM_NEWMEMO,    TBSTATE_ENABLED, TBSTYLE_BUTTON, 0, 0, 0, -1},\r
+       {STD_FILESAVE + NUM_MY_TOOLBAR_BMPS, IDM_SAVE,       TBSTATE_ENABLED, TBSTYLE_BUTTON, 0, 0, 0, -1},\r
+       {0,                                  0,              TBSTATE_ENABLED, TBSTYLE_SEP,    0, 0, 0, -1},\r
+       {STD_CUT + NUM_MY_TOOLBAR_BMPS,      IDM_CUT,        TBSTATE_ENABLED, TBSTYLE_BUTTON, 0, 0, 0, -1},\r
+       {STD_COPY + NUM_MY_TOOLBAR_BMPS,     IDM_COPY,       TBSTATE_ENABLED, TBSTYLE_BUTTON, 0, 0, 0, -1},\r
+       {STD_PASTE + NUM_MY_TOOLBAR_BMPS,    IDM_PASTE,      TBSTATE_ENABLED, TBSTYLE_BUTTON, 0, 0, 0, -1},\r
+       {0,                                  0,              TBSTATE_ENABLED, TBSTYLE_SEP,    0, 0, 0, -1},\r
+       {STD_DELETE + NUM_MY_TOOLBAR_BMPS,   IDM_DELETEITEM, TBSTATE_ENABLED, TBSTYLE_BUTTON, 0, 0, 0, -1},\r
+       {0,                                  0,              TBSTATE_ENABLED, TBSTYLE_SEP,    0, 0, 0, -1},\r
+       {18,                                 IDM_INSDATE1,   TBSTATE_ENABLED, TBSTYLE_BUTTON, 0, 0, 0, -1},\r
+       {19,                                 IDM_INSDATE2,   TBSTATE_ENABLED, TBSTYLE_BUTTON, 0, 0, 0, -1},\r
+       {0,                                  0,              TBSTATE_ENABLED, TBSTYLE_SEP,    0, 0, 0, -1},\r
+       {21,                                 IDM_TOGGLEPANE, TBSTATE_ENABLED, TBSTYLE_BUTTON, 0, 0, 0, -1},\r
+       {0,                                  0,              TBSTATE_ENABLED, TBSTYLE_SEP,    0, 0, 0, -1},\r
+       {24,                                 IDM_SEARCH,     TBSTATE_ENABLED, TBSTYLE_BUTTON, 0, 0, 0, -1},\r
+       {22,                                 IDM_SEARCH_PREV,              0, TBSTYLE_BUTTON, 0, 0, 0, -1},\r
+       {23,                                 IDM_SEARCH_NEXT,              0, TBSTYLE_BUTTON, 0, 0, 0, -1},\r
+       {0,                                  0,              TBSTATE_ENABLED, TBSTYLE_SEP,    0, 0, 0, -1},\r
+};\r
+\r
+///////////////////////////////////////\r
+// methods implimentation\r
+///////////////////////////////////////\r
+\r
+HPCPlatform::HPCPlatform() : pStatusBar(NULL)\r
+{\r
+}\r
+\r
+HPCPlatform::~HPCPlatform()\r
+{\r
+       delete pStatusBar;\r
+}\r
+\r
+static HWND GetCommandBar(HWND hBand, UINT uBandID)\r
+{\r
+       UINT idx = SendMessage(hBand, RB_IDTOINDEX, uBandID, 0);\r
+       if (idx == -1) return NULL;\r
+       HWND hwnd = CommandBands_GetCommandBar(hBand, idx);\r
+       return hwnd;\r
+}\r
+\r
+void HPCPlatform::Create(HWND hWnd, HINSTANCE hInst)\r
+{\r
+       HWND hBand, hwnd;\r
+       REBARBANDINFO arbbi[2];\r
+\r
+       pStatusBar = new StatusBar();\r
+       pStatusBar->Create(hWnd, g_Property.GetUseTwoPane());\r
+\r
+       // CommandBand\90\90¬\r
+       HIMAGELIST himl = ImageList_Create(16,16,ILC_COLOR, 0, 1);\r
+       HBITMAP hBmp = LoadBitmap(hInst, MAKEINTRESOURCE(IDB_REBAR));\r
+       ImageList_Add(himl, hBmp, (HBITMAP)NULL);\r
+       DeleteObject(hBmp);\r
+\r
+       hBand = CommandBands_Create(hInst, hWnd, IDC_CMDBAND,\r
+                                                               RBS_AUTOSIZE | RBS_VARHEIGHT | RBS_BANDBORDERS | RBS_SMARTLABELS, \r
+                                                               himl);\r
+       arbbi[0].cbSize = sizeof(REBARBANDINFO);\r
+       arbbi[0].fMask = RBBIM_ID | RBBIM_STYLE | RBBIM_SIZE | RBBIM_IMAGE;\r
+       arbbi[0].fStyle = RBBS_NOGRIPPER;\r
+       arbbi[0].wID = ID_CMDBAR_MAIN;\r
+       arbbi[0].cx = 280;\r
+       arbbi[0].iImage = 0;\r
+\r
+       arbbi[1].cbSize = sizeof(REBARBANDINFO);\r
+       arbbi[1].fMask = RBBIM_ID | RBBIM_STYLE | RBBIM_SIZE;\r
+       arbbi[1].fStyle = 0;\r
+       arbbi[1].wID = ID_BUTTONBAND;\r
+       arbbi[1].cx = 360;\r
+\r
+       // restore commandbar info\r
+       COMMANDBANDSRESTOREINFO cbri[NUM_COMMANDBAR];\r
+       BOOL bRestoreFlg = g_Property.GetCommandbarInfo(cbri, NUM_COMMANDBAR);\r
+       if (bRestoreFlg) {\r
+               arbbi[0].fStyle = cbri[0].fStyle;\r
+               arbbi[0].cx = cbri[0].cxRestored;\r
+\r
+               arbbi[1].fMask |= RBBIM_STYLE;\r
+               arbbi[1].fStyle = cbri[1].fStyle;\r
+               arbbi[1].cx = cbri[1].cxRestored;\r
+       }\r
+\r
+       CommandBands_AddBands(hBand, hInst, 2, arbbi);\r
+       // set first band(menu)\r
+\r
+       HMENU h = LoadMainMenu();\r
+       hwnd = GetCommandBar(hBand, ID_CMDBAR_MAIN);\r
+       CommandBar_InsertMenubarEx(hwnd, NULL, (LPTSTR)h, 0);\r
+\r
+       // set next band(buttons)\r
+       hwnd = GetCommandBar(hBand, ID_BUTTONBAND);\r
+\r
+       CommandBar_AddBitmap(hwnd, HINST_COMMCTRL, IDB_STD_SMALL_COLOR, 15, 0, 0);\r
+       CommandBar_AddBitmap(hwnd, hInst, IDB_TOOLBAR, NUM_IMG_BUTTONS, 0, 0);\r
+\r
+       CommandBar_AddButtons(hwnd, sizeof(aCmdBarButtons)/sizeof(TBBUTTON), aCmdBarButtons);\r
+\r
+       hMSCmdBar = hBand;\r
+       CommandBands_AddAdornments(hBand, hInst, 0, NULL);\r
+\r
+       if (bRestoreFlg) {\r
+               if (cbri[0].fMaximized) {\r
+                       SendMessage(hBand, RB_MAXIMIZEBAND, 0, (LPARAM)0);\r
+               }\r
+               if (cbri[1].fMaximized) {\r
+                       SendMessage(hBand, RB_MAXIMIZEBAND, 1, (LPARAM)0);\r
+               }\r
+       }\r
+\r
+}\r
+\r
+HWND HPCPlatform::GetMainToolBar()\r
+{\r
+       return GetCommandBar(hMSCmdBar, ID_BUTTONBAND);\r
+}\r
+\r
+HMENU HPCPlatform::GetMainMenu() \r
+{ \r
+       return CommandBar_GetMenu(GetCommandBar(hMSCmdBar, ID_CMDBAR_MAIN), 0); \r
+}\r
+\r
+HMENU HPCPlatform::GetMDToolMenu()\r
+{\r
+       return CommandBar_GetMenu(GetCommandBar(hMSCmdBar, ID_CMDBAR_MAIN), 0);\r
+\r
+}\r
+\r
+HMENU HPCPlatform::GetMSEditMenu()\r
+{\r
+       return CommandBar_GetMenu(GetCommandBar(hMSCmdBar, ID_CMDBAR_MAIN), 0);\r
+}\r
+\r
+HMENU HPCPlatform::GetMSBookMarkMenu()\r
+{\r
+       HMENU hMenu = GetMainMenu();\r
+       return GetSubMenu(hMenu, BOOKMARK_MENU_POS);\r
+}\r
+\r
+void HPCPlatform::EnableMenu(UINT uId, BOOL bEnable)\r
+{\r
+       BOOL bTb = FALSE;\r
+       HWND hTbWin;\r
+       switch(uId) {\r
+       case IDM_DELETEITEM:\r
+       case IDM_NEWMEMO:\r
+       case IDM_CUT:\r
+       case IDM_COPY:\r
+       case IDM_PASTE:\r
+       case IDM_SAVE:\r
+               bTb = TRUE;\r
+               hTbWin = GetMainToolBar();\r
+       default:\r
+               break;\r
+       }\r
+\r
+\r
+       HMENU hMenu = GetMainMenu();\r
+       UINT uFlg1;\r
+       if (bEnable) {\r
+               uFlg1 = MF_BYCOMMAND | MF_ENABLED;\r
+       } else {\r
+               uFlg1 = MF_BYCOMMAND | MF_GRAYED;\r
+       }\r
+       EnableMenuItem(hMenu, uId, uFlg1);\r
+\r
+       if (bTb) {\r
+               SendMessage(hTbWin, TB_ENABLEBUTTON, uId, MAKELONG(bEnable, 0));\r
+       }\r
+}\r
+\r
+void HPCPlatform::ControlMenu(BOOL bTreeActive)\r
+{\r
+       HMENU hMenu = CommandBar_GetMenu(GetCommandBar(hMSCmdBar, ID_CMDBAR_MAIN), 0);\r
+\r
+       UINT uFlg1, uFlg2;\r
+       if (bTreeActive) {\r
+               uFlg1 = MF_BYCOMMAND | MF_ENABLED;\r
+               uFlg2 = MF_BYCOMMAND | MF_GRAYED;\r
+       } else {\r
+               uFlg1 = MF_BYCOMMAND | MF_GRAYED;\r
+               uFlg2 = MF_BYCOMMAND | MF_ENABLED;\r
+       }\r
+\r
+       EnableMenuItem(hMenu, IDM_FORGETPASS, uFlg1);\r
+       EnableMenuItem(hMenu, IDM_PROPERTY, uFlg1);\r
+\r
+       EnableMenuItem(hMenu, IDM_INSDATE1, uFlg2);\r
+       EnableMenuItem(hMenu, IDM_INSDATE2, uFlg2);\r
+       EnableMenuItem(hMenu, IDM_DETAILS_HSCROLL, uFlg2);\r
+}\r
+\r
+void HPCPlatform::ControlToolbar(BOOL bTreeActive)\r
+{\r
+       HWND hToolBar = GetCommandBar(hMSCmdBar, ID_BUTTONBAND);\r
+       SendMessage(hToolBar, TB_ENABLEBUTTON, IDM_INSDATE1, MAKELONG(!bTreeActive, 0));\r
+       SendMessage(hToolBar, TB_ENABLEBUTTON, IDM_INSDATE2, MAKELONG(!bTreeActive, 0));\r
+}\r
+\r
+void HPCPlatform::OpenDetailsView()\r
+{\r
+       ControlMenu(FALSE);\r
+       ControlToolbar(FALSE);\r
+}\r
+\r
+void HPCPlatform::CloseDetailsView()\r
+{\r
+       ControlMenu(TRUE);\r
+       ControlToolbar(TRUE);\r
+}\r
+\r
+void HPCPlatform::EnableSearchNext()\r
+{\r
+       SendMessage(GetCommandBar(hMSCmdBar, ID_BUTTONBAND), TB_SETSTATE, IDM_SEARCH_PREV, MAKELONG(TBSTATE_ENABLED, 0)); \r
+       SendMessage(GetCommandBar(hMSCmdBar, ID_BUTTONBAND), TB_SETSTATE, IDM_SEARCH_NEXT, MAKELONG(TBSTATE_ENABLED, 0)); \r
+}\r
+\r
+void HPCPlatform::AdjustUserRect(RECT *r)\r
+{\r
+       DWORD nHOffset = CommandBands_Height(hMSCmdBar);\r
+\r
+       WORD nStatusHeight;\r
+       if (g_Property.GetHideStatusBar()) {\r
+               nStatusHeight = 0;\r
+       } else {\r
+               nStatusHeight = GetStatusBarHeight();\r
+       }\r
+\r
+       r->top += nHOffset;\r
+       r->bottom -= (nHOffset + nStatusHeight);\r
+\r
+}\r
+\r
+void HPCPlatform::CheckMenu(UINT uid, BOOL bCheck)\r
+{\r
+       HMENU hMenu;\r
+       BOOL bNegButton = FALSE;\r
+       switch(uid) {\r
+       case IDM_TOGGLEPANE:\r
+               bNegButton = TRUE;\r
+               hMenu = GetMainMenu();\r
+               break;\r
+       case IDM_DETAILS_HSCROLL:\r
+               hMenu = GetMDToolMenu();\r
+               break;\r
+       default:\r
+               break;\r
+       }\r
+\r
+       BOOL bButton = bNegButton ? !bCheck : bCheck;\r
+       // CheckMenuItem is superseeded funcs, but in CE, SetMenuItemInfo can't set values, so use it.\r
+       CheckMenuItem(hMenu, uid, MF_BYCOMMAND | (bCheck ? MF_CHECKED : MF_UNCHECKED));\r
+       SendMessage(GetCommandBar(hMSCmdBar, ID_BUTTONBAND), TB_PRESSBUTTON, uid, MAKELONG(bButton, 0));\r
+}\r
+\r
+void HPCPlatform::ShowStatusBar(BOOL bShow)\r
+{\r
+       pStatusBar->Show(bShow);\r
+}\r
+\r
+void HPCPlatform::SetStatusIndicator(DWORD nPos, LPCTSTR pText, BOOL bDisp)\r
+{\r
+       pStatusBar->SetStatusIndicator(nPos, pText, bDisp);\r
+}\r
+\r
+WORD HPCPlatform::GetStatusBarHeight()\r
+{\r
+       return pStatusBar->GetHeight();\r
+}\r
+\r
+void HPCPlatform::ResizeStatusBar(WPARAM wParam, LPARAM lParam)\r
+{\r
+       pStatusBar->SendSize(wParam, lParam);\r
+       pStatusBar->ResizeStatusBar();\r
+}\r
+\r
+void HPCPlatform::GetStatusWindowRect(RECT *pRect)\r
+{\r
+       pStatusBar->GetWindowRect(pRect);\r
+}\r
+\r
+///////////////////////////////////////////////////\r
+// Load i18nized menu\r
+///////////////////////////////////////////////////\r
+\r
+static void InsertBaseMenu(HMENU hMain, int pos, LPCTSTR pText, HMENU hSub)\r
+{\r
+       InsertMenu(hMain, pos, MF_BYPOSITION | MF_POPUP | MF_STRING , (UINT)hSub, pText);\r
+}\r
+\r
+static MenuMsgRes aFileMenu[] = {\r
+       {  0, IDM_NEWMEMO,    0, MSG_ID_MENUITEM_W32_F_NEWMEMO },\r
+       {  1, IDM_NEWFOLDER,  0, MSG_ID_MENUITEM_W32_F_NEWFOLDER },\r
+       {  2, IDM_RENAME,     0, MSG_ID_MENUITEM_W32_F_RENAME },\r
+       {  3, IDM_DELETEITEM, 0, MSG_ID_MENUITEM_W32_F_DEL },\r
+       {  4, -1,             0, 0 },\r
+       {  5, IDM_SAVE,       0, MSG_ID_MENUITEM_W32_F_SAVE },\r
+       {  6, -1,             0, 0 },\r
+       {  7, IDM_ABOUT,      0, MSG_ID_MENUITEM_W32_H_ABOUT },\r
+       {  8, IDM_EXIT,       0, MSG_ID_MENUITEM_W32_F_EXIT },\r
+};\r
+\r
+static MenuMsgRes aEditMenu[] = {\r
+       {  0, IDM_CUT,      0, MSG_ID_MENUITEM_W32_E_CUT },\r
+       {  1, IDM_COPY,     0, MSG_ID_MENUITEM_W32_E_COPY },\r
+       {  2, IDM_PASTE,    0, MSG_ID_MENUITEM_W32_E_PASTE },\r
+       {  3, -1,           0, 0 },\r
+       {  4, IDM_SELALL,   0, MSG_ID_MENUITEM_W32_E_SELALL },\r
+       {  5, -1,           0, 0 },\r
+       {  6, IDM_INSDATE1, 0, MSG_ID_MENUITEM_W32_E_DATE1 },\r
+       {  7, IDM_INSDATE2, 0, MSG_ID_MENUITEM_W32_E_DATE2 },\r
+};\r
+\r
+static MenuMsgRes aBookMarkMenu[] = {\r
+       {  0, IDM_BOOKMARK_ADD,    0, MSG_ID_MENUITEM_W32_B_ADDBM },\r
+       {  1, IDM_BOOKMARK_CONFIG, 0, MSG_ID_MENUITEM_W32_B_EDITBM },\r
+       {  2, -1,                  0, 0 },\r
+};\r
+\r
+static MenuMsgRes aFindMenu[] = {\r
+       {  0, IDM_SEARCH,      0, MSG_ID_MENUITEM_W32_E_FIND },\r
+       {  1, IDM_SEARCH_NEXT, 0, MSG_ID_MENUITEM_W32_E_FINDNEXT },\r
+       {  2, IDM_SEARCH_PREV, 0, MSG_ID_MENUITEM_W32_E_FINDPREV },\r
+       {  3, -1,              0, 0 },\r
+       {  4, IDM_GREP,        0, MSG_ID_MENUITEM_W32_E_QFILTER },\r
+       {  5, IDM_VFOLDER_DEF, 0, MSG_ID_MENUITEM_W32_T_VIRTUALFOLDER },\r
+};\r
+\r
+static MenuMsgRes aToolMenu[] = {\r
+       {  0, IDM_DETAILS_HSCROLL, MF_CHECKED, MSG_ID_MENUITEM_W32_T_WRAPTEXT },\r
+       {  1, IDM_TOGGLEPANE,      MF_CHECKED, MSG_ID_MENUITEM_W32_T_TWOPANE },\r
+       {  2, IDM_SHOWSTATUSBAR,   MF_CHECKED, MSG_ID_MENUITEM_W32_T_STATUSBAR },\r
+       {  3, -1,                  0,          0 },\r
+       {  4, IDM_ENCRYPT,         0,          MSG_ID_MENUITEM_W32_T_ENCRYPT },\r
+       {  5, IDM_DECRYPT,         0,          MSG_ID_MENUITEM_W32_T_DECRYPT },\r
+       {  6, -1,                  0,          0 },\r
+       {  7, IDM_FORGETPASS,      0,          MSG_ID_MENUITEM_W32_T_ERASEPASS },\r
+       {  8, -1,                  0,          0 },\r
+       {  9, IDM_PROPERTY,        0,          MSG_ID_MENUITEM_W32_T_OPTIONS },\r
+};\r
+\r
+\r
+HMENU HPCPlatform::LoadMainMenu()\r
+{\r
+       HMENU hMain = CreateMenu();\r
+       HMENU hSub;\r
+       OverrideMenuTitle(hSub = CreatePopupMenu(), aFileMenu, sizeof(aFileMenu)/sizeof(MenuMsgRes));\r
+       InsertBaseMenu(hMain, 0, MSG_MENUITEM_W32B_FILE, hSub);\r
+       OverrideMenuTitle(hSub = CreatePopupMenu(), aEditMenu, sizeof(aEditMenu)/sizeof(MenuMsgRes));\r
+       InsertBaseMenu(hMain, 1, MSG_MENUITEM_W32B_EDIT, hSub);\r
+       OverrideMenuTitle(hSub = CreatePopupMenu(), aBookMarkMenu, sizeof(aBookMarkMenu)/sizeof(MenuMsgRes));\r
+       InsertBaseMenu(hMain, 2, MSG_MENUITEM_W32B_BOOKMARK, hSub);\r
+       OverrideMenuTitle(hSub = CreatePopupMenu(), aFindMenu, sizeof(aFindMenu)/sizeof(MenuMsgRes));\r
+       InsertBaseMenu(hMain, 3, MSG_MENUITEM_FIND, hSub);\r
+       OverrideMenuTitle(hSub = CreatePopupMenu(), aToolMenu, sizeof(aToolMenu)/sizeof(MenuMsgRes));\r
+       InsertBaseMenu(hMain, 4, MSG_MENUITEM_W32B_TOOL, hSub);\r
+\r
+       return hMain;\r
+}\r
+\r
+static MenuMsgRes aContextMenu[] = {\r
+       {  0, IDM_CUT,        0, MSG_ID_MENUITEM_MAIN_CUT },\r
+       {  1, IDM_COPY,       0, MSG_ID_MENUITEM_MAIN_COPY },\r
+       {  2, IDM_PASTE,      0, MSG_ID_MENUITEM_MAIN_PASTE },\r
+       {  3, -1,             0, 0 },\r
+       {  4, IDM_ENCRYPT,    0, MSG_ID_MENUITEM_MAIN_ENCRYPT },\r
+       {  5, IDM_DECRYPT,    0, MSG_ID_MENUITEM_MAIN_DECRYPT },\r
+       {  6, -1,             0, 0 },\r
+       {  7, IDM_SEARCH,     0, MSG_ID_MENUITEM_MAIN_FIND },\r
+       {  8, -1,             0, 0 },\r
+       {  9, IDM_NEWFOLDER,  0, MSG_ID_MENUITEM_MAIN_NEWFOLDER },\r
+       { 10, -1,             0, 0 },\r
+       { 11, IDM_DELETEITEM, 0, MSG_ID_MENUITEM_MAIN_DELETE },\r
+       { 12, IDM_RENAME,     0, MSG_ID_MENUITEM_MAIN_RENAME },\r
+       { 13, -1,             0, 0 },\r
+       { 14, IDM_TRACELINK,  0, MSG_ID_MENUITEM_CTX_TRACELINK},\r
+       { 15, -1,             0, 0 },\r
+       { 16, IDM_EXTAPP1,    0, MSG_ID_MENUITEM_EXTAPP1 },\r
+};\r
+\r
+#ifdef COMMENT\r
+HMENU HPCPlatform::LoadContextMenu(DWORD nFlg)\r
+{\r
+       HMENU hMenu = CreatePopupMenu();\r
+       OverrideMenuTitle(hMenu, aContextMenu, sizeof(aContextMenu)/sizeof(MenuMsgRes));\r
+       return hMenu;\r
+}\r
+#endif\r
+#endif // PLATFORM_HPC\r
diff --git a/Src/HPCPlatform.h b/Src/HPCPlatform.h
new file mode 100644 (file)
index 0000000..2b22aec
--- /dev/null
@@ -0,0 +1,52 @@
+#ifndef HPCPLATFORM_H\r
+#define HPCPLATFORM_H\r
+#if defined(PLATFORM_HPC)\r
+\r
+#define PLATFORM_TYPE HPCPlatform\r
+\r
+class StatusBar;\r
+\r
+class HPCPlatform : public PlatformLayer {\r
+protected:\r
+       void ControlMenu(BOOL bTreeActive);\r
+       void ControlToolbar(BOOL bTreeActive);\r
+\r
+       StatusBar *pStatusBar;\r
+public:\r
+       HWND hMSCmdBar;\r
+\r
+       HPCPlatform();\r
+       virtual ~HPCPlatform();\r
+\r
+       void Create(HWND hWnd, HINSTANCE hInst);\r
+\r
+       HWND GetMainToolBar();\r
+\r
+       HMENU GetMainMenu();\r
+       HMENU GetMDToolMenu();\r
+       HMENU GetMSEditMenu();\r
+       HMENU GetMSBookMarkMenu();\r
+\r
+       void EnableMenu(UINT uid, BOOL bEnable);\r
+       void EnableSearchNext();\r
+       void CheckMenu(UINT uid, BOOL bCheck);\r
+\r
+       void OpenDetailsView();\r
+       void CloseDetailsView();\r
+\r
+       void AdjustUserRect(RECT *r);\r
+\r
+       void ShowStatusBar(BOOL bShow);\r
+       void SetStatusIndicator(DWORD nPos, LPCTSTR pText, BOOL bDisp);\r
+       WORD GetStatusBarHeight();\r
+       void ResizeStatusBar(WPARAM wParam, LPARAM lParam);\r
+       void GetStatusWindowRect(RECT *pRect);\r
+\r
+       static HPCPlatform *PlatformFactory() { return new HPCPlatform(); }\r
+\r
+       static HMENU LoadMainMenu();\r
+//     static HMENU LoadContextMenu(DWORD nFlg);\r
+};\r
+\r
+#endif // PLATFORM_HPC\r
+#endif
\ No newline at end of file
diff --git a/Src/LagendaPlatform.cpp b/Src/LagendaPlatform.cpp
new file mode 100644 (file)
index 0000000..6146bc8
--- /dev/null
@@ -0,0 +1,296 @@
+#if defined(PLATFORM_BE500)\r
+#include <windows.h>\r
+#include <commctrl.h>\r
+#include <CSO.h>\r
+\r
+#include "resource.h"\r
+#include "Message.h"\r
+#include "PlatformLayer.h"\r
+#include "LagendaPlatform.h"\r
+#include "SipControl.h"\r
+\r
+#define NUM_IMG_BUTTONS 0\r
+\r
+#define NUM_SV_CMDBAR_BUTTONS 10\r
+CSOBAR_BUTTONINFO      aSVCSOBarButtons[NUM_SV_CMDBAR_BUTTONS] = \r
+{\r
+       IDM_SV_MENU_1,  CSOBAR_BUTTON_SUBMENU_DOWN,  CSO_BUTTON_DISP, (-1),         NULL, NULL,     NULL,   CSOBAR_CODEPOS_CENTER, 1, (-1), (-1), (-1), (-1), 0, CLR_INVALID, CLR_INVALID, CLR_INVALID, FALSE, FALSE,\r
+       IDM_SV_MENU_2,  CSOBAR_BUTTON_SUBMENU_DOWN,  CSO_BUTTON_DISP, IDB_TOOL,     NULL, NULL,     NULL,   CSOBAR_CODEPOS_CENTER, 1, (-1), (-1), (-1), (-1), 0, CLR_INVALID, CLR_INVALID, CLR_INVALID, FALSE, FALSE,\r
+       0,              CSOBAR_SEP,                  CSO_BUTTON_DISP, (-1),         NULL, NULL,     NULL,   0,                     1, (-1), (-1), (-1), (-1), 0, CLR_INVALID, CLR_INVALID, CLR_INVALID, FALSE, FALSE,\r
+       IDM_SV_MENU_3,  CSOBAR_BUTTON_SUBMENU_DOWN,  CSO_BUTTON_DISP, IDB_BOOKMARK, NULL, NULL,     NULL,   CSOBAR_CODEPOS_CENTER, 1, (-1), (-1), (-1), (-1), 0, CLR_INVALID, CLR_INVALID, CLR_INVALID, FALSE, FALSE,\r
+       0,              CSOBAR_SEP,                  CSO_BUTTON_DISP, (-1),         NULL, NULL,     NULL,   0,                     1, (-1), (-1), (-1), (-1), 0, CLR_INVALID, CLR_INVALID, CLR_INVALID, FALSE, FALSE,\r
+       IDM_NEWMEMO,    CSOBAR_BUTTON_NORM,          CSO_BUTTON_DISP, IDB_NEWMEMO,  NULL, NULL,     NULL,   CSOBAR_CODEPOS_CENTER, 1, (-1), (-1), (-1), (-1), 0, CLR_INVALID, CLR_INVALID, CLR_INVALID, FALSE, FALSE,\r
+       0,              CSOBAR_SEP,                  CSO_BUTTON_DISP, (-1),         NULL, NULL,     NULL,   0,                     1, (-1), (-1), (-1), (-1), 0, CLR_INVALID, CLR_INVALID, CLR_INVALID, FALSE, FALSE,\r
+//     IDM_DELETEITEM, CSOBAR_BUTTON_NORM,          CSO_BUTTON_DISP, IDB_DELETE,   NULL, NULL,     NULL,   CSOBAR_CODEPOS_CENTER, 1, (-1), (-1), (-1), (-1), 0, CLR_INVALID, CLR_INVALID, CLR_INVALID, FALSE, FALSE,\r
+//     0,              CSOBAR_SEP,                  CSO_BUTTON_DISP, (-1),         NULL, NULL,     NULL,   0,                     1, (-1), (-1), (-1), (-1), 0, CLR_INVALID, CLR_INVALID, CLR_INVALID, FALSE, FALSE,\r
+       IDM_SEARCH,     CSOBAR_BUTTON_NORM,         CSO_BUTTON_DISP, IDB_FIND,      NULL, NULL,     NULL,   CSOBAR_CODEPOS_CENTER, 1, (-1), (-1), (-1), (-1), 0, CLR_INVALID, CLR_INVALID, CLR_INVALID, FALSE, FALSE,\r
+       IDM_SEARCH_PREV,CSOBAR_BUTTON_NORM,         CSO_BUTTON_DISP, IDB_FINDPREV,  NULL, NULL,     NULL,   CSOBAR_CODEPOS_CENTER, 1, (-1), (-1), (-1), (-1), 0, CLR_INVALID, CLR_INVALID, CLR_INVALID, FALSE, FALSE,\r
+       IDM_SEARCH_NEXT,CSOBAR_BUTTON_NORM,         CSO_BUTTON_DISP, IDB_FINDNEXT,  NULL, NULL,     NULL,   CSOBAR_CODEPOS_CENTER, 1, (-1), (-1), (-1), (-1), 0, CLR_INVALID, CLR_INVALID, CLR_INVALID, FALSE, FALSE,\r
+};\r
+\r
+#define NUM_DV_CMDBAR_BUTTONS 12\r
+\r
+// Set hInstance on Oncreate if put bitmaps.\r
+CSOBAR_BUTTONINFO      aDVCSOBarButtons[NUM_DV_CMDBAR_BUTTONS] = \r
+{\r
+       IDM_RETURNLIST, CSOBAR_COMMON_BUTTON,       CSO_BUTTON_DISP, (-1),            NULL, NULL,     NULL,   CSOBAR_CODEPOS_CENTER, 1, (-1), (-1), (-1), (-1), CSO_ID_BACK, CLR_INVALID, CLR_INVALID, CLR_INVALID, FALSE, FALSE,\r
+       0,              CSOBAR_SEP,                 CSO_BUTTON_DISP, (-1),            NULL, NULL,     NULL,   0,                     1, (-1), (-1), (-1), (-1), 0,           CLR_INVALID, CLR_INVALID, CLR_INVALID, FALSE, FALSE,\r
+       IDM_DV_MENU_1,  CSOBAR_BUTTON_SUBMENU_DOWN, CSO_BUTTON_DISP, (-1),            NULL, NULL,     NULL,   CSOBAR_CODEPOS_CENTER, 1, (-1), (-1), (-1), (-1), 0,           CLR_INVALID, CLR_INVALID, CLR_INVALID, FALSE, FALSE,\r
+       0,              CSOBAR_SEP,                 CSO_BUTTON_DISP, (-1),            NULL, NULL,     NULL,   0,                     1, (-1), (-1), (-1), (-1), 0,           CLR_INVALID, CLR_INVALID, CLR_INVALID, FALSE, FALSE,\r
+       IDM_SAVE,       CSOBAR_BUTTON_NORM,         CSO_BUTTON_DISP, IDB_SAVE,        NULL, NULL,     NULL,   CSOBAR_CODEPOS_CENTER, 1, (-1), (-1), (-1), (-1), 0,           CLR_INVALID, CLR_INVALID, CLR_INVALID, FALSE, FALSE,\r
+       0,              CSOBAR_SEP,                 CSO_BUTTON_DISP, (-1),            NULL, NULL,     NULL,   0,                     1, (-1), (-1), (-1), (-1), 0,           CLR_INVALID, CLR_INVALID, CLR_INVALID, FALSE, FALSE,\r
+       IDM_CUT,        CSOBAR_BUTTON_NORM,         CSO_BUTTON_DISP, IDB_CUT,         NULL, NULL,     NULL,   CSOBAR_CODEPOS_CENTER, 1, (-1), (-1), (-1), (-1), 0,           CLR_INVALID, CLR_INVALID, CLR_INVALID, FALSE, FALSE,\r
+       IDM_COPY,       CSOBAR_BUTTON_NORM,         CSO_BUTTON_DISP, IDB_COPY,        NULL, NULL,     NULL,   CSOBAR_CODEPOS_CENTER, 1, (-1), (-1), (-1), (-1), 0,           CLR_INVALID, CLR_INVALID, CLR_INVALID, FALSE, FALSE,\r
+       IDM_PASTE,      CSOBAR_BUTTON_NORM,         CSO_BUTTON_DISP, IDB_PASTE,       NULL, NULL,     NULL,   CSOBAR_CODEPOS_CENTER, 1, (-1), (-1), (-1), (-1), 0,           CLR_INVALID, CLR_INVALID, CLR_INVALID, FALSE, FALSE,\r
+       0,              CSOBAR_SEP,                 CSO_BUTTON_DISP, (-1),            NULL, NULL,     NULL,   0,                     1, (-1), (-1), (-1), (-1), 0,           CLR_INVALID, CLR_INVALID, CLR_INVALID, FALSE, FALSE,\r
+       IDM_INSDATE1,   CSOBAR_BUTTON_NORM,         CSO_BUTTON_DISP, IDB_INSDATE1,    NULL, NULL,     NULL,   CSOBAR_CODEPOS_CENTER, 1, (-1), (-1), (-1), (-1), 0,           CLR_INVALID, CLR_INVALID, CLR_INVALID, FALSE, FALSE,\r
+       IDM_INSDATE2,   CSOBAR_BUTTON_NORM,         CSO_BUTTON_DISP, IDB_INSDATE2,    NULL, NULL,     NULL,   CSOBAR_CODEPOS_CENTER, 1, (-1), (-1), (-1), (-1), 0,           CLR_INVALID, CLR_INVALID, CLR_INVALID, FALSE, FALSE,\r
+\r
+//     IDM_SEARCH_PREV,CSOBAR_BUTTON_NORM,         CSO_BUTTON_DISP, IDB_FINDPREV,    NULL, NULL,     NULL,   CSOBAR_CODEPOS_CENTER, 2, (-1), (-1), (-1), (-1), 0,           CLR_INVALID, CLR_INVALID, CLR_INVALID, FALSE, FALSE,\r
+//     IDM_SEARCH_NEXT,CSOBAR_BUTTON_NORM,         CSO_BUTTON_DISP, IDB_FINDNEXT,    NULL, NULL,     NULL,   CSOBAR_CODEPOS_CENTER, 2, (-1), (-1), (-1), (-1), 0,           CLR_INVALID, CLR_INVALID, CLR_INVALID, FALSE, FALSE,\r
+};\r
+\r
+static HWND MakeCSOBar(HINSTANCE hInst, HWND hWnd, \r
+                                                  DWORD nCtlID)\r
+{\r
+       CSOBAR_BASEINFO cb;\r
+       cb.x = cb.y = cb.width = cb.height = -1;\r
+       cb.line = 1;\r
+       cb.backColor = CSOBAR_DEFAULT_BACKCOLOR;\r
+       cb.titleColor = CSOBAR_DEFAULT_CODECOLOR;\r
+       cb.titleText = NULL;\r
+       cb.titleBmpResId = NULL;\r
+       cb.titleBmpResIns = NULL;\r
+\r
+       HWND h;\r
+       h = CSOBar_Create(hInst, hWnd, nCtlID, cb);\r
+       CSOBar_AddAdornments(h, hInst, 1, CSOBAR_ADORNMENT_CLOSE, 0);\r
+       return h;\r
+}\r
+\r
+void LagendaPlatform::Create(HWND hWnd, HINSTANCE hInst)\r
+{\r
+       // Tree view \r
+       hMSCmdBar = MakeCSOBar(hInst, hWnd, ID_CMDBAR_MAIN);\r
+//     HMENU hMSMenu = LoadMenu(hInst, MAKEINTRESOURCE(IDR_MENU_MAIN));\r
+//     hMSMemoMenu     = aSVCSOBarButtons[0].SubMenu = GetSubMenu(hMSMenu, 0);\r
+//     hMSToolMenu     = aSVCSOBarButtons[1].SubMenu = GetSubMenu(hMSMenu, 1);\r
+//     hMSBookMarkMenu = aSVCSOBarButtons[3].SubMenu = GetSubMenu(hMSMenu, 2);\r
+\r
+       hMSMemoMenu     = aSVCSOBarButtons[0].SubMenu = LagendaPlatform::LoadMSMemoMenu();\r
+       hMSToolMenu     = aSVCSOBarButtons[1].SubMenu = LagendaPlatform::LoadMSToolMenu();\r
+       hMSBookMarkMenu = aSVCSOBarButtons[3].SubMenu = LagendaPlatform::LoadMSBookmarkMenu();\r
+\r
+       aSVCSOBarButtons[0].FaceText = (LPTSTR)MSG_MEMO;\r
+\r
+       for (int i = 0; i < NUM_SV_CMDBAR_BUTTONS; i++) {\r
+               aSVCSOBarButtons[i].reshInst = hInst;\r
+       }\r
+       CSOBar_AddButtons(hMSCmdBar, hInst, NUM_SV_CMDBAR_BUTTONS, &aSVCSOBarButtons[0]);\r
+\r
+       // Edit view\r
+       aDVCSOBarButtons[2].FaceText = (LPTSTR)MSG_EDIT;\r
+\r
+       hMDCmdBar = MakeCSOBar(hInst, hWnd, ID_CMDBAR_DETAILS);\r
+       HMENU hMDMenu = LoadMenu(hInst, MAKEINTRESOURCE(IDR_MENU_DETAILS));\r
+//     hMDEditMenu = aDVCSOBarButtons[2].SubMenu       = GetSubMenu(hMDMenu, 0);\r
+       hMDEditMenu = aDVCSOBarButtons[2].SubMenu       = LagendaPlatform::LoadMDEditMenu();\r
+       for (i = 0; i < NUM_DV_CMDBAR_BUTTONS; i++) {\r
+               aDVCSOBarButtons[i].reshInst = hInst;\r
+       }\r
+       CSOBar_AddButtons(hMDCmdBar, hInst, NUM_DV_CMDBAR_BUTTONS, &aDVCSOBarButtons[0]);\r
+\r
+    CSOBar_Show(hMSCmdBar, TRUE);\r
+\r
+}\r
+\r
+void LagendaPlatform::EnableMenu(UINT uid, BOOL bEnable)\r
+{\r
+       BOOL bMenu = TRUE; HMENU hMenu;\r
+       BOOL bSBS = FALSE; HWND hSBSWnd;\r
+\r
+       switch (uid) {\r
+       case IDM_DECRYPT:\r
+       case IDM_ENCRYPT:\r
+       case IDM_RENAME:\r
+       case IDM_NEWMEMO:\r
+       case IDM_CUT:\r
+       case IDM_COPY:\r
+       case IDM_PASTE:\r
+       case IDM_GREP:\r
+               hMenu = GetMSEditMenu();\r
+               break;\r
+       case IDM_NEWFOLDER:\r
+               hMenu = GetMSToolMenu();\r
+               break;\r
+       case IDM_DELETEITEM:\r
+               hMenu = GetMSEditMenu();\r
+               hSBSWnd = hMSCmdBar;\r
+               bSBS = TRUE;\r
+               break;\r
+       case IDM_SAVE:\r
+               bMenu = FALSE;\r
+               bSBS = TRUE; hSBSWnd = hMDCmdBar;\r
+               break;\r
+       default:\r
+               return;\r
+       }\r
+\r
+       if (bMenu) {\r
+               if (bEnable) {\r
+                       EnableMenuItem(hMenu, uid, MF_BYCOMMAND | MF_ENABLED);\r
+               } else {\r
+                       EnableMenuItem(hMenu, uid, MF_BYCOMMAND | MF_GRAYED);\r
+               }\r
+       }\r
+       if (bSBS) {\r
+               if (bEnable) {\r
+                       CSOBar_SetButtonState(hSBSWnd, TRUE, uid, 1, CSO_BUTTON_DISP);\r
+               } else {\r
+                       CSOBar_SetButtonState(hSBSWnd, TRUE, uid, 1, CSO_BUTTON_GRAYED);\r
+               }\r
+       }\r
+}\r
+\r
+void LagendaPlatform::CheckMenu(UINT uid, BOOL bCheck)\r
+{\r
+       HMENU hMenu;\r
+       BOOL bCBS = FALSE;\r
+       switch(uid) {\r
+       case IDM_TOGGLEPANE:\r
+               bCBS = TRUE;\r
+               hMenu = hMSToolMenu;\r
+               break;\r
+//     case IDM_DETAILS_HSCROLL:\r
+//             hMenu = hMDToolMenu;\r
+//             bCBS = TRUE;\r
+//             break;\r
+       default:\r
+               return;\r
+       }\r
+\r
+       if (bCBS) {\r
+               CheckMenuItem(hMenu, uid, MF_BYCOMMAND | (bCheck ? MF_CHECKED : MF_UNCHECKED));\r
+       }\r
+}\r
+\r
+void LagendaPlatform::OpenDetailsView()\r
+{\r
+       CSOBar_Show(hMSCmdBar, SW_HIDE);\r
+       CSOBar_Show(hMDCmdBar, SW_SHOW);\r
+}\r
+\r
+void LagendaPlatform::CloseDetailsView()\r
+{\r
+       CSOBar_Show(hMDCmdBar, SW_HIDE);\r
+       CSOBar_Show(hMSCmdBar, SW_SHOW);\r
+}\r
+\r
+void LagendaPlatform::AdjustUserRect(RECT *r)\r
+{\r
+       DWORD nHOffset = CSOBar_Height(hMSCmdBar);\r
+       r->top += nHOffset;\r
+       r->bottom -= nHOffset;\r
+\r
+       // SIP\r
+       BOOL bStat;\r
+       SipControl sc;\r
+       if (!sc.Init()) return;\r
+       if (!sc.GetSipStat(&bStat)) return;\r
+\r
+       if (bStat) {\r
+               RECT rSip = sc.GetRect();       \r
+               r->bottom -= (rSip.bottom - rSip.top);\r
+       }\r
+}\r
+\r
+////////////////////////////////////\r
+// load menu\r
+////////////////////////////////////\r
+\r
+static MenuMsgRes aMSMemoMenu[] = {\r
+       {  0, IDM_CUT,         0, MSG_ID_MENUITEM_MAIN_CUT },\r
+       {  1, IDM_COPY,        0, MSG_ID_MENUITEM_MAIN_COPY },\r
+       {  2, IDM_PASTE,       0, MSG_ID_MENUITEM_MAIN_PASTE },\r
+       {  3, -1,              0, 0 },\r
+       {  4, IDM_NEWMEMO,     0, MSG_ID_TOOLTIPS_NEWMEMO },\r
+       {  5, IDM_DELETEITEM,  0, MSG_ID_MENUITEM_MAIN_DELETE },\r
+       {  6, IDM_RENAME,      0, MSG_ID_MENUITEM_MAIN_RENAME },\r
+       {  7, -1,              0, 0 },\r
+       {  8, IDM_ENCRYPT,     0, MSG_ID_MENUITEM_MAIN_ENCRYPT },\r
+       {  9, IDM_DECRYPT,     0, MSG_ID_MENUITEM_MAIN_DECRYPT },\r
+       { 10, -1,              0, 0 },\r
+       { 11, IDM_EXTAPP1,     0, MSG_ID_DLG_EXTAPP_LBL_APP1 },\r
+       { 12, IDM_EXTAPP2,     0, MSG_ID_DLG_EXTAPP_LBL_APP2 },\r
+};\r
+\r
+HMENU LagendaPlatform::LoadMSMemoMenu()\r
+{\r
+       HMENU hMenu = CreatePopupMenu();\r
+       OverrideMenuTitle(hMenu, aMSMemoMenu, sizeof(aMSMemoMenu)/sizeof(MenuMsgRes));\r
+       return hMenu;\r
+}\r
+\r
+static MenuMsgRes aMSToolMenu[] = {\r
+       {  0, IDM_NEWFOLDER,   0, MSG_ID_MENUITEM_MAIN_NEWFOLDER },\r
+       {  1, -1,              0, 0 },\r
+       {  2, IDM_TOGGLEPANE,  0, MSG_ID_MENUITEM_BE_T_TWOPANE },\r
+       {  3, -1,              0, 0 },\r
+       {  4, IDM_PROPERTY,    0, MSG_ID_MENUITEM_TOOL_PROPERTY },\r
+       {  5, IDM_VFOLDER_DEF, 0, MSG_ID_MENUITEM_TOOL_VFOLDER_DEF },\r
+       {  6, IDM_FORGETPASS,  0, MSG_ID_MENUITEM_TOOL_FORGETPASS },\r
+       {  7, IDM_ABOUT,       0, MSG_ID_MENUITEM_TOOL_ABOUT },\r
+       {  8, -1,              0, 0 },\r
+       {  9, IDM_SEARCH,      0, MSG_ID_MENUITEM_MAIN_FIND },\r
+       { 10, IDM_SEARCH_NEXT, 0, MSG_ID_MENUITEM_MAIN_FIND_NEXT },\r
+       { 11, IDM_SEARCH_PREV, 0, MSG_ID_MENUITEM_MAIN_FIND_PREV },\r
+       { 12, -1,              0, 0 },\r
+       { 13, IDM_GREP,        0, MSG_ID_MENUITEM_MAIN_QUICKFILTER },\r
+};\r
+\r
+HMENU LagendaPlatform::LoadMSToolMenu()\r
+{\r
+       HMENU hMenu = CreatePopupMenu();\r
+       OverrideMenuTitle(hMenu, aMSToolMenu, sizeof(aMSToolMenu)/sizeof(MenuMsgRes));\r
+       return hMenu;\r
+}\r
+\r
+static MenuMsgRes aMSBookmarkMenu[] = {\r
+       { 0, IDM_BOOKMARK_ADD,    0, MSG_ID_MENUITEM_W32_B_ADDBM },\r
+       { 1, IDM_BOOKMARK_CONFIG, 0, MSG_ID_MENUITEM_W32_B_EDITBM },\r
+       { 2, -1,                  0, 0 },\r
+};\r
+\r
+HMENU LagendaPlatform::LoadMSBookmarkMenu()\r
+{\r
+       HMENU hMenu = CreatePopupMenu();\r
+       OverrideMenuTitle(hMenu, aMSBookmarkMenu, sizeof(aMSBookmarkMenu)/sizeof(MenuMsgRes));\r
+       return hMenu;\r
+}\r
+\r
+static MenuMsgRes aMDEditMenu[] = {\r
+       {  0, IDM_CUT,             0,          MSG_ID_MENUITEM_MAIN_CUT },\r
+       {  1, IDM_COPY,            0,          MSG_ID_MENUITEM_MAIN_COPY },\r
+       {  2, IDM_PASTE,           0,          MSG_ID_MENUITEM_MAIN_PASTE },\r
+       {  3, -1,                  0,          0 },\r
+       {  4, IDM_SELALL,          0,          MSG_ID_MENUITEM_DETAILS_SELALL },\r
+       {  5, -1,                  0,          0 },\r
+       {  6, IDM_SEARCH,          0,          MSG_ID_MENUITEM_MAIN_FIND }, \r
+       {  7, IDM_SEARCH_NEXT,     0,          MSG_ID_MENUITEM_MAIN_FIND_NEXT },\r
+       {  8, IDM_SEARCH_PREV,     0,          MSG_ID_MENUITEM_MAIN_FIND_PREV },\r
+       {  9, -1,                  0,          0 },\r
+       { 10, IDM_DETAILS_HSCROLL, MF_CHECKED, MSG_ID_MENUITEM_TOOL_WRAP },\r
+       { 11, -1,                  0,          0 },\r
+       { 12, IDM_INSDATE1,        0,          MSG_ID_TOOLTIPS_INSDATE1 },\r
+       { 13, IDM_INSDATE2,        0,          MSG_ID_TOOLTIPS_INSDATE2 },\r
+};\r
+\r
+HMENU LagendaPlatform::LoadMDEditMenu()\r
+{\r
+       HMENU hMenu = CreatePopupMenu();\r
+       OverrideMenuTitle(hMenu, aMDEditMenu, sizeof(aMDEditMenu)/sizeof(MenuMsgRes));\r
+       return hMenu;\r
+}\r
+\r
+\r
+#endif // PLATFORM_BE500
\ No newline at end of file
diff --git a/Src/LagendaPlatform.h b/Src/LagendaPlatform.h
new file mode 100644 (file)
index 0000000..800bebe
--- /dev/null
@@ -0,0 +1,49 @@
+#ifndef LAGENDAPLATFORM_H\r
+#define LAGENDAPLATFORM_H\r
+#if defined(PLATFORM_BE500)\r
+\r
+#define PLATFORM_TYPE LagendaPlatform\r
+\r
+class LagendaPlatform : public PlatformLayer {\r
+public:\r
+       HWND hMSCmdBar;\r
+       HWND hMDCmdBar;\r
+\r
+       HMENU hMSMemoMenu;\r
+       HMENU hMSToolMenu;\r
+       HMENU hMSBookMarkMenu;\r
+       HMENU hMDEditMenu;\r
+\r
+       void Create(HWND hWnd, HINSTANCE hInst);\r
+\r
+       HMENU GetMDToolMenu() { return hMDEditMenu; }\r
+       HMENU GetMSEditMenu() { return hMSMemoMenu; }\r
+       HMENU GetMSBookMarkMenu() { return hMSBookMarkMenu; }\r
+       HMENU GetMSToolMenu() { return hMSToolMenu; }\r
+\r
+       void EnableMenu(UINT uid, BOOL bEnable);\r
+       void EnableSearchNext() { /* nop */ }\r
+       void CheckMenu(UINT uid, BOOL bCheck);\r
+\r
+       void OpenDetailsView();\r
+       void CloseDetailsView();\r
+\r
+       void AdjustUserRect(RECT *r);\r
+\r
+       void ShowStatusBar(BOOL bShow) { /* nop */ }\r
+       void SetStatusIndicator(DWORD nPos, LPCTSTR pText, BOOL bDisp) { /* nop */ }\r
+       WORD GetStatusBarHeight() { return 0; }\r
+       void ResizeStatusBar(WPARAM wParam, LPARAM lParam) { /* nop */ }\r
+       void GetStatusWindowRect(RECT *pRect);\r
+\r
+       static LagendaPlatform *PlatformFactory() { return new LagendaPlatform(); }\r
+\r
+       static HMENU LoadMSMemoMenu();\r
+       static HMENU LoadMSToolMenu();\r
+       static HMENU LoadMSBookmarkMenu();\r
+       static HMENU LoadMDEditMenu();\r
+\r
+};\r
+\r
+#endif // PLATFORM_BE500\r
+#endif
\ No newline at end of file
diff --git a/Src/MainFrame.cpp b/Src/MainFrame.cpp
new file mode 100644 (file)
index 0000000..500dd73
--- /dev/null
@@ -0,0 +1,1900 @@
+#include <windows.h>\r
+#include <commctrl.h>\r
+#include <tchar.h>\r
+\r
+#if defined(PLATFORM_BE500)\r
+#include <CSO.h>\r
+#endif\r
+\r
+#include "Tombo.h"\r
+#include "VarBuffer.h"\r
+#include "MainFrame.h"\r
+#include "resource.h"\r
+#include "Message.h"\r
+#include "Property.h"\r
+#include "TString.h"\r
+#include "SipControl.h"\r
+#include "TreeViewItem.h"\r
+#include "GrepDialog.h"\r
+#include "FilterCtlDlg.h"\r
+#include "VFManager.h"\r
+#include "BookMark.h"\r
+#include "DialogTemplate.h"\r
+#include "BookMarkDlg.h"\r
+#include "StatusBar.h"\r
+#include "PlatformLayer.h"\r
+#include "TomboURI.h"\r
+#include "Repository.h"\r
+\r
+#if defined(PLATFORM_PKTPC) || defined(PLATFORM_WM5)\r
+#include "DialogTemplate.h"\r
+#include "DetailsViewDlg.h"\r
+#endif\r
+\r
+#if defined(PLATFORM_PKTPC) || defined(PLATFORM_WM5)\r
+#include <Aygshell.h>\r
+#include <Imm.h>\r
+#endif\r
+#if defined(PLATFORM_PSPC)\r
+#include <Aygshell.h>\r
+extern "C" {\r
+       // ?? may be deleted Imm.h ??\r
+UINT WINAPI ImmGetVirtualKey(HWND);\r
+};\r
+#endif\r
+\r
+#include "AboutDialog.h"\r
+#include "SearchDlg.h"\r
+#include "SearchEngine.h"\r
+#include "SearchTree.h"\r
+\r
+#include "Region.h"\r
+#include "YAEdit.h"\r
+#include "YAEditor.h"\r
+\r
+LPCTSTR MainFrame::pClassName = TOMBO_MAIN_FRAME_WINDOW_CLSS;\r
+\r
+static LRESULT CALLBACK MainFrameWndProc(HWND, UINT, WPARAM, LPARAM);\r
+static HIMAGELIST CreateSelectViewImageList(HINSTANCE hInst);\r
+\r
+#define SHGetMenu(hWndMB)  (HMENU)SendMessage((hWndMB), SHCMBM_GETMENU, (WPARAM)0, (LPARAM)0)\r
+#define SHGetSubMenu(hWndMB,ID_MENU) (HMENU)SendMessage((hWndMB), SHCMBM_GETSUBMENU, (WPARAM)0, (LPARAM)ID_MENU)\r
+#define SHSetSubMenu(hWndMB,ID_MENU) (HMENU)SendMessage((hWndMB), SHCMBM_SETSUBMENU, (WPARAM)0, (LPARAM)ID_MENU)\r
+\r
+// splitter width\r
+#if defined(PLATFORM_WIN32)\r
+#define BORDER_WIDTH 2\r
+#endif\r
+#if defined(PLATFORM_HPC) || defined(PLATFORM_PKTPC) || defined(PLATFORM_PSPC) || defined(PLATFORM_BE500)  || defined(PLATFORM_WM5)\r
+#if defined(FOR_VGA)\r
+#define BORDER_WIDTH 10\r
+#else\r
+#define BORDER_WIDTH 5\r
+#endif\r
+#endif\r
+\r
+// Bookmark menu ID base value\r
+#define BOOKMARK_ID_BASE 41000\r
+\r
+///////////////////////////////////////\r
+// ctor\r
+///////////////////////////////////////\r
+\r
+MainFrame::MainFrame() : bResizePane(FALSE), //bSelectViewActive(FALSE), \r
+       vtFocusedView(VT_Unknown),\r
+       pBookMark(NULL), pDetailsView(NULL), pPlatform(NULL), lCurrentLayout(LT_Unknown)\r
+{\r
+}\r
+\r
+///////////////////////////////////////\r
+// dtor\r
+///////////////////////////////////////\r
+\r
+MainFrame::~MainFrame()\r
+{\r
+       delete pDetailsView;\r
+       delete pBookMark;\r
+       delete pPlatform;\r
+}\r
+\r
+///////////////////////////////////////\r
+// Regist window class\r
+///////////////////////////////////////\r
+\r
+BOOL MainFrame::RegisterClass(HINSTANCE hInst)\r
+{\r
+       WNDCLASS wc;\r
+\r
+       wc.style = 0;\r
+       wc.lpfnWndProc = (WNDPROC)MainFrameWndProc;\r
+       wc.cbClsExtra = 0;\r
+       wc.cbWndExtra = sizeof(LONG);\r
+       wc.hInstance = hInst;\r
+       wc.hIcon = NULL;\r
+#if defined(PLATFORM_PSPC) || defined(PLATFORM_BE500)\r
+       wc.hCursor = NULL;\r
+       wc.hbrBackground = (HBRUSH)GetStockObject(WHITE_BRUSH);\r
+#else\r
+       wc.hCursor = NULL;\r
+       wc.hbrBackground = (HBRUSH)COLOR_BTNSHADOW;\r
+#endif\r
+#if defined(PLATFORM_WIN32)\r
+       wc.hCursor = LoadCursor(NULL, IDC_SIZEWE);\r
+       wc.hbrBackground = (HBRUSH)COLOR_BTNSHADOW;\r
+#endif\r
+       wc.lpszMenuName = NULL;\r
+       wc.lpszClassName = pClassName;\r
+\r
+       ::RegisterClass(&wc);\r
+       return TRUE;\r
+}\r
+\r
+///////////////////////////////////////////////////\r
+// Event Handler\r
+///////////////////////////////////////////////////\r
+\r
+static LRESULT CALLBACK MainFrameWndProc(HWND hWnd, UINT nMessage, WPARAM wParam, LPARAM lParam)\r
+{\r
+       if (nMessage == WM_CREATE) {\r
+               LPCREATESTRUCT pCS = (LPCREATESTRUCT)lParam;\r
+               MainFrame *frm = (MainFrame*)pCS->lpCreateParams;\r
+               SetWindowLong(hWnd, 0, (LONG)frm);\r
+               frm->OnCreate(hWnd, wParam, lParam);\r
+               return 0;\r
+       }\r
+\r
+       MainFrame *frm = (MainFrame*)GetWindowLong(hWnd, 0);\r
+       if (frm == NULL) {\r
+               return DefWindowProc(hWnd, nMessage, wParam, lParam);\r
+       }\r
+\r
+       BOOL bRes;\r
+       switch(nMessage) {\r
+       case WM_CLOSE:\r
+               return frm->OnExit();\r
+       case WM_COMMAND:\r
+               frm->OnCommand(hWnd, wParam, lParam);\r
+               return 0;\r
+       case WM_NOTIFY:\r
+               bRes = frm->OnNotify(hWnd, wParam, lParam);\r
+               if (bRes != 0xFFFFFFFF) return bRes;\r
+               break;\r
+       case MWM_SWITCH_VIEW:\r
+               frm->ActivateView(MainFrame::VT_DetailsView);\r
+               return 0;\r
+       case WM_SETFOCUS:\r
+               frm->SetFocus();\r
+               return 0;\r
+       case WM_SETTINGCHANGE:\r
+               frm->OnSettingChange(wParam);\r
+               return 0;\r
+       case WM_TIMER:\r
+               frm->OnTimer(wParam);\r
+               return 0;\r
+       case WM_SIZE:\r
+               frm->OnResize(wParam, lParam);\r
+               break;\r
+       case WM_HOTKEY:\r
+               // \83n\83\93\83h\83\8b\82Å\82«\82é\82à\82Ì\82É\82Â\82¢\82Ä\82Ì\82Ý\83n\83\93\83h\83\8b\r
+               if (frm->OnHotKey(wParam, lParam)) return 0;\r
+               break;\r
+       case WM_LBUTTONDOWN:\r
+               if (g_Property.GetUseTwoPane()) {\r
+                       // \83y\83C\83\93\94z\95ª\82Ì\95Ï\8dX\8aJ\8en\r
+                       frm->OnLButtonDown(wParam, lParam);\r
+                       return 0;\r
+               }\r
+               break;\r
+       case WM_MOUSEMOVE:\r
+               if (g_Property.GetUseTwoPane()) {\r
+                       // \83y\83C\83\93\94z\95ª\82Ì\95Ï\8dX\92\86\r
+                       frm->OnMouseMove(wParam, lParam);\r
+                       return 0;\r
+               }\r
+               break;\r
+       case WM_LBUTTONUP:\r
+               if (g_Property.GetUseTwoPane()) {\r
+                       // \83y\83C\83\93\94z\95ª\82Ì\95Ï\8dX\8fI\97¹\r
+                       frm->OnLButtonUp(wParam, lParam);\r
+                       return 0;\r
+               }\r
+       case MWM_RAISE_MAINFRAME:\r
+               frm->OnMutualExecute();\r
+               return 0;\r
+       }\r
+       return DefWindowProc(hWnd, nMessage, wParam, lParam);\r
+}\r
+\r
+//////////////////////////////////////\r
+// message loop\r
+//////////////////////////////////////\r
+// \8d×\8dH\82ð\82µ\82ÄAction\83{\83^\83\93\82ð\89\9f\82µ\82½\8dÛ\82ÉVK_RETURN\82ª\94­\90\82µ\82È\82¢\82æ\82¤\82É\82µ\82Ä\82¢\82é\r
+\r
+//\92Ê\8fí\82ÌACTION\83V\81[\83P\83\93\83X\r
+\r
+//KD   VK_F23 1\r
+//KU   VK_F23 1\r
+//KD   VK_RETURN  1\r
+//KU   VK_RETRN  1\r
+\r
+//KD   VK_F23(86)       1\r
+//KU   VK_F23(86)       c0000001\r
+//KD   VK_RETURN(d) 1\r
+//KU   VK_RETURN(d) c0000001\r
+\r
+//KD   VK_PROCESSKEY(e5)       1\r
+//KU   VK_F23(86)                      c0000001\r
+//KD   VK_RETURN(d) 1\r
+//KU   VK_RETURN(d) c0000001\r
+\r
+#include "File.h"\r
+#include "Uniconv.h"\r
+\r
+int MainFrame::MainLoop() {\r
+       MSG msg;\r
+\r
+       HACCEL hAccelSv = LoadAccelerators(g_hInstance, MAKEINTRESOURCE(IDR_ACCEL_SELECT));\r
+       HACCEL hAccelDv = LoadAccelerators(g_hInstance, MAKEINTRESOURCE(IDR_ACCEL_DETAIL));\r
+\r
+#if defined(PLATFORM_PKTPC) || defined(PLATFORM_PSPC) || defined(PLATFORM_BE500)\r
+       BOOL bIgnoreReturnKeyDown = FALSE;\r
+       BOOL bIgnoreReturnKeyUp = FALSE;\r
+       BOOL bIgnoreEscKeyDown = FALSE;\r
+       BOOL bIgnoreEscKeyUp = FALSE;\r
+#endif\r
+\r
+       while(GetMessage(&msg, NULL, 0, 0)) {\r
+               // \83p\83X\83\8f\81[\83h\83^\83C\83\80\83A\83E\83g\8f\88\97\9d\r
+               pmPasswordMgr.ForgetPasswordIfNotAccessed();\r
+               if (msg.message == WM_KEYDOWN || msg.message == WM_LBUTTONDOWN) {\r
+                       pmPasswordMgr.UpdateAccess();\r
+               }\r
+\r
+#if defined(PLATFORM_PKTPC) || defined(PLATFORM_PSPC) || defined(PLATFORM_BE500)\r
+               // \83A\83N\83V\83\87\83\93\83L\81[\89\9f\89º\82É\94º\82¤VK_RETURN\82Ì\96³\8e\8b\r
+\r
+#if defined(PLATFORM_PKTPC)\r
+               // On PocketPC devices, you can select enable/disable about this feature.\r
+               if (!g_Property.GetDisableExtraActionButton()) {\r
+               //disable logic begin\r
+#endif\r
+\r
+               if (msg.message == WM_KEYDOWN) {\r
+                       WPARAM w = msg.wParam;\r
+                       if (w == VK_PROCESSKEY) {\r
+                               w = ImmGetVirtualKey(msg.hwnd);\r
+                       }\r
+                       if (w == VK_F23) {\r
+                               bIgnoreReturnKeyDown = bIgnoreReturnKeyUp = TRUE;\r
+                               continue;\r
+                       }\r
+                       if (w == VK_F24) {\r
+                               bIgnoreEscKeyDown = bIgnoreEscKeyUp = TRUE;\r
+                               continue;\r
+                       }\r
+                       if (bIgnoreReturnKeyDown && w == VK_RETURN) {\r
+                               bIgnoreReturnKeyDown = FALSE;\r
+                               continue;\r
+                       }\r
+                       if (bIgnoreEscKeyDown && w == VK_ESCAPE) {\r
+                               bIgnoreEscKeyDown = FALSE;\r
+                               continue;\r
+                       }\r
+               }\r
+               if (msg.message == WM_KEYUP) {\r
+                       if (msg.wParam == VK_F23) {\r
+                               continue;\r
+                       }\r
+                       if (bIgnoreReturnKeyUp && msg.wParam == VK_RETURN) {\r
+                               bIgnoreReturnKeyUp = FALSE;\r
+                               PostMessage(hMainWnd, WM_COMMAND, MAKEWPARAM(IDM_ACTIONBUTTON, 0), 0);\r
+                               continue;\r
+                       }\r
+                       if (msg.wParam == VK_F24) {\r
+                               continue;\r
+                       }\r
+                       if (bIgnoreEscKeyUp && msg.wParam == VK_ESCAPE) {\r
+                               bIgnoreEscKeyUp = FALSE;\r
+                               PostMessage(hMainWnd, WM_COMMAND, MAKEWPARAM(IDM_RETURNLIST, 0), 0);\r
+                               continue;\r
+                       }\r
+               }\r
+#if defined(PLATFORM_PKTPC)\r
+               } // disable logic end\r
+#endif\r
+\r
+#endif\r
+               // \96{\97\88\82Ì\8f\88\97\9d\r
+               if (!TranslateAccelerator(hMainWnd, SelectViewActive() ? hAccelSv : hAccelDv, &msg)) {\r
+                       TranslateMessage(&msg);\r
+                       DispatchMessage(&msg);\r
+               }\r
+       }\r
+       return msg.wParam;\r
+}\r
+\r
+void MainFrame::NotifyDetailsViewFocused()\r
+{\r
+       if (!g_Property.GetUseTwoPane()) return;\r
+\r
+       SetFocus(MainFrame::VT_DetailsView);\r
+\r
+       // menu control\r
+       EnableDelete(FALSE);\r
+       EnableRename(FALSE);\r
+       EnableEncrypt(FALSE);\r
+       EnableDecrypt(FALSE);\r
+       EnableNewFolder(FALSE);\r
+       EnableGrep(FALSE);\r
+\r
+       EnableCut(TRUE);\r
+       EnableCopy(TRUE);\r
+       EnablePaste(TRUE);\r
+       if (pDetailsView) pDetailsView->SetModifyStatus();\r
+}\r
+\r
+///////////////////////////////////////////////////\r
+// Create main window\r
+///////////////////////////////////////////////////\r
+\r
+BOOL MainFrame::Create(LPCTSTR pWndName, HINSTANCE hInst, int nCmdShow)\r
+{\r
+       hInstance = hInst;\r
+\r
+       YAEditor *pYAE;\r
+       SimpleEditor *pSe;\r
+       if (!g_Property.GetDisableYAEdit()) {\r
+               YAEdit::RegisterClass(hInst);\r
+\r
+               pYAE = new YAEditor(&mmMemoManager);\r
+               pDetailsView = pYAE;\r
+       } else {\r
+               SimpleEditor::RegisterClass(hInst);\r
+\r
+               pSe = new SimpleEditor(&mmMemoManager);\r
+               pDetailsView = pSe;\r
+       }\r
+\r
+       mmMemoManager.Init(this, pDetailsView, &msView);\r
+       msView.Init(&mmMemoManager);\r
+\r
+       if (!g_Property.GetDisableYAEdit()) {\r
+               pYAE->Init(IDC_TOMBOEDIT);\r
+       } else {\r
+               pSe->Init(IDC_MEMODETAILSVIEW, IDC_MEMODETAILSVIEW_NF);\r
+       }\r
+\r
+       pVFManager = new VFManager();\r
+       if (!pVFManager || !pVFManager->Init()) return FALSE;\r
+\r
+       pBookMark = new BookMark();\r
+       if (!pBookMark || !pBookMark->Init(BOOKMARK_ID_BASE)) return FALSE;\r
+\r
+\r
+#ifdef _WIN32_WCE\r
+       hMainWnd = CreateWindow(pClassName, pWndName,\r
+                                               WS_VISIBLE,\r
+                                               CW_USEDEFAULT,\r
+                                               CW_USEDEFAULT,\r
+                                               CW_USEDEFAULT,\r
+                                               CW_USEDEFAULT,\r
+                                               NULL,\r
+                                               NULL, \r
+                                               hInst,\r
+                                               this);\r
+#else\r
+#if defined(PLATFORM_WIN32)\r
+       hMainWnd = CreateWindow(pClassName, pWndName,\r
+                                               WS_OVERLAPPEDWINDOW,\r
+                                               0,\r
+                                               0,\r
+                                               640,\r
+                                               320,\r
+                                               NULL,\r
+                                               Win32Platform::LoadMainMenu(),\r
+                                               hInst,\r
+                                               this);\r
+#else \r
+       // debug mode \r
+       hMainWnd = CreateWindow(pClassName, pWndName,\r
+                                               WS_SYSMENU | WS_THICKFRAME,\r
+                                               0,\r
+                                               0,\r
+                                               240,\r
+                                               320,\r
+                                               NULL,\r
+                                               LoadMenu(hInst, MAKEINTRESOURCE(IDR_MENU_MAIN)), \r
+                                               hInst,\r
+                                               this);\r
+#endif\r
+#endif\r
+\r
+       // set application icon\r
+       SetAppIcon(hInstance, hMainWnd);\r
+\r
+       // load window positions\r
+#if defined(PLATFORM_WIN32)\r
+       WINDOWPLACEMENT wpl;\r
+       wpl.length = sizeof(wpl);\r
+       WORD nSelectViewWidth;\r
+\r
+       if (g_Property.GetWinSize(&(wpl.flags), &(wpl.showCmd), &(wpl.rcNormalPosition), &nSelectViewWidth)) {\r
+               if (!SetWindowPlacement(hMainWnd, &wpl)) {\r
+                       UpdateWindow(hMainWnd);\r
+               }\r
+       } else {\r
+               ShowWindow(hMainWnd, nCmdShow);\r
+               UpdateWindow(hMainWnd);\r
+       }\r
+#else\r
+       ShowWindow(hMainWnd, nCmdShow);\r
+       UpdateWindow(hMainWnd);\r
+#endif\r
+\r
+       return TRUE;\r
+}\r
+\r
+///////////////////////////////////////////////////\r
+// Initialize window\r
+///////////////////////////////////////////////////\r
+\r
+void MainFrame::OnCreate(HWND hWnd, WPARAM wParam, LPARAM lParam)\r
+{\r
+       hMainWnd = hWnd;\r
+       LPCREATESTRUCT pcs = (LPCREATESTRUCT)lParam;\r
+\r
+       // init password manager\r
+       pmPasswordMgr.Init(hMainWnd, hInstance);\r
+       g_pPassManager = &pmPasswordMgr;\r
+\r
+       g_pPasswordManager = &pmPasswordMgr;\r
+\r
+       pPlatform = PLATFORM_TYPE::PlatformFactory();\r
+       if (!pPlatform || !pPlatform->Init(hMainWnd)) return;\r
+\r
+       RECT r;\r
+       GetClientRect(hWnd, &r);\r
+\r
+       // Initialize repository\r
+       g_Repository.Init();\r
+       DWORD n = g_Property.GetNumSubRepository();\r
+       for (DWORD i = 0; i < n; i++) {\r
+               RepositoryImpl *pImpl = g_Property.GetSubRepository(i);\r
+               g_Repository.AddSubRepository(pImpl);\r
+       }\r
+\r
+       // create toolbar\r
+       pPlatform->Create(hWnd, pcs->hInstance);\r
+\r
+#if defined(PLATFORM_WIN32)\r
+       pPlatform->ShowRebar(!g_Property.GetHideRebar());\r
+#endif\r
+\r
+       // adjust client area to remove toolbar area\r
+       pPlatform->AdjustUserRect(&r);\r
+\r
+       // Status Bar\r
+       SetNewMemoStatus(g_Property.GetUseTwoPane());\r
+       SetModifyStatus(FALSE);\r
+\r
+#if defined(PLATFORM_WIN32) || defined(PLATFORM_HPC)\r
+       // control show/hide status bar\r
+       HMENU hMenu = pPlatform->GetMainMenu();\r
+       if (g_Property.GetHideStatusBar()) {\r
+               CheckMenuItem(hMenu, IDM_SHOWSTATUSBAR, MF_BYCOMMAND | MF_UNCHECKED);\r
+       } else {\r
+               CheckMenuItem(hMenu, IDM_SHOWSTATUSBAR, MF_BYCOMMAND | MF_CHECKED);\r
+               pPlatform->ShowStatusBar(TRUE);\r
+       }       \r
+#endif\r
+\r
+       pPlatform->CheckMenu(IDM_TOGGLEPANE, g_Property.GetUseTwoPane());\r
+\r
+       // Create edit view\r
+       pDetailsView->Create(TEXT("MemoDetails"), r, hWnd,  hInstance, g_Property.DetailsViewFont());\r
+\r
+       if (!g_Property.GetWrapText()) {\r
+               SetWrapText(g_Property.GetWrapText());\r
+       }\r
+\r
+       // Create tree view\r
+       msView.Create(TEXT("MemoSelect"), r, hWnd, IDC_MEMOSELECTVIEW, hInstance, g_Property.SelectViewFont());\r
+       msView.InitTree(pVFManager);\r
+\r
+       // set auto switch mode\r
+       if (g_Property.GetUseTwoPane()) {\r
+               msView.SetAutoLoadMode(g_Property.GetAutoSelectMemo());\r
+               msView.SetSingleClickMode(g_Property.GetSingleClick());\r
+       }\r
+\r
+       LoadWinSize(hWnd);\r
+#if (defined(PLATFORM_PKTPC)  || defined(PLATFORM_WM5)) && defined(FOR_VGA)\r
+       // initialize bLandScapeMode\r
+       bLandscapeMode = (r.right - r.left > r.bottom - r.top);\r
+#endif\r
+       pDetailsView->DiscardMemo();\r
+\r
+       if (!EnableApplicationButton(hWnd)) {\r
+               TomboMessageBox(hMainWnd, MSG_INITAPPBTN_FAIL, TEXT("Warning"), MB_ICONEXCLAMATION | MB_OK);\r
+       }\r
+\r
+#if defined(PLATFORM_WIN32)\r
+       SetTopMost();\r
+#endif\r
+       ActivateView(VT_SelectView);\r
+\r
+\r
+       // load bookmark\r
+       LPCTSTR pBM = g_Property.GetBookMark();\r
+       if (pBM) {\r
+               LoadBookMark(pBM);\r
+       }\r
+\r
+       BOOL bOpenNote;\r
+#if defined(PLATFORM_WM5)\r
+       bOpenNote = FALSE;\r
+#else\r
+       bOpenNote = TRUE;\r
+#endif\r
+       // open top page\r
+       if (g_Property.GetKeepLastOpen()) {\r
+               if (g_Property.GetLastOpenURI() == NULL) return;\r
+               TomboURI sURI;\r
+               if (!sURI.Init(g_Property.GetLastOpenURI())) return;\r
+               msView.ShowItemByURI(&sURI, TRUE, bOpenNote);\r
+       } else if (_tcslen(g_Property.GetDefaultNote()) != 0) {\r
+               TomboURI sURI;\r
+               if (!sURI.Init(g_Property.GetDefaultNote())) return;\r
+               msView.ShowItemByURI(&sURI, TRUE, bOpenNote);\r
+       }\r
+}\r
+\r
+///////////////////////////////////////////////////\r
+// set status indicator on statusbar\r
+///////////////////////////////////////////////////\r
+\r
+void MainFrame::SetModifyStatus(BOOL bModify)\r
+{\r
+       EnableSaveButton(bModify);\r
+       pPlatform->SetStatusIndicator(3, MSG_UPDATE, bModify);\r
+}\r
+\r
+void MainFrame::SetReadOnlyStatus(BOOL bReadOnly) \r
+{\r
+       pPlatform->SetStatusIndicator(1, MSG_RONLY, bReadOnly); \r
+}\r
+\r
+void MainFrame::SetNewMemoStatus(BOOL bNew)\r
+{\r
+       pPlatform->SetStatusIndicator(2, MSG_NEW, bNew); \r
+}\r
+\r
+///////////////////////////////////////////////////\r
+// exiting\r
+///////////////////////////////////////////////////\r
+\r
+BOOL MainFrame::OnExit()\r
+{\r
+       const TomboURI *p = msView.GetCurrentSelectedURI();\r
+       if (p == NULL) {\r
+               g_Property.SetLastOpenURI(NULL);\r
+       } else {\r
+               g_Property.SetLastOpenURI(p->GetFullURI());\r
+       }\r
+\r
+       DWORD nYNC;\r
+       if (!mmMemoManager.SaveIfModify(&nYNC, FALSE)) {\r
+               TCHAR buf[1024];\r
+               wsprintf(buf, MSG_SAVE_FAILED, GetLastError());\r
+               TomboMessageBox(hMainWnd, buf, TEXT("ERROR"), MB_ICONSTOP | MB_OK);\r
+               ActivateView(VT_DetailsView);\r
+               return FALSE;\r
+       }\r
+       if (nYNC == IDCANCEL) return FALSE;\r
+       pmPasswordMgr.ForgetPassword();\r
+\r
+       SaveWinSize();\r
+\r
+#if defined(PLATFORM_HPC)\r
+       // save rebar info\r
+       COMMANDBANDSRESTOREINFO cbri[NUM_COMMANDBAR];\r
+       cbri[0].cbSize = cbri[1].cbSize = sizeof(COMMANDBANDSRESTOREINFO);\r
+       CommandBands_GetRestoreInformation(pPlatform->hMSCmdBar, SendMessage(pPlatform->hMSCmdBar, RB_IDTOINDEX, ID_CMDBAR_MAIN, 0), &cbri[0]);\r
+       CommandBands_GetRestoreInformation(pPlatform->hMSCmdBar, SendMessage(pPlatform->hMSCmdBar, RB_IDTOINDEX, ID_BUTTONBAND, 0), &cbri[1]);\r
+       g_Property.SetCommandbarInfo(cbri);\r
+#endif\r
+\r
+       // save bookmarks\r
+       LPTSTR pBM = pBookMark->ExportToMultiSZ();\r
+       g_Property.SetBookMark(pBM);\r
+       delete [] pBM;\r
+\r
+       // save properties\r
+       if (!g_Property.Save()) {\r
+               MessageBox(MSG_DLG_SAVEPROP_FAILED, TEXT("ERROR"), MB_ICONERROR | MB_OK);\r
+       }\r
+\r
+       PostQuitMessage(0);\r
+       return TRUE;\r
+}\r
+\r
+///////////////////////////////////////////////////\r
+// WM_COMMAND handling\r
+///////////////////////////////////////////////////\r
+\r
+void MainFrame::OnCommand(HWND hWnd, WPARAM wParam, LPARAM lParam)\r
+{\r
+       // First, current active view tries to handle WM_COMMAND\r
+       switch(vtFocusedView) {\r
+       case VT_SelectView:\r
+               if (msView.OnCommand(hWnd, wParam, lParam)) return;\r
+               break;\r
+       case VT_DetailsView:\r
+               if (pDetailsView->OnCommand(hWnd, wParam, lParam)) return;\r
+               break;\r
+       }\r
+\r
+       // if active view can't handle, try to handle main window.\r
+       switch(LOWORD(wParam)) {\r
+#if defined(PLATFORM_BE500)\r
+       case CSOBAR_ADORNMENTID_CLOSE:\r
+               /* fall through */\r
+#endif\r
+       case IDM_EXIT:\r
+               SendMessage(hWnd, WM_CLOSE, 0, 0);\r
+               break;\r
+       case IDM_NEWMEMO:\r
+               NewMemo();\r
+               break;\r
+       case IDM_NEWFOLDER:\r
+               NewFolder(NULL);\r
+               break;\r
+       case IDM_ABOUT:\r
+               About();\r
+               break;\r
+#if defined(PLATFORM_WM5)\r
+       case IDOK:\r
+               LeaveDetailsView(TRUE);\r
+               break;\r
+#endif\r
+       case IDM_RETURNLIST:\r
+               LeaveDetailsView(TRUE);\r
+               break;\r
+       case IDM_PROPERTY:\r
+               OnProperty();\r
+               break;\r
+       case IDM_FORGETPASS:\r
+               OnForgetPass();\r
+               break;\r
+       case IDM_SELALL:\r
+               if (pDetailsView) { pDetailsView->SelectAll(); }\r
+               break;\r
+       case IDM_SAVE:\r
+               if (!mmMemoManager.SaveIfModify(NULL, FALSE)) {\r
+                       TCHAR buf[1024];\r
+                       wsprintf(buf, MSG_SAVE_FAILED, GetLastError());\r
+                       TomboMessageBox(NULL, buf, TEXT("ERROR"), MB_ICONERROR | MB_OK);\r
+               }\r
+               break;\r
+       case IDM_DETAILS_HSCROLL:\r
+               g_Property.SetWrapText(!g_Property.GetWrapText());\r
+               SetWrapText(g_Property.GetWrapText());\r
+               break;\r
+       case IDM_TOGGLEPANE:\r
+               TogglePane();\r
+               break;\r
+#if defined(PLATFORM_WIN32)\r
+       case IDM_TOPMOST:\r
+               g_Property.ToggleStayTopMost();\r
+               SetTopMost();\r
+               break;\r
+#endif\r
+       case IDM_SEARCH:\r
+               OnSearch();\r
+               break;\r
+       case IDM_SEARCH_NEXT:\r
+               OnSearchNext(TRUE);\r
+               break;\r
+       case IDM_SEARCH_PREV:\r
+               OnSearchNext(FALSE);\r
+               break;\r
+#if defined(PLATFORM_WIN32) || defined(PLATFORM_HPC)\r
+       case IDM_SHOWSTATUSBAR:\r
+               ToggleShowStatusBar();\r
+               break;\r
+#endif\r
+#if defined(PLATFORM_WIN32)\r
+       case IDM_SHOWREBAR:\r
+               ToggleShowRebar();\r
+               break;\r
+#endif\r
+       case IDM_GREP:\r
+               OnGrep();\r
+               break;\r
+       case IDM_VFOLDER_DEF:\r
+               OnVFolderDef();\r
+               break;\r
+       case IDM_BOOKMARK_ADD:\r
+               OnBookMarkAdd(hWnd, wParam, lParam);\r
+               break;\r
+       case IDM_BOOKMARK_CONFIG:\r
+               OnBookMarkConfig(hWnd, wParam, lParam);\r
+               break;\r
+       }\r
+\r
+       if (pBookMark->IsBookMarkID(LOWORD(wParam))) {\r
+               OnBookMark(hWnd, wParam, lParam);\r
+       }\r
+       return;\r
+}\r
+\r
+///////////////////////////////////////////////////\r
+// WM_NOTIFY\r
+///////////////////////////////////////////////////\r
+// basically dispatch to each view.\r
+// return false if dispatch is failed.\r
+\r
+BOOL MainFrame::OnNotify(HWND hWnd, WPARAM wParam, LPARAM lParam)\r
+{\r
+       if (wParam == IDC_MEMOSELECTVIEW) {\r
+               return msView.OnNotify(hWnd, wParam, lParam);\r
+       }\r
+#if defined(PLATFORM_HPC)\r
+       if (wParam == IDC_CMDBAND) {\r
+               // when move commandbar, Realign MS/MD view.\r
+               NMREBAR *pnm = (NMREBAR*)lParam;\r
+               if (pnm->hdr.code == RBN_HEIGHTCHANGE) {\r
+                       RECT r;\r
+                       GetClientRect(hMainWnd, &r);\r
+                       OnResize(0, MAKELPARAM(r.right - r.left, r.bottom - r.top));\r
+               }\r
+       }\r
+#endif\r
+       return FALSE;\r
+}\r
+\r
+///////////////////////////////////////////////////\r
+// WM_SETTINGCHANGE\r
+///////////////////////////////////////////////////\r
+\r
+void MainFrame::OnSettingChange(WPARAM wParam)\r
+{\r
+#if defined(PLATFORM_PKTPC) || defined(PLATFORM_PSPC) || defined(PLATFORM_BE500) || defined(PLATFORM_WM5)\r
+       BOOL bStat;\r
+       SipControl sc;\r
+       if (!sc.Init()) return;\r
+       if (!sc.GetSipStat(&bStat)) return;\r
+\r
+       RECT r = sc.GetRect();\r
+       OnSIPResize(bStat, &r);\r
+#endif\r
+#if defined(PLATFORM_HPC) || defined(PLATFORM_PSPC)\r
+       if (wParam == SPI_SETWORKAREA) {\r
+               // Change taskbar size\r
+               RECT r;\r
+               SystemParametersInfo(SPI_GETWORKAREA, 0, &r, 0);\r
+               MoveWindow(hMainWnd, r.left, r.top, r.right - r.left, r.bottom - r.top, TRUE);\r
+       }\r
+#endif\r
+}\r
+\r
+///////////////////////////////////////////////////\r
+// IM\82ÌON/OFF\82É\94º\82¤\83\8a\83T\83C\83Y\r
+///////////////////////////////////////////////////\r
+\r
+void MainFrame::OnSIPResize(BOOL bImeOn, RECT *pSipRect)\r
+{\r
+#if defined(PLATFORM_PKTPC) || defined(PLATFORM_BE500) || defined(PLATFORM_WM5)\r
+       SetLayout();\r
+#endif\r
+}\r
+\r
+///////////////////////////////////////////////////\r
+// hotkey events\r
+///////////////////////////////////////////////////\r
+\r
+BOOL MainFrame::OnHotKey(WPARAM wParam, LPARAM lParam)\r
+{\r
+       if (::bDisableHotKey) return FALSE;\r
+       switch (vtFocusedView) {\r
+       case VT_SelectView:\r
+               return msView.OnHotKey(hMainWnd, wParam);\r
+       case VT_DetailsView:\r
+               return pDetailsView->OnHotKey(hMainWnd, wParam);\r
+       }\r
+       return FALSE;\r
+}\r
+\r
+///////////////////////////////////////////////////\r
+//  Tooltips\r
+///////////////////////////////////////////////////\r
+\r
+void MainFrame::OnTooltip(WPARAM wParam, LPARAM lParam)\r
+{\r
+}\r
+\r
+///////////////////////////////////////////////////\r
+//  Press left button\r
+///////////////////////////////////////////////////\r
+//\r
+// start splitter moving\r
+\r
+void MainFrame::OnLButtonDown(WPARAM wParam, LPARAM lParam)\r
+{\r
+       WORD fwKeys = wParam;\r
+       WORD xPos = LOWORD(lParam);\r
+\r
+       if (!(fwKeys & MK_LBUTTON)) return;\r
+       bResizePane = TRUE;\r
+       SetCapture(hMainWnd);\r
+}\r
+\r
+///////////////////////////////////////////////////\r
+//  Dragging\r
+///////////////////////////////////////////////////\r
+\r
+void MainFrame::OnMouseMove(WPARAM wParam, LPARAM lParam)\r
+{\r
+       WORD fwKeys = wParam;\r
+       WORD xPos = LOWORD(lParam);\r
+\r
+       if (!(fwKeys & MK_LBUTTON) && !bResizePane) return;\r
+\r
+       RECT rClient;\r
+       GetClientRect(hMainWnd, &rClient);\r
+\r
+#if defined(PLATFORM_WIN32) || defined(PLATFORM_HPC)\r
+\r
+       SHORT yPos = (SHORT)HIWORD(lParam);\r
+\r
+       SHORT yLimit = (SHORT)rClient.bottom;\r
+#ifdef COMMENT\r
+       if (!g_Property.HideStatusBar()) {\r
+               RECT rStatBar;\r
+               pPlatform->GetStatusWindowRect(&rStatBar);\r
+               yLimit -= (SHORT)rStatBar.bottom;\r
+       }\r
+#endif\r
+       if (yPos < 0 || yPos > yLimit) return;\r
+       MovePane(xPos);\r
+#endif\r
+}\r
+\r
+///////////////////////////////////////////////////\r
+//  Left button up\r
+///////////////////////////////////////////////////\r
+//\r
+// end splitter move\r
+\r
+void MainFrame::OnLButtonUp(WPARAM wParam, LPARAM lParam)\r
+{\r
+       WORD fwKeys = wParam;\r
+       WORD xPos = LOWORD(lParam);\r
+       WORD yPos = HIWORD(lParam);\r
+\r
+       if (!(fwKeys & MK_LBUTTON) && !bResizePane) return;\r
+       bResizePane = FALSE;\r
+       ReleaseCapture();\r
+\r
+#if defined(PLATFORM_WIN32) || defined(PLATFORM_HPC)\r
+       RECT r;\r
+       GetClientRect(hMainWnd, &r);\r
+       WORD wTotalWidth = (WORD)(r.right - r.left);\r
+       if (xPos < 20) {\r
+               xPos = 20;\r
+       }\r
+       if (xPos > wTotalWidth - 20) {\r
+               xPos = wTotalWidth - 20;\r
+       }\r
+       MovePane(xPos);\r
+#endif \r
+#if ((defined(PLATFORM_PKTPC)  || defined(PLATFORM_WM5)) && !defined(FOR_VGA)) || defined(PLATFORM_PSPC) || defined(PLATFORM_BE500)\r
+       RECT r;\r
+       GetClientRect(hMainWnd, &r);\r
+       WORD wTotalHeight = (WORD)(r.bottom - r.top);\r
+       if (yPos < 20) {\r
+               yPos = 20;\r
+       }\r
+       if (yPos > wTotalHeight - 20) {\r
+               yPos = wTotalHeight - 20;\r
+       }\r
+       MovePane(yPos);\r
+#endif \r
+#if (defined(PLATFORM_PKTPC)  || defined(PLATFORM_WM5)) && defined(FOR_VGA)\r
+       RECT r;\r
+       GetClientRect(hMainWnd, &r);\r
+       if (bLandscapeMode) {\r
+               WORD wTotalWidth = (WORD)(r.right - r.left);\r
+               if (xPos < 20) {\r
+                       xPos = 20; \r
+               }\r
+               if (xPos >= wTotalWidth - 20) {\r
+                       xPos = wTotalWidth - 20;\r
+               }\r
+               MovePane(xPos);\r
+       } else {\r
+               WORD wTotalHeight = (WORD)(r.bottom - r.top);\r
+               if (yPos < 20) {\r
+                       yPos = 20;\r
+               }\r
+               if (yPos > wTotalHeight - 20) {\r
+                       yPos = wTotalHeight - 20;\r
+               }\r
+               MovePane(yPos);\r
+       }\r
+#endif\r
+\r
+}\r
+\r
+///////////////////////////////////////////////////\r
+//  move pane spliter\r
+///////////////////////////////////////////////////\r
+\r
+void MainFrame::MovePane(WORD nSplit)\r
+{\r
+       if (!g_Property.GetUseTwoPane()) return;\r
+#if (defined(PLATFORM_PKTPC)  || defined(PLATFORM_WM5)) && defined(FOR_VGA)\r
+       if (bLandscapeMode) {\r
+               nSplitterSizeWidth = nSplit;\r
+       } else {\r
+               nSplitterSize = nSplit;\r
+       }       \r
+#else\r
+       nSplitterSize = nSplit;\r
+#endif\r
+       SetLayout();\r
+}\r
+\r
+///////////////////////////////////////////////////\r
+// Focus window\r
+///////////////////////////////////////////////////\r
+\r
+void MainFrame::SetFocus(ViewType vt)\r
+{\r
+       if (vt != VT_Unknown) {\r
+               vtFocusedView = vt;\r
+       }\r
+\r
+       switch(vtFocusedView) {\r
+       case VT_SelectView:\r
+               pPlatform->CloseDetailsView();\r
+               msView.SetFocus();\r
+               break;\r
+       case VT_DetailsView:\r
+               pPlatform->OpenDetailsView();\r
+               pDetailsView->SetFocus();\r
+               break;\r
+       }\r
+}\r
+\r
+///////////////////////////////////////////////////\r
+// Create new notes\r
+///////////////////////////////////////////////////\r
+\r
+void MainFrame::NewMemo()\r
+{\r
+       SipControl sc;\r
+       if (!sc.Init() || !sc.SetSipStat(TRUE)) {\r
+               TomboMessageBox(hMainWnd, MSG_GETSIPSTAT_FAILED, TEXT("ERROR"), MB_ICONSTOP | MB_OK);\r
+       }\r
+\r
+       // if modifying notes, confirm save.\r
+       if (g_Property.GetUseTwoPane()) {\r
+               LeaveDetailsView(TRUE);\r
+       }\r
+       SetNewMemoStatus(TRUE);\r
+       pDetailsView->DiscardMemo();\r
+\r
+//     ActivateView(FALSE);\r
+       ActivateView(VT_DetailsView);\r
+}\r
+\r
+///////////////////////////////////////////////////\r
+// Create new folder\r
+///////////////////////////////////////////////////\r
+\r
+void MainFrame::NewFolder(TreeViewItem *pItem)\r
+{\r
+       if (!msView.MakeNewFolder(hMainWnd, pItem)) {\r
+               TomboMessageBox(hMainWnd, MSG_CREATEFOLDER_FAILED, TEXT("ERROR"), MB_ICONSTOP | MB_OK);\r
+       }\r
+}\r
+\r
+///////////////////////////////////////////////////\r
+// version dialog\r
+///////////////////////////////////////////////////\r
+\r
+void MainFrame::About()\r
+{\r
+       AboutDialog dlg;\r
+       BOOL bPrev = bDisableHotKey;\r
+       bDisableHotKey = TRUE;\r
+       dlg.Popup(hInstance, hMainWnd);\r
+       bDisableHotKey = bPrev;\r
+}\r
+\r
+///////////////////////////////////////////////////\r
+// Set note's headline to window title\r
+///////////////////////////////////////////////////\r
+\r
+void MainFrame::SetWindowTitle(const TomboURI *pURI)\r
+{\r
+#if defined(PLATFORM_WIN32) || defined(PLATFORM_PKTPC) || defined(PLATFORM_WM5)\r
+       if (g_Property.GetSwitchWindowTitle()) {\r
+               if (pURI == NULL) {\r
+                       SetWindowText(hMainWnd, TOMBO_APP_NAME);\r
+                       return;\r
+               }\r
+\r
+               // change window title\r
+               LPCTSTR pPrefix = TEXT("Tombo - ");\r
+               LPCTSTR pBase;\r
+               TString sHeadLine;\r
+               if (g_Repository.GetHeadLine(pURI, &sHeadLine)) {\r
+                       pBase = sHeadLine.Get();\r
+               } else {\r
+                       pBase = TEXT("");\r
+               }\r
+               LPCTSTR pWinTitle;\r
+#if defined(PLATFORM_PKTPC) || defined(PLATFORM_WM5)\r
+               pWinTitle = pBase;\r
+#else\r
+               TString sWinTitle;\r
+               if (sWinTitle.Join(pPrefix, pBase)) {\r
+                       pWinTitle = sWinTitle.Get();\r
+               } else {\r
+                       pWinTitle = pPrefix;\r
+               }\r
+#endif\r
+               SetWindowText(hMainWnd, pWinTitle);\r
+       }\r
+#endif\r
+}\r
+\r
+void MainFrame::PostSwitchView() \r
+{\r
+       PostMessage(hMainWnd, MWM_SWITCH_VIEW, (WPARAM)0, (LPARAM)0); \r
+}\r
+\r
+///////////////////////////////////////////////////\r
+// Request open the note\r
+///////////////////////////////////////////////////\r
+// switch edit view when bSwitchView is TRUE\r
+\r
+void MainFrame::OpenDetailsView(const TomboURI *pURI, DWORD nSwitchView)\r
+{\r
+       URIOption opt(NOTE_OPTIONMASK_ENCRYPTED);\r
+       if (!g_Repository.GetOption(pURI, &opt)) return;\r
+\r
+       if (((nSwitchView & OPEN_REQUEST_MSVIEW_ACTIVE) == 0) && (opt.bEncrypt && !pmPasswordMgr.IsRememberPassword())) {\r
+               // bSwitchView\82ªFALSE\82Å\81A\83\81\83\82\82ð\8aJ\82­\82½\82ß\82É\83p\83X\83\8f\81[\83h\82ð\96â\82¢\8d\87\82í\82¹\82é\95K\97v\82ª\82 \82é\8fê\8d\87\82É\82Í\r
+               // \83\81\83\82\82Í\8aJ\82©\82È\82¢\r
+               return;\r
+       }\r
+       pDetailsView->LoadNote(pURI);\r
+       SetNewMemoStatus(FALSE);\r
+\r
+       SetWindowTitle(pURI);\r
+\r
+       if (g_Property.GetUseTwoPane()) {\r
+               if (nSwitchView & OPEN_REQUEST_MSVIEW_ACTIVE) {\r
+                       ActivateView(VT_DetailsView);\r
+               }\r
+       } else {\r
+               ActivateView(VT_DetailsView);\r
+       }\r
+}\r
+\r
+///////////////////////////////////////////////////\r
+// load notes\r
+///////////////////////////////////////////////////\r
+\r
+void MainFrame::LoadMemo(const TomboURI *pURI, BOOL bAskPass)\r
+{\r
+       URIOption opt(NOTE_OPTIONMASK_ENCRYPTED);\r
+       if (!g_Repository.GetOption(pURI, &opt)) return;\r
+\r
+       if (opt.bEncrypt && \r
+               !pmPasswordMgr.IsRememberPassword() &&\r
+               bAskPass == FALSE) {\r
+               // if TOMBO doesn't keep password even though it is need\r
+               // and caller don't want to ask password, nothing to do\r
+               return;\r
+       }\r
+       pDetailsView->LoadNote(pURI);\r
+       SetNewMemoStatus(FALSE);\r
+       SetWindowTitle(pURI);\r
+}\r
+\r
+///////////////////////////////////////////////////\r
+// leave edit view and return to treeview\r
+///////////////////////////////////////////////////\r
+\r
+void MainFrame::LeaveDetailsView(BOOL bAskSave)\r
+{\r
+       SipControl sc;\r
+       if (!sc.Init() || !sc.SetSipStat(FALSE)) {\r
+               TomboMessageBox(hMainWnd, MSG_GETSIPSTAT_FAILED, TEXT("ERROR"), MB_ICONSTOP | MB_OK);\r
+       }\r
+\r
+       DWORD nYNC;\r
+       BOOL bResult;\r
+       if (bAskSave) {\r
+               if (GetKeyState(VK_SHIFT) < 0) {\r
+                       nYNC = IDNO;\r
+                       bResult = TRUE;\r
+               } else {\r
+                       bResult = mmMemoManager.SaveIfModify(&nYNC, FALSE);\r
+               }\r
+       } else {\r
+               nYNC = IDYES;\r
+               bResult = mmMemoManager.SaveIfModify(NULL, TRUE);\r
+       }\r
+       if (!bResult) {\r
+               TCHAR buf[1024];\r
+               wsprintf(buf, MSG_SAVE_FAILED, GetLastError());\r
+               TomboMessageBox(hMainWnd, buf, TEXT("ERROR"), MB_ICONSTOP | MB_OK);\r
+               ActivateView(VT_DetailsView);\r
+               return;\r
+       }\r
+       if (nYNC == IDCANCEL) return;\r
+       ActivateView(VT_SelectView);\r
+\r
+       if (g_Property.GetUseTwoPane()) {\r
+               // clear encrypted notes if two pane mode\r
+               if (nYNC == IDNO) {\r
+                       // discard current note and load old one.\r
+                       if (pDetailsView->GetCurrentURI()) {\r
+                               OpenDetailsView(pDetailsView->GetCurrentURI(), OPEN_REQUEST_MDVIEW_ACTIVE);\r
+                       } else {\r
+                               pDetailsView->DiscardMemo();\r
+                       }\r
+               } else {\r
+                       // nYNC == YES so note has been saved.\r
+                       if (pDetailsView->GetCurrentURI()) {\r
+                               URIOption opt(NOTE_OPTIONMASK_ENCRYPTED);\r
+                               if (!g_Repository.GetOption(pDetailsView->GetCurrentURI(), &opt)) return;\r
+                               if (opt.bEncrypt) {\r
+                                       pDetailsView->DiscardMemo();\r
+                               }\r
+                       }\r
+               }\r
+       } else {\r
+               // User's choise is not "CANCEL", and saved if he/she choose "YES", so discard note.\r
+               pDetailsView->DiscardMemo();\r
+               SetNewMemoStatus(FALSE);\r
+       }\r
+\r
+#if defined(PLATFORM_PKTPC) || defined(PLATFORM_WM5)\r
+       SetWindowTitle(NULL);\r
+#endif\r
+       SetFocus();\r
+}\r
+\r
+///////////////////////////////////////////////////\r
+// switch view\r
+///////////////////////////////////////////////////\r
+\r
+void MainFrame::ActivateView(ViewType vt)\r
+{\r
+       if (vt == vtFocusedView) {\r
+               SetFocus();\r
+               return;\r
+       }\r
+\r
+       vtFocusedView = vt;\r
+       SetLayout();\r
+       SetFocus();\r
+}\r
+\r
+///////////////////////////////////////////////////\r
+// change layout\r
+///////////////////////////////////////////////////\r
+\r
+void MainFrame::SetLayout()\r
+{\r
+       if (g_Property.GetUseTwoPane()) {\r
+#if defined(PLATFORM_HPC) || defined(PLATFORM_WIN32)\r
+               ChangeLayout(LT_TwoPane);\r
+#endif\r
+#if defined(PLATFORM_PKTPC) || defined(PLATFORM_PSPC) || defined(PLATFORM_BE500) || defined(PLATFORM_WM5)\r
+               switch(vtFocusedView) {\r
+               case VT_SelectView:\r
+                       ChangeLayout(LT_TwoPane);\r
+                       break;\r
+               case VT_DetailsView:\r
+                       ChangeLayout(LT_OnePaneDetailsView);\r
+                       break;\r
+               }\r
+#endif\r
+       } else {\r
+               switch (vtFocusedView) {\r
+               case VT_SelectView:\r
+                       ChangeLayout(LT_OnePaneSelectView);\r
+                       break;\r
+               case VT_DetailsView:\r
+                       ChangeLayout(LT_OnePaneDetailsView);\r
+                       break;\r
+               }\r
+       }\r
+}\r
+\r
+///////////////////////////////////////////////////\r
+// Switch pane mode\r
+///////////////////////////////////////////////////\r
+void MainFrame::TogglePane()\r
+{\r
+       pPlatform->CheckMenu(IDM_TOGGLEPANE, !g_Property.GetUseTwoPane());\r
+\r
+       if (g_Property.GetUseTwoPane()) {\r
+               SaveWinSize();\r
+       }\r
+\r
+       DWORD nPane = g_Property.GetUseTwoPane() ? MF_UNCHECKED : MF_CHECKED;\r
+       g_Property.SetUseTwoPane(nPane);\r
+\r
+       SetLayout();\r
+}\r
+\r
+///////////////////////////////////////////////////\r
+// Switch pane\r
+///////////////////////////////////////////////////\r
+\r
+void MainFrame::ChangeLayout(LayoutType layout)\r
+{\r
+       pPlatform->ShowStatusBar(!g_Property.GetHideStatusBar());\r
+#if defined(PLATFORM_WIN32)\r
+       pPlatform->ShowRebar(!g_Property.GetHideRebar());\r
+#endif\r
+\r
+       // get tree/edit view area\r
+       RECT r, rc;\r
+       GetClientRect(hMainWnd, &r);\r
+       rc = r;\r
+       pPlatform->AdjustUserRect(&rc);\r
+\r
+       switch(layout) {\r
+       case LT_TwoPane:\r
+               {\r
+#if defined(PLATFORM_WIN32) || defined(PLATFORM_HPC)\r
+                       // split vertical\r
+                       msView.MoveWindow(rc.left, rc.top , nSplitterSize, rc.bottom);\r
+                       pDetailsView->MoveWindow(nSplitterSize + BORDER_WIDTH, rc.top, rc.right - nSplitterSize - BORDER_WIDTH, rc.bottom);\r
+#endif\r
+#if defined(PLATFORM_BE500) || ((defined(PLATFORM_PKTPC) || defined(PLATFORM_WM5)) && !defined(FOR_VGA))\r
+                       // split horizontal\r
+                       msView.MoveWindow(rc.left, rc.top , rc.right, nSplitterSize);\r
+                       pDetailsView->MoveWindow(\r
+                               rc.left, rc.top + nSplitterSize + BORDER_WIDTH, \r
+                               rc.right, rc.bottom - nSplitterSize - BORDER_WIDTH);\r
+#endif\r
+#if (defined(PLATFORM_PKTPC) || defined(PLATFORM_WM5)) && defined(FOR_VGA)\r
+                       if (r.bottom - r.top > r.right - r.left) {\r
+                               // portrait mode\r
+                               bLandscapeMode = FALSE;\r
+                               // split horizontal\r
+                               msView.MoveWindow(rc.left, rc.top , rc.right, nSplitterSize);\r
+                               pDetailsView->MoveWindow(\r
+                                       rc.left, rc.top + nSplitterSize + BORDER_WIDTH, \r
+                                       rc.right, rc.bottom - nSplitterSize - BORDER_WIDTH);\r
+                       } else {\r
+                               // landscape mode\r
+                               bLandscapeMode = TRUE;\r
+\r
+                               // split vertical\r
+                               msView.MoveWindow(rc.left, rc.top , nSplitterSizeWidth, rc.bottom);\r
+                               pDetailsView->MoveWindow(nSplitterSizeWidth + BORDER_WIDTH, rc.top, rc.right - nSplitterSizeWidth - BORDER_WIDTH, rc.bottom);\r
+                       }\r
+#endif\r
+\r
+                       msView.Show(SW_SHOW);\r
+                       pDetailsView->Show(SW_SHOW);\r
+               }\r
+               break;\r
+       case LT_OnePaneSelectView:\r
+               {\r
+                       WORD wLeftWidth, wHeight;\r
+                       msView.GetSize(&wLeftWidth, &wHeight);\r
+\r
+                       msView.MoveWindow(rc.left, rc.top, rc.right, rc.bottom);\r
+                       pDetailsView->MoveWindow(rc.left, rc.top, rc.right, rc.bottom);\r
+\r
+                       pDetailsView->Show(SW_HIDE);\r
+                       msView.Show(SW_SHOW);\r
+               }\r
+               break;\r
+       case LT_OnePaneDetailsView:\r
+               {\r
+                       WORD wLeftWidth, wHeight;\r
+                       msView.GetSize(&wLeftWidth, &wHeight);\r
+\r
+                       msView.MoveWindow(rc.left, rc.top, rc.right, rc.bottom);\r
+                       pDetailsView->MoveWindow(rc.left, rc.top, rc.right, rc.bottom);\r
+\r
+                       pDetailsView->Show(SW_SHOW);\r
+                       msView.Show(SW_HIDE);\r
+               }\r
+               break;\r
+       }\r
+       lCurrentLayout = layout;\r
+\r
+       // Staus bar & rebar\r
+       pPlatform->ResizeStatusBar(0, MAKELPARAM(r.right - r.left, r.bottom - r.top));\r
+}\r
+\r
+///////////////////////////////////////////////////\r
+//  Resize window\r
+///////////////////////////////////////////////////\r
+\r
+void MainFrame::OnResize(WPARAM wParam, LPARAM lParam)\r
+{\r
+       SetLayout();\r
+}\r
+\r
+///////////////////////////////////////////////////\r
+// Menu control\r
+///////////////////////////////////////////////////\r
+void MainFrame::EnableEncrypt(BOOL bEnable) { pPlatform->EnableMenu(IDM_ENCRYPT, bEnable);}\r
+void MainFrame::EnableDecrypt(BOOL bEnable) { pPlatform->EnableMenu(IDM_DECRYPT, bEnable);}\r
+void MainFrame::EnableDelete(BOOL bEnable) { pPlatform->EnableMenu(IDM_DELETEITEM, bEnable); }\r
+void MainFrame::EnableRename(BOOL bEnable) { pPlatform->EnableMenu(IDM_RENAME, bEnable); }\r
+void MainFrame::EnableNew(BOOL bEnable) { pPlatform->EnableMenu(IDM_NEWMEMO, bEnable); }\r
+void MainFrame::EnableCut(BOOL bEnable) { pPlatform->EnableMenu(IDM_CUT, bEnable); }\r
+void MainFrame::EnableCopy(BOOL bEnable) { pPlatform->EnableMenu(IDM_COPY, bEnable); }\r
+void MainFrame::EnablePaste(BOOL bEnable) { pPlatform->EnableMenu(IDM_PASTE, bEnable); }\r
+void MainFrame::EnableNewFolder(BOOL bEnable) { pPlatform->EnableMenu(IDM_NEWFOLDER, bEnable); }\r
+void MainFrame::EnableGrep(BOOL bEnable) { pPlatform->EnableMenu(IDM_GREP, bEnable);}\r
+void MainFrame::EnableSaveButton(BOOL bEnable) { pPlatform->EnableMenu(IDM_SAVE, bEnable); }\r
+\r
+///////////////////////////////////////////////////\r
+// erase password information\r
+///////////////////////////////////////////////////\r
+\r
+void MainFrame::OnForgetPass()\r
+{\r
+       DWORD nYNC;\r
+       if (!mmMemoManager.SaveIfModify(&nYNC, FALSE)) {\r
+               TCHAR buf[1024];\r
+               wsprintf(buf, MSG_SAVE_FAILED, GetLastError());\r
+               TomboMessageBox(hMainWnd, buf, TEXT("ERROR"), MB_ICONSTOP | MB_OK);\r
+//             ActivateView(FALSE);\r
+               ActivateView(VT_DetailsView);\r
+               return;\r
+       }\r
+       if (nYNC == IDCANCEL) return;\r
+\r
+       pmPasswordMgr.ForgetPassword();\r
+       TomboMessageBox(hMainWnd, MSG_ERASE_PW, MSG_ERASE_PW_TITLE, MB_ICONINFORMATION | MB_OK);\r
+       pDetailsView->DiscardMemo();\r
+\r
+}\r
+\r
+///////////////////////////////////////////////////\r
+// change property\r
+///////////////////////////////////////////////////\r
+\r
+void MainFrame::OnProperty()\r
+{\r
+       BOOL bPrev = bDisableHotKey;\r
+       bDisableHotKey = TRUE;\r
+\r
+       // when calling OnProperty, select view is activated and saving check is finished.\r
+       pDetailsView->DiscardMemo();\r
+\r
+       int nResult = g_Property.Popup(hInstance, hMainWnd, msView.GetCurrentSelectedURI());\r
+       bDisableHotKey = bPrev;\r
+       if (nResult != IDOK) return;\r
+\r
+       g_Repository.ClearSubRepository();\r
+       DWORD n = g_Property.GetNumSubRepository();\r
+       for (DWORD i = 0; i < n; i++) {\r
+               RepositoryImpl *pImpl = g_Property.GetSubRepository(i);\r
+               g_Repository.AddSubRepository(pImpl);\r
+       }\r
+\r
+       // font setting\r
+       msView.SetFont(g_Property.SelectViewFont());\r
+       pDetailsView->SetFont(g_Property.DetailsViewFont());\r
+\r
+       // tabstop setting\r
+       pDetailsView->SetTabstop();\r
+\r
+       // reload notes and folders\r
+       msView.DeleteAllItem();\r
+       msView.InitTree(pVFManager);\r
+#if defined(PLATFORM_WIN32) || defined(PLATFORM_PKTPC) || defined(PLATFORM_WM5)\r
+       if (!g_Property.GetSwitchWindowTitle()) {\r
+               SetWindowText(hMainWnd, TOMBO_APP_NAME);\r
+       }\r
+#endif\r
+\r
+}\r
+\r
+///////////////////////////////////////////////////\r
+// timer events\r
+///////////////////////////////////////////////////\r
+\r
+void MainFrame::OnTimer(WPARAM nTimerID)\r
+{\r
+       if (nTimerID == 0) {\r
+                       if (pDetailsView->GetCurrentURI()) {\r
+                               URIOption opt(NOTE_OPTIONMASK_ENCRYPTED);\r
+                               if (!g_Repository.GetOption(pDetailsView->GetCurrentURI(), &opt)) return;\r
+                               if (opt.bEncrypt) {\r
+                                       LeaveDetailsView(FALSE);\r
+                               }\r
+                       }\r
+               pmPasswordMgr.ForgetPassword();\r
+       } else if (nTimerID == ID_PASSWORDTIMER) {\r
+               pmPasswordMgr.ForgetPasswordIfNotAccessed();\r
+       }\r
+}\r
+\r
+///////////////////////////////////////////////////\r
+// suppress mutual execution\r
+///////////////////////////////////////////////////\r
+void MainFrame::OnMutualExecute()\r
+{\r
+       SetForegroundWindow(hMainWnd);\r
+#if defined(PLATFORM_WIN32)\r
+       BringWindowToTop(hMainWnd);\r
+       ShowWindow(hMainWnd, SW_RESTORE);\r
+#endif\r
+       OnSettingChange(NULL);\r
+}\r
+\r
+///////////////////////////////////////////////////\r
+// enable application button handling\r
+///////////////////////////////////////////////////\r
+// http://www.pocketpcdn.com/qa/handle_hardware_keys.html\r
+\r
+typedef BOOL (__stdcall *UnregisterFunc1Proc)(UINT, UINT);\r
+\r
+BOOL MainFrame::EnableApplicationButton(HWND hWnd)\r
+{\r
+#if defined(PLATFORM_PKTPC) || defined(PLATFORM_WM5)\r
+       HINSTANCE hCoreDll;\r
+       UnregisterFunc1Proc procUnregisterFunc;\r
+       hCoreDll = LoadLibrary(TEXT("coredll.dll"));\r
+       if (!hCoreDll) return FALSE;\r
+       procUnregisterFunc = (UnregisterFunc1Proc)GetProcAddress(hCoreDll, TEXT("UnregisterFunc1"));\r
+       if (!procUnregisterFunc) {\r
+               FreeLibrary(hCoreDll);\r
+               return FALSE;\r
+       }\r
+       if (g_Property.GetAppButton1()) {\r
+               procUnregisterFunc(MOD_WIN, APP_BUTTON1);\r
+               RegisterHotKey(hWnd, APP_BUTTON1, MOD_WIN, APP_BUTTON1);\r
+       }\r
+       if (g_Property.GetAppButton2()) {\r
+               procUnregisterFunc(MOD_WIN, APP_BUTTON2);\r
+               RegisterHotKey(hWnd, APP_BUTTON2, MOD_WIN, APP_BUTTON2);\r
+       }\r
+       if (g_Property.GetAppButton3()) {\r
+               procUnregisterFunc(MOD_WIN, APP_BUTTON3);\r
+               RegisterHotKey(hWnd, APP_BUTTON3, MOD_WIN, APP_BUTTON3);\r
+       }\r
+       if (g_Property.GetAppButton4()) {\r
+               procUnregisterFunc(MOD_WIN, APP_BUTTON4);\r
+               RegisterHotKey(hWnd, APP_BUTTON4, MOD_WIN, APP_BUTTON4);\r
+       }\r
+       if (g_Property.GetAppButton5()) {\r
+               procUnregisterFunc(MOD_WIN, APP_BUTTON5);\r
+               RegisterHotKey(hWnd, APP_BUTTON5, MOD_WIN, APP_BUTTON5);\r
+       }\r
+\r
+       FreeLibrary(hCoreDll);\r
+       return TRUE;\r
+#else\r
+       return TRUE;\r
+#endif\r
+}\r
+\r
+///////////////////////////////////////////////////\r
+// Save window size\r
+///////////////////////////////////////////////////\r
+\r
+void MainFrame::SaveWinSize()\r
+{\r
+       RECT r;\r
+       UINT flags, showCmd;\r
+\r
+#if defined(PLATFORM_HPC) || defined(PLATFORM_PKTPC) || defined(PLATFORM_PSPC) || defined(PLATFORM_BE500) || defined(PLATFORM_WM5)\r
+       GetWindowRect(hMainWnd,&r);\r
+       flags = showCmd = 0;\r
+#else\r
+       WINDOWPLACEMENT wpl;\r
+       wpl.length = sizeof(wpl);\r
+       GetWindowPlacement(hMainWnd, &wpl);\r
+       r = wpl.rcNormalPosition;\r
+       flags = wpl.flags;\r
+       showCmd = wpl.showCmd;\r
+#endif\r
+\r
+       WORD nPane;\r
+       if (g_Property.GetUseTwoPane()) {\r
+               nPane = nSplitterSize;\r
+       } else {\r
+               UINT u1, u2;\r
+               RECT r2;\r
+               if (!g_Property.GetWinSize(&u1, &u2, &r2, &nPane)) {\r
+#if defined(PLATFORM_PKTPC) || defined(PLATFORM_BE500) || defined(PLATFORM_PSPC) || defined(PLATFORM_WM5)\r
+                       nPane = (WORD)((r.bottom - r.top) / 3 * 2);\r
+#else\r
+                       nPane = (WORD)(r.right - r.left) / 3;   \r
+#endif\r
+               }\r
+       }\r
+       g_Property.SaveWinSize(flags, showCmd, &r, nPane);\r
+#if (defined(PLATFORM_PKTPC) || defined(PLATFORM_WM5)) && defined(FOR_VGA)\r
+       g_Property.SetWinSize2(nSplitterSizeWidth);\r
+#endif\r
+}\r
+\r
+///////////////////////////////////////////////////\r
+// Restore window size\r
+///////////////////////////////////////////////////\r
+\r
+void MainFrame::LoadWinSize(HWND hWnd)\r
+{\r
+       RECT rMainFrame;\r
+       RECT rClientRect;\r
+       GetClientRect(hWnd, &rClientRect);\r
+\r
+       UINT u1, u2;\r
+       if (!g_Property.GetWinSize(&u1, &u2, &rMainFrame, &nSplitterSize)) {\r
+#if defined(PLATFORM_PKTPC) || defined(PLATFORM_BE500) || defined(PLATFORM_PSPC) || defined(PLATFORM_WM5)\r
+               nSplitterSize = (WORD)((rClientRect.right - rClientRect.left) / 3 * 2);\r
+#else\r
+               nSplitterSize = (WORD)(rClientRect.right - rClientRect.left) / 3;\r
+#endif\r
+       }\r
+#if (defined(PLATFORM_PKTPC) || defined(PLATFORM_WM5)) && defined(FOR_VGA)\r
+       WORD w = (WORD)g_Property.GetWinSize2();\r
+       if (w == 0xFFFF || w < 0 || w > rClientRect.right - 20) {\r
+               nSplitterSizeWidth = (WORD)((rClientRect.bottom - rClientRect.top) / 3);\r
+       } else {\r
+               nSplitterSizeWidth = w;\r
+       }\r
+#endif\r
+}\r
+\r
+///////////////////////////////////////////////////\r
+// set wrpping text or not\r
+///////////////////////////////////////////////////\r
+\r
+void MainFrame::SetWrapText(BOOL bWrap)\r
+{\r
+       // Change edit view status\r
+       if (!pDetailsView->SetFolding(bWrap)) {\r
+               TomboMessageBox(NULL, MSG_FOLDING_FAILED, TOMBO_APP_NAME, MB_ICONERROR | MB_OK);\r
+               return;\r
+       }\r
+\r
+       pPlatform->CheckMenu(IDM_DETAILS_HSCROLL, bWrap);\r
+}\r
+\r
+///////////////////////////////////////////////////\r
+// Searching\r
+///////////////////////////////////////////////////\r
+\r
+void MainFrame::OnSearch()\r
+{\r
+       SearchDialog sd;\r
+       if (sd.Popup(g_hInstance, hMainWnd, SelectViewActive()) != IDOK) return;\r
+\r
+       SearchEngineA *pSE = new SearchEngineA();\r
+       if(!pSE->Init(g_Property.GetCodePage(), sd.IsSearchEncryptMemo(), sd.IsFileNameOnly(), &pmPasswordMgr)) {\r
+               delete pSE;\r
+               return;\r
+       }\r
+       const char *pReason;\r
+       if (!pSE->Prepare(sd.SearchString(), sd.IsCaseSensitive(), &pReason)) {\r
+               LPTSTR p = ConvSJIS2Unicode(pReason);\r
+               if (p) {\r
+                       MessageBox(p, TOMBO_APP_NAME, MB_OK | MB_ICONEXCLAMATION);\r
+                       delete [] p;\r
+               } else {\r
+                       MessageBox(MSG_NOT_ENOUGH_MEMORY, TOMBO_APP_NAME, MB_OK | MB_ICONEXCLAMATION);\r
+               }\r
+               delete pSE;\r
+               return;\r
+       }\r
+       mmMemoManager.SetSearchEngine(pSE);\r
+\r
+       // Enable FindNext/Prev button\r
+       pPlatform->EnableSearchNext();\r
+\r
+       bSearchStartFromTreeView = SelectViewActive();\r
+\r
+       // execute searching\r
+       if (SelectViewActive()) {\r
+               DoSearchTree(TRUE, !sd.IsSearchDirectionUp());\r
+               mmMemoManager.SetMSSearchFlg(FALSE);\r
+       } else {\r
+               pDetailsView->Search(TRUE, TRUE, TRUE, FALSE);\r
+               mmMemoManager.SetMDSearchFlg(FALSE);\r
+       }\r
+}\r
+\r
+void MainFrame::DoSearchTree(BOOL bFirst, BOOL bForward)\r
+{\r
+       SearchEngineA *pSE = mmMemoManager.GetSearchEngine();\r
+\r
+       const TomboURI *pCurSelected = msView.GetCurrentSelectedURI();\r
+       if (pCurSelected == NULL) return;\r
+\r
+       TomboURI sURI;\r
+       sURI = *pCurSelected;\r
+\r
+       // Create dialog and do search.\r
+       SearchTree st;\r
+       st.Init(pSE, &sURI, bForward, !bFirst, !pSE->IsSearchEncryptMemo());\r
+       st.Popup(g_hInstance, hMainWnd);\r
+\r
+       const TomboURI *pMatched = st.GetMatchedURI();\r
+\r
+       switch(st.GetResult()) {\r
+       case SR_FOUND:\r
+               msView.ShowItemByURI(st.GetMatchedURI());\r
+               pDetailsView->Search(TRUE, TRUE, TRUE, TRUE); \r
+               break;\r
+       case SR_NOTFOUND:\r
+               MessageBox(MSG_STRING_NOT_FOUND, TOMBO_APP_NAME, MB_OK | MB_ICONINFORMATION);\r
+               break;\r
+       case SR_CANCELED:\r
+               if (st.CurrentURI()) msView.ShowItemByURI(st.CurrentURI());\r
+               MessageBox(MSG_STRING_SEARCH_CANCELED, TOMBO_APP_NAME, MB_OK | MB_ICONINFORMATION);\r
+               break;\r
+       case SR_FAILED:\r
+               {\r
+                       if (st.CurrentURI()) msView.ShowItemByURI(st.CurrentURI());\r
+                       TCHAR buf[1024];\r
+                       wsprintf(buf, MSG_SEARCH_FAILED, GetLastError());\r
+                       MessageBox(buf, TOMBO_APP_NAME, MB_OK | MB_ICONERROR);\r
+               }\r
+               break;\r
+       }\r
+}\r
+\r
+///////////////////////////////////////////////////\r
+// Search next one\r
+///////////////////////////////////////////////////\r
+\r
+void MainFrame::OnSearchNext(BOOL bForward)\r
+{\r
+       if (mmMemoManager.GetSearchEngine() == NULL) {\r
+               OnSearch();\r
+               return;\r
+       }\r
+\r
+       if (SelectViewActive()) {\r
+               DoSearchTree(mmMemoManager.MSSearchFlg(), bForward);\r
+               mmMemoManager.SetMSSearchFlg(FALSE);\r
+       } else {\r
+               // if search starts at edit view, show message when match failed.\r
+               // if starts at tree view, search next item.\r
+               BOOL bMatched = pDetailsView->Search(mmMemoManager.MDSearchFlg(), bForward, !bSearchStartFromTreeView, FALSE);\r
+               mmMemoManager.SetMDSearchFlg(FALSE);\r
+               if (bSearchStartFromTreeView && !bMatched) {\r
+                       ActivateView(VT_SelectView);\r
+                       DoSearchTree(mmMemoManager.MSSearchFlg(), bForward);\r
+                       mmMemoManager.SetMSSearchFlg(FALSE);\r
+               }\r
+       }\r
+}\r
+\r
+///////////////////////////////////////////////////\r
+// show/hide status bar\r
+///////////////////////////////////////////////////\r
+\r
+#if defined(PLATFORM_WIN32) || defined(PLATFORM_HPC)\r
+void MainFrame::ToggleShowStatusBar()\r
+{\r
+       g_Property.ToggleShowStatusBar();\r
+\r
+       HMENU hMenu = pPlatform->GetMainMenu();\r
+\r
+       if (g_Property.GetHideStatusBar()) {\r
+               CheckMenuItem(hMenu, IDM_SHOWSTATUSBAR, MF_BYCOMMAND | MF_UNCHECKED);\r
+       } else {\r
+               CheckMenuItem(hMenu, IDM_SHOWSTATUSBAR, MF_BYCOMMAND | MF_CHECKED);\r
+       }\r
+\r
+       RECT r;\r
+       GetClientRect(hMainWnd, &r);\r
+       OnResize(0, MAKELPARAM(r.right - r.left, r.bottom - r.top));\r
+}\r
+#endif\r
+\r
+///////////////////////////////////////////////////\r
+// show/hide rebar\r
+///////////////////////////////////////////////////\r
+\r
+#if defined(PLATFORM_WIN32)\r
+void MainFrame::ToggleShowRebar()\r
+{\r
+       g_Property.ToggleShowRebar();\r
+       HMENU hMenu = pPlatform->GetMainMenu();\r
+\r
+       RECT r;\r
+       GetClientRect(hMainWnd, &r);\r
+\r
+       pPlatform->ShowRebar(!g_Property.GetHideRebar());\r
+       if (g_Property.GetHideRebar()) {\r
+               CheckMenuItem(hMenu, IDM_SHOWREBAR, MF_BYCOMMAND | MF_UNCHECKED);\r
+       } else {\r
+               InvalidateRect(hMainWnd, &r, TRUE);\r
+               CheckMenuItem(hMenu, IDM_SHOWREBAR, MF_BYCOMMAND | MF_CHECKED);\r
+       }\r
+\r
+       OnResize(0, MAKELPARAM(r.right - r.left, r.bottom - r.top));\r
+}\r
+#endif\r
+\r
+///////////////////////////////////////////////////\r
+// get command bar from command band by ID\r
+///////////////////////////////////////////////////\r
+\r
+int MainFrame::MessageBox(LPCTSTR pText, LPCTSTR pCaption, UINT uType)\r
+{\r
+       return TomboMessageBox(hMainWnd, pText, pCaption, uType);\r
+}\r
+\r
+///////////////////////////////////////////////////\r
+// Grep\r
+///////////////////////////////////////////////////\r
+\r
+void MainFrame::OnGrep()\r
+{\r
+       HTREEITEM hItem;\r
+       TString sPath;\r
+       hItem = msView.GetPathForNewItem(&sPath);\r
+       if (hItem == NULL) return;\r
+\r
+       GrepDialog gd;\r
+       if (!gd.Init(sPath.Get())) return;\r
+       if (gd.Popup(hInstance, hMainWnd) == IDOK) {\r
+               const VFInfo *pInfo;\r
+               pInfo = pVFManager->GetGrepVFInfo(gd.GetPath(), gd.GetMatchString(),\r
+                               gd.IsCaseSensitive(), gd.IsCheckCryptedMemo(),\r
+                               gd.IsCheckFileName(), gd.IsNegate());\r
+               if (pInfo == NULL) return;\r
+               if (!msView.InsertVirtualFolder(pInfo)) {\r
+                       MessageBox(MSG_INSERTVFOLDER_FAIL, TOMBO_APP_NAME, MB_OK | MB_ICONERROR);\r
+               }\r
+       }\r
+}\r
+\r
+///////////////////////////////////////////////////\r
+// stay topmost of the screen\r
+///////////////////////////////////////////////////\r
+\r
+void MainFrame::SetTopMost()\r
+{\r
+#if defined(PLATFORM_WIN32)\r
+       HMENU hMenu = GetMenu(hMainWnd);\r
+\r
+       if (g_Property.GetStayTopMost()) {\r
+               CheckMenuItem(hMenu, IDM_TOPMOST, MF_BYCOMMAND | MF_CHECKED);\r
+               SendMessage(pPlatform->hToolBar, TB_SETSTATE, IDM_TOPMOST, MAKELONG(TBSTATE_ENABLED |TBSTATE_PRESSED, 0)); \r
+\r
+               SetWindowPos(hMainWnd, HWND_TOPMOST, 0, 0, 0, 0, SWP_NOMOVE | SWP_NOSIZE);\r
+       } else {\r
+               CheckMenuItem(hMenu, IDM_TOPMOST, MF_BYCOMMAND | MF_UNCHECKED);\r
+               SendMessage(pPlatform->hToolBar, TB_SETSTATE, IDM_TOPMOST, MAKELONG(TBSTATE_ENABLED, 0)); \r
+\r
+               SetWindowPos(hMainWnd, HWND_NOTOPMOST, 0, 0, 0, 0, SWP_NOMOVE | SWP_NOSIZE);\r
+       }\r
+#endif\r
+}\r
+\r
+///////////////////////////////////////////////////\r
+// stay topmost of the screen\r
+///////////////////////////////////////////////////\r
+\r
+void MainFrame::OnVFolderDef()\r
+{\r
+       FilterCtlDlg dlg;\r
+       if (!dlg.Init(&msView, pVFManager)) return;\r
+       msView.CloseVFRoot();\r
+       dlg.Popup(g_hInstance, hMainWnd, msView.GetImageList());\r
+}\r
+\r
+///////////////////////////////////////////////////\r
+// Bookmark related members\r
+///////////////////////////////////////////////////\r
+\r
+void MainFrame::OnBookMarkAdd(HWND hWnd, WPARAM wParam, LPARAM lParam)\r
+{\r
+       // get note's path\r
+       const TomboURI *pURI = msView.GetCurrentSelectedURI();\r
+       if (pURI == NULL) return;\r
+\r
+       // add to bookmark manager\r
+       const BookMarkItem *pItem = pBookMark->Assign(pURI->GetFullURI());\r
+       if (pItem == NULL) return;\r
+\r
+       AppendBookMark(pPlatform->GetMSBookMarkMenu(), pItem);\r
+}\r
+\r
+void MainFrame::OnBookMarkConfig(HWND hWnd, WPARAM wParam, LPARAM lParam)\r
+{\r
+       BookMarkDlg dlg;\r
+       if (!dlg.Init(pBookMark)) return;\r
+\r
+       // release current bookmark\r
+       const BookMarkItem *p;\r
+       HMENU hBookMark = pPlatform->GetMSBookMarkMenu();\r
+       DWORD n = pBookMark->NumItems();\r
+       for (DWORD i = 0; i < n; i++) {\r
+               p = pBookMark->GetUnit(i);\r
+               DeleteMenu(hBookMark, p->nID, MF_BYCOMMAND);\r
+       }\r
+\r
+       // popup dialog and get info\r
+       dlg.Popup(g_hInstance, hMainWnd);\r
+\r
+       // set bookmarks\r
+       LPTSTR pBM = pBookMark->ExportToMultiSZ();\r
+       LoadBookMark(pBM);\r
+       delete [] pBM;\r
+}\r
+\r
+void MainFrame::OnBookMark(HWND hWnd, WPARAM wParam, LPARAM lParam)\r
+{\r
+       const BookMarkItem *pItem = pBookMark->Find(LOWORD(wParam));\r
+       if (pItem) {\r
+               TomboURI sURI;\r
+               if (!sURI.Init(pItem->pPath)) return;\r
+               msView.ShowItemByURI(&sURI);\r
+       }\r
+}\r
+\r
+void MainFrame::AppendBookMark(HMENU hMenu, const BookMarkItem *pItem)\r
+{\r
+#if defined(PLATFORM_WIN32)\r
+       // add to menu\r
+       MENUITEMINFO mii;\r
+\r
+       memset(&mii, 0, sizeof(mii));\r
+\r
+       mii.cbSize = sizeof(mii);\r
+       mii.fMask = MIIM_ID | MIIM_DATA | MIIM_STATE | MIIM_TYPE;\r
+       mii.fType = MFT_STRING;\r
+       mii.fState = MFS_ENABLED;\r
+\r
+       mii.wID = pItem->nID;\r
+       mii.dwTypeData = pItem->pName;\r
+       mii.cch = _tcslen(pItem->pName);\r
+       if (!InsertMenuItem(hMenu, pItem->nID - pBookMark->GetBaseID() + NUM_BOOKMARK_SUBMENU_DEFAULT, TRUE, &mii)) return;\r
+#endif\r
+#if defined(PLATFORM_HPC) || defined(PLATFORM_PKTPC) || defined(PLATFORM_PSPC) || defined(PLATFORM_BE500)  || defined(PLATFORM_WM5)\r
+       if (!AppendMenu(hMenu, MF_STRING, pItem->nID, pItem->pName)) return;\r
+#endif\r
+}\r
+\r
+void MainFrame::LoadBookMark(LPCTSTR pBookMarks)\r
+{\r
+       const BookMarkItem *p;\r
+\r
+       HMENU hBookMark = pPlatform->GetMSBookMarkMenu();\r
+\r
+       DWORD i;\r
+       // release current bookmark\r
+       DWORD n = pBookMark->NumItems();\r
+       for (i = 0; i < n; i++) {\r
+               p = pBookMark->GetUnit(i);\r
+               DeleteMenu(hBookMark, p->nID, MF_BYCOMMAND);\r
+       }\r
+\r
+       // load bookmark list\r
+       pBookMark->ImportFromMultiSZ(pBookMarks);\r
+\r
+       // add to menu\r
+       n = pBookMark->NumItems();\r
+       for (i = 0; i < n; i++) {\r
+               p = pBookMark->GetUnit(i);\r
+               AppendBookMark(hBookMark, p);\r
+       }\r
+}\r
diff --git a/Src/MainFrame.h b/Src/MainFrame.h
new file mode 100644 (file)
index 0000000..472711a
--- /dev/null
@@ -0,0 +1,212 @@
+#ifndef MAINFRAME_H\r
+#define MAINFRAME_H\r
+\r
+#include "Message.h"\r
+#include "MemoSelectView.h"\r
+#include "MemoDetailsView.h"\r
+#include "PasswordManager.h"\r
+#include "MemoManager.h"\r
+\r
+class TreeViewItem;\r
+class VFManager;\r
+class BookMark;\r
+struct BookMarkItem;\r
+\r
+class StatusBar;\r
+#include "PlatformLayer.h"\r
+\r
+///////////////////////////////////////\r
+// Main frame window\r
+///////////////////////////////////////\r
+\r
+class MainFrame {\r
+public:\r
+       enum LayoutType {\r
+               LT_Unknown = 0,\r
+               LT_TwoPane,\r
+               LT_OnePaneSelectView,\r
+               LT_OnePaneDetailsView\r
+       };\r
+\r
+       enum ViewType {\r
+               VT_Unknown = 0,\r
+               VT_SelectView,\r
+               VT_DetailsView\r
+       };\r
+\r
+private:\r
+       static LPCTSTR pClassName;\r
+\r
+       HWND hMainWnd;\r
+       HINSTANCE hInstance;\r
+\r
+       PLATFORM_TYPE *pPlatform;\r
+\r
+       MemoSelectView msView;\r
+       MemoDetailsView *pDetailsView;\r
+\r
+       MemoManager mmMemoManager;\r
+\r
+       VFManager *pVFManager;\r
+\r
+       PasswordManager pmPasswordMgr;\r
+\r
+       ViewType vtFocusedView;\r
+       LayoutType lCurrentLayout;\r
+\r
+       RECT rWindowRect;       // window size with menu/title\r
+\r
+       // pane size is changing\r
+       BOOL bResizePane;\r
+\r
+       WORD nSplitterSize;\r
+#if (defined(PLATFORM_PKTPC) || defined(PLATFORM_WM5)) && defined(FOR_VGA)\r
+       WORD nSplitterSizeWidth;\r
+       BOOL bLandscapeMode;\r
+#endif\r
+\r
+       BOOL bSearchStartFromTreeView;\r
+\r
+       // bookmarks\r
+       BookMark *pBookMark;\r
+\r
+protected:\r
+       // hook application button for handling from TOMBO\r
+       BOOL EnableApplicationButton(HWND hWnd);\r
+\r
+       // move pane splitter\r
+       void MovePane(WORD nSplit);\r
+\r
+       void ChangeLayout(LayoutType layout);\r
+\r
+public:\r
+       MainFrame(); // ctor\r
+       ~MainFrame(); // dtor\r
+\r
+       // register window class and create functions\r
+       static BOOL RegisterClass(HINSTANCE hInst);\r
+\r
+       BOOL Create(LPCTSTR pWndName, HINSTANCE hInst, int nCmdShow);\r
+\r
+       int MainLoop();\r
+\r
+       // Event handler\r
+       void OnCreate(HWND hWnd, WPARAM wParam, LPARAM lParam);\r
+       void OnPaint(HWND hWnd, WPARAM wParam, LPARAM lParam);\r
+       BOOL OnExit();\r
+       BOOL OnNotify(HWND hWnd, WPARAM wParam, LPARAM lParam);\r
+       void OnSettingChange(WPARAM wParam);\r
+       void OnSIPResize(BOOL bImeOn, RECT *pSipRect);\r
+       void OnCommand(HWND hWnd, WPARAM wParam, LPARAM lParam);\r
+       void OnProperty();\r
+       void OnForgetPass();\r
+       void OnTimer(WPARAM nTimerID);\r
+       void OnMutualExecute();\r
+       BOOL OnHotKey(WPARAM wParam, LPARAM lParam);\r
+       void OnResize(WPARAM wParam, LPARAM lParam);\r
+       void OnTooltip(WPARAM wParam, LPARAM lParam);\r
+       void OnVFolderDef();\r
+\r
+       ///////////////////\r
+       // Search/grep\r
+\r
+       void OnSearch();\r
+       void OnSearchNext(BOOL bForward);\r
+       void DoSearchTree(BOOL bFirst, BOOL bForward);\r
+\r
+       void OnGrep();\r
+\r
+       ///////////////////\r
+       // for move panes\r
+\r
+       void OnLButtonDown(WPARAM wParam, LPARAM lParam);\r
+       void OnMouseMove(WPARAM wParam, LPARAM lParam);\r
+       void OnLButtonUp(WPARAM wParam, LPARAM lParam);\r
+\r
+       ////////////////////\r
+       // menu handler\r
+\r
+       void About();   // About dialog\r
+       void NewMemo(); // create new notes\r
+       void NewFolder(TreeViewItem *pItem); // create new folder\r
+       void SetWrapText(BOOL bWrap); // Toggle wrapping on/off\r
+       void TogglePane(); // switch 1pange/2panes\r
+\r
+       void SetTopMost(); // keep top of the window\r
+\r
+       //////////////////////////\r
+       // open notes\r
+\r
+       void LoadMemo(const TomboURI *pURI, BOOL bAskPass);\r
+\r
+       //////////////////////////\r
+       // view control\r
+\r
+       void OpenDetailsView(const TomboURI *pURI, DWORD nSwitchView);\r
+       void LeaveDetailsView(BOOL bAskSave);\r
+       void PostSwitchView();\r
+//     void PopupEditViewDlg();\r
+\r
+       void ActivateView(ViewType vt); // change windows layout and focus\r
+       void SetFocus(ViewType vt = VT_Unknown);\r
+                                                                       // change focus only.\r
+       void NotifyDetailsViewFocused();\r
+       void SetLayout();\r
+\r
+       BOOL SelectViewActive() { return vtFocusedView == VT_SelectView; }\r
+\r
+       ////////////////////////////////\r
+       // Control menus & toolbars\r
+\r
+       void EnableEncrypt(BOOL bEnable);\r
+       void EnableDecrypt(BOOL bEnable);\r
+       void EnableDelete(BOOL bEnable);\r
+       void EnableSaveButton(BOOL bEnable);\r
+       void EnableRename(BOOL bEnable);\r
+       void EnableNew(BOOL bEnable);\r
+       void EnableCut(BOOL bEnable);\r
+       void EnableCopy(BOOL bEnable);\r
+       void EnablePaste(BOOL bEnable);\r
+       void EnableNewFolder(BOOL bEnable);\r
+       void EnableGrep(BOOL bEnable);\r
+\r
+       // Save/restore window size\r
+       void LoadWinSize(HWND hWnd);\r
+       void SaveWinSize();\r
+       \r
+       ////////////////////////////////\r
+       // Control status indicator\r
+\r
+       void SetReadOnlyStatus(BOOL bReadOnly);\r
+       void SetNewMemoStatus(BOOL bNew);\r
+       void SetModifyStatus(BOOL bModify);\r
+\r
+#if defined(PLATFORM_WIN32) || defined(PLATFORM_HPC)\r
+       void ToggleShowStatusBar();\r
+#endif\r
+#if defined(PLATFORM_WIN32)\r
+       void ToggleShowRebar();\r
+#endif\r
+\r
+       // change window title\r
+       void SetWindowTitle(const TomboURI *pURI);\r
+\r
+       ////////////////////////////////\r
+       // bookmark related members\r
+       void OnBookMarkAdd(HWND hWnd, WPARAM wParam, LPARAM lParam);\r
+       void OnBookMarkConfig(HWND hWnd, WPARAM wParam, LPARAM lParam);\r
+\r
+       void OnBookMark(HWND hWnd, WPARAM wParam, LPARAM lParam);\r
+\r
+       void AppendBookMark(HMENU hMenu, const BookMarkItem *pItem);\r
+       void LoadBookMark(LPCTSTR pBookMarks);\r
+\r
+       ////////////////////////////////\r
+       // misc funcs\r
+\r
+       MemoManager *GetManager() { return &mmMemoManager; }\r
+       int MessageBox(LPCTSTR pText, LPCTSTR pCaption, UINT uType); \r
+};\r
+\r
+\r
+#endif
\ No newline at end of file
diff --git a/Src/MemoDetailsView.cpp b/Src/MemoDetailsView.cpp
new file mode 100644 (file)
index 0000000..cc0a506
--- /dev/null
@@ -0,0 +1,899 @@
+#include <windows.h>\r
+#include <commctrl.h>\r
+#include <tchar.h>\r
+#if defined(PLATFORM_PKTPC) || defined(PLATFORM_WM5)\r
+#include <aygshell.h>\r
+#endif\r
+#include "Tombo.h"\r
+#include "AutoPtr.h"\r
+#include "VarBuffer.h"\r
+#include "MainFrame.h"\r
+#include "MemoDetailsView.h"\r
+#include "resource.h"\r
+#include "TString.h"\r
+#include "UniConv.h"\r
+#include "Property.h"\r
+#include "SearchEngine.h"\r
+#include "Message.h"\r
+#include "TomboURI.h"\r
+#include "Repository.h"\r
+#include "MemoManager.h"\r
+\r
+#define KEY_COLON       0xBB\r
+#define KEY_SEMICOLON   0xBA\r
+\r
+static BOOL GetDateText(TString *pInsStr, LPCTSTR pFormat, TString *pPath);\r
+\r
+void SetWndProc(SUPER_WND_PROC wp);\r
+LRESULT CALLBACK NewDetailsViewProc( HWND hwnd, UINT msg, WPARAM wParam, LPARAM lParam );\r
+\r
+LPCTSTR pMonth[12] = {\r
+       TEXT("Jan"), TEXT("Feb"), TEXT("Mar"), TEXT("Apr"),\r
+       TEXT("May"), TEXT("Jun"), TEXT("Jul"), TEXT("Aug"),\r
+       TEXT("Sep"), TEXT("Oct"), TEXT("Nov"), TEXT("Dec")\r
+};\r
+\r
+LPCTSTR pWeekJ[7] = {\r
+       TEXT("\93ú"), TEXT("\8c\8e"), TEXT("\89Î"), TEXT("\90\85"), TEXT("\96Ø"), TEXT("\8bà"), TEXT("\93y")\r
+};\r
+\r
+LPCTSTR pWeekE[7] = {\r
+       TEXT("Sun"), TEXT("Mon"), TEXT("Tue"), TEXT("Wed"), TEXT("Thr"), TEXT("Fri"), TEXT("Sat")\r
+};\r
+\r
+///////////////////////////////////////////\r
+// \r
+///////////////////////////////////////////\r
+\r
+MemoDetailsView::MemoDetailsView(MemoManager *pMgr) : pCurrentURI(NULL), pManager(pMgr)\r
+{\r
+}\r
+\r
+MemoDetailsView::~MemoDetailsView()\r
+{\r
+       delete pCurrentURI;\r
+}\r
+\r
+const TomboURI* MemoDetailsView::GetCurrentURI()\r
+{\r
+       return pCurrentURI;\r
+}\r
+\r
+void MemoDetailsView::SetCurrentNote(const TomboURI *pURI)\r
+{\r
+       if (pCurrentURI == pURI) return;\r
+       delete pCurrentURI;\r
+       pCurrentURI = NULL;\r
+\r
+       if (pURI) {\r
+               pCurrentURI = new TomboURI(*pURI);\r
+       }\r
+}\r
+\r
+///////////////////////////////////////////\r
+// Discard current note\r
+///////////////////////////////////////////\r
+//\r
+// note is discarded even if it is modifying.\r
+\r
+BOOL MemoDetailsView::DiscardMemo()\r
+{\r
+       SetMemo(TEXT(""), 0, FALSE);\r
+       SetCurrentNote(NULL);\r
+       SetReadOnly(FALSE);\r
+       pManager->GetMainFrame()->SetNewMemoStatus(TRUE);\r
+       pManager->GetMainFrame()->SetWindowTitle(NULL);\r
+       return TRUE;\r
+}\r
+\r
+\r
+BOOL MemoDetailsView::StoreCursorPos()\r
+{\r
+       if (g_Property.GetKeepCaret()) {\r
+\r
+               DWORD nPos = GetCursorPos();\r
+               DWORD nInitPos = GetInitialPos();\r
+\r
+               if (pCurrentURI && nPos != nInitPos) {\r
+                       NoteAttribute attr;\r
+                       attr.nCursorPos = nPos;\r
+                       if (!g_Repository.SetAttribute(pCurrentURI, &attr)) return FALSE;\r
+               }\r
+       }\r
+       return TRUE;\r
+}\r
+\r
+BOOL MemoDetailsView::Save(const TomboURI *pCurrentURI, TomboURI *pNewURI, TString *pNewHeadLine, LPCTSTR pText)\r
+{\r
+       if (!g_Repository.Update(pCurrentURI, pText, pNewURI, pNewHeadLine)) return FALSE;\r
+       ResetModify();\r
+       pManager->GetMainFrame()->SetModifyStatus(FALSE);\r
+       SetCurrentNote(pNewURI);\r
+       return TRUE;\r
+}\r
+\r
+BOOL MemoDetailsView::LoadNote(const TomboURI *pURI)\r
+{\r
+       // load note data and attribute\r
+       LPTSTR p = g_Repository.GetNoteData(pURI);\r
+       if (p == NULL) {\r
+               SetMemo(MSG_CANT_OPEN_MEMO, 0, TRUE);\r
+               return TRUE;\r
+       }\r
+       SecureBufferAutoPointerT sp(p);\r
+\r
+       NoteAttribute attr;\r
+       if (!g_Repository.GetAttribute(pURI, &attr)) return FALSE;\r
+\r
+       // set memo to view\r
+       SetMemo(p, attr.nCursorPos, attr.bReadOnly);\r
+       SetCurrentNote(pURI);\r
+\r
+       return TRUE;\r
+}\r
+\r
+////////////////////////////////////////////////////////\r
+// Is this note are displayed in detailsview?\r
+////////////////////////////////////////////////////////\r
+\r
+BOOL MemoDetailsView::IsNoteDisplayed(const TomboURI *pURI)\r
+{\r
+       if (GetCurrentURI() == NULL) return FALSE;\r
+       return _tcsicmp(pURI->GetFullURI(), GetCurrentURI()->GetFullURI()) == 0;\r
+}\r
+\r
+////////////////////////////////////////////////////////\r
+// insert date\r
+////////////////////////////////////////////////////////\r
+\r
+void MemoDetailsView::InsertDate1()\r
+{\r
+       TString sDate;\r
+\r
+       TString sPathStr;\r
+       pManager->GetCurrentSelectedPath(&sPathStr);\r
+\r
+       if (!GetDateText(&sDate, g_Property.GetDateFormat1(), &sPathStr)) {\r
+               TomboMessageBox(NULL, MSG_GET_DATE_FAILED, TEXT("ERROR"), MB_ICONERROR | MB_OK);\r
+               return;\r
+       }\r
+       ReplaceText(sDate.Get());\r
+}\r
+\r
+void MemoDetailsView::InsertDate2()\r
+{\r
+       TString sDate;\r
+\r
+       TString sPathStr;\r
+       pManager->GetCurrentSelectedPath(&sPathStr);\r
+\r
+       if (!GetDateText(&sDate, g_Property.GetDateFormat2(), &sPathStr)) {\r
+               TomboMessageBox(NULL, MSG_GET_DATE_FAILED, TEXT("ERROR"), MB_ICONERROR | MB_OK);\r
+               return;\r
+       }\r
+       ReplaceText(sDate.Get());\r
+}\r
+\r
+/////////////////////////////////////////\r
+// \8c\9f\8dõ\r
+/////////////////////////////////////////\r
+//\r
+// RESULT: return TRUE if matched.\r
+//\r
+// bFirstSearch : \8c\9f\8dõ\8aJ\8en\88Ê\92u: TRUE = \83\81\83\82\90æ\93ª FALSE = \8c»\8dÝ\82Ì\83J\81[\83\\83\8b\88Ê\92u + 1\r
+// bForward : \8c\9f\8dõ\82Ì\8cü\82«: TRUE = \8f\87\95û\8cü FALSE = \8bt\95û\8cü\r
+// bNFMsg: \8c©\82Â\82©\82ç\82È\82©\82Á\82½\8fê\8d\87\82É\83\81\83b\83Z\81[\83W\82ð\8fo\82·\82©\r
+// pFound: if string is found, set TRUE otherwise set FALSE.\r
+\r
+\r
+BOOL MemoDetailsView::Search(BOOL bFirstSearch, BOOL bForward, BOOL bNFMsg, BOOL bSearchFromTop)\r
+{\r
+       SearchEngineA *pSE;\r
+       pSE = pManager->GetSearchEngine();\r
+       if (pSE == NULL) return FALSE;\r
+\r
+       LPTSTR pT = GetMemo();\r
+       SecureBufferAutoPointerT sb(pT);\r
+\r
+       DWORD nSearchStart;\r
+       BOOL bShift = FALSE;\r
+\r
+       if (bFirstSearch) {\r
+               nSearchStart = 0;\r
+       } else {\r
+               nSearchStart = GetCursorPos();\r
+               bShift = TRUE;\r
+       }\r
+\r
+       BOOL bMatch;\r
+       bMatch = pSE->SearchTextT(pT, nSearchStart, bForward, bShift);\r
+\r
+       if (bMatch) {\r
+               DWORD nStart = pSE->MatchStart();\r
+               DWORD nEnd = pSE->MatchEnd();\r
+\r
+               SetSelectRegion(nStart, nEnd);\r
+       } else {\r
+               if (bNFMsg) MessageBox(NULL, MSG_STRING_NOT_FOUND, TOMBO_APP_NAME, MB_OK | MB_ICONINFORMATION);\r
+       }\r
+\r
+       return bMatch;\r
+}\r
+\r
+///////////////////////////////////////////\r
+// initializer\r
+///////////////////////////////////////////\r
+\r
+SimpleEditor::SimpleEditor(MemoManager *pMgr) : MemoDetailsView(pMgr), hViewWnd(NULL)\r
+{\r
+}\r
+\r
+\r
+BOOL SimpleEditor::Init(DWORD id, DWORD id_nf)\r
+{\r
+       nID = id;\r
+       nID_nf = id_nf;\r
+       return TRUE;\r
+}\r
+\r
+extern SUPER_WND_PROC gDefaultProc;\r
+extern DWORD gDelta;\r
+LRESULT CALLBACK DetailsViewSuperProc(HWND hwnd, UINT msg, WPARAM wParam, LPARAM lParam );\r
+\r
+BOOL SimpleEditor::RegisterClass(HINSTANCE hInst)\r
+{\r
+       // superclassing\r
+       WNDCLASS wc;\r
+       GetClassInfo(hInst, TEXT("EDIT"), &wc);\r
+\r
+       wc.hInstance = hInst;\r
+       wc.lpszClassName = TEXT("TomboSimpleEditor");\r
+       gDelta = wc.cbWndExtra;\r
+       wc.cbWndExtra = ((wc.cbWndExtra + sizeof(MemoDetailsView*)) / 4 + 1)* 4;\r
+\r
+       gDefaultProc = (SUPER_WND_PROC)wc.lpfnWndProc;\r
+\r
+       wc.lpfnWndProc = DetailsViewSuperProc;\r
+\r
+       return  ::RegisterClass(&wc) != 0;\r
+}\r
+///////////////////////////////////////////\r
+// Create window\r
+///////////////////////////////////////////\r
+extern HINSTANCE g_hInstance;\r
+\r
+BOOL SimpleEditor::Create(LPCTSTR pName, RECT &r, HWND hParent, HINSTANCE hInst, HFONT hFont)\r
+{\r
+       DWORD nWndStyle;\r
+\r
+       nWndStyle = WS_CHILD | WS_VSCROLL | ES_MULTILINE | ES_WANTRETURN;\r
+\r
+#if defined(PLATFORM_PSPC) || defined(PLATFORM_BE500)\r
+//     nLeftOffset = 3;\r
+       // for draw border, left offset has disabled.\r
+       nLeftOffset = 0;\r
+#else\r
+       nLeftOffset = 0;\r
+#endif\r
+       \r
+#if defined(PLATFORM_WIN32) || defined(PLATFORM_HPC)\r
+       hViewWnd_fd = CreateWindowEx(WS_EX_CLIENTEDGE, TEXT("TomboSimpleEditor"), pName, nWndStyle, \r
+                                                       r.left + nLeftOffset, r.top, r.right - nLeftOffset, r.bottom, \r
+                                                       hParent, (HMENU)nID, hInst, this);\r
+       hViewWnd_nf = CreateWindowEx(WS_EX_CLIENTEDGE, TEXT("TomboSimpleEditor"), pName, nWndStyle | ES_AUTOHSCROLL | WS_HSCROLL, \r
+                                                       r.left + nLeftOffset, r.top, r.right - nLeftOffset, r.bottom, \r
+                                                       hParent, (HMENU)nID_nf, hInst, this);\r
+#else\r
+       hViewWnd_fd = CreateWindow(TEXT("TomboSimpleEditor"), pName, nWndStyle | WS_BORDER, \r
+                                                       r.left + nLeftOffset, r.top, r.right - nLeftOffset, r.bottom, \r
+                                                       hParent, (HMENU)nID, hInst, this);\r
+       hViewWnd_nf = CreateWindow(TEXT("TomboSimpleEditor"), pName, nWndStyle | ES_AUTOHSCROLL | WS_HSCROLL | WS_BORDER, \r
+                                                       r.left + nLeftOffset, r.top, r.right - nLeftOffset, r.bottom, \r
+                                                       hParent, (HMENU)nID_nf, hInst, this);\r
+#endif\r
+       if (hViewWnd_fd == NULL || hViewWnd_nf == NULL) return FALSE;\r
+       hViewWnd = hViewWnd_fd;\r
+\r
+       // sub classing of edit control\r
+       SUPER_WND_PROC wp = (SUPER_WND_PROC)GetWindowLong(hViewWnd, GWL_WNDPROC);\r
+       SetWndProc(wp);\r
+       SetWindowLong(hViewWnd_nf, GWL_WNDPROC, (LONG)NewDetailsViewProc);\r
+       SetWindowLong(hViewWnd_fd, GWL_WNDPROC, (LONG)NewDetailsViewProc);\r
+\r
+       if (hFont != NULL) {\r
+               SetFont(hFont);\r
+       }\r
+       SetTabstop();\r
+       return TRUE;\r
+}\r
+\r
+///////////////////////////////////////////\r
+// hide/show window\r
+///////////////////////////////////////////\r
+\r
+BOOL SimpleEditor::Show(int nCmdShow)\r
+{\r
+       ShowWindow(hViewWnd, nCmdShow);\r
+       if (nCmdShow == SW_SHOW) {\r
+               bShowStatus = TRUE;\r
+       } else if (nCmdShow == SW_HIDE) {\r
+               bShowStatus = FALSE;\r
+       }\r
+\r
+#if defined(PLATFORM_PKTPC) || defined(PLATFORM_WM5)\r
+       // \83^\83b\83v&\83z\81[\83\8b\83h\83\81\83j\83\85\81[\82ª\8fo\82½\82Ü\82Ü\89æ\96Ê\82ª\90Ø\82è\91Ö\82í\82Á\82½\8dÛ\82É\83\81\83j\83\85\81[\82ð\95Â\82\82³\82¹\82é\r
+       if (nCmdShow == SW_HIDE) {\r
+               ReleaseCapture();\r
+       }\r
+#endif\r
+       return UpdateWindow(hViewWnd);\r
+}\r
+\r
+///////////////////////////////////////////\r
+// \83E\83B\83\93\83h\83E\83T\83C\83Y\82Ì\88Ú\93®\r
+///////////////////////////////////////////\r
+\r
+void SimpleEditor::MoveWindow(DWORD x, DWORD y, DWORD nWidth, DWORD nHeight)\r
+{\r
+       ::MoveWindow(hViewWnd_nf, x + nLeftOffset, y, nWidth - nLeftOffset, nHeight, TRUE);\r
+       ::MoveWindow(hViewWnd_fd, x + nLeftOffset, y, nWidth - nLeftOffset, nHeight, TRUE);\r
+}\r
+\r
+///////////////////////////////////////////\r
+// OnCommand\82Ì\8f\88\97\9d\r
+///////////////////////////////////////////\r
+\r
+BOOL SimpleEditor::OnCommand(HWND hWnd, WPARAM wParam, LPARAM lParam)\r
+{\r
+       switch(LOWORD(wParam)) {\r
+       case IDM_CUT:\r
+               SendMessage(hViewWnd, WM_CUT, 0, 0);\r
+               return TRUE;\r
+       case IDM_COPY:\r
+               SendMessage(hViewWnd, WM_COPY, 0, 0);\r
+               return TRUE;\r
+       case IDM_PASTE:\r
+               SendMessage(hViewWnd, WM_PASTE, 0, 0);\r
+               return TRUE;\r
+       case IDM_UNDO:\r
+               SendMessage(hViewWnd, WM_UNDO, 0, 0);\r
+               return TRUE;\r
+       case IDM_ACTIONBUTTON:\r
+               PostMessage(hWnd, WM_COMMAND, MAKEWPARAM(IDM_RETURNLIST, 0), 0);\r
+               return TRUE;\r
+       case IDM_INSDATE1:\r
+               {\r
+                       InsertDate1();\r
+                       return TRUE;\r
+               }\r
+       case IDM_INSDATE2:\r
+               {\r
+                       InsertDate2();\r
+                       return TRUE;\r
+               }\r
+       case IDM_TOGGLEREADONLY:\r
+               {\r
+                       SetReadOnly(!IsReadOnly());\r
+                       return FALSE;\r
+               }\r
+       }\r
+\r
+       return FALSE;\r
+}\r
+\r
+///////////////////////////////////////////\r
+// \83z\83b\83g\83L\81[\82Ì\8f\88\97\9d\r
+///////////////////////////////////////////\r
+\r
+BOOL SimpleEditor::OnHotKey(HWND hWnd, WPARAM wParam)\r
+{\r
+       switch(wParam) {\r
+       case APP_BUTTON1:\r
+               /* fall through */\r
+       case APP_BUTTON2:\r
+               /* fall through */\r
+       case APP_BUTTON3:\r
+               /* fall through */\r
+       case APP_BUTTON4:\r
+               /* fall through */\r
+       case APP_BUTTON5:\r
+               PostMessage(hWnd, WM_COMMAND, MAKEWPARAM(IDM_RETURNLIST, 0), 0);\r
+               return TRUE;\r
+       default:\r
+               return FALSE;\r
+       }\r
+}\r
+\r
+///////////////////////////////////////////\r
+// Key handler\r
+///////////////////////////////////////////\r
+UINT SimpleEditor::OnKeyDown(HWND hWnd, WPARAM wParam, LPARAM lParam)\r
+{\r
+       BOOL bShiftDown = (GetKeyState(VK_SHIFT) & 0x8000) != 0;\r
+       BOOL bCtrlKeyDown = (GetKeyState(VK_CONTROL) & 0x8000) != 0;\r
+\r
+#if defined(PLATFORM_SIG3)\r
+       if (bShiftDown && wParam == VK_UP) {\r
+               INT nPrevStart, nPrevEnd;\r
+               INT nAftStart, nAftEnd;\r
+               SendMessage(hWnd, EM_GETSEL, (WPARAM)&nPrevStart, (LPARAM)&nPrevEnd);\r
+               LRESULT lResult = CallWindowProc(gSuperProc, hWnd, msg, wParam, lParam);\r
+               SendMessage(hWnd, EM_GETSEL, (WPARAM)&nAftStart, (LPARAM)&nAftEnd);\r
+\r
+               if (nAftStart < nSelBase) {\r
+                       SendMessage(hwnd, EM_SETSEL, (WPARAM)nSelBase, (LPARAM)nAftStart);\r
+                       return lResult;\r
+               } else {\r
+                       return lResult;\r
+               }\r
+       }\r
+       if (bShiftDown && wParam == VK_DOWN) {\r
+               INT nPrevStart, nPrevEnd;\r
+               INT nAftStart, nAftEnd;\r
+               SendMessage(hwnd, EM_GETSEL, (WPARAM)&nPrevStart, (LPARAM)&nPrevEnd);\r
+               LRESULT lResult = CallWindowProc(gSuperProc, hwnd, msg, wParam, lParam);\r
+               SendMessage(hwnd, EM_GETSEL, (WPARAM)&nAftStart, (LPARAM)&nAftEnd);\r
+\r
+               if (nAftStart < nSelBase) {\r
+                       SendMessage(hwnd, EM_SETSEL, (WPARAM)nSelBase, (LPARAM)nAftEnd);\r
+                       return lResult;\r
+               } else {\r
+                       return lResult;\r
+               }\r
+       }\r
+\r
+       if (!(bShiftDown && wParam == VK_LEFT) && \r
+               !(bShiftDown && wParam == VK_RIGHT)) {\r
+               POINT pt;\r
+               GetCaretPos(&pt);\r
+               LPARAM l = MAKELPARAM(pt.x, pt.y);\r
+               nSelBase = SendMessage(hwnd, EM_CHARFROMPOS, 0, l) & 0xFFFF;\r
+       }\r
+#endif\r
+\r
+       if (bCtrlKeyDown && wParam == TEXT('A')) {\r
+               SelectAll();\r
+               return 0;\r
+       } else if (bCtrlKeyDown && wParam == TEXT('B')) {\r
+               SetReadOnly(!IsReadOnly());\r
+               return 0;\r
+       }\r
+\r
+       if (IsReadOnly()) {\r
+               if (wParam == VK_DELETE) return 0;\r
+               if (wParam == VK_BACK || wParam == VK_CONVERT || wParam == VK_LEFT) {\r
+                       SendMessage(hWnd, WM_KEYDOWN, VK_PRIOR, lParam);\r
+                       return 0;\r
+               }\r
+               if (wParam == VK_SPACE || wParam == VK_RIGHT) {\r
+                       SendMessage(hWnd, WM_KEYDOWN, VK_NEXT, lParam); \r
+                       return 0;\r
+               }\r
+       } else {\r
+               if (wParam == KEY_COLON && bCtrlKeyDown) {      // :\r
+                       InsertDate1();\r
+               }\r
+               if (wParam == KEY_SEMICOLON && bCtrlKeyDown) {  // ;\r
+                       InsertDate2();\r
+               }\r
+       }\r
+       return 1;\r
+}\r
+\r
+///////////////////////////////////////////\r
+// \83t\83H\81[\83J\83X\82Ì\8eæ\93¾\r
+///////////////////////////////////////////\r
+\r
+void SimpleEditor::OnGetFocus()\r
+{\r
+       pManager->GetMainFrame()->NotifyDetailsViewFocused();\r
+}\r
+\r
+///////////////////////////////////////////\r
+// \83\81\83\82\82Ì\90Ý\92è\r
+///////////////////////////////////////////\r
+\r
+BOOL SimpleEditor::SetMemo(LPCTSTR pMemo, DWORD nPos, BOOL bReadOnly)\r
+{\r
+       SetReadOnly(bReadOnly);\r
+\r
+       nInitialPos = nPos;\r
+\r
+       SetWindowText(hViewWnd, pMemo);\r
+       if (g_Property.GetKeepCaret()) {\r
+               SendMessage(hViewWnd, EM_SETSEL, nPos, nPos);\r
+               PostMessage(hViewWnd, EM_SCROLLCARET, 0, 0);\r
+       }\r
+       SetModifyStatus();\r
+       return TRUE;\r
+}      \r
+\r
+///////////////////////////////////////////\r
+// \83\81\83\82\82Ì\8eæ\93¾\r
+///////////////////////////////////////////\r
+\r
+LPTSTR SimpleEditor::GetMemo()\r
+{\r
+       DWORD n = GetWindowTextLength(hViewWnd);\r
+\r
+       LPTSTR p = new TCHAR[n + 1];\r
+       if (p == NULL) {\r
+               SetLastError(ERROR_NOT_ENOUGH_MEMORY);\r
+               return NULL;\r
+       }\r
+       GetWindowText(hViewWnd, p,n+1);\r
+       return p;\r
+}\r
+\r
+/////////////////////////////////////////\r
+// \83t\83H\83\93\83g\82Ì\90Ý\92è\r
+/////////////////////////////////////////\r
+\r
+void SimpleEditor::SetFont(HFONT hFont)\r
+{\r
+       SendMessage(hViewWnd_fd, WM_SETFONT, (WPARAM)hFont, MAKELPARAM(TRUE, 0));\r
+       SendMessage(hViewWnd_nf, WM_SETFONT, (WPARAM)hFont, MAKELPARAM(TRUE, 0));\r
+}\r
+\r
+/////////////////////////////////////////\r
+// get cursor position\r
+/////////////////////////////////////////\r
+\r
+DWORD SimpleEditor::GetCursorPos()\r
+{\r
+       DWORD nPos;\r
+       SendMessage(hViewWnd, EM_GETSEL, (WPARAM)&nPos, (LPARAM)NULL);\r
+       return nPos;\r
+}\r
+\r
+/////////////////////////////////////////\r
+// get partial path\r
+/////////////////////////////////////////\r
+\r
+static BOOL GetPartialPathFW(TString *pChoped, TString *pOrig, DWORD nLevel)\r
+{\r
+       if (!pChoped->Join(TEXT("\\"), pOrig->Get())) return FALSE;\r
+       if (nLevel == 0) return TRUE;\r
+\r
+       LPTSTR p = pChoped->Get() + 1;\r
+       DWORD i = 0;\r
+       while (*p) {\r
+               if (*p == TEXT('\\')) {\r
+                       i++;\r
+                       if (i >= nLevel) {\r
+                               *p = TEXT('\0');\r
+                               return TRUE;\r
+                       }\r
+               }\r
+\r
+               p = CharNext(p);\r
+       }\r
+       return TRUE;\r
+}\r
+\r
+static LPCTSTR GetPartialPathBW(TString *pChoped, TString *pOrig, DWORD nLevel)\r
+{\r
+       if (!pChoped->Join(TEXT("\\"), pOrig->Get())) return NULL;\r
+       if (nLevel == 0) return pChoped->Get();\r
+\r
+       LPTSTR p = pChoped->Get() + 1;\r
+       DWORD n = 0;\r
+       while(*p) {\r
+               if (*p == TEXT('\\')) {\r
+                       n++;\r
+               }\r
+               p = CharNext(p);\r
+       }\r
+\r
+       if (nLevel > n) {\r
+               nLevel = n;\r
+       }\r
+       DWORD k = n - nLevel;\r
+\r
+       p = pChoped->Get() + 1;\r
+       DWORD i = 0;\r
+       while(*p) {\r
+               if (*p == TEXT('\\')) {\r
+                       i++;\r
+                       if (i > k) break;\r
+               }\r
+               p = CharNext(p);\r
+       }\r
+       return p;\r
+}\r
+/////////////////////////////////////////\r
+// format date string\r
+/////////////////////////////////////////\r
+\r
+static BOOL GetDateText(TString *pInsStr, LPCTSTR pFormat, TString *pPath)\r
+{\r
+       SYSTEMTIME st;\r
+       GetLocalTime(&st);\r
+\r
+       TString sPartPath;\r
+       LPCTSTR pTop;\r
+       DWORD nLv;\r
+\r
+       // \95\8e\9a\83o\83b\83t\83@\83T\83C\83Y\82Ì\83J\83E\83\93\83g\r
+       DWORD nLen = 0;\r
+       LPCTSTR p = pFormat;\r
+       while(*p) {\r
+#if defined(PLATFORM_WIN32)\r
+               if (IsDBCSLeadByte(*p)) {\r
+                       p += 2;\r
+                       nLen += 2;\r
+                       continue;\r
+               }\r
+#endif\r
+               if (*p == TEXT('%')) {\r
+                       p++;\r
+                       switch(*p) {\r
+                       case TEXT('y'):\r
+                               nLen += 4;\r
+                               break;\r
+                       case TEXT('b'):\r
+                               nLen += 3;\r
+                               break;\r
+                       case TEXT('w'):\r
+                       case TEXT('W'):\r
+                               nLen += 3;\r
+                               break;\r
+                       case TEXT('f'):\r
+                               if (_istdigit(*(p+1))) {\r
+                                       nLv = *(p+1) - TEXT('0');\r
+                                       p++;\r
+                               } else {\r
+                                       nLv = 0;\r
+                               }\r
+                               if (!GetPartialPathFW(&sPartPath, pPath, nLv)) return FALSE;\r
+                               nLen += _tcslen(sPartPath.Get());\r
+                               break;\r
+                       case TEXT('F'):\r
+                               if (_istdigit(*(p+1))) {\r
+                                       nLv = *(p+1) - TEXT('0');\r
+                                       p++;\r
+                               } else {\r
+                                       nLv = 0;\r
+                               }\r
+                               pTop = GetPartialPathBW(&sPartPath, pPath, nLv);\r
+                               if (!pTop) return FALSE;\r
+                               nLen += _tcslen(pTop);\r
+                               break;\r
+                       default:\r
+                               nLen += 2;\r
+                               break;\r
+                       }\r
+                       if (*p) p++;\r
+               } else {\r
+                       p++;\r
+                       nLen++;\r
+               }\r
+       }\r
+       nLen++;\r
+       if (!pInsStr->Alloc(nLen)) return FALSE;\r
+\r
+       LPTSTR q = pInsStr->Get();\r
+       p = pFormat;\r
+       while(*p) {\r
+#if defined(PLATFORM_WIN32)\r
+               if (IsDBCSLeadByte(*p)) {\r
+                       *q++ = *p++;\r
+                       *q++ = *p++;\r
+                       continue;\r
+               }\r
+#endif\r
+               if (*p == TEXT('%')) {\r
+                       p++;\r
+                       switch(*p) {\r
+                       case TEXT('y'):\r
+                               wsprintf(q, TEXT("%4d"), st.wYear);\r
+                               q += 4;\r
+                               break;\r
+                       case TEXT('Y'):\r
+                               wsprintf(q, TEXT("%02d"), st.wYear % 100);\r
+                               q += 2;\r
+                               break;\r
+                       case TEXT('M'):\r
+                               wsprintf(q, TEXT("%02d"), st.wMonth);\r
+                               q += 2;\r
+                               break;\r
+                       case TEXT('b'):\r
+                               _tcscpy(q, pMonth[st.wMonth - 1]);\r
+                               q += 3;\r
+                               break;\r
+                       case TEXT('d'):\r
+                               wsprintf(q, TEXT("%02d"), st.wDay);\r
+                               q += 2;\r
+                               break;\r
+                       case TEXT('D'):\r
+                               wsprintf(q, TEXT("%d"), st.wDay);\r
+                               q++;\r
+                               if (st.wDay >= 10) q++;\r
+                               break;\r
+                       case TEXT('w'):\r
+                               _tcscpy(q, pWeekJ[st.wDayOfWeek]);\r
+                               q += _tcslen(pWeekJ[st.wDayOfWeek]);\r
+                               break;\r
+                       case TEXT('W'):\r
+                               _tcscpy(q, pWeekE[st.wDayOfWeek]);\r
+                               q += _tcslen(pWeekE[st.wDayOfWeek]);\r
+                               break;\r
+                       case TEXT('h'):\r
+                               wsprintf(q, TEXT("%02d"), st.wHour);\r
+                               q += 2;\r
+                               break;\r
+                       case TEXT('H'):\r
+                               wsprintf(q, TEXT("%02d"), st.wHour % 12);\r
+                               q += 2;\r
+                               break;\r
+                       case TEXT('I'):\r
+                               {\r
+                                       int n = st.wHour % 12;\r
+                                       if (n == 0) n = 12;\r
+                                       wsprintf(q, TEXT("%02d"), n);\r
+                                       q+= 2;\r
+                               }\r
+                               break;\r
+                       case TEXT('a'):\r
+                               if (st.wHour >= 12) {\r
+                                       _tcscpy(q, TEXT("PM"));\r
+                               } else {\r
+                                       _tcscpy(q, TEXT("AM"));\r
+                               }\r
+                               q += 2;\r
+                               break;\r
+                       case TEXT('m'):\r
+                               wsprintf(q, TEXT("%02d"), st.wMinute);\r
+                               q += 2;\r
+                               break;\r
+                       case TEXT('s'):\r
+                               wsprintf(q, TEXT("%02d"), st.wSecond);\r
+                               q += 2;\r
+                               break;\r
+                       case TEXT('n'):\r
+                               wsprintf(q, TEXT("\r\n"));\r
+                               q += 2;\r
+                               break;\r
+                       case TEXT('f'):\r
+                               if (_istdigit(*(p+1))) {\r
+                                       nLv = *(p+1) - TEXT('0');\r
+                                       p++;\r
+                               } else {\r
+                                       nLv = 0;\r
+                               }\r
+                               if (!GetPartialPathFW(&sPartPath, pPath, nLv)) return FALSE;\r
+                               _tcscpy(q, sPartPath.Get());\r
+                               q += _tcslen(sPartPath.Get());\r
+                               break;\r
+                       case TEXT('F'):\r
+                               if (_istdigit(*(p+1))) {\r
+                                       nLv = *(p+1) - TEXT('0');\r
+                                       p++;\r
+                               } else {\r
+                                       nLv = 0;\r
+                               }\r
+                               pTop = GetPartialPathBW(&sPartPath, pPath, nLv);\r
+                               if (!pTop) return FALSE;\r
+                               _tcscpy(q, pTop);\r
+                               q += _tcslen(pTop);\r
+                               break;\r
+                       default:\r
+                               *q++ = TEXT('%');\r
+                               if (*p) *q++ = *p++;\r
+                       }\r
+                       p++;\r
+               } else {\r
+                       *q++ = *p++;\r
+               }\r
+       }\r
+       *q = TEXT('\0');\r
+       return TRUE;\r
+}\r
+\r
+/////////////////////////////////////////\r
+// \83X\83e\81[\83^\83X\95\\8e¦\r
+/////////////////////////////////////////\r
+\r
+void SimpleEditor::SetModifyStatus()\r
+{\r
+       pManager->GetMainFrame()->SetModifyStatus(IsModify());\r
+}\r
+\r
+/////////////////////////////////////////\r
+// \83X\83e\81[\83^\83X\95\\8e¦\r
+/////////////////////////////////////////\r
+\r
+void SimpleEditor::SelectAll() \r
+{      \r
+       SetFocus();\r
+       SendMessage(hViewWnd, EM_SETSEL, 0, -1); \r
+}\r
+\r
+/////////////////////////////////////////\r
+// \90Ü\82è\95Ô\82µ\95\\8e¦\82Ì\90Ø\82è\91Ö\82¦\r
+/////////////////////////////////////////\r
+\r
+BOOL SimpleEditor::SetFolding(BOOL bFold)\r
+{\r
+       HWND hPrev;\r
+       HWND hAfter;\r
+\r
+       // \8c»\8dÝ\8eg\97p\82³\82ê\82Ä\82¢\82é\83E\83B\83\93\83h\83E\82Ì\90Ø\82è\91Ö\82¦\r
+       if (hViewWnd == hViewWnd_fd) {\r
+               hPrev = hViewWnd_fd;\r
+               hAfter = hViewWnd_nf;\r
+       } else {\r
+               hPrev = hViewWnd_nf;\r
+               hAfter = hViewWnd_fd;\r
+       }\r
+       hViewWnd = hAfter;\r
+\r
+       // \83e\83L\83X\83g\96{\95\82Ì\88ø\8cp\82¬\r
+       DWORD nLen = GetWindowTextLength(hPrev) + 1;\r
+       LPTSTR p = new TCHAR[nLen];\r
+       if (p == NULL) {\r
+               hViewWnd = hPrev;\r
+               return FALSE;\r
+       }\r
+       p[0] = TEXT('\0');\r
+       GetWindowText(hPrev, p, nLen);\r
+       SetWindowText(hAfter, p);\r
+       delete [] p; p = NULL;\r
+\r
+       // \8dX\90V\8fó\91Ô\82Ì\88ø\8cp\82¬\r
+       SendMessage(hAfter, EM_SETMODIFY, (WPARAM)SendMessage(hPrev, EM_GETMODIFY, 0, 0), 0);\r
+\r
+       // \83J\81[\83\\83\8b\88Ê\92u\82Ì\88ø\8cp\82¬\r
+\r
+       // \8c»\8dÝ\95\\8e¦\82³\82ê\82Ä\82¢\82é\8fê\8d\87\81A\95\\8e¦\8fó\91Ô\82ð\90Ø\82è\91Ö\82¦\r
+       if (!bShowStatus) return TRUE;\r
+       ::ShowWindow(hPrev, SW_HIDE);\r
+       ::ShowWindow(hAfter, SW_SHOW);\r
+\r
+       return TRUE;\r
+}\r
+\r
+/////////////////////////////////////////\r
+// \83^\83u\83X\83g\83b\83v\82Ì\90Ý\92è\r
+/////////////////////////////////////////\r
+\r
+void SimpleEditor::SetTabstop() {\r
+       DWORD n = g_Property.GetTabstop() * 4;\r
+       SendMessage(hViewWnd_fd, EM_SETTABSTOPS, 1, (LPARAM)&n);\r
+       SendMessage(hViewWnd_nf, EM_SETTABSTOPS, 1, (LPARAM)&n);\r
+}\r
+\r
+/////////////////////////////////////////\r
+// change read only mode\r
+/////////////////////////////////////////\r
+\r
+void SimpleEditor::SetReadOnly(BOOL bro)\r
+{\r
+       bReadOnly = bro;\r
+       pManager->GetMainFrame()->SetReadOnlyStatus(IsReadOnly());\r
+}\r
+\r
+/////////////////////////////////////////\r
+//\r
+/////////////////////////////////////////\r
+\r
+void SimpleEditor::SetMDSearchFlg(BOOL bFlg)\r
+{\r
+       pManager->SetMDSearchFlg(bFlg);\r
+}\r
+\r
+/////////////////////////////////////////\r
+// Insert date\r
+/////////////////////////////////////////\r
+\r
+BOOL SimpleEditor::ReplaceText(LPCTSTR p)\r
+{\r
+       SendMessage(hViewWnd, EM_REPLACESEL, 0, (LPARAM)p);\r
+       return TRUE;\r
+}\r
+\r
+void SimpleEditor::SetSelectRegion(DWORD nStart, DWORD nEnd)\r
+{\r
+       SendMessage(hViewWnd, EM_SETSEL, (WPARAM)nStart, (LPARAM)nEnd);\r
+       SendMessage(hViewWnd, EM_SCROLLCARET, 0, 0);\r
+}\r
diff --git a/Src/MemoDetailsView.h b/Src/MemoDetailsView.h
new file mode 100644 (file)
index 0000000..2ad3ad1
--- /dev/null
@@ -0,0 +1,150 @@
+#ifndef MEMODETAILSVIEW_H\r
+#define MEMODETAILSVIEW_H\r
+\r
+class MemoDetailsView;\r
+class SearchEngineA;\r
+class TString;\r
+class TomboURI;\r
+class MemoManager;\r
+\r
+///////////////////////////////////////\r
+// Edit view abstraction\r
+///////////////////////////////////////\r
+\r
+class MemoDetailsView {\r
+protected:\r
+       TomboURI *pCurrentURI;\r
+       MemoManager *pManager;\r
+public:\r
+\r
+       MemoDetailsView(MemoManager *pMgr);\r
+       virtual ~MemoDetailsView();\r
+\r
+       virtual BOOL Create(LPCTSTR pName, RECT &r, HWND hParent, HINSTANCE hInst, HFONT hFont) = 0;\r
+\r
+       virtual void SetTabstop() = 0;\r
+       virtual BOOL SetFolding(BOOL bFold) = 0;\r
+       virtual void SetReadOnly(BOOL bReadOnly) = 0;\r
+       virtual BOOL IsReadOnly() = 0;\r
+\r
+       virtual void SetModifyStatus() = 0;\r
+\r
+       virtual void SetMDSearchFlg(BOOL bFlg) = 0;\r
+\r
+       virtual BOOL Show(int nCmdShow) = 0;\r
+       virtual void SetFocus() = 0;\r
+       virtual void SetFont(HFONT hFont) = 0;\r
+       virtual void MoveWindow(DWORD x, DWORD y, DWORD nWidth, DWORD nHeight) = 0;\r
+\r
+       virtual BOOL OnCommand(HWND hWnd, WPARAM wParam, LPARAM lParam) = 0;\r
+       virtual BOOL OnHotKey(HWND hWnd, WPARAM wParam) = 0;\r
+       virtual void OnGetFocus() = 0;\r
+\r
+       virtual BOOL SetMemo(LPCTSTR pMemo, DWORD nPos, BOOL bReadOnly) = 0;\r
+       virtual LPTSTR GetMemo() = 0;\r
+       virtual BOOL IsModify() = 0;\r
+       virtual void ResetModify() = 0;\r
+\r
+       virtual DWORD GetCursorPos() = 0;\r
+       virtual DWORD GetInitialPos() = 0;\r
+\r
+       virtual void SelectAll() = 0;\r
+\r
+       BOOL Search(BOOL bFirstSearch, BOOL bForward, BOOL bNFMsg, BOOL bSearchFromTop);\r
+\r
+       BOOL Save(const TomboURI *pCurrentURI, TomboURI *pNewURI, TString *pNewHeadLine, LPCTSTR pText);\r
+\r
+       const TomboURI *GetCurrentURI();\r
+       void SetCurrentNote(const TomboURI *pURI);\r
+\r
+       // Is the note displayed in details view?\r
+       BOOL IsNoteDisplayed(const TomboURI *pURI);\r
+\r
+       BOOL StoreCursorPos();\r
+       BOOL DiscardMemo();\r
+\r
+       BOOL LoadNote(const TomboURI *pURI);\r
+\r
+       virtual BOOL ReplaceText(LPCTSTR p) = 0;\r
+       virtual void SetSelectRegion(DWORD nStart, DWORD nEnd) = 0;\r
+\r
+       void InsertDate1();\r
+       void InsertDate2();\r
+};\r
+\r
+//////////////////////////////////////////\r
+// Edit view\r
+//////////////////////////////////////////\r
+\r
+class SimpleEditor : public MemoDetailsView {\r
+       HWND hViewWnd;          // The window handle used now(hViewWnd_fd or hViewWnd_nf)\r
+       HWND hViewWnd_fd;       // The window created by wrapping options\r
+       HWND hViewWnd_nf;       // The window created by no wrapping options\r
+\r
+       DWORD nID, nID_nf;\r
+\r
+       DWORD nLeftOffset;\r
+\r
+       BOOL bShowStatus;       // Is view displayed?\r
+\r
+       BOOL bReadOnly;         // is read only mode?\r
+\r
+       DWORD nInitialPos;      // cursor position when open this note.\r
+\r
+public:\r
+\r
+       ///////////////////////\r
+       // Initialize\r
+\r
+       SimpleEditor(MemoManager *pMgr);\r
+       BOOL Init(DWORD nID, DWORD nID_nf);\r
+       BOOL Create(LPCTSTR pName, RECT &r, HWND hParent, HINSTANCE hInst, HFONT hFont);\r
+\r
+       static BOOL RegisterClass(HINSTANCE hInst);\r
+\r
+       ///////////////////////\r
+       // Properties\r
+\r
+       void SetTabstop();                              // Tab stop\r
+       BOOL SetFolding(BOOL bFold);    // Change wrapping\r
+\r
+       void SetReadOnly(BOOL bReadOnly);\r
+       BOOL IsReadOnly() { return bReadOnly; }\r
+\r
+       void SetModifyStatus();\r
+\r
+       ////////////////////////\r
+       // Message handler\r
+\r
+       BOOL Show(int nCmdShow);\r
+       void SetFocus() { ::SetFocus(hViewWnd); }\r
+       void SetFont(HFONT hFont);\r
+       void MoveWindow(DWORD x, DWORD y, DWORD nWidth, DWORD nHeight);\r
+\r
+       BOOL OnCommand(HWND hWnd, WPARAM wParam, LPARAM lParam);\r
+       BOOL OnHotKey(HWND hWnd, WPARAM wParam);\r
+       UINT OnKeyDown(HWND hWnd, WPARAM wParam, LPARAM lParam);\r
+\r
+       void OnGetFocus();\r
+\r
+       ////////////////////////////\r
+       // Data access\r
+\r
+       BOOL SetMemo(LPCTSTR pMemo, DWORD nPos, BOOL bReadOnly);\r
+       LPTSTR GetMemo();\r
+       BOOL IsModify() { if (hViewWnd) return SendMessage(hViewWnd, EM_GETMODIFY, 0, 0); else return FALSE; }\r
+       void ResetModify() { SendMessage(hViewWnd, EM_SETMODIFY, (WPARAM)(UINT)FALSE, 0); }\r
+\r
+       void SetMDSearchFlg(BOOL bFlg);\r
+\r
+\r
+       DWORD GetCursorPos();\r
+       DWORD GetInitialPos() { return nInitialPos; }\r
+\r
+       void SelectAll();\r
+\r
+       BOOL ReplaceText(LPCTSTR p);\r
+       void SetSelectRegion(DWORD nStart, DWORD nEnd);\r
+};\r
+\r
+#endif\r
diff --git a/Src/MemoFolder.cpp b/Src/MemoFolder.cpp
new file mode 100644 (file)
index 0000000..ab72816
--- /dev/null
@@ -0,0 +1,302 @@
+#include <windows.h>\r
+#include <commctrl.h>\r
+#include <tchar.h>\r
+\r
+#include "Tombo.h"\r
+#include "UniConv.h"\r
+#include "TString.h"\r
+#include "TomboURI.h"\r
+#include "DirectoryScanner.h"\r
+#include "MemoFolder.h"\r
+#include "PasswordManager.h"\r
+#include "MemoNote.h"\r
+#include "Message.h"\r
+#include "Repository.h"\r
+\r
+///////////////////////////////////////////////\r
+// ctor & dtor\r
+///////////////////////////////////////////////\r
+\r
+MemoFolder::MemoFolder() : pFullPath(NULL)\r
+{\r
+}\r
+\r
+MemoFolder::~MemoFolder()\r
+{\r
+       if (pFullPath) delete [] pFullPath;\r
+}\r
+\r
+BOOL MemoFolder::Init(LPCTSTR pTop, LPCTSTR p)\r
+{\r
+       pTopDir = pTop;\r
+       if ((pFullPath = StringDup(p)) == NULL) return FALSE;\r
+       return TRUE;\r
+}\r
+\r
+///////////////////////////////////////////////\r
+// \83f\83B\83\8c\83N\83g\83\8a\82Ì\88Ú\93®\r
+///////////////////////////////////////////////\r
+\r
+BOOL MemoFolder::Move(LPCTSTR pDst)\r
+{\r
+       // \96\96\94ö\82Ì\83f\83B\83\8c\83N\83g\83\8a\82ð\8eæ\93¾\r
+       TCHAR aDst[MAX_PATH];\r
+       _tcscpy(aDst, pFullPath);\r
+       ChopFileSeparator(aDst);\r
+       TString sDir;\r
+       sDir.GetDirectoryPath(aDst);\r
+       LPTSTR p = aDst + _tcslen(sDir.Get());\r
+\r
+       TCHAR aSrc[MAX_PATH];\r
+       _tcscpy(aSrc, pFullPath);\r
+       ChopFileSeparator(aSrc);\r
+\r
+       // \88Ú\93®\90æ\82ª\88Ú\93®\8c³\82Ì\83t\83H\83\8b\83_\96¼\82Æ\93¯\82\82É\82È\82é\82æ\82¤\82É\83p\83\89\83\81\81[\83^\82ð\92²\90®\r
+       TString sDst;\r
+       if (!sDst.Join(pDst, p)) return FALSE;\r
+\r
+       // \88Ú\93®\8f\88\97\9d\r
+       if (!MoveFile(aSrc, sDst.Get())) return FALSE;\r
+\r
+       return TRUE;\r
+}\r
+\r
+///////////////////////////////////////////////\r
+// Delete directory\r
+///////////////////////////////////////////////\r
+\r
+DSFileDelete::DSFileDelete(){ /* NOP */}\r
+\r
+BOOL DSFileDelete::Init(LPCTSTR pPath)\r
+{\r
+       return DirectoryScanner::Init(pPath, 0);\r
+}\r
+\r
+void DSFileDelete::InitialScan() {/* NOP */}\r
+void DSFileDelete::PreDirectory(LPCTSTR) {/* NOP */}\r
+\r
+void DSFileDelete::PostDirectory(LPCTSTR)\r
+{\r
+       if (!IsStopScan()) {\r
+               TCHAR buf[MAX_PATH*2];\r
+               _tcscpy(buf, CurrentPath());\r
+               ChopFileSeparator(buf);\r
+               if (!RemoveDirectory(buf)) {\r
+                       _tcscpy(aFailPath, buf);\r
+//                     _tcscpy(aErrorMsg, MSG_RMDIR_FAILED);\r
+                       StopScan();\r
+                       SetLastError(ERROR_TOMBO_E_RMDIR_FAILED);\r
+               }\r
+       }\r
+}\r
+\r
+void DSFileDelete::AfterScan() \r
+{\r
+       PostDirectory(NULL);\r
+}\r
+\r
+void DSFileDelete::File(LPCTSTR p)\r
+{\r
+       // if the file that TOMBO is not treat exists, stop deleting. \r
+       if (MemoNote::IsNote(CurrentPath()) == NOTE_TYPE_NO) {\r
+               _tcscpy(aFailPath, CurrentPath());\r
+               StopScan();\r
+               SetLastError(ERROR_TOMBO_W_OTHERFILE_EXISTS);\r
+               return;\r
+       }\r
+\r
+       // Delete\r
+       if (!DeleteFile(CurrentPath())) {\r
+               _tcscpy(aFailPath, CurrentPath());\r
+               StopScan();\r
+               SetLastError(ERROR_TOMBO_E_RMFILE_FAILED);\r
+       }\r
+}\r
+\r
+///////////////////////////////////////////////\r
+// \83f\83B\83\8c\83N\83g\83\8a\83R\83s\81[\r
+///////////////////////////////////////////////\r
+\r
+class DSFileCopy: public DirectoryScanner {\r
+       TCHAR aDstPath[MAX_PATH * 2];\r
+public:\r
+       TCHAR aFailPath[MAX_PATH * 2];\r
+       TCHAR aErrorMsg[1024];\r
+\r
+       BOOL Init(LPCTSTR pSrc, LPCTSTR pDst);\r
+       void InitialScan();\r
+       void AfterScan();\r
+       void PreDirectory(LPCTSTR);\r
+       void PostDirectory(LPCTSTR);\r
+       void File(LPCTSTR);\r
+};\r
+\r
+BOOL DSFileCopy::Init(LPCTSTR pSrc, LPCTSTR pDst)\r
+{\r
+       _tcscpy(aDstPath, pDst);\r
+       return DirectoryScanner::Init(pSrc, 0);\r
+}\r
+\r
+void DSFileCopy::InitialScan()\r
+{\r
+       TCHAR buf[MAX_PATH * 2];\r
+       _tcscpy(buf, aDstPath);\r
+       ChopFileSeparator(buf);\r
+       if (!CreateDirectory(buf, NULL)) {\r
+               _tcscpy(aFailPath, buf);\r
+               _tcscpy(aErrorMsg, MSG_MKDIR_FAILED);\r
+               StopScan();\r
+       }\r
+}\r
+\r
+void DSFileCopy::AfterScan() {/* NOP */}\r
+\r
+void DSFileCopy::File(LPCTSTR p)\r
+{\r
+       _tcscat(aDstPath, p);\r
+\r
+       if (!CopyFile(CurrentPath(), aDstPath, FALSE)) {\r
+               _tcscpy(aFailPath, aDstPath);\r
+               _tcscpy(aErrorMsg, MSG_FILECOPY_FAILED);\r
+               StopScan();\r
+       }\r
+\r
+       *(aDstPath + (_tcslen(aDstPath) - _tcslen(p))) = TEXT('\0');\r
+}\r
+\r
+void DSFileCopy::PreDirectory(LPCTSTR p)\r
+{\r
+       _tcscat(aDstPath, p);\r
+       if (!CreateDirectory(aDstPath, NULL)) {\r
+               _tcscpy(aFailPath, aDstPath);\r
+               _tcscpy(aErrorMsg, MSG_MKDIR_FAILED);\r
+               StopScan();\r
+       }\r
+       _tcscat(aDstPath, TEXT("\\"));\r
+}\r
+\r
+void DSFileCopy::PostDirectory(LPCTSTR p)\r
+{\r
+       *(aDstPath + (_tcslen(aDstPath) - _tcslen(p) - 1)) = TEXT('\0');\r
+}\r
+\r
+BOOL MemoFolder::Copy(LPCTSTR pDst)\r
+{\r
+       DSFileCopy fc;\r
+       fc.Init(pFullPath, pDst);\r
+\r
+       if (!fc.Scan()) {\r
+               sErrorReason.Join(fc.aErrorMsg, TEXT(" : "), fc.aFailPath);\r
+               return FALSE;\r
+       } else {\r
+               return TRUE;\r
+       }\r
+}\r
+\r
+///////////////////////////////////////////////\r
+// \83f\83B\83\8c\83N\83g\83\8a\96¼\82Ì\95Ï\8dX\r
+///////////////////////////////////////////////\r
+\r
+BOOL MemoFolder::Rename(LPCTSTR pNewName)\r
+{\r
+       if (_tcslen(pNewName) == 0) {\r
+               SetLastError(ERROR_NO_DATA);\r
+               return FALSE;\r
+       }\r
+\r
+       TString sCurrent;\r
+       if (!sCurrent.Set(pFullPath)) return FALSE;\r
+       sCurrent.ChopFileSeparator();\r
+       \r
+       TString sNew;\r
+       sNew.GetDirectoryPath(sCurrent.Get());\r
+       sNew.StrCat(pNewName);\r
+\r
+       return MoveFile(sCurrent.Get(), sNew.Get());\r
+}\r
+\r
+///////////////////////////////////////////////\r
+//  Encrypt/decrypt to folderr\r
+///////////////////////////////////////////////\r
+\r
+DSEncrypt::~DSEncrypt()\r
+{\r
+       delete pURI;\r
+}\r
+\r
+BOOL DSEncrypt::Init(LPCTSTR pTopDir, LPCTSTR pPath, LPCTSTR pBaseURI, BOOL bEnc) {\r
+       nBaseLen = _tcslen(pTopDir);\r
+       nNotEncrypted = 0;\r
+       bEncrypt = bEnc;\r
+       pURI = new TString();\r
+       if (pURI == NULL || !pURI->Alloc(MAX_PATH)) return FALSE;\r
+       nURIBufSize = MAX_PATH;\r
+\r
+       _tcscpy(pURI->Get(), pBaseURI);\r
+       nCurrentPos = _tcslen(pBaseURI);\r
+\r
+       return DirectoryScanner::Init(pPath, 0);\r
+}\r
+\r
+BOOL DSEncrypt::CheckURIBuffer(LPCTSTR p)\r
+{\r
+       // check buffer size\r
+       if (nCurrentPos + _tcslen(p) > nURIBufSize) {\r
+               TString *pNewBuf = new TString();\r
+               if (pNewBuf == NULL || !pNewBuf->Alloc(nURIBufSize + MAX_PATH)) {\r
+                       StopScan();\r
+                       return FALSE;\r
+               }\r
+               _tcscpy(pNewBuf->Get(), pURI->Get());\r
+               delete pURI;\r
+               pURI = pNewBuf;\r
+       }\r
+       return TRUE;\r
+}\r
+\r
+void DSEncrypt::PreDirectory(LPCTSTR pDir)\r
+{\r
+       if (!CheckURIBuffer(pDir)) return;\r
+\r
+       DWORD n = _tcslen(pDir);\r
+       _tcscpy(pURI->Get() + nCurrentPos, pDir);\r
+       nCurrentPos += n;\r
+       _tcscat(pURI->Get() + nCurrentPos, TEXT("/"));\r
+       nCurrentPos++;\r
+}\r
+\r
+void DSEncrypt::PostDirectory(LPCTSTR pDir)\r
+{\r
+       DWORD n = _tcslen(pDir);\r
+       nCurrentPos -= n + 1;\r
+       *(pURI->Get() + nCurrentPos) = TEXT('\0');\r
+}\r
+\r
+void DSEncrypt::File(LPCTSTR pFile)\r
+{\r
+       if (!CheckURIBuffer(pFile)) return;\r
+\r
+       _tcscpy(pURI->Get() + nCurrentPos, pFile);\r
+\r
+       TomboURI sURI;\r
+       if (!sURI.Init(pURI->Get())) {\r
+               StopScan();\r
+               return;\r
+       }\r
+\r
+       URIOption gopt(NOTE_OPTIONMASK_VALID | NOTE_OPTIONMASK_ENCRYPTED);\r
+       if (!g_Repository.GetOption(&sURI, &gopt)) {\r
+               nNotEncrypted++;\r
+               return;\r
+       }\r
+       if (gopt.bValid == FALSE || gopt.bFolder == TRUE) return;\r
+\r
+       if (gopt.bEncrypt == bEncrypt) return;\r
+\r
+       URIOption opt(NOTE_OPTIONMASK_ENCRYPTED);\r
+       opt.bEncrypt = bEncrypt;\r
+       if (!g_Repository.SetOption(&sURI, &opt)) {\r
+               nNotEncrypted++;\r
+               return;\r
+       }\r
+}\r
diff --git a/Src/MemoFolder.h b/Src/MemoFolder.h
new file mode 100644 (file)
index 0000000..51870a5
--- /dev/null
@@ -0,0 +1,83 @@
+#ifndef MEMOFOLDER_H\r
+#define MEMOFOLDER_H\r
+\r
+class PasswordManager;\r
+class TString;\r
+\r
+/////////////////////////////////////////\r
+// Folder operation classes\r
+/////////////////////////////////////////\r
+//\r
+// Thease classes should be used by only LocalRepository.\r
+// If you want to use thease features, request to it.\r
+\r
+\r
+class MemoFolder {\r
+       LPCTSTR pTopDir;\r
+       LPTSTR pFullPath;\r
+       TString sErrorReason;\r
+public:\r
+\r
+       ///////////////////////////////////////////////\r
+       // ctor & dtor\r
+       MemoFolder();\r
+       ~MemoFolder();\r
+       BOOL Init(LPCTSTR pTopDir, LPCTSTR pPath);\r
+\r
+       BOOL Copy(LPCTSTR pDst);\r
+       BOOL Move(LPCTSTR pDst);\r
+       BOOL Rename(LPCTSTR pNewName);\r
+\r
+       LPCTSTR GetErrorReason() { return sErrorReason.Get(); }\r
+};\r
+\r
+/////////////////////////////////////////\r
+// Encrypt/decrypt folder\r
+/////////////////////////////////////////\r
+\r
+class DSEncrypt: public DirectoryScanner {\r
+       DWORD nBaseLen;\r
+       PasswordManager *pPassMgr;\r
+       BOOL bEncrypt;\r
+\r
+       TString *pURI;\r
+       DWORD nURIBufSize;\r
+       DWORD nCurrentPos;\r
+\r
+protected:\r
+       BOOL CheckURIBuffer(LPCTSTR p);\r
+\r
+public:\r
+       DWORD nNotEncrypted;\r
+\r
+       ~DSEncrypt();\r
+       // If bEncrypt is FALSE, decrypt files.\r
+       BOOL Init(LPCTSTR pTopDir, LPCTSTR pPath, LPCTSTR pBaseURI, BOOL bEncrypt);\r
+\r
+       void InitialScan() {}\r
+       void AfterScan() {}\r
+       void PreDirectory(LPCTSTR);\r
+       void PostDirectory(LPCTSTR);\r
+       void File(LPCTSTR);\r
+};\r
+\r
+///////////////////////////////////////////////\r
+// Delete directory\r
+///////////////////////////////////////////////\r
+\r
+class DSFileDelete: public DirectoryScanner {\r
+public:\r
+       TCHAR aFailPath[MAX_PATH * 2];\r
+       TCHAR aErrorMsg[1024];\r
+\r
+       DSFileDelete();\r
+\r
+       BOOL Init(LPCTSTR pPath); \r
+       void InitialScan();\r
+       void AfterScan();\r
+       void PreDirectory(LPCTSTR);\r
+       void PostDirectory(LPCTSTR);\r
+       void File(LPCTSTR);\r
+};\r
+\r
+#endif\r
diff --git a/Src/MemoInfo.cpp b/Src/MemoInfo.cpp
new file mode 100644 (file)
index 0000000..2adfabd
--- /dev/null
@@ -0,0 +1,69 @@
+#include <windows.h>\r
+#include <tchar.h>\r
+#include "Tombo.h"\r
+#include "TString.h"\r
+#include "File.h"\r
+#include "MemoInfo.h"\r
+\r
+#define VERSION_INFO 1\r
+#define TDT_FILE_EXT TEXT(".tdt")\r
+\r
+BOOL MemoInfo::WriteInfo(LPCTSTR pMemoPath, DWORD nPos)\r
+{\r
+       BYTE cVer = VERSION_INFO;\r
+\r
+       TString sFileName;\r
+       if (!sFileName.Join(pTopDir, TEXT("\\"), pMemoPath, TDT_FILE_EXT)) return FALSE;\r
+\r
+       File fInfo;\r
+       if (!fInfo.Open(sFileName.Get(), GENERIC_WRITE, 0, CREATE_ALWAYS)) {\r
+               return FALSE;\r
+       }\r
+       if (!fInfo.Write((LPBYTE)&cVer, sizeof(cVer)) ||\r
+               !fInfo.Write((LPBYTE)&nPos, sizeof(nPos))) {\r
+               return FALSE;\r
+       }\r
+       fInfo.Close();\r
+       return TRUE;\r
+}\r
+\r
+BOOL MemoInfo::ReadInfo(LPCTSTR pMemoPath, LPDWORD pPos)\r
+{\r
+       BYTE cVer;\r
+\r
+       TString sFileName;\r
+       if (!sFileName.Join(pTopDir, TEXT("\\"), pMemoPath, TDT_FILE_EXT)) return FALSE;\r
+\r
+       File fInfo;\r
+       if (!fInfo.Open(sFileName.Get(), GENERIC_READ, 0, OPEN_EXISTING)) {\r
+               return FALSE;\r
+       }\r
+       DWORD r1, r2;\r
+       r1 = sizeof(cVer);\r
+       r2 = sizeof(DWORD);\r
+       if (!fInfo.Read((LPBYTE)&cVer, &r1) ||\r
+               !fInfo.Read((LPBYTE)pPos, &r2)) {\r
+               return FALSE;\r
+       }\r
+       if (cVer != VERSION_INFO) {\r
+               *pPos = 0;\r
+       }\r
+       fInfo.Close();\r
+       return TRUE;\r
+}\r
+\r
+BOOL MemoInfo::DeleteInfo(LPCTSTR pMemoPath)\r
+{\r
+       TString sFileName;\r
+       if (!sFileName.Join(pTopDir, TEXT("\\"), pMemoPath, TDT_FILE_EXT)) return FALSE;\r
+       return DeleteFile(sFileName.Get());\r
+}\r
+\r
+BOOL MemoInfo::RenameInfo(LPCTSTR pOld, LPCTSTR pNew)\r
+{\r
+       TString sOldFileName;\r
+       TString sNewFileName;\r
+       if (!sOldFileName.Join(pOld, TDT_FILE_EXT) || !sNewFileName.Join(pNew, TDT_FILE_EXT)) return FALSE;\r
+       DeleteFile(sNewFileName.Get());\r
+       return MoveFile(sOldFileName.Get(), sNewFileName.Get());\r
+}
\ No newline at end of file
diff --git a/Src/MemoInfo.h b/Src/MemoInfo.h
new file mode 100644 (file)
index 0000000..b5f3a51
--- /dev/null
@@ -0,0 +1,24 @@
+#ifndef MEMOINFO_H\r
+#define MEMOINFO_H\r
+\r
+////////////////////////////////////////\r
+// Notes properties\r
+////////////////////////////////////////\r
+\r
+class MemoInfo {\r
+       LPCTSTR pTopDir;\r
+public:\r
+       MemoInfo(LPCTSTR pTop) : pTopDir(pTop) {}\r
+       ~MemoInfo() {}\r
+\r
+       // path should partpath :-<\r
+       BOOL WriteInfo(LPCTSTR pMemoPath, DWORD nPos);\r
+       BOOL ReadInfo(LPCTSTR pMemoPath, LPDWORD pPos);\r
+\r
+       BOOL DeleteInfo(LPCTSTR pMemoPath);\r
+\r
+       // pOldFilePath and pNewFilePath should full path of the note.\r
+       BOOL RenameInfo(LPCTSTR pOldFilePath, LPCTSTR pNewFilePath);\r
+};\r
+\r
+#endif
\ No newline at end of file
diff --git a/Src/MemoManager.cpp b/Src/MemoManager.cpp
new file mode 100644 (file)
index 0000000..cc06ced
--- /dev/null
@@ -0,0 +1,212 @@
+#include <windows.h>\r
+#include <commctrl.h>\r
+#include <tchar.h>\r
+#include "Tombo.h"\r
+#include "TString.h"\r
+#include "MemoManager.h"\r
+#include "MemoDetailsView.h"\r
+#include "MemoSelectView.h"\r
+#include "VarBuffer.h"\r
+#include "MainFrame.h"\r
+#include "UniConv.h"\r
+#include "Property.h"\r
+#include "TreeViewItem.h"\r
+#include "SearchEngine.h"\r
+#include "Message.h"\r
+#include "TomboURI.h"\r
+#include "AutoPtr.h"\r
+\r
+#include "Repository.h"\r
+\r
+/////////////////////////////////////////////\r
+// ctor & dtor\r
+/////////////////////////////////////////////\r
+\r
+MemoManager::MemoManager() : pSearchEngineA(NULL), bMSSearchFlg(FALSE), bMDSearchFlg(FALSE)\r
+{\r
+}\r
+\r
+MemoManager::~MemoManager()\r
+{\r
+       if(pSearchEngineA) {\r
+               delete pSearchEngineA;\r
+       }\r
+}\r
+\r
+/////////////////////////////////////////////\r
+// initialize\r
+/////////////////////////////////////////////\r
+\r
+BOOL MemoManager::Init(MainFrame *mf, MemoDetailsView *md, MemoSelectView *ms) \r
+{\r
+       pMainFrame = mf;\r
+       pMemoDetailsView = md;\r
+       pMemoSelectView = ms;\r
+       return TRUE; \r
+}\r
+\r
+/////////////////////////////////////////////\r
+// get current selected path\r
+/////////////////////////////////////////////\r
+\r
+BOOL MemoManager::GetCurrentSelectedPath(TString *pPath)\r
+{\r
+       TString sURIstr;\r
+       TomboURI sURI;\r
+\r
+       if (pMemoDetailsView->GetCurrentURI()) {\r
+               sURI = (*pMemoDetailsView->GetCurrentURI());\r
+       } else {\r
+               if (pMemoSelectView->GetCurrentSelectedURI()) {\r
+                       sURI = (*pMemoSelectView->GetCurrentSelectedURI());\r
+               } else {\r
+                       return FALSE;\r
+               }\r
+       }\r
+\r
+       if (sURI.IsLeaf()) {\r
+               TomboURI sParent;\r
+               if (!sURI.GetParent(&sParent)) return FALSE;\r
+               if (!sParent.GetFilePath(pPath)) return FALSE;\r
+       } else {\r
+               if (!sURI.GetFilePath(pPath)) return FALSE;\r
+       }\r
+       ChopFileSeparator(pPath->Get());\r
+\r
+       return TRUE;\r
+}\r
+\r
+////////////////////////////////////////////////////////\r
+// Save notes\r
+////////////////////////////////////////////////////////\r
+// Notes is not save if not modified or read only.\r
+// Otherwise save notes after confirm.\r
+\r
+BOOL MemoManager::SaveIfModify(LPDWORD pYNC, BOOL bDupMode)\r
+{\r
+       if (pYNC) {\r
+               *pYNC = IDOK;\r
+       }\r
+\r
+       // skip saving if not modified or read only\r
+       if (!pMemoDetailsView->IsModify() || pMemoDetailsView->IsReadOnly()) {\r
+               pMemoDetailsView->StoreCursorPos();\r
+               return TRUE;\r
+       }\r
+\r
+       if (pYNC) {\r
+               if (!g_Property.GetDisableSaveDlg()) {\r
+                       *pYNC = pMainFrame->MessageBox(MSG_MEMO_EDITED, MSG_CONFIRM_SAVE, MB_ICONQUESTION | MB_YESNOCANCEL | MB_APPLMODAL);\r
+                       if (*pYNC == IDNO || *pYNC == IDCANCEL) return TRUE;\r
+               } else {\r
+                       *pYNC = IDOK;\r
+               }\r
+       }\r
+\r
+       ////////////////////////////////////////////\r
+\r
+       // get memo data\r
+       LPTSTR pText = pMemoDetailsView->GetMemo();\r
+       SecureBufferAutoPointerT ap(pText);\r
+       if (pText == NULL) return FALSE;\r
+\r
+       ////////////////////////////////////////////\r
+\r
+       if (bDupMode) {\r
+               if (!AllocNewMemo(pText, TRUE)) return FALSE;\r
+               // duplicate mode notes are treated as update because pCurrentURI has set.\r
+       } else {\r
+               // Create node if the note is new\r
+               if (pMemoDetailsView->GetCurrentURI() == NULL) {\r
+                       if (!AllocNewMemo(pText, FALSE)) return FALSE;\r
+                       // change status because the note is not new note at this point.\r
+                       pMainFrame->SetNewMemoStatus(FALSE);\r
+               }\r
+       }\r
+\r
+       ///////////////////////////////////////\r
+       // save notes and update treeview\r
+\r
+       TomboURI sCurrentURI(*(pMemoDetailsView->GetCurrentURI()));     // to preserve it because it changed by method Save.\r
+\r
+       TomboURI sNewURI;\r
+       TString sNewHeadLine;\r
+\r
+       // save note contents\r
+       if (!pMemoDetailsView->Save(&sCurrentURI, &sNewURI, &sNewHeadLine, pText)) return FALSE;\r
+\r
+       // UpdateHeadLine causes TVN_SELCHANGING and call SaveIfModify.\r
+       // So if not ResetModify is called, infinite calling causes GPF.\r
+       // update treeview headline string\r
+       pMemoSelectView->UpdateHeadLine(sCurrentURI.GetFullURI(), &sNewURI, sNewHeadLine.Get());\r
+\r
+       // update window title\r
+       pMainFrame->SetWindowTitle(&sNewURI);\r
+\r
+       return TRUE;\r
+}\r
+\r
+////////////////////////////////////////////////////////\r
+// allocate new memo\r
+////////////////////////////////////////////////////////\r
+\r
+BOOL MemoManager::AllocNewMemo(LPCTSTR pText, BOOL bCopy)\r
+{\r
+       const TomboURI *pTemplateURI = NULL;\r
+       if (bCopy) {\r
+               pTemplateURI = pMemoDetailsView->GetCurrentURI();\r
+       }\r
+\r
+       // get note path\r
+       TomboURI sAttachFolder;\r
+       TomboURI sSelected;\r
+\r
+       const TomboURI *pCurSelectedURI = pMemoSelectView->GetCurrentSelectedURI();\r
+       if (pCurSelectedURI == NULL) return FALSE;\r
+       sSelected = *pCurSelectedURI;\r
+\r
+       if (!sSelected.GetAttachFolder(&sAttachFolder)) return FALSE;\r
+\r
+       // allocate new instance and associate to tree view\r
+       TString sHeadLine;\r
+       TomboURI sNewURI;\r
+\r
+       // get URI\r
+       if (!g_Repository.RequestAllocateURI(&sAttachFolder, pText, &sHeadLine, &sNewURI, pTemplateURI)) return FALSE;\r
+\r
+       // Insert new node to select view\r
+       HTREEITEM hParent;\r
+       hParent = pMemoSelectView->ShowItemByURI(&sAttachFolder, FALSE);\r
+       if (hParent == NULL) return FALSE;\r
+       HTREEITEM hNewItem = pMemoSelectView->InsertFile(hParent, &sNewURI, sHeadLine.Get(), FALSE, FALSE);\r
+\r
+       pMemoDetailsView->SetCurrentNote(&sNewURI);\r
+\r
+       return TRUE;\r
+}\r
+\r
+////////////////////////////////////////////////////////\r
+// \r
+////////////////////////////////////////////////////////\r
+\r
+void MemoManager::InactiveDetailsView()\r
+{\r
+       pMainFrame->LeaveDetailsView(TRUE);\r
+}\r
+\r
+////////////////////////////////////////////////////////\r
+// \r
+////////////////////////////////////////////////////////\r
+\r
+void MemoManager::SetSearchEngine(SearchEngineA *p)\r
+{\r
+       if (pSearchEngineA) {\r
+               delete pSearchEngineA;\r
+       }\r
+       pSearchEngineA = p;\r
+}\r
+\r
+void MemoManager::ChangeURINotify(const TomboURI *pNewURI)\r
+{\r
+       pMemoDetailsView->SetCurrentNote(pNewURI);\r
+}\r
diff --git a/Src/MemoManager.h b/Src/MemoManager.h
new file mode 100644 (file)
index 0000000..6c7b0d1
--- /dev/null
@@ -0,0 +1,87 @@
+#ifndef MEMOMANAGER_H\r
+#define MEMOMANAGER_H\r
+\r
+class MemoDetailsView;\r
+class MemoSelectView;\r
+class MainFrame;\r
+class PasswordManager;\r
+class SearchEngineA;\r
+class TreeViewItem;\r
+class TString;\r
+class TomboURI;\r
+\r
+/////////////////////////////////////\r
+// Control other view\r
+/////////////////////////////////////\r
+// control select - detail view relation and mainframe items(menu, toolbar, etc.)\r
+\r
+class MemoManager {\r
+protected:\r
+       MemoDetailsView *pMemoDetailsView;\r
+       MemoSelectView *pMemoSelectView;\r
+       MainFrame *pMainFrame;\r
+\r
+       BOOL AllocNewMemo(LPCTSTR pText, BOOL bCopy);\r
+\r
+       SearchEngineA *pSearchEngineA;\r
+\r
+       BOOL bMSSearchFlg;\r
+       BOOL bMDSearchFlg;\r
+\r
+public:\r
+       /////////////////////////////////////\r
+       // ctor & dtor\r
+\r
+       MemoManager();\r
+       ~MemoManager();\r
+\r
+       BOOL Init(MainFrame *p, MemoDetailsView *md, MemoSelectView *ms);\r
+\r
+       /////////////////////////////////////\r
+\r
+       // \83\81\83\82\82ª\8dX\90V\82³\82ê\82Ä\82¢\82½\82ç\83Z\81[\83u\82·\82é\r
+       //      pYNC\82É\82ÍIDOK,IDYES,IDNO,IDCANCEL\82Ì\82¢\82¸\82ê\82©\82ª\93ü\82é\81B\r
+       //              \83Z\81[\83u\82Ì\95K\97v\82ª\82È\82©\82Á\82½\8fê\8d\87\82É\82ÍIDOK\82ª\90Ý\92è\82³\82ê\82é\81B\r
+       //              IDYES\82ª\90Ý\92è\82³\82ê\82Ä\82¢\82é\8fê\8d\87\82É\82Í\95Û\91\82ª\8eÀ\8ds\82³\82ê\82½\81B\r
+       //  pYNC\82ÉNULL\82ð\90Ý\92è\82µ\82½\8fê\8d\87\81A\96â\82¢\8d\87\82í\82¹\82Ì\83\81\83b\83Z\81[\83W\83{\83b\83N\83X\82Í\95\\8e¦\82³\82ê\82È\82¢\r
+       //              \82±\82Ì\8fê\8d\87\81AbDupMode\82ªTRUE\82Ì\8fê\8d\87\82É\82Í\83\81\83\82\82Í\8fí\82É\95Ê\83t\83@\83C\83\8b\82Æ\82µ\82Ä\95Û\91\82³\82ê\82é\81B\r
+       //                                bDupMode\82ªFALSE\82Ì\8fê\8d\87\82É\82Í\92Ê\8fí\93®\8dì\r
+       BOOL SaveIfModify(LPDWORD pYNC, BOOL bDupMode);\r
+\r
+       /////////////////////////////////////\r
+       // \8c\9f\8dõ\8aÖ\98A\r
+\r
+       void SetSearchEngine(SearchEngineA *p);\r
+       SearchEngineA *GetSearchEngine() { return pSearchEngineA; }\r
+\r
+       /////////////////////////////////////\r
+       // data accessor\r
+\r
+       MainFrame *GetMainFrame() { return pMainFrame; }\r
+       MemoSelectView *GetSelectView() { return pMemoSelectView; }\r
+       MemoDetailsView *GetDetailsView() { return pMemoDetailsView; }\r
+\r
+       /////////////////////////////////////\r
+       // searching\r
+\r
+       // \81u\8e\9f\82ð\8c\9f\8dõ\81v\82Å\8c»\8dÝ\91I\91ð\82³\82ê\82Ä\82¢\82é\8d\80\96Ú\82ð\8c\9f\8dõ\91Î\8fÛ\82É\8aÜ\82ß\82é\82©?\r
+       // \88ê\97\97\83r\83\85\81[\82Ì\8fê\8d\87\81A\83\86\81[\83U\82ª\91I\91ð\82ð\95Ï\8dX\82µ\82½\82ç\8aÜ\82ß\82é\r
+       BOOL MSSearchFlg() { return bMSSearchFlg; }\r
+       void SetMSSearchFlg(BOOL b) { bMSSearchFlg = b; }\r
+\r
+       BOOL MDSearchFlg() { return bMDSearchFlg; }\r
+       void SetMDSearchFlg(BOOL b) { bMDSearchFlg = b; }\r
+\r
+       /////////////////////////////////////\r
+       // \r
+       void ChangeURINotify(const TomboURI *pNewURI);\r
+\r
+       // \8fÚ\8d×\83r\83\85\81[\82É\95\\8e¦\82³\82ê\82Ä\82¢\82é\8fê\8d\87\82É\95K\97v\82È\82ç\95Û\91\82µ\81A\88ê\97\97\83r\83\85\81[\82É\83t\83H\81[\83J\83X\82ð\88Ú\82·\r
+       // TODO: \95Û\91\88Ë\97\8a\82É\92u\82«\8a·\82¦\82ç\82ê\82é\8bC\82ª\82·\82é\r
+       void InactiveDetailsView();\r
+\r
+       BOOL GetCurrentSelectedPath(TString *pPath);\r
+\r
+};\r
+\r
+#endif
\ No newline at end of file
diff --git a/Src/MemoNote.cpp b/Src/MemoNote.cpp
new file mode 100644 (file)
index 0000000..1c7dcda
--- /dev/null
@@ -0,0 +1,575 @@
+#include <windows.h>\r
+#include <commctrl.h>\r
+#include <tchar.h>\r
+#include "Tombo.h"\r
+#include "MemoNote.h"\r
+#include "File.h"\r
+#include "CryptManager.h"\r
+#include "UniConv.h"\r
+#include "PasswordManager.h"\r
+#include "MemoManager.h"\r
+#include "Property.h"\r
+#include "TString.h"\r
+#include "MemoInfo.h"\r
+#include "Message.h"\r
+#include "TomboURI.h"\r
+#include "AutoPtr.h"\r
+\r
+#include "Repository.h"\r
+\r
+#define DEFAULT_HEADLINE MSG_DEFAULT_HEADLINE\r
+\r
+/////////////////////////////////////////////\r
+//\r
+/////////////////////////////////////////////\r
+\r
+MemoNote::MemoNote() : pPath(NULL)\r
+{\r
+}\r
+\r
+MemoNote::~MemoNote()\r
+{\r
+       delete [] pPath;\r
+}\r
+\r
+BOOL MemoNote::Init(LPCTSTR p)\r
+{\r
+       if (pPath) delete [] pPath;\r
+       pPath = StringDup(p);\r
+       if (pPath == NULL) return FALSE;\r
+       return TRUE;\r
+}\r
+\r
+/////////////////////////////////////////////\r
+// get note's URI\r
+/////////////////////////////////////////////\r
+BOOL MemoNote::GetURI(LPCTSTR pRepoName, TomboURI *pURI) const\r
+{\r
+       return pURI->InitByNotePath(pRepoName, pPath);\r
+}\r
+\r
+/////////////////////////////////////////////\r
+// Get memo data from file and decrypt if nesessary\r
+/////////////////////////////////////////////\r
+\r
+LPTSTR MemoNote::GetMemoBody(LPCTSTR pTopDir, PasswordManager *pMgr) const\r
+{\r
+       DWORD nSize;\r
+       LPBYTE pData = GetMemoBodyNative(pTopDir, pMgr, &nSize);\r
+       if (!pData) return NULL;\r
+       SecureBufferAutoPointerByte ap(pData, nSize);\r
+       return ConvFileEncodingToTChar(pData);\r
+}\r
+\r
+LPBYTE PlainMemoNote::GetMemoBodyNative(LPCTSTR pTopDir, PasswordManager *pMgr, LPDWORD pSize) const\r
+{\r
+       TString sFileName;\r
+       if (!sFileName.Join(pTopDir, TEXT("\\"), pPath)) return NULL;\r
+\r
+       File inf;\r
+       if (!inf.Open(sFileName.Get(), GENERIC_READ, FILE_SHARE_READ, OPEN_EXISTING)) return NULL;\r
+\r
+       LPBYTE pData = new BYTE[inf.FileSize() + 2];\r
+       if (pData == NULL) return NULL;\r
+\r
+       DWORD nSize = inf.FileSize();\r
+       if (!inf.Read(pData, &nSize)) return NULL;\r
+       pData[nSize] = TEXT('\0');\r
+       pData[nSize + 1] = TEXT('\0');  // sentinel for the UTF16 encoding file\r
+\r
+       *pSize = nSize;\r
+       return pData;\r
+}\r
+\r
+LPBYTE CryptedMemoNote::GetMemoBodySub(LPCTSTR pTopDir, PasswordManager *pMgr, LPDWORD pSize) const\r
+{\r
+       BOOL bRegistedPassword = TRUE;\r
+\r
+       TString sFileName;\r
+       if (!sFileName.Join(pTopDir, TEXT("\\"), pPath)) return NULL;\r
+\r
+       LPBYTE pPlain;\r
+       for (DWORD i = 0; i < NUM_RETRY_INVALID_PASSWORD; i++) {\r
+               BOOL bCancel;\r
+               const char *pPassword = pMgr->Password(&bCancel, FALSE);\r
+               if (pPassword == NULL) {\r
+                       if (bCancel) SetLastError(ERROR_CANCELLED);\r
+                       pMgr->ForgetPassword();\r
+                       return NULL;\r
+               }\r
+               CryptManager cMgr;\r
+               if (!cMgr.Init(pPassword)) return NULL;\r
+\r
+               pPlain = cMgr.LoadAndDecrypt(pSize, sFileName.Get());\r
+               if (pPlain != NULL) {\r
+                       bRegistedPassword = TRUE;\r
+                       break;\r
+               } else {\r
+                       bRegistedPassword = FALSE;\r
+                       pMgr->ForgetPassword();\r
+               }\r
+       }\r
+       return pPlain;\r
+}\r
+\r
+LPBYTE CryptedMemoNote::GetMemoBodyNative(LPCTSTR pTopDir, PasswordManager *pMgr, LPDWORD pSize) const\r
+{\r
+       return GetMemoBodySub(pTopDir, pMgr, pSize);\r
+}\r
+\r
+/////////////////////////////////////////////\r
+// Save note data\r
+/////////////////////////////////////////////\r
+\r
+BOOL MemoNote::SaveDataT(PasswordManager *pMgr, LPCTSTR pMemo, LPCTSTR pWriteFile)\r
+{\r
+       LPBYTE pData;\r
+       DWORD nLen;\r
+\r
+       pData = ConvTCharToFileEncoding(pMemo, &nLen);\r
+       if (pData == NULL) return FALSE;\r
+       SecureBufferAutoPointerByte ap(pData, nLen);\r
+       return SaveData(pMgr, pData, nLen, pWriteFile);\r
+}\r
+\r
+BOOL PlainMemoNote::SaveData(PasswordManager *pMgr, const LPBYTE pData, DWORD nLen, LPCTSTR pWriteFile)\r
+{\r
+       File outf;\r
+       if (!outf.Open(pWriteFile, GENERIC_WRITE, 0, OPEN_ALWAYS)) return FALSE;\r
+       if (!outf.Write((LPBYTE)pData, nLen)) return FALSE;\r
+       if (!outf.SetEOF()) return FALSE;\r
+       outf.Close();\r
+       return TRUE;\r
+}\r
+\r
+BOOL CryptedMemoNote::SaveData(PasswordManager *pMgr, const LPBYTE pData, DWORD nLen, LPCTSTR pWriteFile)\r
+{\r
+       CryptManager cMgr;\r
+       BOOL bCancel;\r
+       const char *pPassword = pMgr->Password(&bCancel, TRUE);\r
+       if (pPassword == NULL) return FALSE;\r
+\r
+       if (!cMgr.Init(pPassword)) {\r
+               MessageBox(NULL, TEXT("In CryptedMemoNote::SaveData,CryptManager::Init failed"), TEXT("DEBUG"), MB_OK);\r
+               return FALSE;\r
+       }\r
+       return cMgr.EncryptAndStore(pData, nLen, pWriteFile);\r
+}\r
+\r
+/////////////////////////////////////////////\r
+// \95\9c\8d\86\89»\r
+/////////////////////////////////////////////\r
+\r
+MemoNote *MemoNote::Decrypt(LPCTSTR pTopDir, PasswordManager *pMgr, TString *pHeadLine, BOOL *pIsModified) const\r
+{\r
+       return NULL;\r
+}\r
+\r
+MemoNote *CryptedMemoNote::Decrypt(LPCTSTR pTopDir, PasswordManager *pMgr, TString *pHeadLine, BOOL *pIsModified) const\r
+{\r
+       // \83\81\83\82\96{\95\8eæ\93¾\r
+       LPTSTR pText = GetMemoBody(pTopDir, pMgr);\r
+       if (pText == NULL) return FALSE;\r
+       SecureBufferAutoPointerT ap(pText);\r
+\r
+       // \83w\83b\83h\83\89\83C\83\93\8eæ\93¾\r
+       TString sMemoDir;\r
+       if (!sMemoDir.GetDirectoryPath(pPath)) return FALSE;\r
+\r
+       TString sFullPath;\r
+       LPCTSTR pNotePath;\r
+       TString sHeadLine;\r
+       if (g_Property.GetKeepTitle()) {\r
+               if (!GetHeadLineFromFilePath(pPath, &sHeadLine)) return FALSE;\r
+       } else {\r
+               if (!GetHeadLineFromMemoText(pText, &sHeadLine)) return FALSE;\r
+       }\r
+\r
+       if (!GetHeadLinePath(pTopDir, sMemoDir.Get(), sHeadLine.Get(), TEXT(".txt"), \r
+                                                       &sFullPath, &pNotePath, pHeadLine)) {\r
+               return FALSE;\r
+       }\r
+\r
+       // \90V\82µ\82¢MemoNote\83C\83\93\83X\83^\83\93\83X\82ð\90\90¬\r
+       PlainMemoNote *p = new PlainMemoNote();\r
+       if (!p->Init(pNotePath)) {\r
+               WipeOutAndDeleteFile(sFullPath.Get());\r
+               return NULL;\r
+       }\r
+\r
+       // \83\81\83\82\95Û\91\r
+       if (!p->SaveDataT(pMgr, pText, sFullPath.Get())) {\r
+               delete p;\r
+               return NULL;\r
+       }\r
+       return p;\r
+}\r
+\r
+/////////////////////////////////////////////\r
+// \83f\81[\83^\82Ì\8dí\8f\9c\r
+/////////////////////////////////////////////\r
+\r
+BOOL MemoNote::DeleteMemoData(LPCTSTR pTopDir) const \r
+{\r
+       TString sFileName;\r
+       if (!sFileName.Join(pTopDir, TEXT("\\"), pPath)) return FALSE;\r
+\r
+       // \95t\89Á\8fî\95ñ\82ð\95Û\8e\9d\82µ\82Ä\82¢\82½\8fê\8d\87\82É\82Í\82»\82Ì\8fî\95ñ\82à\8dí\8f\9c\r
+       if (MemoPath()) {\r
+               MemoInfo mi(pTopDir);\r
+               mi.DeleteInfo(MemoPath());\r
+       }\r
+\r
+       return WipeOutAndDeleteFile(sFileName.Get());\r
+}\r
+\r
+/////////////////////////////////////////////\r
+// \83C\83\93\83X\83^\83\93\83X\82Ì\90\90¬\r
+/////////////////////////////////////////////\r
+\r
+MemoNote *PlainMemoNote::GetNewInstance() const \r
+{\r
+       return new PlainMemoNote();\r
+}\r
+\r
+MemoNote *CryptedMemoNote::GetNewInstance() const\r
+{\r
+       return new CryptedMemoNote();\r
+}\r
+\r
+/////////////////////////////////////////////\r
+// \8ag\92£\8eq\82Ì\8eæ\93¾\r
+/////////////////////////////////////////////\r
+\r
+LPCTSTR PlainMemoNote::GetExtension()\r
+{\r
+       return TEXT(".txt");\r
+}\r
+\r
+LPCTSTR CryptedMemoNote::GetExtension()\r
+{\r
+       return TEXT(".chi");\r
+}\r
+\r
+/////////////////////////////////////////////\r
+// \83w\83b\83h\83\89\83C\83\93\82Ì\8eæ\93¾\r
+/////////////////////////////////////////////\r
+// \83\81\83\82\96{\95\82©\82ç\83w\83b\83h\83\89\83C\83\93\82Æ\82È\82é\95\8e\9a\97ñ\82ð\8eæ\93¾\82·\82é\81B\r
+//\r
+// \83w\83b\83h\83\89\83C\83\93\82Í\r
+// \81E\83\81\83\82\82Ì1\8ds\96Ú\82Å\82 \82é\r
+// \81E1\8ds\96Ú\82ª\88ê\92è\88È\8fã\82Ì\92·\82³\82Ì\8fê\8d\87\81A\82»\82Ì\90æ\93ª\95\94\95ª\r
+// \82Æ\82·\82é\81B\r
+\r
+BOOL MemoNote::GetHeadLineFromMemoText(LPCTSTR pMemo, TString *pHeadLine)\r
+{\r
+       // \83w\83b\83h\83\89\83C\83\93\92·\82Ì\83J\83E\83\93\83g\r
+       LPCTSTR p = pMemo;\r
+       DWORD n = 0;\r
+       while(*p) {\r
+               if ((*p == TEXT('\r')) || (*p == TEXT('\n'))) break;\r
+#ifndef _WIN32_WCE\r
+               if (IsDBCSLeadByte(*p)) {\r
+                       p += 2;\r
+                       n += 2;\r
+                       continue;\r
+               }\r
+#endif\r
+               n++;\r
+               p++;\r
+       }\r
+\r
+       TString sHeadLineCand;\r
+       if (!sHeadLineCand.Alloc(n + 1)) return FALSE;\r
+       _tcsncpy(sHeadLineCand.Get(), pMemo, n);\r
+       *(sHeadLineCand.Get() + n) = TEXT('\0');\r
+\r
+       // \97Ì\88æ\8am\95Û\81E\83R\83s\81[\r
+       if (!pHeadLine->Alloc(n + 1)) return FALSE;\r
+       DropInvalidFileChar(pHeadLine->Get(), sHeadLineCand.Get());\r
+       TrimRight(pHeadLine->Get());\r
+\r
+       if (_tcslen(pHeadLine->Get()) == 0) {\r
+               if (!pHeadLine->Set(DEFAULT_HEADLINE)) return FALSE;\r
+       }\r
+\r
+       return TRUE;\r
+}\r
+\r
+/////////////////////////////////////////////\r
+// \83t\83@\83C\83\8b\82Ì\91\8dÝ\83`\83F\83b\83N\r
+/////////////////////////////////////////////\r
+\r
+static BOOL IsFileExist(LPCTSTR pFileName)\r
+{\r
+       HANDLE hFile = CreateFile(pFileName, GENERIC_READ, FILE_SHARE_WRITE, NULL,\r
+               OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL, NULL);\r
+       if (hFile == INVALID_HANDLE_VALUE) {\r
+               return FALSE;\r
+       } else {\r
+               CloseHandle(hFile);\r
+               return TRUE;\r
+       }\r
+}\r
+\r
+// \97^\82¦\82ç\82ê\82½\95\8e\9a\97ñ\82©\82ç\83t\83@\83C\83\8b\96¼\82ð\90\90¬\82·\82é\r
+\r
+// IN: pMemoPath       : \83\81\83\82\82Ì\83p\83X(TOPDIR\82©\82ç\82Ì\91\8a\91Î\83p\83X,\83t\83@\83C\83\8b\96¼\82Í\8aÜ\82Ü\82¸)\r
+//             pHeadLine       : \83w\83b\83h\83\89\83C\83\93\95\8e\9a\97ñ\r
+//             pExt            : \95t\97^\82·\82é\8ag\92£\8eq\r
+// OUT:        pFullPath       : \83\81\83\82\82Ì\83t\83\8b\83p\83X\r
+//             ppNotePath      : \83\81\83\82\82Ì\83p\83X(TOPDIR\82©\82ç\82Ì\91\8a\91Î\83p\83X,\83t\83@\83C\83\8b\96¼\82ð\8aÜ\82Ý\81A\r
+//                                       \95K\97v\82È\82ç"(n)"\82Å\83f\83B\83\8c\83N\83g\83\8a\82Å\88ê\88Ó\82Æ\82È\82é\82æ\82¤\82É\92²\90®\82³\82ê\82Ä\82¢\82é\r
+//             pNewHeadLine: \88ê\97\97\95\\8e¦\97p\90V\83w\83b\83h\83\89\83C\83\93(\95K\97v\82É\89\9e\82\82Ä"(n)"\82ª\95t\97^\82³\82ê\82Ä\82¢\82é)\r
+\r
+BOOL MemoNote::GetHeadLinePath(LPCTSTR pTopDir, LPCTSTR pMemoPath, LPCTSTR pHeadLine, LPCTSTR pExt, \r
+                                                       TString *pFullPath, LPCTSTR *ppNotePath, TString *pNewHeadLine)\r
+{\r
+       DWORD n = _tcslen(pHeadLine);\r
+       if (n < _tcslen(DEFAULT_HEADLINE)) n = _tcslen(DEFAULT_HEADLINE);\r
+\r
+       DWORD nHeadLineLen = n + 20;\r
+       DWORD nFullPathLen = _tcslen(pTopDir) + 1 + \r
+                                                _tcslen(pMemoPath) + nHeadLineLen + _tcslen(pExt);\r
+       if (!pNewHeadLine->Alloc(nHeadLineLen + 1)) return FALSE;\r
+       if (!pFullPath->Alloc(nFullPathLen + 1)) return FALSE;\r
+\r
+       DropInvalidFileChar(pNewHeadLine->Get(), pHeadLine);\r
+       if (_tcslen(pNewHeadLine->Get()) == 0) _tcscpy(pNewHeadLine->Get(), DEFAULT_HEADLINE);\r
+       wsprintf(pFullPath->Get(), TEXT("%s\\%s%s"), pTopDir, pMemoPath, pNewHeadLine->Get());\r
+\r
+       LPTSTR p = pFullPath->Get();\r
+       LPTSTR q = p + _tcslen(p);\r
+       LPTSTR r = pNewHeadLine->Get() + _tcslen(pNewHeadLine->Get());\r
+\r
+       *ppNotePath = pFullPath->Get() + _tcslen(pTopDir) + 1;\r
+\r
+       // \83t\83@\83C\83\8b\96¼\82Ì\8am\92è\r
+       // \93¯\96¼\82Ì\83t\83@\83C\83\8b\82ª\91\8dÝ\82µ\82½\8fê\8d\87\82É\82Í"(n)"\82ð\95t\89Á\82·\82é\r
+       _tcscpy(q, pExt);\r
+       if (!IsFileExist(p)) return TRUE;\r
+\r
+       DWORD i = 1;\r
+       do {\r
+               wsprintf(q, TEXT("(%d)%s"), i, pExt);\r
+               wsprintf(r, TEXT("(%d)"), i);\r
+               i++;\r
+       } while(IsFileExist(p));\r
+       return TRUE;\r
+}\r
+\r
+////////////////////////////////////////////////////////\r
+// \83t\83@\83C\83\8b\83p\83X\82©\82ç\83w\83b\83h\83\89\83C\83\93\82ð\8eæ\93¾\r
+////////////////////////////////////////////////////////\r
+// \96{\95\82Í\8eQ\8fÆ\82µ\82È\82¢\82½\82ß\81A\8eÀ\8dÛ\82Ì\83w\83b\83h\83\89\83C\83\93\95\8e\9a\97ñ\82Æ\95K\82¸\82µ\82à\88ê\92v\82µ\82È\82¢\82±\82Æ\82É\92\8d\88Ó\81B\r
+\r
+BOOL MemoNote::GetHeadLineFromFilePath(LPCTSTR pFilePath, TString *pHeadLine)\r
+{\r
+       LPCTSTR p = pFilePath;\r
+       LPCTSTR q = NULL;\r
+#ifdef _WIN32_WCE\r
+       while (*p) {\r
+               if (*p == TEXT('\\')) q = p;\r
+               p++;\r
+       }\r
+#else\r
+       while (*p) {\r
+               if (*p == TEXT('\\')) q = p;\r
+               if (IsDBCSLeadByte(*p)) {\r
+                       p++;\r
+               }\r
+               p++;\r
+       }\r
+#endif\r
+       if (q == NULL) {\r
+               if (!pHeadLine->Set(pFilePath)) return FALSE;\r
+       } else {\r
+               if (!pHeadLine->Set(q + 1)) return FALSE;\r
+       }\r
+\r
+       pHeadLine->ChopExtension();\r
+       pHeadLine->ChopFileNumber();\r
+       return TRUE;\r
+}\r
+\r
+////////////////////////////////////////////////////////\r
+// \83\81\83\82\83t\83@\83C\83\8b\82ð\83R\83s\81[\82µ\82Ä\83C\83\93\83X\83^\83\93\83X\82ð\90\90¬\r
+////////////////////////////////////////////////////////\r
+\r
+MemoNote *MemoNote::CopyMemo(LPCTSTR pTopDir, const MemoNote *pOrig, LPCTSTR pMemoPath, TString *pHeadLine)\r
+{\r
+       MemoNote *pNote;\r
+       pNote = pOrig->GetNewInstance();\r
+       if (pNote == NULL) {\r
+               SetLastError(ERROR_NOT_ENOUGH_MEMORY);\r
+               return NULL;\r
+       }\r
+\r
+       TString sNewFullPath;\r
+       LPCTSTR pNotePath;\r
+       TString sHeadLine;\r
+\r
+       if (!GetHeadLineFromFilePath(pOrig->MemoPath(), &sHeadLine)) {\r
+               delete pNote;\r
+               return NULL;\r
+       }\r
+       if (!GetHeadLinePath(pTopDir, pMemoPath, sHeadLine.Get(), pNote->GetExtension(), &sNewFullPath, &pNotePath, pHeadLine)) {\r
+               delete pNote;\r
+               return NULL;\r
+       }\r
+\r
+       TString sOrigPath;\r
+       if (!sOrigPath.Join(pTopDir, TEXT("\\"), pOrig->MemoPath())) {\r
+               delete pNote;\r
+               return NULL;\r
+       }\r
+\r
+       if (!CopyFile(sOrigPath.Get(), sNewFullPath.Get(), TRUE) || !pNote->Init(pNotePath)) {\r
+               delete pNote;\r
+               return NULL;\r
+       }\r
+       // the result of copying tdt is not checked.\r
+       TString sOrigTDT, sNewTDT;\r
+       if (sOrigTDT.Join(sOrigPath.Get(), TEXT(".tdt")) && \r
+               sNewTDT.Join(sNewFullPath.Get(), TEXT(".tdt"))) {\r
+               CopyFile(sOrigTDT.Get(), sNewTDT.Get(), TRUE);\r
+       }\r
+       return pNote;\r
+}\r
+\r
+/////////////////////////////////////////////\r
+// \83t\83@\83C\83\8b\96¼\95Ï\8dX\r
+/////////////////////////////////////////////\r
+\r
+BOOL MemoNote::Rename(LPCTSTR pTopDir, LPCTSTR pNewName)\r
+{\r
+       TString sPath;\r
+       if (!sPath.GetDirectoryPath(pPath)) return FALSE;\r
+\r
+       if (_tcslen(pNewName) == 0) {\r
+               SetLastError(ERROR_NO_DATA);\r
+               return FALSE;\r
+       }\r
+\r
+       // \90V\82µ\82¢pPath\82Ì\97Ì\88æ\8am\95Û\r
+       DWORD nBaseLen = _tcslen(sPath.Get());\r
+       LPTSTR pNewPath = new TCHAR[nBaseLen + _tcslen(pNewName) + _tcslen(GetExtension()) + 6 + 1];\r
+       if (pNewPath == NULL) return FALSE;\r
+\r
+       // \90VpPath\90\90¬\r
+       _tcscpy(pNewPath, sPath.Get());\r
+       DropInvalidFileChar(pNewPath + nBaseLen, pNewName);\r
+       _tcscat(pNewPath + nBaseLen, GetExtension());\r
+\r
+       // \83t\83@\83C\83\8b\96¼\83\8a\83l\81[\83\80\97p\83p\83X\90\90¬\r
+       TString sOldFullPath;\r
+       TString sNewFullPath;\r
+       if (!sOldFullPath.Join(pTopDir, TEXT("\\"), pPath) ||\r
+               !sNewFullPath.Join(pTopDir, TEXT("\\"), pNewPath)) {\r
+               delete [] pNewPath;\r
+               return FALSE;\r
+       }\r
+\r
+       // \83t\83@\83C\83\8b\96¼\83\8a\83l\81[\83\80\8eÀ\8ds\r
+       if (!MoveFile(sOldFullPath.Get(), sNewFullPath.Get())) {\r
+               delete [] pNewPath;\r
+               return FALSE;\r
+       }\r
+\r
+       // *.tdt\82Ì\83\8a\83l\81[\83\80\82Ì\8eÀ\8ds\r
+       MemoInfo mi(pTopDir);\r
+       mi.RenameInfo(sOldFullPath.Get(), sNewFullPath.Get());\r
+\r
+       delete [] pPath;\r
+       pPath = pNewPath;\r
+\r
+       return TRUE;\r
+}\r
+\r
+/////////////////////////////////////////////\r
+// Check is this file memo?\r
+/////////////////////////////////////////////\r
+\r
+DWORD MemoNote::IsNote(LPCTSTR pFile)\r
+{\r
+       DWORD len = _tcslen(pFile);\r
+       if (len <= 4) return NOTE_TYPE_NO;\r
+\r
+       LPCTSTR p = pFile + len - 4;\r
+\r
+       DWORD nType;\r
+       if (_tcsicmp(p, TEXT(".txt")) == 0) {\r
+               nType = NOTE_TYPE_PLAIN;\r
+       } else if (_tcsicmp(p, TEXT(".chi")) == 0) {\r
+               nType = NOTE_TYPE_CRYPTED;\r
+       } else if (_tcsicmp(p, TEXT(".chs")) == 0) {\r
+               nType = NOTE_TYPE_CRYPTED;\r
+       } else if (_tcsicmp(p, TEXT(".tdt")) == 0) {\r
+               nType = NOTE_TYPE_TDT;\r
+       } else {\r
+               nType = NOTE_TYPE_NO;\r
+       }\r
+       return nType;\r
+}\r
+\r
+/////////////////////////////////////////////\r
+// set the note path\r
+/////////////////////////////////////////////\r
+\r
+BOOL MemoNote::SetMemoPath(LPCTSTR p)\r
+{\r
+       LPTSTR pNewPath = StringDup(p);\r
+       if (pNewPath == NULL) return FALSE;\r
+       delete [] pPath;\r
+       pPath = pNewPath;\r
+       return TRUE;\r
+}\r
+\r
+/////////////////////////////////////////////\r
+// MemoNote object factory\r
+/////////////////////////////////////////////\r
+\r
+BOOL MemoNote::MemoNoteFactory(LPCTSTR pFile, MemoNote **ppNote)\r
+{\r
+       *ppNote = NULL;\r
+\r
+       DWORD nType = IsNote(pFile);\r
+       if (nType == NOTE_TYPE_NO || nType == NOTE_TYPE_TDT) return TRUE;\r
+       if (nType == NOTE_TYPE_PLAIN) {\r
+               *ppNote = new PlainMemoNote();\r
+       } else {\r
+               *ppNote = new CryptedMemoNote();\r
+       }\r
+\r
+       if (*ppNote == NULL) {\r
+               SetLastError(ERROR_NOT_ENOUGH_MEMORY);\r
+               return FALSE;\r
+       }\r
+\r
+       if (!(*ppNote)->Init(pFile)) {\r
+               delete (*ppNote);\r
+               *ppNote = NULL;\r
+               return FALSE;\r
+       }\r
+       return TRUE;\r
+}\r
+\r
+MemoNote *MemoNote::MemoNoteFactory(const TomboURI *pURI)\r
+{\r
+       LPCTSTR pURIPath = pURI->GetPath() + 1;\r
+       LPTSTR pBuf = StringDup(pURIPath);\r
+       if (pBuf == NULL) return NULL;\r
+\r
+       // replace '/' to '\'\r
+       LPTSTR p = pBuf;\r
+       while(p) {\r
+               p = _tcschr(p, TEXT('/'));\r
+               if (p) {\r
+                       *p = TEXT('\\');\r
+               }\r
+       }\r
+       MemoNote *pNote = NULL;\r
+       MemoNote::MemoNoteFactory(pBuf, &pNote);\r
+       delete [] pBuf;\r
+       return pNote;\r
+}\r
diff --git a/Src/MemoNote.h b/Src/MemoNote.h
new file mode 100644 (file)
index 0000000..c19f35e
--- /dev/null
@@ -0,0 +1,131 @@
+#ifndef MEMONOTE_H\r
+#define MEMONOTE_H\r
+\r
+class PasswordManager;\r
+class TString;\r
+class TomboURI;\r
+class Repository;\r
+\r
+////////////////////////////////////////\r
+// Note type definition\r
+////////////////////////////////////////\r
+\r
+#define NOTE_TYPE_NO      0\r
+#define NOTE_TYPE_PLAIN   1\r
+#define NOTE_TYPE_CRYPTED 2\r
+#define NOTE_TYPE_TDT     3\r
+\r
+////////////////////////////////////////\r
+// represents notes\r
+////////////////////////////////////////\r
+\r
+class MemoNote {\r
+private:\r
+       virtual BOOL SaveData(PasswordManager *pMgr, const LPBYTE pData, DWORD nLen, LPCTSTR pWriteFile) = 0;\r
+       static BOOL MemoNoteFactory(LPCTSTR pFile, MemoNote **ppNote);\r
+protected:\r
+       LPTSTR pPath;\r
+public:\r
+       ///////////////////////////////////////////\r
+       // initialize\r
+\r
+       MemoNote();\r
+       virtual ~MemoNote();\r
+\r
+       BOOL Init(LPCTSTR p);\r
+\r
+       ///////////////////////////////////////////\r
+\r
+       virtual MemoNote *GetNewInstance() const = 0;\r
+       virtual LPCTSTR GetExtension() = 0;\r
+\r
+       //////////////////////////////////\r
+       // memo data operation members\r
+\r
+       // get memo data\r
+       virtual LPBYTE GetMemoBodyNative(LPCTSTR pTopDir, PasswordManager *pMgr, LPDWORD pSize) const = 0;\r
+       LPTSTR GetMemoBody(LPCTSTR pTopDir, PasswordManager *pMgr) const;\r
+\r
+       // save memo\r
+       BOOL SaveDataT(PasswordManager *pMgr, LPCTSTR pMemo, LPCTSTR pWriteFile);\r
+\r
+       //////////////////////////////////\r
+       // Encryption/Decryption : \r
+       //     returns MemoNote instance after encryption/decryption.\r
+       //     set buffer to pHeadLine\r
+       //     if headline string is changed, *pIsModified is set to TURE and\r
+       //     new headline string is set to buffer.\r
+\r
+       virtual MemoNote *Decrypt(LPCTSTR pTopDir, PasswordManager *pMgr, TString *pHeadLine, BOOL *pIsModified) const;\r
+\r
+       //////////////////////////////////\r
+       // File operation\r
+\r
+       virtual BOOL DeleteMemoData(LPCTSTR pTopDir) const ;\r
+       BOOL Rename(LPCTSTR pTopDir, LPCTSTR pNewName);\r
+       static MemoNote *CopyMemo(LPCTSTR pTopDir, const MemoNote *pOrig, LPCTSTR pMemoPath, TString *pHeadLine);\r
+\r
+       //////////////////////////////////\r
+       // path related functions\r
+\r
+       LPCTSTR MemoPath() const { return pPath; }\r
+       BOOL SetMemoPath(LPCTSTR p);\r
+       BOOL GetURI(LPCTSTR pRepoName, TomboURI *pURI) const;\r
+\r
+       //////////////////////////////////\r
+       // notes attributes\r
+\r
+       static DWORD IsNote(LPCTSTR pFile);\r
+\r
+       //////////////////////////////////\r
+       // Factory method for MemoNote.\r
+       // create and initialize MemoNote and return by ppNote.\r
+       //\r
+       // if creation failed, return FALSE.\r
+       // if pFile is not memo, return TRUE and *ppNote sets to NULL.\r
+       static MemoNote *MemoNoteFactory(const TomboURI *pURI);\r
+\r
+       //////////////////////////////////\r
+       // Headline related funcs\r
+\r
+       static BOOL GetHeadLinePath(LPCTSTR pTopDir, LPCTSTR pMemoPath, LPCTSTR pHeadLine, LPCTSTR pExt, \r
+                                                               TString *pFullPath, LPCTSTR *ppNotePath, TString *pNewHeadLine);\r
+       static BOOL GetHeadLineFromMemoText(LPCTSTR pMemo, TString *pHeadLine);\r
+       static BOOL GetHeadLineFromFilePath(LPCTSTR pFilePath, TString *pHeadLine);\r
+\r
+};\r
+\r
+////////////////////////////////////////\r
+// Plain notes\r
+////////////////////////////////////////\r
+\r
+class PlainMemoNote : public MemoNote {\r
+       BOOL SaveData(PasswordManager *pMgr, const LPBYTE pData, DWORD nLen, LPCTSTR pWriteFile);\r
+\r
+public:\r
+       MemoNote *GetNewInstance() const ;\r
+       LPCTSTR GetExtension();\r
+\r
+       LPBYTE GetMemoBodyNative(LPCTSTR pTopDir, PasswordManager *pMgr, LPDWORD pSize) const;\r
+\r
+};\r
+\r
+////////////////////////////////////////\r
+// Encrypted notes\r
+////////////////////////////////////////\r
+\r
+class CryptedMemoNote : public MemoNote {\r
+       BOOL SaveData(PasswordManager *pMgr, const LPBYTE pData, DWORD nLen, LPCTSTR pWriteFile);\r
+\r
+protected:\r
+       LPBYTE GetMemoBodySub(LPCTSTR pTopDir, PasswordManager *pMgr, LPDWORD pSize) const;\r
+public:\r
+       MemoNote *GetNewInstance() const ;\r
+       LPCTSTR GetExtension();\r
+\r
+       LPBYTE GetMemoBodyNative(LPCTSTR pTopDir, PasswordManager *pMgr, LPDWORD pSize) const;\r
+\r
+       MemoNote *Decrypt(LPCTSTR pTopDir, PasswordManager *pMgr, TString *pHeadLine, BOOL *pIsModified) const;\r
+};\r
+\r
+#endif
\ No newline at end of file
diff --git a/Src/MemoSelectView.cpp b/Src/MemoSelectView.cpp
new file mode 100644 (file)
index 0000000..773695c
--- /dev/null
@@ -0,0 +1,1487 @@
+#include <windows.h>\r
+#include <commctrl.h>\r
+#include <tchar.h>\r
+#if defined(PLATFORM_PKTPC) || defined(PLATFORM_WM5)\r
+#include <aygshell.h>\r
+#endif\r
+\r
+#include "Tombo.h"\r
+#include "TString.h"\r
+#include "TomboURI.h"\r
+#include "MemoSelectView.h"\r
+#include "resource.h"\r
+\r
+#include "UniConv.h"\r
+#include "MemoManager.h"\r
+#include "VarBuffer.h"\r
+#include "MainFrame.h"\r
+#include "Property.h"\r
+#include "TreeViewItem.h"\r
+#include "Message.h"\r
+\r
+#include "NewFolderDialog.h"\r
+\r
+#include "AutoPtr.h"\r
+#include "Repository.h"\r
+\r
+/////////////////////////////////////////\r
+//  defs\r
+/////////////////////////////////////////\r
+\r
+// Size of each image in IDB_MEMOSELECT_IMAGES\r
+#if defined(FOR_VGA)\r
+#define IMAGE_CX 24\r
+#define IMAGE_CY 24\r
+#else\r
+#define IMAGE_CX 16\r
+#define IMAGE_CY 16\r
+#endif\r
+\r
+// Number of items in IDB_MEMOSELECT_IMAGES\r
+#define NUM_MEMOSELECT_BITMAPS 10\r
+\r
+/////////////////////////////////////////\r
+//  root info\r
+/////////////////////////////////////////\r
+\r
+struct MSViewRootInfo {\r
+       TomboURI uri;\r
+       HTREEITEM hItem;\r
+       DWORD nType;\r
+};\r
+\r
+/////////////////////////////////////////\r
+//  static functions\r
+/////////////////////////////////////////\r
+\r
+static void InsertDummyNode(HWND hTree, HTREEITEM hItem);\r
+static HTREEITEM FindItem2(HWND hWnd, HTREEITEM hParent, LPCTSTR pHeadLine, DWORD nLen);\r
+void SelectViewSetWndProc(SUPER_WND_PROC wp, HWND hParent, HINSTANCE h, MemoSelectView *p);\r
+LRESULT CALLBACK NewSelectViewProc( HWND hwnd, UINT msg, WPARAM wParam, LPARAM lParam );\r
+static HIMAGELIST CreateSelectViewImageList(HINSTANCE hInst);\r
+\r
+/////////////////////////////////////////\r
+// init\r
+/////////////////////////////////////////\r
+\r
+MemoSelectView::~MemoSelectView()\r
+{\r
+       delete [] pRoots;\r
+}\r
+\r
+BOOL MemoSelectView::Create(LPCTSTR pName, RECT &r, HWND hParent, DWORD nID, HINSTANCE hInst, HFONT hFont)\r
+{\r
+       hSelectViewImgList = CreateSelectViewImageList(hInst);\r
+\r
+       DWORD nWndStyle;\r
+       nWndStyle = WS_CHILD | WS_VSCROLL | WS_HSCROLL | TVS_HASLINES | TVS_HASBUTTONS | TVS_SHOWSELALWAYS;\r
+#if !defined(PLATFORM_WM5)\r
+       nWndStyle |= TVS_EDITLABELS;\r
+#endif\r
+\r
+#if defined(PLATFORM_WIN32) || defined(PLATFORM_HPC)\r
+       hViewWnd = CreateWindowEx(WS_EX_CLIENTEDGE, WC_TREEVIEW, pName, nWndStyle,\r
+                                                               r.left, r.top, r.right, r.bottom,\r
+                                                               hParent, (HMENU)nID, hInst, this);\r
+#else\r
+       hViewWnd = CreateWindow(WC_TREEVIEW, pName, nWndStyle | WS_BORDER,\r
+                                                       r.left, r.top, r.right, r.bottom, \r
+                                                       hParent, (HMENU)nID, hInst, this);\r
+#endif\r
+       if (hViewWnd == NULL) return FALSE;\r
+\r
+       SUPER_WND_PROC wp = (SUPER_WND_PROC)GetWindowLong(hViewWnd, GWL_WNDPROC);\r
+       SelectViewSetWndProc(wp, hParent, g_hInstance, this);\r
+       SetWindowLong(hViewWnd, GWL_WNDPROC, (LONG)NewSelectViewProc);\r
+\r
+       TreeView_SetImageList(hViewWnd, hSelectViewImgList, TVSIL_NORMAL);\r
+\r
+       if (hFont != NULL) {\r
+               SendMessage(hViewWnd, WM_SETFONT, (WPARAM)hFont, MAKELPARAM(TRUE, 0));\r
+       }\r
+       return TRUE;\r
+}\r
+\r
+/////////////////////////////////////////\r
+// Insert node\r
+/////////////////////////////////////////\r
+// Insert node with sorting.\r
+\r
+static HTREEITEM InsertNode(HWND hTree, TV_INSERTSTRUCT *ti)\r
+{\r
+       LPCTSTR pInsertStr = ti->item.pszText;\r
+       DWORD n = _tcslen(pInsertStr);\r
+       TString compBuf;\r
+\r
+       TreeViewItem *pInsItem = (TreeViewItem*)ti->item.lParam;\r
+       DWORD nInsOrder = pInsItem->ItemOrder();\r
+\r
+       TreeViewItem *pCompareItem;\r
+       DWORD nCompOrder;\r
+\r
+       if (!compBuf.Alloc(n + 1)) {\r
+               return NULL;\r
+       }\r
+\r
+       if (ti->hParent != TVI_ROOT) {\r
+               HTREEITEM h;\r
+               HTREEITEM hIns;\r
+\r
+               TV_ITEM t;\r
+               t.mask = TVIF_TEXT | TVIF_PARAM;\r
+               t.cchTextMax = n;\r
+               t.pszText = compBuf.Get();\r
+\r
+               hIns = TVI_FIRST;\r
+\r
+               h = TreeView_GetChild(hTree, ti->hParent);\r
+               while(h) {\r
+                       t.hItem = h;\r
+                       TreeView_GetItem(hTree, &t);\r
+                       pCompareItem = (TreeViewItem*)t.lParam;\r
+\r
+                       nCompOrder = 0;\r
+                       if (pCompareItem) {\r
+                               nCompOrder = pCompareItem->ItemOrder();\r
+                       } else {\r
+                               nCompOrder = -1;\r
+                       }\r
+\r
+                       if (nInsOrder < nCompOrder) break;\r
+                       if (nInsOrder == nCompOrder && _tcsicmp(t.pszText, pInsertStr) > 0) break;\r
+\r
+                       hIns = h;\r
+                       h = TreeView_GetNextSibling(hTree, h);\r
+               }\r
+               ti->hInsertAfter = hIns;\r
+       } else {\r
+               ti->hInsertAfter = TVI_LAST;\r
+       }\r
+       HTREEITEM hInserted = TreeView_InsertItem(hTree, ti);\r
+       return hInserted;\r
+}\r
+\r
+/////////////////////////////////////////\r
+// Insert file node\r
+/////////////////////////////////////////\r
+\r
+HTREEITEM MemoSelectView::InsertFile(HTREEITEM hParent, const TomboURI *pURI, \r
+                                                               LPCTSTR pTitle, BOOL bInsertToLast, BOOL bLink)\r
+{\r
+       URIOption opt(NOTE_OPTIONMASK_ICON);\r
+       if (!g_Repository.GetOption(pURI, &opt)) return NULL;\r
+\r
+       TV_INSERTSTRUCT ti;\r
+       ti.hParent = hParent;\r
+       ti.hInsertAfter = TVI_LAST;\r
+       ti.item.mask = TVIF_TEXT | TVIF_IMAGE | TVIF_SELECTEDIMAGE | TVIF_PARAM;\r
+       ti.item.iImage = ti.item.iSelectedImage = opt.iIcon;\r
+\r
+       TreeViewFileItem *tvi;\r
+       if (bLink) {\r
+               tvi = new TreeViewFileLink();\r
+       } else {\r
+               tvi = new TreeViewFileItem();\r
+       }\r
+\r
+       if (!tvi) return NULL;\r
+\r
+       tvi->SetURI(pURI);\r
+       ti.item.lParam = (LPARAM)tvi;\r
+\r
+       ti.item.pszText = (LPTSTR)pTitle;\r
+       HTREEITEM hItem;\r
+       if (bInsertToLast) {\r
+               hItem = TreeView_InsertItem(hViewWnd, &ti);\r
+       } else {\r
+               hItem = InsertNode(hViewWnd, &ti);\r
+       }\r
+       tvi->SetViewItem(hItem);\r
+       return hItem;\r
+}\r
+\r
+/////////////////////////////////////////\r
+// Insert folder\r
+/////////////////////////////////////////\r
+\r
+HTREEITEM MemoSelectView::InsertFolder(HTREEITEM hParent, LPCTSTR pName, TreeViewItem *tvi, BOOL bInsertLast)\r
+{\r
+       HWND hTree = hViewWnd;\r
+\r
+       TV_INSERTSTRUCT ti;\r
+       ti.hParent = hParent;\r
+       ti.hInsertAfter = TVI_LAST;\r
+       ti.item.mask = TVIF_TEXT | TVIF_IMAGE | TVIF_SELECTEDIMAGE | TVIF_PARAM;\r
+       ti.item.pszText = (LPTSTR)pName;\r
+       ti.item.iImage = ti.item.iSelectedImage = tvi->GetIcon(this, MEMO_VIEW_STATE_INIT);\r
+       ti.item.lParam = (LPARAM)tvi;\r
+\r
+       HTREEITEM hItem;\r
+       if (bInsertLast) {\r
+               hItem = TreeView_InsertItem(hViewWnd, &ti);\r
+       } else {\r
+               hItem = InsertNode(hTree, &ti);\r
+       }\r
+       tvi->SetViewItem(hItem);\r
+\r
+       InsertDummyNode(hTree, hItem);\r
+       return hItem;\r
+}\r
+\r
+/////////////////////////////////////////\r
+// Initialize tree\r
+/////////////////////////////////////////\r
+\r
+BOOL MemoSelectView::InitTree(VFManager *pManager)\r
+{\r
+       DeleteAllItem();\r
+\r
+       nNumRoots = g_Repository.GetNumOfSubRepository();\r
+       pRoots = new MSViewRootInfo[nNumRoots];\r
+\r
+       for (DWORD i = 0; i < nNumRoots; i++) {\r
+               const TomboURI *pSubRootURI = g_Repository.GetSubRepositoryRootURI(i);\r
+               LPCTSTR pSubRootName = g_Repository.GetSubRepositoryName(i);\r
+               DWORD nSubRootType = g_Repository.GetSubRepositoryType(i);\r
+\r
+               pRoots[i].uri = *g_Repository.GetSubRepositoryRootURI(i);\r
+               pRoots[i].nType = nSubRootType;\r
+\r
+               switch(nSubRootType) {\r
+               case TOMBO_REPO_SUBREPO_TYPE_LOCALFILE:\r
+                       {\r
+                               TreeViewFolderItem *pItem = new TreeViewFolderItem();\r
+                               pItem->SetURI(pSubRootURI);\r
+                               pRoots[i].hItem = InsertFolder(TVI_ROOT, pSubRootName, pItem, TRUE);\r
+                       }\r
+                       break;\r
+               case TOMBO_REPO_SUBREPO_TYPE_VFOLDER:\r
+                       {\r
+                               TreeViewVirtualFolderRoot *pVFRoot = new TreeViewVirtualFolderRoot();\r
+                               if (!pVFRoot || !pVFRoot->Init(pSubRootURI, pManager)) return FALSE;\r
+                               pRoots[i].hItem = InsertFolder(TVI_ROOT, pSubRootName, pVFRoot, TRUE);\r
+                       }\r
+                       break;\r
+               default:\r
+                       return FALSE;\r
+               }\r
+               TreeView_Expand(hViewWnd, pRoots[i].hItem, TVE_EXPAND);\r
+       }\r
+       return TRUE;\r
+}\r
+\r
+/////////////////////////////////////////\r
+// Delete one item\r
+/////////////////////////////////////////\r
+//\r
+// Delete item from the treeview and release its memory.\r
+\r
+void MemoSelectView::DeleteOneItem(HTREEITEM hItem)\r
+{\r
+       TV_ITEM ti;\r
+       ti.mask = TVIF_PARAM;\r
+\r
+       // get lParam(is TreeViewItem*);\r
+       ti.hItem = hItem;\r
+       TreeView_GetItem(hViewWnd, &ti);\r
+       TreeViewItem *tvi;\r
+       tvi = (TreeViewItem *)ti.lParam;\r
+\r
+       // if deleting item is clipped, release clipping.\r
+       if (pClipItem == tvi) pClipItem = NULL;\r
+\r
+       delete tvi;\r
+       TreeView_DeleteItem(hViewWnd, hItem);\r
+}\r
+\r
+/////////////////////////////////////////\r
+// Delete items recursive.\r
+/////////////////////////////////////////\r
+//\r
+// Usually, hFirst is first child of a node named "A".\r
+// DeleteItemsRec() are delete follow sibling and these children, \r
+// so parent node "A" is not deleted.\r
+// It deletes TreeViewItem that is pointed by HTREEITEM, too.\r
+\r
+void MemoSelectView::DeleteItemsRec(HTREEITEM hFirst)\r
+{\r
+       HTREEITEM hItem = hFirst;\r
+       HTREEITEM hNext, hChild;\r
+\r
+       while(hItem) {\r
+               // Delete children.\r
+               hChild = TreeView_GetChild(hViewWnd, hItem);\r
+               if (hChild) {\r
+                       DeleteItemsRec(hChild);\r
+               }\r
+\r
+               // Get next item before hItem is deleted.\r
+               hNext = TreeView_GetNextSibling(hViewWnd, hItem);\r
+\r
+               // Delete hItem\r
+               DeleteOneItem(hItem);\r
+\r
+               hItem = hNext;\r
+       }\r
+}\r
+\r
+BOOL MemoSelectView::DeleteAllItem()\r
+{\r
+       DeleteItemsRec(TreeView_GetRoot(hViewWnd));\r
+       pClipItem = NULL;\r
+       return TRUE;\r
+}\r
+\r
+/////////////////////////////////////////\r
+// Is the item expending?\r
+/////////////////////////////////////////\r
+\r
+BOOL MemoSelectView::IsExpand(HTREEITEM hItem)\r
+{\r
+       TV_ITEM ti;\r
+       ti.hItem = hItem;\r
+       ti.mask = TVIF_STATE;\r
+       ti.state = TVIS_EXPANDED;\r
+       ti.stateMask = TVIS_EXPANDED;\r
+       TreeView_GetItem(hViewWnd, &ti);\r
+       return ti.state & TVIS_EXPANDED;\r
+}\r
+\r
+/////////////////////////////////////////\r
+// get item current selected\r
+/////////////////////////////////////////\r
+\r
+const TomboURI* MemoSelectView::GetCurrentSelectedURI()\r
+{\r
+       TreeViewItem *pItem = GetCurrentItem();\r
+       if (pItem == NULL) return NULL;\r
+\r
+       return pItem->GetRealURI();\r
+}\r
+\r
+TreeViewItem* MemoSelectView::GetCurrentItem(HTREEITEM *pItem)\r
+{\r
+       HTREEITEM hItem = TreeView_GetSelection(hViewWnd);\r
+       if (hItem == NULL) return NULL;\r
+\r
+       TV_ITEM it;\r
+       it.mask = TVIF_PARAM;\r
+       it.hItem = hItem;\r
+       if (TreeView_GetItem(hViewWnd, &it)) {\r
+               if (pItem) *pItem = hItem;\r
+               TreeViewItem *tvi = (TreeViewItem*)it.lParam;\r
+               return tvi;\r
+       }\r
+       return NULL;\r
+}\r
+\r
+BOOL MemoSelectView::Show(int nCmdShow)\r
+{\r
+       ShowWindow(hViewWnd, nCmdShow);\r
+#if defined(PLATFORM_PKTPC) || defined(PLATFORM_WM5)\r
+       // close menu if switch to other view\r
+       if (nCmdShow == SW_HIDE) {\r
+               ReleaseCapture();\r
+       }\r
+#endif\r
+       return UpdateWindow(hViewWnd);\r
+}\r
+\r
+void MemoSelectView::SetFocus()\r
+{\r
+       ::SetFocus(hViewWnd);\r
+}\r
+\r
+///////////////////////////////////////////\r
+// menu control\r
+///////////////////////////////////////////\r
+\r
+static void ControlSubMenu(HMENU hMenu, UINT nID, BOOL bEnable)\r
+{\r
+       if (bEnable) {\r
+               EnableMenuItem(hMenu, nID, MF_BYCOMMAND | MF_ENABLED);\r
+       } else {\r
+               EnableMenuItem(hMenu, nID, MF_BYCOMMAND | MF_GRAYED);\r
+       }\r
+}\r
+\r
+///////////////////////////////////////////\r
+// OnNotify Handler\r
+///////////////////////////////////////////\r
+// if you want to return TRUE/FALSE, return TRUE/FALSE.\r
+// if you want to do default action, return 0xFFFFFFFF.\r
+\r
+LRESULT MemoSelectView::OnNotify(HWND hWnd, WPARAM wParam, LPARAM lParam)\r
+{\r
+       LPNM_TREEVIEW pHdr = (LPNM_TREEVIEW)lParam;\r
+\r
+#if defined(PLATFORM_PKTPC) || defined(PLATFORM_WM5)\r
+       NMRGINFO *pnmrginfo = (PNMRGINFO)lParam;\r
+       if (pnmrginfo->hdr.code == GN_CONTEXTMENU) {\r
+               // tap & hold\r
+               OnNotify_RClick(pnmrginfo->ptAction);\r
+               return TRUE;\r
+       }\r
+#endif\r
+\r
+       switch(pHdr->hdr.code) {\r
+//     case NM_CLICK:\r
+//             g_Logger.WriteLog("NM_CLICK\r\n");\r
+//             return 0;\r
+       case NM_DBLCLK:\r
+               {\r
+//                     g_Logger.WriteLog("NM_DBLCLK\r\n");\r
+                       HTREEITEM hItem = TreeView_GetSelection(hViewWnd);\r
+                       TV_ITEM it;\r
+                       it.mask = TVIF_PARAM;\r
+                       it.hItem = hItem;\r
+\r
+                       TreeView_GetItem(hViewWnd, &it);\r
+                       TreeViewItem *tvi = (TreeViewItem*)it.lParam;\r
+                       if (!tvi) break;\r
+\r
+                       if (!tvi->HasMultiItem()) {\r
+                               const TomboURI *pURI = ((TreeViewFileItem*)tvi)->GetRealURI();\r
+                               GetManager()->GetMainFrame()->LoadMemo(pURI, TRUE);\r
+                               pMemoMgr->GetMainFrame()->PostSwitchView();\r
+                               return 0;\r
+                       }\r
+                       // \88Ã\96Ù\82ÅExpand/Collapse\82ª\94­\90\r
+               }\r
+               break;\r
+       case NM_RETURN:\r
+               {\r
+                       // DBLCLK\82Æ\88á\82¢\81A\8b[\8e\97\93I\82É\83c\83\8a\81[\82Ì\8aJ\95Â\8f\88\97\9d\82ð\94­\90\82³\82¹\82é\r
+                       HTREEITEM hItem = TreeView_GetSelection(hViewWnd);\r
+                       TV_ITEM it;\r
+                       it.mask = TVIF_PARAM | TVIF_STATE;\r
+                       it.hItem = hItem;\r
+                       it.stateMask = TVIS_EXPANDED;\r
+                       TreeView_GetItem(hViewWnd, &it);\r
+\r
+                       TreeViewItem *tvi = (TreeViewItem*)it.lParam;\r
+                       if (!tvi) break;\r
+\r
+                       if (tvi->HasMultiItem()) {\r
+                               ToggleExpandFolder(hItem, it.state & TVIS_EXPANDED);\r
+                       } else {\r
+                               // switch to edit view\r
+                               tvi->LoadMemo(this, TRUE);\r
+                               pMemoMgr->GetMainFrame()->ActivateView(MainFrame::VT_DetailsView);\r
+                       }\r
+               }\r
+               break;\r
+       case TVN_SELCHANGING:\r
+               {\r
+#if defined(PLATFORM_WIN32) || defined(PLATFORM_HPC)\r
+                       // 2-Pane View\82Ì\8fê\8d\87\82É\82Í \83\81\83\82\82Ì\90Ø\82è\91Ö\82¦\82ª\94­\90\82µ\81A\82©\82Â\r
+                       // \95Û\91\8am\94F\82Å\83L\83\83\83\93\83Z\83\8b\82ð\89\9f\82µ\82½\8fê\8d\87\81A\83A\83C\83e\83\80\82Ì\90Ø\82è\91Ö\82¦\82ð\r
+                       // \94F\82ß\82Ä\82Í\82È\82ç\82È\82¢\r
+                       if (!g_Property.GetUseTwoPane() || !pMemoMgr) return FALSE;\r
+\r
+                       DWORD nYNC;\r
+                       if (!pMemoMgr->SaveIfModify(&nYNC, FALSE)) {\r
+                               TCHAR buf[1024];\r
+                               wsprintf(buf, MSG_SAVE_FAILED, GetLastError());\r
+                               pMemoMgr->GetMainFrame()->MessageBox(buf, TEXT("ERROR"), MB_ICONSTOP | MB_OK | MB_APPLMODAL);\r
+\r
+                               // stop the change\r
+                               return TRUE;\r
+                       }\r
+                       switch(nYNC) {\r
+                       case IDCANCEL:\r
+                               // cancel\r
+                               return TRUE;\r
+                       case IDOK:\r
+                               /* fall through */\r
+                       case IDYES:\r
+                               return FALSE;\r
+                       case IDNO:\r
+                               // celar note\r
+                               pMemoMgr->GetDetailsView()->DiscardMemo();\r
+                               return FALSE;\r
+                       }\r
+#endif\r
+                       return FALSE;\r
+               }\r
+\r
+       case TVN_SELCHANGED:\r
+               {\r
+                       NMTREEVIEW *p = (LPNMTREEVIEW)lParam;\r
+                       TreeViewItem *tvi = (TreeViewItem*)((p->itemNew).lParam);\r
+                       if (tvi == NULL) {\r
+                               break;\r
+                       }\r
+                       // Control menu item\r
+                       ControlMenu();\r
+\r
+                       if (g_Property.GetUseTwoPane() && (p->action == TVC_BYMOUSE || p->action == TVC_BYKEYBOARD)) {\r
+                               // change notes if operated by user. Otherwise no switching occured.\r
+                               pMemoMgr->SetMSSearchFlg(TRUE);\r
+                               tvi->LoadMemo(this, FALSE);\r
+                       }\r
+               }\r
+               break;\r
+       case TVN_ITEMEXPANDING:\r
+               if (pHdr->action == TVE_EXPAND) {\r
+                       TreeExpand(pHdr->itemNew.hItem);\r
+               } else {\r
+                       TreeCollapse(pHdr->itemNew.hItem);\r
+               }\r
+               return FALSE;\r
+#if !defined(PLATFORM_WM5)\r
+       case TVN_BEGINLABELEDIT:\r
+               {\r
+                       TreeViewItem *pItem = (TreeViewItem*)(((LPNMTVDISPINFO)lParam)->item.lParam);\r
+                       if (pItem && !pItem->IsOperationEnabled(this, TreeViewItem::OpRename)) return TRUE;\r
+                       return FALSE;\r
+               }\r
+       case TVN_ENDLABELEDIT:\r
+               {\r
+                       LPNMTVDISPINFO p = (LPNMTVDISPINFO)lParam;\r
+                       return EditLabel(&(p->item));\r
+               }\r
+#endif\r
+#if defined(PLATFORM_WIN32)\r
+       case NM_RCLICK:\r
+               {\r
+                       POINT pt, pth;\r
+                       GetCursorPos(&pt);\r
+                       pth = pt;\r
+                       OnNotify_RClick(pt);\r
+                       break;\r
+               }\r
+#endif\r
+\r
+       }\r
+       // return for each handler if it need return values.\r
+       return 0xFFFFFFFF;\r
+}\r
+\r
+#if defined(PLATFORM_WIN32) || defined(PLATFORM_HPC) || defined(PLATFORM_PKTPC) || defined(PLATFORM_WM5)\r
+void MemoSelectView::OnNotify_RClick(POINT pt)\r
+{\r
+       TV_HITTESTINFO hti;\r
+       POINT cpt = pt;\r
+#if defined(PLATFORM_WIN32) || defined(PLATFORM_PKTPC) || defined(PLATFORM_WM5)\r
+       ScreenToClient(hViewWnd, &cpt);\r
+#endif\r
+       hti.pt = cpt;\r
+       HTREEITEM hX = TreeView_HitTest(hViewWnd, &hti);\r
+\r
+       if (hti.hItem == NULL) return;\r
+       TreeViewItem *pItem = GetTVItem(hti.hItem);\r
+\r
+       TreeView_SelectItem(hViewWnd, hti.hItem);\r
+\r
+       DWORD nFlg;\r
+       if (pItem->HasMultiItem()) {\r
+               nFlg = CTXMENU_DIR;\r
+       } else {\r
+               TreeViewFileItem *pFileItem = (TreeViewFileItem*)pItem;\r
+               const TomboURI *pURI = pFileItem->GetRealURI();\r
+               URIOption opt(NOTE_OPTIONMASK_ENCRYPTED);\r
+               g_Repository.GetOption(pURI, &opt);\r
+\r
+               nFlg = CTXMENU_FILE | (g_Property.GetUseAssociation() ? CTXMENU_USEASSOC : 0);\r
+               if (!opt.bEncrypt) {\r
+                       nFlg |= CTXMENU_ENABLEEXTAPP;\r
+               }\r
+       }\r
+\r
+       HMENU hMenu = PlatformLayer::LoadContextMenu(nFlg);\r
+\r
+       ControlSubMenu(hMenu, IDM_ENCRYPT, pItem->IsOperationEnabled(this, TreeViewItem::OpEncrypt));\r
+       ControlSubMenu(hMenu, IDM_DECRYPT, pItem->IsOperationEnabled(this, TreeViewItem::OpDecrypt));\r
+       ControlSubMenu(hMenu, IDM_CUT, pItem->IsOperationEnabled(this, TreeViewItem::OpCut));\r
+       ControlSubMenu(hMenu, IDM_COPY, pItem->IsOperationEnabled(this, TreeViewItem::OpCopy));\r
+       ControlSubMenu(hMenu, IDM_PASTE, pItem->IsOperationEnabled(this, TreeViewItem::OpPaste));\r
+       ControlSubMenu(hMenu, IDM_RENAME, pItem->IsOperationEnabled(this, TreeViewItem::OpRename));\r
+       ControlSubMenu(hMenu, IDM_DELETEITEM, pItem->IsOperationEnabled(this, TreeViewItem::OpDelete));\r
+       ControlSubMenu(hMenu, IDM_NEWFOLDER, pItem->IsOperationEnabled(this, TreeViewItem::OpNewFolder));\r
+       ControlSubMenu(hMenu, IDM_SEARCH, pItem->IsOperationEnabled(this, TreeViewItem::OpGrep));\r
+       ControlSubMenu(hMenu, IDM_TRACELINK, pItem->IsOperationEnabled(this, TreeViewItem::OpLink));\r
+\r
+       DWORD id = TrackPopupMenuEx(hMenu, TPM_RETURNCMD | TPM_TOPALIGN | TPM_LEFTALIGN, pt.x, pt.y, hViewWnd, NULL);\r
+       DestroyMenu(hMenu);\r
+\r
+       switch(id) {\r
+       case IDM_CUT:\r
+               OnCut(pItem);\r
+               break;\r
+       case IDM_COPY:\r
+               OnCopy(pItem);\r
+               break;\r
+       case IDM_PASTE:\r
+               OnPaste();\r
+               break;\r
+       case IDM_ENCRYPT:\r
+               OnEncrypt(pItem);\r
+               break;\r
+       case IDM_DECRYPT:\r
+               OnDecrypt(pItem);\r
+               break;\r
+       case IDM_RENAME:\r
+               OnEditLabel(hti.hItem);\r
+               break;\r
+       case IDM_DELETEITEM:\r
+               OnDelete(hti.hItem, pItem);\r
+               break;\r
+       case IDM_NEWFOLDER:\r
+               pMemoMgr->GetMainFrame()->NewFolder(pItem);\r
+               break;\r
+       case IDM_SEARCH:\r
+               TreeView_SelectItem(hViewWnd, hti.hItem);\r
+               pMemoMgr->GetMainFrame()->OnSearch();\r
+               break;\r
+       case IDM_TRACELINK:\r
+               {\r
+                       TreeViewFileLink *p = (TreeViewFileLink*)pItem;\r
+                       ShowItemByURI(p->GetRealURI(), TRUE, FALSE);\r
+               }\r
+               break;\r
+       case IDM_ASSOC:\r
+               TreeView_SelectItem(hViewWnd, hti.hItem);\r
+               pItem->ExecApp(pMemoMgr, this, ExecType_Assoc);\r
+               break;\r
+       case IDM_EXTAPP1:\r
+               TreeView_SelectItem(hViewWnd, hti.hItem);\r
+               pItem->ExecApp(pMemoMgr, this, ExecType_ExtApp1);\r
+               break;\r
+       case IDM_EXTAPP2:\r
+               TreeView_SelectItem(hViewWnd, hti.hItem);\r
+               pItem->ExecApp(pMemoMgr, this, ExecType_ExtApp2);\r
+               break;\r
+       }\r
+}\r
+#endif\r
+///////////////////////////////////////////\r
+// OnCommand handler\r
+///////////////////////////////////////////\r
+\r
+BOOL MemoSelectView::OnCommand(HWND hWnd, WPARAM wParam, LPARAM lParam)\r
+{\r
+       HTREEITEM  hItem;\r
+       TreeViewItem *pItem = GetCurrentItem(&hItem);\r
+\r
+       switch(LOWORD(wParam)) {\r
+       case IDM_ENCRYPT:\r
+               OnEncrypt(pItem);\r
+               return TRUE;\r
+       case IDM_DECRYPT:\r
+               OnDecrypt(pItem);\r
+               return TRUE;\r
+       case IDM_DELETEITEM:\r
+               // DEL key is handled by SelectView findows procedure, but leave this chunk for sending WM_COMMAND\r
+               OnDelete(hItem, pItem);\r
+               return TRUE;\r
+       case IDM_ACTIONBUTTON:\r
+               OnActionButton(hWnd);\r
+               return TRUE;\r
+       case IDM_CUT:\r
+               // Cut/Copy/Paste key is handled by SelectView findows procedure, but leave this chunk for sending WM_COMMAND\r
+               OnCut(pItem);\r
+               return TRUE;\r
+       case IDM_COPY:\r
+               OnCopy(pItem);\r
+               return TRUE;\r
+       case IDM_PASTE:\r
+               OnPaste();\r
+               return TRUE;\r
+       case IDM_RENAME:\r
+               OnEditLabel(hItem);\r
+               return TRUE;\r
+#if defined(PLATFORM_BE500)\r
+       case IDM_EXTAPP1:\r
+               pItem->ExecApp(pMemoMgr, this, ExecType_ExtApp1);\r
+               return TRUE;\r
+       case IDM_EXTAPP2:\r
+               pItem->ExecApp(pMemoMgr, this, ExecType_ExtApp2);\r
+               return TRUE;\r
+#endif\r
+       }\r
+       return FALSE;\r
+}\r
+\r
+///////////////////////////////////////////\r
+// HotKey\r
+///////////////////////////////////////////\r
+\r
+BOOL MemoSelectView::OnHotKey(HWND hWnd, WPARAM wParam)\r
+{\r
+       switch(wParam) {\r
+       case APP_BUTTON1:\r
+               /* fall through */\r
+       case APP_BUTTON2:\r
+               /* fall through */\r
+       case APP_BUTTON3:\r
+               /* fall through */\r
+       case APP_BUTTON4:\r
+               /* fall through */\r
+       case APP_BUTTON5:\r
+               OnActionButton(hWnd);\r
+               return TRUE;\r
+       default:\r
+               return FALSE;\r
+       }\r
+}\r
+\r
+///////////////////////////////////////////\r
+// Encrypt\r
+///////////////////////////////////////////\r
+\r
+void MemoSelectView::OnEncrypt(TreeViewItem *pItem)\r
+{\r
+       if (!pItem->Encrypt(pMemoMgr, this)) {\r
+               TCHAR buf[1024];\r
+               wsprintf(buf, MSG_ENCRYPTION_FAILED, GetLastError());\r
+               TomboMessageBox(hViewWnd, buf, TEXT("ERROR"), MB_ICONSTOP | MB_OK);\r
+       }\r
+}\r
+\r
+///////////////////////////////////////////\r
+// Decrypt\r
+///////////////////////////////////////////\r
+\r
+void MemoSelectView::OnDecrypt(TreeViewItem *pItem)\r
+{\r
+       if (!pItem->Decrypt(pMemoMgr, this)) {\r
+               TCHAR buf[1024];\r
+               wsprintf(buf, MSG_DECRYPTION_FAILED, GetLastError());\r
+               TomboMessageBox(hViewWnd, buf, TEXT("ERROR"), MB_ICONSTOP | MB_OK);\r
+       }\r
+}\r
+\r
+/////////////////////////////////////////////\r
+// Rename\r
+/////////////////////////////////////////////\r
+\r
+void MemoSelectView::OnEditLabel(HTREEITEM hItem)\r
+{\r
+#if defined(PLATFORM_WM5)\r
+       TCHAR buf[MAX_PATH];\r
+       TV_ITEM item;\r
+       item.mask = TVIF_TEXT | TVIF_PARAM;\r
+       item.hItem = hItem;\r
+       item.cchTextMax = MAX_PATH;\r
+       item.pszText = buf;\r
+       TreeView_GetItem(hViewWnd, &item);\r
+\r
+       NewFolderDialog dlg;\r
+       dlg.SetOption(MSG_ID_MENUITEM_MAIN_RENAME, buf);\r
+       if (dlg.Popup(g_hInstance, hViewWnd) == IDOK) {\r
+               TreeViewItem *pti = (TreeViewItem*)(item.lParam);\r
+               if (pti == NULL) return;\r
+               pti->Rename(pMemoMgr, this, dlg.FolderName());\r
+               \r
+               item.mask = TVIF_TEXT;\r
+               item.cchTextMax = _tcslen(dlg.FolderName());\r
+               item.pszText = (LPTSTR)dlg.FolderName();\r
+               TreeView_SetItem(hViewWnd, &item);\r
+       }\r
+#else\r
+       if (hItem == NULL) return;\r
+       TreeView_EditLabel(hViewWnd, hItem);\r
+       return;\r
+#endif\r
+}\r
+\r
+///////////////////////////////////////////\r
+// delete\r
+///////////////////////////////////////////\r
+\r
+void MemoSelectView::OnDelete(HTREEITEM hItem, TreeViewItem *pItem)\r
+{\r
+       if (hItem == NULL) return;\r
+       if (pItem->Delete(pMemoMgr, this)) {\r
+               DeleteOneItem(hItem);\r
+       }\r
+}\r
+\r
+///////////////////////////////////////////\r
+// get window size\r
+///////////////////////////////////////////\r
+\r
+void MemoSelectView::GetSize(LPWORD pWidth, LPWORD pHeight)\r
+{\r
+       RECT r;\r
+       GetWindowRect(hViewWnd, &r);\r
+       *pWidth = (WORD)(r.right - r.left);\r
+       *pHeight = (WORD)(r.bottom - r.top);\r
+}\r
+\r
+void MemoSelectView::GetSize(LPRECT pRect)\r
+{\r
+       GetWindowRect(hViewWnd, pRect);\r
+}\r
+\r
+void MemoSelectView::GetClientRect(LPRECT pRect)\r
+{\r
+       ::GetClientRect(hViewWnd, pRect);\r
+}\r
+\r
+///////////////////////////////////////////\r
+// get path\r
+///////////////////////////////////////////\r
+\r
+LPTSTR MemoSelectView::GeneratePath(HTREEITEM hItem, LPTSTR pBuf, DWORD nSiz)\r
+{\r
+       HWND hTree = hViewWnd;\r
+\r
+       LPTSTR p = pBuf + nSiz - 2;\r
+       *(p+1) = TEXT('\0');\r
+\r
+       LPTSTR pPrev;\r
+\r
+       TV_ITEM it;\r
+       TCHAR buf[MAX_PATH];\r
+\r
+       HTREEITEM h = hItem;\r
+       it.mask = TVIF_HANDLE | TVIF_TEXT;\r
+       it.pszText = buf;\r
+\r
+       while(h) {\r
+               it.hItem = h;\r
+               it.cchTextMax = MAX_PATH;\r
+               TreeView_GetItem(hTree, &it);\r
+\r
+               DWORD l = _tcslen(buf);\r
+               pPrev = p + 1;\r
+               *p-- = TEXT('\\');\r
+               p -= l - 1;\r
+               _tcsncpy(p, buf, l);\r
+               p--;\r
+               h = TreeView_GetParent(hTree, h);\r
+       }\r
+       return pPrev;\r
+}\r
+\r
+void MemoSelectView::TreeExpand(HTREEITEM hItem)\r
+{\r
+       // delete dummy child nodes.\r
+       HTREEITEM di = TreeView_GetChild(hViewWnd, hItem);\r
+       DeleteItemsRec(di);\r
+\r
+       // change icon to "EXPANDING".\r
+       TreeViewItem *pItem = GetTVItem(hItem);\r
+       SetIcon(pItem, MEMO_VIEW_STATE_OPEN_SET);\r
+\r
+       if (!pItem->HasMultiItem()) {\r
+               MessageBox(NULL, TEXT("This node does'nt have multi item"), TEXT("DEBUG"), MB_OK);\r
+               return;\r
+       }\r
+\r
+       TreeViewFolderItem *pFolder = (TreeViewFolderItem*)pItem;\r
+\r
+       // expand nodes.\r
+       pFolder->Expand(this);\r
+\r
+       // Close node if lower node is not exist.\r
+       if (TreeView_GetChild(hViewWnd, hItem) == NULL) {\r
+               TreeCollapse(hItem);\r
+       }\r
+}\r
+\r
+void MemoSelectView::TreeCollapse(HTREEITEM hItem)\r
+{\r
+       HTREEITEM h = TreeView_GetChild(hViewWnd, hItem);\r
+\r
+       DeleteItemsRec(h); // delete nodes\r
+       InsertDummyNode(hViewWnd, hItem); // insert dummy child\r
+\r
+       // set icon\r
+       TreeViewItem *pItem = GetTVItem(hItem);\r
+       SetIcon(pItem, MEMO_VIEW_STATE_OPEN_CLEAR); \r
+\r
+       TreeView_Expand(hViewWnd, hItem, TVE_COLLAPSE | TVE_COLLAPSERESET);\r
+}\r
+\r
+\r
+///////////////////////////////////////////\r
+// move window or resize window\r
+///////////////////////////////////////////\r
+\r
+void MemoSelectView::MoveWindow(DWORD x, DWORD y, DWORD nWidth, DWORD nHeight)\r
+{\r
+       ::MoveWindow(hViewWnd, x, y, nWidth, nHeight, TRUE);\r
+}\r
+\r
+/////////////////////////////////////////////////////////////\r
+// TreeViewItem status change notify\r
+/////////////////////////////////////////////////////////////\r
+// Called from TreeViewItem when icon status/headline string changed.\r
+// Update treeview status and link assosiation of HTREEITEM <-> TreeViewItem \r
+// and TreeViewItem <-> MemoManager.\r
+\r
+BOOL MemoSelectView::UpdateItemStatusNotify(TreeViewItem *pItem, LPCTSTR pNewHeadLine)\r
+{\r
+       // Get old HTREEITEM\r
+       HTREEITEM hOrigNode = pItem->GetViewItem();\r
+\r
+       HTREEITEM hParent = TreeView_GetParent(hViewWnd, hOrigNode);\r
+       if (hParent == NULL) {\r
+               hParent = TVI_ROOT;\r
+       }\r
+\r
+       // Delete from Tree. (TreeViewItem is not deleted because it will deleted at caller.)\r
+       TreeView_DeleteItem(hViewWnd, hOrigNode);\r
+\r
+       // Insert to tree.\r
+       TV_INSERTSTRUCT ti;\r
+       ti.hParent = hParent;\r
+       ti.item.mask = TVIF_TEXT | TVIF_IMAGE | TVIF_SELECTEDIMAGE | TVIF_PARAM;\r
+       ti.item.iImage = ti.item.iSelectedImage = pItem->GetIcon(this, 0); // Get current icon\r
+       ti.item.pszText = (LPTSTR)pNewHeadLine;\r
+       ti.item.lParam = (LPARAM)pItem;\r
+       HTREEITEM hItem = ::InsertNode(hViewWnd, &ti);\r
+\r
+       // link TreeViewItem <-> HTREEITEM assosiation\r
+       pItem->SetViewItem(hItem);\r
+       TreeView_SelectItem(hViewWnd, hItem);\r
+       return TRUE;\r
+}\r
+\r
+///////////////////////////////////////////\r
+// Action(Hardware) buttons\r
+///////////////////////////////////////////\r
+\r
+void MemoSelectView::OnActionButton(HWND hWnd)\r
+{\r
+       HTREEITEM hItem;\r
+       TreeViewItem *p = GetCurrentItem(&hItem);\r
+       if (p && !p->HasMultiItem()) {\r
+               p->OpenMemo(this, OPEN_REQUEST_MSVIEW_ACTIVE);\r
+               return;\r
+       }\r
+       \r
+       RECT r;\r
+       TreeView_GetItemRect(hViewWnd, hItem, &r, TRUE);\r
+       PostMessage(hViewWnd, WM_LBUTTONDBLCLK, MK_LBUTTON, MAKELPARAM(r.left, r.top));\r
+}\r
+\r
+///////////////////////////////////////////\r
+// get item path for insert\r
+///////////////////////////////////////////\r
+// if the item is node, return itself.\r
+// if the item is leaf, return the parent node of the leaf\r
+\r
+HTREEITEM MemoSelectView::GetPathForNewItem(TString *pPath, TreeViewItem *pItem)\r
+{\r
+       TCHAR buf[MAX_PATH];\r
+       HTREEITEM hItem = NULL;\r
+\r
+       if (pItem == NULL) {\r
+               pItem = GetCurrentItem(&hItem);\r
+       } else {\r
+               hItem = pItem->GetViewItem();\r
+       }\r
+       if (hItem == NULL) {\r
+               if (!pPath->Alloc(1)) return NULL;\r
+               _tcscpy(pPath->Get(), TEXT(""));\r
+\r
+               return TreeView_GetRoot(hViewWnd);\r
+       }\r
+\r
+       if (pItem && !pItem->HasMultiItem()) {\r
+               hItem = TreeView_GetParent(hViewWnd, hItem);\r
+       }\r
+\r
+       LPTSTR pPathTop = GeneratePath(hItem, buf, MAX_PATH);\r
+       if (!pPath->Set(pPathTop)) return NULL;\r
+       return hItem;\r
+}\r
+\r
+///////////////////////////////////////////\r
+// carete new folder\r
+///////////////////////////////////////////\r
+\r
+BOOL MemoSelectView::CreateNewFolder(HTREEITEM hItem, LPCTSTR pFolder)\r
+{\r
+       // expand the tree if it collapsed\r
+       if (!IsExpand(hItem) && (TreeView_GetChild(hViewWnd, hItem) != NULL)) {\r
+               // the folder inserted is automatically reloaded by expanding the tree\r
+               TreeView_Expand(hViewWnd, hItem, TVE_EXPAND);\r
+       } else {\r
+               // if node is already expanded, insert it\r
+\r
+               TreeViewItem *pParent = GetTVItem(hItem);\r
+               const TomboURI *pParentURI = pParent->GetRealURI();\r
+               TString s;\r
+               if (!s.Join(pParentURI->GetFullURI(), pFolder, TEXT("/"))) return FALSE;\r
+               TomboURI sNewURI;\r
+               if (!sNewURI.Init(s.Get())) return FALSE;\r
+\r
+               TreeViewFolderItem *pItem = new TreeViewFolderItem();\r
+               pItem->SetURI(&sNewURI);\r
+               InsertFolder(hItem, pFolder, pItem, FALSE);\r
+               if (TreeView_GetChild(hViewWnd, hItem) != NULL) {\r
+                       TreeView_Expand(hViewWnd, hItem, TVE_EXPAND);\r
+               }\r
+       }\r
+       return TRUE;\r
+}\r
+\r
+BOOL MemoSelectView::MakeNewFolder(HWND hWnd, TreeViewItem *pItem)\r
+{\r
+       NewFolderDialog dlg;\r
+       BOOL bPrev = bDisableHotKey;\r
+       bDisableHotKey = TRUE;\r
+       DWORD nResult = dlg.Popup(g_hInstance, hWnd);\r
+       bDisableHotKey = bPrev;\r
+       if (nResult == IDOK) {\r
+               LPCTSTR pFolder = dlg.FolderName();\r
+\r
+               TomboURI sBaseURI, sURI;\r
+               if (pItem) {\r
+                       sBaseURI = *(pItem->GetRealURI());\r
+               } else {\r
+                       const TomboURI *pCurSel = GetCurrentSelectedURI();\r
+                       if (pCurSel == NULL) return FALSE;\r
+                       sBaseURI = *pCurSel;\r
+               }                       \r
+\r
+               if (!g_Repository.GetAttachURI(&sBaseURI, &sURI)) return FALSE;\r
+               HTREEITEM hItem = GetItemFromURI(sURI.GetFullURI());\r
+               if (!g_Repository.MakeFolder(&sURI, pFolder)) return FALSE;\r
+               CreateNewFolder(hItem, pFolder);\r
+\r
+       }\r
+       return TRUE;\r
+}\r
+\r
+/////////////////////////////////////////\r
+// Change headline string\r
+/////////////////////////////////////////\r
+// For re-ordering, delete once and re-insert again.\r
+// New URI should locate same as old URI\r
+// URI should point to file\r
+\r
+BOOL MemoSelectView::UpdateHeadLine(LPCTSTR pOldURI, TomboURI *pNewURI, LPCTSTR pNewHeadLine)\r
+{\r
+       // get HTREEITEM from old URI\r
+       HTREEITEM hOld = GetItemFromURI(pOldURI);\r
+       if (hOld == NULL) return TRUE; // if node is collapsed, nothing to do\r
+\r
+       // if URI is not changed, only focusing\r
+       if (_tcscmp(pOldURI, pNewURI->GetFullURI()) == 0) {\r
+               TreeView_SelectItem(hViewWnd, hOld);\r
+               return TRUE;\r
+       }\r
+\r
+\r
+       // get parent\r
+       HTREEITEM hParent = TreeView_GetParent(hViewWnd, hOld);\r
+\r
+       TreeView_SelectItem(hViewWnd, NULL);\r
+\r
+       // remove current node\r
+       DeleteOneItem(hOld);\r
+\r
+       // insert node\r
+       HTREEITEM hNew = InsertFile(hParent, pNewURI, pNewHeadLine, FALSE, FALSE);\r
+       if (hNew == NULL) return FALSE;\r
+\r
+       TreeView_SelectItem(hViewWnd, hNew);\r
+       return TRUE;\r
+}\r
+\r
+HTREEITEM MemoSelectView::GetItemFromURI(LPCTSTR pURI)\r
+{\r
+       TomboURI uri;\r
+       if (!uri.Init(pURI)) return NULL;\r
+\r
+       TString sRep;\r
+       if (!uri.GetRepositoryName(&sRep)) return NULL;\r
+\r
+       HTREEITEM hCurrent = GetRootItem(sRep.Get());\r
+       if (hCurrent == NULL) return NULL;\r
+\r
+       TomboURIItemIterator itr(&uri);\r
+       if (!itr.Init()) return NULL;\r
+\r
+       LPCTSTR p;\r
+       for (itr.First(); p = itr.Current(); itr.Next()) {\r
+               if (itr.IsLeaf()) {\r
+                       DWORD n = _tcslen(p);\r
+                       if (n >= 4) {\r
+                               hCurrent = FindItem2(hViewWnd, hCurrent, p, n - 4);\r
+                       } else {\r
+                               hCurrent = FindItem2(hViewWnd, hCurrent, p, n);\r
+                       }\r
+               } else {\r
+                       hCurrent = FindItem2(hViewWnd, hCurrent, p, _tcslen(p));\r
+               }\r
+       }\r
+       return hCurrent;\r
+}\r
+\r
+HTREEITEM MemoSelectView::GetRootItem(LPCTSTR pRep)\r
+{\r
+       for (DWORD i = 0; i < nNumRoots; i++) {\r
+               TString repName;\r
+               if (!pRoots[i].uri.GetRepositoryName(&repName)) return NULL;\r
+               if (_tcsicmp(repName.Get(), pRep) == 0) return pRoots[i].hItem;\r
+       }\r
+       return NULL;\r
+}\r
+\r
+/////////////////////////////////////////\r
+// set icon\r
+/////////////////////////////////////////\r
+\r
+void MemoSelectView::SetIcon(TreeViewItem *ptv, DWORD nStatus)\r
+{\r
+       DWORD nImage;\r
+\r
+       nImage = ptv->GetIcon(this, nStatus);\r
+\r
+       TV_ITEM ti;\r
+       ti.mask = TVIF_IMAGE | TVIF_SELECTEDIMAGE;\r
+       ti.hItem = ptv->GetViewItem();\r
+       ti.iImage = ti.iSelectedImage = nImage;\r
+       TreeView_SetItem(hViewWnd, &ti);\r
+}\r
+\r
+/////////////////////////////////////////\r
+// set item to psudo clipboard \r
+/////////////////////////////////////////\r
+\r
+void MemoSelectView::SetShareArea(TreeViewItem *pItem)\r
+{\r
+       if (pClipItem) {\r
+               SetIcon(pClipItem, MEMO_VIEW_STATE_CLIPED_CLEAR);\r
+       }\r
+       pClipItem = pItem;\r
+       if (pClipItem) {\r
+               SetIcon(pClipItem, MEMO_VIEW_STATE_CLIPED_SET);\r
+       }\r
+}\r
+\r
+/////////////////////////////////////////\r
+// prepare move the item\r
+/////////////////////////////////////////\r
+\r
+void MemoSelectView::OnCut(TreeViewItem *pItem)\r
+{\r
+       SetShareArea(pItem);\r
+       bCut = TRUE;\r
+}\r
+\r
+/////////////////////////////////////////\r
+// prepare copy the item\r
+/////////////////////////////////////////\r
+\r
+void MemoSelectView::OnCopy(TreeViewItem *pItem)\r
+{\r
+       SetShareArea(pItem);\r
+       bCut = FALSE;\r
+}\r
+\r
+/////////////////////////////////////////\r
+// move/copy notes\r
+/////////////////////////////////////////\r
+\r
+void MemoSelectView::OnPaste()\r
+{\r
+       if (pClipItem == NULL) return;\r
+\r
+       if (bCut) {\r
+               // move notes\r
+               HTREEITEM hItem = pClipItem->GetViewItem();\r
+               LPCTSTR pErr = NULL;\r
+               if (!pClipItem->Move(pMemoMgr, this, &pErr)) {\r
+                       if (pErr) {\r
+                               TomboMessageBox(hViewWnd, pErr, TEXT("ERROR"), MB_ICONSTOP | MB_OK);\r
+                       } else {\r
+                               TomboMessageBox(hViewWnd, MSG_MOVE_MEMO_FAILED, TEXT("ERROR"), MB_ICONSTOP | MB_OK);\r
+                       }\r
+                       return;\r
+               }\r
+               DeleteOneItem(hItem);\r
+       } else {\r
+               // copy notes\r
+               LPCTSTR pErr = NULL;\r
+               if (!pClipItem->Copy(pMemoMgr, this, &pErr)) {\r
+                       if (pErr) {\r
+                               TomboMessageBox(hViewWnd, pErr, TEXT("ERROR"), MB_ICONSTOP | MB_OK);\r
+                       } else {\r
+                               TomboMessageBox(hViewWnd, MSG_COPY_MEMO_FAILED, TEXT("ERROR"), MB_ICONSTOP | MB_OK);\r
+                       }\r
+               }\r
+       }\r
+}\r
+\r
+/////////////////////////////////////////\r
+// Control menu\r
+/////////////////////////////////////////\r
+\r
+void MemoSelectView::ControlMenu()\r
+{\r
+       MainFrame *pMf = pMemoMgr->GetMainFrame();\r
+       if (pMf == NULL) return;\r
+\r
+       TreeViewItem *pItem = GetCurrentItem();\r
+       if (pItem) {\r
+               pMf->EnableDelete(pItem->IsOperationEnabled(this, TreeViewItem::OpDelete));\r
+               pMf->EnableRename(pItem->IsOperationEnabled(this, TreeViewItem::OpRename));\r
+\r
+               pMf->EnableEncrypt(pItem->IsOperationEnabled(this, TreeViewItem::OpEncrypt));\r
+               pMf->EnableDecrypt(pItem->IsOperationEnabled(this, TreeViewItem::OpDecrypt));\r
+\r
+               pMf->EnableNew(pItem->IsOperationEnabled(this, TreeViewItem::OpNewMemo));\r
+               pMf->EnableNewFolder(pItem->IsOperationEnabled(this, TreeViewItem::OpNewFolder));\r
+\r
+               pMf->EnableCut(pItem->IsOperationEnabled(this, TreeViewItem::OpCut));\r
+               pMf->EnableCopy(pItem->IsOperationEnabled(this, TreeViewItem::OpCopy));\r
+               pMf->EnablePaste(pItem->IsOperationEnabled(this, TreeViewItem::OpPaste));\r
+\r
+               pMf->EnableGrep(pItem->IsOperationEnabled(this, TreeViewItem::OpGrep));\r
+\r
+       } else {\r
+               pMf->EnableDelete(FALSE);\r
+               pMf->EnableRename(FALSE);\r
+               pMf->EnableEncrypt(FALSE);\r
+               pMf->EnableDecrypt(FALSE);\r
+\r
+               pMf->EnableCut(FALSE);\r
+               pMf->EnableCopy(FALSE);\r
+               pMf->EnablePaste(FALSE);\r
+       }\r
+}\r
+\r
+/////////////////////////////////////////\r
+// acquire forcusing\r
+/////////////////////////////////////////\r
+\r
+void MemoSelectView::OnGetFocus()\r
+{\r
+       MainFrame *pMf = pMemoMgr->GetMainFrame();\r
+       if (pMf) {\r
+               pMf->ActivateView(MainFrame::VT_SelectView);\r
+       }\r
+       ControlMenu();\r
+}\r
+\r
+/////////////////////////////////////////\r
+// set font\r
+/////////////////////////////////////////\r
+\r
+void MemoSelectView::SetFont(HFONT hFont)\r
+{\r
+       SendMessage(hViewWnd, WM_SETFONT, (WPARAM)hFont, MAKELPARAM(TRUE, 0));\r
+}\r
+\r
+///////////////////////////////////////////\r
+// expand/collapse tree\r
+///////////////////////////////////////////\r
+\r
+void MemoSelectView::ToggleExpandFolder(HTREEITEM hItem, UINT status)\r
+{\r
+       if (status & TVIS_EXPANDED) {\r
+               TreeCollapse(hItem);\r
+       } else {\r
+               TreeView_Expand(hViewWnd, hItem, TVE_EXPAND);\r
+               TreeExpand(hItem);\r
+       }\r
+}\r
+\r
+/////////////////////////////////////////////\r
+//  get TreeViewItem from HTREEITEM\r
+/////////////////////////////////////////////\r
+\r
+TreeViewItem *MemoSelectView::GetTVItem(HTREEITEM h)\r
+{\r
+       TV_ITEM ti;\r
+       ti.mask = TVIF_PARAM;\r
+       ti.hItem = h;\r
+       TreeView_GetItem(hViewWnd, &ti);\r
+       return (TreeViewItem*)ti.lParam;\r
+}\r
+\r
+/////////////////////////////////////////////\r
+// Insert dummy node\r
+/////////////////////////////////////////////\r
+// to add "+" icon, insert dummy node if a folder which don't have no chil.\r
+\r
+static void InsertDummyNode(HWND hTree, HTREEITEM hItem)\r
+{\r
+       TV_INSERTSTRUCT tisub;\r
+       tisub.hParent = hItem;\r
+       tisub.hInsertAfter = TVI_LAST;\r
+       tisub.item.mask = TVIF_PARAM;\r
+       tisub.item.lParam = NULL;\r
+       TreeView_InsertItem(hTree, &tisub);\r
+}\r
+\r
+/////////////////////////////////////////////\r
+// Rename\r
+/////////////////////////////////////////////\r
+//\r
+// Result:  TRUE = accept label change\r
+//                     FALSE = refuse label change\r
+\r
+LRESULT MemoSelectView::EditLabel(TVITEM *pItem)\r
+{\r
+       if (pItem->pszText == NULL) return FALSE;\r
+\r
+       TreeViewItem *pti = (TreeViewItem*)(pItem->lParam);\r
+       if (pti == NULL) return FALSE;\r
+       return pti->Rename(pMemoMgr, this, pItem->pszText);\r
+}\r
+\r
+/////////////////////////////////////////////\r
+// Expand tree and show note\r
+/////////////////////////////////////////////\r
+\r
+static HTREEITEM FindItem2(HWND hWnd, HTREEITEM hParent, LPCTSTR pStr, DWORD nLen)\r
+{\r
+       HTREEITEM hItem = TreeView_GetChild(hWnd, hParent);\r
+       TV_ITEM ti;\r
+\r
+       TCHAR buf[MAX_PATH + 1];\r
+       ti.mask = TVIF_TEXT | TVIF_PARAM;\r
+       ti.cchTextMax = MAX_PATH;\r
+       ti.pszText = buf;\r
+\r
+       while(hItem) {\r
+               ti.hItem = hItem;\r
+               TreeView_GetItem(hWnd, &ti);\r
+\r
+               if (_tcsnicmp(buf, pStr, nLen) == 0 && *(buf + nLen) == TEXT('\0')) {\r
+                       return hItem;\r
+               }\r
+\r
+               hItem = TreeView_GetNextSibling(hWnd, hItem);\r
+       }\r
+       return NULL;\r
+}\r
+\r
+HTREEITEM MemoSelectView::ShowItemByURI(const TomboURI *pURI, BOOL bSelChange, BOOL bOpenNotes)\r
+{\r
+       HTREEITEM hCurrent;\r
+\r
+       // get root node\r
+       TString sRepo;\r
+       if (!pURI->GetRepositoryName(&sRepo)) return FALSE;\r
+       hCurrent = GetRootItem(sRepo.Get());\r
+       if (hCurrent == NULL) return NULL;\r
+\r
+       // expand root node\r
+       if (!IsExpand(hCurrent)) {\r
+               TreeView_Expand(hViewWnd, hCurrent, TVE_EXPAND);\r
+       }\r
+\r
+       if (bSelChange) TreeView_SelectItem(hViewWnd, hCurrent);\r
+\r
+       TomboURIItemIterator itr(pURI);\r
+       if (!itr.Init()) return NULL;\r
+\r
+       TreeViewItem *pItem = NULL;\r
+       LPCTSTR p;\r
+       for (itr.First(); p = itr.Current(); itr.Next()) {\r
+               HTREEITEM h;\r
+               if (itr.IsLeaf()) {\r
+                       TString sHeadLine;\r
+                       if (!g_Repository.GetHeadLine(pURI, &sHeadLine)) return NULL;\r
+                       h = FindItem2(hViewWnd, hCurrent, sHeadLine.Get(), _tcslen(sHeadLine.Get()));\r
+               } else {\r
+                       h = FindItem2(hViewWnd, hCurrent, p, _tcslen(p));\r
+               }\r
+\r
+               if (h) {\r
+                       hCurrent = h;\r
+\r
+                       pItem = GetTVItem(hCurrent);\r
+\r
+                       if (pItem->HasMultiItem() && !IsExpand(hCurrent)) {\r
+                               TreeView_Expand(hViewWnd, hCurrent, TVE_EXPAND);\r
+                       }\r
+               }\r
+       }\r
+\r
+       if (hCurrent && bSelChange) {\r
+               TreeView_SelectItem(hViewWnd, hCurrent);\r
+       }\r
+\r
+       if (pItem) {\r
+               DWORD nOption = bOpenNotes ? OPEN_REQUEST_MSVIEW_ACTIVE : OPEN_REQUEST_MDVIEW_ACTIVE;\r
+               pItem->OpenMemo(this, nOption);\r
+       }\r
+       return hCurrent;\r
+}\r
+\r
+/////////////////////////////////////////////\r
+// Insert grep result\r
+/////////////////////////////////////////////\r
+\r
+BOOL MemoSelectView::InsertVirtualFolder(const VFInfo *pInfo)\r
+{\r
+       HTREEITEM hSearchRoot = GetRootItem(VFOLDER_REPO_NAME);\r
+       TreeViewVirtualFolderRoot *pVFRoot = (TreeViewVirtualFolderRoot*)GetTVItem(hSearchRoot);\r
+       return pVFRoot->AddSearchResult(this, pInfo);\r
+}\r
+\r
+/////////////////////////////////////////////\r
+// Get virtual folder root instance\r
+/////////////////////////////////////////////\r
+void MemoSelectView::CloseVFRoot()\r
+{\r
+       HTREEITEM hSearchRoot = GetRootItem(VFOLDER_REPO_NAME);\r
+       if (IsExpand(hSearchRoot)) {\r
+               TreeCollapse(hSearchRoot);\r
+       }\r
+}\r
+\r
+/////////////////////////////////////////////\r
+// select node\r
+/////////////////////////////////////////////\r
+\r
+void MemoSelectView::SelUpFolderWithoutOpen()\r
+{\r
+       HTREEITEM hItem;\r
+       TreeViewItem *pItem = GetCurrentItem(&hItem);\r
+       HTREEITEM hParent = TreeView_GetParent(hViewWnd, hItem);\r
+       if (hParent) {\r
+               TreeView_SelectItem(hViewWnd, hParent);\r
+       }\r
+}\r
+\r
+void MemoSelectView::SelNextBrother()\r
+{\r
+       HTREEITEM hItem;\r
+       TreeViewItem *pItem = GetCurrentItem(&hItem);\r
+\r
+       HTREEITEM h = TreeView_GetNextSibling(hViewWnd, hItem);\r
+       if (h) {\r
+               TreeView_SelectItem(hViewWnd, h);\r
+       }\r
+}\r
+\r
+void MemoSelectView::SelPrevBrother()\r
+{\r
+       HTREEITEM hItem;\r
+       TreeViewItem *pItem = GetCurrentItem(&hItem);\r
+\r
+       HTREEITEM h = TreeView_GetPrevSibling(hViewWnd, hItem);\r
+       if (h) {\r
+               TreeView_SelectItem(hViewWnd, h);\r
+       }\r
+}\r
+\r
+static HIMAGELIST CreateSelectViewImageList(HINSTANCE hInst)\r
+{\r
+       HIMAGELIST hImageList;\r
+       // Create Imagelist.\r
+       if ((hImageList = ImageList_Create(IMAGE_CX, IMAGE_CY, ILC_MASK, NUM_MEMOSELECT_BITMAPS, 0)) == NULL) return NULL;\r
+#if defined(FOR_VGA)\r
+       HBITMAP hBmp = LoadBitmap(hInst, MAKEINTRESOURCE(IDB_MEMOSELECT_IMAGES24));\r
+#else\r
+       HBITMAP hBmp = LoadBitmap(hInst, MAKEINTRESOURCE(IDB_MEMOSELECT_IMAGES));\r
+#endif\r
+       // Transparent color is GREEN\r
+       COLORREF rgbTransparent = RGB(0,255,0);\r
+       ImageList_AddMasked(hImageList, hBmp, rgbTransparent);\r
+       DeleteObject(hBmp);\r
+\r
+       return hImageList;\r
+}\r
diff --git a/Src/MemoSelectView.h b/Src/MemoSelectView.h
new file mode 100644 (file)
index 0000000..f89d264
--- /dev/null
@@ -0,0 +1,200 @@
+#ifndef MEMOSELECTVIEW_H\r
+#define MEMOSELECTVIEW_H\r
+\r
+class MemoManager;\r
+class TString;\r
+class TreeViewItem;\r
+class MemoLocator;\r
+class TreeViewVirtualFolderRoot;\r
+class VFManager;\r
+class VFInfo;\r
+class TomboURI;\r
+struct MSViewRootInfo;\r
+\r
+class MemoSelectView {\r
+\r
+       /////////////////////////////\r
+       // Window related members\r
+\r
+       HWND hViewWnd;\r
+\r
+       // root node\r
+       MSViewRootInfo *pRoots;\r
+       DWORD nNumRoots;\r
+\r
+       HIMAGELIST hSelectViewImgList;\r
+\r
+       MemoManager *pMemoMgr;\r
+\r
+       /////////////////////////////\r
+       // for Cut/Copy/Paste\r
+       TreeViewItem *pClipItem;\r
+       BOOL bCut;\r
+\r
+       // mode flags\r
+       BOOL bAutoLoadMode;\r
+       BOOL bSingleClickMode;\r
+\r
+       void SetShareArea(TreeViewItem *pItem);\r
+\r
+       void DeleteOneItem(HTREEITEM hItem);\r
+       void DeleteItemsRec(HTREEITEM hFirst);\r
+\r
+       ///////////////////////////////////\r
+\r
+       void SetIcon(TreeViewItem* p, DWORD nStatus);\r
+\r
+       ///////////////////////////////////\r
+       LRESULT EditLabel(TVITEM *pItem);\r
+\r
+protected:\r
+       HTREEITEM GetRootItem(LPCTSTR pRep);\r
+\r
+public:\r
+       /////////////////////////////\r
+       // Initialize functions\r
+\r
+       MemoSelectView() : hViewWnd(NULL), pMemoMgr(NULL), bAutoLoadMode(FALSE), bSingleClickMode(FALSE), pRoots(NULL), nNumRoots(0) {}\r
+       ~MemoSelectView();\r
+       BOOL Init(MemoManager *p) { pMemoMgr = p; bCut = FALSE; pClipItem = NULL; return TRUE; }\r
+       BOOL Create(LPCTSTR pName, RECT &r, HWND hParent, DWORD nID, HINSTANCE hInst, HFONT hFont);\r
+\r
+       /////////////////////////////\r
+       // display related funcs\r
+\r
+       BOOL Show(int nCmdShow);\r
+       void SetFocus();\r
+       void SetFont(HFONT hFont);\r
+\r
+       LRESULT OnNotify(HWND hWnd, WPARAM wParam, LPARAM lParam);\r
+\r
+#if defined(PLATFORM_WIN32) || defined(PLATFORM_HPC) || defined(PLATFORM_PKTPC) || defined(PLATFORM_WM5)\r
+       void OnNotify_RClick(POINT pt);\r
+#endif\r
+       BOOL OnCommand(HWND hWnd, WPARAM wParam, LPARAM lParam);\r
+\r
+       void OnActionButton(HWND hWnd);\r
+       BOOL OnHotKey(HWND hWnd, WPARAM wParam);\r
+       void OnGetFocus();\r
+       void OnDelete(HTREEITEM hItem, TreeViewItem *pItem);\r
+       void OnEncrypt(TreeViewItem *pItem);\r
+       void OnDecrypt(TreeViewItem *pItem);\r
+       void OnEditLabel(HTREEITEM hItem);\r
+\r
+       // psudo clipboard\r
+       void OnCut(TreeViewItem *pItem);\r
+       void OnCopy(TreeViewItem *pItem);\r
+       void OnPaste();\r
+\r
+       void GetSize(LPWORD pWidth, LPWORD pHeight);\r
+       void GetSize(LPRECT pRect);\r
+       void GetClientRect(LPRECT pRect);\r
+\r
+       void MoveWindow(DWORD x, DWORD y, DWORD nWidth, DWORD nHeight);\r
+\r
+       /////////////////////////////\r
+       // accessor/mutator for flags\r
+\r
+       MemoManager *GetManager() { return pMemoMgr; }\r
+\r
+       void SetAutoLoadMode(BOOL bMode) { bAutoLoadMode = bMode; }\r
+       BOOL IsAutoLoadMode() { return bAutoLoadMode; }\r
+\r
+       void SetSingleClickMode(BOOL bMode) { bSingleClickMode = bMode; }\r
+       BOOL IsSingleClickMode() { return bSingleClickMode; }\r
+\r
+       /////////////////////////////\r
+       // Key\r
+       void SelUpFolderWithoutOpen();\r
+       void SelNextBrother();\r
+       void SelPrevBrother();\r
+\r
+       /////////////////////////////\r
+       // item ops\r
+\r
+       BOOL InitTree(VFManager *pManager);\r
+       BOOL DeleteAllItem();\r
+\r
+       /////////////////////////////\r
+       // Expand/collapse tree\r
+       void ToggleExpandFolder(HTREEITEM hItem, UINT stat);\r
+       void TreeExpand(HTREEITEM hItem);\r
+       void TreeCollapse(HTREEITEM hItem);\r
+       BOOL IsExpand(HTREEITEM hItem);\r
+\r
+       HIMAGELIST GetImageList() { return hSelectViewImgList; }\r
+\r
+       // Insert file node\r
+       HTREEITEM InsertFile(HTREEITEM hParent, const TomboURI *pURI, LPCTSTR pTitle, BOOL bInsertLast, BOOL bLink);\r
+\r
+       // Insert folder node\r
+       // if bInsertLast is TRUE, Insert folder without sorting.\r
+       HTREEITEM InsertFolder(HTREEITEM hParent, LPCTSTR pName, TreeViewItem *tvi, BOOL bInsertLast);\r
+\r
+       // update headline string\r
+       BOOL UpdateHeadLine(LPCTSTR pOldURI, TomboURI *pNewURI, LPCTSTR pNewHeadLine);\r
+\r
+       // TreeViewItem\82Ì\8fó\91Ô\82ª\95Ï\82í\82Á\82½\82±\82Æ\82É\82æ\82é\83r\83\85\81[\82Ö\82Ì\95Ï\8dX\88Ë\97\8a\r
+       BOOL UpdateItemStatusNotify(TreeViewItem *pItem, LPCTSTR pNewHeadLine);\r
+\r
+       // \8c»\8dÝ\91I\91ð\82µ\82Ä\82¢\82é\83A\83C\83e\83\80\82Ì\83p\83X\82ð\8eæ\93¾\82·\82é\81B\r
+       // \91I\91ð\82µ\82Ä\82¢\82é\83A\83C\83e\83\80\82ª\83t\83H\83\8b\83_\82Ì\8fê\8d\87\81A\8e©\90g\82Ü\82Å\82Ì\83p\83X\82ð\8aÜ\82Þ\r
+       HTREEITEM GetPathForNewItem(TString *pPath, TreeViewItem *pItem = NULL);\r
+\r
+       HTREEITEM GetParentItem(HTREEITEM hItem) { return TreeView_GetParent(hViewWnd, hItem); }\r
+\r
+       BOOL CreateNewFolder(HTREEITEM hItem, LPCTSTR pFolder);\r
+       BOOL MakeNewFolder(HWND hWnd, TreeViewItem *pItem);\r
+\r
+       // Search tree and get HTREEITEM\r
+       HTREEITEM GetItemFromURI(LPCTSTR pURI);\r
+\r
+       // returns TreeViewItem associated with current selected node.\r
+       // if pItem is not null set HTREEITEM current selected.\r
+       // if no node is selected, return NULL.\r
+       TreeViewItem *GetCurrentItem(HTREEITEM *pItem = NULL);\r
+\r
+       // returns current selected node's URI.\r
+       // if no node is selected, return NULL.\r
+       // Be careful the return value may be released by MemoSelectView when closing tree\r
+       // so if you want to keep it, copy the instance in the situation.\r
+       const TomboURI *GetCurrentSelectedURI();\r
+\r
+       TreeViewItem *GetTVItem(HTREEITEM h);\r
+\r
+       BOOL IsCliped(TreeViewItem* p) { return p == pClipItem; }\r
+       LONG GetItem(TV_ITEM *p) { return TreeView_GetItem(hViewWnd, p); }\r
+\r
+       LPTSTR GeneratePath(HTREEITEM hItem, LPTSTR pBuf, DWORD nSiz);\r
+\r
+       // Choose specified notes. if tree is collapsed, expand one.\r
+       HTREEITEM ShowItemByURI(const TomboURI *pURI, BOOL bSelChange = TRUE, BOOL bOpenNotes = TRUE);\r
+\r
+       /////////////////////////////\r
+       // Virtual folder\r
+       BOOL InsertVirtualFolder(const VFInfo *pInfo);\r
+\r
+       void CloseVFRoot();\r
+\r
+       /////////////////////////////\r
+       // Control menu\r
+       void ControlMenu();\r
+};\r
+\r
+/////////////////////////////////////////\r
+// Node status definitions\r
+/////////////////////////////////////////\r
+\r
+// initialized\r
+#define MEMO_VIEW_STATE_INIT                   1\r
+\r
+// in clipboard\r
+#define MEMO_VIEW_STATE_CLIPED_SET             (1 << 1)\r
+#define MEMO_VIEW_STATE_CLIPED_CLEAR   (1 << 2)\r
+\r
+// opened\r
+#define MEMO_VIEW_STATE_OPEN_SET               (1 << 3)\r
+#define MEMO_VIEW_STATE_OPEN_CLEAR             (1 << 4)\r
+\r
+\r
+#endif
\ No newline at end of file
diff --git a/Src/Message.cpp b/Src/Message.cpp
new file mode 100644 (file)
index 0000000..d0256c2
--- /dev/null
@@ -0,0 +1,183 @@
+#include <windows.h>\r
+#include <tchar.h>\r
+#include "Tombo.h"\r
+#include "Message.h"\r
+#include "Uniconv.h"\r
+\r
+#include "TString.h"\r
+\r
+//////////////////////////////////////////////////\r
+// prototype\r
+//////////////////////////////////////////////////\r
+static void ReplaceSpecialChar(LPTSTR pSrc);\r
+\r
+#include "MsgRes/DefaultMsg.cpp"\r
+\r
+ ////////////////////////////////////////////////\r
+/////////////////////////////////////////////////\r
+// TomboMessage implimentation\r
+/////////////////////////////////////////////////\r
+////////////////////////////////////////////////\r
+\r
+//////////////////////////////////////////////////\r
+// ctor & initializer\r
+//////////////////////////////////////////////////\r
+\r
+TomboMessage::TomboMessage() : pMsgBuf(NULL)\r
+{\r
+}\r
+\r
+TomboMessage::~TomboMessage()\r
+{\r
+       delete [] pMsgBuf;\r
+}\r
+\r
+BOOL TomboMessage::Init()\r
+{\r
+       // load default message\r
+       for (DWORD i = 0; i < NUM_MESSAGES; i++) {\r
+               pMsg[i] = defaultMsg[i];\r
+       }\r
+\r
+       TCHAR buf[MAX_PATH * 2];\r
+       TCHAR buf2[MAX_PATH * 2];\r
+\r
+       GetModuleFileName(NULL, buf, MAX_PATH);\r
+       GetFilePath(buf2, buf);\r
+\r
+       _tcscat(buf2, TOMBO_MSG_DEF_FILE);\r
+\r
+       HANDLE h = CreateFile(buf2, GENERIC_READ, FILE_SHARE_READ, \r
+                                                       NULL, OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL, NULL);\r
+       if (h != INVALID_HANDLE_VALUE) {\r
+               LoadMsg(h);\r
+       }\r
+       CloseHandle(h);\r
+       return TRUE;\r
+}\r
+\r
+//////////////////////////////////////////////////\r
+// Get data from file and convert to native code.\r
+//////////////////////////////////////////////////\r
+// In windows platform, code is for each MBCS codeset.\r
+// In CE platform, code is UCS2.\r
+\r
+LPTSTR TomboMessage::GetNatvieData(HANDLE hFile)\r
+{\r
+       // read UTF-8 file\r
+       DWORD nBytes = GetFileSize(hFile, NULL);\r
+       char *pTmp = new char[nBytes + 1];\r
+       if (!ReadFile(hFile, (LPBYTE)pTmp, nBytes, &nBytes, NULL)) {\r
+               delete [] pTmp;\r
+               return NULL;\r
+       }\r
+       *(pTmp + nBytes) = '\0';\r
+\r
+#if defined(PLATFORM_WIN32)\r
+       // convert to UCS2 data\r
+       LPWSTR pW = ConvUTF8ToUCS2(pTmp);\r
+       delete [] pTmp;\r
+\r
+       // convert to MBCS data\r
+       int nSize = WideCharToMultiByte(CP_ACP, 0, pW, -1, NULL, 0, NULL, NULL);\r
+       char *pData = new char[nSize + 1];\r
+       WideCharToMultiByte(CP_ACP, 0, pW, -1, pData, nSize, NULL, NULL);\r
+       delete [] pW;\r
+#else\r
+       LPWSTR pData = ConvUTF8ToUCS2(pTmp);\r
+       delete[] pTmp;\r
+#endif\r
+       return pData;\r
+}\r
+\r
+//////////////////////////////////////////////////\r
+// Load message\r
+//////////////////////////////////////////////////\r
+\r
+BOOL TomboMessage::LoadMsg(HANDLE h)\r
+{\r
+       LPTSTR p = pMsgBuf = GetNatvieData(h);\r
+       if (p == NULL) return FALSE;\r
+\r
+       DWORD i = 0;\r
+\r
+       pMsg[i++] = p;\r
+       while (*p) {\r
+               if (*p == TEXT('\r') && *(p+1) == TEXT('\n')) {\r
+                       *p = *(p+1) = TEXT('\0');\r
+                       p += 2;\r
+                       if (i >= NUM_MESSAGES) break;\r
+                       if (_tcslen(p) == 0) break;\r
+                       pMsg[i++] = p;\r
+               }\r
+#if defined(PLATFORM_WIN32)\r
+               p = CharNext(p);\r
+#else\r
+               p++;\r
+#endif\r
+       }\r
+\r
+       DWORD nValid = i;\r
+\r
+       for (i= 0; i < nValid; i++) {\r
+               ReplaceSpecialChar((LPTSTR)pMsg[i]);\r
+       }\r
+       return TRUE;\r
+}\r
+\r
+//////////////////////////////////////////////////\r
+// Retrieve message\r
+//////////////////////////////////////////////////\r
+\r
+LPCTSTR TomboMessage::GetMsg(DWORD nMsgID)\r
+{\r
+       if (nMsgID == 0 || nMsgID > NUM_MESSAGES) return NULL;\r
+       return pMsg[nMsgID - 1];\r
+}\r
+\r
+//////////////////////////////////////////////////\r
+// Replace escape char to real char\r
+//////////////////////////////////////////////////\r
+\r
+static void ReplaceSpecialChar(LPTSTR pSrc)\r
+{\r
+       LPTSTR p;\r
+       LPTSTR q;\r
+       p = q = pSrc;\r
+       while(*p) {\r
+               if (*p == TEXT('\\')) {\r
+                       switch (*(p+1)) {\r
+                       case TEXT('r'):\r
+                               *q++ = TEXT('\r');\r
+                               p+= 2;\r
+                               break;\r
+                       case TEXT('n'):\r
+                               *q++ = TEXT('\n');\r
+                               p+= 2;\r
+                               break;\r
+                       case TEXT('\\'):\r
+                               *q++ = TEXT('\\');\r
+                               p+= 2;\r
+                               break;\r
+                       case TEXT('t'):\r
+                               *q++ = TEXT('\t');\r
+                               p+= 2;\r
+                               break;\r
+                       case TEXT('0'):\r
+                               *q++ = TEXT('\0');\r
+                               p+= 2;\r
+                               break;\r
+                       default:\r
+                               *q++ = *p++;\r
+                       }\r
+               } else {\r
+#if defined(PLATFORM_WIN32)\r
+                       if (IsDBCSLeadByte(*p)) {\r
+                               *q++ = *p++;\r
+                       }\r
+#endif\r
+                       *q++ = *p++;\r
+               }\r
+       }\r
+       *q = TEXT('\0');\r
+}\r
diff --git a/Src/Message.h b/Src/Message.h
new file mode 100644 (file)
index 0000000..2d6b61f
--- /dev/null
@@ -0,0 +1,42 @@
+#ifndef MESSAGE_H\r
+#define MESSAGE_H\r
+\r
+//////////////////////////////////////////////////\r
+// message definition\r
+//////////////////////////////////////////////////\r
+\r
+#include "MsgRes/MsgDef.h"\r
+\r
+//////////////////////////////////////////////////\r
+// Message manager\r
+//////////////////////////////////////////////////\r
+\r
+class TomboMessage {\r
+       DWORD nNumMsgs;\r
+       LPCTSTR pMsg[NUM_MESSAGES];\r
+\r
+       LPTSTR pMsgBuf;\r
+\r
+protected:\r
+       BOOL LoadMsg(HANDLE hFile);\r
+       LPTSTR GetNatvieData(HANDLE hFile);\r
+\r
+public:\r
+       TomboMessage();\r
+       ~TomboMessage();\r
+\r
+       BOOL Init();\r
+\r
+\r
+       LPCTSTR GetMsg(DWORD nMsgID);\r
+};\r
+\r
+//////////////////////////////////////////////////\r
+// message manager instance declaration\r
+//////////////////////////////////////////////////\r
+\r
+extern TomboMessage g_mMsgRes;\r
+\r
+\r
+#endif\r
+\r
diff --git a/Src/MsgRes/CheckGenerateRes.pl b/Src/MsgRes/CheckGenerateRes.pl
new file mode 100644 (file)
index 0000000..267ef2d
--- /dev/null
@@ -0,0 +1,73 @@
+# check differences between MsgIDList and each resource definitions.\r
+\r
+if ($#ARGV != 1) {\r
+       print "Usage : CheckRes.pl <resource file> <outfile>\n";\r
+       exit 0;\r
+}\r
+\r
+# read MsgIDList\r
+\r
+open(ID, "MsgIDList.txt") || die;\r
+while(<ID>) {\r
+       chop;\r
+       $listinfo{$_} = "u";\r
+}\r
+close(ID);\r
+\r
+# compare to resource file\r
+open(RES, $ARGV[0]) || die;\r
+$line = 1;\r
+while(<RES>) {\r
+       chop;\r
+       split(/ /);\r
+\r
+       if ($listinfo{$_[0]} eq "u") {\r
+               # the ID is exists in list and occures first time.\r
+               $listinfo{$_[0]} = "e";\r
+       } elsif (defined($listinfo{$_[0]})) {\r
+               $listinfo{$_[0]} = "d";\r
+       } else {\r
+               # unknown ID\r
+               $listinfo{$_[0]} = "x";\r
+       }\r
+       $msgline{$_[0]} = $_[1];\r
+       $line++;\r
+}\r
+close(RES);\r
+\r
+$excessive="";\r
+$insuff="";\r
+$dup="";\r
+\r
+# print result\r
+foreach $i (keys(%listinfo)) {\r
+       next if ($listinfo{$i} eq "e");\r
+\r
+       if ($listinfo{$i} eq "x") {\r
+               $excessive .= " $i";\r
+       } elsif ($listinfo{$i} eq "d") {\r
+               $dup .= " $i";\r
+       } elsif ($listinfo{$i} eq "u") {\r
+               $insuff .= " $i";\r
+       }\r
+}\r
+\r
+print "Excessive list = $excessive\n" if ($excessive ne "");\r
+print "Insufficent list = $insuff\n" if ($insuff ne "");\r
+print "Duplicate list = $dup\n" if ($dup ne "");\r
+\r
+if ($excessive ne "" || $insuff ne "" || $dup ne "") {\r
+       exit 1;\r
+}\r
+\r
+print "OK.\n";\r
+\r
+\r
+open(ID, "MsgIDList.txt") || die;\r
+open(OUT, ">$ARGV[1]") || die;\r
+while(<ID>) {\r
+       chop;\r
+       print OUT "$msgline{$_}\n";\r
+}\r
+close(OUT);\r
+close(ID);\r
diff --git a/Src/MsgRes/DefaultMsg.cpp b/Src/MsgRes/DefaultMsg.cpp
new file mode 100644 (file)
index 0000000..bd584e6
--- /dev/null
@@ -0,0 +1,304 @@
+// This file is generated by GenBuildInResource.pl. Do not edit this file.\r
+static LPCTSTR defaultMsg[] = {\r
+       TEXT("English"),\r
+       TEXT("New Memo"),\r
+       TEXT("Return to list"),\r
+       TEXT("Save"),\r
+       TEXT("Insert date1"),\r
+       TEXT("Insert date2"),\r
+       TEXT("Root"),\r
+       TEXT("Tool"),\r
+       TEXT("Edit"),\r
+       TEXT("Initialize APP button failed."),\r
+       TEXT("New"),\r
+       TEXT("Update"),\r
+       TEXT("View"),\r
+       TEXT("memo"),\r
+       TEXT("Save memo failed(%d)."),\r
+       TEXT("Get SIP status failed."),\r
+       TEXT("Create folder failed."),\r
+       TEXT("Erase password in memory"),\r
+       TEXT("Erase password"),\r
+       TEXT("Folding failed."),\r
+       TEXT("Not enough memory."),\r
+       TEXT("Password doesn't match."),\r
+       TEXT("Can't get password."),\r
+       TEXT("Set timer failed."),\r
+       TEXT("Remove directory failed."),\r
+       TEXT("There are files that aren't memos."),\r
+       TEXT("Remove file failed."),\r
+       TEXT("Create directory failed."),\r
+       TEXT("Copy file failed."),\r
+       TEXT("Memo has been modified. Save changes?"),\r
+       TEXT("Confirm"),\r
+       TEXT("Can't open memo"),\r
+       TEXT("Password doesn't match. Continue?"),\r
+       TEXT("Password doesn't match."),\r
+       TEXT("Password mismatch"),\r
+       TEXT("Directory doesn't exist. Create?"),\r
+       TEXT("Create directory"),\r
+       TEXT("Choose folder"),\r
+       TEXT("Register password."),\r
+       TEXT("Change password"),\r
+       TEXT("Please set password."),\r
+       TEXT("Get password failed."),\r
+       TEXT("Get fingerprint failed."),\r
+       TEXT("Password has registered."),\r
+       TEXT("Register password failed."),\r
+       TEXT("Save data failed."),\r
+       TEXT("Encryption failed.(%d)"),\r
+       TEXT("Decryption faield.(%d)"),\r
+       TEXT("Move failed."),\r
+       TEXT("Copy failed."),\r
+       TEXT("String not found"),\r
+       TEXT("Delete selected memo?"),\r
+       TEXT("Delete memo"),\r
+       TEXT("Delete memo failed."),\r
+       TEXT("Delete memo that before encrypted failed. Please delete manually."),\r
+       TEXT("Delete memo that before decrypted failed. Please delete manually."),\r
+       TEXT("No filename."),\r
+       TEXT("Same name file exists."),\r
+       TEXT("Rename file failed(%d)."),\r
+       TEXT("Delete selected folder?"),\r
+       TEXT("Delete folder"),\r
+       TEXT("No foldername."),\r
+       TEXT("Same folder name exists."),\r
+       TEXT("Rename folder failed(%d)."),\r
+       TEXT("Get dateformat failed."),\r
+       TEXT("Can't set root folder as '\\'"),\r
+       TEXT("%y\t:Year(2001)\r\n%Y\t:Year(01)\r\n%M\t:Month(01,02,..)\r\n%b\t:Month(Jan,Feb,..)\r\n%d\t:Day(01,02..)\r\n%D\t:Day(1,2,..)\r\n%W\t:WDay(Sun,Mon,..)\r\n%H\t:Hour(12H:00..11)\r\n%I\t:Hour(12H:01..12)\r\n%h\t:Hour(24H)\r\n%a\t:AM,PM\r\n%m\t:Min(01,02,..)\r\n%s\t:Sec(01,02,..)\r\n%%\t:\"%\"\r\n%n\t:newline\r\n%fn\t:file path(n is 0-9)\r\n%Fn\t:file path"),\r
+       TEXT("Search result"),\r
+       TEXT("Encrypt files under the folder?"),\r
+       TEXT("Encrypt files"),\r
+       TEXT("Delete some plain file failed."),\r
+       TEXT("Some files are not encrypted."),\r
+       TEXT("Decrypt files under the folder?"),\r
+       TEXT("Decrypt files"),\r
+       TEXT("Delete some encrypted file failed."),\r
+       TEXT("Some files are not decrypted."),\r
+       TEXT("Self test of encryption libs failed(%s). Encryption are not work correctly."),\r
+       TEXT("Self test failed"),\r
+       TEXT("Wait a moment..."),\r
+       TEXT("Search failed(%d)."),\r
+       TEXT("Search has been canceled."),\r
+       TEXT("Quick filter"),\r
+       TEXT("Create virtual folder failed."),\r
+       TEXT("Grep result"),\r
+       TEXT("Virtual folder name"),\r
+       TEXT("Delete selected virtual folder?"),\r
+       TEXT("Delete virtual folder"),\r
+       TEXT("Filter settings"),\r
+       TEXT("Source"),\r
+       TEXT("Filter"),\r
+       TEXT("View path"),\r
+       TEXT("Filter ype"),\r
+       TEXT("Condition"),\r
+       TEXT("Find"),\r
+       TEXT("Num of items"),\r
+       TEXT("Last update"),\r
+       TEXT("Sort"),\r
+       TEXT("%d item(s)"),\r
+       TEXT("Newer than %d day before"),\r
+       TEXT("Older than %d day before"),\r
+       TEXT("Dictionary order"),\r
+       TEXT("Reverse dic order"),\r
+       TEXT("Old order of last update"),\r
+       TEXT("New order of last update"),\r
+       TEXT("Old order of create date"),\r
+       TEXT("New order of create date"),\r
+       TEXT("Asc order of file size"),\r
+       TEXT("Dsc order of file size"),\r
+       TEXT("Initialize dialog failed."),\r
+       TEXT("Generate pattern failed"),\r
+       TEXT("Please set positive number"),\r
+       TEXT("Invalid font size"),\r
+       TEXT("Dst folder is subfolder of src folder"),\r
+       TEXT("Not display path"),\r
+       TEXT("View before file name"),\r
+       TEXT("View after file name"),\r
+       TEXT("Name"),\r
+       TEXT("Path"),\r
+       TEXT("Delete bookmarks"),\r
+       TEXT("Deleting selected bookmarks. Are you sure?"),\r
+       TEXT("Memo"),\r
+       TEXT("Password"),\r
+       TEXT("Font"),\r
+       TEXT("Date"),\r
+       TEXT("Memo view"),\r
+       TEXT("Security"),\r
+       TEXT("Toppage"),\r
+       TEXT("Property"),\r
+       TEXT("Main"),\r
+       TEXT("Save"),\r
+       TEXT("AppButton"),\r
+       TEXT("SIP"),\r
+       TEXT("Encoding"),\r
+       TEXT("Memo"),\r
+       TEXT("Tool"),\r
+       TEXT("Edit"),\r
+       TEXT("NewFolder"),\r
+       TEXT("Cut"),\r
+       TEXT("Copy"),\r
+       TEXT("Paste"),\r
+       TEXT("Rename"),\r
+       TEXT("Delete"),\r
+       TEXT("Find"),\r
+       TEXT("Find Next"),\r
+       TEXT("Find Prev"),\r
+       TEXT("Quick filter"),\r
+       TEXT("Encrypt"),\r
+       TEXT("Decrypt"),\r
+       TEXT("Select All"),\r
+       TEXT("Exit"),\r
+       TEXT("About"),\r
+       TEXT("Options"),\r
+       TEXT("Virtual folder"),\r
+       TEXT("ForgetPass"),\r
+       TEXT("Wrap Text"),\r
+       TEXT("&File"),\r
+       TEXT("New &Memo\tCtrl+N"),\r
+       TEXT("New folder"),\r
+       TEXT("&Rename file"),\r
+       TEXT("&Delete\tDEL"),\r
+       TEXT("&Save\tCtrl+S"),\r
+       TEXT("E&xit"),\r
+       TEXT("&Edit"),\r
+       TEXT("Cu&t\tCtrl+X"),\r
+       TEXT("&Copy\tCtrl+C"),\r
+       TEXT("&Paste\tCtrl+V"),\r
+       TEXT("Select &All\tCtrl+A"),\r
+       TEXT("&Find\tCtrl+F"),\r
+       TEXT("Find Prev\tF3"),\r
+       TEXT("Find Next\tShift+F3"),\r
+       TEXT("Quick filter\tCtrl+G"),\r
+       TEXT("Insert Date1\tCtrl+1"),\r
+       TEXT("Insert Date2\tCtrl+2"),\r
+       TEXT("&BookMark"),\r
+       TEXT("&Add bookmark"),\r
+       TEXT("&Edit bookmark"),\r
+       TEXT("&Tools"),\r
+       TEXT("Wrap Text"),\r
+       TEXT("Two panes"),\r
+       TEXT("Status bar"),\r
+       TEXT("Stay topmost"),\r
+       TEXT("&Encrypt\tCtrl+E"),\r
+       TEXT("Decry&pt\tCtrl+P"),\r
+       TEXT("Erase password"),\r
+       TEXT("Virtual folder"),\r
+       TEXT("&Options"),\r
+       TEXT("&Help"),\r
+       TEXT("&About TOMBO"),\r
+       TEXT("Jump to original"),\r
+       TEXT("OK"),\r
+       TEXT("Cancel"),\r
+       TEXT("Edit bookmark"),\r
+       TEXT("UP"),\r
+       TEXT("DN"),\r
+       TEXT("Delete"),\r
+       TEXT("Select File"),\r
+       TEXT("Virtual folder settings"),\r
+       TEXT("Up"),\r
+       TEXT("Dn"),\r
+       TEXT("Save"),\r
+       TEXT("New"),\r
+       TEXT("Ren"),\r
+       TEXT("Del"),\r
+       TEXT("Number filter"),\r
+       TEXT("Num Items:"),\r
+       TEXT("Find filter"),\r
+       TEXT("Search str:"),\r
+       TEXT("Case sensitive"),\r
+       TEXT("Include encrypted memo"),\r
+       TEXT("Find to file name"),\r
+       TEXT("Invert match"),\r
+       TEXT("Sort filter"),\r
+       TEXT("Sort Type:"),\r
+       TEXT("Timestamp filter"),\r
+       TEXT("days before"),\r
+       TEXT("Newer"),\r
+       TEXT("Older"),\r
+       TEXT("Up"),\r
+       TEXT("Dn"),\r
+       TEXT("Del"),\r
+       TEXT("Find"),\r
+       TEXT("Num"),\r
+       TEXT("Date"),\r
+       TEXT("Sort"),\r
+       TEXT("Target:"),\r
+       TEXT("Search:"),\r
+       TEXT("Save"),\r
+       TEXT("Name:"),\r
+       TEXT("New folder"),\r
+       TEXT("Password"),\r
+       TEXT("Default note"),\r
+       TEXT("Use selected"),\r
+       TEXT("Use blank"),\r
+       TEXT("Root folder:"),\r
+       TEXT("Folder to store Tombo Notes"),\r
+       TEXT("Sync file name and title"),\r
+       TEXT("Rename file name if headline changed."),\r
+       TEXT("Open notes read-only mode"),\r
+       TEXT("Tree:"),\r
+       TEXT("Use default font"),\r
+       TEXT("Memo:"),\r
+       TEXT("Use ClearType font(XP only)"),\r
+       TEXT("Date1:"),\r
+       TEXT("Date2:"),\r
+       TEXT("Keep cursor position"),\r
+       TEXT("Restore last cursor position when re-opening."),\r
+       TEXT("Tab stop:"),\r
+       TEXT("Set tab stop width"),\r
+       TEXT("Show title"),\r
+       TEXT("Show note title in titlebar."),\r
+       TEXT("Password timeout(min):"),\r
+       TEXT("Timeout length(1-60)."),\r
+       TEXT("Search"),\r
+       TEXT("Search str:"),\r
+       TEXT("Direction"),\r
+       TEXT("Up"),\r
+       TEXT("Down"),\r
+       TEXT("Button1"),\r
+       TEXT("Button2"),\r
+       TEXT("Button3"),\r
+       TEXT("Button4"),\r
+       TEXT("Button5"),\r
+       TEXT("Assign application button to action button. It is enabled after restarting TOMBO"),\r
+       TEXT("Disable close notes on edit view"),\r
+       TEXT("Keep space over the SIP"),\r
+       TEXT("Default(System native)"),\r
+       TEXT("Greek"),\r
+       TEXT("&Search"),\r
+       TEXT("Ext tool1"),\r
+       TEXT("Open by Explorer"),\r
+       TEXT("Open by association"),\r
+       TEXT("External Apps"),\r
+       TEXT("Use file association"),\r
+       TEXT("Application1:"),\r
+       TEXT("Application2:"),\r
+       TEXT("CAUTION:\r\nIf external application creates backup file, TOMBO is \r\n*NOT DELETE* it. Please check yourself before encryption whether backup file exists or not."),\r
+       TEXT("Choose application"),\r
+       TEXT("app(*.exe)\0*.exe\0all(*.*)\0*.*\0\0"),\r
+       TEXT("Two panes"),\r
+       TEXT("Add bookmark"),\r
+       TEXT("Edit bookmark"),\r
+       TEXT("Use ClearType font"),\r
+       TEXT("Disable save daialog"),\r
+       TEXT("Toolbar"),\r
+       TEXT("Save options failed. Change may not be reflected."),\r
+       TEXT("Use random filename"),\r
+       TEXT("When encrypting, generate file name by random number."),\r
+       TEXT("Get headline failed for some notes due to wrong password. Display ???????? the notes."),\r
+       TEXT("TOMBO registry erase tool"),\r
+       TEXT("The registry entry that TOMBO 1.14 or orlder uses are erased. Are you sure?"),\r
+       TEXT("Canceled."),\r
+       TEXT("Deleted."),\r
+       TEXT("There are no registry entry."),\r
+       TEXT("Delete failed(%d)."),\r
+       TEXT("When starting select the tree item last selected"),\r
+       TEXT("File encoding"),\r
+       TEXT("Unicode(UTF16LE)"),\r
+       TEXT("UTF-8"),\r
+       TEXT("Set file encoding. Auto detection/conversion is not supported, so do not change if you hanve already some notes."),\r
+       TEXT("Undo"),\r
+       TEXT("File"),\r
+};\r
diff --git a/Src/MsgRes/GenDefaultResource.pl b/Src/MsgRes/GenDefaultResource.pl
new file mode 100644 (file)
index 0000000..138b86d
--- /dev/null
@@ -0,0 +1,66 @@
+# Generate default message \r
+\r
+$msglist = "MsgIdList.txt";\r
+$header = "MsgDef.h";\r
+$cpp = "DefaultMsg.cpp";\r
+$baseres = "MsgDef/TomboMsg_en.txt";\r
+\r
+open(SRC, $msglist) || die;\r
+open(INCL, ">$header") || die;\r
+\r
+print INCL <<INCLHEAD ;\r
+// This file is generated by GenMsgIncl.pl. DO NOT EDIT THIS FILE.\r
+\r
+INCLHEAD\r
+\r
+#######################\r
+\r
+$i = 1;\r
+while(<SRC>) {\r
+       chop;\r
+       /^MSG_(.*)$/;\r
+       print INCL "#define MSG_ID_$1 $i\n";\r
+       print INCL "#define $_ (g_mMsgRes.GetMsg(MSG_ID_$1))\n";\r
+       print INCL "\n";\r
+       $i++;\r
+}\r
+\r
+$i--;\r
+\r
+print INCL <<INCLFOOT ;\r
+\r
+#define NUM_MESSAGES $i\r
+INCLFOOT\r
+\r
+close(INCL);\r
+close(SRC);\r
+\r
+# ====================================================\r
+\r
+open(LIST, $msglist) || die;\r
+open(OUT, ">$cpp") || die;\r
+\r
+open(SRC, $baseres) || die;\r
+while(<SRC>) {\r
+       chop;\r
+       split(/\t/);\r
+       $msgpair{$_[0]} = $_[1];\r
+}\r
+close(SRC);\r
+\r
+print OUT <<HEADER ;\r
+// This file is generated by GenBuildInResource.pl. Do not edit this file.\r
+static LPCTSTR defaultMsg[] = {\r
+HEADER\r
+\r
+while(<LIST>) {\r
+       chop;\r
+       print OUT "     TEXT(\"$msgpair{$_}\"),\n";\r
+}\r
+\r
+print OUT <<FOOTER ;\r
+};\r
+FOOTER\r
+\r
+close(LIST);\r
+close(OUT);\r
diff --git a/Src/MsgRes/GenMsg.bat b/Src/MsgRes/GenMsg.bat
new file mode 100644 (file)
index 0000000..d22fa17
--- /dev/null
@@ -0,0 +1,4 @@
+set PERL=c:\perl\bin\perl\r
+%PERL% GenDefaultResource.pl\r
+%PERL% CheckGenerateRes.pl MsgDef\TomboMsg_en.txt TomboMsg\en\TomboMsg.txt\r
+%PERL% CheckGenerateRes.pl MsgDef\TomboMsg_jp.txt TomboMsg\jp\TomboMsg.txt\r
diff --git a/Src/MsgRes/MsgDef.h b/Src/MsgRes/MsgDef.h
new file mode 100644 (file)
index 0000000..d0dc9c9
--- /dev/null
@@ -0,0 +1,907 @@
+// This file is generated by GenMsgIncl.pl. DO NOT EDIT THIS FILE.\r
+\r
+#define MSG_ID_ 1\r
+#define LANG_INFO (g_mMsgRes.GetMsg(MSG_ID_))\r
+\r
+#define MSG_ID_TOOLTIPS_NEWMEMO 2\r
+#define MSG_TOOLTIPS_NEWMEMO (g_mMsgRes.GetMsg(MSG_ID_TOOLTIPS_NEWMEMO))\r
+\r
+#define MSG_ID_TOOLTIPS_RETURNLIST 3\r
+#define MSG_TOOLTIPS_RETURNLIST (g_mMsgRes.GetMsg(MSG_ID_TOOLTIPS_RETURNLIST))\r
+\r
+#define MSG_ID_TOOLTIPS_SAVE 4\r
+#define MSG_TOOLTIPS_SAVE (g_mMsgRes.GetMsg(MSG_ID_TOOLTIPS_SAVE))\r
+\r
+#define MSG_ID_TOOLTIPS_INSDATE1 5\r
+#define MSG_TOOLTIPS_INSDATE1 (g_mMsgRes.GetMsg(MSG_ID_TOOLTIPS_INSDATE1))\r
+\r
+#define MSG_ID_TOOLTIPS_INSDATE2 6\r
+#define MSG_TOOLTIPS_INSDATE2 (g_mMsgRes.GetMsg(MSG_ID_TOOLTIPS_INSDATE2))\r
+\r
+#define MSG_ID_MEMO 7\r
+#define MSG_MEMO (g_mMsgRes.GetMsg(MSG_ID_MEMO))\r
+\r
+#define MSG_ID_TOOL 8\r
+#define MSG_TOOL (g_mMsgRes.GetMsg(MSG_ID_TOOL))\r
+\r
+#define MSG_ID_EDIT 9\r
+#define MSG_EDIT (g_mMsgRes.GetMsg(MSG_ID_EDIT))\r
+\r
+#define MSG_ID_INITAPPBTN_FAIL 10\r
+#define MSG_INITAPPBTN_FAIL (g_mMsgRes.GetMsg(MSG_ID_INITAPPBTN_FAIL))\r
+\r
+#define MSG_ID_NEW 11\r
+#define MSG_NEW (g_mMsgRes.GetMsg(MSG_ID_NEW))\r
+\r
+#define MSG_ID_UPDATE 12\r
+#define MSG_UPDATE (g_mMsgRes.GetMsg(MSG_ID_UPDATE))\r
+\r
+#define MSG_ID_RONLY 13\r
+#define MSG_RONLY (g_mMsgRes.GetMsg(MSG_ID_RONLY))\r
+\r
+#define MSG_ID_DEFAULT_HEADLINE 14\r
+#define MSG_DEFAULT_HEADLINE (g_mMsgRes.GetMsg(MSG_ID_DEFAULT_HEADLINE))\r
+\r
+#define MSG_ID_SAVE_FAILED 15\r
+#define MSG_SAVE_FAILED (g_mMsgRes.GetMsg(MSG_ID_SAVE_FAILED))\r
+\r
+#define MSG_ID_GETSIPSTAT_FAILED 16\r
+#define MSG_GETSIPSTAT_FAILED (g_mMsgRes.GetMsg(MSG_ID_GETSIPSTAT_FAILED))\r
+\r
+#define MSG_ID_CREATEFOLDER_FAILED 17\r
+#define MSG_CREATEFOLDER_FAILED (g_mMsgRes.GetMsg(MSG_ID_CREATEFOLDER_FAILED))\r
+\r
+#define MSG_ID_ERASE_PW 18\r
+#define MSG_ERASE_PW (g_mMsgRes.GetMsg(MSG_ID_ERASE_PW))\r
+\r
+#define MSG_ID_ERASE_PW_TITLE 19\r
+#define MSG_ERASE_PW_TITLE (g_mMsgRes.GetMsg(MSG_ID_ERASE_PW_TITLE))\r
+\r
+#define MSG_ID_FOLDING_FAILED 20\r
+#define MSG_FOLDING_FAILED (g_mMsgRes.GetMsg(MSG_ID_FOLDING_FAILED))\r
+\r
+#define MSG_ID_NOT_ENOUGH_MEMORY 21\r
+#define MSG_NOT_ENOUGH_MEMORY (g_mMsgRes.GetMsg(MSG_ID_NOT_ENOUGH_MEMORY))\r
+\r
+#define MSG_ID_PASS_NOT_MATCH 22\r
+#define MSG_PASS_NOT_MATCH (g_mMsgRes.GetMsg(MSG_ID_PASS_NOT_MATCH))\r
+\r
+#define MSG_ID_CANT_GET_PASS 23\r
+#define MSG_CANT_GET_PASS (g_mMsgRes.GetMsg(MSG_ID_CANT_GET_PASS))\r
+\r
+#define MSG_ID_TIMER_SET_FAILED 24\r
+#define MSG_TIMER_SET_FAILED (g_mMsgRes.GetMsg(MSG_ID_TIMER_SET_FAILED))\r
+\r
+#define MSG_ID_RMDIR_FAILED 25\r
+#define MSG_RMDIR_FAILED (g_mMsgRes.GetMsg(MSG_ID_RMDIR_FAILED))\r
+\r
+#define MSG_ID_OTHER_FILE_EXISTS 26\r
+#define MSG_OTHER_FILE_EXISTS (g_mMsgRes.GetMsg(MSG_ID_OTHER_FILE_EXISTS))\r
+\r
+#define MSG_ID_RMFILE_FAILED 27\r
+#define MSG_RMFILE_FAILED (g_mMsgRes.GetMsg(MSG_ID_RMFILE_FAILED))\r
+\r
+#define MSG_ID_MKDIR_FAILED 28\r
+#define MSG_MKDIR_FAILED (g_mMsgRes.GetMsg(MSG_ID_MKDIR_FAILED))\r
+\r
+#define MSG_ID_FILECOPY_FAILED 29\r
+#define MSG_FILECOPY_FAILED (g_mMsgRes.GetMsg(MSG_ID_FILECOPY_FAILED))\r
+\r
+#define MSG_ID_MEMO_EDITED 30\r
+#define MSG_MEMO_EDITED (g_mMsgRes.GetMsg(MSG_ID_MEMO_EDITED))\r
+\r
+#define MSG_ID_CONFIRM_SAVE 31\r
+#define MSG_CONFIRM_SAVE (g_mMsgRes.GetMsg(MSG_ID_CONFIRM_SAVE))\r
+\r
+#define MSG_ID_CANT_OPEN_MEMO 32\r
+#define MSG_CANT_OPEN_MEMO (g_mMsgRes.GetMsg(MSG_ID_CANT_OPEN_MEMO))\r
+\r
+#define MSG_ID_PASS_NOT_MATCH2 33\r
+#define MSG_PASS_NOT_MATCH2 (g_mMsgRes.GetMsg(MSG_ID_PASS_NOT_MATCH2))\r
+\r
+#define MSG_ID_PASS_NOT_MATCH3 34\r
+#define MSG_PASS_NOT_MATCH3 (g_mMsgRes.GetMsg(MSG_ID_PASS_NOT_MATCH3))\r
+\r
+#define MSG_ID_PASS_MISMATCH_TTL 35\r
+#define MSG_PASS_MISMATCH_TTL (g_mMsgRes.GetMsg(MSG_ID_PASS_MISMATCH_TTL))\r
+\r
+#define MSG_ID_IS_CREATE_DIR 36\r
+#define MSG_IS_CREATE_DIR (g_mMsgRes.GetMsg(MSG_ID_IS_CREATE_DIR))\r
+\r
+#define MSG_ID_CREATE_DIR_TTL 37\r
+#define MSG_CREATE_DIR_TTL (g_mMsgRes.GetMsg(MSG_ID_CREATE_DIR_TTL))\r
+\r
+#define MSG_ID_CHOOSE_FOLDER 38\r
+#define MSG_CHOOSE_FOLDER (g_mMsgRes.GetMsg(MSG_ID_CHOOSE_FOLDER))\r
+\r
+#define MSG_ID_REG_PASSWD 39\r
+#define MSG_REG_PASSWD (g_mMsgRes.GetMsg(MSG_ID_REG_PASSWD))\r
+\r
+#define MSG_ID_REG_PASSWD_TTL 40\r
+#define MSG_REG_PASSWD_TTL (g_mMsgRes.GetMsg(MSG_ID_REG_PASSWD_TTL))\r
+\r
+#define MSG_ID_PLEASE_SET_PASS 41\r
+#define MSG_PLEASE_SET_PASS (g_mMsgRes.GetMsg(MSG_ID_PLEASE_SET_PASS))\r
+\r
+#define MSG_ID_GET_PASS_FAILED 42\r
+#define MSG_GET_PASS_FAILED (g_mMsgRes.GetMsg(MSG_ID_GET_PASS_FAILED))\r
+\r
+#define MSG_ID_GET_FP_FAILED 43\r
+#define MSG_GET_FP_FAILED (g_mMsgRes.GetMsg(MSG_ID_GET_FP_FAILED))\r
+\r
+#define MSG_ID_PW_REGED 44\r
+#define MSG_PW_REGED (g_mMsgRes.GetMsg(MSG_ID_PW_REGED))\r
+\r
+#define MSG_ID_PW_REG_FAILED 45\r
+#define MSG_PW_REG_FAILED (g_mMsgRes.GetMsg(MSG_ID_PW_REG_FAILED))\r
+\r
+#define MSG_ID_SAVE_DATA_FAILED 46\r
+#define MSG_SAVE_DATA_FAILED (g_mMsgRes.GetMsg(MSG_ID_SAVE_DATA_FAILED))\r
+\r
+#define MSG_ID_ENCRYPTION_FAILED 47\r
+#define MSG_ENCRYPTION_FAILED (g_mMsgRes.GetMsg(MSG_ID_ENCRYPTION_FAILED))\r
+\r
+#define MSG_ID_DECRYPTION_FAILED 48\r
+#define MSG_DECRYPTION_FAILED (g_mMsgRes.GetMsg(MSG_ID_DECRYPTION_FAILED))\r
+\r
+#define MSG_ID_MOVE_MEMO_FAILED 49\r
+#define MSG_MOVE_MEMO_FAILED (g_mMsgRes.GetMsg(MSG_ID_MOVE_MEMO_FAILED))\r
+\r
+#define MSG_ID_COPY_MEMO_FAILED 50\r
+#define MSG_COPY_MEMO_FAILED (g_mMsgRes.GetMsg(MSG_ID_COPY_MEMO_FAILED))\r
+\r
+#define MSG_ID_STRING_NOT_FOUND 51\r
+#define MSG_STRING_NOT_FOUND (g_mMsgRes.GetMsg(MSG_ID_STRING_NOT_FOUND))\r
+\r
+#define MSG_ID_CONFIRM_DELETE 52\r
+#define MSG_CONFIRM_DELETE (g_mMsgRes.GetMsg(MSG_ID_CONFIRM_DELETE))\r
+\r
+#define MSG_ID_DELETE_TTL 53\r
+#define MSG_DELETE_TTL (g_mMsgRes.GetMsg(MSG_ID_DELETE_TTL))\r
+\r
+#define MSG_ID_DELETE_FAILED 54\r
+#define MSG_DELETE_FAILED (g_mMsgRes.GetMsg(MSG_ID_DELETE_FAILED))\r
+\r
+#define MSG_ID_DELETE_PREV_CRYPT_MEMO_FAILED 55\r
+#define MSG_DELETE_PREV_CRYPT_MEMO_FAILED (g_mMsgRes.GetMsg(MSG_ID_DELETE_PREV_CRYPT_MEMO_FAILED))\r
+\r
+#define MSG_ID_DEL_PREV_DECRYPT_MEMO_FAILED 56\r
+#define MSG_DEL_PREV_DECRYPT_MEMO_FAILED (g_mMsgRes.GetMsg(MSG_ID_DEL_PREV_DECRYPT_MEMO_FAILED))\r
+\r
+#define MSG_ID_NO_FILENAME 57\r
+#define MSG_NO_FILENAME (g_mMsgRes.GetMsg(MSG_ID_NO_FILENAME))\r
+\r
+#define MSG_ID_SAME_FILE 58\r
+#define MSG_SAME_FILE (g_mMsgRes.GetMsg(MSG_ID_SAME_FILE))\r
+\r
+#define MSG_ID_RENAME_FAILED 59\r
+#define MSG_RENAME_FAILED (g_mMsgRes.GetMsg(MSG_ID_RENAME_FAILED))\r
+\r
+#define MSG_ID_CONFIRM_DEL_FOLDER 60\r
+#define MSG_CONFIRM_DEL_FOLDER (g_mMsgRes.GetMsg(MSG_ID_CONFIRM_DEL_FOLDER))\r
+\r
+#define MSG_ID_DEL_FOLDER_TTL 61\r
+#define MSG_DEL_FOLDER_TTL (g_mMsgRes.GetMsg(MSG_ID_DEL_FOLDER_TTL))\r
+\r
+#define MSG_ID_NO_FOLDERNAME 62\r
+#define MSG_NO_FOLDERNAME (g_mMsgRes.GetMsg(MSG_ID_NO_FOLDERNAME))\r
+\r
+#define MSG_ID_SAME_FOLDER 63\r
+#define MSG_SAME_FOLDER (g_mMsgRes.GetMsg(MSG_ID_SAME_FOLDER))\r
+\r
+#define MSG_ID_REN_FOLDER_FAILED 64\r
+#define MSG_REN_FOLDER_FAILED (g_mMsgRes.GetMsg(MSG_ID_REN_FOLDER_FAILED))\r
+\r
+#define MSG_ID_GET_DATE_FAILED 65\r
+#define MSG_GET_DATE_FAILED (g_mMsgRes.GetMsg(MSG_ID_GET_DATE_FAILED))\r
+\r
+#define MSG_ID_ROOT_NOT_ALLOWED 66\r
+#define MSG_ROOT_NOT_ALLOWED (g_mMsgRes.GetMsg(MSG_ID_ROOT_NOT_ALLOWED))\r
+\r
+#define MSG_ID_DATEFORMAT_DESC 67\r
+#define MSG_DATEFORMAT_DESC (g_mMsgRes.GetMsg(MSG_ID_DATEFORMAT_DESC))\r
+\r
+#define MSG_ID_VIRTUAL_FOLDER 68\r
+#define MSG_VIRTUAL_FOLDER (g_mMsgRes.GetMsg(MSG_ID_VIRTUAL_FOLDER))\r
+\r
+#define MSG_ID_CONFIRM_ENCRYPT_FOLDER 69\r
+#define MSG_CONFIRM_ENCRYPT_FOLDER (g_mMsgRes.GetMsg(MSG_ID_CONFIRM_ENCRYPT_FOLDER))\r
+\r
+#define MSG_ID_CONFIRM_ENCRYPT_FOLDER_TTL 70\r
+#define MSG_CONFIRM_ENCRYPT_FOLDER_TTL (g_mMsgRes.GetMsg(MSG_ID_CONFIRM_ENCRYPT_FOLDER_TTL))\r
+\r
+#define MSG_ID_PLAIN_TEXT_DEL_FAILED 71\r
+#define MSG_PLAIN_TEXT_DEL_FAILED (g_mMsgRes.GetMsg(MSG_ID_PLAIN_TEXT_DEL_FAILED))\r
+\r
+#define MSG_ID_ENCRYPT_FAILED 72\r
+#define MSG_ENCRYPT_FAILED (g_mMsgRes.GetMsg(MSG_ID_ENCRYPT_FAILED))\r
+\r
+#define MSG_ID_CONFIRM_DECRYPT_FOLDER 73\r
+#define MSG_CONFIRM_DECRYPT_FOLDER (g_mMsgRes.GetMsg(MSG_ID_CONFIRM_DECRYPT_FOLDER))\r
+\r
+#define MSG_ID_CONFIRM_DECRYPT_FOLDER_TTL 74\r
+#define MSG_CONFIRM_DECRYPT_FOLDER_TTL (g_mMsgRes.GetMsg(MSG_ID_CONFIRM_DECRYPT_FOLDER_TTL))\r
+\r
+#define MSG_ID_CRYPT_FILE_DEL_FAILED 75\r
+#define MSG_CRYPT_FILE_DEL_FAILED (g_mMsgRes.GetMsg(MSG_ID_CRYPT_FILE_DEL_FAILED))\r
+\r
+#define MSG_ID_DECRYPT_FAILED 76\r
+#define MSG_DECRYPT_FAILED (g_mMsgRes.GetMsg(MSG_ID_DECRYPT_FAILED))\r
+\r
+#define MSG_ID_CHECKBF_FAILED 77\r
+#define MSG_CHECKBF_FAILED (g_mMsgRes.GetMsg(MSG_ID_CHECKBF_FAILED))\r
+\r
+#define MSG_ID_CHECKBF_TTL 78\r
+#define MSG_CHECKBF_TTL (g_mMsgRes.GetMsg(MSG_ID_CHECKBF_TTL))\r
+\r
+#define MSG_ID_SEARCH_CANCELING 79\r
+#define MSG_SEARCH_CANCELING (g_mMsgRes.GetMsg(MSG_ID_SEARCH_CANCELING))\r
+\r
+#define MSG_ID_SEARCH_FAILED 80\r
+#define MSG_SEARCH_FAILED (g_mMsgRes.GetMsg(MSG_ID_SEARCH_FAILED))\r
+\r
+#define MSG_ID_STRING_SEARCH_CANCELED 81\r
+#define MSG_STRING_SEARCH_CANCELED (g_mMsgRes.GetMsg(MSG_ID_STRING_SEARCH_CANCELED))\r
+\r
+#define MSG_ID_GREPTAB_MAIN_TTL 82\r
+#define MSG_GREPTAB_MAIN_TTL (g_mMsgRes.GetMsg(MSG_ID_GREPTAB_MAIN_TTL))\r
+\r
+#define MSG_ID_INSERTVFOLDER_FAIL 83\r
+#define MSG_INSERTVFOLDER_FAIL (g_mMsgRes.GetMsg(MSG_ID_INSERTVFOLDER_FAIL))\r
+\r
+#define MSG_ID_GREP_NONAME_LABEL 84\r
+#define MSG_GREP_NONAME_LABEL (g_mMsgRes.GetMsg(MSG_ID_GREP_NONAME_LABEL))\r
+\r
+#define MSG_ID_VFOLDER_NAME_TTL 85\r
+#define MSG_VFOLDER_NAME_TTL (g_mMsgRes.GetMsg(MSG_ID_VFOLDER_NAME_TTL))\r
+\r
+#define MSG_ID_CONFIRM_DEL_VFOLDER 86\r
+#define MSG_CONFIRM_DEL_VFOLDER (g_mMsgRes.GetMsg(MSG_ID_CONFIRM_DEL_VFOLDER))\r
+\r
+#define MSG_ID_DEL_VFOLDER_TTL 87\r
+#define MSG_DEL_VFOLDER_TTL (g_mMsgRes.GetMsg(MSG_ID_DEL_VFOLDER_TTL))\r
+\r
+#define MSG_ID_FILTERDEFDLG_TTL 88\r
+#define MSG_FILTERDEFDLG_TTL (g_mMsgRes.GetMsg(MSG_ID_FILTERDEFDLG_TTL))\r
+\r
+#define MSG_ID_FILTERDEFPROPTTL_SRC 89\r
+#define MSG_FILTERDEFPROPTTL_SRC (g_mMsgRes.GetMsg(MSG_ID_FILTERDEFPROPTTL_SRC))\r
+\r
+#define MSG_ID_FILTERDEFPROPTTL_FILTER 90\r
+#define MSG_FILTERDEFPROPTTL_FILTER (g_mMsgRes.GetMsg(MSG_ID_FILTERDEFPROPTTL_FILTER))\r
+\r
+#define MSG_ID_FILTERDEFPROPTTL_PATHTYPE 91\r
+#define MSG_FILTERDEFPROPTTL_PATHTYPE (g_mMsgRes.GetMsg(MSG_ID_FILTERDEFPROPTTL_PATHTYPE))\r
+\r
+#define MSG_ID_FILTERDEFPROPTTL_FILTERTYPE_HDR 92\r
+#define MSG_FILTERDEFPROPTTL_FILTERTYPE_HDR (g_mMsgRes.GetMsg(MSG_ID_FILTERDEFPROPTTL_FILTERTYPE_HDR))\r
+\r
+#define MSG_ID_FILTERDEFPROPTTL_FILTERVAL_HDR 93\r
+#define MSG_FILTERDEFPROPTTL_FILTERVAL_HDR (g_mMsgRes.GetMsg(MSG_ID_FILTERDEFPROPTTL_FILTERVAL_HDR))\r
+\r
+#define MSG_ID_STREAM_NAME_REGEXP 94\r
+#define MSG_STREAM_NAME_REGEXP (g_mMsgRes.GetMsg(MSG_ID_STREAM_NAME_REGEXP))\r
+\r
+#define MSG_ID_STREAM_NAME_LIMIT 95\r
+#define MSG_STREAM_NAME_LIMIT (g_mMsgRes.GetMsg(MSG_ID_STREAM_NAME_LIMIT))\r
+\r
+#define MSG_ID_STREAM_NAME_TIMESTAMP 96\r
+#define MSG_STREAM_NAME_TIMESTAMP (g_mMsgRes.GetMsg(MSG_ID_STREAM_NAME_TIMESTAMP))\r
+\r
+#define MSG_ID_STREAM_NAME_SORT 97\r
+#define MSG_STREAM_NAME_SORT (g_mMsgRes.GetMsg(MSG_ID_STREAM_NAME_SORT))\r
+\r
+#define MSG_ID_STREAM_VALUE_LIMIT 98\r
+#define MSG_STREAM_VALUE_LIMIT (g_mMsgRes.GetMsg(MSG_ID_STREAM_VALUE_LIMIT))\r
+\r
+#define MSG_ID_STREAM_VALUE_TIMESTAMP_NEWER 99\r
+#define MSG_STREAM_VALUE_TIMESTAMP_NEWER (g_mMsgRes.GetMsg(MSG_ID_STREAM_VALUE_TIMESTAMP_NEWER))\r
+\r
+#define MSG_ID_STREAM_VALUE_TIMESTAMP_OLDER 100\r
+#define MSG_STREAM_VALUE_TIMESTAMP_OLDER (g_mMsgRes.GetMsg(MSG_ID_STREAM_VALUE_TIMESTAMP_OLDER))\r
+\r
+#define MSG_ID_STREAM_VALUE_SORT_FNAME_ASC 101\r
+#define MSG_STREAM_VALUE_SORT_FNAME_ASC (g_mMsgRes.GetMsg(MSG_ID_STREAM_VALUE_SORT_FNAME_ASC))\r
+\r
+#define MSG_ID_STREAM_VALUE_SORT_FNAME_DSC 102\r
+#define MSG_STREAM_VALUE_SORT_FNAME_DSC (g_mMsgRes.GetMsg(MSG_ID_STREAM_VALUE_SORT_FNAME_DSC))\r
+\r
+#define MSG_ID_STREAM_VALUE_SORT_LASTUPD_ASC 103\r
+#define MSG_STREAM_VALUE_SORT_LASTUPD_ASC (g_mMsgRes.GetMsg(MSG_ID_STREAM_VALUE_SORT_LASTUPD_ASC))\r
+\r
+#define MSG_ID_STREAM_VALUE_SORT_LASTUPD_DSC 104\r
+#define MSG_STREAM_VALUE_SORT_LASTUPD_DSC (g_mMsgRes.GetMsg(MSG_ID_STREAM_VALUE_SORT_LASTUPD_DSC))\r
+\r
+#define MSG_ID_STREAM_VALUE_SORT_CREATE_ASC 105\r
+#define MSG_STREAM_VALUE_SORT_CREATE_ASC (g_mMsgRes.GetMsg(MSG_ID_STREAM_VALUE_SORT_CREATE_ASC))\r
+\r
+#define MSG_ID_STREAM_VALUE_SORT_CREATE_DSC 106\r
+#define MSG_STREAM_VALUE_SORT_CREATE_DSC (g_mMsgRes.GetMsg(MSG_ID_STREAM_VALUE_SORT_CREATE_DSC))\r
+\r
+#define MSG_ID_STREAM_VALUE_SORT_FILESIZE_ASC 107\r
+#define MSG_STREAM_VALUE_SORT_FILESIZE_ASC (g_mMsgRes.GetMsg(MSG_ID_STREAM_VALUE_SORT_FILESIZE_ASC))\r
+\r
+#define MSG_ID_STREAM_VALUE_SORT_FILESIZE_DSC 108\r
+#define MSG_STREAM_VALUE_SORT_FILESIZE_DSC (g_mMsgRes.GetMsg(MSG_ID_STREAM_VALUE_SORT_FILESIZE_DSC))\r
+\r
+#define MSG_ID_DLG_INIT_FAIL 109\r
+#define MSG_DLG_INIT_FAIL (g_mMsgRes.GetMsg(MSG_ID_DLG_INIT_FAIL))\r
+\r
+#define MSG_ID_INVALID_REGEXP 110\r
+#define MSG_INVALID_REGEXP (g_mMsgRes.GetMsg(MSG_ID_INVALID_REGEXP))\r
+\r
+#define MSG_ID_SET_POSITIVE 111\r
+#define MSG_SET_POSITIVE (g_mMsgRes.GetMsg(MSG_ID_SET_POSITIVE))\r
+\r
+#define MSG_ID_INVALID_FONT_SIZE 112\r
+#define MSG_INVALID_FONT_SIZE (g_mMsgRes.GetMsg(MSG_ID_INVALID_FONT_SIZE))\r
+\r
+#define MSG_ID_DST_FOLDER_IS_SRC_SUBFOLDER 113\r
+#define MSG_DST_FOLDER_IS_SRC_SUBFOLDER (g_mMsgRes.GetMsg(MSG_ID_DST_FOLDER_IS_SRC_SUBFOLDER))\r
+\r
+#define MSG_ID_FILTEDEF_VIEW_TYPE_DEFAULT 114\r
+#define MSG_FILTEDEF_VIEW_TYPE_DEFAULT (g_mMsgRes.GetMsg(MSG_ID_FILTEDEF_VIEW_TYPE_DEFAULT))\r
+\r
+#define MSG_ID_FILTEDEF_VIEW_TYPE_PREV 115\r
+#define MSG_FILTEDEF_VIEW_TYPE_PREV (g_mMsgRes.GetMsg(MSG_ID_FILTEDEF_VIEW_TYPE_PREV))\r
+\r
+#define MSG_ID_FILTEDEF_VIEW_TYPE_POST 116\r
+#define MSG_FILTEDEF_VIEW_TYPE_POST (g_mMsgRes.GetMsg(MSG_ID_FILTEDEF_VIEW_TYPE_POST))\r
+\r
+#define MSG_ID_BMDLG_TITLE_NAME 117\r
+#define MSG_BMDLG_TITLE_NAME (g_mMsgRes.GetMsg(MSG_ID_BMDLG_TITLE_NAME))\r
+\r
+#define MSG_ID_BMDLG_TITLE_PATH 118\r
+#define MSG_BMDLG_TITLE_PATH (g_mMsgRes.GetMsg(MSG_ID_BMDLG_TITLE_PATH))\r
+\r
+#define MSG_ID_DEL_BOOKMARK 119\r
+#define MSG_DEL_BOOKMARK (g_mMsgRes.GetMsg(MSG_ID_DEL_BOOKMARK))\r
+\r
+#define MSG_ID_CONFIRM 120\r
+#define MSG_CONFIRM (g_mMsgRes.GetMsg(MSG_ID_CONFIRM))\r
+\r
+#define MSG_ID_PROPTAB_FOLDER 121\r
+#define MSG_PROPTAB_FOLDER (g_mMsgRes.GetMsg(MSG_ID_PROPTAB_FOLDER))\r
+\r
+#define MSG_ID_PROPTAB_PASSWORD 122\r
+#define MSG_PROPTAB_PASSWORD (g_mMsgRes.GetMsg(MSG_ID_PROPTAB_PASSWORD))\r
+\r
+#define MSG_ID_PROPTAB_FONT 123\r
+#define MSG_PROPTAB_FONT (g_mMsgRes.GetMsg(MSG_ID_PROPTAB_FONT))\r
+\r
+#define MSG_ID_PROPTAB_DATE 124\r
+#define MSG_PROPTAB_DATE (g_mMsgRes.GetMsg(MSG_ID_PROPTAB_DATE))\r
+\r
+#define MSG_ID_PROPTAB_KEEPCARET 125\r
+#define MSG_PROPTAB_KEEPCARET (g_mMsgRes.GetMsg(MSG_ID_PROPTAB_KEEPCARET))\r
+\r
+#define MSG_ID_PROPTAB_PASS_TIMEOUT 126\r
+#define MSG_PROPTAB_PASS_TIMEOUT (g_mMsgRes.GetMsg(MSG_ID_PROPTAB_PASS_TIMEOUT))\r
+\r
+#define MSG_ID_PROPTAB_DEFNOTE 127\r
+#define MSG_PROPTAB_DEFNOTE (g_mMsgRes.GetMsg(MSG_ID_PROPTAB_DEFNOTE))\r
+\r
+#define MSG_ID_PROPTAB_TITLE 128\r
+#define MSG_PROPTAB_TITLE (g_mMsgRes.GetMsg(MSG_ID_PROPTAB_TITLE))\r
+\r
+#define MSG_ID_GREPTAB_MAIN 129\r
+#define MSG_GREPTAB_MAIN (g_mMsgRes.GetMsg(MSG_ID_GREPTAB_MAIN))\r
+\r
+#define MSG_ID_GREPTAB_PERSIST 130\r
+#define MSG_GREPTAB_PERSIST (g_mMsgRes.GetMsg(MSG_ID_GREPTAB_PERSIST))\r
+\r
+#define MSG_ID_PROPTAB_APPBUTTON 131\r
+#define MSG_PROPTAB_APPBUTTON (g_mMsgRes.GetMsg(MSG_ID_PROPTAB_APPBUTTON))\r
+\r
+#define MSG_ID_PROPTAB_SIP 132\r
+#define MSG_PROPTAB_SIP (g_mMsgRes.GetMsg(MSG_ID_PROPTAB_SIP))\r
+\r
+#define MSG_ID_PROPTAB_CODEPAGE 133\r
+#define MSG_PROPTAB_CODEPAGE (g_mMsgRes.GetMsg(MSG_ID_PROPTAB_CODEPAGE))\r
+\r
+#define MSG_ID_MENU_NOTE 134\r
+#define MSG_MENU_NOTE (g_mMsgRes.GetMsg(MSG_ID_MENU_NOTE))\r
+\r
+#define MSG_ID_MENU_TOOL 135\r
+#define MSG_MENU_TOOL (g_mMsgRes.GetMsg(MSG_ID_MENU_TOOL))\r
+\r
+#define MSG_ID_MENU_EDIT 136\r
+#define MSG_MENU_EDIT (g_mMsgRes.GetMsg(MSG_ID_MENU_EDIT))\r
+\r
+#define MSG_ID_MENUITEM_MAIN_NEWFOLDER 137\r
+#define MSG_MENUITEM_MAIN_NEWFOLDER (g_mMsgRes.GetMsg(MSG_ID_MENUITEM_MAIN_NEWFOLDER))\r
+\r
+#define MSG_ID_MENUITEM_MAIN_CUT 138\r
+#define MSG_MENUITEM_MAIN_CUT (g_mMsgRes.GetMsg(MSG_ID_MENUITEM_MAIN_CUT))\r
+\r
+#define MSG_ID_MENUITEM_MAIN_COPY 139\r
+#define MSG_MENUITEM_MAIN_COPY (g_mMsgRes.GetMsg(MSG_ID_MENUITEM_MAIN_COPY))\r
+\r
+#define MSG_ID_MENUITEM_MAIN_PASTE 140\r
+#define MSG_MENUITEM_MAIN_PASTE (g_mMsgRes.GetMsg(MSG_ID_MENUITEM_MAIN_PASTE))\r
+\r
+#define MSG_ID_MENUITEM_MAIN_RENAME 141\r
+#define MSG_MENUITEM_MAIN_RENAME (g_mMsgRes.GetMsg(MSG_ID_MENUITEM_MAIN_RENAME))\r
+\r
+#define MSG_ID_MENUITEM_MAIN_DELETE 142\r
+#define MSG_MENUITEM_MAIN_DELETE (g_mMsgRes.GetMsg(MSG_ID_MENUITEM_MAIN_DELETE))\r
+\r
+#define MSG_ID_MENUITEM_MAIN_FIND 143\r
+#define MSG_MENUITEM_MAIN_FIND (g_mMsgRes.GetMsg(MSG_ID_MENUITEM_MAIN_FIND))\r
+\r
+#define MSG_ID_MENUITEM_MAIN_FIND_NEXT 144\r
+#define MSG_MENUITEM_MAIN_FIND_NEXT (g_mMsgRes.GetMsg(MSG_ID_MENUITEM_MAIN_FIND_NEXT))\r
+\r
+#define MSG_ID_MENUITEM_MAIN_FIND_PREV 145\r
+#define MSG_MENUITEM_MAIN_FIND_PREV (g_mMsgRes.GetMsg(MSG_ID_MENUITEM_MAIN_FIND_PREV))\r
+\r
+#define MSG_ID_MENUITEM_MAIN_QUICKFILTER 146\r
+#define MSG_MENUITEM_MAIN_QUICKFILTER (g_mMsgRes.GetMsg(MSG_ID_MENUITEM_MAIN_QUICKFILTER))\r
+\r
+#define MSG_ID_MENUITEM_MAIN_ENCRYPT 147\r
+#define MSG_MENUITEM_MAIN_ENCRYPT (g_mMsgRes.GetMsg(MSG_ID_MENUITEM_MAIN_ENCRYPT))\r
+\r
+#define MSG_ID_MENUITEM_MAIN_DECRYPT 148\r
+#define MSG_MENUITEM_MAIN_DECRYPT (g_mMsgRes.GetMsg(MSG_ID_MENUITEM_MAIN_DECRYPT))\r
+\r
+#define MSG_ID_MENUITEM_DETAILS_SELALL 149\r
+#define MSG_MENUITEM_DETAILS_SELALL (g_mMsgRes.GetMsg(MSG_ID_MENUITEM_DETAILS_SELALL))\r
+\r
+#define MSG_ID_MENUITEM_TOOL_EXIT 150\r
+#define MSG_MENUITEM_TOOL_EXIT (g_mMsgRes.GetMsg(MSG_ID_MENUITEM_TOOL_EXIT))\r
+\r
+#define MSG_ID_MENUITEM_TOOL_ABOUT 151\r
+#define MSG_MENUITEM_TOOL_ABOUT (g_mMsgRes.GetMsg(MSG_ID_MENUITEM_TOOL_ABOUT))\r
+\r
+#define MSG_ID_MENUITEM_TOOL_PROPERTY 152\r
+#define MSG_MENUITEM_TOOL_PROPERTY (g_mMsgRes.GetMsg(MSG_ID_MENUITEM_TOOL_PROPERTY))\r
+\r
+#define MSG_ID_MENUITEM_TOOL_VFOLDER_DEF 153\r
+#define MSG_MENUITEM_TOOL_VFOLDER_DEF (g_mMsgRes.GetMsg(MSG_ID_MENUITEM_TOOL_VFOLDER_DEF))\r
+\r
+#define MSG_ID_MENUITEM_TOOL_FORGETPASS 154\r
+#define MSG_MENUITEM_TOOL_FORGETPASS (g_mMsgRes.GetMsg(MSG_ID_MENUITEM_TOOL_FORGETPASS))\r
+\r
+#define MSG_ID_MENUITEM_TOOL_WRAP 155\r
+#define MSG_MENUITEM_TOOL_WRAP (g_mMsgRes.GetMsg(MSG_ID_MENUITEM_TOOL_WRAP))\r
+\r
+#define MSG_ID_MENUITEM_W32B_FILE 156\r
+#define MSG_MENUITEM_W32B_FILE (g_mMsgRes.GetMsg(MSG_ID_MENUITEM_W32B_FILE))\r
+\r
+#define MSG_ID_MENUITEM_W32_F_NEWMEMO 157\r
+#define MSG_MENUITEM_W32_F_NEWMEMO (g_mMsgRes.GetMsg(MSG_ID_MENUITEM_W32_F_NEWMEMO))\r
+\r
+#define MSG_ID_MENUITEM_W32_F_NEWFOLDER 158\r
+#define MSG_MENUITEM_W32_F_NEWFOLDER (g_mMsgRes.GetMsg(MSG_ID_MENUITEM_W32_F_NEWFOLDER))\r
+\r
+#define MSG_ID_MENUITEM_W32_F_RENAME 159\r
+#define MSG_MENUITEM_W32_F_RENAME (g_mMsgRes.GetMsg(MSG_ID_MENUITEM_W32_F_RENAME))\r
+\r
+#define MSG_ID_MENUITEM_W32_F_DEL 160\r
+#define MSG_MENUITEM_W32_F_DEL (g_mMsgRes.GetMsg(MSG_ID_MENUITEM_W32_F_DEL))\r
+\r
+#define MSG_ID_MENUITEM_W32_F_SAVE 161\r
+#define MSG_MENUITEM_W32_F_SAVE (g_mMsgRes.GetMsg(MSG_ID_MENUITEM_W32_F_SAVE))\r
+\r
+#define MSG_ID_MENUITEM_W32_F_EXIT 162\r
+#define MSG_MENUITEM_W32_F_EXIT (g_mMsgRes.GetMsg(MSG_ID_MENUITEM_W32_F_EXIT))\r
+\r
+#define MSG_ID_MENUITEM_W32B_EDIT 163\r
+#define MSG_MENUITEM_W32B_EDIT (g_mMsgRes.GetMsg(MSG_ID_MENUITEM_W32B_EDIT))\r
+\r
+#define MSG_ID_MENUITEM_W32_E_CUT 164\r
+#define MSG_MENUITEM_W32_E_CUT (g_mMsgRes.GetMsg(MSG_ID_MENUITEM_W32_E_CUT))\r
+\r
+#define MSG_ID_MENUITEM_W32_E_COPY 165\r
+#define MSG_MENUITEM_W32_E_COPY (g_mMsgRes.GetMsg(MSG_ID_MENUITEM_W32_E_COPY))\r
+\r
+#define MSG_ID_MENUITEM_W32_E_PASTE 166\r
+#define MSG_MENUITEM_W32_E_PASTE (g_mMsgRes.GetMsg(MSG_ID_MENUITEM_W32_E_PASTE))\r
+\r
+#define MSG_ID_MENUITEM_W32_E_SELALL 167\r
+#define MSG_MENUITEM_W32_E_SELALL (g_mMsgRes.GetMsg(MSG_ID_MENUITEM_W32_E_SELALL))\r
+\r
+#define MSG_ID_MENUITEM_W32_E_FIND 168\r
+#define MSG_MENUITEM_W32_E_FIND (g_mMsgRes.GetMsg(MSG_ID_MENUITEM_W32_E_FIND))\r
+\r
+#define MSG_ID_MENUITEM_W32_E_FINDNEXT 169\r
+#define MSG_MENUITEM_W32_E_FINDNEXT (g_mMsgRes.GetMsg(MSG_ID_MENUITEM_W32_E_FINDNEXT))\r
+\r
+#define MSG_ID_MENUITEM_W32_E_FINDPREV 170\r
+#define MSG_MENUITEM_W32_E_FINDPREV (g_mMsgRes.GetMsg(MSG_ID_MENUITEM_W32_E_FINDPREV))\r
+\r
+#define MSG_ID_MENUITEM_W32_E_QFILTER 171\r
+#define MSG_MENUITEM_W32_E_QFILTER (g_mMsgRes.GetMsg(MSG_ID_MENUITEM_W32_E_QFILTER))\r
+\r
+#define MSG_ID_MENUITEM_W32_E_DATE1 172\r
+#define MSG_MENUITEM_W32_E_DATE1 (g_mMsgRes.GetMsg(MSG_ID_MENUITEM_W32_E_DATE1))\r
+\r
+#define MSG_ID_MENUITEM_W32_E_DATE2 173\r
+#define MSG_MENUITEM_W32_E_DATE2 (g_mMsgRes.GetMsg(MSG_ID_MENUITEM_W32_E_DATE2))\r
+\r
+#define MSG_ID_MENUITEM_W32B_BOOKMARK 174\r
+#define MSG_MENUITEM_W32B_BOOKMARK (g_mMsgRes.GetMsg(MSG_ID_MENUITEM_W32B_BOOKMARK))\r
+\r
+#define MSG_ID_MENUITEM_W32_B_ADDBM 175\r
+#define MSG_MENUITEM_W32_B_ADDBM (g_mMsgRes.GetMsg(MSG_ID_MENUITEM_W32_B_ADDBM))\r
+\r
+#define MSG_ID_MENUITEM_W32_B_EDITBM 176\r
+#define MSG_MENUITEM_W32_B_EDITBM (g_mMsgRes.GetMsg(MSG_ID_MENUITEM_W32_B_EDITBM))\r
+\r
+#define MSG_ID_MENUITEM_W32B_TOOL 177\r
+#define MSG_MENUITEM_W32B_TOOL (g_mMsgRes.GetMsg(MSG_ID_MENUITEM_W32B_TOOL))\r
+\r
+#define MSG_ID_MENUITEM_W32_T_WRAPTEXT 178\r
+#define MSG_MENUITEM_W32_T_WRAPTEXT (g_mMsgRes.GetMsg(MSG_ID_MENUITEM_W32_T_WRAPTEXT))\r
+\r
+#define MSG_ID_MENUITEM_W32_T_TWOPANE 179\r
+#define MSG_MENUITEM_W32_T_TWOPANE (g_mMsgRes.GetMsg(MSG_ID_MENUITEM_W32_T_TWOPANE))\r
+\r
+#define MSG_ID_MENUITEM_W32_T_STATUSBAR 180\r
+#define MSG_MENUITEM_W32_T_STATUSBAR (g_mMsgRes.GetMsg(MSG_ID_MENUITEM_W32_T_STATUSBAR))\r
+\r
+#define MSG_ID_MENUITEM_W32_T_STAYTOPMOST 181\r
+#define MSG_MENUITEM_W32_T_STAYTOPMOST (g_mMsgRes.GetMsg(MSG_ID_MENUITEM_W32_T_STAYTOPMOST))\r
+\r
+#define MSG_ID_MENUITEM_W32_T_ENCRYPT 182\r
+#define MSG_MENUITEM_W32_T_ENCRYPT (g_mMsgRes.GetMsg(MSG_ID_MENUITEM_W32_T_ENCRYPT))\r
+\r
+#define MSG_ID_MENUITEM_W32_T_DECRYPT 183\r
+#define MSG_MENUITEM_W32_T_DECRYPT (g_mMsgRes.GetMsg(MSG_ID_MENUITEM_W32_T_DECRYPT))\r
+\r
+#define MSG_ID_MENUITEM_W32_T_ERASEPASS 184\r
+#define MSG_MENUITEM_W32_T_ERASEPASS (g_mMsgRes.GetMsg(MSG_ID_MENUITEM_W32_T_ERASEPASS))\r
+\r
+#define MSG_ID_MENUITEM_W32_T_VIRTUALFOLDER 185\r
+#define MSG_MENUITEM_W32_T_VIRTUALFOLDER (g_mMsgRes.GetMsg(MSG_ID_MENUITEM_W32_T_VIRTUALFOLDER))\r
+\r
+#define MSG_ID_MENUITEM_W32_T_OPTIONS 186\r
+#define MSG_MENUITEM_W32_T_OPTIONS (g_mMsgRes.GetMsg(MSG_ID_MENUITEM_W32_T_OPTIONS))\r
+\r
+#define MSG_ID_MENUITEM_W32B_HELP 187\r
+#define MSG_MENUITEM_W32B_HELP (g_mMsgRes.GetMsg(MSG_ID_MENUITEM_W32B_HELP))\r
+\r
+#define MSG_ID_MENUITEM_W32_H_ABOUT 188\r
+#define MSG_MENUITEM_W32_H_ABOUT (g_mMsgRes.GetMsg(MSG_ID_MENUITEM_W32_H_ABOUT))\r
+\r
+#define MSG_ID_MENUITEM_CTX_TRACELINK 189\r
+#define MSG_MENUITEM_CTX_TRACELINK (g_mMsgRes.GetMsg(MSG_ID_MENUITEM_CTX_TRACELINK))\r
+\r
+#define MSG_ID_DLG_CMN_OK 190\r
+#define MSG_DLG_CMN_OK (g_mMsgRes.GetMsg(MSG_ID_DLG_CMN_OK))\r
+\r
+#define MSG_ID_DLG_CMN_CANCEL 191\r
+#define MSG_DLG_CMN_CANCEL (g_mMsgRes.GetMsg(MSG_ID_DLG_CMN_CANCEL))\r
+\r
+#define MSG_ID_DLG_BMEDIT_TITLE 192\r
+#define MSG_DLG_BMEDIT_TITLE (g_mMsgRes.GetMsg(MSG_ID_DLG_BMEDIT_TITLE))\r
+\r
+#define MSG_ID_DLG_BMEDIT_UP 193\r
+#define MSG_DLG_BMEDIT_UP (g_mMsgRes.GetMsg(MSG_ID_DLG_BMEDIT_UP))\r
+\r
+#define MSG_ID_DLG_BMEDIT_DOWN 194\r
+#define MSG_DLG_BMEDIT_DOWN (g_mMsgRes.GetMsg(MSG_ID_DLG_BMEDIT_DOWN))\r
+\r
+#define MSG_ID_DLG_BMEDIT_DELETE 195\r
+#define MSG_DLG_BMEDIT_DELETE (g_mMsgRes.GetMsg(MSG_ID_DLG_BMEDIT_DELETE))\r
+\r
+#define MSG_ID_DLG_FILESELECT_TITLE 196\r
+#define MSG_DLG_FILESELECT_TITLE (g_mMsgRes.GetMsg(MSG_ID_DLG_FILESELECT_TITLE))\r
+\r
+#define MSG_ID_DLG_FILTERCTL_TITLE 197\r
+#define MSG_DLG_FILTERCTL_TITLE (g_mMsgRes.GetMsg(MSG_ID_DLG_FILTERCTL_TITLE))\r
+\r
+#define MSG_ID_DLG_FILTERCTL_UP 198\r
+#define MSG_DLG_FILTERCTL_UP (g_mMsgRes.GetMsg(MSG_ID_DLG_FILTERCTL_UP))\r
+\r
+#define MSG_ID_DLG_FILTERCTL_DOWN 199\r
+#define MSG_DLG_FILTERCTL_DOWN (g_mMsgRes.GetMsg(MSG_ID_DLG_FILTERCTL_DOWN))\r
+\r
+#define MSG_ID_DLG_FILTERCTL_KEEP 200\r
+#define MSG_DLG_FILTERCTL_KEEP (g_mMsgRes.GetMsg(MSG_ID_DLG_FILTERCTL_KEEP))\r
+\r
+#define MSG_ID_DLG_FILTERCTL_NEW 201\r
+#define MSG_DLG_FILTERCTL_NEW (g_mMsgRes.GetMsg(MSG_ID_DLG_FILTERCTL_NEW))\r
+\r
+#define MSG_ID_DLG_FILTERCTL_RENAME 202\r
+#define MSG_DLG_FILTERCTL_RENAME (g_mMsgRes.GetMsg(MSG_ID_DLG_FILTERCTL_RENAME))\r
+\r
+#define MSG_ID_DLG_FILTERCTL_DELETE 203\r
+#define MSG_DLG_FILTERCTL_DELETE (g_mMsgRes.GetMsg(MSG_ID_DLG_FILTERCTL_DELETE))\r
+\r
+#define MSG_ID_DLG_FILTERDEF_ADD_LIMIT_TITLE 204\r
+#define MSG_DLG_FILTERDEF_ADD_LIMIT_TITLE (g_mMsgRes.GetMsg(MSG_ID_DLG_FILTERDEF_ADD_LIMIT_TITLE))\r
+\r
+#define MSG_ID_DLG_FILTERDEF_ADD_LIMIT_ITEMS 205\r
+#define MSG_DLG_FILTERDEF_ADD_LIMIT_ITEMS (g_mMsgRes.GetMsg(MSG_ID_DLG_FILTERDEF_ADD_LIMIT_ITEMS))\r
+\r
+#define MSG_ID_DLG_FILTERDEF_ADD_REGEX_TITLE 206\r
+#define MSG_DLG_FILTERDEF_ADD_REGEX_TITLE (g_mMsgRes.GetMsg(MSG_ID_DLG_FILTERDEF_ADD_REGEX_TITLE))\r
+\r
+#define MSG_ID_DLG_FILTERDEF_ADD_REGEX_FINDSTR 207\r
+#define MSG_DLG_FILTERDEF_ADD_REGEX_FINDSTR (g_mMsgRes.GetMsg(MSG_ID_DLG_FILTERDEF_ADD_REGEX_FINDSTR))\r
+\r
+#define MSG_ID_DLG_FILTERDEF_ADD_REGEX_CASESENSITIVE 208\r
+#define MSG_DLG_FILTERDEF_ADD_REGEX_CASESENSITIVE (g_mMsgRes.GetMsg(MSG_ID_DLG_FILTERDEF_ADD_REGEX_CASESENSITIVE))\r
+\r
+#define MSG_ID_DLG_FILTERDEF_ADD_REGEX_INCLUDECRYPTED 209\r
+#define MSG_DLG_FILTERDEF_ADD_REGEX_INCLUDECRYPTED (g_mMsgRes.GetMsg(MSG_ID_DLG_FILTERDEF_ADD_REGEX_INCLUDECRYPTED))\r
+\r
+#define MSG_ID_DLG_FILTERDEF_ADD_REGEX_FORFILENAME 210\r
+#define MSG_DLG_FILTERDEF_ADD_REGEX_FORFILENAME (g_mMsgRes.GetMsg(MSG_ID_DLG_FILTERDEF_ADD_REGEX_FORFILENAME))\r
+\r
+#define MSG_ID_DLG_FILTERDEF_ADD_REGEX_EXCLUDE 211\r
+#define MSG_DLG_FILTERDEF_ADD_REGEX_EXCLUDE (g_mMsgRes.GetMsg(MSG_ID_DLG_FILTERDEF_ADD_REGEX_EXCLUDE))\r
+\r
+#define MSG_ID_DLG_FILTERDEF_ADD_SORT_TITLE 212\r
+#define MSG_DLG_FILTERDEF_ADD_SORT_TITLE (g_mMsgRes.GetMsg(MSG_ID_DLG_FILTERDEF_ADD_SORT_TITLE))\r
+\r
+#define MSG_ID_DLG_FILTERDEF_ADD_SORT_METHOD 213\r
+#define MSG_DLG_FILTERDEF_ADD_SORT_METHOD (g_mMsgRes.GetMsg(MSG_ID_DLG_FILTERDEF_ADD_SORT_METHOD))\r
+\r
+#define MSG_ID_DLG_FILTERDEF_ADD_TIMESTAMP_TITLE 214\r
+#define MSG_DLG_FILTERDEF_ADD_TIMESTAMP_TITLE (g_mMsgRes.GetMsg(MSG_ID_DLG_FILTERDEF_ADD_TIMESTAMP_TITLE))\r
+\r
+#define MSG_ID_DLG_FILTERDEF_ADD_TIMESTAMP_BASETIME 215\r
+#define MSG_DLG_FILTERDEF_ADD_TIMESTAMP_BASETIME (g_mMsgRes.GetMsg(MSG_ID_DLG_FILTERDEF_ADD_TIMESTAMP_BASETIME))\r
+\r
+#define MSG_ID_DLG_FILTERDEF_ADD_TIMESTAMP_NEWER 216\r
+#define MSG_DLG_FILTERDEF_ADD_TIMESTAMP_NEWER (g_mMsgRes.GetMsg(MSG_ID_DLG_FILTERDEF_ADD_TIMESTAMP_NEWER))\r
+\r
+#define MSG_ID_DLG_FILTERDEF_ADD_TIMESTAMP_OLDER 217\r
+#define MSG_DLG_FILTERDEF_ADD_TIMESTAMP_OLDER (g_mMsgRes.GetMsg(MSG_ID_DLG_FILTERDEF_ADD_TIMESTAMP_OLDER))\r
+\r
+#define MSG_ID_DLG_FILTERDEF_FILTER_UP 218\r
+#define MSG_DLG_FILTERDEF_FILTER_UP (g_mMsgRes.GetMsg(MSG_ID_DLG_FILTERDEF_FILTER_UP))\r
+\r
+#define MSG_ID_DLG_FILTERDEF_FILTER_DOWN 219\r
+#define MSG_DLG_FILTERDEF_FILTER_DOWN (g_mMsgRes.GetMsg(MSG_ID_DLG_FILTERDEF_FILTER_DOWN))\r
+\r
+#define MSG_ID_DLG_FILTERDEF_FILTER_DELETE 220\r
+#define MSG_DLG_FILTERDEF_FILTER_DELETE (g_mMsgRes.GetMsg(MSG_ID_DLG_FILTERDEF_FILTER_DELETE))\r
+\r
+#define MSG_ID_DLG_FILTERDEF_FILTER_FIND 221\r
+#define MSG_DLG_FILTERDEF_FILTER_FIND (g_mMsgRes.GetMsg(MSG_ID_DLG_FILTERDEF_FILTER_FIND))\r
+\r
+#define MSG_ID_DLG_FILTERDEF_FILTER_NUMBER 222\r
+#define MSG_DLG_FILTERDEF_FILTER_NUMBER (g_mMsgRes.GetMsg(MSG_ID_DLG_FILTERDEF_FILTER_NUMBER))\r
+\r
+#define MSG_ID_DLG_FILTERDEF_FILTER_TIMESTAMP 223\r
+#define MSG_DLG_FILTERDEF_FILTER_TIMESTAMP (g_mMsgRes.GetMsg(MSG_ID_DLG_FILTERDEF_FILTER_TIMESTAMP))\r
+\r
+#define MSG_ID_DLG_FILTERDEF_FILTER_SORT 224\r
+#define MSG_DLG_FILTERDEF_FILTER_SORT (g_mMsgRes.GetMsg(MSG_ID_DLG_FILTERDEF_FILTER_SORT))\r
+\r
+#define MSG_ID_DLG_GREPTAB_MAIN_POSLABEL 225\r
+#define MSG_DLG_GREPTAB_MAIN_POSLABEL (g_mMsgRes.GetMsg(MSG_ID_DLG_GREPTAB_MAIN_POSLABEL))\r
+\r
+#define MSG_ID_DLG_GREPTAB_MAIN_STRLABEL 226\r
+#define MSG_DLG_GREPTAB_MAIN_STRLABEL (g_mMsgRes.GetMsg(MSG_ID_DLG_GREPTAB_MAIN_STRLABEL))\r
+\r
+#define MSG_ID_DLG_GREPTAB_PERSIST_KEEP 227\r
+#define MSG_DLG_GREPTAB_PERSIST_KEEP (g_mMsgRes.GetMsg(MSG_ID_DLG_GREPTAB_PERSIST_KEEP))\r
+\r
+#define MSG_ID_DLG_GREPTAB_PERSIST_LABEL 228\r
+#define MSG_DLG_GREPTAB_PERSIST_LABEL (g_mMsgRes.GetMsg(MSG_ID_DLG_GREPTAB_PERSIST_LABEL))\r
+\r
+#define MSG_ID_DLG_NEWFOLDER_TITLE 229\r
+#define MSG_DLG_NEWFOLDER_TITLE (g_mMsgRes.GetMsg(MSG_ID_DLG_NEWFOLDER_TITLE))\r
+\r
+#define MSG_ID_DLG_PASSWORD_TITLE 230\r
+#define MSG_DLG_PASSWORD_TITLE (g_mMsgRes.GetMsg(MSG_ID_DLG_PASSWORD_TITLE))\r
+\r
+#define MSG_ID_DLG_PROPTAB_DEFNOTE_LABEL 231\r
+#define MSG_DLG_PROPTAB_DEFNOTE_LABEL (g_mMsgRes.GetMsg(MSG_ID_DLG_PROPTAB_DEFNOTE_LABEL))\r
+\r
+#define MSG_ID_DLG_PROPTAB_DEFNOTE_CURRENT 232\r
+#define MSG_DLG_PROPTAB_DEFNOTE_CURRENT (g_mMsgRes.GetMsg(MSG_ID_DLG_PROPTAB_DEFNOTE_CURRENT))\r
+\r
+#define MSG_ID_DLG_PROPTAB_BLANK 233\r
+#define MSG_DLG_PROPTAB_BLANK (g_mMsgRes.GetMsg(MSG_ID_DLG_PROPTAB_BLANK))\r
+\r
+#define MSG_ID_DLG_PROPTAB_FOLDER_LABEL 234\r
+#define MSG_DLG_PROPTAB_FOLDER_LABEL (g_mMsgRes.GetMsg(MSG_ID_DLG_PROPTAB_FOLDER_LABEL))\r
+\r
+#define MSG_ID_DLG_PROPTAB_FOLDER_HELP1 235\r
+#define MSG_DLG_PROPTAB_FOLDER_HELP1 (g_mMsgRes.GetMsg(MSG_ID_DLG_PROPTAB_FOLDER_HELP1))\r
+\r
+#define MSG_ID_DLG_PROPTAB_FOLDER_SYNCTITLE 236\r
+#define MSG_DLG_PROPTAB_FOLDER_SYNCTITLE (g_mMsgRes.GetMsg(MSG_ID_DLG_PROPTAB_FOLDER_SYNCTITLE))\r
+\r
+#define MSG_ID_DLG_PROPTAB_FOLDER_HELP2 237\r
+#define MSG_DLG_PROPTAB_FOLDER_HELP2 (g_mMsgRes.GetMsg(MSG_ID_DLG_PROPTAB_FOLDER_HELP2))\r
+\r
+#define MSG_ID_DLG_PROPTAB_FOLDER_READONLY 238\r
+#define MSG_DLG_PROPTAB_FOLDER_READONLY (g_mMsgRes.GetMsg(MSG_ID_DLG_PROPTAB_FOLDER_READONLY))\r
+\r
+#define MSG_ID_DLG_PROPTAB_FONT_TREE_LABEL 239\r
+#define MSG_DLG_PROPTAB_FONT_TREE_LABEL (g_mMsgRes.GetMsg(MSG_ID_DLG_PROPTAB_FONT_TREE_LABEL))\r
+\r
+#define MSG_ID_DLG_PROPTAB_FONT_USE_DEFAULT 240\r
+#define MSG_DLG_PROPTAB_FONT_USE_DEFAULT (g_mMsgRes.GetMsg(MSG_ID_DLG_PROPTAB_FONT_USE_DEFAULT))\r
+\r
+#define MSG_ID_DLG_PROPTAB_FONT_EDIT_LABEL 241\r
+#define MSG_DLG_PROPTAB_FONT_EDIT_LABEL (g_mMsgRes.GetMsg(MSG_ID_DLG_PROPTAB_FONT_EDIT_LABEL))\r
+\r
+#define MSG_ID_DLG_PROPTAB_USE_CLEARTYPE_FONT 242\r
+#define MSG_DLG_PROPTAB_USE_CLEARTYPE_FONT (g_mMsgRes.GetMsg(MSG_ID_DLG_PROPTAB_USE_CLEARTYPE_FONT))\r
+\r
+#define MSG_ID_DLG_PROPTAB_DATE_INSDATE1 243\r
+#define MSG_DLG_PROPTAB_DATE_INSDATE1 (g_mMsgRes.GetMsg(MSG_ID_DLG_PROPTAB_DATE_INSDATE1))\r
+\r
+#define MSG_ID_DLG_PROPTAB_DATE_INSDATE2 244\r
+#define MSG_DLG_PROPTAB_DATE_INSDATE2 (g_mMsgRes.GetMsg(MSG_ID_DLG_PROPTAB_DATE_INSDATE2))\r
+\r
+#define MSG_ID_DLG_PROPTAB_KEEPCARET_KEEPCARET 245\r
+#define MSG_DLG_PROPTAB_KEEPCARET_KEEPCARET (g_mMsgRes.GetMsg(MSG_ID_DLG_PROPTAB_KEEPCARET_KEEPCARET))\r
+\r
+#define MSG_ID_DLG_PROPTAB_KEEPCARET_HELP1 246\r
+#define MSG_DLG_PROPTAB_KEEPCARET_HELP1 (g_mMsgRes.GetMsg(MSG_ID_DLG_PROPTAB_KEEPCARET_HELP1))\r
+\r
+#define MSG_ID_DLG_PROPTAB_KEEPCARET_LABEL 247\r
+#define MSG_DLG_PROPTAB_KEEPCARET_LABEL (g_mMsgRes.GetMsg(MSG_ID_DLG_PROPTAB_KEEPCARET_LABEL))\r
+\r
+#define MSG_ID_DLG_PROPTAB_KEEPCARET_HELP2 248\r
+#define MSG_DLG_PROPTAB_KEEPCARET_HELP2 (g_mMsgRes.GetMsg(MSG_ID_DLG_PROPTAB_KEEPCARET_HELP2))\r
+\r
+#define MSG_ID_DLG_PROPTAB_KEEPCARET_SYNCTITLE 249\r
+#define MSG_DLG_PROPTAB_KEEPCARET_SYNCTITLE (g_mMsgRes.GetMsg(MSG_ID_DLG_PROPTAB_KEEPCARET_SYNCTITLE))\r
+\r
+#define MSG_ID_DLG_PROPTAB_KEEPCARET_HELP3 250\r
+#define MSG_DLG_PROPTAB_KEEPCARET_HELP3 (g_mMsgRes.GetMsg(MSG_ID_DLG_PROPTAB_KEEPCARET_HELP3))\r
+\r
+#define MSG_ID_DLG_PROPTAB_PASSTO_LABEL 251\r
+#define MSG_DLG_PROPTAB_PASSTO_LABEL (g_mMsgRes.GetMsg(MSG_ID_DLG_PROPTAB_PASSTO_LABEL))\r
+\r
+#define MSG_ID_DLG_PROPTAB_PASSTO_HELP 252\r
+#define MSG_DLG_PROPTAB_PASSTO_HELP (g_mMsgRes.GetMsg(MSG_ID_DLG_PROPTAB_PASSTO_HELP))\r
+\r
+#define MSG_ID_DLG_SEARCH_TITLE 253\r
+#define MSG_DLG_SEARCH_TITLE (g_mMsgRes.GetMsg(MSG_ID_DLG_SEARCH_TITLE))\r
+\r
+#define MSG_ID_DLG_SEARCH_FIND_LABEL 254\r
+#define MSG_DLG_SEARCH_FIND_LABEL (g_mMsgRes.GetMsg(MSG_ID_DLG_SEARCH_FIND_LABEL))\r
+\r
+#define MSG_ID_DLG_SEARCH_DIRECTION_LABEL 255\r
+#define MSG_DLG_SEARCH_DIRECTION_LABEL (g_mMsgRes.GetMsg(MSG_ID_DLG_SEARCH_DIRECTION_LABEL))\r
+\r
+#define MSG_ID_DLG_SEARCH_DIRECTION_UP 256\r
+#define MSG_DLG_SEARCH_DIRECTION_UP (g_mMsgRes.GetMsg(MSG_ID_DLG_SEARCH_DIRECTION_UP))\r
+\r
+#define MSG_ID_DLG_SEARCH_DIRECTION_DOWN 257\r
+#define MSG_DLG_SEARCH_DIRECTION_DOWN (g_mMsgRes.GetMsg(MSG_ID_DLG_SEARCH_DIRECTION_DOWN))\r
+\r
+#define MSG_ID_DLG_PROPTAB_APPBTN_BUTTON1 258\r
+#define MSG_DLG_PROPTAB_APPBTN_BUTTON1 (g_mMsgRes.GetMsg(MSG_ID_DLG_PROPTAB_APPBTN_BUTTON1))\r
+\r
+#define MSG_ID_DLG_PROPTAB_APPBTN_BUTTON2 259\r
+#define MSG_DLG_PROPTAB_APPBTN_BUTTON2 (g_mMsgRes.GetMsg(MSG_ID_DLG_PROPTAB_APPBTN_BUTTON2))\r
+\r
+#define MSG_ID_DLG_PROPTAB_APPBTN_BUTTON3 260\r
+#define MSG_DLG_PROPTAB_APPBTN_BUTTON3 (g_mMsgRes.GetMsg(MSG_ID_DLG_PROPTAB_APPBTN_BUTTON3))\r
+\r
+#define MSG_ID_DLG_PROPTAB_APPBTN_BUTTON4 261\r
+#define MSG_DLG_PROPTAB_APPBTN_BUTTON4 (g_mMsgRes.GetMsg(MSG_ID_DLG_PROPTAB_APPBTN_BUTTON4))\r
+\r
+#define MSG_ID_DLG_PROPTAB_APPBTN_BUTTON5 262\r
+#define MSG_DLG_PROPTAB_APPBTN_BUTTON5 (g_mMsgRes.GetMsg(MSG_ID_DLG_PROPTAB_APPBTN_BUTTON5))\r
+\r
+#define MSG_ID_DLG_PROPTAB_APPBTN_HELP 263\r
+#define MSG_DLG_PROPTAB_APPBTN_HELP (g_mMsgRes.GetMsg(MSG_ID_DLG_PROPTAB_APPBTN_HELP))\r
+\r
+#define MSG_ID_DLG_PROPTAB_APPBTN_DISABLE 264\r
+#define MSG_DLG_PROPTAB_APPBTN_DISABLE (g_mMsgRes.GetMsg(MSG_ID_DLG_PROPTAB_APPBTN_DISABLE))\r
+\r
+#define MSG_ID_DLG_PROPTAB_SIP_SHIFT 265\r
+#define MSG_DLG_PROPTAB_SIP_SHIFT (g_mMsgRes.GetMsg(MSG_ID_DLG_PROPTAB_SIP_SHIFT))\r
+\r
+#define MSG_ID_CODEPAGE_DEFAULT 266\r
+#define MSG_CODEPAGE_DEFAULT (g_mMsgRes.GetMsg(MSG_ID_CODEPAGE_DEFAULT))\r
+\r
+#define MSG_ID_CODEPAGE_GREEK 267\r
+#define MSG_CODEPAGE_GREEK (g_mMsgRes.GetMsg(MSG_ID_CODEPAGE_GREEK))\r
+\r
+#define MSG_ID_MENUITEM_FIND 268\r
+#define MSG_MENUITEM_FIND (g_mMsgRes.GetMsg(MSG_ID_MENUITEM_FIND))\r
+\r
+#define MSG_ID_MENUITEM_EXTAPP1 269\r
+#define MSG_MENUITEM_EXTAPP1 (g_mMsgRes.GetMsg(MSG_ID_MENUITEM_EXTAPP1))\r
+\r
+#define MSG_ID_MENUITEM_EXPLORER 270\r
+#define MSG_MENUITEM_EXPLORER (g_mMsgRes.GetMsg(MSG_ID_MENUITEM_EXPLORER))\r
+\r
+#define MSG_ID_MENUITEM_ASSOCIATION 271\r
+#define MSG_MENUITEM_ASSOCIATION (g_mMsgRes.GetMsg(MSG_ID_MENUITEM_ASSOCIATION))\r
+\r
+#define MSG_ID_PROPTAB_EXTAPP 272\r
+#define MSG_PROPTAB_EXTAPP (g_mMsgRes.GetMsg(MSG_ID_PROPTAB_EXTAPP))\r
+\r
+#define MSG_ID_DLG_EXTAPP_USEASSOC 273\r
+#define MSG_DLG_EXTAPP_USEASSOC (g_mMsgRes.GetMsg(MSG_ID_DLG_EXTAPP_USEASSOC))\r
+\r
+#define MSG_ID_DLG_EXTAPP_LBL_APP1 274\r
+#define MSG_DLG_EXTAPP_LBL_APP1 (g_mMsgRes.GetMsg(MSG_ID_DLG_EXTAPP_LBL_APP1))\r
+\r
+#define MSG_ID_DLG_EXTAPP_LBL_APP2 275\r
+#define MSG_DLG_EXTAPP_LBL_APP2 (g_mMsgRes.GetMsg(MSG_ID_DLG_EXTAPP_LBL_APP2))\r
+\r
+#define MSG_ID_DLG_EXTAPP_CAUTION 276\r
+#define MSG_DLG_EXTAPP_CAUTION (g_mMsgRes.GetMsg(MSG_ID_DLG_EXTAPP_CAUTION))\r
+\r
+#define MSG_ID_DLG_EXTAPP_CHOOSE_TTL 277\r
+#define MSG_DLG_EXTAPP_CHOOSE_TTL (g_mMsgRes.GetMsg(MSG_ID_DLG_EXTAPP_CHOOSE_TTL))\r
+\r
+#define MSG_ID_DLG_EXTAPP_CHOOSE_EXT 278\r
+#define MSG_DLG_EXTAPP_CHOOSE_EXT (g_mMsgRes.GetMsg(MSG_ID_DLG_EXTAPP_CHOOSE_EXT))\r
+\r
+#define MSG_ID_MENUITEM_BE_T_TWOPANE 279\r
+#define MSG_MENUITEM_BE_T_TWOPANE (g_mMsgRes.GetMsg(MSG_ID_MENUITEM_BE_T_TWOPANE))\r
+\r
+#define MSG_ID_MENUITEM_B_ADDBM 280\r
+#define MSG_MENUITEM_B_ADDBM (g_mMsgRes.GetMsg(MSG_ID_MENUITEM_B_ADDBM))\r
+\r
+#define MSG_ID_MENUITEM_B_EDITBM 281\r
+#define MSG_MENUITEM_B_EDITBM (g_mMsgRes.GetMsg(MSG_ID_MENUITEM_B_EDITBM))\r
+\r
+#define MSG_ID_DLG_PROPTAB_USE_CLEARTYPE_FONT_CE 282\r
+#define MSG_DLG_PROPTAB_USE_CLEARTYPE_FONT_CE (g_mMsgRes.GetMsg(MSG_ID_DLG_PROPTAB_USE_CLEARTYPE_FONT_CE))\r
+\r
+#define MSG_ID_DLG_PROPTAB_DISABLESAVEDLG 283\r
+#define MSG_DLG_PROPTAB_DISABLESAVEDLG (g_mMsgRes.GetMsg(MSG_ID_DLG_PROPTAB_DISABLESAVEDLG))\r
+\r
+#define MSG_ID_MENUITEM_W32_T_REBAR 284\r
+#define MSG_MENUITEM_W32_T_REBAR (g_mMsgRes.GetMsg(MSG_ID_MENUITEM_W32_T_REBAR))\r
+\r
+#define MSG_ID_DLG_SAVEPROP_FAILED 285\r
+#define MSG_DLG_SAVEPROP_FAILED (g_mMsgRes.GetMsg(MSG_ID_DLG_SAVEPROP_FAILED))\r
+\r
+#define MSG_ID_DLG_PROPTAB_TIMEOUT_USE_SAFENAME 286\r
+#define MSG_DLG_PROPTAB_TIMEOUT_USE_SAFENAME (g_mMsgRes.GetMsg(MSG_ID_DLG_PROPTAB_TIMEOUT_USE_SAFENAME))\r
+\r
+#define MSG_ID_DLG_PROPTAB_TIMEOUT_USE_SAFENAME_HELP 287\r
+#define MSG_DLG_PROPTAB_TIMEOUT_USE_SAFENAME_HELP (g_mMsgRes.GetMsg(MSG_ID_DLG_PROPTAB_TIMEOUT_USE_SAFENAME_HELP))\r
+\r
+#define MSG_ID_DECRYPT_IS_PARTIAL 288\r
+#define MSG_DECRYPT_IS_PARTIAL (g_mMsgRes.GetMsg(MSG_ID_DECRYPT_IS_PARTIAL))\r
+\r
+#define MSG_ID_REGERASE_TITLE 289\r
+#define MSG_REGERASE_TITLE (g_mMsgRes.GetMsg(MSG_ID_REGERASE_TITLE))\r
+\r
+#define MSG_ID_REGERASE_CONFIRM 290\r
+#define MSG_REGERASE_CONFIRM (g_mMsgRes.GetMsg(MSG_ID_REGERASE_CONFIRM))\r
+\r
+#define MSG_ID_REGERASE_CANCELED 291\r
+#define MSG_REGERASE_CANCELED (g_mMsgRes.GetMsg(MSG_ID_REGERASE_CANCELED))\r
+\r
+#define MSG_ID_REGERASE_DELETED 292\r
+#define MSG_REGERASE_DELETED (g_mMsgRes.GetMsg(MSG_ID_REGERASE_DELETED))\r
+\r
+#define MSG_ID_REGERASE_NOT_EXIST 293\r
+#define MSG_REGERASE_NOT_EXIST (g_mMsgRes.GetMsg(MSG_ID_REGERASE_NOT_EXIST))\r
+\r
+#define MSG_ID_REGERASE_ERROR 294\r
+#define MSG_REGERASE_ERROR (g_mMsgRes.GetMsg(MSG_ID_REGERASE_ERROR))\r
+\r
+#define MSG_ID_DLG_PROPTAB_DEFNOTE_LAST_USE 295\r
+#define MSG_DLG_PROPTAB_DEFNOTE_LAST_USE (g_mMsgRes.GetMsg(MSG_ID_DLG_PROPTAB_DEFNOTE_LAST_USE))\r
+\r
+#define MSG_ID_DLG_PROPTAB_CODEPAGE_LABEL 296\r
+#define MSG_DLG_PROPTAB_CODEPAGE_LABEL (g_mMsgRes.GetMsg(MSG_ID_DLG_PROPTAB_CODEPAGE_LABEL))\r
+\r
+#define MSG_ID_CODEPAGE_UTF16 297\r
+#define MSG_CODEPAGE_UTF16 (g_mMsgRes.GetMsg(MSG_ID_CODEPAGE_UTF16))\r
+\r
+#define MSG_ID_CODEPAGE_UTF8 298\r
+#define MSG_CODEPAGE_UTF8 (g_mMsgRes.GetMsg(MSG_ID_CODEPAGE_UTF8))\r
+\r
+#define MSG_ID_DLG_PROPTAB_CODEPAGE_NOTICE 299\r
+#define MSG_DLG_PROPTAB_CODEPAGE_NOTICE (g_mMsgRes.GetMsg(MSG_ID_DLG_PROPTAB_CODEPAGE_NOTICE))\r
+\r
+#define MSG_ID_MENUITEM_UNDO 300\r
+#define MSG_MENUITEM_UNDO (g_mMsgRes.GetMsg(MSG_ID_MENUITEM_UNDO))\r
+\r
+#define MSG_ID_MENUITEM_FILE 301\r
+#define MSG_MENUITEM_FILE (g_mMsgRes.GetMsg(MSG_ID_MENUITEM_FILE))\r
+\r
+\r
+#define NUM_MESSAGES 301\r
diff --git a/Src/MsgRes/MsgDef/TomboMsg_en.txt b/Src/MsgRes/MsgDef/TomboMsg_en.txt
new file mode 100644 (file)
index 0000000..8348025
--- /dev/null
@@ -0,0 +1,301 @@
+LANG_INFO      English\r
+MSG_TOOLTIPS_NEWMEMO   New Memo\r
+MSG_TOOLTIPS_RETURNLIST        Return to list\r
+MSG_TOOLTIPS_SAVE      Save\r
+MSG_TOOLTIPS_INSDATE1  Insert date1\r
+MSG_TOOLTIPS_INSDATE2  Insert date2\r
+MSG_MEMO       Root\r
+MSG_TOOL       Tool\r
+MSG_EDIT       Edit\r
+MSG_INITAPPBTN_FAIL    Initialize APP button failed.\r
+MSG_NEW        New\r
+MSG_UPDATE     Update\r
+MSG_RONLY      View\r
+MSG_DEFAULT_HEADLINE   memo\r
+MSG_SAVE_FAILED        Save memo failed(%d).\r
+MSG_GETSIPSTAT_FAILED  Get SIP status failed.\r
+MSG_CREATEFOLDER_FAILED        Create folder failed.\r
+MSG_ERASE_PW   Erase password in memory\r
+MSG_ERASE_PW_TITLE     Erase password\r
+MSG_FOLDING_FAILED     Folding failed.\r
+MSG_NOT_ENOUGH_MEMORY  Not enough memory.\r
+MSG_PASS_NOT_MATCH     Password doesn't match.\r
+MSG_CANT_GET_PASS      Can't get password.\r
+MSG_TIMER_SET_FAILED   Set timer failed.\r
+MSG_RMDIR_FAILED       Remove directory failed.\r
+MSG_OTHER_FILE_EXISTS  There are files that aren't memos.\r
+MSG_RMFILE_FAILED      Remove file failed.\r
+MSG_MKDIR_FAILED       Create directory failed.\r
+MSG_FILECOPY_FAILED    Copy file failed.\r
+MSG_MEMO_EDITED        Memo has been modified. Save changes?\r
+MSG_CONFIRM_SAVE       Confirm\r
+MSG_CANT_OPEN_MEMO     Can't open memo\r
+MSG_PASS_NOT_MATCH2    Password doesn't match. Continue?\r
+MSG_PASS_NOT_MATCH3    Password doesn't match.\r
+MSG_PASS_MISMATCH_TTL  Password mismatch\r
+MSG_IS_CREATE_DIR      Directory doesn't exist. Create?\r
+MSG_CREATE_DIR_TTL     Create directory\r
+MSG_CHOOSE_FOLDER      Choose folder\r
+MSG_REG_PASSWD Register password.\r
+MSG_REG_PASSWD_TTL     Change password\r
+MSG_PLEASE_SET_PASS    Please set password.\r
+MSG_GET_PASS_FAILED    Get password failed.\r
+MSG_GET_FP_FAILED      Get fingerprint failed.\r
+MSG_PW_REGED   Password has registered.\r
+MSG_PW_REG_FAILED      Register password failed.\r
+MSG_SAVE_DATA_FAILED   Save data failed.\r
+MSG_ENCRYPTION_FAILED  Encryption failed.(%d)\r
+MSG_DECRYPTION_FAILED  Decryption faield.(%d)\r
+MSG_MOVE_MEMO_FAILED   Move failed.\r
+MSG_COPY_MEMO_FAILED   Copy failed.\r
+MSG_STRING_NOT_FOUND   String not found\r
+MSG_CONFIRM_DELETE     Delete selected memo?\r
+MSG_DELETE_TTL Delete memo\r
+MSG_DELETE_FAILED      Delete memo failed.\r
+MSG_DELETE_PREV_CRYPT_MEMO_FAILED      Delete memo that before encrypted failed. Please delete manually.\r
+MSG_DEL_PREV_DECRYPT_MEMO_FAILED       Delete memo that before decrypted failed. Please delete manually.\r
+MSG_NO_FILENAME        No filename.\r
+MSG_SAME_FILE  Same name file exists.\r
+MSG_RENAME_FAILED      Rename file failed(%d).\r
+MSG_CONFIRM_DEL_FOLDER Delete selected folder?\r
+MSG_DEL_FOLDER_TTL     Delete folder\r
+MSG_NO_FOLDERNAME      No foldername.\r
+MSG_SAME_FOLDER        Same folder name exists.\r
+MSG_REN_FOLDER_FAILED  Rename folder failed(%d).\r
+MSG_GET_DATE_FAILED    Get dateformat failed.\r
+MSG_ROOT_NOT_ALLOWED   Can't set root folder as '\\'\r
+MSG_DATEFORMAT_DESC    %y\t:Year(2001)\r\n%Y\t:Year(01)\r\n%M\t:Month(01,02,..)\r\n%b\t:Month(Jan,Feb,..)\r\n%d\t:Day(01,02..)\r\n%D\t:Day(1,2,..)\r\n%W\t:WDay(Sun,Mon,..)\r\n%H\t:Hour(12H:00..11)\r\n%I\t:Hour(12H:01..12)\r\n%h\t:Hour(24H)\r\n%a\t:AM,PM\r\n%m\t:Min(01,02,..)\r\n%s\t:Sec(01,02,..)\r\n%%\t:\"%\"\r\n%n\t:newline\r\n%fn\t:file path(n is 0-9)\r\n%Fn\t:file path\r
+MSG_VIRTUAL_FOLDER     Search result\r
+MSG_CONFIRM_ENCRYPT_FOLDER     Encrypt files under the folder?\r
+MSG_CONFIRM_ENCRYPT_FOLDER_TTL Encrypt files\r
+MSG_PLAIN_TEXT_DEL_FAILED      Delete some plain file failed.\r
+MSG_ENCRYPT_FAILED     Some files are not encrypted.\r
+MSG_CONFIRM_DECRYPT_FOLDER     Decrypt files under the folder?\r
+MSG_CONFIRM_DECRYPT_FOLDER_TTL Decrypt files\r
+MSG_CRYPT_FILE_DEL_FAILED      Delete some encrypted file failed.\r
+MSG_DECRYPT_FAILED     Some files are not decrypted.\r
+MSG_CHECKBF_FAILED     Self test of encryption libs failed(%s). Encryption are not work correctly.\r
+MSG_CHECKBF_TTL        Self test failed\r
+MSG_SEARCH_CANCELING   Wait a moment...\r
+MSG_SEARCH_FAILED      Search failed(%d).\r
+MSG_STRING_SEARCH_CANCELED     Search has been canceled.\r
+MSG_GREPTAB_MAIN_TTL   Quick filter\r
+MSG_INSERTVFOLDER_FAIL Create virtual folder failed.\r
+MSG_GREP_NONAME_LABEL  Grep result\r
+MSG_VFOLDER_NAME_TTL   Virtual folder name\r
+MSG_CONFIRM_DEL_VFOLDER        Delete selected virtual folder?\r
+MSG_DEL_VFOLDER_TTL    Delete virtual folder\r
+MSG_FILTERDEFDLG_TTL   Filter settings\r
+MSG_FILTERDEFPROPTTL_SRC       Source\r
+MSG_FILTERDEFPROPTTL_FILTER    Filter\r
+MSG_FILTERDEFPROPTTL_PATHTYPE  View path\r
+MSG_FILTERDEFPROPTTL_FILTERTYPE_HDR    Filter ype\r
+MSG_FILTERDEFPROPTTL_FILTERVAL_HDR     Condition\r
+MSG_STREAM_NAME_REGEXP Find\r
+MSG_STREAM_NAME_LIMIT  Num of items\r
+MSG_STREAM_NAME_TIMESTAMP      Last update\r
+MSG_STREAM_NAME_SORT   Sort\r
+MSG_STREAM_VALUE_LIMIT %d item(s)\r
+MSG_STREAM_VALUE_TIMESTAMP_NEWER       Newer than %d day before\r
+MSG_STREAM_VALUE_TIMESTAMP_OLDER       Older than %d day before\r
+MSG_STREAM_VALUE_SORT_FNAME_ASC        Dictionary order\r
+MSG_STREAM_VALUE_SORT_FNAME_DSC        Reverse dic order\r
+MSG_STREAM_VALUE_SORT_LASTUPD_ASC      Old order of last update\r
+MSG_STREAM_VALUE_SORT_LASTUPD_DSC      New order of last update\r
+MSG_STREAM_VALUE_SORT_CREATE_ASC       Old order of create date\r
+MSG_STREAM_VALUE_SORT_CREATE_DSC       New order of create date\r
+MSG_STREAM_VALUE_SORT_FILESIZE_ASC     Asc order of file size\r
+MSG_STREAM_VALUE_SORT_FILESIZE_DSC     Dsc order of file size\r
+MSG_DLG_INIT_FAIL      Initialize dialog failed.\r
+MSG_INVALID_REGEXP     Generate pattern failed\r
+MSG_SET_POSITIVE       Please set positive number\r
+MSG_INVALID_FONT_SIZE  Invalid font size\r
+MSG_DST_FOLDER_IS_SRC_SUBFOLDER        Dst folder is subfolder of src folder\r
+MSG_FILTEDEF_VIEW_TYPE_DEFAULT Not display path\r
+MSG_FILTEDEF_VIEW_TYPE_PREV    View before file name\r
+MSG_FILTEDEF_VIEW_TYPE_POST    View after file name\r
+MSG_BMDLG_TITLE_NAME   Name\r
+MSG_BMDLG_TITLE_PATH   Path\r
+MSG_DEL_BOOKMARK       Delete bookmarks\r
+MSG_CONFIRM    Deleting selected bookmarks. Are you sure?\r
+MSG_PROPTAB_FOLDER     Memo\r
+MSG_PROPTAB_PASSWORD   Password\r
+MSG_PROPTAB_FONT       Font\r
+MSG_PROPTAB_DATE       Date\r
+MSG_PROPTAB_KEEPCARET  Memo view\r
+MSG_PROPTAB_PASS_TIMEOUT       Security\r
+MSG_PROPTAB_DEFNOTE    Toppage\r
+MSG_PROPTAB_TITLE      Property\r
+MSG_GREPTAB_MAIN       Main\r
+MSG_GREPTAB_PERSIST    Save\r
+MSG_PROPTAB_APPBUTTON  AppButton\r
+MSG_PROPTAB_SIP        SIP\r
+MSG_PROPTAB_CODEPAGE   Encoding\r
+MSG_MENU_NOTE  Memo\r
+MSG_MENU_TOOL  Tool\r
+MSG_MENU_EDIT  Edit\r
+MSG_MENUITEM_MAIN_NEWFOLDER    NewFolder\r
+MSG_MENUITEM_MAIN_CUT  Cut\r
+MSG_MENUITEM_MAIN_COPY Copy\r
+MSG_MENUITEM_MAIN_PASTE        Paste\r
+MSG_MENUITEM_MAIN_RENAME       Rename\r
+MSG_MENUITEM_MAIN_DELETE       Delete\r
+MSG_MENUITEM_MAIN_FIND Find\r
+MSG_MENUITEM_MAIN_FIND_NEXT    Find Next\r
+MSG_MENUITEM_MAIN_FIND_PREV    Find Prev\r
+MSG_MENUITEM_MAIN_QUICKFILTER  Quick filter\r
+MSG_MENUITEM_MAIN_ENCRYPT      Encrypt\r
+MSG_MENUITEM_MAIN_DECRYPT      Decrypt\r
+MSG_MENUITEM_DETAILS_SELALL    Select All\r
+MSG_MENUITEM_TOOL_EXIT Exit\r
+MSG_MENUITEM_TOOL_ABOUT        About\r
+MSG_MENUITEM_TOOL_PROPERTY     Options\r
+MSG_MENUITEM_TOOL_VFOLDER_DEF  Virtual folder\r
+MSG_MENUITEM_TOOL_FORGETPASS   ForgetPass\r
+MSG_MENUITEM_TOOL_WRAP Wrap Text\r
+MSG_MENUITEM_W32B_FILE &File\r
+MSG_MENUITEM_W32_F_NEWMEMO     New &Memo\tCtrl+N\r
+MSG_MENUITEM_W32_F_NEWFOLDER   New folder\r
+MSG_MENUITEM_W32_F_RENAME      &Rename file\r
+MSG_MENUITEM_W32_F_DEL &Delete\tDEL\r
+MSG_MENUITEM_W32_F_SAVE        &Save\tCtrl+S\r
+MSG_MENUITEM_W32_F_EXIT        E&xit\r
+MSG_MENUITEM_W32B_EDIT &Edit\r
+MSG_MENUITEM_W32_E_CUT Cu&t\tCtrl+X\r
+MSG_MENUITEM_W32_E_COPY        &Copy\tCtrl+C\r
+MSG_MENUITEM_W32_E_PASTE       &Paste\tCtrl+V\r
+MSG_MENUITEM_W32_E_SELALL      Select &All\tCtrl+A\r
+MSG_MENUITEM_W32_E_FIND        &Find\tCtrl+F\r
+MSG_MENUITEM_W32_E_FINDNEXT    Find Prev\tF3\r
+MSG_MENUITEM_W32_E_FINDPREV    Find Next\tShift+F3\r
+MSG_MENUITEM_W32_E_QFILTER     Quick filter\tCtrl+G\r
+MSG_MENUITEM_W32_E_DATE1       Insert Date1\tCtrl+1\r
+MSG_MENUITEM_W32_E_DATE2       Insert Date2\tCtrl+2\r
+MSG_MENUITEM_W32B_BOOKMARK     &BookMark\r
+MSG_MENUITEM_W32_B_ADDBM       &Add bookmark\r
+MSG_MENUITEM_W32_B_EDITBM      &Edit bookmark\r
+MSG_MENUITEM_W32B_TOOL &Tools\r
+MSG_MENUITEM_W32_T_WRAPTEXT    Wrap Text\r
+MSG_MENUITEM_W32_T_TWOPANE     Two panes\r
+MSG_MENUITEM_W32_T_STATUSBAR   Status bar\r
+MSG_MENUITEM_W32_T_STAYTOPMOST Stay topmost\r
+MSG_MENUITEM_W32_T_ENCRYPT     &Encrypt\tCtrl+E\r
+MSG_MENUITEM_W32_T_DECRYPT     Decry&pt\tCtrl+P\r
+MSG_MENUITEM_W32_T_ERASEPASS   Erase password\r
+MSG_MENUITEM_W32_T_VIRTUALFOLDER       Virtual folder\r
+MSG_MENUITEM_W32_T_OPTIONS     &Options\r
+MSG_MENUITEM_W32B_HELP &Help\r
+MSG_MENUITEM_W32_H_ABOUT       &About TOMBO\r
+MSG_MENUITEM_CTX_TRACELINK     Jump to original\r
+MSG_DLG_CMN_OK OK\r
+MSG_DLG_CMN_CANCEL     Cancel\r
+MSG_DLG_BMEDIT_TITLE   Edit bookmark\r
+MSG_DLG_BMEDIT_UP      UP\r
+MSG_DLG_BMEDIT_DOWN    DN\r
+MSG_DLG_BMEDIT_DELETE  Delete\r
+MSG_DLG_FILESELECT_TITLE       Select File\r
+MSG_DLG_FILTERCTL_TITLE        Virtual folder settings\r
+MSG_DLG_FILTERCTL_UP   Up\r
+MSG_DLG_FILTERCTL_DOWN Dn\r
+MSG_DLG_FILTERCTL_KEEP Save\r
+MSG_DLG_FILTERCTL_NEW  New\r
+MSG_DLG_FILTERCTL_RENAME       Ren\r
+MSG_DLG_FILTERCTL_DELETE       Del\r
+MSG_DLG_FILTERDEF_ADD_LIMIT_TITLE      Number filter\r
+MSG_DLG_FILTERDEF_ADD_LIMIT_ITEMS      Num Items:\r
+MSG_DLG_FILTERDEF_ADD_REGEX_TITLE      Find filter\r
+MSG_DLG_FILTERDEF_ADD_REGEX_FINDSTR    Search str:\r
+MSG_DLG_FILTERDEF_ADD_REGEX_CASESENSITIVE      Case sensitive\r
+MSG_DLG_FILTERDEF_ADD_REGEX_INCLUDECRYPTED     Include encrypted memo\r
+MSG_DLG_FILTERDEF_ADD_REGEX_FORFILENAME        Find to file name\r
+MSG_DLG_FILTERDEF_ADD_REGEX_EXCLUDE    Invert match\r
+MSG_DLG_FILTERDEF_ADD_SORT_TITLE       Sort filter\r
+MSG_DLG_FILTERDEF_ADD_SORT_METHOD      Sort Type:\r
+MSG_DLG_FILTERDEF_ADD_TIMESTAMP_TITLE  Timestamp filter\r
+MSG_DLG_FILTERDEF_ADD_TIMESTAMP_BASETIME       days before\r
+MSG_DLG_FILTERDEF_ADD_TIMESTAMP_NEWER  Newer\r
+MSG_DLG_FILTERDEF_ADD_TIMESTAMP_OLDER  Older\r
+MSG_DLG_FILTERDEF_FILTER_UP    Up\r
+MSG_DLG_FILTERDEF_FILTER_DOWN  Dn\r
+MSG_DLG_FILTERDEF_FILTER_DELETE        Del\r
+MSG_DLG_FILTERDEF_FILTER_FIND  Find\r
+MSG_DLG_FILTERDEF_FILTER_NUMBER        Num\r
+MSG_DLG_FILTERDEF_FILTER_TIMESTAMP     Date\r
+MSG_DLG_FILTERDEF_FILTER_SORT  Sort\r
+MSG_DLG_GREPTAB_MAIN_POSLABEL  Target:\r
+MSG_DLG_GREPTAB_MAIN_STRLABEL  Search:\r
+MSG_DLG_GREPTAB_PERSIST_KEEP   Save\r
+MSG_DLG_GREPTAB_PERSIST_LABEL  Name:\r
+MSG_DLG_NEWFOLDER_TITLE        New folder\r
+MSG_DLG_PASSWORD_TITLE Password\r
+MSG_DLG_PROPTAB_DEFNOTE_LABEL  Default note\r
+MSG_DLG_PROPTAB_DEFNOTE_CURRENT        Use selected\r
+MSG_DLG_PROPTAB_BLANK  Use blank\r
+MSG_DLG_PROPTAB_FOLDER_LABEL   Root folder:\r
+MSG_DLG_PROPTAB_FOLDER_HELP1   Folder to store Tombo Notes\r
+MSG_DLG_PROPTAB_FOLDER_SYNCTITLE       Sync file name and title\r
+MSG_DLG_PROPTAB_FOLDER_HELP2   Rename file name if headline changed.\r
+MSG_DLG_PROPTAB_FOLDER_READONLY        Open notes read-only mode\r
+MSG_DLG_PROPTAB_FONT_TREE_LABEL        Tree:\r
+MSG_DLG_PROPTAB_FONT_USE_DEFAULT       Use default font\r
+MSG_DLG_PROPTAB_FONT_EDIT_LABEL        Memo:\r
+MSG_DLG_PROPTAB_USE_CLEARTYPE_FONT     Use ClearType font(XP only)\r
+MSG_DLG_PROPTAB_DATE_INSDATE1  Date1:\r
+MSG_DLG_PROPTAB_DATE_INSDATE2  Date2:\r
+MSG_DLG_PROPTAB_KEEPCARET_KEEPCARET    Keep cursor position\r
+MSG_DLG_PROPTAB_KEEPCARET_HELP1        Restore last cursor position when re-opening.\r
+MSG_DLG_PROPTAB_KEEPCARET_LABEL        Tab stop:\r
+MSG_DLG_PROPTAB_KEEPCARET_HELP2        Set tab stop width\r
+MSG_DLG_PROPTAB_KEEPCARET_SYNCTITLE    Show title\r
+MSG_DLG_PROPTAB_KEEPCARET_HELP3        Show note title in titlebar.\r
+MSG_DLG_PROPTAB_PASSTO_LABEL   Password timeout(min):\r
+MSG_DLG_PROPTAB_PASSTO_HELP    Timeout length(1-60).\r
+MSG_DLG_SEARCH_TITLE   Search\r
+MSG_DLG_SEARCH_FIND_LABEL      Search str:\r
+MSG_DLG_SEARCH_DIRECTION_LABEL Direction\r
+MSG_DLG_SEARCH_DIRECTION_UP    Up\r
+MSG_DLG_SEARCH_DIRECTION_DOWN  Down\r
+MSG_DLG_PROPTAB_APPBTN_BUTTON1 Button1\r
+MSG_DLG_PROPTAB_APPBTN_BUTTON2 Button2\r
+MSG_DLG_PROPTAB_APPBTN_BUTTON3 Button3\r
+MSG_DLG_PROPTAB_APPBTN_BUTTON4 Button4\r
+MSG_DLG_PROPTAB_APPBTN_BUTTON5 Button5\r
+MSG_DLG_PROPTAB_APPBTN_HELP    Assign application button to action button. It is enabled after restarting TOMBO\r
+MSG_DLG_PROPTAB_APPBTN_DISABLE Disable close notes on edit view\r
+MSG_DLG_PROPTAB_SIP_SHIFT      Keep space over the SIP\r
+MSG_CODEPAGE_DEFAULT   Default(System native)\r
+MSG_CODEPAGE_GREEK     Greek\r
+MSG_MENUITEM_FIND      &Search\r
+MSG_MENUITEM_EXTAPP1   Ext tool1\r
+MSG_MENUITEM_EXPLORER  Open by Explorer\r
+MSG_MENUITEM_ASSOCIATION       Open by association\r
+MSG_PROPTAB_EXTAPP     External Apps\r
+MSG_DLG_EXTAPP_USEASSOC        Use file association\r
+MSG_DLG_EXTAPP_LBL_APP1        Application1:\r
+MSG_DLG_EXTAPP_LBL_APP2        Application2:\r
+MSG_DLG_EXTAPP_CAUTION CAUTION:\r\nIf external application creates backup file, TOMBO is \r\n*NOT DELETE* it. Please check yourself before encryption whether backup file exists or not.\r
+MSG_DLG_EXTAPP_CHOOSE_TTL      Choose application\r
+MSG_DLG_EXTAPP_CHOOSE_EXT      app(*.exe)\0*.exe\0all(*.*)\0*.*\0\0\r
+MSG_MENUITEM_BE_T_TWOPANE      Two panes\r
+MSG_MENUITEM_B_ADDBM   Add bookmark\r
+MSG_MENUITEM_B_EDITBM  Edit bookmark\r
+MSG_DLG_PROPTAB_USE_CLEARTYPE_FONT_CE  Use ClearType font\r
+MSG_DLG_PROPTAB_DISABLESAVEDLG Disable save daialog\r
+MSG_MENUITEM_W32_T_REBAR       Toolbar\r
+MSG_DLG_SAVEPROP_FAILED        Save options failed. Change may not be reflected.\r
+MSG_DLG_PROPTAB_TIMEOUT_USE_SAFENAME   Use random filename\r
+MSG_DLG_PROPTAB_TIMEOUT_USE_SAFENAME_HELP      When encrypting, generate file name by random number.\r
+MSG_DECRYPT_IS_PARTIAL Get headline failed for some notes due to wrong password. Display ???????? the notes.\r
+MSG_REGERASE_TITLE     TOMBO registry erase tool\r
+MSG_REGERASE_CONFIRM   The registry entry that TOMBO 1.14 or orlder uses are erased. Are you sure?\r
+MSG_REGERASE_CANCELED  Canceled.\r
+MSG_REGERASE_DELETED   Deleted.\r
+MSG_REGERASE_NOT_EXIST There are no registry entry.\r
+MSG_REGERASE_ERROR     Delete failed(%d).\r
+MSG_DLG_PROPTAB_DEFNOTE_LAST_USE       When starting select the tree item last selected\r
+MSG_DLG_PROPTAB_CODEPAGE_LABEL File encoding\r
+MSG_CODEPAGE_UTF16     Unicode(UTF16LE)\r
+MSG_CODEPAGE_UTF8      UTF-8\r
+MSG_DLG_PROPTAB_CODEPAGE_NOTICE        Set file encoding. Auto detection/conversion is not supported, so do not change if you hanve already some notes.\r
+MSG_MENUITEM_UNDO      Undo\r
+MSG_MENUITEM_FILE      File\r
diff --git a/Src/MsgRes/MsgDef/TomboMsg_jp.txt b/Src/MsgRes/MsgDef/TomboMsg_jp.txt
new file mode 100644 (file)
index 0000000..971736f
--- /dev/null
@@ -0,0 +1,301 @@
+LANG_INFO      Japanese\r
+MSG_TOOLTIPS_NEWMEMO   新規メモ\r
+MSG_TOOLTIPS_RETURNLIST        一覧に戻る\r
+MSG_TOOLTIPS_SAVE      保存\r
+MSG_TOOLTIPS_INSDATE1  日付1の挿入\r
+MSG_TOOLTIPS_INSDATE2  日付2の挿入\r
+MSG_MEMO       メモ\r
+MSG_TOOL       ツール\r
+MSG_EDIT       編集\r
+MSG_INITAPPBTN_FAIL    アプリケーションボタンの初期化に失敗しました\r
+MSG_NEW        新規\r
+MSG_UPDATE     更新\r
+MSG_RONLY      閲覧\r
+MSG_DEFAULT_HEADLINE   無題\r
+MSG_SAVE_FAILED        メモの保存に失敗しました(%d)\r
+MSG_GETSIPSTAT_FAILED  SIPの状態取得に失敗しました\r
+MSG_CREATEFOLDER_FAILED        フォルダの作成に失敗しました\r
+MSG_ERASE_PW   記憶していたパスワードを消去しました\r
+MSG_ERASE_PW_TITLE     パスワード消去\r
+MSG_FOLDING_FAILED     折り返し処理の切り替えに失敗しました\r
+MSG_NOT_ENOUGH_MEMORY  メモリの確保に失敗しました\r
+MSG_PASS_NOT_MATCH     パスワードが一致しません\r
+MSG_CANT_GET_PASS      パスワードが取得できませんでした\r
+MSG_TIMER_SET_FAILED   パスワードタイマーが設定できませんでした\r
+MSG_RMDIR_FAILED       ディレクトリ削除に失敗しました\r
+MSG_OTHER_FILE_EXISTS  メモ以外のファイルが存在します\r
+MSG_RMFILE_FAILED      ファイル削除に失敗しました\r
+MSG_MKDIR_FAILED       ディレクトリ作成に失敗しました\r
+MSG_FILECOPY_FAILED    ファイルのコピーに失敗しました\r
+MSG_MEMO_EDITED        メモは編集されています。保存しますか?\r
+MSG_CONFIRM_SAVE       保存の確認\r
+MSG_CANT_OPEN_MEMO     メモは開けませんでした\r
+MSG_PASS_NOT_MATCH2    入力されたパスワードが登録されたそれと一致しません。続行しますか?\r
+MSG_PASS_NOT_MATCH3    入力されたパスワードが登録されたそれと一致しません。\r
+MSG_PASS_MISMATCH_TTL  パスワード不一致\r
+MSG_IS_CREATE_DIR      ディレクトリが存在しません。作成しますか?\r
+MSG_CREATE_DIR_TTL     メモディレクトリの作成\r
+MSG_CHOOSE_FOLDER      フォルダの選択\r
+MSG_REG_PASSWD パスワードを登録します。変更は即座に反映されます。よろしいですか?\r
+MSG_REG_PASSWD_TTL     パスワードの変更\r
+MSG_PLEASE_SET_PASS    パスワードを設定してください\r
+MSG_GET_PASS_FAILED    パスワードの取得に失敗しました\r
+MSG_GET_FP_FAILED      フィンガープリントの取得に失敗しました\r
+MSG_PW_REGED   パスワードが登録されました\r
+MSG_PW_REG_FAILED      パスワードの登録に失敗しました\r
+MSG_SAVE_DATA_FAILED   データの保存に失敗しました\r
+MSG_ENCRYPTION_FAILED  暗号化に失敗しました(%d)\r
+MSG_DECRYPTION_FAILED  復号化に失敗しました(%d)\r
+MSG_MOVE_MEMO_FAILED   移動に失敗しました\r
+MSG_COPY_MEMO_FAILED   コピーに失敗しました\r
+MSG_STRING_NOT_FOUND   文字列は見つかりませんでした。\r
+MSG_CONFIRM_DELETE     選択したメモを削除します。よろしいですか?\r
+MSG_DELETE_TTL メモの削除\r
+MSG_DELETE_FAILED      メモの削除に失敗しました\r
+MSG_DELETE_PREV_CRYPT_MEMO_FAILED      暗号化前のメモの削除に失敗しました。手動で消してください\r
+MSG_DEL_PREV_DECRYPT_MEMO_FAILED       復号化前のメモの削除に失敗しました。手動で消してください\r
+MSG_NO_FILENAME        ファイル名が指定されていません\r
+MSG_SAME_FILE  同名のファイルが存在します\r
+MSG_RENAME_FAILED      ファイル名の変更に失敗しました: %d\r
+MSG_CONFIRM_DEL_FOLDER 選択したフォルダを削除します。よろしいですか?\r
+MSG_DEL_FOLDER_TTL     フォルダの削除\r
+MSG_NO_FOLDERNAME      フォルダ名が指定されていません\r
+MSG_SAME_FOLDER        同名のフォルダが存在します\r
+MSG_REN_FOLDER_FAILED  フォルダ名の変更に失敗しました: %d\r
+MSG_GET_DATE_FAILED    日付の取得に失敗しました\r
+MSG_ROOT_NOT_ALLOWED   \\はメモフォルダとして指定できません\r
+MSG_DATEFORMAT_DESC    %y\t:年4桁(2001)\r\n%Y\t:年下2桁(01)\r\n%M\t:月(01,02,...)\r\n%b\t:月(Jan,Feb..)\r\n%d\t:日(01,02..)\r\n%D\t:日(1,2,..)\r\n%w\t:曜日(日,月..)\r\n%W\t:曜日(Sun,Mon)\r\n%H\t:時(12H:00..11)\r\n%I\t:時(12H:01..12)\r\n%h\t:時(24H)\r\n%a\t:AM,PM\r\n%m\t:分(01,02..)\r\n%s\t:秒(01,02..)\r\n%%\t:\"%\"\r\n%n\t:改行\r\n%fn\t:ファイルパス(上位n階層,0はすべて)\r\n%Fn\t:ファイルパス(下位n階層)\r
+MSG_VIRTUAL_FOLDER     検索結果\r
+MSG_CONFIRM_ENCRYPT_FOLDER     フォルダのファイルに対して暗号化を行います。よろしいですか?\r
+MSG_CONFIRM_ENCRYPT_FOLDER_TTL 暗号化\r
+MSG_PLAIN_TEXT_DEL_FAILED      いくつかのファイルについて暗号化前のファイルの削除に失敗しました\r
+MSG_ENCRYPT_FAILED     いくつかのファイルについて暗号化に失敗しました\r
+MSG_CONFIRM_DECRYPT_FOLDER     フォルダのファイルに対して復号化を行います。よろしいですか?\r
+MSG_CONFIRM_DECRYPT_FOLDER_TTL 復号化\r
+MSG_CRYPT_FILE_DEL_FAILED      いくつかのファイルについて暗号ファイルの削除に失敗しました\r
+MSG_DECRYPT_FAILED     いくつかのファイルについて復号化に失敗しました\r
+MSG_CHECKBF_FAILED     暗号化ライブラリのセルフテストに失敗しました(%s)。暗号化が正常に行われない可能性があります\r
+MSG_CHECKBF_TTL        セルフテスト失敗\r
+MSG_SEARCH_CANCELING   キャンセルしています...\r
+MSG_SEARCH_FAILED      検索に失敗しました(%d)\r
+MSG_STRING_SEARCH_CANCELED     検索はキャンセルされました\r
+MSG_GREPTAB_MAIN_TTL   クイックフィルタ\r
+MSG_INSERTVFOLDER_FAIL 仮想フォルダの作成に失敗しました\r
+MSG_GREP_NONAME_LABEL  検索結果\r
+MSG_VFOLDER_NAME_TTL   仮想フォルダ名\r
+MSG_CONFIRM_DEL_VFOLDER        選択した仮想フォルダを削除します。よろしいですか?\r
+MSG_DEL_VFOLDER_TTL    仮想フォルダの削除\r
+MSG_FILTERDEFDLG_TTL   フィルタの設定\r
+MSG_FILTERDEFPROPTTL_SRC       ソース\r
+MSG_FILTERDEFPROPTTL_FILTER    フィルタ\r
+MSG_FILTERDEFPROPTTL_PATHTYPE  パス表示\r
+MSG_FILTERDEFPROPTTL_FILTERTYPE_HDR    フィルタ種別\r
+MSG_FILTERDEFPROPTTL_FILTERVAL_HDR     条件\r
+MSG_STREAM_NAME_REGEXP 検索\r
+MSG_STREAM_NAME_LIMIT  アイテム数\r
+MSG_STREAM_NAME_TIMESTAMP      最終更新日\r
+MSG_STREAM_NAME_SORT   ソート\r
+MSG_STREAM_VALUE_LIMIT %d件\r
+MSG_STREAM_VALUE_TIMESTAMP_NEWER       %d日前より新しいもの\r
+MSG_STREAM_VALUE_TIMESTAMP_OLDER       %d日前より古いもの\r
+MSG_STREAM_VALUE_SORT_FNAME_ASC        ファイル名の辞書順\r
+MSG_STREAM_VALUE_SORT_FNAME_DSC        ファイル名の逆辞書順\r
+MSG_STREAM_VALUE_SORT_LASTUPD_ASC      最終更新日の古い順\r
+MSG_STREAM_VALUE_SORT_LASTUPD_DSC      最終更新日の新しい順\r
+MSG_STREAM_VALUE_SORT_CREATE_ASC       作成日の古い順\r
+MSG_STREAM_VALUE_SORT_CREATE_DSC       作成日の新しい順\r
+MSG_STREAM_VALUE_SORT_FILESIZE_ASC     ファイルサイズ昇順\r
+MSG_STREAM_VALUE_SORT_FILESIZE_DSC     ファイルサイズ降順\r
+MSG_DLG_INIT_FAIL      ダイアログの初期化に失敗しました\r
+MSG_INVALID_REGEXP     正規表現の生成に失敗しました\r
+MSG_SET_POSITIVE       0以上の数を指定してください\r
+MSG_INVALID_FONT_SIZE  フォントサイズが不正です\r
+MSG_DST_FOLDER_IS_SRC_SUBFOLDER        受け側のフォルダは送り側フォルダのサブフォルダです。\r
+MSG_FILTEDEF_VIEW_TYPE_DEFAULT パスを表示しない\r
+MSG_FILTEDEF_VIEW_TYPE_PREV    メモ名の前に表示\r
+MSG_FILTEDEF_VIEW_TYPE_POST    メモ名の後に表示\r
+MSG_BMDLG_TITLE_NAME   アイテム名\r
+MSG_BMDLG_TITLE_PATH   パス\r
+MSG_DEL_BOOKMARK       お気に入りの削除\r
+MSG_CONFIRM    選択したお気に入りを削除します。よろしいですか?\r
+MSG_PROPTAB_FOLDER     メモ\r
+MSG_PROPTAB_PASSWORD   パスワード\r
+MSG_PROPTAB_FONT       フォント\r
+MSG_PROPTAB_DATE       日付\r
+MSG_PROPTAB_KEEPCARET  詳細ビュー\r
+MSG_PROPTAB_PASS_TIMEOUT       セキュリティ\r
+MSG_PROPTAB_DEFNOTE    トップページ\r
+MSG_PROPTAB_TITLE      プロパティ\r
+MSG_GREPTAB_MAIN       メイン\r
+MSG_GREPTAB_PERSIST    保存\r
+MSG_PROPTAB_APPBUTTON  アプリボタン\r
+MSG_PROPTAB_SIP        SIP\r
+MSG_PROPTAB_CODEPAGE   エンコーディング\r
+MSG_MENU_NOTE  メモ\r
+MSG_MENU_TOOL  ツール\r
+MSG_MENU_EDIT  編集\r
+MSG_MENUITEM_MAIN_NEWFOLDER    新規フォルダ\r
+MSG_MENUITEM_MAIN_CUT  切り取り\r
+MSG_MENUITEM_MAIN_COPY コピー\r
+MSG_MENUITEM_MAIN_PASTE        貼り付け\r
+MSG_MENUITEM_MAIN_RENAME       ファイル名の変更\r
+MSG_MENUITEM_MAIN_DELETE       削除\r
+MSG_MENUITEM_MAIN_FIND 検索\r
+MSG_MENUITEM_MAIN_FIND_NEXT    次を検索\r
+MSG_MENUITEM_MAIN_FIND_PREV    前を検索\r
+MSG_MENUITEM_MAIN_QUICKFILTER  クイックフィルタ\r
+MSG_MENUITEM_MAIN_ENCRYPT      暗号化\r
+MSG_MENUITEM_MAIN_DECRYPT      復号化\r
+MSG_MENUITEM_DETAILS_SELALL    全選択\r
+MSG_MENUITEM_TOOL_EXIT 終了\r
+MSG_MENUITEM_TOOL_ABOUT        バージョン情報\r
+MSG_MENUITEM_TOOL_PROPERTY     プロパティ\r
+MSG_MENUITEM_TOOL_VFOLDER_DEF  仮想フォルダ\r
+MSG_MENUITEM_TOOL_FORGETPASS   パスワード消去\r
+MSG_MENUITEM_TOOL_WRAP 折り返して表示\r
+MSG_MENUITEM_W32B_FILE ファイル(&F)\r
+MSG_MENUITEM_W32_F_NEWMEMO     新規メモ\tCtrl+N\r
+MSG_MENUITEM_W32_F_NEWFOLDER   新規フォルダ\r
+MSG_MENUITEM_W32_F_RENAME      名前の変更(&R)\r
+MSG_MENUITEM_W32_F_DEL 削除(&D)\tDEL\r
+MSG_MENUITEM_W32_F_SAVE        保存(&S)\tCtrl+S\r
+MSG_MENUITEM_W32_F_EXIT        終了(&X)\r
+MSG_MENUITEM_W32B_EDIT 編集(&E)\r
+MSG_MENUITEM_W32_E_CUT 切り取り(&T)\tCtrl+X\r
+MSG_MENUITEM_W32_E_COPY        コピー(&C)\tCtrl+C\r
+MSG_MENUITEM_W32_E_PASTE       貼り付け(&P)\tCtrl+V\r
+MSG_MENUITEM_W32_E_SELALL      全選択(&A)\tCtrl+A\r
+MSG_MENUITEM_W32_E_FIND        検索(&S)\tCtrl+F\r
+MSG_MENUITEM_W32_E_FINDNEXT    次を検索\tF3\r
+MSG_MENUITEM_W32_E_FINDPREV    前を検索\tShift+F3\r
+MSG_MENUITEM_W32_E_QFILTER     クイックフィルタ\tCtrl+G\r
+MSG_MENUITEM_W32_E_DATE1       日付1\tCtrl+1\r
+MSG_MENUITEM_W32_E_DATE2       日付2\tCtrl+2\r
+MSG_MENUITEM_W32B_BOOKMARK     お気に入り(&B)\r
+MSG_MENUITEM_W32_B_ADDBM       お気に入りに追加\r
+MSG_MENUITEM_W32_B_EDITBM      お気に入りの整理\r
+MSG_MENUITEM_W32B_TOOL ツール(&T)\r
+MSG_MENUITEM_W32_T_WRAPTEXT    折り返し表示(&L)\r
+MSG_MENUITEM_W32_T_TWOPANE     2画面モード(&P)\r
+MSG_MENUITEM_W32_T_STATUSBAR   ステータスバー\r
+MSG_MENUITEM_W32_T_STAYTOPMOST 常に手前に表示\r
+MSG_MENUITEM_W32_T_ENCRYPT     暗号化(&E)\tCtrl+E\r
+MSG_MENUITEM_W32_T_DECRYPT     復号化(&P)\tCtrl+P\r
+MSG_MENUITEM_W32_T_ERASEPASS   パスワード消去\r
+MSG_MENUITEM_W32_T_VIRTUALFOLDER       仮想フォルダ\r
+MSG_MENUITEM_W32_T_OPTIONS     プロパティ(&O)\r
+MSG_MENUITEM_W32B_HELP ヘルプ(&H)\r
+MSG_MENUITEM_W32_H_ABOUT       バージョン情報(&A)\r
+MSG_MENUITEM_CTX_TRACELINK     リンク元へ移動\r
+MSG_DLG_CMN_OK OK\r
+MSG_DLG_CMN_CANCEL     キャンセル\r
+MSG_DLG_BMEDIT_TITLE   お気に入りの整理\r
+MSG_DLG_BMEDIT_UP      ↑\r
+MSG_DLG_BMEDIT_DOWN    ↓\r
+MSG_DLG_BMEDIT_DELETE  削除\r
+MSG_DLG_FILESELECT_TITLE       Select File\r
+MSG_DLG_FILTERCTL_TITLE        仮想フォルダの設定\r
+MSG_DLG_FILTERCTL_UP   ↑\r
+MSG_DLG_FILTERCTL_DOWN ↓\r
+MSG_DLG_FILTERCTL_KEEP 保存\r
+MSG_DLG_FILTERCTL_NEW  新規\r
+MSG_DLG_FILTERCTL_RENAME       改名\r
+MSG_DLG_FILTERCTL_DELETE       削除\r
+MSG_DLG_FILTERDEF_ADD_LIMIT_TITLE      アイテム数フィルタ\r
+MSG_DLG_FILTERDEF_ADD_LIMIT_ITEMS      アイテム数:\r
+MSG_DLG_FILTERDEF_ADD_REGEX_TITLE      検索フィルタ\r
+MSG_DLG_FILTERDEF_ADD_REGEX_FINDSTR    検索文字列:\r
+MSG_DLG_FILTERDEF_ADD_REGEX_CASESENSITIVE      大文字小文字を区別\r
+MSG_DLG_FILTERDEF_ADD_REGEX_INCLUDECRYPTED     暗号メモも対象とする\r
+MSG_DLG_FILTERDEF_ADD_REGEX_FORFILENAME        ファイル名に対して検索\r
+MSG_DLG_FILTERDEF_ADD_REGEX_EXCLUDE    マッチしないものを選択\r
+MSG_DLG_FILTERDEF_ADD_SORT_TITLE       ソートフィルタ\r
+MSG_DLG_FILTERDEF_ADD_SORT_METHOD      ソート方法\r
+MSG_DLG_FILTERDEF_ADD_TIMESTAMP_TITLE  タイムスタンプフィルタ\r
+MSG_DLG_FILTERDEF_ADD_TIMESTAMP_BASETIME       日前より\r
+MSG_DLG_FILTERDEF_ADD_TIMESTAMP_NEWER  新しいメモ\r
+MSG_DLG_FILTERDEF_ADD_TIMESTAMP_OLDER  古いメモ\r
+MSG_DLG_FILTERDEF_FILTER_UP    ↑\r
+MSG_DLG_FILTERDEF_FILTER_DOWN  ↓\r
+MSG_DLG_FILTERDEF_FILTER_DELETE        削除\r
+MSG_DLG_FILTERDEF_FILTER_FIND  検索\r
+MSG_DLG_FILTERDEF_FILTER_NUMBER        件数\r
+MSG_DLG_FILTERDEF_FILTER_TIMESTAMP     日付\r
+MSG_DLG_FILTERDEF_FILTER_SORT  ソート\r
+MSG_DLG_GREPTAB_MAIN_POSLABEL  検索開始位置:\r
+MSG_DLG_GREPTAB_MAIN_STRLABEL  検索文字列:\r
+MSG_DLG_GREPTAB_PERSIST_KEEP   保存する\r
+MSG_DLG_GREPTAB_PERSIST_LABEL  保存名:\r
+MSG_DLG_NEWFOLDER_TITLE        新規フォルダ名\r
+MSG_DLG_PASSWORD_TITLE パスワード入力\r
+MSG_DLG_PROPTAB_DEFNOTE_LABEL  デフォルトメモ\r
+MSG_DLG_PROPTAB_DEFNOTE_CURRENT        現在のメモを使用\r
+MSG_DLG_PROPTAB_BLANK  空白を使用\r
+MSG_DLG_PROPTAB_FOLDER_LABEL   メモフォルダ:\r
+MSG_DLG_PROPTAB_FOLDER_HELP1   メモを保存するフォルダを設定します。\r
+MSG_DLG_PROPTAB_FOLDER_SYNCTITLE       メモファイル名とタイトルを連動\r
+MSG_DLG_PROPTAB_FOLDER_HELP2   保存時にメモの一行目が変更されていたらファイル名を自動的に変更します。\r
+MSG_DLG_PROPTAB_FOLDER_READONLY        デフォルトを書き込み禁止にする\r
+MSG_DLG_PROPTAB_FONT_TREE_LABEL        一覧:\r
+MSG_DLG_PROPTAB_FONT_USE_DEFAULT       デフォルトフォントを使用\r
+MSG_DLG_PROPTAB_FONT_EDIT_LABEL        詳細:\r
+MSG_DLG_PROPTAB_USE_CLEARTYPE_FONT     クリアタイプフォントを使用(XPのみ)\r
+MSG_DLG_PROPTAB_DATE_INSDATE1  日付1:\r
+MSG_DLG_PROPTAB_DATE_INSDATE2  日付2:\r
+MSG_DLG_PROPTAB_KEEPCARET_KEEPCARET    カーソル位置の保持\r
+MSG_DLG_PROPTAB_KEEPCARET_HELP1        メモ詳細ビューで前回開いた時のカーソルの位置を記憶します。\r
+MSG_DLG_PROPTAB_KEEPCARET_LABEL        タブストップ:\r
+MSG_DLG_PROPTAB_KEEPCARET_HELP2        タブストップを指定します。\r
+MSG_DLG_PROPTAB_KEEPCARET_SYNCTITLE    ウィンドウタイトルをメモと連動\r
+MSG_DLG_PROPTAB_KEEPCARET_HELP3        メモを開いた際にウィンドウタイトルをメモのタイトルと連動させます\r
+MSG_DLG_PROPTAB_PASSTO_LABEL   タイムアウト(分):\r
+MSG_DLG_PROPTAB_PASSTO_HELP    Tomboがパスワードを記憶している時間を指定します(1~60)。\r
+MSG_DLG_SEARCH_TITLE   検索\r
+MSG_DLG_SEARCH_FIND_LABEL      検索文字列:\r
+MSG_DLG_SEARCH_DIRECTION_LABEL 検索方向\r
+MSG_DLG_SEARCH_DIRECTION_UP    上へ\r
+MSG_DLG_SEARCH_DIRECTION_DOWN  下へ\r
+MSG_DLG_PROPTAB_APPBTN_BUTTON1 ボタン1\r
+MSG_DLG_PROPTAB_APPBTN_BUTTON2 ボタン2\r
+MSG_DLG_PROPTAB_APPBTN_BUTTON3 ボタン3\r
+MSG_DLG_PROPTAB_APPBTN_BUTTON4 ボタン4\r
+MSG_DLG_PROPTAB_APPBTN_BUTTON5 ボタン5\r
+MSG_DLG_PROPTAB_APPBTN_HELP    アプリケーションボタンをアクションボタンとして割り当てます。割り当ては再起動後に有効となります。\r
+MSG_DLG_PROPTAB_APPBTN_DISABLE 編集画面ではアクションボタン無効\r
+MSG_DLG_PROPTAB_SIP_SHIFT      SIPの上に余白をとる\r
+MSG_CODEPAGE_DEFAULT   デフォルト(SJIS)\r
+MSG_CODEPAGE_GREEK     ギリシャ語\r
+MSG_MENUITEM_FIND      検索(&S)\r
+MSG_MENUITEM_EXTAPP1   外部ツール1\r
+MSG_MENUITEM_EXPLORER  エクスプローラで開く\r
+MSG_MENUITEM_ASSOCIATION       関連付け実行\r
+MSG_PROPTAB_EXTAPP     外部アプリ\r
+MSG_DLG_EXTAPP_USEASSOC        関連付け実行を使用\r
+MSG_DLG_EXTAPP_LBL_APP1        外部アプリ1\r
+MSG_DLG_EXTAPP_LBL_APP2        外部アプリ2\r
+MSG_DLG_EXTAPP_CAUTION 注意:\r\n外部アプリがバックアップファイルを残す場合、TOMBOはそれを\r\n*消しません*。暗号化前にバックアップファイルが存在していないか確認するようにしてください。\r
+MSG_DLG_EXTAPP_CHOOSE_TTL      外部アプリケーションの選択\r
+MSG_DLG_EXTAPP_CHOOSE_EXT      exeファイル(*.exe)\0*.exe\0全て(*.*)\0*.*\0\0\r
+MSG_MENUITEM_BE_T_TWOPANE      2画面モード\r
+MSG_MENUITEM_B_ADDBM   お気に入りに追加\r
+MSG_MENUITEM_B_EDITBM  お気に入りの整理\r
+MSG_DLG_PROPTAB_USE_CLEARTYPE_FONT_CE  クリアタイプフォントを使用\r
+MSG_DLG_PROPTAB_DISABLESAVEDLG 保存ダイアログを表示しない\r
+MSG_MENUITEM_W32_T_REBAR       ツールバー\r
+MSG_DLG_SAVEPROP_FAILED        プロパティの保存に失敗しました。変更した設定が反映されない可能性があります。\r
+MSG_DLG_PROPTAB_TIMEOUT_USE_SAFENAME   暗号化時にファイル名をランダムにする\r
+MSG_DLG_PROPTAB_TIMEOUT_USE_SAFENAME_HELP      暗号化時にファイル名をランダムに決定します。\r\nより安全になる反面、ファイルの整理がしにくくなります。\r
+MSG_DECRYPT_IS_PARTIAL 一部ファイルはパスワード不一致のためタイトルが取得できませんでした。????????で表示します。\r
+MSG_REGERASE_TITLE     TOMBOレジストリ削除ツール\r
+MSG_REGERASE_CONFIRM   以前のバージョンのTOMBOが使用していたレジストリを削除します。よろしいですか?\r
+MSG_REGERASE_CANCELED  削除はキャンセルされました。\r
+MSG_REGERASE_DELETED   削除されました。\r
+MSG_REGERASE_NOT_EXIST エントリは既に削除されていました。\r
+MSG_REGERASE_ERROR     削除に失敗しました(%d)。\r
+MSG_DLG_PROPTAB_DEFNOTE_LAST_USE       ツリー位置を保存\r
+MSG_DLG_PROPTAB_CODEPAGE_LABEL ファイルのエンコーディング\r
+MSG_CODEPAGE_UTF16     Unicode(UTF16LE)\r
+MSG_CODEPAGE_UTF8      UTF-8\r
+MSG_DLG_PROPTAB_CODEPAGE_NOTICE        ファイルの文字コードを設定します。\r\n自動変換・自動判別は行われないため、既にメモをお持ちの方は変更しないでください。\r
+MSG_MENUITEM_UNDO      元に戻す\r
+MSG_MENUITEM_FILE      ファイル\r
diff --git a/Src/MsgRes/MsgIDList.txt b/Src/MsgRes/MsgIDList.txt
new file mode 100644 (file)
index 0000000..27fe686
--- /dev/null
@@ -0,0 +1,301 @@
+LANG_INFO\r
+MSG_TOOLTIPS_NEWMEMO\r
+MSG_TOOLTIPS_RETURNLIST\r
+MSG_TOOLTIPS_SAVE\r
+MSG_TOOLTIPS_INSDATE1\r
+MSG_TOOLTIPS_INSDATE2\r
+MSG_MEMO\r
+MSG_TOOL\r
+MSG_EDIT\r
+MSG_INITAPPBTN_FAIL\r
+MSG_NEW\r
+MSG_UPDATE\r
+MSG_RONLY\r
+MSG_DEFAULT_HEADLINE\r
+MSG_SAVE_FAILED\r
+MSG_GETSIPSTAT_FAILED\r
+MSG_CREATEFOLDER_FAILED\r
+MSG_ERASE_PW\r
+MSG_ERASE_PW_TITLE\r
+MSG_FOLDING_FAILED\r
+MSG_NOT_ENOUGH_MEMORY\r
+MSG_PASS_NOT_MATCH\r
+MSG_CANT_GET_PASS\r
+MSG_TIMER_SET_FAILED\r
+MSG_RMDIR_FAILED\r
+MSG_OTHER_FILE_EXISTS\r
+MSG_RMFILE_FAILED\r
+MSG_MKDIR_FAILED\r
+MSG_FILECOPY_FAILED\r
+MSG_MEMO_EDITED\r
+MSG_CONFIRM_SAVE\r
+MSG_CANT_OPEN_MEMO\r
+MSG_PASS_NOT_MATCH2\r
+MSG_PASS_NOT_MATCH3\r
+MSG_PASS_MISMATCH_TTL\r
+MSG_IS_CREATE_DIR\r
+MSG_CREATE_DIR_TTL\r
+MSG_CHOOSE_FOLDER\r
+MSG_REG_PASSWD\r
+MSG_REG_PASSWD_TTL\r
+MSG_PLEASE_SET_PASS\r
+MSG_GET_PASS_FAILED\r
+MSG_GET_FP_FAILED\r
+MSG_PW_REGED\r
+MSG_PW_REG_FAILED\r
+MSG_SAVE_DATA_FAILED\r
+MSG_ENCRYPTION_FAILED\r
+MSG_DECRYPTION_FAILED\r
+MSG_MOVE_MEMO_FAILED\r
+MSG_COPY_MEMO_FAILED\r
+MSG_STRING_NOT_FOUND\r
+MSG_CONFIRM_DELETE\r
+MSG_DELETE_TTL\r
+MSG_DELETE_FAILED\r
+MSG_DELETE_PREV_CRYPT_MEMO_FAILED\r
+MSG_DEL_PREV_DECRYPT_MEMO_FAILED\r
+MSG_NO_FILENAME\r
+MSG_SAME_FILE\r
+MSG_RENAME_FAILED\r
+MSG_CONFIRM_DEL_FOLDER\r
+MSG_DEL_FOLDER_TTL\r
+MSG_NO_FOLDERNAME\r
+MSG_SAME_FOLDER\r
+MSG_REN_FOLDER_FAILED\r
+MSG_GET_DATE_FAILED\r
+MSG_ROOT_NOT_ALLOWED\r
+MSG_DATEFORMAT_DESC\r
+MSG_VIRTUAL_FOLDER\r
+MSG_CONFIRM_ENCRYPT_FOLDER\r
+MSG_CONFIRM_ENCRYPT_FOLDER_TTL\r
+MSG_PLAIN_TEXT_DEL_FAILED\r
+MSG_ENCRYPT_FAILED\r
+MSG_CONFIRM_DECRYPT_FOLDER\r
+MSG_CONFIRM_DECRYPT_FOLDER_TTL\r
+MSG_CRYPT_FILE_DEL_FAILED\r
+MSG_DECRYPT_FAILED\r
+MSG_CHECKBF_FAILED\r
+MSG_CHECKBF_TTL\r
+MSG_SEARCH_CANCELING\r
+MSG_SEARCH_FAILED\r
+MSG_STRING_SEARCH_CANCELED\r
+MSG_GREPTAB_MAIN_TTL\r
+MSG_INSERTVFOLDER_FAIL\r
+MSG_GREP_NONAME_LABEL\r
+MSG_VFOLDER_NAME_TTL\r
+MSG_CONFIRM_DEL_VFOLDER\r
+MSG_DEL_VFOLDER_TTL\r
+MSG_FILTERDEFDLG_TTL\r
+MSG_FILTERDEFPROPTTL_SRC\r
+MSG_FILTERDEFPROPTTL_FILTER\r
+MSG_FILTERDEFPROPTTL_PATHTYPE\r
+MSG_FILTERDEFPROPTTL_FILTERTYPE_HDR\r
+MSG_FILTERDEFPROPTTL_FILTERVAL_HDR\r
+MSG_STREAM_NAME_REGEXP\r
+MSG_STREAM_NAME_LIMIT\r
+MSG_STREAM_NAME_TIMESTAMP\r
+MSG_STREAM_NAME_SORT\r
+MSG_STREAM_VALUE_LIMIT\r
+MSG_STREAM_VALUE_TIMESTAMP_NEWER\r
+MSG_STREAM_VALUE_TIMESTAMP_OLDER\r
+MSG_STREAM_VALUE_SORT_FNAME_ASC\r
+MSG_STREAM_VALUE_SORT_FNAME_DSC\r
+MSG_STREAM_VALUE_SORT_LASTUPD_ASC\r
+MSG_STREAM_VALUE_SORT_LASTUPD_DSC\r
+MSG_STREAM_VALUE_SORT_CREATE_ASC\r
+MSG_STREAM_VALUE_SORT_CREATE_DSC\r
+MSG_STREAM_VALUE_SORT_FILESIZE_ASC\r
+MSG_STREAM_VALUE_SORT_FILESIZE_DSC\r
+MSG_DLG_INIT_FAIL\r
+MSG_INVALID_REGEXP\r
+MSG_SET_POSITIVE\r
+MSG_INVALID_FONT_SIZE\r
+MSG_DST_FOLDER_IS_SRC_SUBFOLDER\r
+MSG_FILTEDEF_VIEW_TYPE_DEFAULT\r
+MSG_FILTEDEF_VIEW_TYPE_PREV\r
+MSG_FILTEDEF_VIEW_TYPE_POST\r
+MSG_BMDLG_TITLE_NAME\r
+MSG_BMDLG_TITLE_PATH\r
+MSG_DEL_BOOKMARK\r
+MSG_CONFIRM\r
+MSG_PROPTAB_FOLDER\r
+MSG_PROPTAB_PASSWORD\r
+MSG_PROPTAB_FONT\r
+MSG_PROPTAB_DATE\r
+MSG_PROPTAB_KEEPCARET\r
+MSG_PROPTAB_PASS_TIMEOUT\r
+MSG_PROPTAB_DEFNOTE\r
+MSG_PROPTAB_TITLE\r
+MSG_GREPTAB_MAIN\r
+MSG_GREPTAB_PERSIST\r
+MSG_PROPTAB_APPBUTTON\r
+MSG_PROPTAB_SIP\r
+MSG_PROPTAB_CODEPAGE\r
+MSG_MENU_NOTE\r
+MSG_MENU_TOOL\r
+MSG_MENU_EDIT\r
+MSG_MENUITEM_MAIN_NEWFOLDER\r
+MSG_MENUITEM_MAIN_CUT\r
+MSG_MENUITEM_MAIN_COPY\r
+MSG_MENUITEM_MAIN_PASTE\r
+MSG_MENUITEM_MAIN_RENAME\r
+MSG_MENUITEM_MAIN_DELETE\r
+MSG_MENUITEM_MAIN_FIND\r
+MSG_MENUITEM_MAIN_FIND_NEXT\r
+MSG_MENUITEM_MAIN_FIND_PREV\r
+MSG_MENUITEM_MAIN_QUICKFILTER\r
+MSG_MENUITEM_MAIN_ENCRYPT\r
+MSG_MENUITEM_MAIN_DECRYPT\r
+MSG_MENUITEM_DETAILS_SELALL\r
+MSG_MENUITEM_TOOL_EXIT\r
+MSG_MENUITEM_TOOL_ABOUT\r
+MSG_MENUITEM_TOOL_PROPERTY\r
+MSG_MENUITEM_TOOL_VFOLDER_DEF\r
+MSG_MENUITEM_TOOL_FORGETPASS\r
+MSG_MENUITEM_TOOL_WRAP\r
+MSG_MENUITEM_W32B_FILE\r
+MSG_MENUITEM_W32_F_NEWMEMO\r
+MSG_MENUITEM_W32_F_NEWFOLDER\r
+MSG_MENUITEM_W32_F_RENAME\r
+MSG_MENUITEM_W32_F_DEL\r
+MSG_MENUITEM_W32_F_SAVE\r
+MSG_MENUITEM_W32_F_EXIT\r
+MSG_MENUITEM_W32B_EDIT\r
+MSG_MENUITEM_W32_E_CUT\r
+MSG_MENUITEM_W32_E_COPY\r
+MSG_MENUITEM_W32_E_PASTE\r
+MSG_MENUITEM_W32_E_SELALL\r
+MSG_MENUITEM_W32_E_FIND\r
+MSG_MENUITEM_W32_E_FINDNEXT\r
+MSG_MENUITEM_W32_E_FINDPREV\r
+MSG_MENUITEM_W32_E_QFILTER\r
+MSG_MENUITEM_W32_E_DATE1\r
+MSG_MENUITEM_W32_E_DATE2\r
+MSG_MENUITEM_W32B_BOOKMARK\r
+MSG_MENUITEM_W32_B_ADDBM\r
+MSG_MENUITEM_W32_B_EDITBM\r
+MSG_MENUITEM_W32B_TOOL\r
+MSG_MENUITEM_W32_T_WRAPTEXT\r
+MSG_MENUITEM_W32_T_TWOPANE\r
+MSG_MENUITEM_W32_T_STATUSBAR\r
+MSG_MENUITEM_W32_T_STAYTOPMOST\r
+MSG_MENUITEM_W32_T_ENCRYPT\r
+MSG_MENUITEM_W32_T_DECRYPT\r
+MSG_MENUITEM_W32_T_ERASEPASS\r
+MSG_MENUITEM_W32_T_VIRTUALFOLDER\r
+MSG_MENUITEM_W32_T_OPTIONS\r
+MSG_MENUITEM_W32B_HELP\r
+MSG_MENUITEM_W32_H_ABOUT\r
+MSG_MENUITEM_CTX_TRACELINK\r
+MSG_DLG_CMN_OK\r
+MSG_DLG_CMN_CANCEL\r
+MSG_DLG_BMEDIT_TITLE\r
+MSG_DLG_BMEDIT_UP\r
+MSG_DLG_BMEDIT_DOWN\r
+MSG_DLG_BMEDIT_DELETE\r
+MSG_DLG_FILESELECT_TITLE\r
+MSG_DLG_FILTERCTL_TITLE\r
+MSG_DLG_FILTERCTL_UP\r
+MSG_DLG_FILTERCTL_DOWN\r
+MSG_DLG_FILTERCTL_KEEP\r
+MSG_DLG_FILTERCTL_NEW\r
+MSG_DLG_FILTERCTL_RENAME\r
+MSG_DLG_FILTERCTL_DELETE\r
+MSG_DLG_FILTERDEF_ADD_LIMIT_TITLE\r
+MSG_DLG_FILTERDEF_ADD_LIMIT_ITEMS\r
+MSG_DLG_FILTERDEF_ADD_REGEX_TITLE\r
+MSG_DLG_FILTERDEF_ADD_REGEX_FINDSTR\r
+MSG_DLG_FILTERDEF_ADD_REGEX_CASESENSITIVE\r
+MSG_DLG_FILTERDEF_ADD_REGEX_INCLUDECRYPTED\r
+MSG_DLG_FILTERDEF_ADD_REGEX_FORFILENAME\r
+MSG_DLG_FILTERDEF_ADD_REGEX_EXCLUDE\r
+MSG_DLG_FILTERDEF_ADD_SORT_TITLE\r
+MSG_DLG_FILTERDEF_ADD_SORT_METHOD\r
+MSG_DLG_FILTERDEF_ADD_TIMESTAMP_TITLE\r
+MSG_DLG_FILTERDEF_ADD_TIMESTAMP_BASETIME\r
+MSG_DLG_FILTERDEF_ADD_TIMESTAMP_NEWER\r
+MSG_DLG_FILTERDEF_ADD_TIMESTAMP_OLDER\r
+MSG_DLG_FILTERDEF_FILTER_UP\r
+MSG_DLG_FILTERDEF_FILTER_DOWN\r
+MSG_DLG_FILTERDEF_FILTER_DELETE\r
+MSG_DLG_FILTERDEF_FILTER_FIND\r
+MSG_DLG_FILTERDEF_FILTER_NUMBER\r
+MSG_DLG_FILTERDEF_FILTER_TIMESTAMP\r
+MSG_DLG_FILTERDEF_FILTER_SORT\r
+MSG_DLG_GREPTAB_MAIN_POSLABEL\r
+MSG_DLG_GREPTAB_MAIN_STRLABEL\r
+MSG_DLG_GREPTAB_PERSIST_KEEP\r
+MSG_DLG_GREPTAB_PERSIST_LABEL\r
+MSG_DLG_NEWFOLDER_TITLE\r
+MSG_DLG_PASSWORD_TITLE\r
+MSG_DLG_PROPTAB_DEFNOTE_LABEL\r
+MSG_DLG_PROPTAB_DEFNOTE_CURRENT\r
+MSG_DLG_PROPTAB_BLANK\r
+MSG_DLG_PROPTAB_FOLDER_LABEL\r
+MSG_DLG_PROPTAB_FOLDER_HELP1\r
+MSG_DLG_PROPTAB_FOLDER_SYNCTITLE\r
+MSG_DLG_PROPTAB_FOLDER_HELP2\r
+MSG_DLG_PROPTAB_FOLDER_READONLY\r
+MSG_DLG_PROPTAB_FONT_TREE_LABEL\r
+MSG_DLG_PROPTAB_FONT_USE_DEFAULT\r
+MSG_DLG_PROPTAB_FONT_EDIT_LABEL\r
+MSG_DLG_PROPTAB_USE_CLEARTYPE_FONT\r
+MSG_DLG_PROPTAB_DATE_INSDATE1\r
+MSG_DLG_PROPTAB_DATE_INSDATE2\r
+MSG_DLG_PROPTAB_KEEPCARET_KEEPCARET\r
+MSG_DLG_PROPTAB_KEEPCARET_HELP1\r
+MSG_DLG_PROPTAB_KEEPCARET_LABEL\r
+MSG_DLG_PROPTAB_KEEPCARET_HELP2\r
+MSG_DLG_PROPTAB_KEEPCARET_SYNCTITLE\r
+MSG_DLG_PROPTAB_KEEPCARET_HELP3\r
+MSG_DLG_PROPTAB_PASSTO_LABEL\r
+MSG_DLG_PROPTAB_PASSTO_HELP\r
+MSG_DLG_SEARCH_TITLE\r
+MSG_DLG_SEARCH_FIND_LABEL\r
+MSG_DLG_SEARCH_DIRECTION_LABEL\r
+MSG_DLG_SEARCH_DIRECTION_UP\r
+MSG_DLG_SEARCH_DIRECTION_DOWN\r
+MSG_DLG_PROPTAB_APPBTN_BUTTON1\r
+MSG_DLG_PROPTAB_APPBTN_BUTTON2\r
+MSG_DLG_PROPTAB_APPBTN_BUTTON3\r
+MSG_DLG_PROPTAB_APPBTN_BUTTON4\r
+MSG_DLG_PROPTAB_APPBTN_BUTTON5\r
+MSG_DLG_PROPTAB_APPBTN_HELP\r
+MSG_DLG_PROPTAB_APPBTN_DISABLE\r
+MSG_DLG_PROPTAB_SIP_SHIFT\r
+MSG_CODEPAGE_DEFAULT\r
+MSG_CODEPAGE_GREEK\r
+MSG_MENUITEM_FIND\r
+MSG_MENUITEM_EXTAPP1\r
+MSG_MENUITEM_EXPLORER\r
+MSG_MENUITEM_ASSOCIATION\r
+MSG_PROPTAB_EXTAPP\r
+MSG_DLG_EXTAPP_USEASSOC\r
+MSG_DLG_EXTAPP_LBL_APP1\r
+MSG_DLG_EXTAPP_LBL_APP2\r
+MSG_DLG_EXTAPP_CAUTION\r
+MSG_DLG_EXTAPP_CHOOSE_TTL\r
+MSG_DLG_EXTAPP_CHOOSE_EXT\r
+MSG_MENUITEM_BE_T_TWOPANE\r
+MSG_MENUITEM_B_ADDBM\r
+MSG_MENUITEM_B_EDITBM\r
+MSG_DLG_PROPTAB_USE_CLEARTYPE_FONT_CE\r
+MSG_DLG_PROPTAB_DISABLESAVEDLG\r
+MSG_MENUITEM_W32_T_REBAR\r
+MSG_DLG_SAVEPROP_FAILED\r
+MSG_DLG_PROPTAB_TIMEOUT_USE_SAFENAME\r
+MSG_DLG_PROPTAB_TIMEOUT_USE_SAFENAME_HELP\r
+MSG_DECRYPT_IS_PARTIAL\r
+MSG_REGERASE_TITLE\r
+MSG_REGERASE_CONFIRM\r
+MSG_REGERASE_CANCELED\r
+MSG_REGERASE_DELETED\r
+MSG_REGERASE_NOT_EXIST\r
+MSG_REGERASE_ERROR\r
+MSG_DLG_PROPTAB_DEFNOTE_LAST_USE\r
+MSG_DLG_PROPTAB_CODEPAGE_LABEL\r
+MSG_CODEPAGE_UTF16\r
+MSG_CODEPAGE_UTF8\r
+MSG_DLG_PROPTAB_CODEPAGE_NOTICE\r
+MSG_MENUITEM_UNDO\r
+MSG_MENUITEM_FILE\r
diff --git a/Src/MsgRes/TomboMsg/en/TomboMsg.txt b/Src/MsgRes/TomboMsg/en/TomboMsg.txt
new file mode 100644 (file)
index 0000000..ff5600f
--- /dev/null
@@ -0,0 +1,301 @@
+English\r
+New Memo\r
+Return to list\r
+Save\r
+Insert date1\r
+Insert date2\r
+Root\r
+Tool\r
+Edit\r
+Initialize APP button failed.\r
+New\r
+Update\r
+View\r
+memo\r
+Save memo failed(%d).\r
+Get SIP status failed.\r
+Create folder failed.\r
+Erase password in memory\r
+Erase password\r
+Folding failed.\r
+Not enough memory.\r
+Password doesn't match.\r
+Can't get password.\r
+Set timer failed.\r
+Remove directory failed.\r
+There are files that aren't memos.\r
+Remove file failed.\r
+Create directory failed.\r
+Copy file failed.\r
+Memo has been modified. Save changes?\r
+Confirm\r
+Can't open memo\r
+Password doesn't match. Continue?\r
+Password doesn't match.\r
+Password mismatch\r
+Directory doesn't exist. Create?\r
+Create directory\r
+Choose folder\r
+Register password.\r
+Change password\r
+Please set password.\r
+Get password failed.\r
+Get fingerprint failed.\r
+Password has registered.\r
+Register password failed.\r
+Save data failed.\r
+Encryption failed.(%d)\r
+Decryption faield.(%d)\r
+Move failed.\r
+Copy failed.\r
+String not found\r
+Delete selected memo?\r
+Delete memo\r
+Delete memo failed.\r
+Delete memo that before encrypted failed. Please delete manually.\r
+Delete memo that before decrypted failed. Please delete manually.\r
+No filename.\r
+Same name file exists.\r
+Rename file failed(%d).\r
+Delete selected folder?\r
+Delete folder\r
+No foldername.\r
+Same folder name exists.\r
+Rename folder failed(%d).\r
+Get dateformat failed.\r
+Can't set root folder as '\\'\r
+%y\t:Year(2001)\r\n%Y\t:Year(01)\r\n%M\t:Month(01,02,..)\r\n%b\t:Month(Jan,Feb,..)\r\n%d\t:Day(01,02..)\r\n%D\t:Day(1,2,..)\r\n%W\t:WDay(Sun,Mon,..)\r\n%H\t:Hour(12H:00..11)\r\n%I\t:Hour(12H:01..12)\r\n%h\t:Hour(24H)\r\n%a\t:AM,PM\r\n%m\t:Min(01,02,..)\r\n%s\t:Sec(01,02,..)\r\n%%\t:\"%\"\r\n%n\t:newline\r\n%fn\t:file path(n is 0-9)\r\n%Fn\t:file path\r
+Search result\r
+Encrypt files under the folder?\r
+Encrypt files\r
+Delete some plain file failed.\r
+Some files are not encrypted.\r
+Decrypt files under the folder?\r
+Decrypt files\r
+Delete some encrypted file failed.\r
+Some files are not decrypted.\r
+Self test of encryption libs failed(%s). Encryption are not work correctly.\r
+Self test failed\r
+Wait a moment...\r
+Search failed(%d).\r
+Search has been canceled.\r
+Quick filter\r
+Create virtual folder failed.\r
+Grep result\r
+Virtual folder name\r
+Delete selected virtual folder?\r
+Delete virtual folder\r
+Filter settings\r
+Source\r
+Filter\r
+View path\r
+Filter ype\r
+Condition\r
+Find\r
+Num of items\r
+Last update\r
+Sort\r
+%d item(s)\r
+Newer than %d day before\r
+Older than %d day before\r
+Dictionary order\r
+Reverse dic order\r
+Old order of last update\r
+New order of last update\r
+Old order of create date\r
+New order of create date\r
+Asc order of file size\r
+Dsc order of file size\r
+Initialize dialog failed.\r
+Generate pattern failed\r
+Please set positive number\r
+Invalid font size\r
+Dst folder is subfolder of src folder\r
+Not display path\r
+View before file name\r
+View after file name\r
+Name\r
+Path\r
+Delete bookmarks\r
+Deleting selected bookmarks. Are you sure?\r
+Memo\r
+Password\r
+Font\r
+Date\r
+Memo view\r
+Security\r
+Toppage\r
+Property\r
+Main\r
+Save\r
+AppButton\r
+SIP\r
+Encoding\r
+Memo\r
+Tool\r
+Edit\r
+NewFolder\r
+Cut\r
+Copy\r
+Paste\r
+Rename\r
+Delete\r
+Find\r
+Find Next\r
+Find Prev\r
+Quick filter\r
+Encrypt\r
+Decrypt\r
+Select All\r
+Exit\r
+About\r
+Options\r
+Virtual folder\r
+ForgetPass\r
+Wrap Text\r
+&File\r
+New &Memo\tCtrl+N\r
+New folder\r
+&Rename file\r
+&Delete\tDEL\r
+&Save\tCtrl+S\r
+E&xit\r
+&Edit\r
+Cu&t\tCtrl+X\r
+&Copy\tCtrl+C\r
+&Paste\tCtrl+V\r
+Select &All\tCtrl+A\r
+&Find\tCtrl+F\r
+Find Prev\tF3\r
+Find Next\tShift+F3\r
+Quick filter\tCtrl+G\r
+Insert Date1\tCtrl+1\r
+Insert Date2\tCtrl+2\r
+&BookMark\r
+&Add bookmark\r
+&Edit bookmark\r
+&Tools\r
+Wrap Text\r
+Two panes\r
+Status bar\r
+Stay topmost\r
+&Encrypt\tCtrl+E\r
+Decry&pt\tCtrl+P\r
+Erase password\r
+Virtual folder\r
+&Options\r
+&Help\r
+&About TOMBO\r
+Jump to original\r
+OK\r
+Cancel\r
+Edit bookmark\r
+UP\r
+DN\r
+Delete\r
+Select File\r
+Virtual folder settings\r
+Up\r
+Dn\r
+Save\r
+New\r
+Ren\r
+Del\r
+Number filter\r
+Num Items:\r
+Find filter\r
+Search str:\r
+Case sensitive\r
+Include encrypted memo\r
+Find to file name\r
+Invert match\r
+Sort filter\r
+Sort Type:\r
+Timestamp filter\r
+days before\r
+Newer\r
+Older\r
+Up\r
+Dn\r
+Del\r
+Find\r
+Num\r
+Date\r
+Sort\r
+Target:\r
+Search:\r
+Save\r
+Name:\r
+New folder\r
+Password\r
+Default note\r
+Use selected\r
+Use blank\r
+Root folder:\r
+Folder to store Tombo Notes\r
+Sync file name and title\r
+Rename file name if headline changed.\r
+Open notes read-only mode\r
+Tree:\r
+Use default font\r
+Memo:\r
+Use ClearType font(XP only)\r
+Date1:\r
+Date2:\r
+Keep cursor position\r
+Restore last cursor position when re-opening.\r
+Tab stop:\r
+Set tab stop width\r
+Show title\r
+Show note title in titlebar.\r
+Password timeout(min):\r
+Timeout length(1-60).\r
+Search\r
+Search str:\r
+Direction\r
+Up\r
+Down\r
+Button1\r
+Button2\r
+Button3\r
+Button4\r
+Button5\r
+Assign application button to action button. It is enabled after restarting TOMBO\r
+Disable close notes on edit view\r
+Keep space over the SIP\r
+Default(System native)\r
+Greek\r
+&Search\r
+Ext tool1\r
+Open by Explorer\r
+Open by association\r
+External Apps\r
+Use file association\r
+Application1:\r
+Application2:\r
+CAUTION:\r\nIf external application creates backup file, TOMBO is \r\n*NOT DELETE* it. Please check yourself before encryption whether backup file exists or not.\r
+Choose application\r
+app(*.exe)\0*.exe\0all(*.*)\0*.*\0\0\r
+Two panes\r
+Add bookmark\r
+Edit bookmark\r
+Use ClearType font\r
+Disable save daialog\r
+Toolbar\r
+Save options failed. Change may not be reflected.\r
+Use random filename\r
+When encrypting, generate file name by random number.\r
+Get headline failed for some notes due to wrong password. Display ???????? the notes.\r
+TOMBO registry erase tool\r
+The registry entry that TOMBO 1.14 or orlder uses are erased. Are you sure?\r
+Canceled.\r
+Deleted.\r
+There are no registry entry.\r
+Delete failed(%d).\r
+When starting select the tree item last selected\r
+File encoding\r
+Unicode(UTF16LE)\r
+UTF-8\r
+Set file encoding. Auto detection/conversion is not supported, so do not change if you hanve already some notes.\r
+Undo\r
+File\r
diff --git a/Src/MsgRes/TomboMsg/jp/TomboMsg.txt b/Src/MsgRes/TomboMsg/jp/TomboMsg.txt
new file mode 100644 (file)
index 0000000..cf574de
--- /dev/null
@@ -0,0 +1,301 @@
+Japanese\r
+新規メモ\r
+一覧に戻る\r
+保存\r
+日付1の挿入\r
+日付2の挿入\r
+メモ\r
+ツール\r
+編集\r
+アプリケーションボタンの初期化に失敗しました\r
+新規\r
+更新\r
+閲覧\r
+無題\r
+メモの保存に失敗しました(%d)\r
+SIPの状態取得に失敗しました\r
+フォルダの作成に失敗しました\r
+記憶していたパスワードを消去しました\r
+パスワード消去\r
+折り返し処理の切り替えに失敗しました\r
+メモリの確保に失敗しました\r
+パスワードが一致しません\r
+パスワードが取得できませんでした\r
+パスワードタイマーが設定できませんでした\r
+ディレクトリ削除に失敗しました\r
+メモ以外のファイルが存在します\r
+ファイル削除に失敗しました\r
+ディレクトリ作成に失敗しました\r
+ファイルのコピーに失敗しました\r
+メモは編集されています。保存しますか?\r
+保存の確認\r
+メモは開けませんでした\r
+入力されたパスワードが登録されたそれと一致しません。続行しますか?\r
+入力されたパスワードが登録されたそれと一致しません。\r
+パスワード不一致\r
+ディレクトリが存在しません。作成しますか?\r
+メモディレクトリの作成\r
+フォルダの選択\r
+パスワードを登録します。変更は即座に反映されます。よろしいですか?\r
+パスワードの変更\r
+パスワードを設定してください\r
+パスワードの取得に失敗しました\r
+フィンガープリントの取得に失敗しました\r
+パスワードが登録されました\r
+パスワードの登録に失敗しました\r
+データの保存に失敗しました\r
+暗号化に失敗しました(%d)\r
+復号化に失敗しました(%d)\r
+移動に失敗しました\r
+コピーに失敗しました\r
+文字列は見つかりませんでした。\r
+選択したメモを削除します。よろしいですか?\r
+メモの削除\r
+メモの削除に失敗しました\r
+暗号化前のメモの削除に失敗しました。手動で消してください\r
+復号化前のメモの削除に失敗しました。手動で消してください\r
+ファイル名が指定されていません\r
+同名のファイルが存在します\r
+ファイル名の変更に失敗しました: %d\r
+選択したフォルダを削除します。よろしいですか?\r
+フォルダの削除\r
+フォルダ名が指定されていません\r
+同名のフォルダが存在します\r
+フォルダ名の変更に失敗しました: %d\r
+日付の取得に失敗しました\r
+\\はメモフォルダとして指定できません\r
+%y\t:年4桁(2001)\r\n%Y\t:年下2桁(01)\r\n%M\t:月(01,02,...)\r\n%b\t:月(Jan,Feb..)\r\n%d\t:日(01,02..)\r\n%D\t:日(1,2,..)\r\n%w\t:曜日(日,月..)\r\n%W\t:曜日(Sun,Mon)\r\n%H\t:時(12H:00..11)\r\n%I\t:時(12H:01..12)\r\n%h\t:時(24H)\r\n%a\t:AM,PM\r\n%m\t:分(01,02..)\r\n%s\t:秒(01,02..)\r\n%%\t:\"%\"\r\n%n\t:改行\r\n%fn\t:ファイルパス(上位n階層,0はすべて)\r\n%Fn\t:ファイルパス(下位n階層)\r
+検索結果\r
+フォルダのファイルに対して暗号化を行います。よろしいですか?\r
+暗号化\r
+いくつかのファイルについて暗号化前のファイルの削除に失敗しました\r
+いくつかのファイルについて暗号化に失敗しました\r
+フォルダのファイルに対して復号化を行います。よろしいですか?\r
+復号化\r
+いくつかのファイルについて暗号ファイルの削除に失敗しました\r
+いくつかのファイルについて復号化に失敗しました\r
+暗号化ライブラリのセルフテストに失敗しました(%s)。暗号化が正常に行われない可能性があります\r
+セルフテスト失敗\r
+キャンセルしています...\r
+検索に失敗しました(%d)\r
+検索はキャンセルされました\r
+クイックフィルタ\r
+仮想フォルダの作成に失敗しました\r
+検索結果\r
+仮想フォルダ名\r
+選択した仮想フォルダを削除します。よろしいですか?\r
+仮想フォルダの削除\r
+フィルタの設定\r
+ソース\r
+フィルタ\r
+パス表示\r
+フィルタ種別\r
+条件\r
+検索\r
+アイテム数\r
+最終更新日\r
+ソート\r
+%d件\r
+%d日前より新しいもの\r
+%d日前より古いもの\r
+ファイル名の辞書順\r
+ファイル名の逆辞書順\r
+最終更新日の古い順\r
+最終更新日の新しい順\r
+作成日の古い順\r
+作成日の新しい順\r
+ファイルサイズ昇順\r
+ファイルサイズ降順\r
+ダイアログの初期化に失敗しました\r
+正規表現の生成に失敗しました\r
+0以上の数を指定してください\r
+フォントサイズが不正です\r
+受け側のフォルダは送り側フォルダのサブフォルダです。\r
+パスを表示しない\r
+メモ名の前に表示\r
+メモ名の後に表示\r
+アイテム名\r
+パス\r
+お気に入りの削除\r
+選択したお気に入りを削除します。よろしいですか?\r
+メモ\r
+パスワード\r
+フォント\r
+日付\r
+詳細ビュー\r
+セキュリティ\r
+トップページ\r
+プロパティ\r
+メイン\r
+保存\r
+アプリボタン\r
+SIP\r
+エンコーディング\r
+メモ\r
+ツール\r
+編集\r
+新規フォルダ\r
+切り取り\r
+コピー\r
+貼り付け\r
+ファイル名の変更\r
+削除\r
+検索\r
+次を検索\r
+前を検索\r
+クイックフィルタ\r
+暗号化\r
+復号化\r
+全選択\r
+終了\r
+バージョン情報\r
+プロパティ\r
+仮想フォルダ\r
+パスワード消去\r
+折り返して表示\r
+ファイル(&F)\r
+新規メモ\tCtrl+N\r
+新規フォルダ\r
+名前の変更(&R)\r
+削除(&D)\tDEL\r
+保存(&S)\tCtrl+S\r
+終了(&X)\r
+編集(&E)\r
+切り取り(&T)\tCtrl+X\r
+コピー(&C)\tCtrl+C\r
+貼り付け(&P)\tCtrl+V\r
+全選択(&A)\tCtrl+A\r
+検索(&S)\tCtrl+F\r
+次を検索\tF3\r
+前を検索\tShift+F3\r
+クイックフィルタ\tCtrl+G\r
+日付1\tCtrl+1\r
+日付2\tCtrl+2\r
+お気に入り(&B)\r
+お気に入りに追加\r
+お気に入りの整理\r
+ツール(&T)\r
+折り返し表示(&L)\r
+2画面モード(&P)\r
+ステータスバー\r
+常に手前に表示\r
+暗号化(&E)\tCtrl+E\r
+復号化(&P)\tCtrl+P\r
+パスワード消去\r
+仮想フォルダ\r
+プロパティ(&O)\r
+ヘルプ(&H)\r
+バージョン情報(&A)\r
+リンク元へ移動\r
+OK\r
+キャンセル\r
+お気に入りの整理\r
+↑\r
+↓\r
+削除\r
+Select File\r
+仮想フォルダの設定\r
+↑\r
+↓\r
+保存\r
+新規\r
+改名\r
+削除\r
+アイテム数フィルタ\r
+アイテム数:\r
+検索フィルタ\r
+検索文字列:\r
+大文字小文字を区別\r
+暗号メモも対象とする\r
+ファイル名に対して検索\r
+マッチしないものを選択\r
+ソートフィルタ\r
+ソート方法\r
+タイムスタンプフィルタ\r
+日前より\r
+新しいメモ\r
+古いメモ\r
+↑\r
+↓\r
+削除\r
+検索\r
+件数\r
+日付\r
+ソート\r
+検索開始位置:\r
+検索文字列:\r
+保存する\r
+保存名:\r
+新規フォルダ名\r
+パスワード入力\r
+デフォルトメモ\r
+現在のメモを使用\r
+空白を使用\r
+メモフォルダ:\r
+メモを保存するフォルダを設定します。\r
+メモファイル名とタイトルを連動\r
+保存時にメモの一行目が変更されていたらファイル名を自動的に変更します。\r
+デフォルトを書き込み禁止にする\r
+一覧:\r
+デフォルトフォントを使用\r
+詳細:\r
+クリアタイプフォントを使用(XPのみ)\r
+日付1:\r
+日付2:\r
+カーソル位置の保持\r
+メモ詳細ビューで前回開いた時のカーソルの位置を記憶します。\r
+タブストップ:\r
+タブストップを指定します。\r
+ウィンドウタイトルをメモと連動\r
+メモを開いた際にウィンドウタイトルをメモのタイトルと連動させます\r
+タイムアウト(分):\r
+Tomboがパスワードを記憶している時間を指定します(1~60)。\r
+検索\r
+検索文字列:\r
+検索方向\r
+上へ\r
+下へ\r
+ボタン1\r
+ボタン2\r
+ボタン3\r
+ボタン4\r
+ボタン5\r
+アプリケーションボタンをアクションボタンとして割り当てます。割り当ては再起動後に有効となります。\r
+編集画面ではアクションボタン無効\r
+SIPの上に余白をとる\r
+デフォルト(SJIS)\r
+ギリシャ語\r
+検索(&S)\r
+外部ツール1\r
+エクスプローラで開く\r
+関連付け実行\r
+外部アプリ\r
+関連付け実行を使用\r
+外部アプリ1\r
+外部アプリ2\r
+注意:\r\n外部アプリがバックアップファイルを残す場合、TOMBOはそれを\r\n*消しません*。暗号化前にバックアップファイルが存在していないか確認するようにしてください。\r
+外部アプリケーションの選択\r
+exeファイル(*.exe)\0*.exe\0全て(*.*)\0*.*\0\0\r
+2画面モード\r
+お気に入りに追加\r
+お気に入りの整理\r
+クリアタイプフォントを使用\r
+保存ダイアログを表示しない\r
+ツールバー\r
+プロパティの保存に失敗しました。変更した設定が反映されない可能性があります。\r
+暗号化時にファイル名をランダムにする\r
+暗号化時にファイル名をランダムに決定します。\r\nより安全になる反面、ファイルの整理がしにくくなります。\r
+一部ファイルはパスワード不一致のためタイトルが取得できませんでした。????????で表示します。\r
+TOMBOレジストリ削除ツール\r
+以前のバージョンのTOMBOが使用していたレジストリを削除します。よろしいですか?\r
+削除はキャンセルされました。\r
+削除されました。\r
+エントリは既に削除されていました。\r
+削除に失敗しました(%d)。\r
+ツリー位置を保存\r
+ファイルのエンコーディング\r
+Unicode(UTF16LE)\r
+UTF-8\r
+ファイルの文字コードを設定します。\r\n自動変換・自動判別は行われないため、既にメモをお持ちの方は変更しないでください。\r
+元に戻す\r
+ファイル\r
diff --git a/Src/NewFolderDialog.cpp b/Src/NewFolderDialog.cpp
new file mode 100644 (file)
index 0000000..73c5906
--- /dev/null
@@ -0,0 +1,115 @@
+#include <windows.h>\r
+#include <tchar.h>\r
+#include <commctrl.h>\r
+#include "NewFolderDialog.h"\r
+#include "resource.h"\r
+#include "SipControl.h"\r
+#include "Message.h"\r
+#include "DialogTemplate.h"\r
+\r
+NewFolderDialog::NewFolderDialog() : \r
+       hDialog(NULL), hInstance(NULL), pBaseText(NULL), \r
+       nTitleID(MSG_ID_DLG_NEWFOLDER_TITLE)\r
+{\r
+       aFolder[0] = TEXT('\0'); \r
+}\r
+\r
+//////////////////////////////////////////////////////////\r
+// Dialog procedure\r
+//////////////////////////////////////////////////////////\r
+\r
+static BOOL APIENTRY DlgProc(HWND hDlg, UINT nMessage, WPARAM wParam, LPARAM lParam)\r
+{\r
+       NewFolderDialog *pDlg;\r
+       if (nMessage == WM_INITDIALOG) {\r
+               SetWindowLong(hDlg, DWL_USER, lParam);\r
+               pDlg = (NewFolderDialog*)lParam;\r
+\r
+               pDlg->InitDialog(hDlg);\r
+               return TRUE;\r
+       }\r
+\r
+       pDlg = (NewFolderDialog*)GetWindowLong(hDlg, DWL_USER);\r
+       if (pDlg == NULL) return FALSE;\r
+\r
+       switch (nMessage) {\r
+       case WM_COMMAND:\r
+               switch (wParam) {\r
+               case IDOK:\r
+                       if (pDlg->OnOK(hDlg)) {\r
+                               EndDialog(hDlg, IDOK);\r
+                       }\r
+                       break;\r
+               case IDCANCEL:\r
+                       EndDialog(hDlg, IDCANCEL);\r
+                       break;\r
+               }\r
+               return TRUE;\r
+       }\r
+       return FALSE;\r
+}\r
+\r
+//////////////////////////////////////////////////////////\r
+// popup dialog\r
+//////////////////////////////////////////////////////////\r
+\r
+DWORD NewFolderDialog::Popup(HINSTANCE hInst, HWND hParent)\r
+{\r
+       hInstance = hInst;\r
+\r
+       SipControl sc;\r
+       BOOL bSipStat, bResult;\r
+\r
+       bResult = sc.Init() && sc.GetSipStat(&bSipStat);\r
+       if (bResult) sc.SetSipStat(TRUE);\r
+       \r
+       DWORD result;\r
+       result = DialogBoxParam(hInst, MAKEINTRESOURCE(IDD_NEWFOLDER), \r
+                                                               hParent, (DLGPROC)DlgProc, (LONG)this);\r
+\r
+       if (bResult) sc.SetSipStat(bSipStat);\r
+\r
+       return result;\r
+}\r
+\r
+//////////////////////////////////////////////////////////\r
+// Initialize\r
+//////////////////////////////////////////////////////////\r
+\r
+static DlgMsgRes aDlgRes[] = {\r
+       { IDOK,     MSG_ID_DLG_CMN_OK },\r
+       { IDCANCEL, MSG_ID_DLG_CMN_CANCEL },\r
+};\r
+\r
+void NewFolderDialog::InitDialog(HWND hDlg)\r
+{\r
+       OverrideDlgMsg(hDlg, nTitleID, aDlgRes, sizeof(aDlgRes)/sizeof(DlgMsgRes));\r
+\r
+       HWND hEdit = GetDlgItem(hDlg, IDC_NEWFOLDER_NAME);\r
+\r
+       if (pBaseText == NULL) {\r
+               pBaseText = TEXT("");\r
+       }\r
+       SetWindowText(hEdit, pBaseText);\r
+}\r
+\r
+//////////////////////////////////////////////////////////\r
+// OK\r
+//////////////////////////////////////////////////////////\r
+\r
+BOOL NewFolderDialog::OnOK(HWND hDlg)\r
+{\r
+       HWND hEdit = GetDlgItem(hDlg, IDC_NEWFOLDER_NAME);\r
+       DWORD n = GetWindowTextLength(hEdit);\r
+       if (n == 0) return FALSE;\r
+\r
+       GetWindowText(hEdit, aFolder, n + 1);\r
+       aFolder[n] = TEXT('\0');\r
+       return TRUE;\r
+}\r
+\r
+void NewFolderDialog::SetOption(DWORD nID, LPCTSTR pText)\r
+{\r
+       nTitleID = nID;\r
+       pBaseText = pText;\r
+}
\ No newline at end of file
diff --git a/Src/NewFolderDialog.h b/Src/NewFolderDialog.h
new file mode 100644 (file)
index 0000000..5be1bfe
--- /dev/null
@@ -0,0 +1,22 @@
+#ifndef NEWFOLDERDIALOG_H\r
+#define NEWFOLDERDIALOG_H\r
+\r
+class NewFolderDialog {\r
+       HWND hDialog;\r
+       HINSTANCE hInstance;\r
+       TCHAR aFolder[MAX_PATH];\r
+       LPCTSTR pBaseText;\r
+       DWORD nTitleID;\r
+public:\r
+       \r
+       NewFolderDialog();\r
+       void InitDialog(HWND hWnd);\r
+       BOOL OnOK(HWND hWnd);\r
+\r
+       DWORD Popup(HINSTANCE hInst, HWND hParent);\r
+       LPCTSTR FolderName() { return aFolder; }\r
+\r
+       void SetOption(DWORD nTitleID, LPCTSTR pText);\r
+};\r
+\r
+#endif
\ No newline at end of file
diff --git a/Src/PasswordDialog.cpp b/Src/PasswordDialog.cpp
new file mode 100644 (file)
index 0000000..096d229
--- /dev/null
@@ -0,0 +1,168 @@
+#include <windows.h>\r
+#include <tchar.h>\r
+#include <commctrl.h>\r
+\r
+#include "Tombo.h"\r
+#include "PasswordDialog.h"\r
+#include "resource.h"\r
+#include "UniConv.h"\r
+#include "SipControl.h"\r
+#include "Message.h"\r
+\r
+#include "DialogTemplate.h"\r
+\r
+//////////////////////////////////////////////////////////\r
+// dtor\r
+//////////////////////////////////////////////////////////\r
+\r
+PasswordDialog::~PasswordDialog()\r
+{\r
+       if (pPassword != NULL) {\r
+               char *p = pPassword;\r
+               // clear password area\r
+               while(*p) {\r
+                       *p++ = '\0';\r
+               }\r
+       }\r
+}\r
+\r
+//////////////////////////////////////////////////////////\r
+// Dlg proc\r
+//////////////////////////////////////////////////////////\r
+\r
+static BOOL APIENTRY DlgProc(HWND hDlg, UINT nMessage, WPARAM wParam, LPARAM lParam)\r
+{\r
+       PasswordDialog *pDlg;\r
+       if (nMessage == WM_INITDIALOG) {\r
+               SetWindowLong(hDlg, DWL_USER, lParam);\r
+               pDlg = (PasswordDialog*)lParam;\r
+\r
+               pDlg->InitDialog(hDlg);\r
+               return TRUE;\r
+       }\r
+\r
+       pDlg = (PasswordDialog*)GetWindowLong(hDlg, DWL_USER);\r
+       if (pDlg == NULL) return FALSE;\r
+\r
+       switch (nMessage) {\r
+       case WM_COMMAND:\r
+               switch (wParam) {\r
+               case IDOK:\r
+                       if (pDlg->OnOK(hDlg)) {\r
+                               pDlg->ClearPassword(hDlg);\r
+                               EndDialog(hDlg, IDOK);\r
+                       }\r
+                       break;\r
+               case IDCANCEL:\r
+                       pDlg->ClearPassword(hDlg);\r
+                       EndDialog(hDlg, IDCANCEL);\r
+                       break;\r
+               }\r
+               return TRUE;\r
+       }\r
+       return FALSE;\r
+}\r
+\r
+//////////////////////////////////////////////////////////\r
+// popup\r
+//////////////////////////////////////////////////////////\r
+\r
+DWORD PasswordDialog::Popup(HINSTANCE hInst, HWND hParent, BOOL b)\r
+{\r
+       hInstance = hInst;\r
+       bVerify = b;\r
+\r
+       SipControl sc;\r
+       BOOL bSipStat, bResult;\r
+\r
+       bResult = sc.Init() && sc.GetSipStat(&bSipStat);\r
+       if (bResult) sc.SetSipStat(TRUE);\r
+\r
+       DWORD result;\r
+       result = DialogBoxParam(hInst, MAKEINTRESOURCE(IDD_PASSWORD), \r
+                                                               hParent, (DLGPROC)DlgProc, (LONG)this);\r
+\r
+       if (bResult) sc.SetSipStat(bSipStat);\r
+       return result;\r
+}\r
+\r
+//////////////////////////////////////////////////////////\r
+// initialize\r
+//////////////////////////////////////////////////////////\r
+\r
+static DlgMsgRes aDlgMsg[] = {\r
+       { IDOK,     MSG_ID_DLG_CMN_OK },\r
+       { IDCANCEL, MSG_ID_DLG_CMN_CANCEL },\r
+};\r
+\r
+void PasswordDialog::InitDialog(HWND hDlg)\r
+{\r
+       OverrideDlgMsg(hDlg, MSG_ID_DLG_PASSWORD_TITLE, aDlgMsg, sizeof(aDlgMsg)/sizeof(DlgMsgRes));\r
+\r
+       ClearPassword(hDlg);\r
+       HWND hEdit2 = GetDlgItem(hDlg, IDC_PASS2);\r
+       EnableWindow(hEdit2, bVerify);\r
+       SendMessage(hEdit2, EM_SETREADONLY, (WPARAM)!bVerify, 0);\r
+}\r
+\r
+//////////////////////////////////////////////////////////\r
+// Clear edit box\r
+//////////////////////////////////////////////////////////\r
+\r
+void PasswordDialog::ClearPassword(HWND hDlg)\r
+{\r
+       HWND hEdit = GetDlgItem(hDlg, IDC_PASS);\r
+       HWND hEdit2 = GetDlgItem(hDlg, IDC_PASS2);\r
+       SetWindowText(hEdit, TEXT(""));\r
+       SetWindowText(hEdit2, TEXT(""));\r
+}\r
+\r
+//////////////////////////////////////////////////////////\r
+// OK\r
+//////////////////////////////////////////////////////////\r
+\r
+static LPTSTR GetPass(HWND hEdit)\r
+{\r
+       DWORD n = GetWindowTextLength(hEdit);\r
+       LPTSTR p = new TCHAR[n + 1];\r
+       if (p == NULL) {\r
+               SetLastError(ERROR_NOT_ENOUGH_MEMORY);\r
+               return NULL;\r
+       }\r
+       GetWindowText(hEdit, p, n + 1);\r
+       p[n] = TEXT('\0');\r
+       return p;\r
+}\r
+\r
+BOOL PasswordDialog::OnOK(HWND hDlg)\r
+{\r
+       HWND hEdit = GetDlgItem(hDlg, IDC_PASS);\r
+       HWND hEdit2 = GetDlgItem(hDlg, IDC_PASS2);\r
+       LPTSTR pPass1 = GetPass(hEdit);\r
+       if (!pPass1) return FALSE;\r
+       if (_tcslen(pPass1) == 0) {\r
+               WipeOutAndDelete(pPass1);\r
+               return FALSE;\r
+       }\r
+\r
+       LPTSTR pPass2;\r
+\r
+       if (bVerify) {\r
+               pPass2 = GetPass(hEdit2);\r
+               if (!pPass2) {\r
+                       WipeOutAndDelete(pPass1);\r
+                       return FALSE;\r
+               }\r
+               if (_tcscmp(pPass1, pPass2) != 0) {\r
+                       TomboMessageBox(hDlg, MSG_PASS_NOT_MATCH, TEXT("Warning"), MB_ICONEXCLAMATION | MB_OK);\r
+                       WipeOutAndDelete(pPass1);\r
+                       WipeOutAndDelete(pPass2);\r
+                       return FALSE;\r
+               }\r
+               WipeOutAndDelete(pPass2);\r
+       }\r
+       pPassword = ConvUnicode2SJIS(pPass1);\r
+\r
+       WipeOutAndDelete(pPass1);\r
+       return (pPassword != NULL);\r
+}
\ No newline at end of file
diff --git a/Src/PasswordDialog.h b/Src/PasswordDialog.h
new file mode 100644 (file)
index 0000000..a594195
--- /dev/null
@@ -0,0 +1,24 @@
+#ifndef PASSWORDDIALOG_H\r
+#define PASSWORDDIALOG_H\r
+\r
+class PasswordDialog {\r
+       char *pPassword;\r
+\r
+       HWND hDialog;\r
+       HINSTANCE hInstance;\r
+       BOOL bVerify;\r
+public:\r
+       void ClearPassword(HWND hDlg);\r
+\r
+       PasswordDialog() : pPassword(NULL), hDialog(NULL), hInstance(NULL), bVerify(FALSE) {}\r
+       ~PasswordDialog();\r
+\r
+       void InitDialog(HWND hWnd);\r
+       BOOL OnOK(HWND hWnd);\r
+\r
+       DWORD Popup(HINSTANCE hInst, HWND hParent, BOOL bVerify);\r
+       const char *Password() { return pPassword; }\r
+};\r
+\r
+\r
+#endif
\ No newline at end of file
diff --git a/Src/PasswordManager.cpp b/Src/PasswordManager.cpp
new file mode 100644 (file)
index 0000000..43943cb
--- /dev/null
@@ -0,0 +1,204 @@
+#include <windows.h>\r
+#include <stdlib.h>\r
+#include <tchar.h>\r
+#include "Tombo.h"\r
+#include "PasswordManager.h"\r
+#include "PasswordDialog.h"\r
+#include "CryptManager.h"\r
+#include "Property.h"\r
+#include "resource.h"\r
+#include "Message.h"\r
+\r
+#define FINGERPRINT_VERSION 1\r
+#define FINGERPRINT_NUM_ENCRYPT 64\r
+\r
+//////////////////////////////////////////\r
+// global vars\r
+//////////////////////////////////////////\r
+\r
+PasswordManager *g_pPassManager = NULL;\r
+\r
+//////////////////////////////////////////\r
+// \83f\83X\83g\83\89\83N\83^\r
+//////////////////////////////////////////\r
+\r
+PasswordManager::~PasswordManager()\r
+{\r
+       ForgetPassword();\r
+}\r
+\r
+//////////////////////////////////////////\r
+// \8f\89\8aú\89»\r
+//////////////////////////////////////////\r
+\r
+BOOL PasswordManager::Init(HWND hWnd, HINSTANCE hInst)\r
+{\r
+       hParent = hWnd;\r
+       hInstance = hInst;\r
+       UpdateAccess();\r
+       return TRUE;\r
+}\r
+\r
+\r
+//////////////////////////////////////////\r
+// \83p\83X\83\8f\81[\83h\82Ì\8eæ\93¾\r
+//////////////////////////////////////////\r
+\r
+const char *PasswordManager::Password(BOOL *pCancel, BOOL bEncrypt)\r
+{\r
+       if (pPassword) return pPassword;\r
+\r
+       PasswordDialog dlg;\r
+\r
+       BOOL bPrev = bDisableHotKey;\r
+       bDisableHotKey = TRUE;\r
+       DWORD nResult = dlg.Popup(hInstance, hParent, bEncrypt);\r
+       bDisableHotKey = bPrev;\r
+       if ( nResult == IDOK) {\r
+               if (dlg.Password() == NULL) {\r
+                       TomboMessageBox(hParent, MSG_CANT_GET_PASS,\r
+                                               TEXT("ERROR"), MB_ICONSTOP | MB_OK);\r
+                       return NULL;\r
+               } else {\r
+                       // \83^\83C\83}\81[\82Ì\83Z\83b\83g\r
+\r
+                       if (!SetTimer(hParent, ID_PASSWORDTIMER, 60*1000, NULL)) {\r
+                               TomboMessageBox(hParent, MSG_TIMER_SET_FAILED, TEXT("ERROR"), MB_ICONSTOP | MB_OK);\r
+                               return NULL;\r
+                       }\r
+\r
+                       // \83p\83X\83\8f\81[\83h\82Ì\95Û\8e\9d\r
+                       pPassword = new char[strlen(dlg.Password()) + 1];\r
+                       strcpy(pPassword, dlg.Password());\r
+                       return pPassword;\r
+               }\r
+       } else {\r
+               *pCancel = TRUE;\r
+               return NULL;\r
+       }\r
+}\r
+\r
+\r
+//////////////////////////////////////////\r
+// \83p\83X\83\8f\81[\83h\82Ì\96³\8cø\89»\r
+//////////////////////////////////////////\r
+\r
+void PasswordManager::ForgetPassword()\r
+{\r
+       if (pPassword) {\r
+               char *p = pPassword;\r
+               while (*p) {\r
+                       *p++ = '\0';\r
+               }\r
+               delete [] pPassword;\r
+               pPassword = NULL;\r
+               KillTimer(hParent, ID_PASSWORDTIMER);\r
+       }\r
+}\r
+\r
+//////////////////////////////////////////\r
+// FingerPrint\82Ì\8cv\8eZ\r
+//////////////////////////////////////////\r
+// GetFingerPrint, SetFingerPrint\82Ì\89º\90¿\82¯\r
+\r
+\r
+static BOOL GetFingerPrintFromSeed(LPBYTE pResult, const LPBYTE pSeed, const char *pPass)\r
+{\r
+       CryptManager cMgr;\r
+       if (!cMgr.Init(pPass)) return FALSE;\r
+\r
+       BYTE workbuf1[16], workbuf2[16];\r
+       DWORD i, count;\r
+\r
+       for (i = 0; i < 16; i++) workbuf1[i] = pSeed[i];\r
+\r
+       for (count = 0; count < FINGERPRINT_NUM_ENCRYPT; count++) {\r
+               // \88Ã\8d\86\89»\r
+               if (!cMgr.Encrypt(workbuf1, 16)) return FALSE;\r
+\r
+               // MD5\82É\82æ\82é\83n\83b\83V\83\85\89»\r
+               getMD5Sum(workbuf2, workbuf1, 16);\r
+\r
+               for (i = 0; i < 16; i++) workbuf1[i] = workbuf2[i];\r
+       }\r
+       for (i = 0; i < 16; i++) pResult[i] = workbuf1[i];\r
+\r
+       return TRUE;\r
+}\r
+\r
+//////////////////////////////////////////\r
+// \83t\83B\83\93\83K\81[\83v\83\8a\83\93\83g\82Ì\8eæ\93¾\r
+//////////////////////////////////////////\r
+\r
+BOOL GetFingerPrint(LPBYTE pFp, const char *pPassword)\r
+{\r
+       DWORD i;\r
+\r
+       // FingerPrint\82Ìseed\8eæ\93¾\82Ì\82½\82ß\82Ì\97\90\90\94\8cn\97ñ\8f\89\8aú\89»\r
+       SYSTEMTIME st;\r
+       GetSystemTime(&st);\r
+       FILETIME ft;\r
+       SystemTimeToFileTime(&st, &ft);\r
+       srand(ft.dwLowDateTime);\r
+\r
+       // FingerPrint\82Ìseed\82Ì\8eæ\93¾\r
+       for (i = 0; i < 16; i++) {\r
+               pFp[i] = (BYTE)(rand() & 0xFF);\r
+       }\r
+\r
+       // FingerPrint\82Ì\8eæ\93¾\r
+       pFp[0] = FINGERPRINT_VERSION;\r
+       BOOL bResult = GetFingerPrintFromSeed(pFp + 17, pFp + 1, pPassword);\r
+\r
+       return bResult;\r
+}\r
+\r
+//////////////////////////////////////////\r
+// \83t\83B\83\93\83K\81[\83v\83\8a\83\93\83g\82Ì\83`\83F\83b\83N\r
+//////////////////////////////////////////\r
+\r
+BOOL CheckFingerPrint(LPBYTE pFp, const char *pPassword)\r
+{\r
+       BYTE result[16];\r
+\r
+       if (pFp[0] != FINGERPRINT_VERSION) {\r
+               SetLastError(ERROR_INVALID_DATA);\r
+               return FALSE;\r
+       }\r
+\r
+       if (!GetFingerPrintFromSeed(result, pFp + 1, pPassword)) return FALSE;\r
+       for (DWORD i = 0; i < 16; i++) {\r
+               if (result[i] != pFp[17 + i]) return FALSE;\r
+       }\r
+       return TRUE;\r
+}\r
+\r
+//////////////////////////////////////////\r
+// \83A\83N\83Z\83X\82Ì\91±\8ds\r
+//////////////////////////////////////////\r
+void PasswordManager::UpdateAccess()\r
+{\r
+       SYSTEMTIME st;\r
+       GetSystemTime(&st);\r
+       SystemTimeToFileTime(&st, &ftLastAccess);\r
+}\r
+\r
+void PasswordManager::ForgetPasswordIfNotAccessed()\r
+{\r
+       if (pPassword == NULL) return;\r
+\r
+       SYSTEMTIME st;\r
+       FILETIME ftNow;\r
+       GetSystemTime(&st);\r
+       SystemTimeToFileTime(&st, &ftNow);\r
+\r
+       UINT64 utLastAccess = ((UINT64)ftLastAccess.dwHighDateTime << 32) | (UINT64)ftLastAccess.dwLowDateTime;\r
+       UINT64 utNow = ((UINT64)ftNow.dwHighDateTime << 32) | (UINT64)ftNow.dwLowDateTime;\r
+\r
+       UINT64 utDiff = (utNow - utLastAccess) / 10000000;\r
+       utDiff /= 60;\r
+\r
+       if (utDiff > g_Property.GetPassTimeout()) {\r
+               SendMessage(hParent, WM_TIMER, 0, 0);\r
+       }\r
+}\r
diff --git a/Src/PasswordManager.h b/Src/PasswordManager.h
new file mode 100644 (file)
index 0000000..1e48423
--- /dev/null
@@ -0,0 +1,64 @@
+#ifndef PASSWORDMANAGER_H\r
+#define PASSWORDMANAGER_H\r
+\r
+// \83^\83C\83\80\83A\83E\83g\82Ì\83`\83F\83b\83N\r
+//\r
+// \93d\8c¹ON \83t\83H\83A\83O\83\89\83E\83\93\83h\82Ì\8fó\91Ô\82Å\95ú\92u\r
+// \93d\8c¹OFF\82É\82µ\82Ä\95ú\92u\r
+// \93d\8c¹ON \91¼\82Ì\83A\83v\83\8a\82ð\8bN\93®\82µ\82Ä\95ú\92u\r
+\r
+\r
+//////////////////////////////////////////////\r
+// \83p\83X\83\8f\81[\83h\83}\83l\81[\83W\83\83\r
+//////////////////////////////////////////////\r
+// \83p\83X\83\8f\81[\83h\82ð\8aÇ\97\9d\82·\82é\81B\r
+// \83A\83v\83\8a\8bN\93®\8cã\83p\83X\83\8f\81[\83h\96¢\93ü\97Í\82Ì\8fê\8d\87\81A\83_\83C\83A\83\8d\83O\82ð\95\\8e¦\82µ\82Ä\83p\83X\83\8f\81[\83h\82Ì\93ü\97Í\82ð\91£\82·\81B\r
+\r
+class PasswordManager {\r
+       char *pPassword;\r
+\r
+       HWND hParent;\r
+       HINSTANCE hInstance;\r
+       FILETIME ftLastAccess;\r
+\r
+public:\r
+       PasswordManager() : pPassword(NULL), hParent(NULL), hInstance(NULL) {}\r
+       ~PasswordManager();\r
+\r
+       BOOL Init(HWND hParent, HINSTANCE hInstance);\r
+\r
+       // \96ß\82è\92l\82ªNULL\82ÅbCancel\82ªTRUE\82Ì\8fê\8d\87\81A\83\86\81[\83U\82ª\83L\83\83\83\93\83Z\83\8b\82µ\82½\r
+       // \88Ã\8d\86\89»\82Ì\8fê\8d\87\82É\82Í\8dÄ\93ü\97Í\82ª\95K\97v\82Æ\82È\82é\81BbEncrypt = TRUE\82Æ\82·\82é\82±\82Æ\81B\r
+       const char *Password(BOOL *bCancel, BOOL bEncrypt);\r
+\r
+       // \83p\83X\83\8f\81[\83h\82ð\8bL\89¯\82µ\82Ä\82¢\82é\82©\r
+       BOOL IsRememberPassword() { return pPassword != NULL; }\r
+\r
+       // \83p\83X\83\8f\81[\83h\82Ì\8fÁ\8b\8e\r
+       void ForgetPassword();\r
+\r
+       // \83^\83C\83}\82É\82æ\82é\83p\83X\83\8f\81[\83h\8fÁ\8b\8e\97p\8aÖ\90\94\r
+       void UpdateAccess();\r
+       void ForgetPasswordIfNotAccessed();\r
+};\r
+\r
+//////////////////////////////////////////////\r
+// \83p\83X\83\8f\81[\83hFingerPrint\82Ì\8eæ\93¾\81E\8am\94F\r
+//////////////////////////////////////////////\r
+// pFp\82Í32\83o\83C\83g\82Ì\83o\83b\83t\83@\r
+\r
+// FingerPrint\82Í1\83o\83C\83g\82Ì\8e¯\95Ê\8eq,16\83o\83C\83g\82Ìseed\82Æ16\83o\83C\83g\82Ì\8c\8b\89Ê\81A\8cv33\83o\83C\83g\82©\82ç\82È\82é\81B\r
+// pFP[ 0]          : \8e¯\95Ê\8eq(\83o\81[\83W\83\87\83\93\8fî\95ñ)\r
+// pFp[ 1]\81`pFp[16] : seed\r
+// pFp[17]\81`pFp[32] : \8c\8b\89Ê\r
+\r
+BOOL GetFingerPrint(LPBYTE pFp, const char *pPassword);\r
+BOOL CheckFingerPrint(LPBYTE pFp, const char *pPassword);\r
+\r
+//////////////////////////////////////////////\r
+// global definitions\r
+//////////////////////////////////////////////\r
+\r
+extern PasswordManager *g_pPassManager;\r
+\r
+#endif\r
diff --git a/Src/PlatformLayer.cpp b/Src/PlatformLayer.cpp
new file mode 100644 (file)
index 0000000..611e6cc
--- /dev/null
@@ -0,0 +1,158 @@
+#include <windows.h>\r
+#include <commctrl.h>\r
+#include <tchar.h>\r
+#if defined(PLATFORM_BE500)\r
+#include <CSO.h>\r
+#endif\r
+\r
+#include "Tombo.h"\r
+#include "Message.h"\r
+#include "resource.h"\r
+\r
+#include "PlatformLayer.h"\r
+#include "Property.h"\r
+\r
+///////////////////////////////////////////////////\r
+// ctor & dtor\r
+///////////////////////////////////////////////////\r
+\r
+PlatformLayer::PlatformLayer() : hMainWnd(NULL)\r
+{\r
+}\r
+\r
+PlatformLayer::~PlatformLayer()\r
+{\r
+}\r
+\r
+BOOL PlatformLayer::Init(HWND h)\r
+{\r
+       hMainWnd = h;\r
+       return TRUE;\r
+}\r
+\r
+///////////////////////////////////////////////////\r
+///////////////////////////////////////////////////\r
+// helper functions\r
+///////////////////////////////////////////////////\r
+///////////////////////////////////////////////////\r
+\r
+void SetAppIcon(HINSTANCE hInst, HWND hWnd)\r
+{\r
+#if defined(PLATFORM_WIN32)\r
+       // set app icon\r
+       HICON hIcon = LoadIcon(hInst, MAKEINTRESOURCE(IDI_TOMBO));\r
+       SendMessage(hWnd, WM_SETICON, (WPARAM)ICON_BIG, (LPARAM)hIcon);\r
+#endif\r
+#if defined(PLATFORM_HPC)\r
+       HICON hIcon =  (HICON)LoadImage(hInst,\r
+                                MAKEINTRESOURCE(IDI_TOMBO),\r
+                                IMAGE_ICON, 16, 16, LR_DEFAULTCOLOR);\r
+       SendMessage(hWnd, WM_SETICON, (WPARAM)ICON_SMALL, (LPARAM)hIcon);\r
+#endif\r
+}\r
+\r
+///////////////////////////////////////////////////\r
+// menu helper\r
+///////////////////////////////////////////////////\r
+\r
+void AddMenuItemByMsgRes(HMENU hMenu, MenuMsgRes *pRes)\r
+{\r
+       int i = 0;\r
+       while(1) {\r
+               if (pRes[i].iPos == -1) break;\r
+\r
+               if (pRes[i].iMenuID == -1) {\r
+                       InsertMenu(hMenu,  pRes[i].iPos, MF_BYPOSITION | MF_SEPARATOR, 0, NULL);\r
+               } else if (pRes[i].pSubMenu != NULL) {\r
+                       HMENU hSubMenu = CreatePopupMenu();\r
+                       AddMenuItemByMsgRes(hSubMenu, pRes[i].pSubMenu);\r
+\r
+                       InsertMenu(hMenu, pRes[i].iPos, MF_BYPOSITION | MF_STRING | MF_POPUP | pRes[i].iExtOpt, (UINT)hSubMenu, g_mMsgRes.GetMsg(pRes[i].iMsgID));\r
+               } else {\r
+                       InsertMenu(hMenu,  pRes[i].iPos, MF_BYPOSITION | MF_STRING | pRes[i].iExtOpt, pRes[i].iMenuID, g_mMsgRes.GetMsg(pRes[i].iMsgID));\r
+               }\r
+\r
+               i++;\r
+       }\r
+}\r
+\r
+void OverrideMenuTitle(HMENU hMenu, MenuMsgRes *pRes, int nNumRes)\r
+{\r
+       for (int i = 0; i < nNumRes; i++) {\r
+               if (pRes[i].iMenuID == -1) {\r
+                       InsertMenu(hMenu,  pRes[i].iPos, MF_BYPOSITION | MF_SEPARATOR, 0, NULL);\r
+               } else {\r
+                       InsertMenu(hMenu,  pRes[i].iPos, MF_BYPOSITION | MF_STRING | pRes[i].iExtOpt, pRes[i].iMenuID, g_mMsgRes.GetMsg(pRes[i].iMsgID));\r
+               }\r
+       }\r
+}\r
+\r
+///////////////////////////////////////////////////\r
+// \r
+///////////////////////////////////////////////////\r
+#if defined(PLATFORM_HPC) || defined(PLATFORM_WIN32) || defined(PLATFORM_PKTPC) || defined(PLATFORM_WM5)\r
+\r
+static MenuMsgRes aContextMenu[] = {\r
+       {  0, IDM_CUT,        0, MSG_ID_MENUITEM_MAIN_CUT },\r
+       {  1, IDM_COPY,       0, MSG_ID_MENUITEM_MAIN_COPY },\r
+       {  2, IDM_PASTE,      0, MSG_ID_MENUITEM_MAIN_PASTE },\r
+       {  3, -1,             0, 0 },\r
+\r
+       {  4, IDM_ENCRYPT,    0, MSG_ID_MENUITEM_MAIN_ENCRYPT },\r
+       {  5, IDM_DECRYPT,    0, MSG_ID_MENUITEM_MAIN_DECRYPT },\r
+       {  6, -1,             0, 0 },\r
+       {  7, IDM_SEARCH,     0, MSG_ID_MENUITEM_MAIN_FIND },\r
+       {  8, -1,             0, 0 },\r
+       {  9, IDM_NEWFOLDER,  0, MSG_ID_MENUITEM_MAIN_NEWFOLDER },\r
+       { 10, -1,             0, 0 },\r
+       { 11, IDM_DELETEITEM, 0, MSG_ID_MENUITEM_MAIN_DELETE },\r
+       { 12, IDM_RENAME,     0, MSG_ID_MENUITEM_MAIN_RENAME },\r
+       { 13, -1,             0, 0 },\r
+       { 14, IDM_TRACELINK,  0, MSG_ID_MENUITEM_CTX_TRACELINK},\r
+};\r
+\r
+static MenuMsgRes aDirectoryContextMenu[] = {\r
+       {  4, IDM_ASSOC,      0, MSG_ID_MENUITEM_EXPLORER },\r
+       {  5, -1,             0, 0 },\r
+};\r
+\r
+HMENU PlatformLayer::LoadContextMenu(DWORD nFlg)\r
+{\r
+       HMENU hMenu = CreatePopupMenu();\r
+       OverrideMenuTitle(hMenu, aContextMenu, sizeof(aContextMenu)/sizeof(MenuMsgRes));\r
+       if (nFlg & CTXMENU_DIR) {\r
+               OverrideMenuTitle(hMenu, aDirectoryContextMenu, sizeof(aDirectoryContextMenu)/sizeof(MenuMsgRes));\r
+       } else if ((nFlg & CTXMENU_FILE) && (nFlg & CTXMENU_ENABLEEXTAPP)) {\r
+               DWORD nPos = 4;\r
+               if (nFlg & CTXMENU_USEASSOC) {\r
+                       MenuMsgRes aAssocMenu[] = {\r
+                               {  nPos, IDM_ASSOC,      0, MSG_ID_MENUITEM_ASSOCIATION },\r
+                       };\r
+                       OverrideMenuTitle(hMenu, aAssocMenu, sizeof(aAssocMenu)/sizeof(MenuMsgRes));\r
+                       nPos++;\r
+               }\r
+               if (g_Property.GetExtApp1() && _tcslen(g_Property.GetExtApp1()) > 0) {\r
+                       MenuMsgRes aExtMenu1[] = {\r
+                               {  nPos, IDM_EXTAPP1,    0, MSG_ID_DLG_EXTAPP_LBL_APP1 },\r
+                       };\r
+                       OverrideMenuTitle(hMenu, aExtMenu1, sizeof(aExtMenu1)/sizeof(MenuMsgRes));\r
+                       nPos++;\r
+               }\r
+               if (g_Property.GetExtApp2() && _tcslen(g_Property.GetExtApp2()) > 0) {\r
+                       MenuMsgRes aExtMenu2[] = {\r
+                               {  nPos, IDM_EXTAPP2,    0, MSG_ID_DLG_EXTAPP_LBL_APP2 },\r
+                       };\r
+                       OverrideMenuTitle(hMenu, aExtMenu2, sizeof(aExtMenu2)/sizeof(MenuMsgRes));\r
+                       nPos++;\r
+               }\r
+               if (nPos > 4) {\r
+                       MenuMsgRes aSep[] = {\r
+                               {  nPos, -1,    0, 0 },\r
+                       };\r
+                       OverrideMenuTitle(hMenu, aSep, sizeof(aSep)/sizeof(MenuMsgRes));\r
+               }\r
+       }\r
+       return hMenu;\r
+}\r
+\r
+#endif\r
diff --git a/Src/PlatformLayer.h b/Src/PlatformLayer.h
new file mode 100644 (file)
index 0000000..01e2ce7
--- /dev/null
@@ -0,0 +1,76 @@
+#ifndef PLATFORMLAYER_H\r
+#define PLATFORMLAYER_H\r
+\r
+///////////////////////////////////////////////////\r
+// constants\r
+///////////////////////////////////////////////////\r
+\r
+#define BOOKMARK_MENU_POS 2\r
+#define NUM_BOOKMARK_SUBMENU_DEFAULT 3\r
+\r
+#define CTXMENU_DIR          1\r
+#define CTXMENU_FILE         2\r
+#define CTXMENU_USEASSOC     4\r
+#define CTXMENU_ENABLEEXTAPP 8\r
+\r
+///////////////////////////////////////////////////\r
+// Platform abstruction\r
+///////////////////////////////////////////////////\r
+\r
+class PlatformLayer {\r
+protected:\r
+       HWND hMainWnd;\r
+public:\r
+       PlatformLayer();\r
+       virtual ~PlatformLayer();\r
+\r
+       BOOL Init(HWND h);\r
+\r
+       virtual void Create(HWND hWnd, HINSTANCE hInst) = 0;\r
+\r
+       static HMENU LoadContextMenu(DWORD nFlg);\r
+};\r
+\r
+///////////////////////////////////////////////////\r
+///////////////////////////////////////////////////\r
+// helper function/classes\r
+///////////////////////////////////////////////////\r
+///////////////////////////////////////////////////\r
+\r
+void SetAppIcon(HINSTANCE hInst, HWND hWnd);\r
+\r
+///////////////////////////////////////////////////\r
+// menu related\r
+///////////////////////////////////////////////////\r
+\r
+struct MenuMsgRes {\r
+       int iPos;\r
+       int iMenuID;\r
+       int iExtOpt;\r
+       int iMsgID;\r
+       MenuMsgRes *pSubMenu;\r
+};\r
+\r
+void AddMenuItemByMsgRes(HMENU hMenu, MenuMsgRes *pRes);\r
+void OverrideMenuTitle(HMENU hMenu, MenuMsgRes *pRes, int nNumRes);\r
+\r
+#if defined(PLATFORM_WIN32)\r
+#include "Win32Platform.h"\r
+#endif\r
+#if defined(PLATFORM_PKTPC)\r
+#include "PocketPCPlatform.h"\r
+#endif\r
+#if defined(PLATFORM_WM5)\r
+#include "WM5Platform.h"\r
+#endif\r
+#if defined(PLATFORM_PSPC)\r
+#include "PsPCPlatform.h"\r
+#endif\r
+#if defined(PLATFORM_HPC)\r
+#include "HPCPlatform.h"\r
+#endif\r
+#if defined(PLATFORM_BE500)\r
+#include "LagendaPlatform.h"\r
+#endif\r
+\r
+#endif
\ No newline at end of file
diff --git a/Src/PocketPCPlatform.cpp b/Src/PocketPCPlatform.cpp
new file mode 100644 (file)
index 0000000..d303460
--- /dev/null
@@ -0,0 +1,347 @@
+#if defined(PLATFORM_PKTPC) || defined(PLATFORM_WM5)\r
+\r
+#include <windows.h>\r
+#include <tchar.h>\r
+#include <commctrl.h>\r
+#include <aygshell.h>\r
+\r
+#include "Tombo.h"\r
+#include "resource.h"\r
+#include "Message.h"\r
+#include "PlatformLayer.h"\r
+#include "PocketPCPlatform.h"\r
+#include "SipControl.h"\r
+#include "Property.h"\r
+\r
+///////////////////////////////////////////////////////\r
+// Menu label definitions\r
+///////////////////////////////////////////////////////\r
+\r
+static MenuMsgRes aMSMemoMenu[] = {\r
+       {  0, IDM_NEWFOLDER,   0, MSG_ID_MENUITEM_MAIN_NEWFOLDER },\r
+       {  1, IDM_CUT,         0, MSG_ID_MENUITEM_MAIN_CUT },\r
+       {  2, IDM_COPY,        0, MSG_ID_MENUITEM_MAIN_COPY },\r
+       {  3, IDM_PASTE,       0, MSG_ID_MENUITEM_MAIN_PASTE },\r
+       {  4, -1,              0, 0 },\r
+       {  5, IDM_RENAME,      0, MSG_ID_MENUITEM_MAIN_RENAME },\r
+       {  6, IDM_DELETEITEM,  0, MSG_ID_MENUITEM_MAIN_DELETE },\r
+       {  7, -1,              0, 0 },\r
+       {  8, IDM_SEARCH,      0, MSG_ID_MENUITEM_MAIN_FIND },\r
+       {  9, IDM_SEARCH_NEXT, 0, MSG_ID_MENUITEM_MAIN_FIND_NEXT },\r
+       { 10, IDM_SEARCH_PREV, 0, MSG_ID_MENUITEM_MAIN_FIND_PREV },\r
+       { 11, -1,              0, 0 },\r
+       { 12, IDM_GREP,        0, MSG_ID_MENUITEM_MAIN_QUICKFILTER },\r
+       // 13 is used by default separator\r
+       { 14, IDM_ENCRYPT,     0, MSG_ID_MENUITEM_MAIN_ENCRYPT },\r
+       { 15, IDM_DECRYPT,     0, MSG_ID_MENUITEM_MAIN_DECRYPT },\r
+};\r
+\r
+static MenuMsgRes aMSToolMenu[] = {\r
+       {  0, IDM_EXIT,        0, MSG_ID_MENUITEM_TOOL_EXIT },\r
+       // 1 is not defined\r
+       {  2, IDM_ABOUT,       0, MSG_ID_MENUITEM_TOOL_ABOUT },\r
+       {  3, IDM_PROPERTY,    0, MSG_ID_MENUITEM_TOOL_PROPERTY},\r
+       {  4, IDM_VFOLDER_DEF, 0, MSG_ID_MENUITEM_TOOL_VFOLDER_DEF},\r
+       {  5, IDM_FORGETPASS,  0, MSG_ID_MENUITEM_TOOL_FORGETPASS},\r
+};\r
+\r
+static MenuMsgRes aMSBookmarkMenu[] = {\r
+       {  0, IDM_BOOKMARK_ADD,    0, MSG_ID_MENUITEM_B_ADDBM },\r
+       {  1, IDM_BOOKMARK_CONFIG, 0, MSG_ID_MENUITEM_B_EDITBM },\r
+       // 2 is not defined\r
+};\r
+\r
+\r
+static MenuMsgRes aMDEditMenu[] = {\r
+       {  0, IDM_CUT,         0, MSG_ID_MENUITEM_MAIN_CUT },\r
+       {  1, IDM_COPY,        0, MSG_ID_MENUITEM_MAIN_COPY },\r
+       {  2, IDM_PASTE,       0, MSG_ID_MENUITEM_MAIN_PASTE },\r
+       {  3, -1,              0, 0 },\r
+       {  4, IDM_SELALL,      0, MSG_ID_MENUITEM_DETAILS_SELALL },\r
+       // 5 is not defined\r
+       {  6, IDM_SEARCH,      0, MSG_ID_MENUITEM_MAIN_FIND },\r
+       {  7, IDM_SEARCH_NEXT, 0, MSG_ID_MENUITEM_MAIN_FIND_NEXT },\r
+       {  8, IDM_SEARCH_PREV, 0, MSG_ID_MENUITEM_MAIN_FIND_PREV },\r
+};\r
+\r
+static MenuMsgRes aMDToolMenu[] = {\r
+       {  0, IDM_DETAILS_HSCROLL, MF_CHECKED, MSG_ID_MENUITEM_TOOL_WRAP },\r
+       // 1 is not defined\r
+       {  2, IDM_ABOUT,           0,          MSG_ID_MENUITEM_TOOL_ABOUT },\r
+       {  3, IDM_EXIT,            0,          MSG_ID_MENUITEM_TOOL_EXIT },\r
+};\r
+\r
+///////////////////////////////////////////////////////\r
+// Toolbar definitions\r
+///////////////////////////////////////////////////////\r
+\r
+#define NUM_TOOLBAR_BMP 12\r
+\r
+#define NUM_MS_TOOLTIP 1\r
+LPTSTR pMSToolTip[] = {\r
+       NULL, // MSG_TOOLTIPS_NEWMEMO,\r
+};\r
+\r
+#define NUM_MD_TOOLTIP 6\r
+LPTSTR pMDToolTip[] = {\r
+       NULL, // MSG_TOOLTIPS_RETURNLIST,\r
+       NULL, //MSG_TOOLTIPS_SAVE,\r
+       TEXT(""),\r
+       TEXT(""),\r
+       NULL, // MSG_TOOLTIPS_INSDATE1,\r
+       NULL, // MSG_TOOLTIPS_INSDATE2,\r
+};\r
+\r
+///////////////////////////////////////////////////////\r
+// methods\r
+///////////////////////////////////////////////////////\r
+\r
+void PocketPCPlatform::Create(HWND hWnd, HINSTANCE hInst)\r
+{\r
+       // menubar for Tree view\r
+       SHMENUBARINFO mbi;\r
+       memset(&mbi, 0, sizeof(SHMENUBARINFO));\r
+       mbi.cbSize = sizeof(SHMENUBARINFO);\r
+       mbi.hwndParent = hWnd;\r
+       mbi.nToolBarId = IDM_MAIN_MENU;\r
+       mbi.hInstRes =hInst;\r
+#if defined(FOR_VGA)\r
+       mbi.nBmpId = IDB_TOOLBAR_LARGE;\r
+#else\r
+       mbi.nBmpId = IDB_TOOLBAR;\r
+#endif\r
+       mbi.cBmpImages = NUM_TOOLBAR_BMP;\r
+       if (!SHCreateMenuBar(&mbi)) {\r
+               MessageBox(hWnd, TEXT("SHCreateMenuBar failed."), TEXT("DEBUG"), MB_OK);\r
+       }\r
+       hMSCmdBar = mbi.hwndMB;\r
+\r
+       TBBUTTONINFO tbi;\r
+       memset(&tbi, 0, sizeof(&tbi));\r
+       tbi.cbSize = sizeof(tbi);\r
+       tbi.dwMask = TBIF_TEXT;\r
+\r
+       tbi.pszText = (LPTSTR)MSG_MENU_NOTE;\r
+       tbi.cchText = _tcslen(MSG_MENU_NOTE);\r
+       SendMessage(hMSCmdBar, TB_SETBUTTONINFO, (WPARAM)(INT)IDM_EDIT_MEMO, (LPARAM)&tbi);\r
+\r
+       tbi.pszText = (LPTSTR)MSG_MENU_TOOL;\r
+       tbi.cchText = _tcslen(MSG_MENU_TOOL);\r
+       SendMessage(hMSCmdBar, TB_SETBUTTONINFO, (WPARAM)(INT)IDM_MENUITEM3, (LPARAM)&tbi);\r
+\r
+       pMSToolTip[0] = (LPTSTR)MSG_TOOLTIPS_NEWMEMO;\r
+       SendMessage(hMSCmdBar, TB_SETTOOLTIPS, (WPARAM)NUM_MS_TOOLTIP, (LPARAM)pMSToolTip);\r
+\r
+       //////////////////////////\r
+       // create menu items\r
+\r
+       // hMenu is not created when default menu item is empty, leave only one separator.\r
+       OverrideMenuTitle(SHGetSubMenu(hMSCmdBar, IDM_EDIT_MEMO), aMSMemoMenu, sizeof(aMSMemoMenu) / sizeof(MenuMsgRes));\r
+       OverrideMenuTitle(SHGetSubMenu(hMSCmdBar, IDM_MENUITEM3), aMSToolMenu, sizeof(aMSToolMenu) / sizeof(MenuMsgRes));\r
+       OverrideMenuTitle(SHGetSubMenu(hMSCmdBar, IDM_MS_BOOKMARK), aMSBookmarkMenu, sizeof(aMSBookmarkMenu) / sizeof(MenuMsgRes));\r
+\r
+       ////////////////////--\r
+\r
+       // menubar for edit view\r
+       memset(&mbi, 0, sizeof(SHMENUBARINFO));\r
+       mbi.cbSize = sizeof(SHMENUBARINFO);\r
+       mbi.hwndParent = hWnd;\r
+       mbi.nToolBarId = IDM_DETAILS_MENU;\r
+       mbi.hInstRes =hInst;\r
+#if defined(FOR_VGA)\r
+       mbi.nBmpId = IDB_TOOLBAR_LARGE;\r
+#else\r
+       mbi.nBmpId = IDB_TOOLBAR;\r
+#endif\r
+       mbi.cBmpImages = NUM_TOOLBAR_BMP;\r
+       if (!SHCreateMenuBar(&mbi)) {\r
+               MessageBox(hWnd, TEXT("SHCreateMenuBar failed."), TEXT("DEBUG"), MB_OK);\r
+       }\r
+       hMDCmdBar = mbi.hwndMB;\r
+\r
+       pMDToolTip[0] = (LPTSTR)MSG_TOOLTIPS_RETURNLIST;\r
+       pMDToolTip[1] = (LPTSTR)MSG_TOOLTIPS_SAVE;\r
+       pMDToolTip[4] = (LPTSTR)MSG_TOOLTIPS_INSDATE1;\r
+       pMDToolTip[5] = (LPTSTR)MSG_TOOLTIPS_INSDATE2;\r
+       SendMessage(hMDCmdBar, TB_SETTOOLTIPS, (WPARAM)NUM_MD_TOOLTIP, (LPARAM)pMDToolTip);\r
+\r
+       OverrideMenuTitle(SHGetSubMenu(hMDCmdBar, IDM_EDIT_MEMO), aMDEditMenu, sizeof(aMDEditMenu) / sizeof(MenuMsgRes));\r
+       OverrideMenuTitle(SHGetSubMenu(hMDCmdBar, IDM_DETAILS_TOOL), aMDToolMenu, sizeof(aMDToolMenu) / sizeof(MenuMsgRes));\r
+\r
+       ShowWindow(hMDCmdBar, SW_HIDE);\r
+}\r
+\r
+HMENU PocketPCPlatform::GetMDToolMenu() { return SHGetSubMenu(hMDCmdBar, IDM_DETAILS_TOOL); }\r
+HMENU PocketPCPlatform::GetMSEditMenu() { return SHGetSubMenu(hMSCmdBar, IDM_EDIT_MEMO); }\r
+HMENU PocketPCPlatform::GetMSBookMarkMenu() { return SHGetSubMenu(hMSCmdBar, IDM_MS_BOOKMARK); }\r
+\r
+void PocketPCPlatform::EnableMenu(UINT uid, BOOL bEnable)\r
+{\r
+       BOOL bSBS = FALSE;\r
+       BOOL bMenu = TRUE;\r
+       HWND hTB;\r
+\r
+       HMENU hMenu;\r
+       switch (uid) {\r
+       case IDM_DECRYPT:\r
+       case IDM_ENCRYPT:\r
+       case IDM_DELETEITEM:\r
+       case IDM_RENAME:\r
+       case IDM_CUT:\r
+       case IDM_COPY:\r
+       case IDM_PASTE:\r
+       case IDM_NEWFOLDER:\r
+       case IDM_GREP:\r
+               hMenu = GetMSEditMenu();\r
+               break;\r
+       case IDM_NEWMEMO:\r
+               bSBS = TRUE;\r
+               hTB = hMSCmdBar;\r
+               hMenu = GetMSEditMenu();\r
+               break;\r
+       case IDM_SAVE:\r
+               bMenu = FALSE;\r
+               bSBS = TRUE;\r
+               hTB = hMDCmdBar;\r
+               break;\r
+       default:\r
+               return;\r
+       }\r
+\r
+       if (bMenu) {\r
+               if (bEnable) {\r
+                       EnableMenuItem(hMenu, uid, MF_BYCOMMAND | MF_ENABLED);\r
+               } else {\r
+                       EnableMenuItem(hMenu, uid, MF_BYCOMMAND | MF_GRAYED);\r
+               }\r
+       }\r
+\r
+       if (bSBS) {\r
+               SendMessage(hTB, TB_ENABLEBUTTON, uid, MAKELONG(bEnable, 0));\r
+       }\r
+}\r
+\r
+void PocketPCPlatform::CheckMenu(UINT uid, BOOL bCheck)\r
+{\r
+       HWND hTB;\r
+       HMENU hMenu = NULL;\r
+       BOOL bCBS = FALSE;\r
+       switch(uid) {\r
+       case IDM_TOGGLEPANE:\r
+               bCBS = TRUE;\r
+               hTB = hMSCmdBar;\r
+               bCheck = !bCheck;\r
+               break;\r
+       case IDM_DETAILS_HSCROLL:\r
+               bCBS = FALSE;\r
+               hMenu = GetMDToolMenu();\r
+               break;\r
+       default:\r
+               return;\r
+       }\r
+\r
+       if (bCBS) {\r
+               SendMessage(hTB, TB_CHECKBUTTON, uid, MAKELONG(bCheck, 0));\r
+       }\r
+       if (hMenu) {\r
+               CheckMenuItem(hMenu, uid, MF_BYCOMMAND | (bCheck ? MF_CHECKED : MF_UNCHECKED));\r
+       }\r
+}\r
+\r
+void PocketPCPlatform::OpenDetailsView()\r
+{\r
+       ShowWindow(hMDCmdBar, SW_SHOW);\r
+       ShowWindow(hMSCmdBar, SW_HIDE);\r
+\r
+       TBBUTTONINFO tbi;\r
+       memset(&tbi, 0, sizeof(&tbi));\r
+       tbi.cbSize = sizeof(tbi);\r
+       tbi.dwMask = TBIF_TEXT;\r
+\r
+       tbi.pszText = (LPTSTR)MSG_MENU_TOOL;\r
+       tbi.cchText = _tcslen(MSG_MENU_TOOL);\r
+       SendMessage(hMDCmdBar, TB_SETBUTTONINFO, (WPARAM)(INT)IDM_DETAILS_TOOL, (LPARAM)&tbi);\r
+\r
+       tbi.pszText = (LPTSTR)MSG_MENU_EDIT;\r
+       tbi.cchText = _tcslen(MSG_MENU_EDIT);\r
+       SendMessage(hMDCmdBar, TB_SETBUTTONINFO, (WPARAM)(INT)IDM_EDIT_MEMO, (LPARAM)&tbi);\r
+\r
+}\r
+\r
+void PocketPCPlatform::CloseDetailsView()\r
+{\r
+       ShowWindow(hMDCmdBar, SW_HIDE);\r
+       ShowWindow(hMSCmdBar, SW_SHOW);\r
+}\r
+\r
+void PocketPCPlatform::EnableSearchNext()\r
+{\r
+       SendMessage(hMSCmdBar, TB_SETSTATE, IDM_SEARCH_PREV, MAKELONG(TBSTATE_ENABLED, 0)); \r
+       SendMessage(hMSCmdBar, TB_SETSTATE, IDM_SEARCH_NEXT, MAKELONG(TBSTATE_ENABLED, 0)); \r
+       SendMessage(hMDCmdBar, TB_SETSTATE, IDM_SEARCH_PREV, MAKELONG(TBSTATE_ENABLED, 0)); \r
+       SendMessage(hMDCmdBar, TB_SETSTATE, IDM_SEARCH_NEXT, MAKELONG(TBSTATE_ENABLED, 0)); \r
+}\r
+\r
+void PocketPCPlatform::AdjustUserRect(RECT *r)\r
+{\r
+       // menubar\r
+       RECT rMenuRect;\r
+       GetWindowRect(hMSCmdBar, &rMenuRect);\r
+       DWORD nHOffset = rMenuRect.bottom - rMenuRect.top;\r
+\r
+       r->bottom -= nHOffset - 1;\r
+\r
+       // SIP\r
+       BOOL bStat;\r
+       SipControl sc;\r
+       if (!sc.Init()) return;\r
+       if (!sc.GetSipStat(&bStat)) return;\r
+\r
+       if (bStat) {\r
+               RECT rSip = sc.GetRect();\r
+               DWORD nDelta = g_Property.GetSipSizeDelta();\r
+       \r
+               r->bottom -= (rSip.bottom - rSip.top + nDelta);\r
+       }\r
+}\r
+\r
+///////////////////////////////////////////////////////\r
+//\r
+///////////////////////////////////////////////////////\r
+static MenuMsgRes aMSPopupMenu[] = {\r
+       {  0, IDM_CUT,        0, MSG_ID_MENUITEM_MAIN_CUT },\r
+       {  1, IDM_COPY,       0, MSG_ID_MENUITEM_MAIN_COPY },\r
+       {  2, IDM_PASTE,      0, MSG_ID_MENUITEM_MAIN_PASTE },\r
+       {  3, -1, 0, 0},\r
+       {  4, IDM_DELETEITEM, 0, MSG_ID_MENUITEM_MAIN_DELETE },\r
+       {  5, IDM_RENAME,     0, MSG_ID_MENUITEM_MAIN_RENAME },\r
+       {  6, -1, 0, 0},\r
+       {  7, IDM_ENCRYPT,    0, MSG_ID_MENUITEM_MAIN_ENCRYPT },\r
+       {  8, IDM_DECRYPT,    0, MSG_ID_MENUITEM_MAIN_DECRYPT },\r
+\r
+};\r
+\r
+HMENU PocketPCPlatform::LoadSelectViewPopupMenu()\r
+{\r
+       HMENU hMenu = CreatePopupMenu();\r
+       OverrideMenuTitle(hMenu, aMSPopupMenu, sizeof(aMSPopupMenu) / sizeof(MenuMsgRes));\r
+       return hMenu;\r
+}\r
+\r
+static MenuMsgRes aMDPopupMenu[] = {\r
+       { 0, IDM_CUT,      0, MSG_ID_MENUITEM_MAIN_CUT },\r
+       { 1, IDM_COPY,     0, MSG_ID_MENUITEM_MAIN_COPY },\r
+       { 2, IDM_PASTE,    0, MSG_ID_MENUITEM_MAIN_PASTE },\r
+       { 3, -1, 0, 0},\r
+       { 4, IDM_INSDATE1, 0, MSG_ID_TOOLTIPS_INSDATE1 },\r
+       { 5, IDM_INSDATE2, 0, MSG_ID_TOOLTIPS_INSDATE2 },\r
+};\r
+\r
+HMENU PocketPCPlatform::LoadDetailsViewPopupMenu()\r
+{\r
+       HMENU hMenu = CreatePopupMenu();\r
+       OverrideMenuTitle(hMenu, aMDPopupMenu, sizeof(aMDPopupMenu) / sizeof(MenuMsgRes));\r
+       return hMenu;\r
+}\r
+\r
+#endif // PLATFORM_PKTPC
\ No newline at end of file
diff --git a/Src/PocketPCPlatform.h b/Src/PocketPCPlatform.h
new file mode 100644 (file)
index 0000000..bff07c1
--- /dev/null
@@ -0,0 +1,45 @@
+#ifndef POCKETPCPLATFORM_H\r
+#define POCKETPCPLATFORM_H\r
+#if defined(PLATFORM_PKTPC)\r
+\r
+#define PLATFORM_TYPE PocketPCPlatform\r
+\r
+#define SHGetMenu(hWndMB)  (HMENU)SendMessage((hWndMB), SHCMBM_GETMENU, (WPARAM)0, (LPARAM)0)\r
+#define SHGetSubMenu(hWndMB,ID_MENU) (HMENU)SendMessage((hWndMB), SHCMBM_GETSUBMENU, (WPARAM)0, (LPARAM)ID_MENU)\r
+#define SHSetSubMenu(hWndMB,ID_MENU) (HMENU)SendMessage((hWndMB), SHCMBM_SETSUBMENU, (WPARAM)0, (LPARAM)ID_MENU)\r
+\r
+class PocketPCPlatform : public PlatformLayer {\r
+public:\r
+       HWND hMSCmdBar;\r
+       HWND hMDCmdBar;\r
+\r
+       void Create(HWND hWnd, HINSTANCE hInst);\r
+\r
+       HMENU GetMDToolMenu();\r
+       HMENU GetMSEditMenu();\r
+       HMENU GetMSBookMarkMenu();\r
+\r
+       void EnableMenu(UINT uid, BOOL bEnable);\r
+       void EnableSearchNext();\r
+       void CheckMenu(UINT uid, BOOL bCheck);\r
+\r
+       void OpenDetailsView();\r
+       void CloseDetailsView();\r
+\r
+       void AdjustUserRect(RECT *r);\r
+\r
+       void ShowStatusBar(BOOL bShow) {/* nop */}\r
+       void SetStatusIndicator(DWORD nPos, LPCTSTR pText, BOOL bDisp) { /* nop */ }\r
+       WORD GetStatusBarHeight() { return 0; }\r
+       void ResizeStatusBar(WPARAM wParam, LPARAM lParam) { /* nop */ }\r
+       void GetStatusWindowRect(RECT *pRect);\r
+\r
+       static PocketPCPlatform *PlatformFactory() { return new PocketPCPlatform(); }\r
+\r
+       static HMENU LoadSelectViewPopupMenu();\r
+       static HMENU LoadDetailsViewPopupMenu();\r
+};\r
+\r
+#endif\r
+\r
+#endif\r
diff --git a/Src/Property.cpp b/Src/Property.cpp
new file mode 100644 (file)
index 0000000..67dbefb
--- /dev/null
@@ -0,0 +1,1285 @@
+#include <windows.h>\r
+#include <commctrl.h>\r
+#include <tchar.h>\r
+#if defined(PLATFORM_WIN32)\r
+#include <stdio.h>\r
+#endif\r
+#if defined(PLATFORM_BE500)\r
+#include <GetDisk.h>\r
+#endif\r
+#include <expat.h>\r
+\r
+#include "Tombo.h"\r
+#include "Property.h"\r
+#include "resource.h"\r
+#include "FileSelector.h"\r
+#include "UniConv.h"\r
+#include "PasswordManager.h"\r
+#include "Message.h"\r
+#include "DialogTemplate.h"\r
+#include "TString.h"\r
+#include "PropertyPage.h"\r
+#include "TomboPropertyTab.h"\r
+#include "File.h"\r
+#include "AutoPtr.h"\r
+#include "List.h"\r
+#include "TomboURI.h"\r
+#include "Repository.h"\r
+#include "VarBuffer.h"\r
+#include "RepositoryImpl.h"\r
+\r
+//////////////////////////////////////////\r
+// Attribute definitions\r
+\r
+#define TOMBO_PROP_VERSION "1.16"\r
+#define PROP_FILE_NAME TEXT("tomboprops.xml")\r
+#define PROP_TMP_FILE_NAME TEXT("tomboprops.xml~")\r
+\r
+#define TOMBO_MAIN_KEY TEXT("Software\\flatfish\\Tombo")\r
+#define TOPDIR_ATTR_NAME TEXT("TopDir")\r
+#define USEYAE_ATTR_NAME TEXT("UseYAEdit")\r
+#define BOOKMARK_ATTR_NAME TEXT("BookMark")\r
+#define SEARCHHIST_ATTR_NAME TEXT("SearchHistory")\r
+#define TOPDIRHIST_ATTR_NAME TEXT("TopDirHistory")\r
+#define REBARHIST_ATTR_NAME TEXT("RebarPos")\r
+\r
+//////////////////////////////////////////\r
+// property pages\r
+\r
+#if defined(PLATFORM_PKTPC) || defined(PLATFORM_WM5)\r
+#define PROPTAB_PAGES 10\r
+#else\r
+#define PROPTAB_PAGES 8\r
+#endif\r
+\r
+//////////////////////////////////////////\r
+// default values\r
+\r
+#if defined(PLATFORM_WIN32)\r
+#define MEMO_TOP_DIR TEXT("c:\\My Documents\\Pocket_PC My Documents\\TomboRoot")\r
+#else\r
+#define MEMO_TOP_DIR TEXT("\\My Documents\\TomboRoot")\r
+#endif\r
+\r
+#if defined(PLATFORM_BE500)\r
+#define TOMBO_ROOT_SUFFIX TEXT("\\TomboRoot")\r
+#endif\r
+\r
+#define DEFAULTDATEFORMAT1 TEXT("%y/%M/%d")\r
+#define DEFAULTDATEFORMAT2 TEXT("%h:%m:%s")\r
+\r
+//////////////////////////////////////////\r
+class RepositoryImpl;\r
+\r
+static HKEY GetTomboRootKey();\r
+\r
+static BOOL SetSZToReg(HKEY hKey, LPCTSTR pAttr, LPCTSTR pValue);\r
+static BOOL SetDWORDToReg(HKEY hKey, LPCTSTR pAttr, DWORD nValue);\r
+static BOOL SetMultiSZToReg(HKEY hKey, LPCTSTR pAttr, LPCTSTR pValue, DWORD nSize);\r
+\r
+static DWORD GetDWORDFromReg(HKEY hKey, LPCTSTR pAttr, DWORD nDefault);\r
+static LPTSTR GetMultiSZFromReg(HKEY hKey, LPCTSTR pAttr);\r
+static BOOL GetSZFromReg(HKEY hKey, LPCTSTR pAttr, LPTSTR pBuf, DWORD nBuf, LPCTSTR pDefault);\r
+static LPTSTR GetAllocSZFromReg(HKEY hKey, LPCTSTR pAttr);\r
+\r
+static DWORD CountMultiSZLen(LPCTSTR pData);\r
+\r
+static BOOL MakeFont(HFONT *phFont, LPCTSTR pName, DWORD nSize, BYTE bQuality);\r
+\r
+//////////////////////////////////////////\r
+// property definitions\r
+//////////////////////////////////////////\r
+\r
+struct PropListNum {\r
+       DWORD nPropId;\r
+       LPCTSTR pAttrName;\r
+       DWORD nDefault;\r
+} propListNum[] = {\r
+       { PROP_N_PASSTIMEOUT,                           TEXT("PassTimeOut"),                            5 },\r
+       { PROP_N_DETAILSVIEW_KEEPCARET,         TEXT("KeepCaret"),                                      FALSE },\r
+       { PROP_NDETAILSVIEW_TABSTOP,            TEXT("Tabstop"),                                        8 },\r
+       { PROP_N_SELECTVIEW_FONTSIZE,           TEXT("SelectViewFontSize"),                     0xFFFFFFFF },\r
+       { PROP_N_SELECTVIEW_FONTQUALITY,        TEXT("SelectViewFontQuality"),          DEFAULT_QUALITY },\r
+       { PROP_N_DETAILSVIEW_FONTSIZE,          TEXT("DetailsViewFontSize"),            0xFFFFFFFF },\r
+       { PROP_N_DETAILSVIEW_FONTQUALITY,       TEXT("DetailsViewFontQuality"),         DEFAULT_QUALITY },\r
+       { PROP_N_AUTOSELECT_MODE,                       TEXT("AutoSelectMode"),                         TRUE },\r
+       { PROP_N_SINGLECLICK_MODE,                      TEXT("SingleClickMode"),                        TRUE },\r
+       { PROP_N_USE_TWO_PANE,                          TEXT("UseTwoPane"),                                     TRUE },\r
+       { PROP_N_KEEP_TITLE,                            TEXT("KeepTitle"),                                      FALSE },\r
+#if defined(PLATFORM_PKTPC) || defined(PLATFORM_WIN32) || defined(PLATFORM_WM5)\r
+       { PROP_N_SWITCH_WINDOW_TITLE,           TEXT("SwitchWindowTitle"),                      TRUE },\r
+#endif\r
+#if defined(PLATFORM_PKTPC) || defined(PLATFORM_WM5)\r
+       { PROP_N_APP_BUTTON1,                           TEXT("AppButton1"),                                     APPBUTTON_ACTION_DISABLE },\r
+       { PROP_N_APP_BUTTON2,                           TEXT("AppButton2"),                                     APPBUTTON_ACTION_DISABLE },\r
+       { PROP_N_APP_BUTTON3,                           TEXT("AppButton3"),                                     APPBUTTON_ACTION_DISABLE },\r
+       { PROP_N_APP_BUTTON4,                           TEXT("AppButton4"),                                     APPBUTTON_ACTION_DISABLE },\r
+       { PROP_N_APP_BUTTON5,                           TEXT("AppButton5"),                                     APPBUTTON_ACTION_DISABLE },\r
+       { PROP_N_SIPSIZE_DELTA,                         TEXT("SipSizeDelta"),                           0},\r
+#endif\r
+       { PROP_N_CODEPAGE,                                      TEXT("CodePage"),                                       0 },\r
+#if defined(PLATFORM_PKTPC) || defined(PLATFORM_WM5)\r
+       { PROP_N_DISABLEEXTRAACTIONBUTTON,      TEXT("DisableExtraActionButton"),       0},\r
+#endif\r
+#if defined(PLATFORM_HPC) || defined(PLATFORM_WIN32)\r
+       { PROP_N_HIDESTATUSBAR,                         TEXT("HideStatusBar"),                          0 },\r
+#endif\r
+#if defined(PLATFORM_WIN32)\r
+       { PROP_N_STAYTOPMOST,                           TEXT("StayTopMost"),                            0 },\r
+       { PROP_N_HIDEREBAR,                                     TEXT("HideRebar"),                                      0 },\r
+#endif\r
+       { PROP_N_WRAPTEXT,                                      TEXT("WrapText"),                                       1 },\r
+       { PROP_N_OPENREADONLY,                          TEXT("OpenReadOnly"),                           FALSE },\r
+       { PROP_N_DISABLESAVEDLG,                        TEXT("DisableSaveDlg"),                         FALSE },\r
+       { PROP_N_USEASSOC,                                      TEXT("UseSoftwareAssoc"),                       FALSE },\r
+       { PROP_N_SAFEFILENAME,                          TEXT("UseSafeFileName"),                        FALSE },\r
+#if (defined(PLATFORM_PKTPC) || defined(PLATFORM_WM5)) && defined(FOR_VGA)\r
+       { PROP_N_TOMBO_WINSIZE3,                        TEXT("WinSize3"),                                       0xFFFF },\r
+#endif\r
+       { PROP_N_KEEP_LAST_OPEN,                        TEXT("UseLastOpenNote"),                        FALSE },\r
+       { PROP_N_USE_YAE,                                       TEXT("UseYAE"),                                         FALSE },\r
+       { PROP_N_DISABLE_YAE,                           TEXT("DisableYAE"),                                     FALSE },\r
+       { 0xFFFFFFFF,                                           NULL,                                                           NULL},\r
+};\r
+\r
+struct PropListStr {\r
+       DWORD nPropId;\r
+       LPCTSTR pAttrName;\r
+       LPCTSTR pDefault;\r
+} propListStr[] = {\r
+       { PROP_S_TOPDIR,                                        TOPDIR_ATTR_NAME,                                       NULL }, \r
+       { PROP_S_SELECTVIEW_FONTNAME,           TEXT("SelectViewFontName"),                     TEXT("") },\r
+       { PROP_S_DETAILSVIEW_FONTNAME,          TEXT("DetailsViewFontName"),            TEXT("") },\r
+       { PROP_S_DETAILSVIEW_DATEFORMAT1,       TEXT("DateFormat1"),                            DEFAULTDATEFORMAT1 },\r
+       { PROP_S_DETAILSVIEW_DATEFORMAT2,       TEXT("DateFormat2"),                            DEFAULTDATEFORMAT2 },\r
+       { PROP_S_DEFAULTNOTE,                           TEXT("DefaultNote"),                            TEXT("") },\r
+       { PROP_S_EXTAPP1,                                       TEXT("ExtApp1"),                                        TEXT("") },\r
+       { PROP_S_EXTAPP2,                                       TEXT("ExtApp2"),                                        TEXT("") },\r
+       { PROP_S_WINSIZE,                                       TEXT("WinSize2"),                                       NULL }, \r
+       { PROP_S_LAST_OPEN_URI,                         TEXT("LastOpenURI"),                            TEXT("") },\r
+       { 0xFFFFFFFF,                                           NULL,                                                           NULL },\r
+};\r
+\r
+//////////////////////////////////////////\r
+// get message string\r
+//////////////////////////////////////////\r
+\r
+LPCTSTR GetString(UINT nID)\r
+{\r
+       static TCHAR buf[MESSAGE_MAX_SIZE];\r
+       LoadString(g_hInstance, nID, buf, MESSAGE_MAX_SIZE);\r
+       return buf;\r
+}\r
+\r
+//////////////////////////////////////////\r
+// ctor\r
+//////////////////////////////////////////\r
+\r
+Property::Property() : pCmdlineAssignedTopDir(NULL), pBookMark(NULL), pSearchHistory(NULL), pTopDirHistory(NULL), \r
+       pDefaultRep(NULL), pRepos(NULL), nNumRepos(0)\r
+#if defined(PLATFORM_HPC)\r
+       ,pCmdBarInfo(NULL)\r
+#endif\r
+{\r
+       bLoad = FALSE;\r
+       bNeedAsk = TRUE;\r
+\r
+       for (DWORD i = 0; i < NUM_PROPS_STR; i++) {\r
+               pPropsStr[i] = NULL;\r
+       }\r
+\r
+       SetTopDir(TEXT(""));\r
+       SetDefaultNote(TEXT(""));\r
+}\r
+\r
+Property::~Property()\r
+{\r
+       DWORD i;\r
+       for (i = 0; i < NUM_PROPS_STR; i++) {\r
+               delete [] pPropsStr[i];\r
+       }\r
+\r
+       for (i = 0; i < nNumRepos; i++) {\r
+               delete pRepos[i];\r
+       }\r
+       delete [] pRepos;\r
+\r
+       delete [] pCmdlineAssignedTopDir;\r
+       delete [] pBookMark;\r
+       delete [] pSearchHistory;\r
+       delete [] pTopDirHistory;\r
+#if defined(PLATFORM_HPC)\r
+       delete [] pCmdBarInfo;\r
+#endif\r
+}\r
+\r
+//////////////////////////////////////////\r
+// \r
+//////////////////////////////////////////\r
+\r
+BOOL Property::SetStringProperty(DWORD nPropId, LPCTSTR pValue)\r
+{\r
+       delete[] pPropsStr[nPropId];\r
+       if (pValue == NULL) {\r
+               pPropsStr[nPropId] = NULL;\r
+               return TRUE;\r
+       }\r
+       if ((pPropsStr[nPropId] = StringDup(pValue)) == NULL) return FALSE;\r
+       return TRUE;\r
+}\r
+\r
+//////////////////////////////////////////\r
+// topdir\r
+//////////////////////////////////////////\r
+\r
+LPCTSTR Property::GetTomboRoot()\r
+{\r
+       if (pCmdlineAssignedTopDir != NULL && _tcslen(pCmdlineAssignedTopDir) > 0) {\r
+               return pCmdlineAssignedTopDir;\r
+       }\r
+       return GetTopDir();\r
+}\r
+\r
+//////////////////////////////////////////\r
+// font\r
+//////////////////////////////////////////\r
+\r
+HFONT Property::SelectViewFont()\r
+{\r
+       HFONT hFont = NULL;\r
+       MakeFont(&hFont, GetSelectViewFontName(), GetSelectViewFontSize(), (BYTE)GetSelectViewFontQuality());\r
+       return hFont;\r
+}\r
+\r
+HFONT Property::DetailsViewFont()\r
+{\r
+       HFONT hFont = NULL;\r
+       MakeFont(&hFont, GetDetailsViewFontName(), GetDetailsViewFontSize(), (BYTE)GetDetailsViewFontQuality());\r
+       return hFont;\r
+}\r
+\r
+//////////////////////////////////////////\r
+// Popup property dialog\r
+//////////////////////////////////////////\r
+\r
+DWORD Property::Popup(HINSTANCE hInst, HWND hWnd, const TomboURI *pCurrentSelectedURI)\r
+{\r
+       TString sSelPath;\r
+       if (pCurrentSelectedURI == NULL) {\r
+               sSelPath.Set(TEXT(""));\r
+       } else {\r
+               sSelPath.Set(pCurrentSelectedURI->GetFullURI());\r
+       }\r
+\r
+       PropertyTab *pages[PROPTAB_PAGES];\r
+       FolderTab pgFolder(this);\r
+       DefaultNoteTab pgDefNote(this, sSelPath.Get());\r
+       PassTimeoutTab pgTimeout(this);\r
+       FontTab pgFont(this);\r
+       DateFormatTab pgDate(this);\r
+       KeepCaretTab pgKeepCaret(this);\r
+#if defined(PLATFORM_PKTPC) || defined(PLATFORM_WM5)\r
+       AppButtonTab pgAppButton(this);\r
+       SipTab pgSip(this);\r
+#endif\r
+       CodepageTab pgCodepage(this);\r
+#if !defined(PLATFORM_PSPC)\r
+       ExtAppTab pgExtApp(this);\r
+#endif\r
+\r
+       DWORD n = 0;\r
+\r
+       pages[n++] = &pgFolder;\r
+       pages[n++] = &pgDefNote;\r
+       pages[n++] = &pgTimeout;\r
+       pages[n++] = &pgFont;\r
+       pages[n++] = &pgDate;\r
+       pages[n++] = &pgKeepCaret;\r
+#if !defined(PLATFORM_PSPC)\r
+       pages[n++] = &pgExtApp;\r
+#endif\r
+#if defined(PLATFORM_PKTPC) || defined(PLATFORM_WM5)\r
+       pages[n++] = &pgAppButton;\r
+       pages[n++] = &pgSip;\r
+#endif\r
+       pages[n++] = &pgCodepage;\r
+\r
+       PropertyPage pp;\r
+       if (pp.Popup(hInst, hWnd, pages, n, MSG_PROPTAB_TITLE, MAKEINTRESOURCE(IDI_TOMBO)) == IDOK) {\r
+               ////////////////////////////////////\r
+               // sync Topdir <-> rep array settings\r
+               // XXXX: this code are temporary till changing property dialog\r
+               LPCTSTR pTopDir = GetTopDir();\r
+               for (DWORD i = 0; i < GetNumSubRepository(); i++) {\r
+                       RepositoryImpl *pImpl = pRepos[i];\r
+                       if (pImpl->GetRepositoryType() == TOMBO_REPO_SUBREPO_TYPE_LOCALFILE && _tcscmp(pImpl->GetRepositoryName(), TEXT("default")) == 0) {\r
+                               LocalFileRepository *pDefaultRep = (LocalFileRepository*)pImpl;\r
+                               pDefaultRep->SetTopDir(pTopDir);\r
+                       }\r
+               }\r
+               ////////////////////////////////////\r
+\r
+               if (!Save()) {\r
+                       MessageBox(NULL, MSG_SAVE_DATA_FAILED, TEXT("ERROR"), MB_ICONSTOP | MB_OK);\r
+               }\r
+               return IDOK;\r
+       }\r
+       return IDCANCEL;\r
+}\r
+\r
+//////////////////////////////////////////\r
+// load properties\r
+//////////////////////////////////////////\r
+\r
+void GetNameAndValue(const XML_Char **atts, LPTSTR *ppKey, LPTSTR *ppValue)\r
+{\r
+       *ppKey = NULL;\r
+       *ppValue = NULL;\r
+\r
+       int i = 0;\r
+       while (atts[i]) {\r
+               if (wcscmp((LPCWSTR)atts[i], L"name") == 0) {\r
+                       *ppKey = ConvWCharToTChar((LPCWSTR)atts[i + 1]);\r
+               } else if (wcscmp((LPCWSTR)atts[i], L"value") == 0) {\r
+                       *ppValue = ConvWCharToTChar((LPCWSTR)atts[i + 1]);\r
+               }\r
+               i+= 2;\r
+       }\r
+}\r
+\r
+PropListNum *SerachNumAttrName(LPTSTR pAttr)\r
+{\r
+       PropListNum *p = propListNum;\r
+       while (p->nPropId != 0xFFFFFFFF) {\r
+               if (_tcscmp(pAttr, p->pAttrName) == 0) {\r
+                       return p;\r
+               }\r
+               p++;\r
+       }\r
+       return NULL;\r
+}\r
+\r
+PropListStr *SerachStrAttrName(LPTSTR pAttr)\r
+{\r
+       PropListStr *p = propListStr;\r
+       while (p->nPropId != 0xFFFFFFFF) {\r
+               if (_tcscmp(pAttr, p->pAttrName) == 0) {\r
+                       return p;\r
+               }\r
+               p++;\r
+       }\r
+       return NULL;\r
+}\r
+\r
+struct PropFileParseInfo {\r
+       Property *pProperty;\r
+\r
+       LPTSTR pMultiName;\r
+       List lMultiItem;\r
+\r
+       BOOL bInTomboRoot;\r
+\r
+       TVector<RepositoryImpl*> vSubRepos;\r
+       LocalFileRepository *pDefaultRep;\r
+\r
+       PropFileParseInfo() : pMultiName(NULL), bInTomboRoot(FALSE), pDefaultRep(NULL) {}\r
+       ~PropFileParseInfo() { delete[] pMultiName; }\r
+\r
+       void SetMultiName(LPTSTR p) { delete[] pMultiName; pMultiName = p; }\r
+};\r
+\r
+static void StartElement(void *userData, const XML_Char *name, const XML_Char **atts)\r
+{\r
+       PropFileParseInfo *pParseInfo = (PropFileParseInfo*)userData;\r
+       Property *pProperty = pParseInfo->pProperty;\r
+\r
+       LPCWSTR pName = (LPCWSTR)name;\r
+\r
+       LPTSTR pKey;\r
+       LPTSTR pValue;\r
+\r
+       if (wcscmp(pName, L"tomboroot") == 0) {\r
+               pParseInfo->bInTomboRoot = TRUE;\r
+       } else if (pParseInfo->bInTomboRoot) {\r
+               RepositoryImpl *pImpl = Repository::CreateSubRepo((LPCWSTR)name, (const WCHAR **)atts);\r
+               if (pImpl != NULL) {\r
+                       pParseInfo->vSubRepos.Add(&pImpl);\r
+               }\r
+               // XXX: in current version, default repository assumed as LocalFileRepository.\r
+               if (_tcscmp(TEXT("default"), pImpl->GetRepositoryName()) == 0) {\r
+                       pParseInfo->pDefaultRep = (LocalFileRepository*)pImpl;\r
+               }\r
+       } else if (wcscmp(pName, L"tomboprop") == 0) {\r
+               // XXXX: NOP in current version\r
+               // for future version, version check will be added.\r
+       } else if (wcscmp(pName, L"num") == 0) {\r
+               GetNameAndValue(atts, &pKey, &pValue);\r
+               PropListNum *p = SerachNumAttrName(pKey);\r
+               if (p != NULL) {\r
+                       DWORD nValue = _ttol(pValue);\r
+                       pProperty->SetNumberPropertyById(p->nPropId, nValue);\r
+               }\r
+               delete [] pKey;\r
+               delete [] pValue;\r
+       } else if (wcscmp(pName, L"str") == 0) {\r
+               GetNameAndValue(atts, &pKey, &pValue);\r
+               PropListStr *p = SerachStrAttrName(pKey);\r
+               if (p != NULL) {\r
+                       pProperty->SetStringPropertyWithBuffer(p->nPropId, pValue);\r
+                       // buffer is managed under Property, so do not delete[] pValue;\r
+               } else {\r
+                       delete [] pValue;\r
+               }\r
+               delete [] pKey;\r
+       } else if (wcscmp(pName, L"multistr") == 0) {\r
+               if (wcscmp((LPCWSTR)atts[0], L"name") == 0) {\r
+                       pParseInfo->SetMultiName(ConvWCharToTChar((LPCWSTR)atts[1]));\r
+               }\r
+       } else if (wcscmp(pName, L"item") == 0) {\r
+               if (wcscmp((LPCWSTR)atts[0], L"value") == 0) {\r
+                       pParseInfo->lMultiItem.Add(ConvWCharToTChar((LPCWSTR)atts[1]));\r
+               }\r
+       }\r
+#if defined(PLATFORM_HPC)\r
+       else if (wcscmp(pName, L"rebar") == 0) {\r
+               GetNameAndValue(atts, &pKey, &pValue);\r
+               LPCOMMANDBANDSRESTOREINFO pCmdBarInfo = new COMMANDBANDSRESTOREINFO[NUM_COMMANDBAR];\r
+               memset(pCmdBarInfo, 0, sizeof(COMMANDBANDSRESTOREINFO) * NUM_COMMANDBAR);\r
+               DWORD wID1, fStyle1, cxRestored1, fMaximized1;\r
+               DWORD wID2, fStyle2, cxRestored2, fMaximized2;\r
+\r
+               if (swscanf(pValue, TEXT("%d,%d,%d,%d,%d,%d,%d,%d"),\r
+                       &wID1, &fStyle1, &cxRestored1, &fMaximized1,\r
+                       &wID2, &fStyle2, &cxRestored2, &fMaximized2) != 8) {\r
+                       // TODO: set default\r
+                       MessageBox(NULL, TEXT("NOT YET"), TEXT("DEBUG"), MB_OK);\r
+               } else {\r
+                       pCmdBarInfo[0].cbSize = pCmdBarInfo[1].cbSize = sizeof(COMMANDBANDSRESTOREINFO);\r
+                       pCmdBarInfo[0].wID = (UINT)wID1;\r
+                       pCmdBarInfo[1].wID = (UINT)wID2;\r
+                       pCmdBarInfo[0].fStyle = (UINT)fStyle1;\r
+                       pCmdBarInfo[1].fStyle = (UINT)fStyle2;\r
+                       pCmdBarInfo[0].cxRestored = (UINT)cxRestored1;\r
+                       pCmdBarInfo[1].cxRestored = (UINT)cxRestored2;\r
+                       pCmdBarInfo[0].fMaximized = (BOOL)fMaximized1;\r
+                       pCmdBarInfo[1].fMaximized = (BOOL)fMaximized2;\r
+                       pProperty->SetCommandbarInfoWithBuffer(pCmdBarInfo);\r
+               }\r
+       }\r
+#endif\r
+}\r
+\r
+static void EndElement(void *userData, const XML_Char *name)\r
+{\r
+       PropFileParseInfo *pParseInfo = (PropFileParseInfo*)userData;\r
+\r
+       if (wcscmp((LPCWSTR)name, L"tomboroot") == 0) {\r
+               pParseInfo->bInTomboRoot = FALSE;\r
+       } else if (wcscmp((LPCWSTR)name, L"multistr") == 0) {\r
+               List *pList = &(pParseInfo->lMultiItem);\r
+\r
+               DWORD n = 0;\r
+               DWORD i = 0;\r
+               HANDLE h = pList->First();\r
+               while (h) {\r
+                       LPTSTR p = (LPTSTR)pList->Value(h);\r
+                       n += _tcslen(p) + 1;\r
+                       i++;\r
+                       h = pList->Next(h);\r
+               }\r
+               if (i == 0) return;\r
+\r
+               LPTSTR pValue = new TCHAR[n + 1];\r
+               LPTSTR p = pValue;\r
+               h = pList->First();\r
+               while (h) {\r
+                       LPTSTR item = (LPTSTR)pList->Value(h);\r
+                       _tcscpy(p, item);\r
+                       p += _tcslen(item) + 1;\r
+\r
+                       delete[] item;\r
+                       h = pList->Next(h);\r
+               }\r
+               *p = TEXT('\0');\r
+\r
+               pList->Clear();\r
+\r
+               if (_tcscmp(pParseInfo->pMultiName, BOOKMARK_ATTR_NAME) == 0) {\r
+                       pParseInfo->pProperty->SetBookMark(pValue);\r
+                       delete[] pValue;\r
+               } else if (_tcscmp(pParseInfo->pMultiName, TOPDIRHIST_ATTR_NAME) == 0) {\r
+                       pParseInfo->pProperty->SetTopDirHist(pValue);\r
+               } else if (_tcscmp(pParseInfo->pMultiName, SEARCHHIST_ATTR_NAME) == 0) {\r
+                       pParseInfo->pProperty->SetSearchHist(pValue);\r
+               } else {\r
+                       delete [] pValue;\r
+               }\r
+       }\r
+}\r
+\r
+BOOL Property::LoadDefaultProperties()\r
+{\r
+       PropListNum *pNum = propListNum;\r
+       while (pNum->nPropId != 0xFFFFFFFF) {\r
+               nPropsNum[pNum->nPropId] = pNum->nDefault;\r
+               pNum++;\r
+       }\r
+\r
+       PropListStr *pPLS = propListStr;\r
+       while (pPLS->nPropId != 0xFFFFFFFF) {\r
+               if (pPLS->pDefault != NULL) {\r
+                       pPropsStr[pPLS->nPropId] = StringDup(pPLS->pDefault);\r
+                       if (pPropsStr[pPLS->nPropId] == NULL) return FALSE;\r
+               } else {\r
+                       pPropsStr[pPLS->nPropId] = NULL;\r
+               }\r
+               pPLS++;\r
+       }\r
+       return TRUE;\r
+}\r
+\r
+BOOL Property::Load()\r
+{\r
+       BOOL bResult = LoadProperties();\r
+\r
+       // Convert topdir value to repository value\r
+       LPCTSTR pTopDir = GetTopDir();\r
+       if (pTopDir != NULL && GetNumSubRepository() == 0) {\r
+               pRepos = new RepositoryImpl*[2];\r
+               nNumRepos = 2;\r
+\r
+               LocalFileRepository *pLocalImpl = new LocalFileRepository();\r
+//             if (!pLocalImpl->Init(TEXT("default"), , pTopDir, bKeepTitle, bKeepCaret, bSafeFileName)) {\r
+               // XXXX : \r
+               if (!pLocalImpl->Init(TEXT("default"), MSG_MEMO, pTopDir, FALSE, FALSE, FALSE)) {\r
+                       return FALSE;\r
+               }\r
+               pRepos[0] = pLocalImpl;\r
+               pDefaultRep = pLocalImpl;\r
+\r
+               VFolderRepository *pVImpl = new VFolderRepository();\r
+               if (!pVImpl->Init(TEXT("@vfolder"), MSG_VIRTUAL_FOLDER)) {\r
+                       return FALSE;\r
+               }\r
+               pRepos[1] = pVImpl;\r
+       }\r
+\r
+       if (!bResult) {\r
+               // set default value\r
+               bNeedAsk = TRUE;\r
+               return LoadDefaultProperties();\r
+       }\r
+       return TRUE;\r
+}\r
+\r
+BOOL Property::LoadProperties()\r
+{\r
+       TCHAR pathbuf[MAX_PATH + 1];\r
+       TCHAR pathbuf2[MAX_PATH + 1];\r
+       GetModuleFileName(NULL, pathbuf, MAX_PATH);\r
+       GetFilePath(pathbuf2, pathbuf);\r
+       TString sPropFile;\r
+       if (!sPropFile.Join(pathbuf2, PROP_FILE_NAME)) return FALSE;\r
+\r
+       File fFile;\r
+       DWORD i;\r
+       if (!fFile.Open(sPropFile.Get(), GENERIC_READ, FILE_SHARE_READ, OPEN_EXISTING)) {\r
+               BOOL bStrict;\r
+               BOOL bResult = LoadFromReg(&bStrict);\r
+               if (bResult) {\r
+                       if (bStrict) {\r
+                               bNeedAsk = FALSE;\r
+                       } else {\r
+                               bNeedAsk = TRUE;\r
+                       }\r
+                       return TRUE;\r
+               } else {\r
+                       return FALSE;\r
+               }\r
+       }\r
+       DWORD nFileSize = fFile.FileSize();\r
+       XML_Parser pParser = XML_ParserCreate(NULL);\r
+       if (pParser == NULL) return FALSE;\r
+\r
+       PropFileParseInfo ppi;\r
+       ppi.pProperty = this;\r
+       if (!ppi.vSubRepos.Init(5, 5)) return FALSE;\r
+\r
+       XML_SetElementHandler(pParser, StartElement, EndElement);\r
+       XML_SetUserData(pParser, &ppi);\r
+\r
+       void *pBuf = XML_GetBuffer(pParser, nFileSize);\r
+       if (pBuf == NULL) return FALSE;\r
+\r
+       if (!fFile.Read((LPBYTE)pBuf, &nFileSize)) return FALSE;\r
+\r
+       for (i = 0; i < NUM_PROPS_STR; i++) {\r
+               delete [] pPropsStr[i];\r
+               pPropsStr[i] = NULL;\r
+       }\r
+\r
+       if (!XML_ParseBuffer(pParser, nFileSize, TRUE)) {\r
+               return FALSE;\r
+       }\r
+       XML_ParserFree(pParser);\r
+\r
+       for (i = 0; i < nNumRepos; i++) {\r
+               delete pRepos[i];\r
+       }\r
+       delete [] pRepos;\r
+\r
+       nNumRepos = ppi.vSubRepos.NumItems();\r
+       pRepos = new RepositoryImpl*[nNumRepos];\r
+       for (i = 0; i < ppi.vSubRepos.NumItems(); i++) {\r
+               RepositoryImpl *pImpl = *ppi.vSubRepos.GetUnit(i);\r
+               pRepos[i] = pImpl;\r
+       }\r
+       pDefaultRep = ppi.pDefaultRep;\r
+\r
+       bNeedAsk = FALSE;\r
+       bLoad = TRUE;\r
+\r
+       return TRUE;\r
+}\r
+\r
+BOOL Property::LoadFromReg(BOOL *pStrict)\r
+{\r
+       DWORD res, typ, siz;\r
+       HKEY hTomboRoot;\r
+\r
+       hTomboRoot = GetTomboRootKey();\r
+       if (hTomboRoot == NULL) return FALSE;\r
+\r
+       *pStrict = TRUE;\r
+\r
+       if (pCmdlineAssignedTopDir) {\r
+               SetTopDir(pCmdlineAssignedTopDir);\r
+       } else {\r
+               TCHAR buf[MAX_PATH];\r
+               siz = sizeof(buf);\r
+               res = RegQueryValueEx(hTomboRoot, TOPDIR_ATTR_NAME, NULL, &typ, (LPBYTE)buf, &siz);\r
+               if (res == ERROR_SUCCESS) {\r
+                       if (!SetTopDir(buf)) return FALSE;\r
+               } else {\r
+#if defined(PLATFORM_BE500)\r
+                       GetUserDiskName(g_hInstance, buf, MAX_PATH);\r
+                       if (_tcslen(buf) + _tcslen(TOMBO_ROOT_SUFFIX) < MAX_PATH - 1) {\r
+                               _tcscat(buf, TOMBO_ROOT_SUFFIX);\r
+                       }\r
+                       if (!SetTopDir(buf)) return FALSE;\r
+#else\r
+                       if (!SetTopDir(MEMO_TOP_DIR)) return FALSE;\r
+#endif\r
+                       *pStrict = FALSE;\r
+               }\r
+       }\r
+\r
+       // load number props.\r
+       PropListNum *pNum = propListNum;\r
+       while (pNum->nPropId != 0xFFFFFFFF) {\r
+               DWORD nVal = GetDWORDFromReg(hTomboRoot, pNum->pAttrName, pNum->nDefault);\r
+               nPropsNum[pNum->nPropId] = nVal;\r
+               pNum++;\r
+       }\r
+\r
+#if !(defined(PLATFORM_WIN32) || defined(PLATFORM_PKTPC) || defined(PLATFORM_WM5))\r
+       SetSwitchWindowTitle(FALSE);\r
+#endif\r
+\r
+       LPTSTR pStr;\r
+\r
+       PropListStr *pPLS = propListStr;\r
+       while (pPLS->nPropId != 0xFFFFFFFF) {\r
+               if (pPLS->nPropId == PROP_S_TOPDIR) { pPLS++; continue; }\r
+\r
+               pStr = GetAllocSZFromReg(hTomboRoot, pPLS->pAttrName);\r
+               if (pStr == NULL) {\r
+                       if (pPLS->pDefault) {\r
+                               pStr = StringDup(pPLS->pDefault);\r
+                       } else {\r
+                               pStr = NULL;\r
+                       }\r
+               }\r
+               delete [] pPropsStr[pPLS->nPropId];\r
+               pPropsStr[pPLS->nPropId] = pStr;\r
+\r
+               pPLS++;\r
+       }\r
+\r
+       delete[] pBookMark;\r
+       pBookMark = GetMultiSZFromReg(hTomboRoot, BOOKMARK_ATTR_NAME);\r
+\r
+       delete [] pSearchHistory;\r
+       pSearchHistory = GetMultiSZFromReg(hTomboRoot, SEARCHHIST_ATTR_NAME); \r
+\r
+       delete [] pTopDirHistory;\r
+       pTopDirHistory = GetMultiSZFromReg(hTomboRoot, TOPDIRHIST_ATTR_NAME);\r
+\r
+\r
+#if defined(PLATFORM_HPC)\r
+       LPCOMMANDBANDSRESTOREINFO pcbi = new COMMANDBANDSRESTOREINFO[NUM_COMMANDBAR];\r
+       siz = sizeof(COMMANDBANDSRESTOREINFO) * NUM_COMMANDBAR;\r
+       res = RegQueryValueEx(hTomboRoot, REBARHIST_ATTR_NAME, 0, \r
+                                               &typ, (LPBYTE)pcbi, &siz);\r
+\r
+       if (siz == NUM_COMMANDBAR * sizeof(COMMANDBANDSRESTOREINFO)) {\r
+               delete []pCmdBarInfo;\r
+               pCmdBarInfo = pcbi;\r
+       }\r
+#endif\r
+       RegCloseKey(hTomboRoot);\r
+       return TRUE;\r
+}\r
+\r
+//////////////////////////////////////////\r
+// save properties\r
+//////////////////////////////////////////\r
+\r
+BOOL SaveMultiSZToFile(File *pFile, LPCTSTR pAttr, LPCTSTR pMValue)\r
+{\r
+       if (pMValue == NULL) return TRUE;\r
+\r
+       const char *pMultiPropHdr = "  <multistr name=\"";\r
+       const char *pMultiPropClose = "\">\n";\r
+       const char *pMultiPropCloseTag = "  </multistr>\n";\r
+       const char *pItemHdr = "    <item value=\"";\r
+       const char *pItemClose = "\"/>\n";\r
+\r
+       DWORD nMultiPropHdr = strlen(pMultiPropHdr);\r
+       DWORD nMultiPropClose = strlen(pMultiPropClose);\r
+       DWORD nMultiPropCloseTag = strlen(pMultiPropCloseTag);\r
+       DWORD nItemHdr = strlen(pItemHdr);\r
+       DWORD nItemClose = strlen(pItemClose);\r
+\r
+       if (!pFile->Write((LPBYTE)pMultiPropHdr, nMultiPropHdr)) return FALSE;\r
+\r
+       char *pName = ConvUnicode2SJIS(pAttr);\r
+       if (pName == NULL) return FALSE;\r
+       if (!pFile->Write((LPBYTE)pName, strlen(pName))) { delete[] pName; return FALSE; }\r
+       delete[] pName;\r
+\r
+       if (!pFile->Write((LPBYTE)pMultiPropClose, nMultiPropClose)) return FALSE;\r
+\r
+       LPCTSTR p = pMValue;\r
+       while(*p) {\r
+               LPCTSTR pTVal = p;\r
+               if (!pFile->Write((LPBYTE)pItemHdr, nItemHdr)) return FALSE;\r
+\r
+               char *pUTFVal = EscapeXMLStr(pTVal);\r
+               if (!pFile->Write((LPBYTE)pUTFVal, strlen(pUTFVal))) { delete[] pUTFVal; return FALSE;}\r
+               delete[] pUTFVal;\r
+\r
+               if (!pFile->Write((LPBYTE)pItemClose, nItemClose)) return FALSE;\r
+               p+= _tcslen(p) + 1;\r
+       }\r
+\r
+       if (!pFile->Write((LPBYTE)pMultiPropCloseTag, nMultiPropCloseTag)) return FALSE;\r
+       return TRUE;\r
+}\r
+\r
+BOOL Property::SaveToFile(File *pFile)\r
+{\r
+       const char *pHeader = \r
+               "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n"\r
+               // TODO: DTD\r
+               "<tomboprop version=\"" TOMBO_PROP_VERSION "\">\n";\r
+\r
+       const char *pFooter = "</tomboprop>\n";\r
+\r
+       if (!pFile->Write((LPBYTE)pHeader, strlen(pHeader))) return FALSE;\r
+\r
+       const char *pNumPropHdr = "  <num name=\"";\r
+       const char *pStrPropHdr = "  <str name=\"";\r
+       const char *pProp2nd = "\" value=\"";\r
+       const char *pPropLst = "\"/>\n";\r
+\r
+       DWORD nNumPropHdr = strlen(pNumPropHdr);\r
+       DWORD nStrPropHdr = strlen(pStrPropHdr);\r
+       DWORD nProp2nd = strlen(pProp2nd);\r
+       DWORD nPropLst = strlen(pPropLst);\r
+       \r
+       char buf[128];\r
+\r
+       const char *pTomboRootStart = "  <tomboroot>\n";\r
+       const char *pTomboRootEnd   = "  </tomboroot>\n";\r
+\r
+       if (!pFile->Write((LPBYTE)pTomboRootStart, strlen(pTomboRootStart))) return FALSE;\r
+       for (DWORD i = 0; i < g_Repository.GetNumOfSubRepository(); i++) {\r
+               LPTSTR pSaveStr = g_Repository.GetSubRepoXMLSaveString(i);\r
+               AutoPointer<TCHAR> ap(pSaveStr);\r
+               if (pSaveStr == NULL) return FALSE;\r
+               char *pSaveStrA = ConvTCharToUTF8(pSaveStr);\r
+               AutoPointer<char> ap2(pSaveStrA);\r
+\r
+               if (!pFile->Write((LPBYTE)pSaveStrA, strlen(pSaveStrA))) return FALSE;\r
+       }\r
+       if (!pFile->Write((LPBYTE)pTomboRootEnd, strlen(pTomboRootEnd))) return FALSE;\r
+\r
+\r
+       // save number props.\r
+       PropListNum *pNum = propListNum;\r
+       while (pNum->nPropId != 0xFFFFFFFF) {\r
+\r
+               if (!pFile->Write((LPBYTE)pNumPropHdr, nNumPropHdr)) return FALSE;\r
+\r
+               char *pName = ConvUnicode2SJIS(pNum->pAttrName);\r
+               if (pName == NULL) return FALSE;\r
+               if (!pFile->Write((LPBYTE)pName, strlen(pName))) { delete[] pName; return FALSE; }\r
+               delete[] pName;\r
+\r
+               if (!pFile->Write((LPBYTE)pProp2nd, nProp2nd)) return FALSE;\r
+\r
+               DWORD nValue = nPropsNum[pNum->nPropId];\r
+               sprintf(buf, "%d", nValue);\r
+               if (!pFile->Write((LPBYTE)buf, strlen(buf))) return FALSE;\r
+\r
+               if (!pFile->Write((LPBYTE)pPropLst, nPropLst)) return FALSE;\r
+\r
+               pNum++;\r
+       }\r
+\r
+       // save string props.\r
+       PropListStr *pStr = propListStr;\r
+       while (pStr->nPropId != 0xFFFFFFFF) {\r
+               if (pPropsStr[pStr->nPropId] == NULL) {\r
+                       pStr++;\r
+                       continue;\r
+               }\r
+\r
+               if (!pFile->Write((LPBYTE)pStrPropHdr, nStrPropHdr)) return FALSE;\r
+\r
+               char *pName = ConvUnicode2SJIS(pStr->pAttrName);\r
+               if (pName == NULL) return FALSE;\r
+               if (!pFile->Write((LPBYTE)pName, strlen(pName))) { delete[] pName; return FALSE; }\r
+               delete[] pName;\r
+\r
+               if (!pFile->Write((LPBYTE)pProp2nd, nProp2nd)) return FALSE;\r
+\r
+               char *pVal = EscapeXMLStr(pPropsStr[pStr->nPropId]);\r
+               if (pVal == NULL) return FALSE;\r
+               if (!pFile->Write((LPBYTE)pVal, strlen(pVal))) { delete[] pVal; return FALSE; }\r
+               delete[] pVal;\r
+\r
+               if (!pFile->Write((LPBYTE)pPropLst, nPropLst)) return FALSE;\r
+               pStr++;\r
+       }\r
+\r
+       // save multi value\r
+       if (!SaveMultiSZToFile(pFile, BOOKMARK_ATTR_NAME, pBookMark)) return FALSE;\r
+       if (!SaveMultiSZToFile(pFile, SEARCHHIST_ATTR_NAME, pSearchHistory)) return FALSE;\r
+       if (!SaveMultiSZToFile(pFile, TOPDIRHIST_ATTR_NAME, pTopDirHistory)) return FALSE;\r
+\r
+#if defined(PLATFORM_HPC)\r
+       if (pCmdBarInfo != NULL) {\r
+               LPCOMMANDBANDSRESTOREINFO p1 = pCmdBarInfo;\r
+               LPCOMMANDBANDSRESTOREINFO p2 = pCmdBarInfo + 1;\r
+\r
+               char aCmdBarBuf[1024];\r
+               sprintf(aCmdBarBuf, "%d,%d,%d,%d,%d,%d,%d,%d",\r
+                       p1->wID, p1->fStyle, p1->cxRestored, p1->fMaximized, \r
+                       p2->wID, p2->fStyle, p2->cxRestored, p2->fMaximized);\r
+\r
+               const char *pRebarPropHdr = "  <rebar value=\"";\r
+               if (!pFile->Write((LPBYTE)pRebarPropHdr, strlen(pRebarPropHdr))) return FALSE;\r
+               if (!pFile->Write((LPBYTE)aCmdBarBuf, strlen(aCmdBarBuf))) return FALSE;\r
+               if (!pFile->Write((LPBYTE)pPropLst, nPropLst)) return FALSE;\r
+       }\r
+#endif\r
+\r
+       // footer\r
+       if (!pFile->Write((LPBYTE)pFooter, strlen(pFooter))) return FALSE;\r
+       return TRUE;\r
+}\r
+\r
+BOOL Property::Save()\r
+{\r
+\r
+       TCHAR pathbuf[MAX_PATH + 1];\r
+       TCHAR pathbuf2[MAX_PATH + 1];\r
+       GetModuleFileName(NULL, pathbuf, MAX_PATH);\r
+       GetFilePath(pathbuf2, pathbuf);\r
+       TString sPropFile, sPropFileTmp;\r
+       if (!sPropFile.Join(pathbuf2, PROP_FILE_NAME)) return FALSE;\r
+       if (!sPropFileTmp.Join(pathbuf2, PROP_TMP_FILE_NAME)) return FALSE;\r
+\r
+       File propFile;\r
+       if (!propFile.Open(sPropFileTmp.Get(), GENERIC_WRITE, FILE_SHARE_WRITE, CREATE_ALWAYS)) return FALSE;\r
+\r
+       if (!SaveToFile(&propFile)) {\r
+               return FALSE;\r
+       } else {\r
+               propFile.Close();\r
+               DeleteFile(sPropFile.Get());\r
+               MoveFile(sPropFileTmp.Get(), sPropFile.Get());\r
+       }\r
+       return TRUE;\r
+}\r
+\r
+//////////////////////////////////////////\r
+// Registry operations\r
+//////////////////////////////////////////\r
+\r
+static DWORD GetDWORDFromReg(HKEY hKey, LPCTSTR pAttr, DWORD nDefault)\r
+{\r
+       DWORD siz = sizeof(DWORD);\r
+       DWORD typ;\r
+       DWORD nValue;\r
+       DWORD res = RegQueryValueEx(hKey, pAttr, NULL, &typ, (LPBYTE)&nValue, &siz);\r
+       if (res != ERROR_SUCCESS) {\r
+               return nDefault;\r
+       }\r
+       return nValue;\r
+}\r
+\r
+static BOOL GetSZFromReg(HKEY hKey, LPCTSTR pAttr, LPTSTR pBuf, DWORD nBuf, LPCTSTR pDefault)\r
+{\r
+       DWORD res, siz, typ;\r
+       siz = nBuf;\r
+       res = RegQueryValueEx(hKey, pAttr, NULL, &typ, (LPBYTE)pBuf, &siz);\r
+       if (res != ERROR_SUCCESS) {\r
+               if (res == ERROR_FILE_NOT_FOUND) {\r
+                       _tcscpy(pBuf, pDefault);\r
+                       return TRUE;\r
+               } else {\r
+                       SetLastError(res);\r
+                       return FALSE;\r
+               }\r
+       }\r
+       return TRUE;\r
+}\r
+\r
+static LPTSTR GetAllocSZFromReg(HKEY hKey, LPCTSTR pAttr)\r
+{\r
+       DWORD res, siz, typ;\r
+       siz = 0;\r
+       res = RegQueryValueEx(hKey, pAttr, NULL, &typ, NULL, &siz);\r
+       if (res != ERROR_SUCCESS) {\r
+               SetLastError(res);\r
+               return FALSE;\r
+       }\r
+       LPTSTR p = new TCHAR[siz / sizeof(TCHAR) + 1];\r
+       res = RegQueryValueEx(hKey, pAttr, NULL, &typ, (LPBYTE)p, &siz);\r
+       if (res != ERROR_SUCCESS) {\r
+               SetLastError(res);\r
+               return FALSE;\r
+       }\r
+       return p;\r
+}\r
+\r
+static LPTSTR GetMultiSZFromReg(HKEY hKey, LPCTSTR pAttr)\r
+{\r
+       DWORD res, siz, typ;\r
+       res = RegQueryValueEx(hKey, pAttr, NULL, &typ, NULL, &siz);\r
+       if (res != ERROR_SUCCESS) {\r
+               SetLastError(res);\r
+               return NULL;\r
+       }\r
+\r
+       LPTSTR pBuf;\r
+       DWORD n = siz / sizeof(TCHAR) + 1;\r
+       pBuf = new TCHAR[n];\r
+       if (pBuf == NULL) {\r
+               SetLastError(ERROR_NOT_ENOUGH_MEMORY);\r
+               return NULL;\r
+       }\r
+       memset(pBuf, 0, n * sizeof(TCHAR));\r
+       res = RegQueryValueEx(hKey, pAttr, NULL, &typ, (LPBYTE)pBuf, &siz);\r
+       if (res != ERROR_SUCCESS) {\r
+               delete[] pBuf;\r
+               SetLastError(res);\r
+               return NULL;\r
+       }\r
+       return pBuf;\r
+}\r
+\r
+///////////////////////////////////////////////////\r
+// get font\r
+///////////////////////////////////////////////////\r
+\r
+static BOOL MakeFont(HFONT *phFont, LPCTSTR pName, DWORD nSize, BYTE bQuality)\r
+{\r
+       if (nSize == 0xFFFFFFFF) {\r
+               *phFont = NULL;\r
+               return TRUE;\r
+       }\r
+       LOGFONT lf;\r
+       lf.lfHeight = nSize;\r
+       lf.lfWidth = 0;\r
+       lf.lfEscapement = 0;\r
+       lf.lfOrientation = 0;\r
+       lf.lfWeight = FW_NORMAL;\r
+       lf.lfItalic = FALSE;\r
+       lf.lfUnderline = FALSE;\r
+       lf.lfStrikeOut = FALSE;\r
+       lf.lfCharSet = DEFAULT_CHARSET;\r
+       lf.lfOutPrecision = OUT_DEFAULT_PRECIS;\r
+       lf.lfClipPrecision = CLIP_DEFAULT_PRECIS;\r
+       lf.lfQuality = bQuality;\r
+       lf.lfPitchAndFamily = DEFAULT_PITCH;\r
+       _tcscpy(lf.lfFaceName, pName);\r
+       *phFont = CreateFontIndirect(&lf);\r
+       return *phFont != NULL;\r
+}\r
+\r
+///////////////////////////////////////////////////\r
+// save window size\r
+///////////////////////////////////////////////////\r
+\r
+BOOL Property::SaveWinSize(UINT flags, UINT showCmd, LPRECT pWinRect, WORD nSelectViewWidth)\r
+{\r
+       TCHAR buf[1024];\r
+\r
+       wsprintf(buf, TEXT("%d,%d,%d,%d,%d,%d,%d"), \r
+               flags, showCmd,\r
+               pWinRect->left, pWinRect->top,\r
+               pWinRect->right, pWinRect->bottom,\r
+               nSelectViewWidth);\r
+\r
+       delete [] pPropsStr[PROP_S_WINSIZE];\r
+       pPropsStr[PROP_S_WINSIZE] = StringDup(buf);\r
+       return TRUE;\r
+}\r
+\r
+///////////////////////////////////////////////////\r
+// get window size\r
+///////////////////////////////////////////////////\r
+\r
+BOOL Property::GetWinSize(UINT *pFlags, UINT *pShowCmd, LPRECT pWinRect, LPWORD pSelectViewWidth)\r
+{\r
+       if (pPropsStr[PROP_S_WINSIZE] == NULL) {\r
+               SetLastError(ERROR_INVALID_DATA);\r
+               return FALSE;\r
+       }\r
+\r
+       DWORD n;\r
+       if (_stscanf(pPropsStr[PROP_S_WINSIZE], TEXT("%d,%d,%d,%d,%d,%d,%d"),\r
+               pFlags, pShowCmd,\r
+               &(pWinRect->left), &(pWinRect->top),\r
+               &(pWinRect->right), &(pWinRect->bottom),\r
+               &n) != 7) {\r
+               SetLastError(ERROR_INVALID_DATA);\r
+               return FALSE;\r
+       }\r
+       *pSelectViewWidth = (WORD)n;\r
+       // check and modify window position\r
+       if (pWinRect->left < 0) pWinRect->left = 0;\r
+       if (pWinRect->top < 0) pWinRect->top = 0;\r
+\r
+       return TRUE;\r
+}\r
+\r
+///////////////////////////////////////////////////\r
+// helper funcs\r
+///////////////////////////////////////////////////\r
+\r
+static HKEY GetTomboRootKey()\r
+{\r
+       DWORD res;\r
+       HKEY hTomboRoot;\r
+\r
+       res = RegOpenKeyEx(HKEY_CURRENT_USER, TOMBO_MAIN_KEY, 0, KEY_READ, &hTomboRoot);\r
+       if (res != ERROR_SUCCESS) {\r
+               SetLastError(res);\r
+               return NULL;\r
+       }\r
+       return hTomboRoot;\r
+}\r
+\r
+////////////////////////////////////////////////////////////////\r
+// Get/Set History from/to ComboBox\r
+////////////////////////////////////////////////////////////////\r
+\r
+BOOL SetHistoryToComboBox(HWND hCombo, LPCTSTR pHistoryStr)\r
+{\r
+       if (pHistoryStr == NULL) return TRUE;\r
+\r
+       LPCTSTR p = pHistoryStr;\r
+       LPCTSTR q = p;\r
+       while(*q) {\r
+               SendMessage(hCombo, CB_ADDSTRING, 0, (LPARAM)q);\r
+               q += _tcslen(q) + 1;\r
+       }\r
+       SendMessage(hCombo, CB_SETCURSEL, 0, 0);\r
+       return TRUE;\r
+}\r
+\r
+LPTSTR GetHistoryFromComboBox(HWND hCombo, LPCTSTR pSelValue, DWORD nSave)\r
+{\r
+       DWORD nItems = SendMessage(hCombo, CB_GETCOUNT, 0, 0);\r
+       if (nItems > nSave) nItems = nSave;\r
+\r
+       DWORD i;\r
+       DWORD nMatch = SendMessage(hCombo, CB_FINDSTRINGEXACT, (WPARAM)-1, (LPARAM)pSelValue);\r
+\r
+       DWORD nBufLen = _tcslen(pSelValue) + 1;\r
+       DWORD nLen;\r
+       for (i = 0; i < nItems; i++) {\r
+               if (i == nMatch) continue;\r
+\r
+               nLen = SendMessage(hCombo, CB_GETLBTEXTLEN, i, 0);\r
+               if (nLen == CB_ERR) return FALSE;\r
+               nBufLen += nLen + 1;\r
+       }\r
+       nBufLen++;\r
+\r
+       LPTSTR p = new TCHAR[nBufLen];\r
+       if (!p) {\r
+               SetLastError(ERROR_NOT_ENOUGH_MEMORY);\r
+               return FALSE;\r
+       }\r
+\r
+       LPTSTR q = p;\r
+       _tcscpy(q, pSelValue);\r
+       q += _tcslen(pSelValue) + 1;\r
+       for (i = 0; i < nItems; i++) {\r
+               if (i == nMatch) continue;\r
+               SendMessage(hCombo, CB_GETLBTEXT, i, (LPARAM)q);\r
+               q += _tcslen(q) + 1;\r
+       }\r
+       *q = TEXT('\0');\r
+       return p;\r
+}\r
+\r
+#if defined(PLATFORM_HPC)\r
+BOOL Property::SetCommandbarInfo(LPCOMMANDBANDSRESTOREINFO p)\r
+{\r
+       delete[] pCmdBarInfo;\r
+       pCmdBarInfo = new COMMANDBANDSRESTOREINFO[NUM_COMMANDBAR];\r
+       memcpy(pCmdBarInfo, p, sizeof(COMMANDBANDSRESTOREINFO) * NUM_COMMANDBAR);\r
+       return TRUE;\r
+}\r
+\r
+BOOL Property::GetCommandbarInfo(LPCOMMANDBANDSRESTOREINFO p, DWORD n)\r
+{\r
+       if (pCmdBarInfo == NULL) return FALSE;\r
+       memcpy(p, pCmdBarInfo, sizeof(COMMANDBANDSRESTOREINFO) * NUM_COMMANDBAR);\r
+       return TRUE;\r
+}\r
+\r
+#endif\r
+\r
+BOOL Property::SetCmdLineAssignedTomboRoot(LPCTSTR p, DWORD nLen)\r
+{\r
+       pCmdlineAssignedTopDir = new TCHAR[nLen + 1];\r
+       if (!pCmdlineAssignedTopDir) return FALSE;\r
+       _tcsncpy(pCmdlineAssignedTopDir, p, nLen);\r
+       pCmdlineAssignedTopDir[nLen] = TEXT('\0');\r
+       ChopFileSeparator(pCmdlineAssignedTopDir);\r
+       return TRUE;\r
+}\r
+\r
+static DWORD CountMultiSZLen(LPCTSTR pData)\r
+{\r
+       if (pData == NULL) return 0;\r
+       LPCTSTR p = pData;\r
+       DWORD n = 0;\r
+       while(*p) {\r
+               DWORD i = _tcslen(p) + 1;\r
+               p += i;\r
+               n += i;\r
+       }\r
+       n++;\r
+       return n;\r
+}\r
+\r
+///////////////////////////////////////////////////\r
+// BookMark\r
+///////////////////////////////////////////////////\r
+\r
+BOOL Property::SetBookMark(LPCTSTR pBM)\r
+{\r
+       DWORD nSize = CountMultiSZLen(pBM);\r
+\r
+       LPTSTR pBuf = new TCHAR[nSize];\r
+       if (pBuf == NULL) return FALSE;\r
+       for (DWORD i = 0; i < nSize; i++) {\r
+               pBuf[i] = pBM[i];\r
+       }\r
+       delete[] pBookMark;\r
+\r
+       pBookMark = pBuf;\r
+       return TRUE;\r
+}\r
+\r
+///////////////////////////////////////////////////\r
+// Code conversion related\r
+///////////////////////////////////////////////////\r
+\r
+LPBYTE ConvTCharToFileEncoding(LPCTSTR p, LPDWORD pSize)\r
+{\r
+       LPBYTE pData;\r
+\r
+       switch (g_Property.GetCodePage()) {\r
+       case TOMBO_CP_UTF16LE:\r
+               pData = (LPBYTE)ConvTCharToWChar(p);\r
+               if (pData == NULL) return FALSE;\r
+               *pSize = wcslen((LPCWSTR)pData) * sizeof(WCHAR);\r
+               break;\r
+       case TOMBO_CP_UTF8:\r
+               pData = (LPBYTE)ConvTCharToUTF8(p);\r
+               if (pData == NULL) return FALSE;\r
+               *pSize = strlen((const char*)pData);\r
+               break;\r
+       default:\r
+               pData = (LPBYTE)ConvUnicode2SJIS(p);\r
+               if (pData == NULL) return FALSE;\r
+               *pSize = strlen((const char*)pData);\r
+       }\r
+       return pData;\r
+}\r
+\r
+LPTSTR ConvFileEncodingToTChar(LPBYTE p)\r
+{\r
+       switch (g_Property.GetCodePage()) {\r
+       case TOMBO_CP_UTF16LE:\r
+               return ConvWCharToTChar((LPCWSTR)p);\r
+       case TOMBO_CP_UTF8:\r
+               return ConvUTF8ToTChar((const char*)p);\r
+       default:\r
+               return ConvSJIS2Unicode((const char*)p);        \r
+       }\r
+}\r
+\r
+RepositoryImpl *Property::GetSubRepository(DWORD nIndex) \r
+{ \r
+       RepositoryImpl *pImpl = pRepos[nIndex];\r
+       if (pImpl == NULL) return NULL;\r
+       return pImpl->Clone(); \r
+}\r
+\r
+DWORD Property::GetKeepCaret()\r
+{\r
+       if (pDefaultRep) return pDefaultRep->GetKeepCaret();\r
+       else return nPropsNum[PROP_N_DETAILSVIEW_KEEPCARET];\r
+}\r
+\r
+void Property::SetKeepCaret(DWORD n)\r
+{\r
+       if (pDefaultRep) pDefaultRep->SetKeepCaret(n);\r
+       nPropsNum[PROP_N_DETAILSVIEW_KEEPCARET] = n;\r
+}\r
+\r
+DWORD Property::GetUseSafeFileName()\r
+{\r
+       if (pDefaultRep) return pDefaultRep->GetSafeFileName();\r
+       else return nPropsNum[PROP_N_SAFEFILENAME];\r
+}\r
+\r
+void Property::SetUseSafeFileName(DWORD n)\r
+{\r
+       if (pDefaultRep) pDefaultRep->SetSafeFileName(n);\r
+       nPropsNum[PROP_N_SAFEFILENAME] = n;\r
+}\r
+\r
+DWORD Property::GetKeepTitle()\r
+{\r
+       if (pDefaultRep) return pDefaultRep->GetKeepTitle();\r
+       else return nPropsNum[PROP_N_KEEP_TITLE];\r
+}\r
+\r
+void Property::SetKeepTitle(DWORD n)\r
+{\r
+       if (pDefaultRep) pDefaultRep->SetKeepTitle(n);\r
+       nPropsNum[PROP_N_KEEP_TITLE] = n;\r
+}\r
+\r
diff --git a/Src/Property.h b/Src/Property.h
new file mode 100644 (file)
index 0000000..ddf41f1
--- /dev/null
@@ -0,0 +1,295 @@
+#ifndef PROPERTY_H\r
+#define PROPERTY_H\r
+\r
+#include <commctrl.h>\r
+\r
+#define MAX_DATEFORMAT_LEN 256\r
+\r
+////////////////////////////////////\r
+// property index\r
+////////////////////////////////////\r
+\r
+#define PROP_N_PASSTIMEOUT                              0\r
+#define PROP_N_DETAILSVIEW_KEEPCARET    1\r
+#define PROP_NDETAILSVIEW_TABSTOP               2\r
+#define PROP_N_SELECTVIEW_FONTSIZE              3\r
+#define PROP_N_SELECTVIEW_FONTQUALITY   4\r
+#define PROP_N_DETAILSVIEW_FONTSIZE             5\r
+#define PROP_N_DETAILSVIEW_FONTQUALITY  6\r
+#define PROP_N_AUTOSELECT_MODE                  7\r
+#define PROP_N_SINGLECLICK_MODE                         8\r
+#define PROP_N_USE_TWO_PANE                             9\r
+#define PROP_N_SWITCH_WINDOW_TITLE             10\r
+#define PROP_N_KEEP_TITLE                              11\r
+#define PROP_N_APP_BUTTON1                             12\r
+#define PROP_N_APP_BUTTON2                             13\r
+#define PROP_N_APP_BUTTON3                             14\r
+#define PROP_N_APP_BUTTON4                             15\r
+#define PROP_N_APP_BUTTON5                             16\r
+#define PROP_N_CODEPAGE                                        17\r
+#define PROP_N_DISABLEEXTRAACTIONBUTTON        18      // PKTPC\r
+#define PROP_N_SIPSIZE_DELTA                   19      // PKTPC\r
+#define PROP_N_HIDESTATUSBAR                   20      // HPC, WIN32\r
+#define PROP_N_STAYTOPMOST                             21      // WIN32\r
+#define PROP_N_HIDEREBAR                               22      // WIN32\r
+#define PROP_N_WRAPTEXT                                        23\r
+#define PROP_N_OPENREADONLY                            24\r
+#define PROP_N_DISABLESAVEDLG                  25\r
+#define PROP_N_USEASSOC                                        26\r
+#define PROP_N_SAFEFILENAME                            27\r
+#define PROP_N_TOMBO_WINSIZE3                  28      // PKTPCVGA\r
+#define PROP_N_KEEP_LAST_OPEN                  29\r
+#define PROP_N_USE_YAE                                 30\r
+#define PROP_N_DISABLE_YAE              31\r
+\r
+#define NUM_PROPS_NUM 32\r
+\r
+#define PROP_S_TOPDIR                                   0\r
+#define PROP_S_SELECTVIEW_FONTNAME              1\r
+#define PROP_S_DETAILSVIEW_FONTNAME             2\r
+#define PROP_S_DETAILSVIEW_DATEFORMAT1  3\r
+#define PROP_S_DETAILSVIEW_DATEFORMAT2  4\r
+#define PROP_S_DEFAULTNOTE                              5\r
+#define PROP_S_EXTAPP1                                  6\r
+#define PROP_S_EXTAPP2                                  7\r
+#define PROP_S_WINSIZE                                  8\r
+#define PROP_S_LAST_OPEN_URI                    9\r
+\r
+#define NUM_PROPS_STR 10\r
+\r
+// file encoding related defs\r
+#define TOMBO_CP_DEFAULT           0\r
+#define TOMBO_CP_UTF16LE        1200   // UTF-16LE\r
+#define TOMBO_CP_UTF8          65001   // UTF-8\r
+#define TOMBO_CP_GREEK          1253   // Greek\r
+\r
+////////////////////////////////////\r
+// accessor generation macros\r
+////////////////////////////////////\r
+\r
+#define STR_ACCESSOR(NAME, ATTR) \\r
+       LPCTSTR Get##NAME##() { return pPropsStr[ATTR]; }\\r
+       BOOL Set##NAME##(LPCTSTR pDir) { return SetStringProperty(ATTR, pDir); }\r
+\r
+#define NUM_ACCESSOR(NAME, ATTR) \\r
+       DWORD Get##NAME##() { return nPropsNum[ATTR]; }\\r
+       void Set##NAME##(DWORD n) { nPropsNum[ATTR] = n; }\r
+\r
+#define NUM_ACCESSOR_DECL(NAME) \\r
+       DWORD Get##NAME##();\\r
+       void Set##NAME##(DWORD n);\r
+\r
+class File;\r
+class TomboURI;\r
+class RepositoryImpl;\r
+class LocalFileRepository;\r
+\r
+////////////////////////////////////\r
+// Property data\r
+////////////////////////////////////\r
+\r
+class Property {\r
+\r
+       // internal status\r
+       BOOL bLoad;\r
+       BOOL bNeedAsk;\r
+\r
+       // persistent props\r
+       DWORD nPropsNum[NUM_PROPS_NUM];\r
+       LPTSTR pPropsStr[NUM_PROPS_STR];\r
+\r
+       LPTSTR pBookMark;\r
+       LPTSTR pSearchHistory;\r
+       LPTSTR pTopDirHistory;\r
+\r
+#if defined(PLATFORM_HPC)\r
+       LPCOMMANDBANDSRESTOREINFO pCmdBarInfo;\r
+#endif\r
+\r
+       // not persistent props\r
+       LPTSTR pCmdlineAssignedTopDir;\r
+\r
+       // internal helper funcs \r
+       BOOL SetStringProperty(DWORD nPropId, LPCTSTR pValue);\r
+\r
+       BOOL SaveToFile(File *pFile);\r
+       BOOL LoadFromReg(BOOL *pStrict);\r
+       BOOL LoadProperties();\r
+       BOOL LoadDefaultProperties();\r
+\r
+       RepositoryImpl **pRepos;\r
+       LocalFileRepository *pDefaultRep;\r
+       DWORD nNumRepos;\r
+\r
+public:\r
+       Property();\r
+       ~Property();\r
+\r
+       /////////////////////////////////\r
+       // set default props\r
+\r
+       BOOL SetDefaultROMode(BOOL) {return TRUE; }\r
+       BOOL SetCmdLineAssignedTomboRoot(LPCTSTR p, DWORD nLen);\r
+\r
+       /////////////////////////////////\r
+       // accessor\r
+\r
+       // Repository related\r
+       DWORD GetNumSubRepository() { return nNumRepos; }\r
+       // Clone RepsitoryImpl and return it\r
+       RepositoryImpl *GetSubRepository(DWORD nIndex);\r
+\r
+       // startup related\r
+\r
+       STR_ACCESSOR(TopDir, PROP_S_TOPDIR)             // TOMBO root directory\r
+       // GetTomboRoot \r
+       LPCTSTR GetTomboRoot();\r
+\r
+       NUM_ACCESSOR_DECL(KeepCaret) // whether keep caret position or not\r
+       NUM_ACCESSOR_DECL(UseSafeFileName)      // change crypted file name random\r
+       NUM_ACCESSOR_DECL(KeepTitle) // keep file name even if headline has changed\r
+\r
+       STR_ACCESSOR(LastOpenURI, PROP_S_LAST_OPEN_URI) // notes store folder\r
+       NUM_ACCESSOR(KeepLastOpen, PROP_N_KEEP_LAST_OPEN)       // when starting, the note last open is opened.\r
+       STR_ACCESSOR(DefaultNote, PROP_S_DEFAULTNOTE)   // use this uri when starting tombo\r
+\r
+       // font related\r
+       STR_ACCESSOR(SelectViewFontName, PROP_S_SELECTVIEW_FONTNAME)\r
+       NUM_ACCESSOR(SelectViewFontSize, PROP_N_SELECTVIEW_FONTSIZE)    // selectview font size\r
+       NUM_ACCESSOR(SelectViewFontQuality, PROP_N_SELECTVIEW_FONTQUALITY) // do use selectview ClearType font?\r
+       STR_ACCESSOR(DetailsViewFontName, PROP_S_DETAILSVIEW_FONTNAME)\r
+       NUM_ACCESSOR(DetailsViewFontSize, PROP_N_DETAILSVIEW_FONTSIZE)  // editview font size\r
+       NUM_ACCESSOR(DetailsViewFontQuality, PROP_N_DETAILSVIEW_FONTQUALITY) // do use editview ClearType font? \r
+       HFONT SelectViewFont();\r
+       HFONT DetailsViewFont();\r
+\r
+       // editview related\r
+       STR_ACCESSOR(DateFormat1, PROP_S_DETAILSVIEW_DATEFORMAT1)\r
+       STR_ACCESSOR(DateFormat2, PROP_S_DETAILSVIEW_DATEFORMAT2)\r
+       NUM_ACCESSOR(Tabstop, PROP_NDETAILSVIEW_TABSTOP)        // tab stop\r
+       NUM_ACCESSOR(WrapText, PROP_N_WRAPTEXT) // text wrapping on editview\r
+       NUM_ACCESSOR(OpenReadOnly, PROP_N_OPENREADONLY) // always read only mode when open the nots.\r
+       NUM_ACCESSOR(DisableSaveDlg, PROP_N_DISABLESAVEDLG)     // disable asking save when closing notes\r
+       NUM_ACCESSOR(CodePage, PROP_N_CODEPAGE)         // Codepage selection\r
+\r
+       // crypt related\r
+       NUM_ACCESSOR(PassTimeout, PROP_N_PASSTIMEOUT)   // password timeout     \r
+\r
+       // MainFrame related\r
+       NUM_ACCESSOR(AutoSelectMemo, PROP_N_AUTOSELECT_MODE)    // display note when treeview selection is moving\r
+       NUM_ACCESSOR(SingleClick, PROP_N_SINGLECLICK_MODE)      // display note when clicking the tree item \r
+       NUM_ACCESSOR(SwitchWindowTitle, PROP_N_SWITCH_WINDOW_TITLE) // is sync window text to note's name?\r
+       NUM_ACCESSOR(UseTwoPane, PROP_N_USE_TWO_PANE) // is two pane mode?\r
+\r
+       // extapp related\r
+       NUM_ACCESSOR(UseAssociation, PROP_N_USEASSOC)   // use default file assosiation\r
+       STR_ACCESSOR(ExtApp1, PROP_S_EXTAPP1)\r
+       STR_ACCESSOR(ExtApp2, PROP_S_EXTAPP2)\r
+\r
+       // Use YAEDIT component. On 1.x, always FALSE.\r
+       NUM_ACCESSOR(UseYAEdit, PROP_N_USE_YAE)\r
+       NUM_ACCESSOR(DisableYAEdit, PROP_N_DISABLE_YAE)\r
+\r
+\r
+       NUM_ACCESSOR(AppButton1, PROP_N_APP_BUTTON1)    // application buttons\r
+       NUM_ACCESSOR(AppButton2, PROP_N_APP_BUTTON2)\r
+       NUM_ACCESSOR(AppButton3, PROP_N_APP_BUTTON3)\r
+       NUM_ACCESSOR(AppButton4, PROP_N_APP_BUTTON4)\r
+       NUM_ACCESSOR(AppButton5, PROP_N_APP_BUTTON5)\r
+\r
+#if defined(PLATFORM_PKTPC) || defined(PLATFORM_WM5)\r
+       NUM_ACCESSOR(SipSizeDelta, PROP_N_SIPSIZE_DELTA)\r
+\r
+       // Disable open/close notes when action button pushed\r
+       NUM_ACCESSOR(DisableExtraActionButton, PROP_N_DISABLEEXTRAACTIONBUTTON)\r
+\r
+#endif\r
+\r
+#if defined(PLATFORM_HPC) || defined(PLATFORM_WIN32)\r
+       NUM_ACCESSOR(HideStatusBar, PROP_N_HIDESTATUSBAR)       // Hide status bar\r
+       void ToggleShowStatusBar() { nPropsNum[PROP_N_HIDESTATUSBAR] = !nPropsNum[PROP_N_HIDESTATUSBAR]; }\r
+#else\r
+       DWORD GetHideStatusBar() { return TRUE; }\r
+       void ToggleShowStatusBar() { /* nop */ }\r
+#endif\r
+#if defined(PLATFORM_WIN32)\r
+       NUM_ACCESSOR(StayTopMost, PROP_N_STAYTOPMOST)   // keep tombo topmost of the window\r
+       void ToggleStayTopMost() { nPropsNum[PROP_N_STAYTOPMOST] = !nPropsNum[PROP_N_STAYTOPMOST]; }\r
+\r
+       NUM_ACCESSOR(HideRebar, PROP_N_HIDEREBAR)       // hide rebar(toolbar)\r
+       void ToggleShowRebar() { nPropsNum[PROP_N_HIDEREBAR] = !nPropsNum[PROP_N_HIDEREBAR]; }\r
+#endif\r
+\r
+       // save restore main window size\r
+       BOOL SaveWinSize(UINT flags, UINT showCmd, LPRECT pWinRect, WORD nSelectViewWidth);\r
+       BOOL GetWinSize(UINT *pFlags, UINT *pShowCmd, LPRECT pWinRect, LPWORD pSelectViewWidth);\r
+\r
+#if (defined(PLATFORM_PKTPC) || defined(PLATFORM_WM5)) && defined(FOR_VGA)\r
+       NUM_ACCESSOR(WinSize2, PROP_N_TOMBO_WINSIZE3)   // horizontal pane size\r
+#endif\r
+\r
+       LPCTSTR GetBookMark() { return pBookMark; }\r
+       BOOL SetBookMark(LPCTSTR pBookMark);\r
+\r
+       LPCTSTR GetSearchHist() { return pSearchHistory; } \r
+       void SetSearchHist(LPTSTR pHist) { delete [] pSearchHistory; pSearchHistory = pHist; }\r
+\r
+       LPCTSTR GetTopDirHist() { return pTopDirHistory; }\r
+       void SetTopDirHist(LPTSTR pHist) { delete [] pTopDirHistory; pTopDirHistory = pHist; }\r
+\r
+#if defined(PLATFORM_HPC)\r
+       // save commandbar position\r
+       BOOL SetCommandbarInfo(LPCOMMANDBANDSRESTOREINFO p);\r
+       void SetCommandbarInfoWithBuffer(LPCOMMANDBANDSRESTOREINFO p) { delete [] pCmdBarInfo; pCmdBarInfo = p; }\r
+       BOOL GetCommandbarInfo(LPCOMMANDBANDSRESTOREINFO p, DWORD n);\r
+#endif\r
+\r
+       void SetNumberPropertyById(DWORD nId, DWORD nValue) { nPropsNum[nId] = nValue; }\r
+       void SetStringPropertyWithBuffer(DWORD nId, LPTSTR pValue) { pPropsStr[nId] = pValue; }\r
+\r
+       /////////////////////////////////\r
+       // main op\r
+\r
+       // popup property dialog\r
+       DWORD Popup(HINSTANCE hInst, HWND hWnd, const TomboURI *pCurrentSelectedURI);\r
+\r
+       // load properties\r
+       BOOL Load();\r
+\r
+       // save properties\r
+       BOOL Save();\r
+\r
+       // check object status\r
+       BOOL IsLoaded() { return bLoad; }\r
+       BOOL IsNeedAskUser() { return bNeedAsk; }\r
+};\r
+\r
+////////////////////////////////////\r
+// Search history\r
+////////////////////////////////////\r
+\r
+BOOL SetHistoryToComboBox(HWND hCombo, LPCTSTR pHistoryStr);\r
+LPTSTR GetHistoryFromComboBox(HWND hCombo, LPCTSTR pSelValue, DWORD nSave);\r
+\r
+////////////////////////////////////\r
+// global var declaration\r
+////////////////////////////////////\r
+extern Property g_Property;\r
+\r
+/////////////////////////////////////////////\r
+// attribute name definitions\r
+/////////////////////////////////////////////\r
+\r
+// some codes assumes this value is just '2'. check if this value is changed.\r
+#define NUM_COMMANDBAR 2\r
+\r
+/////////////////////////////////////////////\r
+// Code conversion related\r
+/////////////////////////////////////////////\r
+\r
+LPBYTE ConvTCharToFileEncoding(LPCTSTR p, LPDWORD pSize);\r
+\r
+// p is assumed terminated by '\0' if encoding is MBCS/UTF-8 and L'\0' if encoding is UTF-16\r
+LPTSTR ConvFileEncodingToTChar(LPBYTE p);\r
+\r
+#endif\r
diff --git a/Src/PsPCPlatform.cpp b/Src/PsPCPlatform.cpp
new file mode 100644 (file)
index 0000000..bd1da22
--- /dev/null
@@ -0,0 +1,144 @@
+#if defined(PLATFORM_PSPC)\r
+#include <windows.h>\r
+#include <commctrl.h>\r
+\r
+#include "resource.h"\r
+#include "PlatformLayer.h"\r
+#include "PsPCPlatform.h"\r
+#include "SipControl.h"\r
+\r
+#define NUM_IMG_BUTTONS 12\r
+\r
+#define BOOKMARK_MENU_POS 2\r
+\r
+#define NUM_CMDBAR_BUTTONS 4\r
+static TBBUTTON aCmdBarButtons[NUM_CMDBAR_BUTTONS] = {\r
+       {0,  0,              TBSTATE_ENABLED, TBSTYLE_SEP,    0, 0, 0, -1},\r
+       {17, IDM_NEWMEMO   , TBSTATE_ENABLED, TBSTYLE_BUTTON, 0, 0, 0, -1}, \r
+//     {0,  0,              TBSTATE_ENABLED, TBSTYLE_SEP,    0, 0, 0, -1},\r
+       {22, IDM_SEARCH_PREV,              0, TBSTYLE_BUTTON, 0, 0, 0, -1},\r
+       {23, IDM_SEARCH_NEXT,              0, TBSTYLE_BUTTON, 0, 0, 0, -1},\r
+//     {0,  0,              TBSTATE_ENABLED, TBSTYLE_SEP,    0, 0, 0, -1},\r
+};\r
+\r
+#define NUM_MD_CMDBAR_BUTTONS 7\r
+static TBBUTTON aMDCmdBarButtons[NUM_MD_CMDBAR_BUTTONS] = {\r
+       {0,            0,              TBSTATE_ENABLED, TBSTYLE_SEP,    0, 0, 0, -1},\r
+       {15,           IDM_RETURNLIST, TBSTATE_ENABLED, TBSTYLE_BUTTON, 0, 0, 0, -1},\r
+       {STD_FILESAVE, IDM_SAVE,       TBSTATE_ENABLED, TBSTYLE_BUTTON, 0, 0, 0, -1},\r
+       {0,            0,              TBSTATE_ENABLED, TBSTYLE_SEP,    0, 0, 0, -1},\r
+       {22,           IDM_SEARCH_PREV,              0, TBSTYLE_BUTTON, 0, 0, 0, -1},\r
+       {23,           IDM_SEARCH_NEXT,              0, TBSTYLE_BUTTON, 0, 0, 0, -1},\r
+       {0,            0,              TBSTATE_ENABLED, TBSTYLE_SEP,    0, 0, 0, -1},\r
+\r
+};\r
+\r
+static HWND MakeCommandBar(HINSTANCE hInst, HWND hWnd, \r
+                                                  DWORD nCtlID, WORD nMenuID, \r
+                                                  TBBUTTON *pButtons,\r
+                                                  DWORD nButton, DWORD nImages, DWORD nBitmap)\r
+{\r
+       HWND h;\r
+       h = CommandBar_Create(hInst, hWnd, nCtlID);\r
+       int boffset;\r
+       CommandBar_AddBitmap(h, HINST_COMMCTRL,IDB_STD_SMALL_COLOR, 15, 0, 0);\r
+       boffset = CommandBar_AddBitmap(h, hInst, nBitmap, nImages, 0, 0);\r
+\r
+       CommandBar_InsertMenubar(h, hInst, nMenuID, 0);\r
+       CommandBar_AddButtons(h, nButton, pButtons);\r
+       CommandBar_AddAdornments(h, 0, 0);\r
+       return h;\r
+}\r
+\r
+void PsPCPlatform::Create(HWND hWnd, HINSTANCE hInst)\r
+{\r
+       hMSCmdBar = MakeCommandBar(hInst, hWnd, ID_CMDBAR_MAIN,\r
+                                                               IDR_MENU_MAIN, aCmdBarButtons, \r
+                                                               NUM_CMDBAR_BUTTONS, NUM_IMG_BUTTONS, \r
+                                                               IDB_TOOLBAR);\r
+       hMDCmdBar = MakeCommandBar(hInst, hWnd, ID_CMDBAR_DETAILS,\r
+                                                               IDR_MENU_DETAILS, aMDCmdBarButtons,\r
+                                                               NUM_MD_CMDBAR_BUTTONS, NUM_IMG_BUTTONS,\r
+                                                               IDB_TOOLBAR);\r
+    CommandBar_Show(hMSCmdBar, TRUE);\r
+}\r
+\r
+void PsPCPlatform::EnableMenu(UINT uid, BOOL bEnable)\r
+{\r
+       HMENU hMenu;\r
+       BOOL bMenu = TRUE;\r
+       BOOL bTB = FALSE; HWND hTB = NULL;\r
+\r
+       switch (uid) {\r
+       case IDM_DECRYPT:\r
+       case IDM_ENCRYPT:\r
+       case IDM_DELETEITEM:\r
+       case IDM_RENAME:\r
+       case IDM_NEWMEMO:\r
+       case IDM_CUT:\r
+       case IDM_COPY:\r
+       case IDM_PASTE:\r
+       case IDM_NEWFOLDER:\r
+       case IDM_GREP:\r
+               hMenu = GetMSEditMenu();\r
+               break;\r
+       case IDM_SAVE:\r
+               bMenu = FALSE;\r
+               bTB = TRUE;\r
+               hTB = hMDCmdBar;\r
+       default:\r
+               return;\r
+       }\r
+\r
+       if (bMenu) {\r
+               if (bEnable) {\r
+                       EnableMenuItem(hMenu, uid, MF_BYCOMMAND | MF_ENABLED);\r
+               } else {\r
+                       EnableMenuItem(hMenu, uid, MF_BYCOMMAND | MF_GRAYED);\r
+               }\r
+       }\r
+\r
+       if (bTB) {\r
+               SendMessage(hTB, TB_ENABLEBUTTON, uid, MAKELONG(bEnable, 0)); \r
+       }\r
+}\r
+\r
+void PsPCPlatform::OpenDetailsView()\r
+{\r
+       CommandBar_Show(hMSCmdBar, SW_HIDE);\r
+       CommandBar_Show(hMDCmdBar, SW_SHOW);\r
+}\r
+\r
+void PsPCPlatform::CloseDetailsView()\r
+{\r
+       CommandBar_Show(hMDCmdBar, SW_HIDE);\r
+       CommandBar_Show(hMSCmdBar, SW_SHOW);\r
+}\r
+\r
+void PsPCPlatform::EnableSearchNext()\r
+{\r
+       SendMessage(hMSCmdBar, TB_SETSTATE, IDM_SEARCH_PREV, MAKELONG(TBSTATE_ENABLED, 0)); \r
+       SendMessage(hMSCmdBar, TB_SETSTATE, IDM_SEARCH_NEXT, MAKELONG(TBSTATE_ENABLED, 0)); \r
+       SendMessage(hMDCmdBar, TB_SETSTATE, IDM_SEARCH_PREV, MAKELONG(TBSTATE_ENABLED, 0)); \r
+       SendMessage(hMDCmdBar, TB_SETSTATE, IDM_SEARCH_NEXT, MAKELONG(TBSTATE_ENABLED, 0)); \r
+}\r
+\r
+void PsPCPlatform::AdjustUserRect(RECT *r)\r
+{\r
+       DWORD nHOffset = CommandBar_Height(hMSCmdBar);\r
+       r->top += nHOffset;\r
+       r->bottom -= nHOffset;\r
+\r
+       // SIP\r
+       BOOL bStat;\r
+       SipControl sc;\r
+       if (!sc.Init()) return;\r
+       if (!sc.GetSipStat(&bStat)) return;\r
+\r
+       if (bStat) {\r
+               RECT rSip = sc.GetRect();       \r
+               r->bottom -= (rSip.bottom - rSip.top);\r
+       }\r
+}\r
+\r
+#endif // PLATFORM_PSPC\r
diff --git a/Src/PsPCPlatform.h b/Src/PsPCPlatform.h
new file mode 100644 (file)
index 0000000..ba0038e
--- /dev/null
@@ -0,0 +1,37 @@
+#ifndef PSPCPLATFORM_H\r
+#define PSPCPLATFORM_H\r
+#if defined(PLATFORM_PSPC)\r
+\r
+#define PLATFORM_TYPE PsPCPlatform\r
+\r
+class PsPCPlatform : public PlatformLayer {\r
+public:\r
+       HWND hMSCmdBar;\r
+       HWND hMDCmdBar;\r
+\r
+       void Create(HWND hWnd, HINSTANCE hInst);\r
+\r
+       HMENU GetMDToolMenu() { return CommandBar_GetMenu(hMDCmdBar, 0); }\r
+       HMENU GetMSEditMenu() { return CommandBar_GetMenu(hMSCmdBar, 0); }\r
+       HMENU GetMSBookMarkMenu() {return GetSubMenu(CommandBar_GetMenu(hMSCmdBar, 0), BOOKMARK_MENU_POS); }\r
+\r
+       void EnableMenu(UINT uid, BOOL bEnable);\r
+       void EnableSearchNext();\r
+       void CheckMenu(UINT uid, BOOL bCheck) {/* nop */}\r
+\r
+       void OpenDetailsView();\r
+       void CloseDetailsView();\r
+\r
+       void AdjustUserRect(RECT *r);\r
+\r
+       void ShowStatusBar(BOOL bShow) {/* nop */}\r
+       void SetStatusIndicator(DWORD nPos, LPCTSTR pText, BOOL bDisp) { /* nop */ }\r
+       WORD GetStatusBarHeight() { return 0; }\r
+       void ResizeStatusBar(WPARAM wParam, LPARAM lParam) { /* nop */ }\r
+       void GetStatusWindowRect(RECT *pRect);\r
+\r
+       static PsPCPlatform *PlatformFactory() { return new PsPCPlatform(); }\r
+};\r
+\r
+#endif // PLATFORM_PSPC\r
+#endif
\ No newline at end of file
diff --git a/Src/RegErase/RegErase.cpp b/Src/RegErase/RegErase.cpp
new file mode 100644 (file)
index 0000000..f2cf899
--- /dev/null
@@ -0,0 +1,76 @@
+#include <windows.h>\r
+#include <stdio.h>\r
+#include <tchar.h>\r
+\r
+#include "Message.h"\r
+#define TOMBO_MAIN_KEY TEXT("Software\\flatfish\\Tombo")\r
+#define FLATFISH_MAIN_KEY TEXT("Software\\flatfish")\r
+\r
+TomboMessage g_mMsgRes;\r
+\r
+void MessageError(DWORD n)\r
+{\r
+       LPCTSTR pMsg = MSG_REGERASE_ERROR;\r
+       LPTSTR p = new TCHAR[_tcslen(MSG_REGERASE_ERROR) + 128];\r
+       _stprintf(p, MSG_REGERASE_ERROR, n);\r
+       MessageBox(NULL, p, MSG_REGERASE_TITLE, MB_OK | MB_ICONERROR | MB_APPLMODAL | MB_SETFOREGROUND);\r
+}\r
+\r
+int WINAPI WinMain(HINSTANCE hInst, HINSTANCE hPrev, LPTSTR pCmdLine, int nCmdShow)\r
+{\r
+       g_mMsgRes.Init();\r
+       if (MessageBox(NULL, MSG_REGERASE_CONFIRM, MSG_REGERASE_TITLE, MB_ICONQUESTION | MB_YESNO) != IDYES) {\r
+               MessageBox(NULL, MSG_REGERASE_CANCELED, MSG_REGERASE_TITLE, MB_OK);\r
+               return 1;\r
+       }\r
+\r
+       BOOL bDeleted = FALSE;\r
+\r
+       DWORD nResult = RegDeleteKey(HKEY_CURRENT_USER, TOMBO_MAIN_KEY);\r
+       if (nResult != ERROR_SUCCESS) {\r
+               if (nResult == ERROR_FILE_NOT_FOUND || nResult == ERROR_INVALID_PARAMETER) {\r
+                       bDeleted = TRUE;\r
+               } else {\r
+                       MessageError(nResult);\r
+                       return 0;\r
+               }\r
+       }\r
+\r
+       HKEY hFF;\r
+#if defined(PLATFORM_WIN32)\r
+       nResult = RegOpenKeyEx(HKEY_CURRENT_USER, FLATFISH_MAIN_KEY, 0, KEY_ALL_ACCESS, &hFF);\r
+#else\r
+       nResult = RegOpenKeyEx(HKEY_CURRENT_USER, FLATFISH_MAIN_KEY, 0, 0, &hFF);\r
+#endif\r
+       if (nResult == ERROR_SUCCESS) {\r
+\r
+               // delete only if subkey under HKCU\Software\flatfish is not exist\r
+               DWORD nSubKeys;\r
+               if (RegQueryInfoKey(hFF, \r
+                               NULL, NULL, NULL, &nSubKeys, NULL, NULL, NULL, NULL,\r
+                               NULL, NULL, NULL) == ERROR_SUCCESS) {\r
+\r
+                       RegCloseKey(hFF);\r
+                       if (nSubKeys == 0) {\r
+                               if (RegDeleteKey(HKEY_CURRENT_USER, FLATFISH_MAIN_KEY) == ERROR_SUCCESS) {\r
+                                       bDeleted = FALSE;\r
+                               }\r
+                       }\r
+               } else {\r
+                       RegCloseKey(hFF);\r
+               }\r
+       } else {\r
+               if (nResult != ERROR_FILE_NOT_FOUND && nResult != ERROR_INVALID_PARAMETER) {\r
+                       MessageError(nResult);\r
+                       return 0;\r
+               }\r
+       }\r
+\r
+       if (bDeleted) {\r
+               MessageBox(NULL, MSG_REGERASE_NOT_EXIST, MSG_REGERASE_TITLE, MB_OK | MB_ICONINFORMATION | MB_APPLMODAL | MB_SETFOREGROUND);\r
+       } else {\r
+               MessageBox(NULL, MSG_REGERASE_DELETED, MSG_REGERASE_TITLE, MB_OK | MB_ICONINFORMATION | MB_APPLMODAL | MB_SETFOREGROUND);\r
+       }\r
+\r
+       return 0;\r
+}\r
diff --git a/Src/RegexUtil.h b/Src/RegexUtil.h
new file mode 100644 (file)
index 0000000..307be21
--- /dev/null
@@ -0,0 +1,22 @@
+#ifndef REGEXUTIL_H\r
+#define REGEXUTIL_H\r
+\r
+#ifdef __cplusplus\r
+extern "C" {\r
+#endif\r
+\r
+void* Regex_Compile(const LPBYTE pPattern, BOOL bIgnoreCase, const char **ppReason, DWORD nCodePage);\r
+void Regex_Free(void *p);\r
+int Regex_Search(void *p, int iStart, const LPBYTE pTarget, BOOL bForward, int *pStart, int *pEnd, DWORD nCodePage);\r
+\r
+const LPBYTE ShiftLeft(const LPBYTE pString, const LPBYTE pPos, DWORD nCodePage);\r
+const LPBYTE ShiftRight(const LPBYTE pString, const LPBYTE pPos, DWORD nCodePage);\r
+\r
+DWORD ConvertPos(const LPBYTE pSrcStr, DWORD nSrcPos, DWORD nSrcEnc, const LPBYTE pDstStr, DWORD nDstEnc);\r
+\r
+#ifdef __cplusplus\r
+};\r
+#endif\r
+\r
+#endif\r
+\r
diff --git a/Src/Repository.cpp b/Src/Repository.cpp
new file mode 100644 (file)
index 0000000..4ab0623
--- /dev/null
@@ -0,0 +1,346 @@
+#include <windows.h>\r
+#include <tchar.h>\r
+\r
+#include "Tombo.h"\r
+#include "message.h"\r
+#include "TString.h"\r
+#include "Uniconv.h"\r
+#include "TomboURI.h"\r
+#include "Repository.h"\r
+#include "Property.h"\r
+\r
+#include "AutoPtr.h"\r
+\r
+#include "RepositoryImpl.h"\r
+\r
+// At this time, Repository is only proxy to RepositoryImpl.\r
+// This class will choose repository implementations in future.\r
+\r
+/////////////////////////////////////////\r
+// Global definition\r
+/////////////////////////////////////////\r
+\r
+Repository g_Repository;\r
+\r
+/////////////////////////////////////////\r
+// Repository ctor & dtor, initializer\r
+/////////////////////////////////////////\r
+\r
+Repository::Repository() : pDefaultImpl(NULL)\r
+{\r
+}\r
+\r
+Repository::~Repository()\r
+{\r
+}\r
+\r
+BOOL Repository::Init()\r
+{\r
+       if (!vSubRepository.Init(10, 10)) return FALSE;\r
+       return ClearSubRepository();\r
+}\r
+\r
+BOOL Repository::ClearSubRepository()\r
+{\r
+       for (DWORD i = 0; i < vSubRepository.NumItems(); i++) {\r
+               RepositoryImpl *p = *vSubRepository.GetUnit(i);\r
+               delete p;\r
+       }\r
+       vSubRepository.Clear(FALSE);\r
+\r
+       pDefaultImpl = NULL;\r
+       return TRUE;\r
+}\r
+\r
+BOOL Repository::AddSubRepository(RepositoryImpl *pImpl)\r
+{\r
+       if (!vSubRepository.Add(&pImpl)) return FALSE;\r
+\r
+       pDefaultImpl = *vSubRepository.GetUnit(0);\r
+       return TRUE;\r
+}\r
+\r
+BOOL Repository::GetAttachURI(const TomboURI *pBase, TomboURI *pAttached)\r
+{\r
+       if (pBase->IsLeaf()) {\r
+               if (!pBase->GetParent(pAttached)) return FALSE;\r
+       } else {\r
+               if (!pAttached->Init(pBase->GetFullURI())) return FALSE;\r
+       }\r
+       return TRUE;\r
+}\r
+\r
+RepositoryImpl *Repository::GetAssocSubRepository(const TomboURI *pURI)\r
+{\r
+       DWORD n = vSubRepository.NumItems();\r
+       for (DWORD i = 0; i < n; i++) {\r
+               RepositoryImpl *pImpl = *vSubRepository.GetUnit(i);\r
+               if (_tcsncmp(pImpl->GetRootURI()->GetFullURI() + 8, pURI->GetFullURI() + 8, pImpl->GetRepNameLen() + 1) == 0) {\r
+                       return pImpl;\r
+               }\r
+       }\r
+       return NULL;\r
+}\r
+\r
+/////////////////////////////////////////\r
+// delegated methods\r
+/////////////////////////////////////////\r
+\r
+BOOL Repository::Update(const TomboURI *pCurrentURI, \r
+                                               LPCTSTR pData, \r
+                                               TomboURI *pNewURI, TString *pNewHeadLine)\r
+{\r
+       // pNewURI is in same sub repository\r
+       RepositoryImpl *pImpl = GetAssocSubRepository(pCurrentURI);\r
+       if (pImpl == NULL) return FALSE;\r
+       return pImpl->Update(pCurrentURI, pData, pNewURI, pNewHeadLine);\r
+}\r
+\r
+BOOL Repository::GetHeadLine(const TomboURI *pURI, TString *pHeadLine)\r
+{\r
+       RepositoryImpl *pImpl = GetAssocSubRepository(pURI);\r
+       if (pImpl == NULL) return FALSE;\r
+       return pImpl->GetHeadLine(pURI, pHeadLine);\r
+}\r
+\r
+BOOL Repository::GetOption(const TomboURI *pURI, URIOption *pOption)\r
+{\r
+       RepositoryImpl *pImpl = GetAssocSubRepository(pURI);\r
+       if (pImpl == NULL) return FALSE;\r
+       return pImpl->GetOption(pURI, pOption);\r
+}\r
+\r
+BOOL Repository::SetOption(const TomboURI *pCurrentURI, URIOption *pOption)\r
+{\r
+       RepositoryImpl *pImpl = GetAssocSubRepository(pCurrentURI);\r
+       if (pImpl == NULL) return FALSE;\r
+       return pImpl->SetOption(pCurrentURI, pOption);\r
+}\r
+\r
+BOOL Repository::IsEncrypted(const TomboURI *pURI)\r
+{\r
+       RepositoryImpl *pImpl = GetAssocSubRepository(pURI);\r
+       if (pImpl == NULL) return FALSE;\r
+       return pImpl->IsEncrypted(pURI);\r
+}\r
+\r
+BOOL Repository::Delete(const TomboURI *pURI, URIOption *pOption)\r
+{\r
+       RepositoryImpl *pImpl = GetAssocSubRepository(pURI);\r
+       if (pImpl == NULL) return FALSE;\r
+       return pImpl->Delete(pURI, pOption);\r
+}\r
+\r
+BOOL Repository::Copy(const TomboURI *pCopyFrom, const TomboURI *pCopyTo, URIOption *pOption)\r
+{\r
+       // XXXX over subrepository is not supported yet.\r
+       RepositoryImpl *pImpl = GetAssocSubRepository(pCopyFrom);\r
+       if (pImpl == NULL) return FALSE;\r
+       return pImpl->Copy(pCopyFrom, pCopyTo, pOption);\r
+}\r
+\r
+BOOL Repository::Move(const TomboURI *pMoveFrom, const TomboURI *pMoveTo, URIOption *pOption)\r
+{\r
+       // XXXX over subrepository is not supported yet.\r
+       RepositoryImpl *pImpl = GetAssocSubRepository(pMoveFrom);\r
+       if (pImpl == NULL) return FALSE;\r
+       return pImpl->Move(pMoveFrom, pMoveTo, pOption);\r
+}\r
+\r
+BOOL Repository::GetPhysicalPath(const TomboURI *pURI, TString *pFullPath)\r
+{\r
+       RepositoryImpl *pImpl = GetAssocSubRepository(pURI);\r
+       if (pImpl == NULL) return FALSE;\r
+       return pImpl->GetPhysicalPath(pURI, pFullPath);\r
+}\r
+\r
+BOOL Repository::ChangeHeadLine(const TomboURI *pURI, LPCTSTR pReqNewHeadLine, URIOption *pOption)\r
+{\r
+       RepositoryImpl *pImpl = GetAssocSubRepository(pURI);\r
+       if (pImpl == NULL) return FALSE;\r
+       return pImpl->ChangeHeadLine(pURI, pReqNewHeadLine, pOption);\r
+}\r
+\r
+\r
+URIList *Repository::GetChild(const TomboURI *pFolder, BOOL bSkipEncrypt, BOOL bLooseDecrypt, BOOL *pLoose)\r
+{\r
+       RepositoryImpl *pImpl = GetAssocSubRepository(pFolder);\r
+       if (pImpl == NULL) return FALSE;\r
+       return pImpl->GetChild(pFolder, bSkipEncrypt, bLooseDecrypt, pLoose);\r
+}\r
+\r
+BOOL Repository::RequestAllocateURI(const TomboURI *pBaseURI, LPCTSTR pText, TString *pHeadLine, TomboURI *pURI, const TomboURI *pTemplateURI)\r
+{\r
+       RepositoryImpl *pImpl = GetAssocSubRepository(pBaseURI);\r
+       if (pImpl == NULL) return FALSE;\r
+       return pImpl->RequestAllocateURI(pBaseURI, pText, pHeadLine, pURI, pTemplateURI);\r
+}\r
+\r
+BOOL Repository::GetAttribute(const TomboURI *pURI, NoteAttribute *pAttribute)\r
+{\r
+       RepositoryImpl *pImpl = GetAssocSubRepository(pURI);\r
+       if (pImpl == NULL) return FALSE;\r
+       return pImpl->GetAttribute(pURI, pAttribute);\r
+}\r
+\r
+BOOL Repository::GetNoteAttribute(const TomboURI *pURI, UINT64 *pLastUpdate, UINT64 *pCreateDate, UINT64 *pFileSize)\r
+{\r
+       RepositoryImpl *pImpl = GetAssocSubRepository(pURI);\r
+       if (pImpl == NULL) return FALSE;\r
+       return pImpl->GetNoteAttribute(pURI, pLastUpdate, pCreateDate, pFileSize);\r
+}\r
+\r
+BOOL Repository::SetAttribute(const TomboURI *pURI, const NoteAttribute *pAttribute)\r
+{\r
+       RepositoryImpl *pImpl = GetAssocSubRepository(pURI);\r
+       if (pImpl == NULL) return FALSE;\r
+       return pImpl->SetAttribute(pURI, pAttribute);\r
+}\r
+\r
+LPTSTR Repository::GetNoteData(const TomboURI *pURI)\r
+{\r
+       RepositoryImpl *pImpl = GetAssocSubRepository(pURI);\r
+       if (pImpl == NULL) return FALSE;\r
+       return pImpl->GetNoteData(pURI);\r
+}\r
+\r
+LPBYTE Repository::GetNoteDataNative(const TomboURI *pURI, LPDWORD pSize)\r
+{\r
+       RepositoryImpl *pImpl = GetAssocSubRepository(pURI);\r
+       if (pImpl == NULL) return FALSE;\r
+       return pImpl->GetNoteDataNative(pURI, pSize);\r
+}\r
+\r
+BOOL Repository::ExecuteAssoc(const TomboURI *pURI, ExeAppType nType)\r
+{\r
+       RepositoryImpl *pImpl = GetAssocSubRepository(pURI);\r
+       if (pImpl == NULL) return FALSE;\r
+       return pImpl->ExecuteAssoc(pURI, nType);\r
+}\r
+\r
+BOOL Repository::MakeFolder(const TomboURI *pParent, LPCTSTR pFolderName)\r
+{\r
+       RepositoryImpl *pImpl = GetAssocSubRepository(pParent);\r
+       if (pImpl == NULL) return FALSE;\r
+       return pImpl->MakeFolder(pParent, pFolderName);\r
+}\r
+\r
+BOOL Repository::GetFileName(const TomboURI *pURI, TString *pName)\r
+{\r
+       RepositoryImpl *pImpl = GetAssocSubRepository(pURI);\r
+       if (pImpl == NULL) return FALSE;\r
+       return pURI->GetBaseName(pName);\r
+}\r
+\r
+/////////////////////////////////////////\r
+// sub repository IF\r
+/////////////////////////////////////////\r
+\r
+DWORD Repository::GetNumOfSubRepository()\r
+{\r
+       return vSubRepository.NumItems();\r
+}\r
+\r
+DWORD Repository::GetSubRepositoryType(DWORD nIndex)\r
+{\r
+       RepositoryImpl *pImpl = *vSubRepository.GetUnit(nIndex);\r
+       if (pImpl == NULL) return NULL;\r
+\r
+       return pImpl->GetRepositoryType();\r
+}\r
+\r
+LPCTSTR Repository::GetSubRepositoryName(DWORD nIndex)\r
+{\r
+       RepositoryImpl *pImpl = *vSubRepository.GetUnit(nIndex);\r
+       if (pImpl == NULL) return NULL;\r
+\r
+       return pImpl->GetDisplayName();\r
+}\r
+\r
+const TomboURI *Repository::GetSubRepositoryRootURI(DWORD nIndex)\r
+{\r
+       RepositoryImpl *pImpl = *vSubRepository.GetUnit(nIndex);\r
+       if (pImpl == NULL) return NULL;\r
+       return pImpl->GetRootURI();\r
+}\r
+\r
+LPTSTR Repository::GetSubRepoXMLSaveString(DWORD nIndex)\r
+{\r
+       RepositoryImpl *pImpl = *vSubRepository.GetUnit(nIndex);\r
+       if (pImpl == NULL) return NULL;\r
+       return pImpl->GetXMLSaveString();\r
+}\r
+\r
+// factory methods for RepositoryImpl\r
+RepositoryImpl *Repository::CreateSubRepo(LPCWSTR pName, const WCHAR **atts)\r
+{\r
+       if (wcscmp(pName, L"localfile") == 0) {\r
+               DWORD i = 0;\r
+               LPTSTR pDispName = NULL;\r
+               LPTSTR pRepName = NULL;\r
+               LPTSTR pTopDir = NULL;\r
+               BOOL bKeepTitle = FALSE;\r
+               BOOL bKeepCaret = FALSE;\r
+               BOOL bSafeFileName = FALSE;\r
+\r
+               while (atts[i] != L'\0') {\r
+                       if (wcscmp(atts[i], L"name") == 0) {\r
+                               pRepName = ConvWCharToTChar(atts[i + 1]);\r
+                       } else if (wcscmp(atts[i], L"dispname") == 0) {\r
+                               pDispName = ConvWCharToTChar(atts[i + 1]);\r
+                       } else if (wcscmp(atts[i], L"path") == 0) {\r
+                               pTopDir = ConvWCharToTChar(atts[i + 1]);\r
+                       } else if (wcscmp(atts[i], L"keeptitle") == 0) {\r
+                               bKeepTitle = (wcscmp(atts[i + 1], L"1") == 0);\r
+                       } else if (wcscmp(atts[i], L"keepcaret") == 0) {\r
+                               bKeepCaret = (wcscmp(atts[i + 1], L"1") == 0);\r
+                       } else if (wcscmp(atts[i], L"safefilename") == 0) {\r
+                               bSafeFileName = (wcscmp(atts[i + 1], L"1") == 0);\r
+                       }\r
+                       i+= 2;\r
+               }\r
+               ArrayAutoPointer<TCHAR> ap1(pDispName), ap2(pRepName), ap3(pTopDir);\r
+\r
+               if (pRepName == NULL || pDispName == NULL || pTopDir == NULL) {\r
+                       SetLastError(ERROR_INVALID_PARAMETER);\r
+                       return NULL;\r
+               }\r
+\r
+               LocalFileRepository *pImpl = new LocalFileRepository();\r
+               if (pImpl == NULL) {\r
+                       SetLastError(ERROR_NOT_ENOUGH_MEMORY);\r
+                       return NULL;\r
+               }\r
+               if (!pImpl->Init(pRepName, pDispName, pTopDir, bKeepTitle, bKeepCaret, bSafeFileName)) {\r
+                       delete[] pImpl;\r
+                       return NULL;\r
+               }\r
+               return pImpl;\r
+       } else if (wcscmp(pName, L"vfolder") == 0) {\r
+               LPTSTR pDispName = NULL;\r
+               LPTSTR pRepName = NULL;\r
+               DWORD i = 0;\r
+               while (atts[i] != L'\0') {\r
+                       if (wcscmp(atts[i], L"name") == 0) {\r
+                               pRepName = ConvWCharToTChar(atts[i + 1]);\r
+                       } else if (wcscmp(atts[i], L"dispname") == 0) {\r
+                               pDispName = ConvWCharToTChar(atts[i + 1]);\r
+                       }\r
+                       i += 2;\r
+               }\r
+               ArrayAutoPointer<TCHAR> ap1(pDispName), ap2(pRepName);\r
+\r
+               VFolderRepository *pImpl = new VFolderRepository();\r
+               if (pImpl == NULL) {\r
+                       SetLastError(ERROR_NOT_ENOUGH_MEMORY);\r
+                       return NULL;\r
+               }\r
+               if (!pImpl->Init(pRepName, pDispName)) {\r
+                       delete[] pImpl;\r
+                       return NULL;\r
+               }\r
+               return pImpl;\r
+       } else {\r
+               return NULL;\r
+       }\r
+}\r
diff --git a/Src/Repository.h b/Src/Repository.h
new file mode 100644 (file)
index 0000000..417100d
--- /dev/null
@@ -0,0 +1,215 @@
+#ifndef REPOSITORY_H\r
+#define REPOSITORY_H\r
+\r
+class TString;\r
+class TomboURI;\r
+class RepositoryImpl;\r
+class URIOption;\r
+class URIList;\r
+\r
+class NoteAttribute;\r
+\r
+#include "VarBuffer.h"\r
+\r
+/////////////////////////////////////////\r
+// Option flag definitions\r
+/////////////////////////////////////////\r
+\r
+#define NOTE_OPTIONMASK_ENCRYPTED  1\r
+#define NOTE_OPTIONMASK_SAFEFILE   2\r
+#define NOTE_OPTIONMASK_VALID      4\r
+#define NOTE_OPTIONMASK_ICON       8\r
+\r
+/////////////////////////////////////////\r
+// Custom error code\r
+/////////////////////////////////////////\r
+\r
+#define ERROR_TOMBO_REP_CODE_BASE_ERROR (0x24000000)\r
+#define ERROR_TOMBO_REP_CODE_BASE_WARN  (0x22000000)\r
+#define ERROR_TOMBO_REP_CODE_BASE_INFO  (0x21000000)\r
+\r
+#define ERROR_TOMBO_E_INVALIDURI         (ERROR_TOMBO_REP_CODE_BASE_ERROR + 1)\r
+#define ERROR_TOMBO_E_SOME_ERROR_OCCURED (ERROR_TOMBO_REP_CODE_BASE_ERROR + 2)\r
+#define ERROR_TOMBO_E_RMFILE_FAILED      (ERROR_TOMBO_REP_CODE_BASE_ERROR + 3)\r
+#define ERROR_TOMBO_E_RMDIR_FAILED       (ERROR_TOMBO_REP_CODE_BASE_ERROR + 4)\r
+\r
+#define ERROR_TOMBO_W_DELETEOLD_FAILED          (ERROR_TOMBO_REP_CODE_BASE_WARN + 1)\r
+#define ERROR_TOMBO_W_OTHERFILE_EXISTS          (ERROR_TOMBO_REP_CODE_BASE_ERROR + 2)\r
+#define ERROR_TOMBO_W_OPERATION_NOT_PERMITTED   (ERROR_TOMBO_REP_CODE_BASE_ERROR + 3)\r
+\r
+#define ERROR_TOMBO_I_OPERATION_NOT_PERFORMED (ERROR_TOMBO_REP_CODE_BASE_INFO + 1)\r
+#define ERROR_TOMBO_I_GET_PASSWORD_CANCELED   (ERROR_TOMBO_REP_CODE_BASE_INFO + 2)\r
+\r
+/////////////////////////////////////////\r
+// GetList results\r
+/////////////////////////////////////////\r
+\r
+#define TOMBO_REPO_GETLIST_FAIL 0\r
+#define TOMBO_REPO_GETLIST_SUCCESS 1\r
+#define TOMBO_REPO_GETLIST_PARTIAL 2\r
+\r
+/////////////////////////////////////////\r
+// Sub repository type \r
+/////////////////////////////////////////\r
+\r
+#define TOMBO_REPO_SUBREPO_TYPE_INVALID                0\r
+#define TOMBO_REPO_SUBREPO_TYPE_LOCALFILE      1\r
+#define TOMBO_REPO_SUBREPO_TYPE_VFOLDER                2\r
+\r
+//////////////////////////////////////////////////////////////\r
+// Repository enumeration interface\r
+//////////////////////////////////////////////////////////////\r
+\r
+class IEnumRepository {\r
+public:\r
+       virtual URIList *GetChild(const TomboURI *pFolderURI, BOOL bSkipEncrypt, BOOL bLooseDecrypt, BOOL *pLoose) = 0;\r
+       virtual BOOL GetOption(const TomboURI *pURI, URIOption *pOption) = 0;\r
+       virtual BOOL GetHeadLine(const TomboURI *pURI, TString *pHeadLine) = 0;\r
+};\r
+\r
+//////////////////////////////////////////////////////////////\r
+// Repository\r
+//////////////////////////////////////////////////////////////\r
+// Repository is an abstraction of TOMBO's notes/folder tree.\r
+\r
+class Repository : public IEnumRepository {\r
+\r
+protected:\r
+       RepositoryImpl *pDefaultImpl;\r
+       TVector<RepositoryImpl*> vSubRepository;\r
+\r
+       // Get real physical path from URI.\r
+       //\r
+       // This method may be not supported by some RepositoryImpl type.\r
+       BOOL GetPhysicalPath(const TomboURI *pURI, TString *pFullPath);\r
+\r
+       // get sub repository reference assciated with the URI\r
+       RepositoryImpl *GetAssocSubRepository(const TomboURI *pURI);\r
+public:\r
+\r
+       Repository();\r
+       ~Repository();\r
+\r
+       BOOL Init();\r
+       BOOL ClearSubRepository();\r
+\r
+       // Add sub repository. pImpl instance is controled under Repository so do not delete pImpl by caller.\r
+       BOOL AddSubRepository(RepositoryImpl *pImpl);\r
+\r
+       ////////////////////////////\r
+       // Note/folder operations\r
+\r
+       BOOL Update(const TomboURI *pCurrentURI, LPCTSTR pData, TomboURI *pNewURI, TString *pNewHeadLine);\r
+       BOOL GetHeadLine(const TomboURI *pURI, TString *pHeadLine);\r
+\r
+       BOOL Delete(const TomboURI *pURI, URIOption *pOption);\r
+       BOOL Copy(const TomboURI *pCopyFrom, const TomboURI *pCopyTo, URIOption *pOption);\r
+       BOOL Move(const TomboURI *pMoveFrom, const TomboURI *pMoveTo, URIOption *pOption);\r
+\r
+       BOOL ExecuteAssoc(const TomboURI *pURI, ExeAppType nType);\r
+       BOOL MakeFolder(const TomboURI *pParent, LPCTSTR pFolderName);\r
+\r
+       // Rename headline\r
+       // Repository data is updated if necessary.\r
+       BOOL ChangeHeadLine(const TomboURI *pURI, LPCTSTR pReqNewHeadLine, URIOption *pOption);\r
+\r
+       LPTSTR GetNoteData(const TomboURI *pURI);\r
+       LPBYTE GetNoteDataNative(const TomboURI *pURI, LPDWORD pSize);\r
+\r
+       // Get URI the a item attached to.\r
+       // ex. :  tombo://repo/a/b/c/ -> tombo://repo/a/b/c/\r
+       //     :  tombo://repo/a/b/c/d.txt -> tombo://repo/a/b/c/\r
+       BOOL GetAttachURI(const TomboURI *pBase, TomboURI *pAttached);\r
+\r
+       // for use search only.\r
+       BOOL GetFileName(const TomboURI *pURI, TString *pName);\r
+\r
+       // Get notes under the url.\r
+       URIList *GetChild(const TomboURI *pFolderURI, BOOL bSkipEncrypt, BOOL bLooseDecrypt, BOOL *pLoose);\r
+\r
+       // Decide URI\r
+       BOOL RequestAllocateURI(const TomboURI *pBaseURI, LPCTSTR pText, TString *pHeadLine, TomboURI *pURI, const TomboURI *pTemplateURI);\r
+\r
+       ////////////////////////////\r
+       // File attribute functions\r
+\r
+       // get option from URI\r
+       //\r
+       // if NOTE_OPTIONMASK_VALID is set by pOption, bValid and bFolder is effective.\r
+       // if NOTE_OPTIONMASK_ENCRYPTED is set, bEncrypt is effective.\r
+       // if NOTE_OPTIONMASK_SAFEFILE is set, bSafeFile is effective.\r
+       BOOL GetOption(const TomboURI *pURI, URIOption *pOption);\r
+\r
+       // set option from URI\r
+       //\r
+       // if NOTE_OPTIONMASK_ENCRYPTED is set and bEncrypt is TRUE and bSafeFile is FALSE, encrypt to the URI by normal mode.\r
+       // if NOTE_OPTIONMASK_ENCRYPTED is set and bEncrypt is TRUE and bSafeFile is TRUE, encrypt to the URI by safefile mode.\r
+       // if NOTE_OPTIONMASK_ENCRYPTED is set and bEncrypt is FALSE, decrypt to the URI.\r
+       //\r
+       // In current implimentation, change normal mode <-> safe file mode is not supported.\r
+       BOOL SetOption(const TomboURI *pCurrentURI, URIOption *pOption);\r
+\r
+       BOOL GetAttribute(const TomboURI *pURI, NoteAttribute *pAttribute);\r
+       BOOL SetAttribute(const TomboURI *pURI, const NoteAttribute *pAttribute);\r
+       // get note attributes.\r
+       // TODO:  merged to GetAttribute.\r
+       BOOL GetNoteAttribute(const TomboURI *pURI, UINT64 *pLastUpdate, UINT64 *pCreateDate, UINT64 *pFileSize);\r
+\r
+       /////////////////////////////\r
+       // helper function\r
+\r
+       // Check the URI data is encrypted\r
+       BOOL IsEncrypted(const TomboURI *pURI);\r
+\r
+       /////////////////////////////\r
+       // sub repository IF\r
+       DWORD GetNumOfSubRepository();\r
+       DWORD GetSubRepositoryType(DWORD nIndex);\r
+       LPCTSTR GetSubRepositoryName(DWORD nIndex);\r
+       const TomboURI *GetSubRepositoryRootURI(DWORD nIndex);\r
+       LPTSTR GetSubRepoXMLSaveString(DWORD nIndex);\r
+\r
+       static RepositoryImpl *CreateSubRepo(LPCWSTR pName, const WCHAR **atts);\r
+};\r
+\r
+//////////////////////////////////////////////////////////////\r
+// URI option\r
+//////////////////////////////////////////////////////////////\r
+\r
+class URIOption {\r
+public:\r
+       URIOption(DWORD flg = 0) : nFlg(flg), pNewURI(NULL), pNewHeadLine(NULL) {}\r
+       ~URIOption() { delete pNewURI; delete pNewHeadLine; }\r
+\r
+       // request section\r
+       DWORD nFlg;\r
+       BOOL bEncrypt;\r
+       BOOL bSafeFileName;\r
+       BOOL bValid;\r
+       BOOL bFolder;\r
+\r
+       int iIcon;\r
+\r
+       // result info section\r
+       // if these value is not set by NULL, delete when NoteOption is deleted.\r
+       TString *pNewHeadLine;\r
+       TomboURI *pNewURI;\r
+};\r
+\r
+//////////////////////////////////////////////////////////////\r
+// File Attribute\r
+//////////////////////////////////////////////////////////////\r
+\r
+class NoteAttribute {\r
+public:\r
+       DWORD nCursorPos;\r
+       BOOL bReadOnly;\r
+};\r
+\r
+//////////////////////////////////////////////////////////////\r
+// Global definitions\r
+//////////////////////////////////////////////////////////////\r
+\r
+extern Repository g_Repository;\r
+\r
+#endif
\ No newline at end of file
diff --git a/Src/RepositoryImpl.cpp b/Src/RepositoryImpl.cpp
new file mode 100644 (file)
index 0000000..07f1be1
--- /dev/null
@@ -0,0 +1,1268 @@
+#include <windows.h>\r
+#include <tchar.h>\r
+\r
+#include "Tombo.h"\r
+#include "Message.h"\r
+#include "UniConv.h"\r
+#include "TString.h"\r
+#include "TomboURI.h"\r
+#include "Property.h"\r
+#include "Repository.h"\r
+#include "RepositoryImpl.h"\r
+\r
+#include "MemoNote.h"\r
+#include "AutoPtr.h"\r
+#include "PasswordManager.h"\r
+#include "MemoInfo.h"\r
+\r
+#include "DirList.h"\r
+#include "URIScanner.h"\r
+#include "DirectoryScanner.h"\r
+#include "MemoFolder.h"\r
+\r
+#if defined(PLATFORM_BE500)\r
+#include <CoShellapi.h>\r
+#endif\r
+\r
+\r
+/////////////////////////////////////////\r
+// static funcs\r
+/////////////////////////////////////////\r
+\r
+#define DEFAULT_HEADLINE MSG_DEFAULT_HEADLINE\r
+\r
+static int ChopFileNumberLen(LPTSTR pHeadLine);\r
+static BOOL IsFileExist(LPCTSTR pFileName);\r
+\r
+/////////////////////////////////////////\r
+// Repository ctor & dtor, initializer\r
+/////////////////////////////////////////\r
+\r
+RepositoryImpl::RepositoryImpl() : pRepName(NULL), pDispName(NULL), pRootURI(NULL) {}\r
+RepositoryImpl::~RepositoryImpl() \r
+{\r
+       delete [] pRepName;\r
+       delete [] pDispName;\r
+       delete pRootURI;\r
+}\r
+\r
+BOOL RepositoryImpl::Init(LPCTSTR rep, LPCTSTR disp, DWORD ntype)\r
+{\r
+       pRepName = StringDup(rep);\r
+       pDispName = StringDup(disp);\r
+       nRepNameLen = _tcslen(pRepName);\r
+       \r
+       nRepType = ntype;\r
+\r
+       TString sStrURI;\r
+       if (!sStrURI.Join(TEXT("tombo://"), rep, TEXT("/"))) return FALSE;\r
+       pRootURI = new TomboURI();\r
+       if (!pRootURI->Init(sStrURI.Get())) return FALSE;\r
+\r
+       return (pRepName != NULL) && (pDispName != NULL);\r
+}\r
+\r
+/////////////////////////////////////////\r
+// Is the note encrypted?\r
+/////////////////////////////////////////\r
+\r
+BOOL RepositoryImpl::IsEncrypted(const TomboURI *pURI)\r
+{\r
+       URIOption opt(NOTE_OPTIONMASK_ENCRYPTED);\r
+       GetOption(pURI, &opt);\r
+       return opt.bEncrypt;\r
+}\r
+\r
+/////////////////////////////////////////\r
+// ctor & dtor, initializer\r
+/////////////////////////////////////////\r
+\r
+LocalFileRepository::LocalFileRepository() : pTopDir(NULL)\r
+{\r
+}\r
+\r
+LocalFileRepository::~LocalFileRepository()\r
+{\r
+       delete[] pTopDir;\r
+}\r
+\r
+BOOL LocalFileRepository::Init(LPCTSTR rep, LPCTSTR disp, LPCTSTR dir, \r
+                                                          BOOL title, BOOL caret, BOOL safefile) \r
+{\r
+       if (!RepositoryImpl::Init(rep, disp, TOMBO_REPO_SUBREPO_TYPE_LOCALFILE)) return FALSE;\r
+\r
+       pTopDir = StringDup(dir);\r
+       bKeepTitle = title;\r
+       bKeepCaret = caret;\r
+       bSafeFileName = safefile;\r
+       return TRUE;\r
+}\r
+\r
+RepositoryImpl *LocalFileRepository::Clone()\r
+{\r
+       LocalFileRepository *pImpl = new LocalFileRepository();\r
+       if (pImpl == NULL) {\r
+               SetLastError(ERROR_NOT_ENOUGH_MEMORY);\r
+               return NULL;\r
+       }\r
+       if (!pImpl->Init(GetRepositoryName(), GetDisplayName(), pTopDir, bKeepTitle, bKeepCaret, bSafeFileName)) {\r
+               delete[] pImpl;\r
+               return NULL;\r
+       }\r
+       return pImpl;\r
+}\r
+\r
+LPTSTR LocalFileRepository::GetXMLSaveString()\r
+{\r
+       TString sXMLStr;\r
+       if (!sXMLStr.Join(TEXT("      <localfile name=\""), GetRepositoryName(), TEXT("\" dispname=\""), GetDisplayName())) return NULL;\r
+       if (!sXMLStr.StrCat(TEXT("\" path=\""))) return NULL;\r
+       if (!sXMLStr.StrCat(pTopDir)) return NULL;\r
+       if (!sXMLStr.StrCat(TEXT("\" keeptitle=\""))) return NULL;\r
+       if (!sXMLStr.StrCat(bKeepTitle ? TEXT("1") : TEXT("0"))) return NULL;\r
+       if (!sXMLStr.StrCat(TEXT("\" keepcaret=\""))) return NULL;\r
+       if (!sXMLStr.StrCat(bKeepCaret ? TEXT("1") : TEXT("0"))) return NULL;\r
+       if (!sXMLStr.StrCat(TEXT("\" safefilename=\""))) return NULL;\r
+       if (!sXMLStr.StrCat(bSafeFileName ? TEXT("1") : TEXT("0"))) return NULL;\r
+       if (!sXMLStr.StrCat(TEXT("\"/>\n"))) return NULL;\r
+       return StringDup(sXMLStr.Get());\r
+}\r
+\r
+BOOL LocalFileRepository::SetTopDir(LPCTSTR pDir)\r
+{\r
+       delete [] pTopDir;\r
+       pTopDir = StringDup(pDir);\r
+       return pTopDir != NULL;\r
+}\r
+\r
+/////////////////////////////////////////\r
+// get attribute file path from notes URI \r
+/////////////////////////////////////////\r
+\r
+BOOL LocalFileRepository::GetTDTFullPath(const TomboURI *pURI, TString *pTdtName)\r
+{\r
+       TString sPath;\r
+       if (!pURI->GetFilePath(&sPath)) return FALSE;\r
+       return pTdtName->Join(pTopDir, TEXT("\\"), sPath.Get(), TEXT(".tdt"));\r
+}\r
+\r
+/////////////////////////////////////////\r
+// Update note\r
+/////////////////////////////////////////\r
+\r
+BOOL LocalFileRepository::Update(const TomboURI *pCurrentURI, LPCTSTR pData,\r
+                                                                TomboURI *pNewURI, TString *pNewHeadLine)\r
+{\r
+       // Save note data\r
+       if (!Save(pCurrentURI, pData, pNewURI, pNewHeadLine)) {\r
+               return FALSE;\r
+       }\r
+       \r
+       // if tdt exists, move one\r
+       TString sCurrentTdtPath, sNewTdtPath;\r
+       if (!GetTDTFullPath(pCurrentURI, &sCurrentTdtPath)) return FALSE;\r
+       if (!GetTDTFullPath(pNewURI, &sNewTdtPath)) return FALSE;\r
+\r
+       MemoInfo mi(pTopDir);\r
+       mi.RenameInfo(sCurrentTdtPath.Get(), sNewTdtPath.Get());\r
+       return TRUE;\r
+}\r
+\r
+/////////////////////////////////////////\r
+// Update's subfunction\r
+/////////////////////////////////////////\r
+BOOL LocalFileRepository::Save(const TomboURI *pCurrentURI, LPCTSTR pMemo, \r
+                                                          TomboURI *pNewURI, TString *pNewHeadLine)\r
+{\r
+       MemoNote *pNote = MemoNote::MemoNoteFactory(pCurrentURI);\r
+       if (pNote == NULL) return FALSE;\r
+       AutoPointer<MemoNote> apNote(pNote);\r
+\r
+       TString sOrigFile;\r
+       if (!GetPhysicalPath(pCurrentURI, &sOrigFile)) return FALSE;\r
+\r
+       // get current headline from path\r
+       if (!GetHeadLine(pCurrentURI, pNewHeadLine)) return FALSE;\r
+\r
+       URIOption opt(NOTE_OPTIONMASK_SAFEFILE);\r
+       if (!GetOption(pCurrentURI, &opt)) return FALSE;\r
+\r
+       if (bKeepTitle || opt.bSafeFileName) {\r
+               if (!SaveIfHeadLineIsNotChanged(pNote, pMemo, sOrigFile.Get())) return FALSE;\r
+\r
+               // URI is not changed.\r
+               return pNewURI->Init(*pCurrentURI);\r
+\r
+       } else {\r
+               // Get new headline from memo text\r
+               TString sHeadLine;\r
+               if (!MemoNote::GetHeadLineFromMemoText(pMemo, &sHeadLine)) return FALSE;\r
+\r
+               DWORD nH = ChopFileNumberLen(pNewHeadLine->Get());\r
+               DWORD nH2 = ChopFileNumberLen(sHeadLine.Get());\r
+\r
+               BOOL bResult;\r
+               // check headline has changed.\r
+               if (nH == nH2 && _tcsncmp(pNewHeadLine->Get(), sHeadLine.Get(), nH) == 0) {\r
+                       bResult = SaveIfHeadLineIsNotChanged(pNote, pMemo, sOrigFile.Get());\r
+               } else {\r
+                       bResult = SaveIfHeadLineIsChanged(pNote, pMemo, sOrigFile.Get(), \r
+                                                                                sHeadLine.Get(), pNewHeadLine);\r
+               }\r
+               if (bResult) {\r
+                       bResult = pNote->GetURI(GetRepositoryName(), pNewURI);\r
+               }\r
+               return bResult;\r
+       }\r
+}\r
+\r
+BOOL LocalFileRepository::SaveIfHeadLineIsChanged(\r
+       MemoNote *pNote, LPCTSTR pMemo, LPCTSTR pOrigFile, LPCTSTR pHeadLine, \r
+       TString *pNewHeadLine)\r
+{\r
+               LPCTSTR pNotePath = pNote->MemoPath();\r
+\r
+               // changed.\r
+               TString sMemoDir;\r
+               TString sNewFile;\r
+\r
+               if (!sMemoDir.GetDirectoryPath(pNotePath)) return FALSE;\r
+               if (!MemoNote::GetHeadLinePath(pTopDir, sMemoDir.Get(), pHeadLine, pNote->GetExtension(),\r
+                                                        &sNewFile, &pNotePath, pNewHeadLine)) return FALSE;\r
+\r
+               // write data           \r
+               BOOL bResult = pNote->SaveDataT(g_pPassManager, pMemo, sNewFile.Get());\r
+               if (bResult) {\r
+                       // delete original file\r
+                       DeleteFile(pOrigFile);\r
+\r
+                       // Additionally, rename memo info(*.tdt) file.\r
+                       if (bKeepCaret) {\r
+                               MemoInfo mi(pTopDir);\r
+                               mi.RenameInfo(pOrigFile, sNewFile.Get());\r
+                       }\r
+\r
+                       // Update note's file path information. \r
+                       if (!pNote->SetMemoPath(pNotePath)) return FALSE;\r
+\r
+                       return TRUE;\r
+\r
+               } else {\r
+                       // rollback (delete new writing file)\r
+                       DeleteFile(sNewFile.Get());\r
+                       return FALSE;\r
+               }\r
+}\r
+\r
+BOOL LocalFileRepository::SaveIfHeadLineIsNotChanged(MemoNote *pNote, LPCTSTR pMemo, LPCTSTR pOrigFile)\r
+{\r
+       // Generate backup file name\r
+       TString sBackupFile;\r
+       if (!sBackupFile.Join(pOrigFile, TEXT(".tmp"))) return FALSE;\r
+       // Backup(copy) original file\r
+       //\r
+       // Because ActiveSync can't treat Move&Write, backup operation uses not move but copy\r
+       if (!CopyFile(pOrigFile, sBackupFile.Get(), FALSE)) {\r
+               // if new file, copy are failed but it is OK.\r
+               if (GetLastError() != ERROR_FILE_NOT_FOUND) return FALSE;\r
+       }\r
+\r
+       // Save to file\r
+       if (!pNote->SaveDataT(g_pPassManager, pMemo, pOrigFile)) {\r
+               // When save failed, try to rollback original file.\r
+               DeleteFile(pOrigFile);\r
+               MoveFile(sBackupFile.Get(), pOrigFile);\r
+               return FALSE;\r
+       }\r
+       // remove backup file\r
+       DeleteFile(sBackupFile.Get());\r
+       return TRUE;\r
+}\r
+\r
+////////////////////////////////////////////////////////\r
+// remove "(n)" from headline\r
+////////////////////////////////////////////////////////\r
+\r
+static int ChopFileNumberLen(LPTSTR pHeadLine)\r
+{\r
+       if (*pHeadLine == TEXT('\0')) return 0;\r
+\r
+       DWORD n = _tcslen(pHeadLine);\r
+       LPTSTR p = pHeadLine + n - 1;\r
+       if (*p != TEXT(')')) return n;\r
+       p--;\r
+       while(p >= pHeadLine) {\r
+               if (*p == TEXT('(')) {\r
+                       return p - pHeadLine;\r
+               }\r
+               if (*p < TEXT('0') || *p > TEXT('9')) break;\r
+               p--;\r
+       }\r
+       return n;\r
+}\r
+\r
+/////////////////////////////////////////////\r
+// file existance check\r
+/////////////////////////////////////////////\r
+\r
+static BOOL IsFileExist(LPCTSTR pFileName)\r
+{\r
+       HANDLE hFile = CreateFile(pFileName, GENERIC_READ, FILE_SHARE_WRITE, NULL,\r
+               OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL, NULL);\r
+       if (hFile == INVALID_HANDLE_VALUE) {\r
+               return FALSE;\r
+       } else {\r
+               CloseHandle(hFile);\r
+               return TRUE;\r
+       }\r
+}\r
+\r
+/////////////////////////////////////////\r
+// Get Headline string\r
+/////////////////////////////////////////\r
+// This method ask password if it need.\r
+\r
+BOOL LocalFileRepository::GetHeadLine(const TomboURI *pURI, TString *pHeadLine)\r
+{\r
+       BOOL bIsLeaf = pURI->IsLeaf();\r
+\r
+       // check if the uri is safename\r
+       if (bIsLeaf) {\r
+               LPCTSTR pURIstr = pURI->GetFullURI();\r
+               DWORD n = _tcslen(pURIstr);\r
+               if (n > 4 && _tcscmp(pURIstr + n - 4, TEXT(".chs")) == 0) {\r
+                       TString sPath;\r
+                       if (!pURI->GetFilePath(&sPath)) return FALSE;\r
+                       CryptedMemoNote cn;\r
+                       cn.Init(sPath.Get());\r
+                       LPTSTR p = cn.GetMemoBody(pTopDir, g_pPassManager);\r
+                       if (p == NULL) return FALSE;\r
+                       SecureBufferAutoPointerT ap(p);\r
+                       if (!MemoNote::GetHeadLineFromMemoText(p, pHeadLine)) return FALSE;\r
+                       return TRUE;\r
+               }\r
+       }\r
+\r
+       if (!pURI->GetBaseName(pHeadLine)) return FALSE;\r
+\r
+       if (_tcslen(pHeadLine->Get()) == 0) {\r
+               // root\r
+               return pHeadLine->Set(TEXT("[root]"));\r
+       }\r
+\r
+       if (bIsLeaf) {\r
+               LPTSTR p = pHeadLine->Get();\r
+               DWORD n = _tcslen(p);\r
+               if (n > 4) {\r
+                       *(p + n - 4) = TEXT('\0');\r
+               }\r
+       }\r
+       return TRUE;\r
+}\r
+\r
+/////////////////////////////////////////\r
+// Get option information\r
+/////////////////////////////////////////\r
+\r
+BOOL LocalFileRepository::GetOption(const TomboURI *pURI, URIOption *pOption) const\r
+{\r
+       if ((pOption->nFlg & NOTE_OPTIONMASK_VALID) || (pOption->nFlg & NOTE_OPTIONMASK_ICON)) {\r
+               LPCTSTR p = pURI->GetFullURI();\r
+               DWORD len = _tcslen(p);\r
+               if (_tcscmp(p + len - 1, TEXT("/")) == 0) {\r
+                       // folder\r
+                       pOption->bValid = TRUE;\r
+                       pOption->bFolder = TRUE;\r
+               } else {\r
+                       // file\r
+                       p = p + len - 4;\r
+                       if (_tcsicmp(p, TEXT(".txt")) == 0 ||\r
+                               _tcsicmp(p, TEXT(".chi")) == 0 || \r
+                               _tcsicmp(p, TEXT(".chs")) == 0) {\r
+                               pOption->bValid = TRUE;\r
+                               pOption->bFolder = FALSE;\r
+                       } else {\r
+                               pOption->bValid = FALSE;\r
+                               return TRUE;\r
+                       }\r
+               }\r
+       }\r
+       if ((pOption->nFlg & NOTE_OPTIONMASK_ENCRYPTED) || (pOption->nFlg & NOTE_OPTIONMASK_ICON)) {\r
+               LPCTSTR p = pURI->GetFullURI();\r
+               DWORD n = _tcslen(p);\r
+               if (n > 4) {\r
+                       if (_tcsicmp(p + n - 4, TEXT(".chi")) == 0 ||\r
+                               _tcsicmp(p + n - 4, TEXT(".chs")) == 0) {\r
+                               pOption->bEncrypt = TRUE;\r
+                       } else {\r
+                               pOption->bEncrypt = FALSE;\r
+                       }\r
+               }\r
+       }\r
+\r
+       if (pOption->nFlg & NOTE_OPTIONMASK_SAFEFILE) {\r
+               LPCTSTR p = pURI->GetFullURI();\r
+               if (_tcslen(p) > 4 && _tcscmp(p + _tcslen(p) - 4, TEXT(".chs")) == 0) {\r
+                       pOption->bSafeFileName = TRUE;\r
+               } else {\r
+                       pOption->bSafeFileName = FALSE;\r
+               }\r
+       }\r
+       if (pOption->nFlg & NOTE_OPTIONMASK_ICON) {\r
+               if (pOption->bFolder) {\r
+                       pOption->iIcon = IMG_FOLDER;\r
+               } else {\r
+                       if (pOption->bEncrypt) {\r
+                               pOption->iIcon = IMG_ARTICLE_ENCRYPTED;\r
+                       } else {\r
+                               pOption->iIcon = IMG_ARTICLE;\r
+                       }\r
+               }\r
+       }\r
+       return TRUE;\r
+}\r
+\r
+/////////////////////////////////////////\r
+// Set option information\r
+/////////////////////////////////////////\r
+\r
+BOOL LocalFileRepository::SetOption(const TomboURI *pCurrentURI, URIOption *pOption)\r
+{\r
+       if (pOption->nFlg & NOTE_OPTIONMASK_ENCRYPTED) {\r
+               if (pCurrentURI->IsLeaf()) {\r
+                       // set option to file\r
+                       if (pOption->bEncrypt) {\r
+                               // encrypt\r
+                               return EncryptLeaf(pCurrentURI, pOption);\r
+                       } else {\r
+                               // decrypt\r
+                               return DecryptLeaf(pCurrentURI, pOption);\r
+                       }\r
+               } else {\r
+                       // set option to folder\r
+                       return EnDecryptFolder(pCurrentURI, pOption);\r
+               }\r
+       }\r
+       return TRUE;\r
+}\r
+\r
+/////////////////////////////////////////\r
+// Get safe file name\r
+/////////////////////////////////////////\r
+\r
+BOOL LocalFileRepository::GetSafeFileName(const TString *pBasePath, TString *pNewName)\r
+{\r
+       TString s;\r
+\r
+       DWORD l = _tcslen(pBasePath->Get()) + 20 + 1;\r
+       if (!s.Alloc(l)) return FALSE;\r
+       _tcscpy(s.Get(), pBasePath->Get());\r
+       _tcscat(s.Get(), TEXT("0000000000000000.chs"));\r
+\r
+       LPTSTR pFileNamePart = s.Get() + _tcslen(pBasePath->Get());\r
+       int nw;\r
+       do {\r
+               // generate 10digit random number\r
+               nw = rand() % 10000;\r
+               wsprintf(pFileNamePart, TEXT("%04d"), nw);\r
+               nw = rand() % 10000;\r
+               wsprintf(pFileNamePart + 4, TEXT("%04d"), nw);\r
+               nw = rand() % 10000;\r
+               wsprintf(pFileNamePart + 8, TEXT("%04d"), nw);\r
+               nw = rand() % 10000;\r
+               wsprintf(pFileNamePart + 12, TEXT("%04d"), nw);\r
+               _tcscpy(pFileNamePart + 16, TEXT(".chs"));\r
+       } while(IsFileExist(s.Get())); // if same name exists, retry it\r
+\r
+       if (!pNewName->Set(pFileNamePart)) return FALSE;\r
+\r
+       return TRUE;\r
+}\r
+\r
+/////////////////////////////////////////\r
+// Decide new allocated filename\r
+/////////////////////////////////////////\r
+\r
+BOOL LocalFileRepository::NegotiateNewName(LPCTSTR pMemoPath, LPCTSTR pText, LPCTSTR pMemoDir,\r
+                                                        TString *pFullPath, LPCTSTR *ppNotePath, TString *pNewHeadLine)\r
+{\r
+       TString sHeadLine;\r
+\r
+       if (bSafeFileName) {\r
+               TString sBase;\r
+               TString sNewName;\r
+               if (!sBase.Join(pTopDir, TEXT("\\"), pMemoDir)) return FALSE;\r
+               if (!GetSafeFileName(&sBase, &sNewName)) return FALSE;\r
+\r
+               if (!pFullPath->Join(sBase.Get(), sNewName.Get())) return FALSE;\r
+\r
+               *ppNotePath = pFullPath->Get() + _tcslen(pTopDir) + 1;\r
+               if (!MemoNote::GetHeadLineFromMemoText(pText, pNewHeadLine)) return FALSE;\r
+       } else {\r
+               if (bKeepTitle) {\r
+                       if (!MemoNote::GetHeadLineFromFilePath(pMemoPath, &sHeadLine)) return FALSE;\r
+               } else {\r
+                       if (!MemoNote::GetHeadLineFromMemoText(pText, &sHeadLine)) return FALSE;\r
+               }\r
+       \r
+               if (!MemoNote::GetHeadLinePath(pTopDir, pMemoDir, sHeadLine.Get(), TEXT(".chi"), \r
+                                                               pFullPath, ppNotePath, pNewHeadLine)) {\r
+                       return FALSE;\r
+               }\r
+       }\r
+       return TRUE;\r
+}\r
+\r
+//////////////////////////////\r
+// Encrypt file\r
+//\r
+// assume pCurURI is Leaf.\r
+\r
+TomboURI *LocalFileRepository::DoEncryptFile(const TomboURI *pOldURI, MemoNote *pNote, TString *pHeadLine)\r
+{\r
+       TString sMemoDir;\r
+       if (!sMemoDir.GetDirectoryPath(pNote->MemoPath())) return NULL;\r
+\r
+       // Get plain memo data from file\r
+       LPTSTR pText = pNote->GetMemoBody(pTopDir, g_pPassManager);\r
+       if (pText == NULL) return NULL;\r
+       SecureBufferAutoPointerT ap1(pText);\r
+\r
+       TString sFullPath;\r
+       LPCTSTR pNotePath;\r
+\r
+       // Decide new name\r
+       if (!NegotiateNewName(pNote->MemoPath(), pText, sMemoDir.Get(), \r
+                                               &sFullPath, &pNotePath, pHeadLine)) return NULL;\r
+\r
+       // Create new CyrptedMemoNote instance\r
+       CryptedMemoNote *p = new CryptedMemoNote();\r
+\r
+       if (!p->Init(pNotePath)) return NULL;\r
+       AutoPointer<CryptedMemoNote> ap2(p);\r
+\r
+       // Save memo\r
+       if (!p->SaveDataT(g_pPassManager, pText, sFullPath.Get())) return NULL;\r
+\r
+       // rename TDT\r
+       TString sOrigTDT;\r
+       TString sNewTDT;\r
+       if (GetTDTFullPath(pOldURI, &sOrigTDT) &&\r
+               sNewTDT.Join(sFullPath.Get(), TEXT(".tdt"))) {\r
+               DeleteFile(sNewTDT.Get());\r
+               MoveFile(sOrigTDT.Get(), sNewTDT.Get());\r
+       }\r
+\r
+       // generate new URI\r
+       TomboURI *pURI = new TomboURI();\r
+       if (pURI == NULL || !p->GetURI(GetRepositoryName(), pURI)) return NULL;\r
+\r
+       return pURI;\r
+}\r
+\r
+BOOL LocalFileRepository::EncryptLeaf(const TomboURI *pPlainURI, URIOption *pOption)\r
+{\r
+       MemoNote *pPlain = MemoNote::MemoNoteFactory(pPlainURI);\r
+       AutoPointer<MemoNote> ap(pPlain);\r
+\r
+       pOption->pNewHeadLine = new TString();\r
+       if (pOption->pNewHeadLine == NULL) return FALSE;\r
+\r
+       pOption->pNewURI = DoEncryptFile(pPlainURI, pPlain, pOption->pNewHeadLine);\r
+       if (pOption->pNewURI == NULL) return FALSE;\r
+\r
+       if (!pPlain->DeleteMemoData(pTopDir)) {\r
+               SetLastError(ERROR_TOMBO_W_DELETEOLD_FAILED);\r
+               return FALSE;\r
+       }\r
+\r
+       return TRUE;\r
+}\r
+\r
+BOOL LocalFileRepository::DecryptLeaf(const TomboURI *pCurrentURI, URIOption *pOption)\r
+{\r
+       BOOL b;\r
+       MemoNote *pCur = MemoNote::MemoNoteFactory(pCurrentURI);\r
+       AutoPointer<MemoNote> ap(pCur);\r
+\r
+       if ((pOption->pNewHeadLine = new TString()) == NULL) return FALSE;\r
+\r
+       MemoNote *p = pCur->Decrypt(pTopDir, g_pPassManager, pOption->pNewHeadLine, &b);\r
+       if (p == NULL) return FALSE;\r
+       AutoPointer<MemoNote> ap2(p);\r
+\r
+       pOption->pNewURI = new TomboURI();\r
+       if (pOption->pNewURI == NULL) return FALSE;\r
+       if (!p->GetURI(GetRepositoryName(), pOption->pNewURI)) return FALSE;\r
+\r
+       // rename TDT\r
+       TString sOrigTDT;\r
+       TString sNewTDT;\r
+       if (GetTDTFullPath(pCurrentURI, &sOrigTDT) &&\r
+               GetTDTFullPath(pOption->pNewURI, &sNewTDT)) {\r
+               DeleteFile(sNewTDT.Get());\r
+               MoveFile(sOrigTDT.Get(), sNewTDT.Get());\r
+       }\r
+\r
+       if (!pCur->DeleteMemoData(pTopDir)) {\r
+               SetLastError(ERROR_TOMBO_W_DELETEOLD_FAILED);\r
+               return FALSE;\r
+       }\r
+\r
+       return TRUE;\r
+}\r
+\r
+/////////////////////////////////////////\r
+// Encrypt/Decrypt folder\r
+/////////////////////////////////////////\r
+\r
+BOOL LocalFileRepository::EnDecryptFolder(const TomboURI *pCurrentURI, URIOption *pOption)\r
+{\r
+       TString sPath;\r
+       if (!GetPhysicalPath(pCurrentURI, &sPath)) return FALSE;\r
+\r
+       DSEncrypt fc;\r
+       if (!fc.Init(pTopDir, sPath.Get(), pCurrentURI->GetFullURI(), pOption->bEncrypt)) return FALSE;\r
+\r
+       // ask password\r
+       BOOL bCancel;\r
+       const char *pPass = g_pPassManager->Password(&bCancel, pOption->bEncrypt);\r
+       if (pPass == NULL) {\r
+               SetLastError(ERROR_TOMBO_I_GET_PASSWORD_CANCELED);\r
+               return FALSE;\r
+       }\r
+\r
+       // scan and encrypt/decrypt\r
+       if (!fc.Scan() || fc.nNotEncrypted != 0) {\r
+               SetLastError(ERROR_TOMBO_E_SOME_ERROR_OCCURED);\r
+               return FALSE;\r
+       }\r
+       return TRUE;\r
+}\r
+\r
+/////////////////////////////////////////\r
+// Delete Note/folder\r
+/////////////////////////////////////////\r
+\r
+BOOL LocalFileRepository::Delete(const TomboURI *pURI, URIOption *pOption)\r
+{\r
+       if (pURI->IsLeaf()) {\r
+               MemoNote *pNote = MemoNote::MemoNoteFactory(pURI);\r
+               if (pNote == NULL) return FALSE;\r
+               AutoPointer<MemoNote> ap(pNote);\r
+\r
+               return pNote->DeleteMemoData(pTopDir);\r
+       } else {\r
+               TString sFullPath;\r
+               if (!GetPhysicalPath(pURI, &sFullPath)) return FALSE;\r
+               \r
+               DSFileDelete fd;\r
+               fd.Init(sFullPath.Get());\r
+               if (!fd.Scan()) {\r
+                       return FALSE;\r
+               }\r
+       }\r
+       return TRUE;\r
+}\r
+\r
+/////////////////////////////////////////\r
+// Get Physical file/folder path\r
+/////////////////////////////////////////\r
+BOOL LocalFileRepository::GetPhysicalPath(const TomboURI *pURI, TString *pFullPath)\r
+{\r
+       if (!pFullPath->Alloc(_tcslen(pTopDir) + _tcslen(pURI->GetPath()) + 1)) return FALSE;\r
+       LPCTSTR p = pURI->GetPath();\r
+       _tcscpy(pFullPath->Get(), pTopDir);\r
+       LPTSTR q = pFullPath->Get() + _tcslen(pFullPath->Get());\r
+\r
+       while (*p) {\r
+#if defined(PLATFORM_WIN32)\r
+               if (IsDBCSLeadByte(*p)) {\r
+                       *q++ = *p++;\r
+               }\r
+#endif\r
+               if (*p == TEXT('/')) {\r
+                       *q++ = TEXT('\\');\r
+                       p++;\r
+                       continue;\r
+               }\r
+               *q++ = *p++;\r
+       }\r
+       *q = TEXT('\0');\r
+       return TRUE;\r
+}\r
+\r
+/////////////////////////////////////////\r
+\r
+static BOOL IsSubFolder(LPCTSTR pSrc, LPCTSTR pDst)\r
+{\r
+       DWORD n = _tcslen(pSrc);\r
+       if (_tcsncmp(pSrc, pDst, n) == 0) return TRUE;\r
+       return FALSE;\r
+}\r
+\r
+/////////////////////////////////////////\r
+// Copy note/folder\r
+/////////////////////////////////////////\r
+\r
+BOOL LocalFileRepository::Copy(const TomboURI *pCopyFrom, const TomboURI *pCopyTo, URIOption *pOption)\r
+{\r
+       URIOption opt1(NOTE_OPTIONMASK_ENCRYPTED | NOTE_OPTIONMASK_SAFEFILE | NOTE_OPTIONMASK_VALID);\r
+       if (!GetOption(pCopyFrom, &opt1)) return FALSE;\r
+\r
+       URIOption opt2(NOTE_OPTIONMASK_VALID);\r
+       if (!GetOption(pCopyTo, &opt2)) return FALSE;\r
+\r
+       if (!opt1.bValid || !opt2.bValid || !opt2.bFolder) {\r
+               SetLastError(ERROR_TOMBO_E_INVALIDURI);\r
+               return FALSE;\r
+       }\r
+\r
+       if (opt1.bFolder) {\r
+               TString sSrcFull, sDstFull;\r
+               if (!GetPhysicalPath(pCopyFrom, &sSrcFull)) return FALSE;\r
+               if (!GetPhysicalPath(pCopyTo, &sDstFull)) return FALSE;\r
+\r
+               if (IsSubFolder(sSrcFull.Get(), sDstFull.Get())) {\r
+                       SetLastError(ERROR_TOMBO_W_OPERATION_NOT_PERMITTED);\r
+                       return FALSE;\r
+               }\r
+               \r
+               // Adjust Path\r
+               TString sHL;\r
+               if (!GetHeadLine(pCopyFrom, &sHL)) return FALSE;\r
+               if (!sDstFull.StrCat(sHL.Get()) || !sDstFull.StrCat(TEXT("\\"))) return FALSE;\r
+\r
+               MemoFolder mf;\r
+               if (!mf.Init(pTopDir, sSrcFull.Get())) return FALSE;\r
+               return mf.Copy(sDstFull.Get());\r
+       } else {\r
+               if ((pOption->pNewHeadLine = new TString()) == NULL) { SetLastError(ERROR_NOT_ENOUGH_MEMORY); return FALSE; }\r
+               if ((pOption->pNewURI = new TomboURI()) == NULL) { SetLastError(ERROR_NOT_ENOUGH_MEMORY); return FALSE; }\r
+\r
+               TString sToPath;\r
+               if (!GetPhysicalPath(pCopyTo, &sToPath)) return FALSE;\r
+\r
+               if (opt1.bSafeFileName) {\r
+                       TString sOrigFull;\r
+                       if (!GetPhysicalPath(pCopyFrom, &sOrigFull)) return FALSE;\r
+\r
+                       TString sBase;\r
+                       if (!pCopyFrom->GetBaseName(&sBase)) return FALSE;\r
+                       TString sNewPath;\r
+                       if (!sNewPath.Join(sToPath.Get(), sBase.Get())) return FALSE;\r
+                       if (IsFileExist(sNewPath.Get())) {\r
+                               TString sNewBase;\r
+                               if (!GetSafeFileName(&sToPath, &sNewBase)) return FALSE;\r
+                               if (!sNewPath.Join(sToPath.Get(), sNewBase.Get())) return FALSE;\r
+                               if (!sBase.Set(sNewBase.Get())) return FALSE;\r
+                       }\r
+                       if (!CopyFile(sOrigFull.Get(), sNewPath.Get(), TRUE)) return FALSE;\r
+                       TString sOrigTDT, sNewTDT;\r
+                       if (sOrigTDT.Join(sOrigFull.Get(), TEXT(".tdt")) &&\r
+                               sNewTDT.Join(sNewPath.Get(), TEXT(".tdt"))) {\r
+                               CopyFile(sOrigTDT.Get(), sNewTDT.Get(), TRUE);\r
+                       }\r
+                       if (!GetHeadLine(pCopyFrom, pOption->pNewHeadLine)) return FALSE;\r
+\r
+                       TString sNewURI;\r
+                       if (!sNewURI.Join(pCopyTo->GetFullURI(), sBase.Get())) return FALSE;\r
+                       if (!pOption->pNewURI->Init(sNewURI.Get())) return FALSE;\r
+\r
+                       return TRUE;\r
+               } else {\r
+                       MemoNote *pNote = MemoNote::MemoNoteFactory(pCopyFrom);\r
+                       if (pNote == NULL) return FALSE;\r
+                       AutoPointer<MemoNote> ap(pNote);\r
+\r
+                       LPCTSTR pMemoPath = sToPath.Get() + _tcslen(pTopDir) + 1;\r
+\r
+                       MemoNote *pNewNote = MemoNote::CopyMemo(pTopDir, pNote, pMemoPath, pOption->pNewHeadLine);\r
+                       if (pNewNote == NULL) return FALSE;\r
+                       AutoPointer<MemoNote> ap2(pNewNote);\r
+\r
+                       pNewNote->GetURI(GetRepositoryName(), pOption->pNewURI);\r
+                       return TRUE;\r
+               }\r
+       }\r
+}\r
+\r
+/////////////////////////////////////////\r
+// Move\r
+/////////////////////////////////////////\r
+\r
+BOOL LocalFileRepository::Move(const TomboURI *pMoveFrom, const TomboURI *pMoveTo, URIOption *pOption)\r
+{\r
+       if (!Copy(pMoveFrom, pMoveTo, pOption)) return FALSE;\r
+       URIOption opt;\r
+       if (!Delete(pMoveFrom, &opt)) return FALSE;\r
+       return TRUE;\r
+}\r
+\r
+/////////////////////////////////////////\r
+// Rename headline\r
+/////////////////////////////////////////\r
+\r
+BOOL LocalFileRepository::ChangeHeadLine(const TomboURI *pURI, LPCTSTR pReqNewHeadLine, URIOption *pOption)\r
+{\r
+       URIOption opt(NOTE_OPTIONMASK_ENCRYPTED | NOTE_OPTIONMASK_SAFEFILE | NOTE_OPTIONMASK_VALID);\r
+       if (!GetOption(pURI, &opt)) return FALSE;\r
+       if (opt.bValid == FALSE) {\r
+               SetLastError(ERROR_TOMBO_E_INVALIDURI);\r
+               return FALSE;\r
+       }\r
+\r
+       if (opt.bFolder) {\r
+               TString sFullPath;\r
+               if (!GetPhysicalPath(pURI, &sFullPath)) return FALSE;\r
+\r
+               MemoFolder mf;\r
+               if (!mf.Init(pTopDir, sFullPath.Get())) return FALSE;\r
+\r
+               return mf.Rename(pReqNewHeadLine);\r
+       } else {\r
+               if (opt.bEncrypt && opt.bSafeFileName) {\r
+                       SetLastError(ERROR_TOMBO_I_OPERATION_NOT_PERFORMED);\r
+                       return FALSE;\r
+               }\r
+\r
+               MemoNote *pNote = MemoNote::MemoNoteFactory(pURI);\r
+               if (pNote == NULL) return FALSE;\r
+               AutoPointer<MemoNote> ap(pNote);\r
+\r
+               if (!pNote->Rename(pTopDir, pReqNewHeadLine)) return FALSE;\r
+\r
+               TomboURI *p = new TomboURI();\r
+               if (p == NULL || !pNote->GetURI(GetRepositoryName(), p)) {\r
+                       delete p;\r
+                       return FALSE;\r
+               }\r
+               pOption->pNewURI = p;\r
+\r
+               return TRUE;\r
+       }\r
+}\r
+\r
+/////////////////////////////////////////\r
+// GetList\r
+/////////////////////////////////////////\r
+\r
+DWORD LocalFileRepository::GetList(const TomboURI *pFolder, DirList *pList, BOOL bSkipEncrypt, BOOL bLooseDecrypt)\r
+{\r
+       TString sPartPath;\r
+       if (!pFolder->GetFilePath(&sPartPath)) return TOMBO_REPO_GETLIST_FAIL;\r
+\r
+       TString sFullPath;\r
+       if (_tcslen(sPartPath.Get()) > 0) {\r
+               if (!sFullPath.Join(pTopDir, TEXT("\\"), sPartPath.Get(), TEXT("*.*"))) return TOMBO_REPO_GETLIST_FAIL;\r
+       } else {\r
+               if (!sFullPath.Join(pTopDir, TEXT("\\*.*"))) return TOMBO_REPO_GETLIST_FAIL;\r
+       }\r
+\r
+       if (!pList->Init(pFolder->GetFullURI())) return TOMBO_REPO_GETLIST_FAIL;\r
+       switch (pList->GetList(sFullPath.Get(), bSkipEncrypt, bLooseDecrypt)) {\r
+       case DIRLIST_GETLIST_RESULT_SUCCESS:\r
+               return TOMBO_REPO_GETLIST_SUCCESS;\r
+       case DIRLIST_GETLIST_RESULT_PARTIAL:\r
+               return TOMBO_REPO_GETLIST_PARTIAL;\r
+       default:\r
+               return TOMBO_REPO_GETLIST_FAIL;\r
+       }\r
+}\r
+\r
+URIList *LocalFileRepository::GetChild(const TomboURI *pFolder, BOOL bSkipEncrypt, BOOL bLooseDecrypt, BOOL *pLoose)\r
+{\r
+       URIList *pList = new URIList();\r
+       if (pList == NULL || !pList->Init()) { return FALSE; }\r
+\r
+       DirList dlist;\r
+       switch (GetList(pFolder, &dlist, bSkipEncrypt, bLooseDecrypt)) {\r
+       case DIRLIST_GETLIST_RESULT_FAIL:\r
+               return NULL;\r
+       case DIRLIST_GETLIST_RESULT_SUCCESS:\r
+               *pLoose = FALSE;\r
+               break;\r
+       case DIRLIST_GETLIST_RESULT_PARTIAL:\r
+               *pLoose = TRUE;\r
+               break;\r
+       }\r
+\r
+       for (DWORD i = 0; i < dlist.NumItems(); i++) {\r
+               DirListItem *pItem = dlist.GetItem(i);\r
+               LPCTSTR pFN = dlist.GetFileName(pItem->nFileNamePos);\r
+               LPCTSTR pHL = dlist.GetFileName(pItem->nHeadLinePos);\r
+               LPCTSTR pURI = dlist.GetFileName(pItem->nURIPos);\r
+\r
+               TomboURI sURI;\r
+               if (!sURI.Init(pURI)) return NULL;\r
+\r
+               URIOption opt(NOTE_OPTIONMASK_VALID);\r
+               if (!GetOption(&sURI, &opt)) return NULL;\r
+\r
+               if (!opt.bFolder) {\r
+                       DWORD dirType = MemoNote::IsNote(pFN);\r
+                       if (dirType != NOTE_TYPE_PLAIN && dirType != NOTE_TYPE_CRYPTED) continue;\r
+               }\r
+\r
+               if (!pList->Add(&sURI, dlist.GetFileName(pItem->nHeadLinePos))) return NULL;\r
+       }\r
+       return pList;\r
+}\r
+\r
+\r
+/////////////////////////////////////////\r
+// \r
+/////////////////////////////////////////\r
+BOOL LocalFileRepository::RequestAllocateURI(const TomboURI *pBaseURI, LPCTSTR pText, TString *pHeadLine, TomboURI *pURI, const TomboURI *pTemplateURI)\r
+{      \r
+       LPCTSTR pMemoPath;\r
+       TString sMemoPath;\r
+       if (!pBaseURI->GetFilePath(&sMemoPath)) return FALSE;\r
+       pMemoPath = sMemoPath.Get();\r
+\r
+       MemoNote *pNote;\r
+       if (pTemplateURI) {\r
+               MemoNote *pCurrent = MemoNote::MemoNoteFactory(pTemplateURI);\r
+               if (pCurrent == NULL) return FALSE;\r
+               AutoPointer<MemoNote> apNote(pCurrent);\r
+\r
+               pNote = pCurrent->GetNewInstance();\r
+       } else {\r
+               pNote = new PlainMemoNote();\r
+       }\r
+\r
+       if (pNote == NULL) return FALSE;\r
+\r
+       AutoPointer<MemoNote> ap(pNote);\r
+       \r
+       TString sFullPath;\r
+       TString sHeadLine;\r
+       LPCTSTR pNotePath;\r
+\r
+       if (!MemoNote::GetHeadLineFromMemoText(pText, &sHeadLine)) return FALSE;\r
+       if (!MemoNote::GetHeadLinePath(pTopDir, pMemoPath, sHeadLine.Get(), \r
+                                                                       pNote->GetExtension(), &sFullPath, &pNotePath, pHeadLine)) return FALSE;\r
+       if (!pNote->Init(pNotePath)) return FALSE;\r
+\r
+       if (!pNote->GetURI(GetRepositoryName(), pURI)) return FALSE;\r
+\r
+       return TRUE;\r
+}\r
+\r
+BOOL LocalFileRepository::GetAttribute(const TomboURI *pURI, NoteAttribute *pAttribute)\r
+{\r
+       MemoNote *pNote = MemoNote::MemoNoteFactory(pURI);\r
+       if (pNote == NULL) return FALSE;\r
+       AutoPointer<MemoNote> ap(pNote);\r
+\r
+       MemoInfo mi(pTopDir);\r
+       DWORD nPos = 0;\r
+       if (pNote->MemoPath()) {\r
+               if (!mi.ReadInfo(pNote->MemoPath(), &nPos)) nPos = 0;\r
+       }\r
+       pAttribute->nCursorPos = nPos;\r
+\r
+       BOOL bReadOnly;\r
+       if (!g_Property.GetOpenReadOnly()) {\r
+//             if (!pNote->IsReadOnly(&bReadOnly)) {\r
+//                     return FALSE;\r
+//             }\r
+               TString sFullPath;\r
+               if (!sFullPath.Join(pTopDir, TEXT("\\"), pNote->MemoPath())) return FALSE;\r
+\r
+               WIN32_FIND_DATA wfd;\r
+               HANDLE h = FindFirstFile(sFullPath.Get(), &wfd);\r
+               if (h == INVALID_HANDLE_VALUE) return FALSE;\r
+               FindClose(h);\r
+\r
+               bReadOnly = (wfd.dwFileAttributes & FILE_ATTRIBUTE_READONLY) == FILE_ATTRIBUTE_READONLY;\r
+\r
+       } else {\r
+               bReadOnly = TRUE;\r
+       }\r
+       pAttribute->bReadOnly = bReadOnly;\r
+\r
+       return TRUE;\r
+}\r
+\r
+BOOL LocalFileRepository::GetNoteAttribute(const TomboURI *pURI, UINT64 *pLastUpdate, UINT64 *pCreateDate, UINT64 *pFileSize)\r
+{\r
+       URIOption opt(NOTE_OPTIONMASK_VALID);\r
+       if (!GetOption(pURI, &opt)) return FALSE;\r
+       if (!opt.bValid) { SetLastError(ERROR_TOMBO_E_INVALIDURI); return FALSE; }\r
+       if (opt.bFolder) { SetLastError(ERROR_NOT_SUPPORTED); return FALSE; }\r
+\r
+       TString sFullPath;\r
+       if (!GetPhysicalPath(pURI, &sFullPath)) return FALSE;\r
+\r
+       WIN32_FIND_DATA wfd;\r
+       HANDLE h = FindFirstFile(sFullPath.Get(), &wfd);\r
+       if (h != INVALID_HANDLE_VALUE) {\r
+               *pLastUpdate = ((UINT64)wfd.ftLastWriteTime.dwHighDateTime << 32) | (UINT64)wfd.ftLastWriteTime.dwLowDateTime ;\r
+               *pCreateDate = ((UINT64)wfd.ftCreationTime.dwHighDateTime << 32) | (UINT64)wfd.ftCreationTime.dwLowDateTime;\r
+               *pFileSize = ((UINT64)wfd.nFileSizeHigh << 32 ) | (UINT64)wfd.nFileSizeLow;\r
+               FindClose(h);\r
+               return TRUE;\r
+       } else {\r
+               return FALSE;\r
+       }\r
+}\r
+\r
+BOOL LocalFileRepository::SetAttribute(const TomboURI *pURI, const NoteAttribute *pAttribute)\r
+{\r
+       MemoNote *pNote = MemoNote::MemoNoteFactory(pURI);\r
+       if (pNote == NULL) return FALSE;\r
+       AutoPointer<MemoNote> ap(pNote);\r
+\r
+       MemoInfo mi(pTopDir);\r
+\r
+       if (pNote == NULL) return FALSE;\r
+       mi.WriteInfo(pNote->MemoPath(), pAttribute->nCursorPos);\r
+\r
+       return TRUE;\r
+}\r
+\r
+LPTSTR LocalFileRepository::GetNoteData(const TomboURI *pURI)\r
+{\r
+       MemoNote *pNote = MemoNote::MemoNoteFactory(pURI);\r
+       if (pNote == NULL) return FALSE;\r
+       AutoPointer<MemoNote> ap(pNote);\r
+\r
+       BOOL bLoop = FALSE;\r
+       LPTSTR p;\r
+\r
+       do {\r
+               bLoop = FALSE;\r
+               p = pNote->GetMemoBody(pTopDir, g_pPassManager);\r
+               if (p == NULL) {\r
+                       DWORD nError = GetLastError();\r
+                       if (nError == ERROR_INVALID_PASSWORD) {\r
+                               bLoop = TRUE;\r
+                       } else {\r
+                               return NULL;\r
+                       }\r
+               }\r
+       } while (bLoop);\r
+       return p;\r
+}\r
+\r
+LPBYTE LocalFileRepository::GetNoteDataNative(const TomboURI *pURI, LPDWORD pSize)\r
+{\r
+       MemoNote *pNote = MemoNote::MemoNoteFactory(pURI);\r
+       if (pNote == NULL) return FALSE;\r
+       AutoPointer<MemoNote> ap(pNote);\r
+\r
+       BOOL bLoop = FALSE;\r
+       LPBYTE p;\r
+       DWORD nSize;\r
+       do {\r
+               bLoop = FALSE;\r
+               p = pNote->GetMemoBodyNative(pTopDir, g_pPassManager, &nSize);\r
+               if (p == NULL) {\r
+                       DWORD nError = GetLastError();\r
+                       if (nError == ERROR_INVALID_PASSWORD) {\r
+                               bLoop = TRUE;\r
+                       } else {\r
+                               return NULL;\r
+                       }\r
+               }\r
+       } while (bLoop);\r
+\r
+       if (p) {\r
+               *pSize = nSize;\r
+       }\r
+\r
+       return p;\r
+}\r
+\r
+BOOL LocalFileRepository::ExecuteAssoc(const TomboURI *pURI, ExeAppType nType)\r
+{\r
+       URIOption opt(NOTE_OPTIONMASK_VALID);\r
+       if (!GetOption(pURI, &opt)) return FALSE;\r
+       if (opt.bValid == FALSE) {\r
+               SetLastError(ERROR_TOMBO_E_INVALIDURI);\r
+               return FALSE;\r
+       }\r
+\r
+       if (opt.bFolder) {\r
+               if (nType != ExecType_Assoc) {\r
+                       SetLastError(ERROR_NOT_SUPPORTED);\r
+                       return FALSE;\r
+               }\r
+\r
+               TString sCurrentPath;\r
+               if (!GetPhysicalPath(pURI, &sCurrentPath)) return FALSE;\r
+\r
+#if defined(PLATFORM_PKTPC) || defined(PLATFORM_WM5)\r
+               STARTUPINFO si;\r
+               PROCESS_INFORMATION pi;\r
+               memset(&si, 0, sizeof(si));\r
+               memset(&pi, 0, sizeof(pi));\r
+               si.cb = sizeof(si);\r
+\r
+               if (!CreateProcess(TEXT("\\windows\\iexplore.exe"), sCurrentPath.Get(), NULL, NULL, FALSE, 0, NULL, NULL, &si, &pi)) return FALSE;\r
+               CloseHandle(pi.hProcess);\r
+               CloseHandle(pi.hThread);\r
+               return TRUE;\r
+#else\r
+               SHELLEXECUTEINFO se;\r
+               memset(&se, 0, sizeof(se));\r
+               se.cbSize = sizeof(se);\r
+               se.hwnd = NULL;\r
+               se.lpVerb = TEXT("explore");\r
+               se.lpFile = sCurrentPath.Get();\r
+               se.lpParameters = NULL;\r
+               se.lpDirectory = NULL;\r
+               se.nShow = SW_SHOWNORMAL;\r
+               ShellExecuteEx(&se);\r
+               return TRUE;\r
+#endif\r
+       } else {\r
+               TString sFullPath;\r
+               if (!GetPhysicalPath(pURI, &sFullPath)) return FALSE;\r
+\r
+               if (nType == ExecType_Assoc) {\r
+                       SHELLEXECUTEINFO se;\r
+                       memset(&se, 0, sizeof(se));\r
+                       se.cbSize = sizeof(se);\r
+                       se.hwnd = NULL;\r
+                       se.lpVerb = TEXT("open");\r
+                       se.lpFile = sFullPath.Get();\r
+                       se.lpParameters = NULL;\r
+                       se.lpDirectory = NULL;\r
+                       se.nShow = SW_SHOWNORMAL;\r
+                       ShellExecuteEx(&se);\r
+                       if ((int)se.hInstApp < 32) return FALSE;\r
+                       return TRUE;\r
+               } else if (nType == ExecType_ExtApp1 || nType == ExecType_ExtApp2) {\r
+                       LPCTSTR pExeFile = nType == ExecType_ExtApp1 ? g_Property.GetExtApp1() : g_Property.GetExtApp2();\r
+                       STARTUPINFO si;\r
+                       PROCESS_INFORMATION pi;\r
+                       memset(&si, 0, sizeof(si));\r
+                       memset(&pi, 0, sizeof(pi));\r
+                       si.cb = sizeof(si);\r
+\r
+                       TString sExe;\r
+                       TString sCmdLine;\r
+#if defined(PLATFORM_WIN32)\r
+                       if (!sCmdLine.Join(TEXT("\""), pExeFile, TEXT("\" "))) return FALSE;\r
+                       if (!sCmdLine.StrCat(TEXT("\""))) return FALSE;\r
+                       if (!sCmdLine.StrCat(sFullPath.Get())) return FALSE;\r
+                       if (!sCmdLine.StrCat(TEXT("\""))) return FALSE;\r
+                       if (!CreateProcess(NULL, sCmdLine.Get(), NULL, NULL, FALSE, 0, NULL, NULL, &si, &pi)) return FALSE;\r
+                       CloseHandle(pi.hProcess);\r
+                       CloseHandle(pi.hThread);\r
+                       return TRUE;\r
+\r
+#endif\r
+#if defined(PLATFORM_HPC)\r
+                       if (!sExe.Set(pExeFile)) return FALSE;\r
+                       if (!sCmdLine.Join(TEXT("\""), sFullPath.Get(), TEXT("\""))) return FALSE;\r
+                       if (!CreateProcess(sExe.Get(), sCmdLine.Get(), NULL, NULL, FALSE, 0, NULL, NULL, &si, &pi)) return FALSE;\r
+                       CloseHandle(pi.hProcess);\r
+                       CloseHandle(pi.hThread);\r
+                       return TRUE;\r
+\r
+#endif\r
+#if defined(PLATFORM_PKTPC) || defined(PLATFORM_WM5)\r
+                       if (!sExe.Set(pExeFile)) return FALSE;\r
+                       if (!sCmdLine.Set(sFullPath.Get())) return FALSE;\r
+                       if (!CreateProcess(sExe.Get(), sCmdLine.Get(), NULL, NULL, FALSE, 0, NULL, NULL, &si, &pi)) return FALSE;\r
+                       CloseHandle(pi.hProcess);\r
+                       CloseHandle(pi.hThread);\r
+                       return TRUE;\r
+#endif\r
+#if defined(PLATFORM_BE500)\r
+                       return CoshExecute(NULL, pExeFile, sFullPath.Get());\r
+#endif\r
+               } else {\r
+                       SetLastError(ERROR_NOT_SUPPORTED);\r
+                       return FALSE;\r
+               }\r
+       }\r
+}\r
+\r
+BOOL LocalFileRepository::MakeFolder(const TomboURI *pURI, LPCTSTR pFolderName)\r
+{\r
+       URIOption opt(NOTE_OPTIONMASK_VALID);\r
+       if (!GetOption(pURI, &opt)) return FALSE;\r
+       if (!opt.bValid) { SetLastError(ERROR_TOMBO_E_INVALIDURI); return FALSE; }\r
+       if (!opt.bFolder) { SetLastError(ERROR_NOT_SUPPORTED); return FALSE; }\r
+\r
+       TString sPath;\r
+       if (!GetPhysicalPath(pURI, &sPath)) return FALSE;\r
+       if (!sPath.StrCat(pFolderName)) return FALSE;\r
+       TrimRight(sPath.Get());\r
+       ChopFileSeparator(sPath.Get());\r
+       return CreateDirectory(sPath.Get(), NULL);\r
+}\r
+\r
+/////////////////////////////////////////\r
+// Virtual folder\r
+/////////////////////////////////////////\r
+\r
+VFolderRepository::VFolderRepository()\r
+{\r
+}\r
+\r
+VFolderRepository::~VFolderRepository()\r
+{\r
+}\r
+\r
+BOOL VFolderRepository::Init(LPCTSTR pRepName, LPCTSTR pDispName)\r
+{\r
+       return RepositoryImpl::Init(pRepName, pDispName, TOMBO_REPO_SUBREPO_TYPE_VFOLDER);\r
+}\r
+\r
+RepositoryImpl *VFolderRepository::Clone()\r
+{\r
+       VFolderRepository *pImpl = new VFolderRepository();\r
+       if (pImpl == NULL) {\r
+               SetLastError(ERROR_NOT_ENOUGH_MEMORY);\r
+               return NULL;\r
+       }\r
+       if (!pImpl->Init(GetRepositoryName(), GetDisplayName())) {\r
+               return NULL;\r
+       }\r
+       return pImpl;\r
+}\r
+\r
+LPTSTR VFolderRepository::GetXMLSaveString()\r
+{\r
+       TString sXMLStr;\r
+       if (!sXMLStr.Join(TEXT("      <vfolder name=\""), GetRepositoryName(), TEXT("\" dispname=\""), GetDisplayName())) return NULL;\r
+       if (!sXMLStr.StrCat(TEXT("\"/>\n"))) return NULL;\r
+       return StringDup(sXMLStr.Get());\r
+}\r
+\r
+BOOL VFolderRepository::Update(const TomboURI *pCurrentURI, LPCTSTR pData, TomboURI *pNewURI, TString *pNewHeadLine){ return FALSE; }\r
+BOOL VFolderRepository::Delete(const TomboURI *pURI, URIOption *pOption){ return FALSE; }\r
+BOOL VFolderRepository::Copy(const TomboURI *pCopyFrom, const TomboURI *pCopyTo, URIOption *pOption){ return FALSE; }\r
+BOOL VFolderRepository::Move(const TomboURI *pMoveFrom, const TomboURI *pMoveTo, URIOption *pOption){ return FALSE; }\r
+\r
+BOOL VFolderRepository::ChangeHeadLine(const TomboURI *pURI, LPCTSTR pReqNewHeadLine, URIOption *pOption){ return FALSE; }\r
+\r
+BOOL VFolderRepository::GetHeadLine(const TomboURI *pURI, TString *pHeadLine){ return FALSE; }\r
+\r
+BOOL VFolderRepository::GetOption(const TomboURI *pURI, URIOption *pOption) const{ return FALSE; }\r
+BOOL VFolderRepository::SetOption(const TomboURI *pCurrentURI, URIOption *pOption){ return FALSE; }\r
+\r
+BOOL VFolderRepository::GetPhysicalPath(const TomboURI *pURI, TString *pFullPath){ return FALSE; }\r
+\r
+URIList *VFolderRepository::GetChild(const TomboURI *pFolder, BOOL bSkipEncrypt, BOOL bLooseDecrypt, BOOL *pLoose) { return NULL; }\r
+\r
+BOOL VFolderRepository::RequestAllocateURI(const TomboURI *pBaseURI, LPCTSTR pText, TString *pHeadLine, TomboURI *pURI, const TomboURI *pTemplateURI){ return FALSE; }\r
+\r
+BOOL VFolderRepository::GetAttribute(const TomboURI *pURI, NoteAttribute *pAttribute){ return FALSE; }\r
+BOOL VFolderRepository::SetAttribute(const TomboURI *pURI, const NoteAttribute *pAttribute){ return FALSE; }\r
+BOOL VFolderRepository::GetNoteAttribute(const TomboURI *pURI, UINT64 *pLastUpdate, UINT64 *pCreateDate, UINT64 *pFileSize){ return FALSE; }\r
+\r
+LPTSTR VFolderRepository::GetNoteData(const TomboURI *pURI) { return NULL; }\r
+LPBYTE VFolderRepository::GetNoteDataNative(const TomboURI *pURI, LPDWORD pSize) { return NULL; }\r
+\r
+BOOL VFolderRepository::ExecuteAssoc(const TomboURI *pURI, ExeAppType nType){ return FALSE; }\r
+BOOL VFolderRepository::MakeFolder(const TomboURI *pURI, LPCTSTR pFolderName){ return FALSE; }\r
+\r
+\r
+\r
+\r
diff --git a/Src/RepositoryImpl.h b/Src/RepositoryImpl.h
new file mode 100644 (file)
index 0000000..35218ce
--- /dev/null
@@ -0,0 +1,217 @@
+#ifndef REPOSITORYIMPL_H\r
+#define REPOSITORYIMPL_H\r
+\r
+class TomboURI;\r
+class TString;\r
+class Repository;\r
+class URIOption;\r
+class DirList;\r
+class URIList;\r
+\r
+class MemoNote;\r
+\r
+/////////////////////////////////////////\r
+// Repository implimentation \r
+/////////////////////////////////////////\r
+// The base class of implimentation\r
+\r
+class RepositoryImpl {\r
+private:\r
+       LPTSTR pRepName;\r
+       LPTSTR pDispName;\r
+       TomboURI *pRootURI;\r
+       DWORD nRepType;\r
+       DWORD nRepNameLen;\r
+\r
+public:\r
+       RepositoryImpl();\r
+       virtual ~RepositoryImpl();\r
+\r
+       BOOL Init(LPCTSTR pRepName, LPCTSTR pDispName, DWORD nRepType);\r
+\r
+       LPCTSTR GetRepositoryName() { return pRepName; }\r
+       LPCTSTR GetDisplayName() { return pDispName; }\r
+       const TomboURI *GetRootURI() { return pRootURI; }\r
+       DWORD GetRepNameLen() { return nRepNameLen; }\r
+       DWORD GetRepositoryType() { return nRepType; }\r
+\r
+       ////////////////////////////\r
+       // Interface definitions\r
+\r
+       // clone this instance\r
+       virtual RepositoryImpl *Clone() = 0;\r
+\r
+       // get XML string to restore this subrepository\r
+       virtual LPTSTR GetXMLSaveString() = 0;\r
+\r
+       virtual BOOL Update(const TomboURI *pCurrentURI, LPCTSTR pData, TomboURI *pNewURI, TString *pNewHeadLine) = 0;\r
+       virtual BOOL Delete(const TomboURI *pURI, URIOption *pOption) = 0;\r
+       virtual BOOL Copy(const TomboURI *pCopyFrom, const TomboURI *pCopyTo, URIOption *pOption) = 0;\r
+       virtual BOOL Move(const TomboURI *pMoveFrom, const TomboURI *pMoveTo, URIOption *pOption) = 0;\r
+\r
+       virtual BOOL ChangeHeadLine(const TomboURI *pURI, LPCTSTR pReqNewHeadLine, URIOption *pOption) = 0;\r
+\r
+       virtual BOOL GetHeadLine(const TomboURI *pURI, TString *pHeadLine) = 0;\r
+\r
+       virtual BOOL GetOption(const TomboURI *pURI, URIOption *pOption) const = 0;\r
+       virtual BOOL SetOption(const TomboURI *pCurrentURI, URIOption *pOption) = 0;\r
+\r
+       virtual BOOL GetPhysicalPath(const TomboURI *pURI, TString *pFullPath) = 0;\r
+\r
+       virtual URIList *GetChild(const TomboURI *pFolder, BOOL bSkipEncrypt, BOOL bLooseDecrypt, BOOL *pLoose) = 0;\r
+\r
+       virtual BOOL RequestAllocateURI(const TomboURI *pBaseURI, LPCTSTR pText, TString *pHeadLine, TomboURI *pURI, const TomboURI *pTemplateURI) = 0;\r
+\r
+       virtual BOOL GetAttribute(const TomboURI *pURI, NoteAttribute *pAttribute) = 0;\r
+       virtual BOOL SetAttribute(const TomboURI *pURI, const NoteAttribute *pAttribute) = 0;\r
+       virtual BOOL GetNoteAttribute(const TomboURI *pURI, UINT64 *pLastUpdate, UINT64 *pCreateDate, UINT64 *pFileSize) = 0;\r
+\r
+       virtual LPTSTR GetNoteData(const TomboURI *pURI) = 0;\r
+       virtual LPBYTE GetNoteDataNative(const TomboURI *pURI, LPDWORD pSize) = 0;\r
+\r
+       virtual BOOL ExecuteAssoc(const TomboURI *pURI, ExeAppType nType) = 0;\r
+       virtual BOOL MakeFolder(const TomboURI *pURI, LPCTSTR pFolderName) = 0;\r
+\r
+       ////////////////////////////\r
+       // helper function\r
+\r
+       BOOL IsEncrypted(const TomboURI *pURI);\r
+};\r
+\r
+///////////////////////////////////////////////////////////////////\r
+// Repository implimentation which stores notes to local file\r
+///////////////////////////////////////////////////////////////////\r
+\r
+class LocalFileRepository : public RepositoryImpl {\r
+       LPTSTR pTopDir;\r
+\r
+       BOOL bKeepTitle;\r
+       BOOL bKeepCaret;\r
+       BOOL bSafeFileName;\r
+\r
+protected:\r
+       //////////////////////////////////////////\r
+       // Save notes and its subroutines\r
+\r
+       BOOL Save(const TomboURI *pCurrentURI, LPCTSTR pMemo, TomboURI *pNewURI, TString *pHeadLine);\r
+\r
+       BOOL SaveIfHeadLineIsNotChanged(MemoNote *pNote, LPCTSTR pMemo, LPCTSTR pOrigFile);\r
+       BOOL SaveIfHeadLineIsChanged(MemoNote *pNote, LPCTSTR pMemo,\r
+                                                                LPCTSTR pOrigFile, LPCTSTR pHeadLine, \r
+                                                                TString *pNewHeadLine);\r
+\r
+       ////////////////////////////////////////\r
+       // Encryption/Decryption subroutines\r
+       BOOL EncryptLeaf(const TomboURI *pCurrentURI, URIOption *pOption);\r
+       BOOL DecryptLeaf(const TomboURI *pCurrentURI, URIOption *pOption);\r
+       BOOL EnDecryptFolder(const TomboURI *pCurrentURI, URIOption *pOption);\r
+\r
+       TomboURI *DoEncryptFile(const TomboURI *pOldURI, MemoNote *pNote, TString *pHeadLine);\r
+       BOOL NegotiateNewName(LPCTSTR pMemoPath, LPCTSTR pText, \r
+                                                        LPCTSTR pMemoDir,\r
+                                                        TString *pFullPath, LPCTSTR *ppNotePath, TString *pHeadLine);\r
+\r
+       ////////////////////////////////////////\r
+       // others\r
+       BOOL GetSafeFileName(const TString *pBasePath, TString *pNewName);\r
+       BOOL GetTDTFullPath(const TomboURI *pURI, TString *pTdtName);\r
+\r
+public:\r
+       LocalFileRepository();\r
+       virtual ~LocalFileRepository();\r
+\r
+       BOOL Init(LPCTSTR pRepName, LPCTSTR pDispName, LPCTSTR pTopDir, \r
+                               BOOL bKeepTitle, BOOL bKeepCaret, BOOL bSafeFileName);\r
+\r
+       // temporary method for refactoring\r
+       BOOL SetTopDir(LPCTSTR pDir);\r
+\r
+       ///////////////////////////////\r
+       // impliment RepositoryImpl methods\r
+\r
+       RepositoryImpl *Clone();\r
+       LPTSTR GetXMLSaveString();\r
+\r
+       BOOL Update(const TomboURI *pCurrentURI, LPCTSTR pData, TomboURI *pNewURI, TString *pNewHeadLine);\r
+       BOOL Delete(const TomboURI *pURI, URIOption *pOption);\r
+       BOOL Copy(const TomboURI *pCopyFrom, const TomboURI *pCopyTo, URIOption *pOption);\r
+       BOOL Move(const TomboURI *pMoveFrom, const TomboURI *pMoveTo, URIOption *pOption);\r
+\r
+       BOOL ChangeHeadLine(const TomboURI *pURI, LPCTSTR pReqNewHeadLine, URIOption *pOption);\r
+\r
+       BOOL GetHeadLine(const TomboURI *pURI, TString *pHeadLine);\r
+       BOOL GetPhysicalPath(const TomboURI *pURI, TString *pFullPath);\r
+\r
+       BOOL GetOption(const TomboURI *pURI, URIOption *pOption) const;\r
+\r
+       // change note status\r
+       BOOL SetOption(const TomboURI *pCurrentURI, URIOption *pOption);\r
+\r
+       DWORD GetList(const TomboURI *pFolder, DirList *pList, BOOL bSkipEncrypt, BOOL bLooseDecrypt);\r
+       URIList *GetChild(const TomboURI *pFolder, BOOL bSkipEncrypt, BOOL bLooseDecrypt, BOOL *pLoose);\r
+\r
+       BOOL RequestAllocateURI(const TomboURI *pBaseURI, LPCTSTR pText, TString *pHeadLine, TomboURI *pURI, const TomboURI *pTemplateURI);\r
+\r
+       BOOL GetAttribute(const TomboURI *pURI, NoteAttribute *pAttribute);\r
+       BOOL SetAttribute(const TomboURI *pURI, const NoteAttribute *pAttribute);\r
+       BOOL GetNoteAttribute(const TomboURI *pURI, UINT64 *pLastUpdate, UINT64 *pCreateDate, UINT64 *pFileSize);\r
+\r
+       LPTSTR GetNoteData(const TomboURI *pURI);\r
+       LPBYTE GetNoteDataNative(const TomboURI *pURI, LPDWORD pSize);\r
+\r
+       BOOL ExecuteAssoc(const TomboURI *pURI, ExeAppType nType);\r
+       BOOL MakeFolder(const TomboURI *pURI, LPCTSTR pFolderName);\r
+\r
+       BOOL GetKeepTitle() { return bKeepTitle; }\r
+       void SetKeepTitle(BOOL b) { bKeepTitle = b; }\r
+       BOOL GetKeepCaret() { return bKeepCaret; }\r
+       void SetKeepCaret(BOOL b) { bKeepCaret = b; }\r
+       BOOL GetSafeFileName() { return bSafeFileName; }\r
+       void SetSafeFileName(BOOL b) { bSafeFileName = b; }\r
+};\r
+\r
+///////////////////////////////////////////////////////////////////\r
+// virtual folder repository implimentation\r
+///////////////////////////////////////////////////////////////////\r
+// in this time, VFolderRepository is psudo implementation.\r
+\r
+class VFolderRepository : public RepositoryImpl {\r
+public:\r
+       VFolderRepository();\r
+       virtual ~VFolderRepository();\r
+       BOOL Init(LPCTSTR pRepName, LPCTSTR pDispName);\r
+\r
+       RepositoryImpl *Clone();\r
+       LPTSTR GetXMLSaveString();\r
+\r
+       BOOL Update(const TomboURI *pCurrentURI, LPCTSTR pData, TomboURI *pNewURI, TString *pNewHeadLine);\r
+       BOOL Delete(const TomboURI *pURI, URIOption *pOption);\r
+       BOOL Copy(const TomboURI *pCopyFrom, const TomboURI *pCopyTo, URIOption *pOption);\r
+       BOOL Move(const TomboURI *pMoveFrom, const TomboURI *pMoveTo, URIOption *pOption);\r
+\r
+       BOOL ChangeHeadLine(const TomboURI *pURI, LPCTSTR pReqNewHeadLine, URIOption *pOption);\r
+\r
+       BOOL GetHeadLine(const TomboURI *pURI, TString *pHeadLine);\r
+\r
+       BOOL GetOption(const TomboURI *pURI, URIOption *pOption) const;\r
+       BOOL SetOption(const TomboURI *pCurrentURI, URIOption *pOption);\r
+\r
+       BOOL GetPhysicalPath(const TomboURI *pURI, TString *pFullPath);\r
+\r
+       URIList *GetChild(const TomboURI *pFolder, BOOL bSkipEncrypt, BOOL bLooseDecrypt, BOOL *pLoose);\r
+\r
+       BOOL RequestAllocateURI(const TomboURI *pBaseURI, LPCTSTR pText, TString *pHeadLine, TomboURI *pURI, const TomboURI *pTemplateURI);\r
+\r
+       BOOL GetAttribute(const TomboURI *pURI, NoteAttribute *pAttribute);\r
+       BOOL SetAttribute(const TomboURI *pURI, const NoteAttribute *pAttribute);\r
+       BOOL GetNoteAttribute(const TomboURI *pURI, UINT64 *pLastUpdate, UINT64 *pCreateDate, UINT64 *pFileSize);\r
+\r
+       LPTSTR GetNoteData(const TomboURI *pURI);\r
+       LPBYTE GetNoteDataNative(const TomboURI *pURI, LPDWORD pSize);\r
+\r
+       BOOL ExecuteAssoc(const TomboURI *pURI, ExeAppType nType);\r
+       BOOL MakeFolder(const TomboURI *pURI, LPCTSTR pFolderName);\r
+};\r
+\r
+\r
+#endif
\ No newline at end of file
diff --git a/Src/SearchDlg.cpp b/Src/SearchDlg.cpp
new file mode 100644 (file)
index 0000000..39feb2a
--- /dev/null
@@ -0,0 +1,158 @@
+#include <windows.h>\r
+#include <tchar.h>\r
+#include <commctrl.h>\r
+\r
+#include "Tombo.h"\r
+#include "Property.h"\r
+#include "resource.h"\r
+#include "SearchDlg.h"\r
+#include "UniConv.h"\r
+#include "SipControl.h"\r
+\r
+#include "DialogTemplate.h"\r
+#include "Message.h"\r
+\r
+////////////////////////////////////////////////////////////////\r
+// ctor & dtor\r
+////////////////////////////////////////////////////////////////\r
+\r
+SearchDialog::~SearchDialog()\r
+{\r
+       if (pSearchStr) delete [] pSearchStr;\r
+}\r
+\r
+\r
+////////////////////////////////////////////////////////////////\r
+// Dialog proc\r
+////////////////////////////////////////////////////////////////\r
+\r
+static BOOL APIENTRY DlgProc(HWND hDlg, UINT nMessage, WPARAM wParam, LPARAM lParam)\r
+{\r
+       SearchDialog *pDlg;\r
+       if (nMessage == WM_INITDIALOG) {\r
+               SetWindowLong(hDlg, DWL_USER, lParam);\r
+               pDlg = (SearchDialog*)lParam;\r
+\r
+               pDlg->InitDialog(hDlg);\r
+               return TRUE;\r
+       }\r
+\r
+       pDlg = (SearchDialog*)GetWindowLong(hDlg, DWL_USER);\r
+       if (pDlg == NULL) return FALSE;\r
+\r
+       switch (nMessage) {\r
+       case WM_COMMAND:\r
+               switch (wParam) {\r
+               case IDOK:\r
+                       if (pDlg->OnOK()) {\r
+                               EndDialog(hDlg, IDOK);\r
+                       }\r
+                       break;\r
+               case IDCANCEL:\r
+                       EndDialog(hDlg, IDCANCEL);\r
+                       break;\r
+               }\r
+               return TRUE;\r
+       }\r
+       return FALSE;\r
+\r
+}\r
+\r
+////////////////////////////////////////////////////////////////\r
+// init\r
+////////////////////////////////////////////////////////////////\r
+\r
+static DlgMsgRes aMsgRes[] = {\r
+       { IDC_SEARCH_FIND_LABEL,     MSG_ID_DLG_SEARCH_FIND_LABEL },\r
+       { IDC_SEARCH_DIRECT_LABEL,   MSG_ID_DLG_SEARCH_DIRECTION_LABEL },\r
+       { IDC_SEARCH_DIRECTION_UP,   MSG_ID_DLG_SEARCH_DIRECTION_UP },\r
+       { IDC_SEARCH_DIRECTION_DOWN, MSG_ID_DLG_SEARCH_DIRECTION_DOWN },\r
+       { IDC_SEARCH_CASESENSITIVE,  MSG_ID_DLG_FILTERDEF_ADD_REGEX_CASESENSITIVE },\r
+       { IDC_SEARCH_ENCRYPTMEMO,    MSG_ID_DLG_FILTERDEF_ADD_REGEX_INCLUDECRYPTED },\r
+       { IDC_FILENAMEONLY,          MSG_ID_DLG_FILTERDEF_ADD_REGEX_FORFILENAME },\r
+       { IDOK,                      MSG_ID_DLG_CMN_OK },\r
+       { IDCANCEL,                  MSG_ID_DLG_CMN_CANCEL },\r
+};\r
+\r
+void SearchDialog::InitDialog(HWND hDlg)\r
+{\r
+       OverrideDlgMsg(hDlg, MSG_ID_DLG_SEARCH_TITLE, aMsgRes, sizeof(aMsgRes)/sizeof(DlgMsgRes));\r
+       hDialog = hDlg;\r
+\r
+       HWND hCombo = GetDlgItem(hDlg, IDC_SEARCH_STRING);\r
+       LPCTSTR pHist = g_Property.GetSearchHist();\r
+       SetHistoryToComboBox(hCombo, pHist);\r
+\r
+       HWND hCheckEncrypt = GetDlgItem(hDlg, IDC_SEARCH_ENCRYPTMEMO);\r
+       EnableWindow(hCheckEncrypt, bCheckEncrypt);\r
+       HWND hFileNameOnly = GetDlgItem(hDlg, IDC_FILENAMEONLY);\r
+       EnableWindow(hFileNameOnly, bFileNameOnly);\r
+       \r
+       HWND hSearchDirectionUp = GetDlgItem(hDlg, IDC_SEARCH_DIRECTION_UP);\r
+       HWND hSearchDirectionDown = GetDlgItem(hDlg, IDC_SEARCH_DIRECTION_DOWN);\r
+       EnableWindow(hSearchDirectionUp, bEnableDirection);\r
+       EnableWindow(hSearchDirectionDown, bEnableDirection);\r
+\r
+       CheckRadioButton(hDlg, IDC_SEARCH_DIRECTION_UP, IDC_SEARCH_DIRECTION_DOWN, IDC_SEARCH_DIRECTION_DOWN);\r
+}\r
+\r
+////////////////////////////////////////////////////////////////\r
+// popup\r
+////////////////////////////////////////////////////////////////\r
+\r
+DWORD SearchDialog::Popup(HINSTANCE hInst, HWND hParent, BOOL bCE)\r
+{\r
+       hInstance = hInst;\r
+\r
+       bCheckEncrypt = bFileNameOnly = bCE;\r
+       bEnableDirection = bCE;\r
+\r
+       SipControl sc;\r
+       BOOL bSipStat, bResult;\r
+               bResult = sc.Init() && sc.GetSipStat(&bSipStat);\r
+       if (bResult) sc.SetSipStat(TRUE);\r
+\r
+       DWORD result;\r
+       result = DialogBoxParam(hInst, MAKEINTRESOURCE(IDD_SEARCH), \r
+                                                               hParent, (DLGPROC)DlgProc, (LONG)this);\r
+\r
+       if (bResult) sc.SetSipStat(bSipStat);\r
+       return result;\r
+}\r
+\r
+////////////////////////////////////////////////////////////////\r
+// OK\r
+////////////////////////////////////////////////////////////////\r
+\r
+BOOL SearchDialog::OnOK()\r
+{\r
+       // find encrypted notes\r
+       HWND hCheckEncrypt = GetDlgItem(hDialog, IDC_SEARCH_ENCRYPTMEMO);\r
+       bCheckEncrypt = (SendMessage(hCheckEncrypt, BM_GETCHECK, 0, 0) == BST_CHECKED);\r
+       \r
+       // case sensitive\r
+       HWND hCaseSensitive = GetDlgItem(hDialog, IDC_SEARCH_CASESENSITIVE);\r
+       bCaseSensitive = (SendMessage(hCaseSensitive, BM_GETCHECK, 0, 0) == BST_CHECKED);\r
+\r
+       HWND hFileNameOnly = GetDlgItem(hDialog, IDC_FILENAMEONLY);\r
+       bFileNameOnly = (SendMessage(hFileNameOnly, BM_GETCHECK, 0, 0) == BST_CHECKED);\r
+\r
+       // Search direction\r
+       HWND hSearchDirectionUp = GetDlgItem(hDialog, IDC_SEARCH_DIRECTION_UP);\r
+       bSearchDirectionUp = (SendMessage(hSearchDirectionUp, BM_GETCHECK, 0, 0) == BST_CHECKED);\r
+\r
+       // find string\r
+       HWND hSearchWord = GetDlgItem(hDialog, IDC_SEARCH_STRING);\r
+       int n = GetWindowTextLength(hSearchWord);\r
+\r
+       // \89½\82à\93ü\82ê\82Ä\82¢\82È\82¯\82ê\82Î\96³\8e\8b\r
+       if (n == 0) return FALSE;\r
+\r
+       LPTSTR pSearchTextW = new TCHAR[n + 2];\r
+       if (pSearchTextW == NULL) return FALSE;\r
+       GetWindowText(hSearchWord, pSearchTextW, n + 1);\r
+       \r
+       g_Property.SetSearchHist(GetHistoryFromComboBox(hSearchWord, pSearchTextW, NUM_SEARCH_HISTORY));\r
+       pSearchStr = pSearchTextW;\r
+       return TRUE;\r
+}
\ No newline at end of file
diff --git a/Src/SearchDlg.h b/Src/SearchDlg.h
new file mode 100644 (file)
index 0000000..863acf5
--- /dev/null
@@ -0,0 +1,51 @@
+#ifndef SEARCHDLG_H\r
+#define SEARCHDLG_H\r
+\r
+#include "Property.h"\r
+\r
+////////////////////////////////////////////////////////////////\r
+// \8c\9f\8dõ\83_\83C\83A\83\8d\83O\r
+////////////////////////////////////////////////////////////////\r
+\r
+class SearchDialog {\r
+       HWND hDialog;\r
+       HINSTANCE hInstance;\r
+\r
+       LPTSTR pSearchStr;\r
+       BOOL bCaseSensitive;\r
+       BOOL bCheckEncrypt;\r
+       BOOL bFileNameOnly;\r
+       BOOL bSearchDirectionUp;\r
+       BOOL bEnableDirection;\r
+public:\r
+\r
+       ////////////////////////////////\r
+       // ctor & dtor\r
+\r
+       SearchDialog() : hDialog(NULL), hInstance(NULL), pSearchStr(NULL), bCaseSensitive(FALSE), bFileNameOnly(FALSE), bSearchDirectionUp(FALSE), bEnableDirection(FALSE) {}\r
+       ~SearchDialog();\r
+\r
+       ////////////////////////////////\r
+       // \83C\83x\83\93\83g\83n\83\93\83h\83\89\r
+\r
+       void InitDialog(HWND hDlg);\r
+\r
+       BOOL OnOK();\r
+\r
+       ////////////////////////////////\r
+       // \83_\83C\83A\83\8d\83O\8bN\93®\r
+\r
+       DWORD Popup(HINSTANCE hInst, HWND hParent, BOOL bCheckEncrypt);\r
+\r
+       ////////////////////////////////\r
+       // \8c\8b\89Ê\8eæ\93¾\r
+\r
+       LPCTSTR SearchString() { return pSearchStr; }\r
+       BOOL IsCaseSensitive() { return bCaseSensitive; }\r
+       BOOL IsSearchEncryptMemo() { return bCheckEncrypt; }\r
+       BOOL IsFileNameOnly() { return bFileNameOnly; }\r
+       BOOL IsSearchDirectionUp() { return bSearchDirectionUp; }\r
+};\r
+\r
+\r
+#endif\r
diff --git a/Src/SearchEngine.cpp b/Src/SearchEngine.cpp
new file mode 100644 (file)
index 0000000..a88a2c6
--- /dev/null
@@ -0,0 +1,194 @@
+#include <windows.h>\r
+#include <stdlib.h>\r
+#include <tchar.h>\r
+#include <string.h>\r
+\r
+#include "Tombo.h"\r
+#include "SearchEngine.h"\r
+#include "TString.h"\r
+#include "UniConv.h"\r
+#include "Property.h"\r
+#include "TomboURI.h"\r
+#include "Repository.h"\r
+\r
+#include "AutoPtr.h"\r
+\r
+#include "RegexUtil.h"\r
+\r
+////////////////////////////////////////////////////////\r
+////////////////////////////////////////////////////////\r
+// regex search (MBCS version)\r
+////////////////////////////////////////////////////////\r
+////////////////////////////////////////////////////////\r
+\r
+////////////////////////////////////////////////////////\r
+// ctor & dtor\r
+////////////////////////////////////////////////////////\r
+\r
+SearchEngineA::SearchEngineA() : pCompiledPattern(NULL), pPattern(NULL)\r
+{\r
+}\r
+\r
+SearchEngineA::~SearchEngineA()\r
+{\r
+       delete [] pPattern;\r
+       if (pCompiledPattern) {\r
+               Regex_Free(pCompiledPattern);\r
+       }\r
+}\r
+\r
+BOOL SearchEngineA::Init(DWORD nCP, BOOL bSE, BOOL bFo, PasswordManager *pPMgr)\r
+{\r
+       nCodePage = nCP;\r
+       bSearchEncrypt = bSE;\r
+       bFileNameOnly = bFo;\r
+       pPassMgr = pPMgr;\r
+       return TRUE;\r
+}\r
+\r
+////////////////////////////////////////////////////////\r
+// prepare regex pattern\r
+////////////////////////////////////////////////////////\r
+\r
+BOOL SearchEngineA::Prepare(LPCTSTR pPat, BOOL bCS, const char **ppReason)\r
+{\r
+       delete[] pPattern;      // release previous Prepare data\r
+       pPattern = ConvTCharToFileEncoding(pPat, &nPatLen);\r
+\r
+       if (pPattern == NULL) {\r
+               SetLastError(ERROR_NOT_ENOUGH_MEMORY);\r
+               *ppReason = "Not enough memory";\r
+               return FALSE;\r
+       }\r
+\r
+       if (pCompiledPattern) {\r
+               Regex_Free(pCompiledPattern);\r
+       }\r
+\r
+       pCompiledPattern = Regex_Compile(pPattern, !bCS, ppReason, nCodePage);\r
+       if (!pCompiledPattern) {\r
+               return FALSE;\r
+       }\r
+\r
+       bCaseSensitive = bCS;\r
+       return TRUE;\r
+}\r
+\r
+////////////////////////////////////////////////////////\r
+// search from text\r
+////////////////////////////////////////////////////////\r
+\r
+BOOL SearchEngineA::SearchTextA(const LPBYTE pText, DWORD nStartPos, BOOL bForward, BOOL bShift)\r
+{\r
+       LPBYTE p = pText + nStartPos;\r
+\r
+       if (!pCompiledPattern) return TRUE;\r
+\r
+       // if bShift is TRUE, shift start position 1 letter\r
+       if (bShift) {\r
+               if (bForward) {\r
+                       p = ShiftRight(pText, p, nCodePage);\r
+               } else {\r
+                       p = ShiftLeft(pText, p, nCodePage);\r
+               }\r
+       }\r
+\r
+       // execute searching\r
+       int s, e;\r
+       int res = Regex_Search(pCompiledPattern, (p - pText), pText, bForward, &s, &e, nCodePage);\r
+       if (res >= 0) {\r
+               nMatchStart = s;\r
+               nMatchEnd = e;\r
+               return TRUE;\r
+       } else {\r
+               return FALSE;\r
+       }\r
+}\r
+\r
+BOOL SearchEngineA::SearchTextT(LPCTSTR pText, DWORD nStartPos, BOOL bForward, BOOL bShift)\r
+{\r
+       DWORD nTextLen;\r
+       LPBYTE pData = ConvTCharToFileEncoding(pText, &nTextLen);\r
+       SecureBufferAutoPointerByte ap(pData, nTextLen);\r
+\r
+#if defined(PLATFORM_WIN32)\r
+       DWORD nSystemCodePage = 0;\r
+#else\r
+       DWORD nSystemCodePage = TOMBO_CP_UTF16LE;\r
+#endif\r
+\r
+       // convert unicode pos to MBCS pos\r
+       DWORD nStartPosA = ConvertPos((LPBYTE)pText, nStartPos * sizeof(TCHAR), nSystemCodePage, pData, nCodePage);\r
+\r
+       // exec searching\r
+       BOOL bResult = SearchTextA(pData, nStartPosA, bForward, bShift);\r
+\r
+       // if matched, convert MBCS pos to unicode pos\r
+       if (bResult) {\r
+               DWORD nMatchStartA = nMatchStart;\r
+               DWORD nMatchEndA = nMatchEnd;\r
+\r
+               nMatchStart = ConvertPos(pData, nMatchStartA, nCodePage, (LPBYTE)pText, nSystemCodePage) / sizeof(TCHAR);\r
+               nMatchEnd = ConvertPos(pData, nMatchEndA, nCodePage, (LPBYTE)pText, nSystemCodePage) / sizeof(TCHAR);\r
+       }\r
+       return bResult;\r
+}\r
+\r
+////////////////////////////////////////////////////////\r
+// Matching\r
+////////////////////////////////////////////////////////\r
+\r
+SearchResult SearchEngineA::SearchFromURI(const TomboURI *pURI)\r
+{\r
+       if (bFileNameOnly) {\r
+               TString sPartName;\r
+               if (!g_Repository.GetFileName(pURI, &sPartName)) return SR_FAILED;\r
+\r
+               BOOL bMatch;\r
+\r
+               DWORD nSize;\r
+               LPBYTE pText = ConvTCharToFileEncoding(sPartName.Get(), &nSize);\r
+               SecureBufferAutoPointerByte ap(pText, nSize);\r
+\r
+               bMatch = (Regex_Search(pCompiledPattern, 0, pText, TRUE, NULL, NULL, nCodePage) >= 0);\r
+\r
+               return bMatch ? SR_FOUND : SR_NOTFOUND;\r
+       } else {\r
+               URIOption opt(NOTE_OPTIONMASK_ENCRYPTED);\r
+               if (!g_Repository.GetOption(pURI, &opt)) return SR_FAILED;\r
+\r
+               // skip crypted note if it is not search target.\r
+               if (!IsSearchEncryptMemo() && opt.bEncrypt) return SR_NOTFOUND;\r
+\r
+               DWORD nSize;\r
+               LPBYTE pMemo = g_Repository.GetNoteDataNative(pURI, &nSize);\r
+               if (pMemo == NULL) return SR_FAILED;\r
+               SecureBufferAutoPointerByte ap(pMemo, nSize);\r
+\r
+               BOOL bMatch = (Regex_Search(pCompiledPattern, 0, pMemo, TRUE, NULL, NULL, nCodePage) >= 0);\r
+               return bMatch ? SR_FOUND : SR_NOTFOUND;\r
+       }\r
+}\r
+\r
+////////////////////////////////////////////////////////\r
+// Duplicate object\r
+////////////////////////////////////////////////////////\r
+\r
+SearchEngineA *SearchEngineA::Clone()\r
+{\r
+       const char *pReason;\r
+       SearchEngineA *p = new SearchEngineA();\r
+       if (!p) return NULL;\r
+\r
+       LPTSTR pPat = ConvFileEncodingToTChar(pPattern);\r
+       ArrayAutoPointer<TCHAR> ap(pPat);\r
+\r
+       if (!p->Init(nCodePage, bSearchEncrypt, bFileNameOnly, pPassMgr) ||\r
+               !p->Prepare(pPat, bCaseSensitive, &pReason)) {\r
+               delete p;\r
+               return NULL;\r
+       }\r
+       return p;\r
+}\r
+\r
+\r
diff --git a/Src/SearchEngine.h b/Src/SearchEngine.h
new file mode 100644 (file)
index 0000000..50435fb
--- /dev/null
@@ -0,0 +1,68 @@
+#ifndef SEARCHENGINE_H\r
+#define SEARCHENGINE_H\r
+\r
+class PasswordManager;\r
+enum SearchResult;\r
+class TomboURI;\r
+\r
+///////////////////////////////////////////////////////////\r
+// Regular expression pattern matching (MBCS)\r
+///////////////////////////////////////////////////////////\r
+\r
+class SearchEngineA {\r
+protected:\r
+       DWORD nCodePage;\r
+\r
+       DWORD nMatchStart;\r
+       DWORD nMatchEnd;\r
+\r
+       BOOL bCaseSensitive;\r
+       BOOL bFileNameOnly;\r
+       LPBYTE pPattern; // assume null terminated string(MBCS/UCS2)\r
+       DWORD nPatLen;\r
+\r
+       BOOL bSearchEncrypt;\r
+\r
+       void *pCompiledPattern;\r
+\r
+       PasswordManager *pPassMgr;\r
+\r
+       BOOL SearchTextA(const LPBYTE pText, DWORD nStartPos, BOOL bForward, BOOL bShift);\r
+\r
+public:\r
+\r
+       //////////////////////////////\r
+       // ctor & dtor\r
+       SearchEngineA();\r
+       ~SearchEngineA();\r
+       BOOL Init(DWORD nCodePage, BOOL bSearchEncrypt, BOOL bFileNameOnly, PasswordManager *pPassMgr);\r
+\r
+       //////////////////////////////\r
+       // prepare pattern\r
+\r
+       BOOL Prepare(LPCTSTR pPattern, BOOL bCs, const char **ppReason);\r
+\r
+       //////////////////////////////\r
+       // exec pattern\r
+\r
+       BOOL SearchTextT(LPCTSTR pText, DWORD nStartPos, BOOL bForward, BOOL bShift);\r
+\r
+       SearchResult SearchFromURI(const TomboURI *pURI);\r
+\r
+       //////////////////////////////\r
+       // get result\r
+\r
+       DWORD MatchStart() { return nMatchStart; }\r
+       DWORD MatchEnd() { return nMatchEnd; }\r
+\r
+       //////////////////////////////\r
+       // misc funcs\r
+\r
+       BOOL IsSearchEncryptMemo() { return bSearchEncrypt; }\r
+       BOOL IsFileNameOnly() { return bFileNameOnly; }\r
+       PasswordManager *GetPasswordManager() { return pPassMgr; }\r
+\r
+       SearchEngineA *Clone();\r
+};\r
+\r
+#endif\r
diff --git a/Src/SearchTree.cpp b/Src/SearchTree.cpp
new file mode 100644 (file)
index 0000000..43467fe
--- /dev/null
@@ -0,0 +1,229 @@
+#include <windows.h>\r
+#include <tchar.h>\r
+#include "Tombo.h"\r
+#include "resource.h"\r
+#include "UniConv.h"\r
+#include "SearchEngine.h"\r
+#include "SearchTree.h"\r
+#include "TString.h"\r
+#include "TomboURI.h"\r
+#include "DialogTemplate.h"\r
+#include "Message.h"\r
+#include "Property.h"\r
+#include "Repository.h"\r
+#include "VarBuffer.h"\r
+#include "URIScanner.h"\r
+\r
+////////////////////////////////\r
+////////////////////////////////\r
+\r
+class SearchTreeScanner : public URIScanner {\r
+public:\r
+       BOOL bFound;\r
+       TomboURI *pMatchedURI;\r
+\r
+       SearchEngineA *pRegex;\r
+       BOOL bSkipOne;\r
+\r
+       BOOL Init(SearchEngineA *p, const TomboURI *pBase, BOOL bSkipOne, BOOL bSkipEncrypt);\r
+       SearchTreeScanner();\r
+\r
+       void Node();\r
+\r
+};\r
+\r
+SearchTreeScanner::SearchTreeScanner() : bFound(FALSE), pMatchedURI(NULL)\r
+{\r
+}\r
+\r
+BOOL SearchTreeScanner::Init(SearchEngineA *p, const TomboURI *pBase, BOOL bSOne, BOOL bSEncrypt)\r
+{\r
+       pRegex = p;\r
+       bSkipOne = bSOne;\r
+       return URIScanner::Init(&g_Repository, pBase, bSEncrypt);\r
+}\r
+\r
+void SearchTreeScanner::Node()\r
+{\r
+       if (bSkipOne) {\r
+               bSkipOne = FALSE;\r
+               return;\r
+       }\r
+\r
+       SearchResult result = pRegex->SearchFromURI(CurrentURI());\r
+       switch(result) {\r
+       case SR_FOUND:\r
+               bFound = TRUE;\r
+               pMatchedURI = new TomboURI(*CurrentURI());\r
+               StopScan();\r
+               break;\r
+       case SR_NOTFOUND:\r
+               break;\r
+       case SR_FAILED:\r
+               StopScan();\r
+               break;\r
+       }\r
+}\r
+\r
+////////////////////////////////\r
+// ctor & dtor\r
+////////////////////////////////\r
+\r
+BOOL SearchTree::Init(SearchEngineA *p, const TomboURI *pURI,  BOOL bDForward, BOOL bSOne, BOOL bSkipEncrypt)\r
+{\r
+       pStartURI = new TomboURI(*pURI);\r
+       if (pStartURI == NULL) { SetLastError(ERROR_NOT_ENOUGH_MEMORY); return FALSE; }\r
+       pRegex = p;\r
+       bSearchDirectionForward = bDForward;\r
+       bSkipOne = bSOne;\r
+       bSearchEncryptedMemo = !bSkipEncrypt;\r
+       return TRUE;\r
+}\r
+\r
+\r
+SearchTree::~SearchTree()\r
+{\r
+       delete pScanner;\r
+       delete pStartURI;\r
+       delete pMatchedURI;\r
+}\r
+\r
+////////////////////////////////\r
+// Dialog procedure\r
+////////////////////////////////\r
+\r
+static LRESULT CALLBACK SearchTreeDlgProc(HWND hDlg, UINT nMessage, WPARAM wParam, LPARAM lParam)\r
+{\r
+       SearchTree *pDlg;\r
+       if (nMessage == WM_INITDIALOG) {\r
+               SetWindowLong(hDlg, DWL_USER, lParam);\r
+               pDlg = (SearchTree*)lParam;\r
+\r
+               pDlg->InitDialog(hDlg);\r
+               return TRUE;\r
+       }\r
+\r
+       pDlg = (SearchTree*)GetWindowLong(hDlg, DWL_USER);\r
+       if (pDlg == NULL) return FALSE;\r
+\r
+       switch(nMessage) {\r
+       case WM_COMMAND:\r
+               if (LOWORD(wParam) == IDOK) {\r
+                       pDlg->OnClose(hDlg, LOWORD(wParam));\r
+                       return TRUE;\r
+               } else if (LOWORD(wParam) == IDCANCEL) {\r
+                       pDlg->CancelRequest();\r
+                       pDlg->OnClose(hDlg, LOWORD(wParam));\r
+                       return TRUE;\r
+               }\r
+       }\r
+       return FALSE;\r
+}\r
+\r
+////////////////////////////////\r
+// Thread function\r
+////////////////////////////////\r
+\r
+extern "C" static DWORD WINAPI SearchThreadFunc(LPVOID p)\r
+{\r
+       SearchTree *pSt = (SearchTree*)p;\r
+\r
+       // Do search work\r
+       pSt->SetResult(pSt->Search());\r
+\r
+       PostMessage(pSt->GetWnd(), WM_COMMAND, MAKEWPARAM(IDOK, 0), NULL);\r
+       return 0;\r
+}\r
+\r
+/////////////////////////////////////////\r
+// Popup dialog and start searching\r
+/////////////////////////////////////////\r
+\r
+void SearchTree::Popup(HINSTANCE hInst, HWND hParent)\r
+{\r
+       DialogBoxParam(hInst, MAKEINTRESOURCE(IDD_SEARCHING), hParent, (DLGPROC)SearchTreeDlgProc, (LONG)this);\r
+}\r
+\r
+/////////////////////////////////////////\r
+// Initialize\r
+/////////////////////////////////////////\r
+\r
+static DlgMsgRes aDlgMsgRes[] = {\r
+       { IDCANCEL, MSG_ID_DLG_CMN_CANCEL}, \r
+};\r
+\r
+void SearchTree::InitDialog(HWND hDlg)\r
+{\r
+       OverrideDlgMsg(hDlg, -1, aDlgMsgRes, sizeof(aDlgMsgRes)/sizeof(DlgMsgRes));\r
+\r
+       DWORD nThreadId;\r
+\r
+       hDlgWnd = hDlg;\r
+       srResult = SR_NOTFOUND;\r
+       hSearchThread = CreateThread(NULL, 0, SearchThreadFunc, (LPVOID)this, 0, &nThreadId);\r
+}\r
+\r
+/////////////////////////////////////////\r
+// Close dialog\r
+/////////////////////////////////////////\r
+\r
+void SearchTree::OnClose(HWND hDlg, WORD nId)\r
+{\r
+       if (hSearchThread) {\r
+               WaitForSingleObject(hSearchThread, INFINITE);\r
+               CloseHandle(hSearchThread);\r
+               hSearchThread = NULL;\r
+       }\r
+       EndDialog(hDlg, nId);\r
+}\r
+\r
+/////////////////////////////////////////\r
+// request cancel\r
+/////////////////////////////////////////\r
+\r
+void SearchTree::CancelRequest()\r
+{\r
+       HWND hWnd = GetDlgItem(hDlgWnd, IDC_SEARCHMSG);\r
+       SetWindowText(hWnd, MSG_SEARCH_CANCELING);\r
+       if (pScanner) {\r
+               pScanner->StopScan();\r
+       }\r
+}\r
+\r
+/////////////////////////////////////////\r
+// get current URI\r
+/////////////////////////////////////////\r
+\r
+const TomboURI* SearchTree::CurrentURI()\r
+{\r
+       if (pScanner) {\r
+               return pScanner->CurrentURI();\r
+       } else {\r
+               return NULL;\r
+       }\r
+}\r
+\r
+/////////////////////////////////////////\r
+// search main\r
+/////////////////////////////////////////\r
+\r
+SearchResult SearchTree::Search()\r
+{\r
+       TomboURI sRoot;\r
+       sRoot.Init(TEXT("tombo://default/"));\r
+\r
+       pScanner = new SearchTreeScanner();\r
+       if (!pScanner->Init(pRegex, &sRoot, bSkipOne, !bSearchEncryptedMemo)) return SR_FAILED;\r
+       if (!pScanner->Scan(pStartURI, !bSearchDirectionForward)) {\r
+               return SR_FAILED;\r
+       }\r
+\r
+       if (pScanner->bFound) {\r
+               pMatchedURI = new TomboURI(*(pScanner->pMatchedURI));\r
+               return SR_FOUND;\r
+       }\r
+       if (pScanner->IsStopScan()) {\r
+               return SR_CANCELED;\r
+       }\r
+       return SR_NOTFOUND;\r
+}
\ No newline at end of file
diff --git a/Src/SearchTree.h b/Src/SearchTree.h
new file mode 100644 (file)
index 0000000..f702410
--- /dev/null
@@ -0,0 +1,70 @@
+#ifndef SEARCHTREE_H\r
+#define SEARCHTREE_H\r
+\r
+enum SearchResult;\r
+class SearchEngineA;\r
+class SearchTreeScanner;\r
+\r
+///////////////////////////////////////////////////////////\r
+// Popup "searching" dialog and do search another thread\r
+///////////////////////////////////////////////////////////\r
+\r
+class SearchTree {\r
+protected:\r
+       ///////////////////////////////\r
+       // dialog\r
+\r
+       HWND hDlgWnd;\r
+\r
+       ///////////////////////////////\r
+       // Thread and thread control vars.\r
+\r
+       HANDLE hSearchThread;\r
+\r
+       ///////////////////////////////\r
+       // for searching variables\r
+\r
+       SearchEngineA *pRegex;\r
+       BOOL bSearchDirectionForward;\r
+       BOOL bSearchEncryptedMemo;\r
+       BOOL bSkipOne;\r
+\r
+       TomboURI *pStartURI;\r
+\r
+       SearchTreeScanner *pScanner;\r
+       TomboURI *pMatchedURI;\r
+\r
+       SearchResult srResult;\r
+\r
+public:\r
+       ////////////////////////\r
+       // ctor & dtor\r
+\r
+       SearchTree() : pRegex(NULL), hSearchThread(NULL), hDlgWnd(NULL), pStartURI(NULL), pScanner(NULL), pMatchedURI(NULL) {}\r
+       ~SearchTree();\r
+       BOOL Init(SearchEngineA *p, const TomboURI *pStartURI, BOOL bDirectionForward, BOOL bSkipOne, BOOL bSkipEncrypt);\r
+\r
+       ////////////////////////\r
+       // Dialog callback\r
+\r
+       void InitDialog(HWND hDlg);\r
+       void OnClose(HWND hDlg, WORD nId);\r
+\r
+       HWND GetWnd() { return hDlgWnd; }\r
+\r
+       ////////////////////////\r
+       // other funcs\r
+\r
+       void Popup(HINSTANCE hInst, HWND hParent);\r
+       SearchResult Search();\r
+\r
+       void CancelRequest();\r
+\r
+       void SetResult(SearchResult sr) { srResult = sr; }\r
+       SearchResult GetResult() { return srResult; }\r
+\r
+       const TomboURI *GetMatchedURI() { return pMatchedURI; }\r
+       const TomboURI *CurrentURI();\r
+};\r
+\r
+#endif
\ No newline at end of file
diff --git a/Src/SelectViewWndProc.cpp b/Src/SelectViewWndProc.cpp
new file mode 100644 (file)
index 0000000..3fde624
--- /dev/null
@@ -0,0 +1,127 @@
+#include <windows.h>\r
+#include <commctrl.h>\r
+#include <tchar.h>\r
+\r
+#if defined(PLATFORM_PKTPC) || defined(PLATFORM_WM5)\r
+#include <aygshell.h>\r
+#endif\r
+#include "Tombo.h"\r
+#include "resource.h"\r
+#include "Property.h"\r
+#include "MemoSelectView.h"\r
+\r
+#define KEY_CTRL_C 3\r
+#define KEY_CTRL_V 22\r
+#define KEY_CTRL_X 24\r
+\r
+extern "C" {\r
+//typedef LRESULT (CALLBACK* WNDPROC)(HWND, UINT, WPARAM, LPARAM);\r
+}\r
+\r
+static SUPER_WND_PROC gSuperProc;\r
+static HINSTANCE hInst;\r
+static HWND hParentWnd;\r
+static MemoSelectView *pView;\r
+\r
+#include "Logger.h"\r
+\r
+void SelectViewSetWndProc(SUPER_WND_PROC wp, HWND hParent, HINSTANCE h, MemoSelectView *p)\r
+{\r
+       gSuperProc = wp;\r
+       hParentWnd = hParent;\r
+       hInst = h;\r
+       pView = p;\r
+}\r
+\r
+LRESULT CALLBACK NewSelectViewProc(HWND hwnd, UINT msg, WPARAM wParam, LPARAM lParam)\r
+{\r
+       switch(msg) {\r
+#ifdef SEPVIEW_DEBUG\r
+       case WM_LBUTTONDOWN:\r
+               g_Logger.WriteLog("WM_LBUTTONDOWN\r\n");\r
+               break;\r
+       case WM_LBUTTONUP:\r
+               g_Logger.WriteLog("WM_LBUTTONUP\r\n");\r
+               break;\r
+#endif\r
+#if defined(PLATFORM_HPC)\r
+       case WM_LBUTTONDOWN:\r
+               {\r
+                       BOOL bAltButton = (GetKeyState(VK_MENU) & 0x8000) != 0;\r
+                       if (bAltButton) {\r
+                               POINT pt;\r
+                               pt.x = LOWORD(lParam); pt.y = HIWORD(lParam);\r
+                               TV_HITTESTINFO hti;\r
+\r
+                               hti.pt = pt;\r
+                               HTREEITEM hX = TreeView_HitTest(hwnd, &hti);\r
+                               if (hX) {\r
+                                       TreeView_SelectItem(hwnd, hX);\r
+                               }\r
+                               return 0;\r
+                       }\r
+                       break;\r
+               }\r
+       case WM_LBUTTONUP:\r
+               {\r
+                       BOOL bAltButton = (GetKeyState(VK_MENU) & 0x8000) != 0;\r
+                       if (bAltButton) {\r
+                               POINT pt;\r
+                               pt.x = LOWORD(lParam); pt.y = HIWORD(lParam);\r
+                               pView->OnNotify_RClick(pt);\r
+                               return 0;\r
+                       }\r
+                       break;\r
+               }\r
+#endif\r
+       case WM_CHAR:\r
+               {\r
+                       // ignore events for disabling click beeps when focusing.\r
+                       if (!pView) return 0;\r
+                       HTREEITEM hItem;\r
+                       TreeViewItem *pItem = pView->GetCurrentItem(&hItem);\r
+                       switch(wParam) {\r
+                       case KEY_CTRL_C:\r
+                               pView->OnCopy(pItem);\r
+                               break;\r
+                       case KEY_CTRL_X:\r
+                               pView->OnCut(pItem);\r
+                               break;\r
+                       case KEY_CTRL_V:\r
+                               pView->OnPaste();\r
+                               break;\r
+                       }\r
+               return 0;\r
+               }\r
+       case WM_KEYDOWN:\r
+               {\r
+                       BOOL bShiftDown = (GetKeyState(VK_SHIFT) & 0x8000) != 0;\r
+\r
+                       if (wParam == VK_DELETE) {\r
+                               SendMessage(hParentWnd, WM_COMMAND, IDM_DELETEITEM, 0);\r
+                               return 0;\r
+                       }\r
+                       if (wParam == VK_LEFT && bShiftDown) {\r
+                               pView->SelUpFolderWithoutOpen();\r
+                               return 0;\r
+                       }\r
+                       if (wParam == VK_UP && bShiftDown) {\r
+                               pView->SelPrevBrother();\r
+                               return 0;\r
+                       }\r
+                       if (wParam == VK_DOWN && bShiftDown) {\r
+                               pView->SelNextBrother();\r
+                               return 0;\r
+                       }\r
+               }\r
+               break;\r
+       case WM_SETFOCUS:\r
+               {\r
+                       if (g_Property.GetUseTwoPane() && pView) {\r
+                               pView->OnGetFocus();\r
+                       }\r
+                       break;\r
+               }\r
+       }\r
+    return CallWindowProc(gSuperProc, hwnd, msg, wParam, lParam);\r
+}\r
diff --git a/Src/StatusBar.cpp b/Src/StatusBar.cpp
new file mode 100644 (file)
index 0000000..65215c9
--- /dev/null
@@ -0,0 +1,91 @@
+#include <windows.h>\r
+#include <commctrl.h>\r
+#include "resource.h"\r
+#include "StatusBar.h"\r
+\r
+#if defined(PLATFORM_WIN32) || defined(PLATFORM_HPC)\r
+\r
+BOOL StatusBar::Create(HWND hWnd, BOOL bNew)\r
+{\r
+#if defined(PLATFORM_HPC)\r
+       hStatusBar = CreateStatusWindow(WS_CHILD , TEXT(""), \r
+                                                                       hWnd, IDC_STATUS);\r
+#endif\r
+#if defined(PLATFORM_WIN32)\r
+       hStatusBar = CreateStatusWindow(WS_CHILD | SBARS_SIZEGRIP, "", \r
+                                                                       hWnd, IDC_STATUS);\r
+#endif\r
+\r
+       ResizeStatusBar();\r
+       SendMessage(hStatusBar, SB_SETTEXT, 0 | SBT_NOBORDERS , (LPARAM)"");\r
+       return TRUE;\r
+}\r
+\r
+void StatusBar::ResizeStatusBar()\r
+{\r
+       RECT r;\r
+       GetClientRect(hStatusBar, &r);\r
+       DWORD nHeight = r.bottom - r.top;\r
+       DWORD nWidth = r.right - r.left;\r
+\r
+       int nSep[4];\r
+\r
+       DWORD nWndSize = nHeight * 2;\r
+       nSep[0] = nWidth - nWndSize*3 - nHeight;\r
+       nSep[1] = nSep[0] + nWndSize;\r
+       nSep[2] = nSep[1] + nWndSize;\r
+       nSep[3] = nSep[2] + nWndSize;\r
+       SendMessage(hStatusBar, SB_SETPARTS, (WPARAM)4, (LPARAM)nSep);\r
+}\r
+\r
+void StatusBar::Show(BOOL bShow)\r
+{\r
+       if (bShow) {\r
+               ShowWindow(hStatusBar, SW_SHOW);\r
+       } else {\r
+               ShowWindow(hStatusBar, SW_HIDE);\r
+       }\r
+}\r
+\r
+void StatusBar::SetStatusIndicator(DWORD nPos, LPCTSTR pText, BOOL bDisp)\r
+{\r
+       LPCTSTR p;\r
+       if (bDisp) {\r
+               p = pText;\r
+       } else {\r
+               p = TEXT("");\r
+       }\r
+       SendMessage(hStatusBar, SB_SETTEXT, nPos, (LPARAM)p);\r
+}\r
+\r
+WORD StatusBar::GetHeight()\r
+{\r
+       RECT rStatus;\r
+       GetWindowRect(&rStatus);\r
+       return (WORD)(rStatus.bottom - rStatus.top);\r
+}\r
+\r
+void StatusBar::SendSize(WPARAM wParam, LPARAM lParam)\r
+{\r
+       SendMessage(hStatusBar, WM_SIZE, wParam, lParam);\r
+}\r
+\r
+void StatusBar::GetWindowRect(RECT *p)\r
+{\r
+       ::GetWindowRect(hStatusBar, p);\r
+}\r
+\r
+#else\r
+///////////////////////////////////////////////////\r
+// non support platform\r
+///////////////////////////////////////////////////\r
+\r
+BOOL StatusBar::Create(HWND hWnd, BOOL bNew) { return TRUE; }\r
+void StatusBar::ResizeStatusBar() {}\r
+void StatusBar::Show(BOOL bShow) {}\r
+void StatusBar::SetStatusIndicator(DWORD nPos, LPCTSTR pText, BOOL bDisp) {}\r
+WORD StatusBar::GetHeight() { return 0; }\r
+void StatusBar::SendSize(WPARAM wParam, LPARAM lParam) {}\r
+void StatusBar::GetWindowRect(RECT *p) {}\r
+\r
+#endif
\ No newline at end of file
diff --git a/Src/StatusBar.h b/Src/StatusBar.h
new file mode 100644 (file)
index 0000000..0fd76ee
--- /dev/null
@@ -0,0 +1,26 @@
+#ifndef STATUSBAR_H\r
+#define STATUSBAR_H\r
+\r
+///////////////////////////////////////////////////\r
+// Status bar\r
+///////////////////////////////////////////////////\r
+\r
+class StatusBar {\r
+public:\r
+#if defined(PLATFORM_WIN32) || defined(PLATFORM_HPC)\r
+       HWND hStatusBar;\r
+#endif\r
+\r
+       BOOL Create(HWND hParent, BOOL bNew);\r
+       void ResizeStatusBar();\r
+\r
+       void SetStatusIndicator(DWORD nPos, LPCTSTR pText, BOOL bDisp);\r
+       void Show(BOOL bShow);\r
+\r
+       void SendSize(WPARAM wParam, LPARAM lParam);\r
+\r
+       void GetWindowRect(RECT *pRect);\r
+       WORD GetHeight();\r
+};\r
+\r
+#endif
\ No newline at end of file
diff --git a/Src/TSParser.cpp b/Src/TSParser.cpp
new file mode 100644 (file)
index 0000000..172eee0
--- /dev/null
@@ -0,0 +1,639 @@
+#include <windows.h>\r
+#include <commctrl.h>\r
+#include <tchar.h>\r
+#define XMLPARSEAPI(type) type __cdecl // for expat\r
+#define XML_UNICODE_WCHAR_T\r
+#include <expat.h>\r
+#include "Tombo.h"\r
+#include "UniConv.h"\r
+#include "TSParser.h"\r
+#include "VFStream.h"\r
+#include "VFManager.h"\r
+#include "AutoPtr.h"\r
+#include "TString.h"\r
+#include "TomboURI.h"\r
+\r
+///////////////////////////////////////\r
+// UCS2 -> MBCS conversion libs.\r
+///////////////////////////////////////\r
+\r
+class ConvertWideToMultiByte {\r
+       char *p;\r
+public:\r
+       ConvertWideToMultiByte() : p(NULL) {}\r
+       ~ConvertWideToMultiByte() { delete []p; }\r
+\r
+       char *Convert(WCHAR *p);\r
+       char *Get() { return p; }\r
+};\r
+\r
+char *ConvertWideToMultiByte::Convert(WCHAR *pSrc)\r
+{\r
+       if (pSrc == NULL) return NULL;\r
+\r
+       DWORD n = (wcslen(pSrc) + 1) * 2;\r
+       p = new char[n];\r
+       if (p == NULL) return NULL;\r
+       WideCharToMultiByte(CP_ACP, 0, pSrc, -1, p, n, NULL, NULL);\r
+       return p;\r
+}\r
+\r
+///////////////////////////////////////\r
+// TSParser ctor&dtor\r
+///////////////////////////////////////\r
+\r
+TSParser::TSParser()\r
+{\r
+}\r
+\r
+TSParser::~TSParser()\r
+{\r
+}\r
+\r
+///////////////////////////////////////\r
+// XML tag info \r
+///////////////////////////////////////\r
+\r
+#define TAGID_UNKNOWN  0\r
+#define TAGID_INITIAL  1\r
+#define TAGID_FOLDERS  2\r
+#define TAGID_VFOLDER  3\r
+#define TAGID_GREP             4\r
+#define TAGID_SRC              5\r
+#define TAGID_TIMESTAMP        6\r
+#define TAGID_LIMIT            7\r
+#define TAGID_ORDER            8\r
+\r
+static DWORD nAllowParent[] = {\r
+       0,                                              // TAGID_UNKONWN\r
+       0,                                              // TAGID_INITIAL\r
+       (1 << TAGID_INITIAL),   // TAGID_FOLDERS\r
+       (1 << TAGID_FOLDERS),   // TAGID_VFOLDER\r
+       (1 << TAGID_VFOLDER) | (1 << TAGID_GREP) | (1 << TAGID_TIMESTAMP) | (1 << TAGID_LIMIT) | (1 << TAGID_ORDER),\r
+                                                       // TAGID_GREP\r
+       (1 << TAGID_VFOLDER) | (1 << TAGID_GREP) | (1 << TAGID_TIMESTAMP) | (1 << TAGID_LIMIT) | (1 << TAGID_ORDER),\r
+                                                       // TAGID_SRC\r
+       (1 << TAGID_VFOLDER) | (1 << TAGID_GREP) | (1 << TAGID_TIMESTAMP) | (1 << TAGID_LIMIT) | (1 << TAGID_ORDER),\r
+                                                       // TAGID_TIMESTAMP\r
+       (1 << TAGID_VFOLDER) | (1 << TAGID_GREP) | (1 << TAGID_TIMESTAMP) | (1 << TAGID_LIMIT) | (1 << TAGID_ORDER),\r
+                                                       // TAGID_LIMIT\r
+       (1 << TAGID_VFOLDER) | (1 << TAGID_GREP) | (1 << TAGID_TIMESTAMP) | (1 << TAGID_LIMIT) | (1 << TAGID_ORDER),\r
+                                                       // TAGID_ORDER\r
+};\r
+\r
+///////////////////////////////////////\r
+// TAG data\r
+///////////////////////////////////////\r
+\r
+TSParseTagItem::~TSParseTagItem()\r
+{\r
+}\r
+\r
+BOOL TSParseTagItem::StartElement(ParseInfo *p, const XML_Char **atts)\r
+{\r
+       return TRUE;\r
+}\r
+\r
+BOOL TSParseTagItem::EndElement(ParseInfo *p)\r
+{\r
+       return TRUE;\r
+}\r
+\r
+///////////////////////////////////////\r
+//  "src" tag implimentation\r
+///////////////////////////////////////\r
+\r
+class TSSrcTag : public TSParseTagItem {\r
+       WCHAR *pSrc;\r
+       WCHAR *pURI;\r
+       BOOL bCheckEncrypt;\r
+public:\r
+       TSSrcTag() : TSParseTagItem(TAGID_SRC), pSrc(NULL), bCheckEncrypt(FALSE), pURI(NULL) {}\r
+       ~TSSrcTag();\r
+\r
+       BOOL StartElement(ParseInfo *p, const XML_Char **atts);\r
+       BOOL EndElement(ParseInfo *p);\r
+};\r
+\r
+TSSrcTag::~TSSrcTag()\r
+{\r
+       delete [] pSrc;\r
+       delete [] pURI;\r
+}\r
+\r
+BOOL TSSrcTag::StartElement(ParseInfo *p, const XML_Char **atts)\r
+{\r
+       bCheckEncrypt = FALSE;\r
+\r
+       DWORD i = 0;\r
+       while(atts[i] != NULL) {\r
+               if (wcsicmp(atts[i], L"folder") == 0) {\r
+                       delete[] pSrc;\r
+                       pSrc = StringDupW(atts[i + 1]);\r
+                       if (pSrc == NULL) return FALSE;\r
+               } else if (wcsicmp(atts[i], L"uri") == 0) {\r
+                       delete[] pURI;\r
+                       pURI = StringDupW(atts[i + 1]);\r
+                       if (pURI == NULL) return FALSE;\r
+               } else if (wcsicmp(atts[i], L"checkencrypt") == 0) {\r
+                       bCheckEncrypt = TRUE;\r
+               }\r
+\r
+               i += 2;\r
+       }\r
+\r
+       if (!pSrc && !pURI) {\r
+               // necessary attribute is not found.\r
+               return FALSE;\r
+       }\r
+       return TRUE;\r
+}\r
+\r
+BOOL TSSrcTag::EndElement(ParseInfo *p)\r
+{\r
+       if (pHead != NULL) {\r
+               // "src" tag can't have sub items.\r
+               return FALSE;\r
+       }\r
+\r
+       VFDirectoryGenerator *pGen = new VFDirectoryGenerator();\r
+       if (pGen == NULL) return FALSE;\r
+\r
+       LPTSTR pSrcPath = ConvWCharToTChar(pSrc);\r
+       ArrayAutoPointer<TCHAR> ap1(pSrcPath);\r
+\r
+       LPTSTR pSrcURI = ConvWCharToTChar(pURI);\r
+       ArrayAutoPointer<TCHAR> ap2(pSrcURI);\r
+\r
+       if (pSrcPath && !pGen->Init(pSrcPath, bCheckEncrypt)) return FALSE;\r
+       else if (pSrcURI) {\r
+               TomboURI uri;\r
+               if (!uri.Init(pSrcURI)) return FALSE;\r
+               if (!pGen->Init(&uri, bCheckEncrypt)) return FALSE;\r
+       }\r
+       // Pass create object to parent item\r
+       TSParseTagItem *pParent = pNext;\r
+       pParent->pHead = pParent->pTail = pGen;\r
+       return TRUE;\r
+}\r
+\r
+///////////////////////////////////////\r
+// "grep" tag implimentation\r
+///////////////////////////////////////\r
+\r
+class TSGrepTag : public TSParseTagItem {\r
+       WCHAR *pPattern;\r
+       BOOL bCaseSensitive;\r
+       BOOL bFileNameOnly;\r
+       BOOL bNegate;\r
+       BOOL bCheckEncrypt;\r
+public:\r
+       TSGrepTag() : TSParseTagItem(TAGID_GREP), pPattern(NULL) {}\r
+       ~TSGrepTag();\r
+\r
+       BOOL StartElement(ParseInfo *p, const XML_Char **atts);\r
+       BOOL EndElement(ParseInfo *p);\r
+};\r
+\r
+TSGrepTag::~TSGrepTag()\r
+{\r
+       if (pPattern) delete [] pPattern;\r
+}\r
+\r
+BOOL TSGrepTag::StartElement(ParseInfo *p, const XML_Char **atts)\r
+{\r
+       bCaseSensitive = bFileNameOnly = bNegate = bCheckEncrypt = FALSE;\r
+       DWORD i = 0;\r
+       while(atts[i] != NULL) {\r
+               if (wcsicmp(atts[i], L"pattern") == 0) {\r
+                       pPattern = new WCHAR[wcslen(atts[i + 1]) + 1];\r
+                       if (pPattern == NULL) return FALSE;\r
+                       wcscpy(pPattern, atts[i + 1]);\r
+               } else if (wcsicmp(atts[i], L"casesensitive") == 0) {\r
+                       bCaseSensitive = TRUE;\r
+               } else if (wcsicmp(atts[i], L"filenameonly") == 0) {\r
+                       bFileNameOnly = TRUE;\r
+               } else if (wcsicmp(atts[i], L"not") == 0) {\r
+                       bNegate = TRUE;\r
+               } else if (wcsicmp(atts[i], L"checkencrypt") == 0) {\r
+                       bCheckEncrypt = TRUE;\r
+               }\r
+               i += 2;\r
+       }\r
+       if (!pPattern) {\r
+               return FALSE;\r
+       }\r
+       return TRUE;\r
+}\r
+\r
+BOOL TSGrepTag::EndElement(ParseInfo *p)\r
+{\r
+       if (pHead == NULL) {\r
+               // Grep tag should have child tag.\r
+               return FALSE;\r
+       }\r
+       VFRegexFilter *pFilter = new VFRegexFilter();\r
+\r
+#ifdef _WIN32_WCE\r
+       LPTSTR pConved = pPattern;\r
+#else\r
+       ConvertWideToMultiByte conv;\r
+       if (!conv.Convert(pPattern)) return FALSE;\r
+       LPTSTR pConved = conv.Get();\r
+#endif\r
+       if (!pFilter || !pFilter->Init(pConved, bCaseSensitive, bCheckEncrypt, bFileNameOnly, bNegate, g_pPasswordManager)) return FALSE;\r
+\r
+       // Pass create object to parent item\r
+       TSParseTagItem *pParent = pNext;\r
+       pTail->SetNext(pFilter);\r
+       pParent->pHead = pHead;\r
+       pParent->pTail = pFilter;\r
+       return TRUE;\r
+}\r
+\r
+///////////////////////////////////////\r
+// "vfolder" tag implimentation\r
+///////////////////////////////////////\r
+\r
+class TSVFolderTag : public TSParseTagItem {\r
+       WCHAR *pName;\r
+public:\r
+       TSVFolderTag() : TSParseTagItem(TAGID_VFOLDER), pName(NULL){}\r
+       ~TSVFolderTag();\r
+\r
+       BOOL StartElement(ParseInfo *p, const XML_Char **atts);\r
+       BOOL EndElement(ParseInfo *p);\r
+};\r
+\r
+TSVFolderTag::~TSVFolderTag()\r
+{\r
+       if (pName) delete[] pName;\r
+}\r
+\r
+BOOL TSVFolderTag::StartElement(ParseInfo *p, const XML_Char **atts)\r
+{\r
+       DWORD i = 0;\r
+       while(atts[i] != NULL) {\r
+               if (wcsicmp(atts[i], L"name") == 0) {\r
+                       pName = new WCHAR[wcslen(atts[i + 1]) + 1];\r
+                       if (pName == NULL) return FALSE;\r
+                       wcscpy(pName, atts[i + 1]);\r
+               }\r
+               i += 2;\r
+       }\r
+       if (!pName) {\r
+               return FALSE;\r
+       }\r
+       return TRUE;\r
+}\r
+\r
+BOOL TSVFolderTag::EndElement(ParseInfo *p)\r
+{\r
+       if (pHead == NULL || pTail == NULL) return FALSE;\r
+\r
+       // add VFStore\r
+       VFStore *pStore = new VFStore();\r
+       if (!pStore || !pStore->Init()) {\r
+               delete pStore;\r
+               return FALSE;\r
+       }\r
+       pTail->SetNext(pStore);\r
+\r
+       // convert Node name\r
+       // TOMBO uses expat UNICODE version, so convert MBCS if platform is win32.\r
+\r
+#ifdef _WIN32_WCE\r
+       LPTSTR pConved = pName;\r
+#else\r
+       ConvertWideToMultiByte conv;\r
+       if (!conv.Convert(pName)) return FALSE;\r
+       LPTSTR pConved = conv.Get();\r
+#endif\r
+\r
+       p->pListener->ProcessStream(pConved, TRUE, (VFDirectoryGenerator*)pHead, pStore);\r
+\r
+       return TRUE;\r
+}\r
+\r
+///////////////////////////////////////\r
+// "timestamp" tag implimentation\r
+///////////////////////////////////////\r
+\r
+class TSTimestampTag : public TSParseTagItem {\r
+       DWORD nDelta;\r
+       DWORD nRecent;\r
+public:\r
+       TSTimestampTag() : TSParseTagItem(TAGID_TIMESTAMP) {}\r
+       ~TSTimestampTag() {}\r
+\r
+       BOOL StartElement(ParseInfo *p, const XML_Char **atts);\r
+       BOOL EndElement(ParseInfo *p);\r
+       \r
+};\r
+\r
+BOOL TSTimestampTag::StartElement(ParseInfo *p, const XML_Char **atts)\r
+{\r
+       DWORD i = 0;\r
+       nRecent = TRUE;\r
+       nDelta = 0xFFFFFFFF;\r
+       while(atts[i] != NULL) {\r
+               if (wcsicmp(atts[i], L"days") == 0) {\r
+                       // atts[i + 1];\r
+                       nDelta = _wtol(atts[i + 1]);\r
+               }\r
+               if (wcsicmp(atts[i], L"older") == 0) {\r
+                       nRecent = FALSE;\r
+               }\r
+               if (wcsicmp(atts[i], L"newer") == 0) {\r
+                       nRecent = TRUE;\r
+               }\r
+               i += 2;\r
+       }\r
+       if (nDelta == 0xFFFFFFFF) return FALSE;\r
+       return TRUE;\r
+}\r
+\r
+BOOL TSTimestampTag::EndElement(ParseInfo *p)\r
+{\r
+       if (pHead == NULL) return FALSE;\r
+\r
+       VFTimestampFilter *pFilter = new VFTimestampFilter();\r
+       if (pFilter == NULL || !pFilter->Init(nDelta, nRecent)) return FALSE;\r
+       TSParseTagItem *pParent = pNext;\r
+       pTail->SetNext(pFilter);\r
+       pParent->pHead = pHead;\r
+       pParent->pTail = pFilter;\r
+       return TRUE;\r
+}\r
+\r
+///////////////////////////////////////\r
+// "limit" tag implimentation\r
+///////////////////////////////////////\r
+\r
+class TSLimitTag : public TSParseTagItem {\r
+       DWORD nLimit;\r
+public:\r
+       TSLimitTag() : TSParseTagItem(TAGID_LIMIT) {}\r
+       ~TSLimitTag() {}\r
+\r
+       BOOL StartElement(ParseInfo *p, const XML_Char **atts);\r
+       BOOL EndElement(ParseInfo *p);\r
+\r
+       DWORD GetLimit() { return nLimit; }\r
+};\r
+\r
+BOOL TSLimitTag::StartElement(ParseInfo *p, const XML_Char **atts)\r
+{\r
+       nLimit = 0xFFFFFFFF;\r
+       DWORD i = 0;\r
+       while(atts[i] != NULL) {\r
+               if (wcsicmp(atts[i], L"number") == 0) {\r
+                       // atts[i + 1];\r
+                       nLimit = _wtol(atts[i + 1]);\r
+               }\r
+               i += 2;\r
+       }\r
+       if (nLimit == 0xFFFFFFFF) return FALSE;\r
+       return TRUE;\r
+}\r
+\r
+BOOL TSLimitTag::EndElement(ParseInfo *p)\r
+{\r
+       if (pHead == NULL) return FALSE;\r
+\r
+       VFLimitFilter *pFilter = new VFLimitFilter();\r
+       if (pFilter == NULL || !pFilter->Init(nLimit)) return FALSE;\r
+       TSParseTagItem *pParent = pNext;\r
+       pTail->SetNext(pFilter);\r
+       pParent->pHead = pHead;\r
+       pParent->pTail = pFilter;\r
+       return TRUE;\r
+}\r
+\r
+///////////////////////////////////////\r
+// "order" tag implimentation\r
+///////////////////////////////////////\r
+\r
+class TSOrderTag : public TSParseTagItem {\r
+       VFSortFilter::SortFuncType sfType;\r
+public:\r
+       TSOrderTag() : TSParseTagItem(TAGID_ORDER){}\r
+       ~TSOrderTag() {}\r
+\r
+       BOOL StartElement(ParseInfo *p, const XML_Char **atts);\r
+       BOOL EndElement(ParseInfo *p);\r
+};\r
+\r
+BOOL TSOrderTag::StartElement(ParseInfo *p, const XML_Char **atts)\r
+{\r
+       DWORD i = 0;\r
+       while(atts[i] != NULL) {\r
+               if (wcsicmp(atts[i], L"func") == 0) {\r
+                       if (wcsicmp(atts[i + 1], L"filename_asc") == 0) {\r
+                               sfType = VFSortFilter::SortFunc_FileNameAsc;\r
+                       } else if (wcsicmp(atts[i + 1], L"filename_dsc") == 0) {\r
+                               sfType = VFSortFilter::SortFunc_FileNameDsc;\r
+                       } else if (wcsicmp(atts[i + 1], L"lastupdate_asc") == 0) {\r
+                               sfType = VFSortFilter::SortFunc_LastUpdateAsc;\r
+                       } else if (wcsicmp(atts[i + 1], L"lastupdate_dsc") == 0) {\r
+                               sfType = VFSortFilter::SortFunc_LastUpdateDsc;\r
+                       } else if (wcsicmp(atts[i + 1], L"createdate_asc") == 0) {\r
+                               sfType = VFSortFilter::SortFunc_CreateDateAsc;\r
+                       } else if (wcsicmp(atts[i + 1], L"createdate_dsc") == 0) {\r
+                               sfType = VFSortFilter::SortFunc_CreateDateDsc;\r
+                       } else if (wcsicmp(atts[i + 1], L"filesize_asc") == 0) {\r
+                               sfType = VFSortFilter::SortFunc_FileSizeAsc;\r
+                       } else if (wcsicmp(atts[i + 1], L"filesize_dsc") == 0) {\r
+                               sfType = VFSortFilter::SortFunc_FileSizeDsc;\r
+                       } else {\r
+                               return FALSE;\r
+                       }\r
+               }\r
+               i += 2;\r
+       }\r
+       return TRUE;\r
+}\r
+\r
+BOOL TSOrderTag::EndElement(ParseInfo *p)\r
+{\r
+       if (pHead == NULL) return FALSE;\r
+\r
+       VFSortFilter *pFilter = new VFSortFilter();\r
+       if (pFilter == NULL || !pFilter->Init(sfType)) return FALSE;\r
+       TSParseTagItem *pParent = pNext;\r
+       pTail->SetNext(pFilter);\r
+       pParent->pHead = pHead;\r
+       pParent->pTail = pFilter;\r
+       return TRUE;\r
+}\r
+\r
+///////////////////////////////////////\r
+// ParseInfo implimentation\r
+///////////////////////////////////////\r
+\r
+ParseInfo::~ParseInfo()\r
+{\r
+       TSParseTagItem *p = pTop;\r
+       TSParseTagItem *q;\r
+       while(p) {\r
+               q = p;\r
+               p = p->GetNext();\r
+               delete q;\r
+       }\r
+}\r
+\r
+BOOL ParseInfo::Init(VirtualFolderEnumListener *pLsnr)\r
+{\r
+       pListener = pLsnr;\r
+\r
+       TSParseTagItem *pTag = new TSParseTagItem(TAGID_INITIAL);\r
+       if (pTag == NULL) return FALSE;\r
+       Push(pTag);\r
+       return TRUE;\r
+}\r
+\r
+DWORD ParseInfo::GetTagID(const WCHAR *pTagName)\r
+{\r
+       if (wcsicmp(pTagName, L"folders") == 0) {\r
+               return TAGID_FOLDERS;\r
+       } else if (wcsicmp(pTagName, L"vfolder") == 0) {\r
+               return TAGID_VFOLDER;\r
+       } else if (wcsicmp(pTagName, L"grep") == 0) {\r
+               return TAGID_GREP;\r
+       } else if (wcsicmp(pTagName, L"src") == 0) {\r
+               return TAGID_SRC;\r
+       } else if (wcsicmp(pTagName, L"timestamp") == 0) {\r
+               return TAGID_TIMESTAMP;\r
+       } else if (wcsicmp(pTagName, L"limit") == 0) {\r
+               return TAGID_LIMIT;\r
+       } else if (wcsicmp(pTagName, L"sort") == 0) {\r
+               return TAGID_ORDER;\r
+       } else {\r
+               return TAGID_UNKNOWN;\r
+       }\r
+}\r
+\r
+TSParseTagItem *ParseInfo::GetTagObjectFactory(DWORD nTagID)\r
+{\r
+       switch (nTagID) {\r
+       case TAGID_FOLDERS:\r
+               return new TSParseTagItem(TAGID_FOLDERS);\r
+       case TAGID_VFOLDER:\r
+               return new TSVFolderTag();\r
+       case TAGID_GREP:\r
+               return new TSGrepTag();\r
+       case TAGID_SRC:\r
+               return new TSSrcTag();\r
+       case TAGID_TIMESTAMP:\r
+               return new TSTimestampTag();\r
+       case TAGID_LIMIT:\r
+               return new TSLimitTag();\r
+       case TAGID_ORDER:\r
+               return new TSOrderTag();\r
+       default:\r
+               return NULL;\r
+       }\r
+}\r
+\r
+void ParseInfo::Push(TSParseTagItem *p)\r
+{\r
+       p->SetNext(pTop); \r
+       pTop = p;\r
+}\r
+\r
+void ParseInfo::Pop()\r
+{\r
+       TSParseTagItem *p = pTop;\r
+       pTop = p->GetNext();\r
+       delete p;\r
+}\r
+\r
+BOOL ParseInfo::IsValidParent(DWORD nTag)\r
+{\r
+       return ((nAllowParent[nTag] & (1 << pTop->GetTagID())) != 0);\r
+}\r
+\r
+///////////////////////////////////////\r
+// expat callback funcs.\r
+///////////////////////////////////////\r
+\r
+static void StartElement(void *userData, const XML_Char *name, const XML_Char **atts)\r
+{\r
+       ParseInfo *pInfo = (ParseInfo*)userData;\r
+       if (pInfo->IsError()) return;\r
+\r
+       // Check tag\r
+       DWORD nCurTag = pInfo->GetTagID(name);\r
+       if (nCurTag == TAGID_UNKNOWN) {\r
+               pInfo->SetError();\r
+               return;\r
+       }\r
+       if (!pInfo->IsValidParent(nCurTag)) {\r
+               pInfo->SetError();\r
+               return;\r
+       }\r
+       TSParseTagItem *pTag = pInfo->GetTagObjectFactory(nCurTag);\r
+       pInfo->Push(pTag);\r
+       if (!pTag->StartElement(pInfo, atts)) {\r
+               pInfo->SetError();\r
+       }\r
+}\r
+\r
+static void EndElement(void *userData, const XML_Char *name)\r
+{\r
+       ParseInfo *pInfo = (ParseInfo*)userData;\r
+       if (pInfo->IsError()) {\r
+               pInfo->Pop();\r
+               return;\r
+       }\r
+       pInfo->Top()->EndElement(pInfo);\r
+       pInfo->Pop();\r
+}\r
+\r
+///////////////////////////////////////\r
+// parser main\r
+///////////////////////////////////////\r
+\r
+BOOL TSParser::Parse(LPCTSTR pFileName, VirtualFolderEnumListener *pLsnr)\r
+{\r
+       XML_Parser pParser;\r
+       ParseInfo info;\r
+\r
+       if (!info.Init(pLsnr)) return FALSE;\r
+\r
+       HANDLE hFile = CreateFile(pFileName, GENERIC_READ, FILE_SHARE_READ, NULL, OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL, NULL);\r
+       if (hFile == INVALID_HANDLE_VALUE) return FALSE;\r
+\r
+       DWORD nFileSize = GetFileSize(hFile, NULL);\r
+\r
+       pParser = XML_ParserCreate(NULL);\r
+       if (pParser == NULL) {\r
+               CloseHandle(hFile);\r
+               return FALSE;\r
+       }\r
+\r
+       XML_SetElementHandler(pParser, StartElement, EndElement);\r
+       XML_SetUserData(pParser, &info);\r
+\r
+       void *pBuf = XML_GetBuffer(pParser, nFileSize);\r
+       if (pBuf == NULL) {\r
+               CloseHandle(hFile);\r
+               return FALSE;\r
+       }\r
+       DWORD nRead;\r
+       if (!ReadFile(hFile, pBuf, nFileSize, &nRead, NULL)) {\r
+               CloseHandle(hFile);\r
+               return FALSE;\r
+       }\r
+\r
+       CloseHandle(hFile);\r
+\r
+       if (!XML_ParseBuffer(pParser, nFileSize, TRUE)) {\r
+               const WCHAR *p = XML_ErrorString(XML_GetErrorCode(pParser));\r
+               int ln = XML_GetCurrentLineNumber(pParser);\r
+               int col = XML_GetCurrentColumnNumber(pParser);\r
+               return FALSE;\r
+       }\r
+       XML_ParserFree(pParser);\r
+       return TRUE;\r
+}\r
diff --git a/Src/TSParser.h b/Src/TSParser.h
new file mode 100644 (file)
index 0000000..dd4f475
--- /dev/null
@@ -0,0 +1,106 @@
+#ifndef TSCOMPILER_H\r
+#define TSCOMPILER_H\r
+\r
+#include <expat.h>\r
+class MemoSelectView;\r
+class ParseInfo;\r
+class VFStream;\r
+class TreeViewVirtualFolder;\r
+class VirtualFolderEnumListener;\r
+\r
+////////////////////////////////////\r
+// TOMBO script parser\r
+////////////////////////////////////\r
+\r
+class TSParser {\r
+public:\r
+       TSParser();\r
+       ~TSParser();\r
+\r
+       BOOL Parse(LPCTSTR pFileName, VirtualFolderEnumListener *pListener);\r
+};\r
+\r
+///////////////////////////////////////\r
+// XML TAG abstruction\r
+///////////////////////////////////////\r
+\r
+class TSParseTagItem {\r
+protected:\r
+       DWORD nTagID;\r
+       TSParseTagItem *pNext;\r
+\r
+public:\r
+       VFStream *pHead;\r
+       VFStream *pTail;\r
+\r
+       ////////////////////////\r
+       // ctor & dtor\r
+\r
+       TSParseTagItem(DWORD nID) : nTagID(nID), pHead(NULL), pTail(NULL) {}\r
+       virtual ~TSParseTagItem(); \r
+\r
+       ////////////////////////\r
+       // accessor & mutator\r
+\r
+       DWORD GetTagID() { return nTagID; }\r
+\r
+       ////////////////////////\r
+       // tag chain operation\r
+\r
+       void SetNext(TSParseTagItem *p) { pNext = p; }\r
+       TSParseTagItem *GetNext() { return pNext; }\r
+\r
+       ////////////////////////\r
+       // Start element\r
+       virtual BOOL StartElement(ParseInfo *p, const XML_Char **atts);\r
+\r
+       ////////////////////////\r
+       // End element\r
+       virtual BOOL EndElement(ParseInfo *p);\r
+};\r
+\r
+///////////////////////////////////////\r
+// XML Parser helper\r
+///////////////////////////////////////\r
+\r
+class ParseInfo {\r
+       BOOL bError;\r
+       TSParseTagItem *pTop;\r
+public:\r
+       ////////////////////////\r
+       // ctor & dtor\r
+\r
+       ParseInfo() : bError(FALSE), pTop(NULL), pListener(NULL) {}\r
+       ~ParseInfo();\r
+       BOOL Init(VirtualFolderEnumListener *pLsnr);\r
+\r
+       ////////////////////////\r
+       // public vars\r
+       VirtualFolderEnumListener *pListener;\r
+\r
+       ////////////////////////\r
+       // Error info\r
+\r
+       BOOL IsError() { return bError; }\r
+       void SetError() { bError = TRUE; }\r
+\r
+       ////////////////////////\r
+       // check & get tag Object\r
+\r
+       DWORD GetTagID(const WCHAR *pTagName);\r
+       TSParseTagItem *GetTagObjectFactory(DWORD nTagID);\r
+\r
+       ////////////////////////\r
+       // Tag info operation\r
+\r
+       void Push(TSParseTagItem *p);\r
+       TSParseTagItem *Top() { return pTop; }\r
+       void Pop();\r
+\r
+       ////////////////////////\r
+       // Tag validation\r
+       BOOL IsValidParent(DWORD nTag);\r
+};\r
+\r
+\r
+#endif\r
diff --git a/Src/Tombo.h b/Src/Tombo.h
new file mode 100644 (file)
index 0000000..ada1b0a
--- /dev/null
@@ -0,0 +1,107 @@
+#ifndef TOMBO_H\r
+#define TOMBO_H\r
+\r
+class PasswordManager;\r
+\r
+///////////////////////////////////////\r
+// \83E\83B\83\93\83h\83E\83\81\83b\83Z\81[\83W\r
+///////////////////////////////////////\r
+\r
+// MWM_OPEN_REQUEST : \83\81\83\82\82Ì\83I\81[\83v\83\93\97v\8b\81\r
+// WPARAM : \83I\83v\83V\83\87\83\93\r
+// LPARAM : \83I\81[\83v\83\93\82³\82ê\82é\82×\82«\83m\81[\83h\82Ö\82Ì\83|\83C\83\93\83^\r
+// #define MWM_OPEN_REQUEST (0x8000 + 1)\r
+\r
+// MWM_OPEN_REQUEST \83I\83v\83V\83\87\83\93\r
+#define OPEN_REQUEST_MDVIEW_ACTIVE 0\r
+#define OPEN_REQUEST_MSVIEW_ACTIVE 1\r
+\r
+// MWM_RAISE_MAINFRAME : \83g\83b\83v\83\8c\83x\83\8b\83E\83B\83\93\83h\83E\82ðRaise\82µ\82Ä\8dÄ\91O\96Ê\82É\82à\82Á\82Ä\82­\82é\r
+// WPARAM, LPARAM: 0\r
+#define MWM_RAISE_MAINFRAME (0x8000 + 2)\r
+\r
+// MWM_SWITCH_VIEW : switch focus\r
+#define MWM_SWITCH_VIEW (0x8000 + 3)\r
+\r
+///////////////////////////////////////\r
+// \8b¤\92Ê\92è\8b`\r
+///////////////////////////////////////\r
+\r
+\r
+#define TOMBO_MAIN_FRAME_WINDOW_CLSS TEXT("TomboMainFrmWnd")\r
+\r
+#define TOMBO_APP_NAME TEXT("Tombo")\r
+\r
+// \95\8e\9a\97ñ\83\8a\83\\81[\83X\82Ì\8dÅ\91å\92·\r
+#define MESSAGE_MAX_SIZE 1024\r
+\r
+// \83\8a\83X\83g\83r\83\85\81[\82ª\8e\9d\82Â\83C\83\81\81[\83W\83\8a\83X\83g\r
+#define IMG_FOLDER 0\r
+#define IMG_FOLDER_SEL 1\r
+#define IMG_ARTICLE 2\r
+#define IMG_ARTICLE_ENCRYPTED 3\r
+#define IMG_ARTICLE_MASKED 4\r
+#define IMG_ARTICLE_ENC_MASKED 5\r
+#define IMG_FOLDER_MASKED 6\r
+#define IMG_FOLDER_SEL_MASKED 7\r
+#define IMG_VFOLDER 8\r
+#define IMG_VFOLDER_SEL 9\r
+\r
+extern HINSTANCE g_hInstance;\r
+\r
+#include "Logger.h"\r
+extern Logger *g_pLogger;\r
+\r
+int TomboMessageBox(HWND hWnd, LPCTSTR pText, LPCTSTR pCaption, UINT uType); \r
+extern BOOL bDisableHotKey;\r
+\r
+extern PasswordManager *g_pPasswordManager;\r
+\r
+// application button defintions\r
+#define APP_BUTTON1 (0xC1)\r
+#define APP_BUTTON2 (0xC2)\r
+#define APP_BUTTON3 (0xC3)\r
+#define APP_BUTTON4 (0xC4)\r
+#define APP_BUTTON5 (0xC5)\r
+\r
+#define APPBUTTON_ACTION_DISABLE 0\r
+#define APPBUTTON_ACTION_ENABLE  1\r
+\r
+// Virtual folder definition file name\r
+// path is defind by user(Property).\r
+#define TOMBO_VFOLDER_DEF_FILE TEXT("vfolder.xml")\r
+\r
+// message definition file\r
+#define TOMBO_MSG_DEF_FILE TEXT("TomboMsg.txt")\r
+\r
+// Number of preserving history about search string.\r
+#define NUM_SEARCH_HISTORY 10\r
+\r
+enum SearchResult {\r
+       SR_FOUND,\r
+       SR_NOTFOUND,\r
+       SR_FAILED,\r
+       SR_CANCELED\r
+};\r
+\r
+// execution type\r
+enum ExeAppType {\r
+       ExecType_Assoc,\r
+       ExecType_ExtApp1,\r
+       ExecType_ExtApp2,\r
+};\r
+\r
+//\r
+#define VFOLDER_IMAGE_PERSIST  8\r
+#define VFOLDER_IMAGE_TEMP             6\r
+\r
+#ifdef STRICT \r
+typedef WNDPROC SUPER_WND_PROC;\r
+#else \r
+typedef FARPROC SUPER_WND_PROC;\r
+#endif \r
+\r
+#define NUM_RETRY_INVALID_PASSWORD 3\r
+\r
+#define VFOLDER_REPO_NAME TEXT("@vfolder")\r
+#endif\r
diff --git a/Src/TomboLib/AutoPtr.cpp b/Src/TomboLib/AutoPtr.cpp
new file mode 100644 (file)
index 0000000..b628f10
--- /dev/null
@@ -0,0 +1,38 @@
+#include <windows.h>\r
+#include "AutoPtr.h"\r
+\r
+SecureBufferAutoPointerT::~SecureBufferAutoPointerT() {\r
+       if (pPtr == NULL) return;\r
+       LPTSTR q = pPtr;\r
+       while(*q) *q++ = TEXT('\0');\r
+       delete [] pPtr;\r
+}\r
+\r
+SecureBufferAutoPointerA::~SecureBufferAutoPointerA() {\r
+       if (pPtr == NULL) return;\r
+       char *q = pPtr;\r
+       while(*q) *q++ = TEXT('\0');\r
+       delete [] pPtr;\r
+}\r
+\r
+SecureBufferAutoPointerW::~SecureBufferAutoPointerW() {\r
+       if (pPtr == NULL) return;\r
+       LPWSTR q = pPtr;\r
+       while(*q) *q++ = TEXT('\0');\r
+       delete [] pPtr;\r
+}\r
+\r
+SecureBufferAutoPointerByte::~SecureBufferAutoPointerByte() {\r
+       Clear();\r
+}\r
+\r
+void SecureBufferAutoPointerByte::Clear()\r
+{\r
+       if (pPtr == NULL) return;\r
+       LPBYTE p = pPtr;\r
+       for (DWORD i = 0; i < nLen; i++) {\r
+               *p++ = 0;\r
+       }\r
+       delete [] pPtr;\r
+       pPtr = NULL;\r
+}
\ No newline at end of file
diff --git a/Src/TomboLib/AutoPtr.h b/Src/TomboLib/AutoPtr.h
new file mode 100644 (file)
index 0000000..5a2cec2
--- /dev/null
@@ -0,0 +1,58 @@
+#ifndef TOMBO_AUTOPTR_H\r
+#define TOMBO_AUTOPTR_H\r
+\r
+template <class T>\r
+class AutoPointer {\r
+       T* pPtr;\r
+public:\r
+       AutoPointer(T* p = NULL) : pPtr(p) {}\r
+       ~AutoPointer() { delete pPtr; }\r
+\r
+       void set(T* p) { pPtr = p; }\r
+       void releaseAndSet(T* p) { delete pPtr; pPtr = p; }\r
+};\r
+\r
+template <class T>\r
+class ArrayAutoPointer {\r
+       T* pPtr;\r
+public:\r
+       ArrayAutoPointer(T* p = NULL) : pPtr(p) {}\r
+       ~ArrayAutoPointer() { delete [] pPtr; }\r
+\r
+       void set(T* p) { pPtr = p; }\r
+       void releaseAndSet(T* p) { delete [] pPtr; pPtr = p; }\r
+};\r
+\r
+class SecureBufferAutoPointerT {\r
+       LPTSTR pPtr;\r
+public:\r
+       SecureBufferAutoPointerT(LPTSTR p) : pPtr(p) {}\r
+       ~SecureBufferAutoPointerT();\r
+};\r
+\r
+class SecureBufferAutoPointerA {\r
+       char *pPtr;\r
+public:\r
+       SecureBufferAutoPointerA(char *p) : pPtr(p) {}\r
+       ~SecureBufferAutoPointerA();\r
+};\r
+\r
+class SecureBufferAutoPointerW {\r
+       LPWSTR pPtr;\r
+public:\r
+       SecureBufferAutoPointerW(LPWSTR p) : pPtr(p) {}\r
+       ~SecureBufferAutoPointerW();\r
+};\r
+\r
+class SecureBufferAutoPointerByte {\r
+       LPBYTE pPtr;\r
+       DWORD nLen;\r
+public:\r
+       SecureBufferAutoPointerByte(LPBYTE p = NULL, DWORD n = 0) : pPtr(p), nLen(n) {}\r
+       ~SecureBufferAutoPointerByte();\r
+\r
+       void Set(LPBYTE p, DWORD n) { Clear(); pPtr = p; nLen = n; }\r
+       void Clear();\r
+};\r
+\r
+#endif\r
diff --git a/Src/TomboLib/Clipboard.cpp b/Src/TomboLib/Clipboard.cpp
new file mode 100644 (file)
index 0000000..a090708
--- /dev/null
@@ -0,0 +1,106 @@
+#include <windows.h>\r
+#include <tchar.h>\r
+#include "Clipboard.h"\r
+#include "UniConv.h"\r
+\r
+namespace Tombo_Lib {\r
+\r
+/////////////////////////////////////////////////////////////////////////////\r
+// ctor & dtor\r
+/////////////////////////////////////////////////////////////////////////////\r
+\r
+Clipboard::Clipboard() : bOpen(FALSE) {}\r
+\r
+Clipboard::~Clipboard() \r
+{\r
+       Close();\r
+}\r
+\r
+/////////////////////////////////////////////////////////////////////////////\r
+// Open/close clipboard\r
+/////////////////////////////////////////////////////////////////////////////\r
+\r
+BOOL Clipboard::Open(HWND hWnd)\r
+{\r
+       if (bOpen) return TRUE;\r
+\r
+       bOpen = OpenClipboard(hWnd);\r
+       return bOpen;\r
+}\r
+\r
+void Clipboard::Close()\r
+{\r
+       if (bOpen) {\r
+               CloseClipboard();\r
+       }\r
+}\r
+\r
+/////////////////////////////////////////////////////////////////////////////\r
+// Get text data\r
+/////////////////////////////////////////////////////////////////////////////\r
+\r
+LPTSTR Clipboard::GetText()\r
+{\r
+       if (!bOpen) return NULL;\r
+\r
+       LPTSTR pText = NULL;\r
+#if defined(PLATFORM_WIN32)\r
+       HANDLE hText = GetClipboardData(CF_TEXT);\r
+       if (hText != NULL) {\r
+               pText = StringDup((char*)LocalLock(hText));\r
+               LocalUnlock(hText);\r
+               if (pText == NULL) return NULL;\r
+       }\r
+#else\r
+       HANDLE hText = GetClipboardData(CF_TEXT);\r
+       if (hText != NULL) {\r
+               pText = ConvSJIS2Unicode((char*)LocalLock(hText));\r
+               LocalUnlock(hText);\r
+               if (pText == NULL) return NULL;\r
+       } else {\r
+               hText = GetClipboardData(CF_UNICODETEXT);\r
+               if (hText != NULL) {\r
+                       pText= StringDup((LPCTSTR)LocalLock(hText));\r
+                       LocalUnlock(hText);\r
+                       if (pText == NULL) return FALSE;\r
+               }\r
+       }\r
+#endif\r
+       return pText;\r
+}\r
+\r
+/////////////////////////////////////////////////////////////////////////////\r
+// Set text data\r
+/////////////////////////////////////////////////////////////////////////////\r
+\r
+BOOL Clipboard::SetText(LPCTSTR pText)\r
+{\r
+       if (!bOpen) {\r
+               SetLastError(ERROR_INVALID_DATA);\r
+               return FALSE;\r
+       }\r
+       if (!EmptyClipboard()) return FALSE;\r
+\r
+       DWORD nLen = (_tcslen(pText) + 1) * sizeof(TCHAR);\r
+       HANDLE hText = LocalAlloc(LMEM_MOVEABLE , nLen);\r
+       if (hText == NULL) return FALSE;\r
+\r
+       LPTSTR p = (LPTSTR)LocalLock(hText);\r
+       _tcscpy(p, pText);\r
+\r
+       LocalUnlock(hText);\r
+\r
+       UINT uType;\r
+#if defined(PLATFORM_WIN32)\r
+       uType = CF_TEXT;\r
+#else\r
+       uType = CF_UNICODETEXT;\r
+#endif\r
+       if (SetClipboardData(uType, hText) == NULL) return FALSE;\r
+       return TRUE;\r
+}\r
+\r
+\r
+}; // namespace Tombo_Lib\r
+\r
+\r
diff --git a/Src/TomboLib/Clipboard.h b/Src/TomboLib/Clipboard.h
new file mode 100644 (file)
index 0000000..76e8c3c
--- /dev/null
@@ -0,0 +1,31 @@
+#ifndef TOMBOUTL_CLIPBOARD_H\r
+#define TOMBOUTL_CLIPBOARD_H\r
+\r
+namespace Tombo_Lib {\r
+\r
+class Clipboard {\r
+       BOOL bOpen;\r
+public:\r
+       Clipboard();\r
+       ~Clipboard();\r
+\r
+       BOOL Open(HWND hWnd);\r
+       void Close();\r
+\r
+       //////////////////////\r
+       // Get text data\r
+               // return value should delete[] if you don't need.\r
+               // if clipboard is empty or not text, return NULL and *pEmpty == FALSE;\r
+       LPTSTR GetText();\r
+\r
+       //////////////////////\r
+       // Set text data\r
+               // Data type is CF_TEXT if win32 and CF_UNICODETEXT if WinCE.\r
+       BOOL SetText(LPCTSTR pText);\r
+\r
+};\r
+\r
+\r
+}; // namespace Tombo_Lib\r
+\r
+#endif\r
diff --git a/Src/TomboLib/DialogTemplate.cpp b/Src/TomboLib/DialogTemplate.cpp
new file mode 100644 (file)
index 0000000..69761ec
--- /dev/null
@@ -0,0 +1,118 @@
+#include <windows.h>\r
+#include <tchar.h>\r
+#include "DialogTemplate.h"\r
+#include "Message.h"\r
+\r
+namespace Tombo_Lib {\r
+\r
+////////////////////////////////////////////////////////////////\r
+// Dialog Procedure(Template)\r
+////////////////////////////////////////////////////////////////\r
+\r
+static BOOL APIENTRY DlgProcTemplate(HWND hDlg, UINT nMessage, WPARAM wParam, LPARAM lParam)\r
+{\r
+       DialogTemplate *pDlg;\r
+       if (nMessage == WM_INITDIALOG) {\r
+               SetWindowLong(hDlg, DWL_USER, lParam);\r
+               pDlg = (DialogTemplate*)lParam;\r
+\r
+               pDlg->SetDialog(hDlg);\r
+               pDlg->InitDialog(hDlg);\r
+               return TRUE;\r
+       }\r
+\r
+       pDlg = (DialogTemplate*)GetWindowLong(hDlg, DWL_USER);\r
+       if (pDlg == NULL) return FALSE;\r
+\r
+       switch (nMessage) {\r
+       case WM_COMMAND:\r
+               switch (LOWORD(wParam)) {\r
+               case IDOK:\r
+                       pDlg->SetResult(IDOK);\r
+                       if (pDlg->OnOK()) {\r
+                               EndDialog(hDlg, pDlg->GetResult());\r
+                       }\r
+                       break;\r
+               case IDCANCEL:\r
+                       EndDialog(hDlg, IDCANCEL);\r
+                       break;\r
+               default:\r
+                       return pDlg->OnCommand(hDlg, wParam, lParam);\r
+               }\r
+               return TRUE;\r
+       case WM_NOTIFY:\r
+               return pDlg->OnNotify(hDlg, wParam, lParam);\r
+       }\r
+       return FALSE;\r
+\r
+}\r
+\r
+////////////////////////////////////////////////////////////////\r
+// Default handler\r
+////////////////////////////////////////////////////////////////\r
+\r
+void DialogTemplate::InitDialog(HWND hDlg)\r
+{\r
+}\r
+\r
+BOOL DialogTemplate::OnOK()\r
+{\r
+       return TRUE;\r
+}\r
+\r
+BOOL DialogTemplate::OnCommand(HWND hDlg, WPARAM wParam, LPARAM lParam)\r
+{\r
+       return TRUE;\r
+}\r
+\r
+BOOL DialogTemplate::OnNotify(HWND hDlg, WPARAM wParam, LPARAM lParam)\r
+{\r
+       return TRUE;\r
+}\r
+\r
+void DialogTemplate::SetDialog(HWND hDlg)\r
+{\r
+       hDialog = hDlg;\r
+}\r
+\r
+////////////////////////////////////////////////////////////////\r
+// Popup entry\r
+////////////////////////////////////////////////////////////////\r
+\r
+DWORD DialogTemplate::Popup(HINSTANCE hInst, WORD nID, HWND hParent)\r
+{\r
+       hInstance = hInst;\r
+       \r
+       DWORD result;\r
+       result = DialogBoxParam(hInst, MAKEINTRESOURCE(nID), \r
+                                                               hParent, (DLGPROC)DlgProcTemplate, (LONG)this);\r
+\r
+       return result;\r
+}\r
+\r
+} // end namespace\r
+\r
+////////////////////////////////////////////////////////////////\r
+// i18n\r
+////////////////////////////////////////////////////////////////\r
+\r
+void OverrideDlgMsg(HWND hDlg, int nTitleMsg, DlgMsgRes aMsgRes[], int nMsgRes)\r
+{\r
+#if !defined(PLATFORM_PSPC)\r
+#if defined(PLATFORM_WIN32)\r
+       HFONT hFont = (HFONT)GetStockObject(DEFAULT_GUI_FONT); // not need release\r
+#endif\r
+       if (nTitleMsg != -1) {\r
+               SetWindowText(hDlg, g_mMsgRes.GetMsg(nTitleMsg));\r
+       }\r
+\r
+       HWND h;\r
+       for (int i = 0; i < nMsgRes; i++) {\r
+               h = GetDlgItem(hDlg, aMsgRes[i].iCtlID);\r
+#if defined(PLATFORM_WIN32)\r
+               SendMessage(h, WM_SETFONT, (WPARAM)hFont, MAKELPARAM(FALSE, 0));\r
+#endif\r
+               SetWindowText(h, g_mMsgRes.GetMsg(aMsgRes[i].iMsgID));\r
+       }\r
+#endif\r
+}\r
diff --git a/Src/TomboLib/DialogTemplate.h b/Src/TomboLib/DialogTemplate.h
new file mode 100644 (file)
index 0000000..d58b4b1
--- /dev/null
@@ -0,0 +1,44 @@
+#ifndef DIALOGTEMPLATE_H\r
+#define DIALOGTEMPLATE_H\r
+\r
+namespace Tombo_Lib {\r
+\r
+////////////////////////////////////////////////////////////////\r
+// Dialog template\r
+////////////////////////////////////////////////////////////////\r
+\r
+class DialogTemplate {\r
+protected:\r
+       HINSTANCE hInstance;\r
+       HWND hDialog;\r
+\r
+       DWORD Popup(HINSTANCE hInst, WORD nID, HWND hParent);\r
+\r
+       int nResult;\r
+public:\r
+       virtual void InitDialog(HWND hDlg);\r
+       virtual BOOL OnOK();\r
+\r
+       virtual BOOL OnCommand(HWND hDlg, WPARAM wParam, LPARAM lParam);\r
+       virtual BOOL OnNotify(HWND hDlg, WPARAM wParam, LPARAM lParam);\r
+\r
+\r
+       void SetDialog(HWND hDlg);\r
+       void SetResult(int n) { nResult = n;}\r
+       int GetResult() { return nResult; }\r
+};\r
+\r
+} // end namespace\r
+\r
+////////////////////////////////////////////////////////////////\r
+// Dialog message i18n definition\r
+////////////////////////////////////////////////////////////////\r
+\r
+struct DlgMsgRes {\r
+       int iCtlID;\r
+       int iMsgID;\r
+};\r
+\r
+void OverrideDlgMsg(HWND hDlg, int nTitleMsg, DlgMsgRes aMsgRes[], int nMsgRes);\r
+\r
+#endif\r
diff --git a/Src/TomboLib/DirectoryScanner.cpp b/Src/TomboLib/DirectoryScanner.cpp
new file mode 100644 (file)
index 0000000..793bac9
--- /dev/null
@@ -0,0 +1,74 @@
+#include <windows.h>\r
+#include <tchar.h>\r
+\r
+#include "Uniconv.h"\r
+#include "DirectoryScanner.h"\r
+\r
+//////////////////////////////////////////////////\r
+// \83f\83B\83\8c\83N\83g\83\8a\8aK\91w\82ð\91\96\8d¸\82·\82é\r
+//////////////////////////////////////////////////\r
+\r
+BOOL DirectoryScanner::Init(LPCTSTR p, DWORD nFlg)\r
+{\r
+       _tcscpy(aScanPath, p);\r
+\r
+       // \96\96\94ö\82ª\\82Å\8fI\82é\82æ\82¤\82É\92²\90®\r
+       ChopFileSeparator(aScanPath);\r
+       _tcscat(aScanPath, TEXT("\\"));\r
+\r
+       nScanFlag = nFlg;\r
+       return TRUE;\r
+}\r
+\r
+\r
+BOOL DirectoryScanner::Scan()\r
+{\r
+       bContinue = TRUE;\r
+\r
+       InitialScan();\r
+       if (bContinue) {\r
+               ScanDirectory();\r
+       }\r
+       AfterScan();\r
+       return bContinue;\r
+}\r
+\r
+//////////////////////////////////////////////////\r
+// \83X\83L\83\83\83\93\8f\88\97\9d\8eÀ\91Ì\r
+//////////////////////////////////////////////////\r
+\r
+void DirectoryScanner::ScanDirectory()\r
+{\r
+       LPTSTR pTail = aScanPath + _tcslen(aScanPath);\r
+\r
+       _tcscat(pTail, TEXT("*.*"));\r
+\r
+       WIN32_FIND_DATA wfd;\r
+       HANDLE hHandle = FindFirstFile(aScanPath, &wfd);\r
+       if (hHandle != INVALID_HANDLE_VALUE) {\r
+               do {\r
+                       if (_tcscmp(wfd.cFileName, TEXT(".")) == 0 || _tcscmp(wfd.cFileName, TEXT("..")) == 0) continue;\r
+                       if (wfd.dwFileAttributes & FILE_ATTRIBUTE_DIRECTORY) {\r
+                               // \83t\83H\83\8b\83_\r
+                               if (!(nScanFlag & DIRECTORY_SCAN_NOREC)) {\r
+                                       _tcscpy(pTail, wfd.cFileName);\r
+                                       _tcscat(pTail, TEXT("\\"));\r
+\r
+                                       PreDirectory(wfd.cFileName);\r
+                                       ScanDirectory();\r
+                                       PostDirectory(wfd.cFileName);\r
+                                       if (!bContinue) break;\r
+                               }\r
+                       } else {\r
+                               // \83t\83@\83C\83\8b\r
+                               if (!(nScanFlag & DIRECTORY_SCAN_NOFILE)) {\r
+                                       _tcscpy(pTail, wfd.cFileName);\r
+                                       File(wfd.cFileName);\r
+                               }\r
+                               if (!bContinue) break;\r
+                       }\r
+               } while(FindNextFile(hHandle, &wfd));\r
+               FindClose(hHandle);\r
+       }\r
+       *pTail = TEXT('\0');\r
+}\r
diff --git a/Src/TomboLib/DirectoryScanner.h b/Src/TomboLib/DirectoryScanner.h
new file mode 100644 (file)
index 0000000..a37b2c0
--- /dev/null
@@ -0,0 +1,60 @@
+#ifndef DIRECTORYSCANNER_H\r
+#define DIRECTORYSCANNER_H\r
+\r
+//////////////////////////////////////////////////\r
+// \83t\83\89\83O\92è\8b`\r
+//////////////////////////////////////////////////\r
+\r
+// \83f\83B\83\8c\83N\83g\83\8a\82Ì\8dÄ\8bA\82ð\8ds\82í\82È\82¢\r
+#define DIRECTORY_SCAN_NOREC   1\r
+// \83t\83@\83C\83\8b\82É\82Â\82¢\82Ä\82Í\8cÄ\82Ñ\8fo\82³\82È\82¢\r
+#define DIRECTORY_SCAN_NOFILE  2\r
+\r
+//////////////////////////////////////////////////\r
+// \83f\83B\83\8c\83N\83g\83\8a\8aK\91w\82ð\91\96\8d¸\82·\82é\r
+//////////////////////////////////////////////////\r
+//\r
+// \83X\83L\83\83\83\93\8f\88\97\9d(DirectoryScanner::Scan())\82ÍDirectoryScanner::StopScan()\82Å\83X\83L\83\83\83\93\82ð\91Å\82¿\90Ø\82é\82±\82Æ\82ª\82Å\82«\82é\81B\r
+// \82½\82¾\82µ\81AAfterScan(), PostDirectory()\82É\82Â\82¢\82Ä\82ÍStopScan()\82É\82æ\82è\83X\83L\83\83\83\93\82ð\91Å\82¿\90Ø\82ç\82ê\82½\8fê\8d\87\82Å\82à\r
+// \8eÀ\8ds\82³\82ê\82é\81B(\83\81\83\82\83\8a\8aJ\95ú\8f\88\97\9d\93\99\82ª\8ds\82í\82ê\82é\89Â\94\\90«\82ª\82 \82é\82½\82ß)\r
+// \95K\97v\82Å\82 \82ê\82ÎDirectoryScanner::IsStopScan()\82Å\94»\92è\82µ\81A\8f\88\97\9d\82ð\83X\83L\83b\83v\82³\82¹\82é\82±\82Æ\r
+\r
+#define SCANPATH_LEN (MAX_PATH * 2)\r
+\r
+class DirectoryScanner {\r
+       TCHAR aScanPath[SCANPATH_LEN]; // \83T\83C\83Y\82É\97]\97T\82ð\8c©\82é\82½\82ß*2\82µ\82Ä\82¢\82é\r
+\r
+       BOOL bContinue;\r
+       DWORD nScanFlag;\r
+\r
+       void ScanDirectory();\r
+\r
+protected:\r
+       ////////////////////////////////\r
+       // Sub class \8cü\82¯\83\81\83\93\83o\r
+\r
+       // \8f\89\8aú\89»\r
+       BOOL Init(LPCTSTR pTopPath, DWORD nFlg);\r
+\r
+       // \8c»\8dÝ\83X\83L\83\83\83\93\92\86\82Ì\83p\83X\r
+       LPCTSTR CurrentPath() { return aScanPath; }\r
+\r
+       // \83X\83L\83\83\83\93\92\86\92f\8ew\8e¦\r
+       void StopScan() { bContinue = FALSE; }\r
+       BOOL IsStopScan() { return !bContinue; }\r
+\r
+       ////////////////////////////////\r
+       // Template Method\r
+\r
+       virtual void InitialScan() = 0; // \83X\83L\83\83\83\93\8aJ\8en\91O\r
+       virtual void AfterScan() = 0; // \83X\83L\83\83\83\93\8f\88\97\9d\8cã\r
+       virtual void PreDirectory(LPCTSTR p) = 0; // \83f\83B\83\8c\83N\83g\83\8a\91\96\8d¸\91O\r
+       virtual void PostDirectory(LPCTSTR p) = 0; // \83f\83B\83\8c\83N\83g\83\8a\91\96\8d¸\8cã\r
+       virtual void File(LPCTSTR p) = 0; // \83t\83@\83C\83\8b\r
+\r
+public:\r
+       // \83X\83L\83\83\83\93\8aJ\8en\r
+       BOOL Scan();\r
+};\r
+\r
+#endif\r
diff --git a/Src/TomboLib/File.cpp b/Src/TomboLib/File.cpp
new file mode 100644 (file)
index 0000000..3277148
--- /dev/null
@@ -0,0 +1,104 @@
+#include <windows.h>\r
+#include "File.h"\r
+\r
+//////////////////////////////////////////////////////////////////////\r
+// dtor\r
+//////////////////////////////////////////////////////////////////////\r
+\r
+File::~File()\r
+{\r
+       Close();\r
+}\r
+\r
+//////////////////////////////////////////////////////////////////////\r
+// Open\r
+//////////////////////////////////////////////////////////////////////\r
+\r
+BOOL File::Open(LPCTSTR pFileName, DWORD nMode, DWORD nShareMode, DWORD nOpenMode)\r
+{\r
+       hFile = CreateFile(pFileName, nMode, nShareMode, NULL, \r
+                                               nOpenMode, FILE_ATTRIBUTE_NORMAL, NULL);\r
+       if (hFile == INVALID_HANDLE_VALUE) return FALSE;\r
+\r
+       if ((nSize = SetFilePointer(hFile, 0, NULL, FILE_END)) == 0xFFFFFFFF) {\r
+               Close();\r
+               return FALSE;\r
+       }\r
+       if (SetFilePointer(hFile, 0, NULL, FILE_BEGIN) == 0xFFFFFFF) {\r
+               Close();\r
+               return FALSE;\r
+       }\r
+       return TRUE;\r
+}\r
+\r
+//////////////////////////////////////////////////////////////////////\r
+// Close\r
+//////////////////////////////////////////////////////////////////////\r
+\r
+void File::Close()\r
+{\r
+       if (hFile != INVALID_HANDLE_VALUE) {\r
+               CloseHandle(hFile);\r
+               hFile = INVALID_HANDLE_VALUE;\r
+       }\r
+}\r
+\r
+//////////////////////////////////////////////////////////////////////\r
+// Seek\r
+//////////////////////////////////////////////////////////////////////\r
+\r
+BOOL File::Seek(DWORD nPos)\r
+{\r
+       if (SetFilePointer(hFile, nPos, NULL, FILE_BEGIN) == 0xFFFFFFFF) return FALSE;\r
+       return TRUE;\r
+}\r
+\r
+//////////////////////////////////////////////////////////////////////\r
+// Get file pointer\r
+//////////////////////////////////////////////////////////////////////\r
+\r
+DWORD File::CurrentPos()\r
+{\r
+       return SetFilePointer(hFile, 0, NULL, FILE_CURRENT);\r
+}\r
+\r
+//////////////////////////////////////////////////////////////////////\r
+// Read file\r
+//////////////////////////////////////////////////////////////////////\r
+\r
+BOOL File::Read(LPBYTE pBuf, LPDWORD pSize)\r
+{\r
+       DWORD n = *pSize;\r
+       if (!ReadFile(hFile, pBuf, n, pSize, NULL)) return FALSE;\r
+       return TRUE;\r
+}\r
+\r
+//////////////////////////////////////////////////////////////////////\r
+// Write file\r
+//////////////////////////////////////////////////////////////////////\r
+\r
+BOOL File::Write(const LPBYTE pBuf, DWORD nSize)\r
+{\r
+       DWORD n;\r
+       if (!WriteFile(hFile, pBuf, nSize, &n, NULL)) return FALSE;\r
+       return TRUE;\r
+}\r
+\r
+//////////////////////////////////////////////////////////////////////\r
+// Write string as Unicode\r
+//////////////////////////////////////////////////////////////////////\r
+\r
+BOOL File::WriteUnicodeString(LPCWSTR p)\r
+{\r
+       DWORD len = wcslen(p);\r
+       return Write((LPBYTE)p, len * sizeof(WCHAR));\r
+}\r
+\r
+//////////////////////////////////////////////////////////////////////\r
+// Set EOF\r
+//////////////////////////////////////////////////////////////////////\r
+\r
+BOOL File::SetEOF()\r
+{\r
+       return SetEndOfFile(hFile);\r
+}
\ No newline at end of file
diff --git a/Src/TomboLib/File.h b/Src/TomboLib/File.h
new file mode 100644 (file)
index 0000000..3928434
--- /dev/null
@@ -0,0 +1,42 @@
+#ifndef FF_FILE_H\r
+#define FF_FILE_H\r
+\r
+\r
+// Though WIN32 API supports 64bit file size, \r
+// File object treats file size 32bit for simplify\r
+\r
+////////////////////////////////////////\r
+// File I/O\r
+////////////////////////////////////////\r
+\r
+class File {\r
+protected:\r
+       HANDLE hFile;\r
+       DWORD nSize;\r
+public:\r
+\r
+       // ctor & dtor\r
+       File() : hFile(INVALID_HANDLE_VALUE) {}\r
+       ~File();\r
+\r
+       BOOL Open(LPCTSTR pFileName, DWORD nMode, DWORD nShareMode, DWORD nOpenMode);\r
+       void Close();\r
+\r
+       // Get file size\r
+       DWORD FileSize() { return nSize; }\r
+\r
+       // Seek file pointer\r
+       BOOL Seek(DWORD nPos);\r
+\r
+       // Get current file pointer\r
+       DWORD CurrentPos();\r
+\r
+       BOOL Read(LPBYTE pBuf, LPDWORD pSize);\r
+       BOOL Write(const LPBYTE pBuf, DWORD nSize);\r
+\r
+       BOOL WriteUnicodeString(LPCWSTR p);\r
+\r
+       BOOL SetEOF();\r
+};\r
+\r
+#endif
\ No newline at end of file
diff --git a/Src/TomboLib/FileInputStream.cpp b/Src/TomboLib/FileInputStream.cpp
new file mode 100644 (file)
index 0000000..23a53f5
--- /dev/null
@@ -0,0 +1,76 @@
+#include <windows.h>\r
+#include "FileInputStream.h"\r
+\r
+// \83X\83g\83\8a\81[\83\80\82©\82ç1\95\8e\9a\93Ç\82Ý\8d\9e\82Þ\81B\r
+// \93Ç\82Ý\8d\9e\82ß\82È\82¢\8fê\8d\87\82É\82Í0\82ð\95Ô\82·\81B\82±\82Ì\8fê\8d\87\81AGetLastError()\82É\83G\83\89\81[\83R\81[\83h\81B\r
+// EOF\82Ì\8fê\8d\87\82É\82ÍGetLastError()\82ÍERROR_HANDLE_EOF\82ð\95Ô\82·\r
+\r
+char FileInputStream::getNext()\r
+{\r
+\r
+       DWORD nr;\r
+\r
+       while(1) {\r
+               // \83o\83b\83t\83@\82É\8ec\82Á\82Ä\82¢\82ê\82Î\82»\82ê\82ð\95Ô\82·\r
+               if (pCur < pData) {\r
+                       return *pCur++;\r
+               }\r
+\r
+               // \82·\82Å\82ÉEOF\82È\82çEOF\82ð\95Ô\82·\81B\r
+               if (bEof == TRUE) {\r
+                       SetLastError(ERROR_HANDLE_EOF);\r
+                       return 0;\r
+               }\r
+\r
+               // \8ec\82Á\82Ä\82¢\82È\82¯\82ê\82Î\83t\83@\83C\83\8b\82©\82ç\93Ç\82Ý\8d\9e\82Þ\r
+               if (!ReadFile(hHandle, buf, sizeof(buf), &nr, NULL)) {\r
+                       return 0;\r
+               }\r
+               if (sizeof(buf) != nr) {\r
+                       bEof = TRUE;\r
+               }\r
+               pCur = buf;\r
+               pData = buf + nr;\r
+       }\r
+       return 0; // dummy\r
+}\r
+\r
+BOOL FileInputStream::GetLine(char *buf, DWORD s, BOOL bNoCR)\r
+{\r
+       char *p = buf;\r
+       char *max = buf + s;\r
+       BOOL bCR = FALSE;\r
+\r
+       while(TRUE) {\r
+               if (p >= max) {\r
+                       SetLastError(ERROR_MORE_DATA);\r
+                       return FALSE;\r
+               }\r
+               \r
+               *p = getNext();\r
+               if (*p == 0) {\r
+                       if (GetLastError() == ERROR_HANDLE_EOF && p != buf) {\r
+                               *p++ = '\0';\r
+                               return TRUE;\r
+                       }\r
+                       return FALSE;\r
+               } else if (*p == '\r') {\r
+                       bCR = TRUE;\r
+                       p++;\r
+                       continue;\r
+               } else if (*p == '\n' && bCR) {\r
+                       if (bNoCR) {\r
+                               *(p-1) = '\0';\r
+                       } else {\r
+                               p++;\r
+                       }\r
+                       break;\r
+               }\r
+\r
+               p++;\r
+       }\r
+       *p++ = '\0';\r
+       return TRUE;\r
+\r
+}\r
+\r
diff --git a/Src/TomboLib/FileInputStream.h b/Src/TomboLib/FileInputStream.h
new file mode 100644 (file)
index 0000000..e5f7b69
--- /dev/null
@@ -0,0 +1,21 @@
+#ifndef FILEINPUTSTREAM_H\r
+#define FILEINPUTSTREAM_H\r
+\r
+class FileInputStream {\r
+       HANDLE hHandle;\r
+       char buf[4096];\r
+       char *pCur, *pData;\r
+       BOOL bEof;\r
+\r
+public:\r
+       FileInputStream(HANDLE h = INVALID_HANDLE_VALUE) : hHandle(h), pCur(buf), pData(buf), bEof(FALSE) {}\r
+\r
+       void Assoc(HANDLE h) { hHandle = h; pCur = pData = buf; bEof = FALSE; }\r
+       char getNext();\r
+\r
+       // bNoCR = TRUE\82Ì\8fê\8d\87\81ApBuf\82É\90Ý\92è\82³\82ê\82é\92l\82Ì\96\96\94ö\82Ì\r\n\82Í\97\8e\82Æ\82µ\82Ä\90Ý\92è\82·\82é\81B\r
+       // bNoCR = FALSE\82Ì\8fê\8d\87\81A\96\96\94ö\82É\82Í\r\n\82ª\8ec\82é\r
+       BOOL GetLine(char *pBuf, DWORD size, BOOL bNoCR = FALSE);\r
+};\r
+\r
+#endif\r
diff --git a/Src/TomboLib/List.cpp b/Src/TomboLib/List.cpp
new file mode 100644 (file)
index 0000000..a56d078
--- /dev/null
@@ -0,0 +1,103 @@
+#include <windows.h>\r
+#include "List.h"\r
+\r
+///////////////// \83f\81[\83^\82Ì\83N\83\8a\83A\r
+//\r
+// \95Û\8e\9d\82µ\82Ä\82¢\82é\83f\81[\83^\82É\82Â\82¢\82Ä\82Í\8aJ\95ú\82µ\82È\82¢\82Ì\82Å\95K\97v\82È\82ç\r
+// Clear()\82³\82ê\82é\91O\82É\96¾\8e¦\93I\82É\83N\83\8a\83A\82·\82é\95K\97v\82ª\82 \82é\81B\r
+\r
+void List::Clear()\r
+{\r
+       Item *p = pHead;\r
+       Item *q;\r
+\r
+       while(p) {\r
+               q = p;\r
+               p = p->pNext;\r
+               LocalFree(q);\r
+       }\r
+\r
+       pHead = pTail = NULL;\r
+}\r
+\r
+////////////////// \83\8a\83X\83g\82Ö\82Ì\92Ç\89Á\r
+//\r
+// p\82ð\83\8a\83X\83g\82Ì\96\96\94ö\82Ö\92Ç\89Á\r
+\r
+HANDLE List::Add(LPVOID val)\r
+{\r
+       Item *q = (Item*)LocalAlloc(LMEM_FIXED, sizeof(Item));\r
+       if (q == NULL) {\r
+               SetLastError(ERROR_NOT_ENOUGH_MEMORY);\r
+               return NULL;\r
+       }\r
+\r
+       if (pTail) {\r
+               pTail->pNext = q;\r
+               q->pPrev = pTail;\r
+               pTail = q;\r
+       } else {\r
+               pHead = pTail = q;\r
+               q->pPrev = NULL;\r
+       }\r
+       q->pVal = val;\r
+       q->pNext = NULL;\r
+       return (HANDLE)q;\r
+}\r
+\r
+HANDLE List::First()\r
+{\r
+       return (HANDLE)pHead;\r
+}\r
+\r
+HANDLE List::Next(HANDLE h)\r
+{\r
+       return (HANDLE)(((Item*)h)->pNext);\r
+}\r
+\r
+HANDLE List::Prev(HANDLE h)\r
+{\r
+       return (HANDLE)(((Item*)h)->pPrev);\r
+}\r
+\r
+LPVOID List::Value(HANDLE h)\r
+{\r
+       if (h == NULL) return NULL;\r
+       Item *p = (Item*)h;\r
+       return p->pVal;\r
+}\r
+\r
+LPVOID List::Remove(HANDLE h)\r
+{\r
+       Item *p = (Item*)h;\r
+       LPVOID val = p->pVal;\r
+\r
+       if (p->pPrev) {\r
+               p->pPrev->pNext = p->pNext;\r
+       } else {\r
+               pHead = p->pNext;\r
+       }\r
+       if (p->pNext) {\r
+               p->pNext->pPrev = p->pPrev;\r
+       } else {\r
+               pTail = p->pPrev;\r
+       }\r
+\r
+       LocalFree(p);\r
+       return val;\r
+}\r
+\r
+//////////////////////////////////\r
+// \95\8e\9a\97ñ\83\8a\83X\83g\82É\91Î\82·\82é\83w\83\8b\83p\8aÖ\90\94\r
+\r
+HANDLE SearchList(List *l, const char *str)\r
+{\r
+       HANDLE h = l->First();\r
+       while(h) {\r
+               if (strcmp((char*)l->Value(h), str) == 0) {\r
+                       return h;\r
+               }\r
+               h = l->Next(h);\r
+       }\r
+       return NULL;\r
+}
\ No newline at end of file
diff --git a/Src/TomboLib/List.h b/Src/TomboLib/List.h
new file mode 100644 (file)
index 0000000..bb9a691
--- /dev/null
@@ -0,0 +1,36 @@
+#ifndef LIST_H\r
+#define LIST_H\r
+\r
+////////////////////////////////\r
+// LinkedList\r
+////////////////////////////////\r
+\r
+class List {\r
+       struct Item {\r
+               Item *pNext;\r
+               Item *pPrev;\r
+               LPVOID pVal;\r
+       };\r
+\r
+       Item *pHead, *pTail;\r
+public:\r
+       \r
+       List() : pHead(NULL), pTail(NULL){}\r
+       ~List() { Clear(); }\r
+\r
+       void Clear();\r
+\r
+       HANDLE Add(LPVOID val);\r
+\r
+       LPVOID Remove(HANDLE h);\r
+\r
+       HANDLE First();\r
+       HANDLE Next(HANDLE h);\r
+       HANDLE Prev(HANDLE h);\r
+\r
+       LPVOID Value(HANDLE h);\r
+};\r
+\r
+HANDLE SearchList(List *l, const char *str);\r
+\r
+#endif\r
diff --git a/Src/TomboLib/Logger.cpp b/Src/TomboLib/Logger.cpp
new file mode 100644 (file)
index 0000000..64adbc6
--- /dev/null
@@ -0,0 +1,29 @@
+#include <windows.h>\r
+#include <tchar.h>\r
+#include "Logger.h"\r
+\r
+Logger g_Logger;\r
+\r
+Logger::Logger() : bLogActive(FALSE)\r
+{\r
+}\r
+\r
+BOOL Logger::Init(LPCTSTR pFile)\r
+{\r
+       BOOL bResult = fLogFile.Open(pFile, GENERIC_WRITE, FILE_SHARE_READ | FILE_SHARE_WRITE, CREATE_ALWAYS);\r
+       if (bResult) bLogActive = TRUE;\r
+       return bResult;\r
+}\r
+\r
+BOOL Logger::WriteLog(LPCTSTR pStr)\r
+{\r
+       if (!bLogActive) return TRUE;\r
+       fLogFile.Write((LPBYTE)pStr, _tcslen(pStr) * sizeof(TCHAR));\r
+       return TRUE;\r
+}\r
+\r
+void Logger::Close()\r
+{\r
+       if (!bLogActive) return;\r
+       fLogFile.Close();\r
+}
\ No newline at end of file
diff --git a/Src/TomboLib/Logger.h b/Src/TomboLib/Logger.h
new file mode 100644 (file)
index 0000000..0d59e6c
--- /dev/null
@@ -0,0 +1,20 @@
+#ifndef LOGGER_H\r
+#define LOGGER_H\r
+\r
+#include "File.h"\r
+\r
+class Logger {\r
+       BOOL bLogActive;\r
+       File fLogFile;\r
+public:\r
+       Logger();\r
+       BOOL Init(LPCTSTR pFile);\r
+\r
+       BOOL WriteLog(LPCTSTR pStr);\r
+       void Close();\r
+};\r
+\r
+extern Logger g_Logger;\r
+#define DEBUGWRITE(str) (g_Logger.WriteLog(str))\r
+\r
+#endif
\ No newline at end of file
diff --git a/Src/TomboLib/PropertyPage.cpp b/Src/TomboLib/PropertyPage.cpp
new file mode 100644 (file)
index 0000000..0dfd037
--- /dev/null
@@ -0,0 +1,147 @@
+#include <windows.h>\r
+#include <tchar.h>\r
+#include <commctrl.h>\r
+#include "PropertyPage.h"\r
+\r
+#define RESMSG(x) (GetString(x))\r
+\r
+LPCTSTR GetString(UINT nID);\r
+\r
+// from http://sourceforge.jp/forum/message.php?msg_id=11376\r
+#if defined(PLATFORM_PKTPC) || defined(PLATFORM_WM5)\r
+#include <aygshell.h>\r
+static\r
+int CALLBACK PropSheetProc(HWND hDlg, UINT uMsg, LPARAM lParam)\r
+{\r
+       if(uMsg == PSCB_INITIALIZED) {\r
+               // empty menubar\r
+               SHMENUBARINFO mbi;\r
+               memset(&mbi, 0, sizeof(SHMENUBARINFO));\r
+               mbi.cbSize = sizeof(SHMENUBARINFO);\r
+               mbi.hwndParent = hDlg;\r
+               mbi.dwFlags     = SHCMBF_EMPTYBAR;\r
+               SHCreateMenuBar(&mbi);\r
+\r
+               // tab-control move to bottom \r
+               HWND hTab = GetDlgItem( hDlg, 0x3020);  //TabControl\r
+               DWORD style = GetWindowLong( hTab, GWL_STYLE ) | TCS_BOTTOM; \r
+               SetWindowLong( hTab, GWL_STYLE, style );\r
+               return 0;\r
+       }\r
+       if(uMsg == PSCB_GETVERSION) {\r
+               return COMCTL32_VERSION;\r
+       }\r
+       return 0;\r
+}\r
+#endif\r
+\r
+/////////////////////////////////////////////////////\r
+// PropertyPage popup\r
+/////////////////////////////////////////////////////\r
+\r
+DWORD PropertyPage::Popup(HINSTANCE hInst, HWND hWnd, PPropertyTab *ppPage, DWORD nPage, LPCTSTR pTitle, LPTSTR pIcon, DWORD nStartPage)\r
+{\r
+       PROPSHEETPAGE *pPsp;\r
+    PROPSHEETHEADER psh;\r
+       DWORD i;\r
+       pPsp = new PROPSHEETPAGE[nPage];\r
+       if (pPsp == NULL) return IDCANCEL;\r
+\r
+       for (i = 0; i < nPage; i++) {\r
+           pPsp[i].dwSize = sizeof(PROPSHEETPAGE);\r
+           pPsp[i].dwFlags = PSP_USETITLE;\r
+           pPsp[i].hInstance = hInst;\r
+           pPsp[i].pszTemplate = MAKEINTRESOURCE(ppPage[i]->ResourceID());\r
+           pPsp[i].pfnDlgProc = ppPage[i]->DialogProc();\r
+           pPsp[i].pszTitle = ppPage[i]->Title();\r
+               pPsp[i].lParam = (LONG)ppPage[i];\r
+       }\r
+\r
+    psh.dwSize = sizeof(PROPSHEETHEADER);\r
+\r
+       // from http://sourceforge.jp/forum/message.php?msg_id=11376\r
+#if defined(PLATFORM_PKTPC) || defined(PLATFORM_WM5)\r
+       psh.dwFlags = PSH_PROPSHEETPAGE | PSH_MAXIMIZE | PSH_USECALLBACK;\r
+    psh.pfnCallback = PropSheetProc;\r
+#else\r
+    psh.dwFlags = PSH_USEICONID | PSH_PROPSHEETPAGE | PSH_NOAPPLYNOW;\r
+#endif\r
+    psh.hwndParent = hWnd;\r
+    psh.hInstance = hInst;\r
+    psh.pszIcon = pIcon;\r
+    psh.pszCaption = pTitle;\r
+    psh.nPages = nPage;\r
+    psh.nStartPage = nStartPage;\r
+    psh.ppsp = (LPCPROPSHEETPAGE) pPsp;\r
+    psh.pfnCallback = NULL;\r
+\r
+       DWORD nResult = PropertySheet(&psh);\r
+       delete pPsp;\r
+       return nResult;\r
+}\r
+\r
+/////////////////////////////////////////////////////\r
+// ctor & dtor\r
+/////////////////////////////////////////////////////\r
+\r
+PropertyTab::PropertyTab(DWORD id, DWORD nTitleResID, DLGPROC proc)\r
+ : nResourceID(id), pDlgProc(proc) \r
+{\r
+       _tcscpy(aTitle, RESMSG(nTitleResID));\r
+}\r
+\r
+PropertyTab::PropertyTab(DWORD id, LPCTSTR pTitle, DLGPROC proc)\r
+ : nResourceID(id), pDlgProc(proc) \r
+{\r
+       _tcscpy(aTitle, pTitle);\r
+}\r
+\r
+/////////////////////////////////////////////////////\r
+// Default dialog procedure\r
+/////////////////////////////////////////////////////\r
+\r
+BOOL APIENTRY PropertyTab::DefaultPageProc(HWND hDlg, UINT nMessage, WPARAM wParam, LPARAM lParam)\r
+{\r
+       PropertyTab *pPage;\r
+\r
+       if (nMessage == WM_INITDIALOG) {\r
+               PROPSHEETPAGE *ps = (PROPSHEETPAGE*)lParam;\r
+               pPage = (PropertyTab*)ps->lParam;\r
+               SetWindowLong(hDlg, DWL_USER, ps->lParam);\r
+\r
+               pPage->Init(hDlg);\r
+               return TRUE;\r
+       }\r
+\r
+       pPage = (PropertyTab*)GetWindowLong(hDlg, DWL_USER);\r
+       if (pPage == NULL) return FALSE;\r
+\r
+       switch(nMessage) {\r
+       case WM_COMMAND:\r
+               return pPage->OnCommand(hDlg, wParam, lParam);\r
+\r
+       case WM_NOTIFY:\r
+               switch (((NMHDR FAR *) lParam)->code) {\r
+        case PSN_APPLY:\r
+                       if (pPage->Apply(hDlg)) {\r
+                               SetWindowLong(hDlg, DWL_MSGRESULT, PSNRET_NOERROR);\r
+                       } else {\r
+                               SetWindowLong(hDlg, DWL_MSGRESULT, PSNRET_INVALID_NOCHANGEPAGE);\r
+                       }\r
+                       return TRUE;\r
+               case PSN_KILLACTIVE:\r
+                       if (pPage->Apply(hDlg)) {\r
+                               SetWindowLong(hDlg, DWL_MSGRESULT, FALSE);\r
+                       } else {\r
+                               SetWindowLong(hDlg, DWL_MSGRESULT, TRUE);\r
+                       }\r
+                       return TRUE;\r
+               case PSN_RESET:\r
+                       pPage->Cancel(hDlg, wParam, lParam);\r
+                       return TRUE;\r
+               default:\r
+                       pPage->OnNotify(hDlg, wParam, lParam);\r
+               }\r
+       }\r
+       return FALSE;\r
+}\r
diff --git a/Src/TomboLib/PropertyPage.h b/Src/TomboLib/PropertyPage.h
new file mode 100644 (file)
index 0000000..69092e3
--- /dev/null
@@ -0,0 +1,62 @@
+#ifndef PROPERTYPAGE_H\r
+#define PROPERTYPAGE_H\r
+\r
+class PropertyTab;\r
+#define PROPERTY_TITLE_MAX_SIZE 256\r
+\r
+/////////////////////////////////////////////////\r
+// Windows property page control(?) wrapper\r
+/////////////////////////////////////////////////\r
+\r
+typedef PropertyTab *PPropertyTab;\r
+\r
+class PropertyPage {\r
+public:\r
+       DWORD Popup(HINSTANCE hInst, HWND hWnd, PPropertyTab *ppPage, DWORD nPage, LPCTSTR pTitle, LPTSTR pIcon, DWORD nStart = 0);\r
+};\r
+\r
+/////////////////////////////////////////////////\r
+// Property tab\r
+/////////////////////////////////////////////////\r
+\r
+class PropertyTab {\r
+protected:\r
+       DWORD nResourceID;\r
+       DLGPROC pDlgProc;\r
+       TCHAR aTitle[PROPERTY_TITLE_MAX_SIZE];\r
+       \r
+       /////////////////////////////\r
+       // default dialog procedure\r
+       \r
+       // If you don't need something special, use this function for \r
+       // DLGPROC in ctor.\r
+       // This function calls Init() at creation time, \r
+       // OnCommand() as WM_COMMAND handler, and \r
+       // Apply() when "OK" button pressed.\r
+       static BOOL APIENTRY DefaultPageProc(HWND hDlg, UINT nMessage, WPARAM wParam, LPARAM lParam);\r
+\r
+protected:\r
+       //////////////////////////\r
+       // Tab page callback\r
+\r
+       virtual void Init(HWND hDlg) {}\r
+       virtual BOOL OnCommand(HWND hDlg, WPARAM wParam, LPARAM lParam) { return FALSE; }\r
+       virtual BOOL OnNotify(HWND hDlg, WPARAM wParam, LPARAM lParam) { return FALSE; }\r
+\r
+       // if return FALSE, block exiting dialog.\r
+       virtual BOOL Apply(HWND hDlg) { return TRUE; } \r
+       virtual void Cancel(HWND hDlg, WPARAM wParam, LPARAM lParam) {}\r
+\r
+public:\r
+       PropertyTab(DWORD id, DWORD nTitleResID, DLGPROC proc);\r
+       PropertyTab(DWORD id, LPCTSTR pTitle, DLGPROC proc);\r
+\r
+       virtual ~PropertyTab() {}\r
+\r
+       DWORD ResourceID() { return nResourceID; }\r
+       DLGPROC DialogProc() { return pDlgProc; }\r
+       LPCTSTR Title() { return aTitle; }\r
+};\r
+\r
+\r
+#endif\r
diff --git a/Src/TomboLib/SipControl.cpp b/Src/TomboLib/SipControl.cpp
new file mode 100644 (file)
index 0000000..0d246e9
--- /dev/null
@@ -0,0 +1,60 @@
+#include <windows.h>\r
+#if defined(PLATFORM_PKTPC) || defined(PLATFORM_PSPC) || defined(PLATFORM_WM5)\r
+#include <aygshell.h>\r
+#endif\r
+#if defined(PLATFORM_BE500)\r
+#include <sip.h>\r
+#endif\r
+#include "Tombo.h"\r
+#include "SipControl.h"\r
+\r
+BOOL SipControl::GetSipStat(BOOL *pStatus)\r
+{\r
+#if defined(PLATFORM_PKTPC) || defined(PLATFORM_PSPC) || defined(PLATFORM_BE500) || defined(PLATFORM_WM5)\r
+       SIPINFO sip;\r
+       memset(&sip, 0, sizeof(sip));\r
+       sip.cbSize = sizeof(sip);\r
+       sip.dwImDataSize = 0;\r
+\r
+#if defined(PLATFORM_BE500)\r
+       if (!SipGetInfo(&sip)) return FALSE;\r
+#else\r
+       if (!SHSipInfo(SPI_GETSIPINFO, 0, &sip, 0)) return FALSE;\r
+#endif\r
+       *pStatus = (sip.fdwFlags & SIPF_ON) != 0;\r
+       rSipRect = sip.rcSipRect;\r
+       rVisibleDesktop = sip.rcVisibleDesktop;\r
+#endif\r
+       return TRUE;\r
+}\r
+\r
+BOOL SipControl::SetSipStat(BOOL bActive)\r
+{\r
+#if defined(PLATFORM_PKTPC) || defined(PLATFORM_PSPC) || defined(PLATFORM_BE500) || defined(PLATFORM_WM5)\r
+       SIPINFO sip;\r
+       memset(&sip, 0, sizeof(sip));\r
+       sip.cbSize = sizeof(sip);\r
+\r
+#if defined(PLATFORM_BE500)\r
+       if (!SipGetInfo(&sip)) return FALSE;\r
+#else\r
+       if (!SHSipInfo(SPI_GETSIPINFO, 0, &sip, 0)) return FALSE;\r
+#endif\r
+       if ((bActive && (sip.fdwFlags & SIPF_ON)) ||\r
+               (!bActive && !(sip.fdwFlags & SIPF_ON))) {\r
+               return TRUE;\r
+       }\r
+\r
+       if (bActive) {\r
+               sip.fdwFlags |= SIPF_ON;\r
+       } else {\r
+               sip.fdwFlags &= ~SIPF_ON;\r
+       }\r
+#if defined(PLATFORM_BE500)\r
+       if (!SipSetInfo(&sip)) return FALSE;\r
+#else\r
+       if (!SHSipInfo(SPI_SETSIPINFO, 0, &sip, 0)) return FALSE;\r
+#endif\r
+#endif\r
+       return TRUE;\r
+}
\ No newline at end of file
diff --git a/Src/TomboLib/SipControl.h b/Src/TomboLib/SipControl.h
new file mode 100644 (file)
index 0000000..d0ee747
--- /dev/null
@@ -0,0 +1,17 @@
+#ifndef SIPCONTROL_H\r
+#define SIPCONTROL_H\r
+\r
+class SipControl {\r
+       RECT rSipRect;\r
+       RECT rVisibleDesktop;\r
+public:\r
+       BOOL Init() { return TRUE; }\r
+\r
+       BOOL GetSipStat(BOOL *pStatus);\r
+       BOOL SetSipStat(BOOL bActive);\r
+       RECT GetRect() { return rSipRect; }\r
+       RECT GetVisibleDesktop() { return rVisibleDesktop; }\r
+};\r
+\r
+\r
+#endif
\ No newline at end of file
diff --git a/Src/TomboLib/TString.cpp b/Src/TomboLib/TString.cpp
new file mode 100644 (file)
index 0000000..e512493
--- /dev/null
@@ -0,0 +1,299 @@
+#include <windows.h>\r
+#include <tchar.h>\r
+#include "UniConv.h"\r
+#include "TString.h"\r
+\r
+////////////////////////////////////////////////////\r
+// TString implimentation\r
+////////////////////////////////////////////////////\r
+\r
+BOOL TString::Alloc(DWORD nSize)\r
+{\r
+       if (pString) delete [] pString;\r
+       pString = new TCHAR[nSize];\r
+       if (pString == NULL) {\r
+               SetLastError(ERROR_NOT_ENOUGH_MEMORY);\r
+               return FALSE;\r
+       }\r
+       return TRUE;\r
+}\r
+\r
+BOOL TString::Set(LPCTSTR p)\r
+{\r
+       if (!Alloc(_tcslen(p) + 1)) return FALSE;\r
+       _tcscpy(pString, p);\r
+       return TRUE;\r
+}\r
+\r
+BOOL TString::StrCat(LPCTSTR pCat)\r
+{\r
+       if (pString == NULL) return Set(pCat);\r
+\r
+       LPTSTR p = pString;\r
+       pString = new TCHAR[_tcslen(p) + _tcslen(pCat) + 1];\r
+       if (pString == NULL) {\r
+               pString = p;\r
+               return FALSE;\r
+       }\r
+       wsprintf(pString, TEXT("%s%s"), p, pCat);\r
+       delete p;\r
+       return TRUE;\r
+}\r
+\r
+BOOL TString::Join(LPCTSTR p1, LPCTSTR p2)\r
+{\r
+       DWORD n = _tcslen(p1) + _tcslen(p2) + 1;\r
+       if (!Alloc(n)) return FALSE;\r
+       wsprintf(pString, TEXT("%s%s"), p1, p2);\r
+       return TRUE;\r
+}\r
+\r
+BOOL TString::Join(LPCTSTR p1, LPCTSTR p2, LPCTSTR p3)\r
+{\r
+       DWORD n = _tcslen(p1) + _tcslen(p2) + _tcslen(p3) + 1;\r
+       if (!Alloc(n)) return FALSE;\r
+       wsprintf(pString, TEXT("%s%s%s"), p1, p2, p3);\r
+       return TRUE;\r
+}\r
+\r
+BOOL TString::Join(LPCTSTR p1, LPCTSTR p2, LPCTSTR p3, LPCTSTR p4)\r
+{\r
+       DWORD n = _tcslen(p1) + _tcslen(p2) + _tcslen(p3) + _tcslen(p4) + 1;\r
+       if (!Alloc(n)) return FALSE;\r
+       wsprintf(pString, TEXT("%s%s%s%s"), p1, p2, p3, p4);\r
+       return TRUE;\r
+}\r
+\r
+BOOL TString::GetDirectoryPath(LPCTSTR pFullPath)\r
+{\r
+       //\8dÅ\8cã\82Ì'\'\82Ì\88Ê\92u\82Ì\8eæ\93¾\r
+       LPCTSTR p = pFullPath;\r
+       LPCTSTR q = NULL;\r
+#ifdef _WIN32_WCE\r
+       while (*p) {\r
+               if (*p == TEXT('\\')) q = p;\r
+               p++;\r
+       }\r
+#else\r
+       while (*p) {\r
+               if (*p == TEXT('\\')) q = p;\r
+               if (IsDBCSLeadByte(*p)) {\r
+                       p++;\r
+               }\r
+               p++;\r
+       }\r
+#endif\r
+\r
+       if (q == NULL) {\r
+               // '\'\82ª\91\8dÝ\82µ\82È\82©\82Á\82½ = \83f\83B\83\8c\83N\83g\83\8a\95\94\82Í\91\8dÝ\82µ\82È\82©\82Á\82½\r
+               if (!Alloc(1)) return FALSE;\r
+               pString[0] = TEXT('\0');\r
+       } else {\r
+               DWORD nDirStringLen = q - pFullPath + 1;\r
+               if (!Alloc(nDirStringLen + 1)) return FALSE;\r
+               _tcsncpy(pString, pFullPath, nDirStringLen);\r
+               pString[nDirStringLen] = TEXT('\0');\r
+       }\r
+       return TRUE;\r
+}\r
+\r
+void TString::ChopExtension()\r
+{\r
+       if (!pString) return;\r
+\r
+       DWORD l = _tcslen(pString);\r
+       if (l > 4) {\r
+               pString[l - 4] = TEXT('\0');\r
+       }\r
+}\r
+\r
+void TString::ChopFileNumber()\r
+{\r
+       if (pString == NULL || *pString == TEXT('\0')) return;\r
+\r
+       DWORD n = _tcslen(pString);\r
+       LPTSTR p = pString + n - 1;\r
+       if (*p != TEXT(')')) return;\r
+\r
+       p--;\r
+       while(p >= pString) {\r
+               if (*p == TEXT('(')) {\r
+                       *p = TEXT('\0');\r
+                       return;\r
+               }\r
+               if (*p < TEXT('0') || *p > TEXT('9')) break;\r
+               p--;\r
+       }\r
+       return;\r
+}\r
+\r
+static LPTSTR GetTail(LPTSTR pBuf)\r
+{\r
+#ifdef _WIN32_WCE\r
+       return pBuf + _tcslen(pBuf) - 1;\r
+#else\r
+       LPTSTR p = pBuf;\r
+       LPTSTR pTail = pBuf;\r
+       while(*p) {\r
+               if (IsDBCSLeadByte(*p)) {\r
+                       pTail = p++;\r
+                       if (*p) p++;\r
+               } else {\r
+                       pTail = p++;\r
+               }\r
+       }\r
+       return pTail;\r
+#endif\r
+}\r
+\r
+void TString::ChopFileSeparator()\r
+{\r
+       LPTSTR p;\r
+       while(TRUE) {\r
+               p = GetTail(pString);\r
+               if (*p == TEXT('\\')) {\r
+                       *p = TEXT('\0');\r
+               } else {\r
+                       break;\r
+               }\r
+       }\r
+\r
+}\r
+\r
+BOOL TString::GetPathTail(LPCTSTR pFullPath)\r
+{\r
+       //\8dÅ\8cã\82Ì'\'\82Ì\88Ê\92u\82Ì\8eæ\93¾\r
+       LPCTSTR p = pFullPath;\r
+       LPCTSTR q = NULL;\r
+#ifdef _WIN32_WCE\r
+       while (*p) {\r
+               if (*p == TEXT('\\')) q = p;\r
+               p++;\r
+       }\r
+#else\r
+       while (*p) {\r
+               if (*p == TEXT('\\')) q = p;\r
+               if (IsDBCSLeadByte(*p)) {\r
+                       p++;\r
+               }\r
+               p++;\r
+       }\r
+#endif\r
+\r
+       if (q == NULL) {\r
+               // '\'\82ª\91\8dÝ\82µ\82È\82©\82Á\82½ = \83f\83B\83\8c\83N\83g\83\8a\95\94\82Í\91\8dÝ\82µ\82È\82©\82Á\82½\r
+               return Set(pFullPath);\r
+       } else {\r
+               return Set(q + 1);\r
+       }\r
+}\r
+\r
+////////////////////////////////////////////////////\r
+// WString implimentation\r
+////////////////////////////////////////////////////\r
+\r
+BOOL WString::Alloc(DWORD nLetters)\r
+{\r
+       if (pString) delete [] pString;\r
+       pString = new WCHAR[nLetters];\r
+       if (pString == NULL) {\r
+               SetLastError(ERROR_NOT_ENOUGH_MEMORY);\r
+               return FALSE;\r
+       }\r
+       return TRUE;\r
+}\r
+\r
+BOOL WString::Set(TString *pSrc)\r
+{\r
+       if (pSrc->Get() == NULL) return FALSE;\r
+#ifdef _WIN32_WCE\r
+       // TString has WCHAR strings. So copy it.\r
+       if (!Alloc(wcslen(pSrc->Get()) + 1)) return FALSE;\r
+       wcscpy(pString, pSrc->Get());\r
+#else\r
+       // TString has char strings. Convert WBCS to Unicode.\r
+       DWORD len = strlen(pSrc->Get());\r
+       if (!Alloc(len + 1)) return FALSE;\r
+               // Strictly say, this allocation is overallocation. \r
+               // But for performance, allocation does without counting.\r
+       MultiByteToWideChar(CP_ACP, 0, pSrc->Get(), -1, pString, len + 1);\r
+#endif\r
+\r
+       return TRUE;\r
+}\r
+\r
+/////////////////////////////////////////////\r
+// SharedString implimentation\r
+/////////////////////////////////////////////\r
+\r
+SharedString::SharedString() : pBuf(NULL)\r
+{\r
+}\r
+\r
+SharedString::SharedString(const SharedString& s) : pBuf(NULL)\r
+{\r
+       Ref(s);\r
+}\r
+\r
+SharedString::~SharedString()\r
+{\r
+       ReleaseBuf();\r
+}\r
+\r
+BOOL SharedString::Init(LPCTSTR p)\r
+{\r
+       return Set(p);\r
+}\r
+\r
+BOOL SharedString::Init(const SharedString& s)\r
+{\r
+       Ref(s);\r
+       return TRUE;\r
+}\r
+\r
+void SharedString::ReleaseBuf()\r
+{\r
+       if (pBuf) {\r
+               if (pBuf->nRefCount == 1) {\r
+                       delete [] pBuf->pStr;\r
+                       delete pBuf;\r
+               } else {\r
+                       pBuf->nRefCount--;\r
+               }\r
+               pBuf = NULL;\r
+       }\r
+}\r
+\r
+BOOL SharedString::Set(LPCTSTR p)\r
+{\r
+       ReleaseBuf();\r
+\r
+       pBuf = new SharedBuf();\r
+       if (pBuf == NULL) return FALSE;\r
+\r
+       pBuf->pStr = StringDup(p);\r
+       if (pBuf->pStr == NULL) return FALSE;\r
+       pBuf->nRefCount = 1;\r
+       return TRUE;\r
+}\r
+\r
+BOOL SharedString::Set(const SharedString &s)\r
+{\r
+       Ref(s);\r
+       return TRUE;\r
+}\r
+\r
+void SharedString::Ref(const SharedString& s)\r
+{\r
+       ReleaseBuf();\r
+       if (s.pBuf) {\r
+               pBuf = s.pBuf;\r
+               pBuf->nRefCount++;\r
+       }\r
+}\r
+\r
+LPCTSTR SharedString::Get() const\r
+{\r
+       if (pBuf == NULL) return NULL;\r
+       return pBuf->pStr;\r
+}
\ No newline at end of file
diff --git a/Src/TomboLib/TString.h b/Src/TomboLib/TString.h
new file mode 100644 (file)
index 0000000..dca764d
--- /dev/null
@@ -0,0 +1,85 @@
+#ifndef TOMBO_STRING_H\r
+#define TOMBO_STRING_H\r
+\r
+////////////////////////////////////\r
+// TCHAR string\r
+////////////////////////////////////\r
+\r
+class TString {\r
+       LPTSTR pString;\r
+public:\r
+       TString() : pString(NULL) {}\r
+       ~TString() { if (pString) delete [] pString; }\r
+\r
+       LPTSTR Get() const { return pString; }\r
+\r
+       BOOL Alloc(DWORD nSize);\r
+       BOOL Set(LPCTSTR p);\r
+       BOOL StrCat(LPCTSTR p);\r
+\r
+       BOOL Join(LPCTSTR p1, LPCTSTR p2);\r
+       BOOL Join(LPCTSTR p1, LPCTSTR p2, LPCTSTR p3);\r
+       BOOL Join(LPCTSTR p1, LPCTSTR p2, LPCTSTR p3, LPCTSTR p4);\r
+\r
+       // pFullPath\82©\82ç\83f\83B\83\8c\83N\83g\83\8a\95\94\82Ì\82Ý\82ð\8eæ\93¾\r
+       // XX\YY\ZZ => XX\YY\r
+       BOOL GetDirectoryPath(LPCTSTR pFullPath);\r
+\r
+       // pFullPath\82©\82ç\96\96\94ö\82ð\8eæ\93¾\r
+       // XX\YY\ZZ => ZZ\r
+       BOOL GetPathTail(LPCTSTR pFullPath);\r
+\r
+       void ChopExtension();\r
+       void ChopFileNumber();\r
+       void ChopFileSeparator();\r
+};\r
+\r
+////////////////////////////////////\r
+// String class with reference count\r
+////////////////////////////////////\r
+\r
+class SharedString {\r
+       struct SharedBuf {\r
+               LPTSTR pStr;\r
+               WORD nRefCount;\r
+       };\r
+\r
+       SharedBuf *pBuf;\r
+\r
+       friend class SharedStringTest;\r
+protected:\r
+       void ReleaseBuf();\r
+       void Ref(const SharedString& s);\r
+\r
+       BOOL Alloc(DWORD nSize);\r
+public:\r
+       SharedString();\r
+       SharedString(const SharedString& s);\r
+\r
+       ~SharedString();\r
+\r
+       BOOL Init(LPCTSTR p);\r
+       BOOL Init(const SharedString& s);\r
+\r
+       BOOL Set(LPCTSTR p);\r
+       BOOL Set(const SharedString& s);\r
+       LPCTSTR Get() const;\r
+};\r
+\r
+////////////////////////////////////\r
+// WCHAR string\r
+////////////////////////////////////\r
+\r
+class WString {\r
+       LPWSTR pString;\r
+public:\r
+       WString() : pString(NULL) {}\r
+       ~WString() { if (pString) delete [] pString; }\r
+\r
+       LPWSTR Get() { return pString; }\r
+       BOOL Alloc(DWORD nLetters);\r
+\r
+       BOOL Set(TString *pSrc);\r
+};\r
+\r
+#endif
\ No newline at end of file
diff --git a/Src/TomboLib/Uniconv.cpp b/Src/TomboLib/Uniconv.cpp
new file mode 100644 (file)
index 0000000..9b61ef8
--- /dev/null
@@ -0,0 +1,1592 @@
+#include <windows.h>\r
+#include <tchar.h>\r
+#if defined(TOMBO)\r
+#include "Tombo.h"\r
+#include "Property.h"\r
+#endif\r
+#include "Uniconv.h"\r
+#include "TString.h"\r
+#include "AutoPtr.h"\r
+#include "File.h"\r
+\r
+#ifndef ESC\r
+#define ESC 0x1B\r
+#endif\r
+\r
+static void shift(BYTE *ph, BYTE *pl);\r
+\r
+#if defined(PLATFORM_BE500) && defined(TOMBO_LANG_ENGLISH)\r
+static WCHAR cp_1253[] = {\r
+       0x0000, // 0x00 #NULL\r
+       0x0001, // 0x01 #START OF HEADING\r
+       0x0002, // 0x02 #START OF TEXT\r
+       0x0003, // 0x03 #END OF TEXT\r
+       0x0004, // 0x04 #END OF TRANSMISSION\r
+       0x0005, // 0x05 #ENQUIRY\r
+       0x0006, // 0x06 #ACKNOWLEDGE\r
+       0x0007, // 0x07 #BELL\r
+       0x0008, // 0x08 #BACKSPACE\r
+       0x0009, // 0x09 #HORIZONTAL TABULATION\r
+       0x000A, // 0x0A #LINE FEED\r
+       0x000B, // 0x0B #VERTICAL TABULATION\r
+       0x000C, // 0x0C #FORM FEED\r
+       0x000D, // 0x0D #CARRIAGE RETURN\r
+       0x000E, // 0x0E #SHIFT OUT\r
+       0x000F, // 0x0F #SHIFT IN\r
+       0x0010, // 0x10 #DATA LINK ESCAPE\r
+       0x0011, // 0x11 #DEVICE CONTROL ONE\r
+       0x0012, // 0x12 #DEVICE CONTROL TWO\r
+       0x0013, // 0x13 #DEVICE CONTROL THREE\r
+       0x0014, // 0x14 #DEVICE CONTROL FOUR\r
+       0x0015, // 0x15 #NEGATIVE ACKNOWLEDGE\r
+       0x0016, // 0x16 #SYNCHRONOUS IDLE\r
+       0x0017, // 0x17 #END OF TRANSMISSION BLOCK\r
+       0x0018, // 0x18 #CANCEL\r
+       0x0019, // 0x19 #END OF MEDIUM\r
+       0x001A, // 0x1A #SUBSTITUTE\r
+       0x001B, // 0x1B #ESCAPE\r
+       0x001C, // 0x1C #FILE SEPARATOR\r
+       0x001D, // 0x1D #GROUP SEPARATOR\r
+       0x001E, // 0x1E #RECORD SEPARATOR\r
+       0x001F, // 0x1F #UNIT SEPARATOR\r
+       0x0020, // 0x20 #SPACE\r
+       0x0021, // 0x21 #EXCLAMATION MARK\r
+       0x0022, // 0x22 #QUOTATION MARK\r
+       0x0023, // 0x23 #NUMBER SIGN\r
+       0x0024, // 0x24 #DOLLAR SIGN\r
+       0x0025, // 0x25 #PERCENT SIGN\r
+       0x0026, // 0x26 #AMPERSAND\r
+       0x0027, // 0x27 #APOSTROPHE\r
+       0x0028, // 0x28 #LEFT PARENTHESIS\r
+       0x0029, // 0x29 #RIGHT PARENTHESIS\r
+       0x002A, // 0x2A #ASTERISK\r
+       0x002B, // 0x2B #PLUS SIGN\r
+       0x002C, // 0x2C #COMMA\r
+       0x002D, // 0x2D #HYPHEN-MINUS\r
+       0x002E, // 0x2E #FULL STOP\r
+       0x002F, // 0x2F #SOLIDUS\r
+       0x0030, // 0x30 #DIGIT ZERO\r
+       0x0031, // 0x31 #DIGIT ONE\r
+       0x0032, // 0x32 #DIGIT TWO\r
+       0x0033, // 0x33 #DIGIT THREE\r
+       0x0034, // 0x34 #DIGIT FOUR\r
+       0x0035, // 0x35 #DIGIT FIVE\r
+       0x0036, // 0x36 #DIGIT SIX\r
+       0x0037, // 0x37 #DIGIT SEVEN\r
+       0x0038, // 0x38 #DIGIT EIGHT\r
+       0x0039, // 0x39 #DIGIT NINE\r
+       0x003A, // 0x3A #COLON\r
+       0x003B, // 0x3B #SEMICOLON\r
+       0x003C, // 0x3C #LESS-THAN SIGN\r
+       0x003D, // 0x3D #EQUALS SIGN\r
+       0x003E, // 0x3E #GREATER-THAN SIGN\r
+       0x003F, // 0x3F #QUESTION MARK\r
+       0x0040, // 0x40 #COMMERCIAL AT\r
+       0x0041, // 0x41 #LATIN CAPITAL LETTER A\r
+       0x0042, // 0x42 #LATIN CAPITAL LETTER B\r
+       0x0043, // 0x43 #LATIN CAPITAL LETTER C\r
+       0x0044, // 0x44 #LATIN CAPITAL LETTER D\r
+       0x0045, // 0x45 #LATIN CAPITAL LETTER E\r
+       0x0046, // 0x46 #LATIN CAPITAL LETTER F\r
+       0x0047, // 0x47 #LATIN CAPITAL LETTER G\r
+       0x0048, // 0x48 #LATIN CAPITAL LETTER H\r
+       0x0049, // 0x49 #LATIN CAPITAL LETTER I\r
+       0x004A, // 0x4A #LATIN CAPITAL LETTER J\r
+       0x004B, // 0x4B #LATIN CAPITAL LETTER K\r
+       0x004C, // 0x4C #LATIN CAPITAL LETTER L\r
+       0x004D, // 0x4D #LATIN CAPITAL LETTER M\r
+       0x004E, // 0x4E #LATIN CAPITAL LETTER N\r
+       0x004F, // 0x4F #LATIN CAPITAL LETTER O\r
+       0x0050, // 0x50 #LATIN CAPITAL LETTER P\r
+       0x0051, // 0x51 #LATIN CAPITAL LETTER Q\r
+       0x0052, // 0x52 #LATIN CAPITAL LETTER R\r
+       0x0053, // 0x53 #LATIN CAPITAL LETTER S\r
+       0x0054, // 0x54 #LATIN CAPITAL LETTER T\r
+       0x0055, // 0x55 #LATIN CAPITAL LETTER U\r
+       0x0056, // 0x56 #LATIN CAPITAL LETTER V\r
+       0x0057, // 0x57 #LATIN CAPITAL LETTER W\r
+       0x0058, // 0x58 #LATIN CAPITAL LETTER X\r
+       0x0059, // 0x59 #LATIN CAPITAL LETTER Y\r
+       0x005A, // 0x5A #LATIN CAPITAL LETTER Z\r
+       0x005B, // 0x5B #LEFT SQUARE BRACKET\r
+       0x005C, // 0x5C #REVERSE SOLIDUS\r
+       0x005D, // 0x5D #RIGHT SQUARE BRACKET\r
+       0x005E, // 0x5E #CIRCUMFLEX ACCENT\r
+       0x005F, // 0x5F #LOW LINE\r
+       0x0060, // 0x60 #GRAVE ACCENT\r
+       0x0061, // 0x61 #LATIN SMALL LETTER A\r
+       0x0062, // 0x62 #LATIN SMALL LETTER B\r
+       0x0063, // 0x63 #LATIN SMALL LETTER C\r
+       0x0064, // 0x64 #LATIN SMALL LETTER D\r
+       0x0065, // 0x65 #LATIN SMALL LETTER E\r
+       0x0066, // 0x66 #LATIN SMALL LETTER F\r
+       0x0067, // 0x67 #LATIN SMALL LETTER G\r
+       0x0068, // 0x68 #LATIN SMALL LETTER H\r
+       0x0069, // 0x69 #LATIN SMALL LETTER I\r
+       0x006A, // 0x6A #LATIN SMALL LETTER J\r
+       0x006B, // 0x6B #LATIN SMALL LETTER K\r
+       0x006C, // 0x6C #LATIN SMALL LETTER L\r
+       0x006D, // 0x6D #LATIN SMALL LETTER M\r
+       0x006E, // 0x6E #LATIN SMALL LETTER N\r
+       0x006F, // 0x6F #LATIN SMALL LETTER O\r
+       0x0070, // 0x70 #LATIN SMALL LETTER P\r
+       0x0071, // 0x71 #LATIN SMALL LETTER Q\r
+       0x0072, // 0x72 #LATIN SMALL LETTER R\r
+       0x0073, // 0x73 #LATIN SMALL LETTER S\r
+       0x0074, // 0x74 #LATIN SMALL LETTER T\r
+       0x0075, // 0x75 #LATIN SMALL LETTER U\r
+       0x0076, // 0x76 #LATIN SMALL LETTER V\r
+       0x0077, // 0x77 #LATIN SMALL LETTER W\r
+       0x0078, // 0x78 #LATIN SMALL LETTER X\r
+       0x0079, // 0x79 #LATIN SMALL LETTER Y\r
+       0x007A, // 0x7A #LATIN SMALL LETTER Z\r
+       0x007B, // 0x7B #LEFT CURLY BRACKET\r
+       0x007C, // 0x7C #VERTICAL LINE\r
+       0x007D, // 0x7D #RIGHT CURLY BRACKET\r
+       0x007E, // 0x7E #TILDE\r
+       0x007F, // 0x7F #DELETE\r
+       0x20AC, // 0x80 #EURO SIGN\r
+       0x0020, // 0x81 #UNDEFINED\r
+       0x201A, // 0x82 #SINGLE LOW-9 QUOTATION MARK\r
+       0x0192, // 0x83 #LATIN SMALL LETTER F WITH HOOK\r
+       0x201E, // 0x84 #DOUBLE LOW-9 QUOTATION MARK\r
+       0x2026, // 0x85 #HORIZONTAL ELLIPSIS\r
+       0x2020, // 0x86 #DAGGER\r
+       0x2021, // 0x87 #DOUBLE DAGGER\r
+       0x0020, // 0x88 #UNDEFINED\r
+       0x2030, // 0x89 #PER MILLE SIGN\r
+       0x0020, // 0x8A #UNDEFINED\r
+       0x2039, // 0x8B #SINGLE LEFT-POINTING ANGLE QUOTATION MARK\r
+       0x0020, // 0x8C #UNDEFINED\r
+       0x0020, // 0x8D #UNDEFINED\r
+       0x0020, // 0x8E #UNDEFINED\r
+       0x0020, // 0x8F #UNDEFINED\r
+       0x0020, // 0x90 #UNDEFINED\r
+       0x2018, // 0x91 #LEFT SINGLE QUOTATION MARK\r
+       0x2019, // 0x92 #RIGHT SINGLE QUOTATION MARK\r
+       0x201C, // 0x93 #LEFT DOUBLE QUOTATION MARK\r
+       0x201D, // 0x94 #RIGHT DOUBLE QUOTATION MARK\r
+       0x2022, // 0x95 #BULLET\r
+       0x2013, // 0x96 #EN DASH\r
+       0x2014, // 0x97 #EM DASH\r
+       0x0020, // 0x98 #UNDEFINED\r
+       0x2122, // 0x99 #TRADE MARK SIGN\r
+       0x0020, // 0x9A #UNDEFINED\r
+       0x203A, // 0x9B #SINGLE RIGHT-POINTING ANGLE QUOTATION MARK\r
+       0x0020, // 0x9C #UNDEFINED\r
+       0x0020, // 0x9D #UNDEFINED\r
+       0x0020, // 0x9E #UNDEFINED\r
+       0x0020, // 0x9F #UNDEFINED\r
+       0x00A0, // 0xA0 #NO-BREAK SPACE\r
+       0x0385, // 0xA1 #GREEK DIALYTIKA TONOS\r
+       0x0386, // 0xA2 #GREEK CAPITAL LETTER ALPHA WITH TONOS\r
+       0x00A3, // 0xA3 #POUND SIGN\r
+       0x00A4, // 0xA4 #CURRENCY SIGN\r
+       0x00A5, // 0xA5 #YEN SIGN\r
+       0x00A6, // 0xA6 #BROKEN BAR\r
+       0x00A7, // 0xA7 #SECTION SIGN\r
+       0x00A8, // 0xA8 #DIAERESIS\r
+       0x00A9, // 0xA9 #COPYRIGHT SIGN\r
+       0x0020, // 0xAA #UNDEFINED\r
+       0x00AB, // 0xAB #LEFT-POINTING DOUBLE ANGLE QUOTATION MARK\r
+       0x00AC, // 0xAC #NOT SIGN\r
+       0x00AD, // 0xAD #SOFT HYPHEN\r
+       0x00AE, // 0xAE #REGISTERED SIGN\r
+       0x2015, // 0xAF #HORIZONTAL BAR\r
+       0x00B0, // 0xB0 #DEGREE SIGN\r
+       0x00B1, // 0xB1 #PLUS-MINUS SIGN\r
+       0x00B2, // 0xB2 #SUPERSCRIPT TWO\r
+       0x00B3, // 0xB3 #SUPERSCRIPT THREE\r
+       0x0384, // 0xB4 #GREEK TONOS\r
+       0x00B5, // 0xB5 #MICRO SIGN\r
+       0x00B6, // 0xB6 #PILCROW SIGN\r
+       0x00B7, // 0xB7 #MIDDLE DOT\r
+       0x0388, // 0xB8 #GREEK CAPITAL LETTER EPSILON WITH TONOS\r
+       0x0389, // 0xB9 #GREEK CAPITAL LETTER ETA WITH TONOS\r
+       0x038A, // 0xBA #GREEK CAPITAL LETTER IOTA WITH TONOS\r
+       0x00BB, // 0xBB #RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK\r
+       0x038C, // 0xBC #GREEK CAPITAL LETTER OMICRON WITH TONOS\r
+       0x00BD, // 0xBD #VULGAR FRACTION ONE HALF\r
+       0x038E, // 0xBE #GREEK CAPITAL LETTER UPSILON WITH TONOS\r
+       0x038F, // 0xBF #GREEK CAPITAL LETTER OMEGA WITH TONOS\r
+       0x0390, // 0xC0 #GREEK SMALL LETTER IOTA WITH DIALYTIKA AND TONOS\r
+       0x0391, // 0xC1 #GREEK CAPITAL LETTER ALPHA\r
+       0x0392, // 0xC2 #GREEK CAPITAL LETTER BETA\r
+       0x0393, // 0xC3 #GREEK CAPITAL LETTER GAMMA\r
+       0x0394, // 0xC4 #GREEK CAPITAL LETTER DELTA\r
+       0x0395, // 0xC5 #GREEK CAPITAL LETTER EPSILON\r
+       0x0396, // 0xC6 #GREEK CAPITAL LETTER ZETA\r
+       0x0397, // 0xC7 #GREEK CAPITAL LETTER ETA\r
+       0x0398, // 0xC8 #GREEK CAPITAL LETTER THETA\r
+       0x0399, // 0xC9 #GREEK CAPITAL LETTER IOTA\r
+       0x039A, // 0xCA #GREEK CAPITAL LETTER KAPPA\r
+       0x039B, // 0xCB #GREEK CAPITAL LETTER LAMDA\r
+       0x039C, // 0xCC #GREEK CAPITAL LETTER MU\r
+       0x039D, // 0xCD #GREEK CAPITAL LETTER NU\r
+       0x039E, // 0xCE #GREEK CAPITAL LETTER XI\r
+       0x039F, // 0xCF #GREEK CAPITAL LETTER OMICRON\r
+       0x03A0, // 0xD0 #GREEK CAPITAL LETTER PI\r
+       0x03A1, // 0xD1 #GREEK CAPITAL LETTER RHO\r
+       0x0020, // 0xD2 #UNDEFINED\r
+       0x03A3, // 0xD3 #GREEK CAPITAL LETTER SIGMA\r
+       0x03A4, // 0xD4 #GREEK CAPITAL LETTER TAU\r
+       0x03A5, // 0xD5 #GREEK CAPITAL LETTER UPSILON\r
+       0x03A6, // 0xD6 #GREEK CAPITAL LETTER PHI\r
+       0x03A7, // 0xD7 #GREEK CAPITAL LETTER CHI\r
+       0x03A8, // 0xD8 #GREEK CAPITAL LETTER PSI\r
+       0x03A9, // 0xD9 #GREEK CAPITAL LETTER OMEGA\r
+       0x03AA, // 0xDA #GREEK CAPITAL LETTER IOTA WITH DIALYTIKA\r
+       0x03AB, // 0xDB #GREEK CAPITAL LETTER UPSILON WITH DIALYTIKA\r
+       0x03AC, // 0xDC #GREEK SMALL LETTER ALPHA WITH TONOS\r
+       0x03AD, // 0xDD #GREEK SMALL LETTER EPSILON WITH TONOS\r
+       0x03AE, // 0xDE #GREEK SMALL LETTER ETA WITH TONOS\r
+       0x03AF, // 0xDF #GREEK SMALL LETTER IOTA WITH TONOS\r
+       0x03B0, // 0xE0 #GREEK SMALL LETTER UPSILON WITH DIALYTIKA AND TONOS\r
+       0x03B1, // 0xE1 #GREEK SMALL LETTER ALPHA\r
+       0x03B2, // 0xE2 #GREEK SMALL LETTER BETA\r
+       0x03B3, // 0xE3 #GREEK SMALL LETTER GAMMA\r
+       0x03B4, // 0xE4 #GREEK SMALL LETTER DELTA\r
+       0x03B5, // 0xE5 #GREEK SMALL LETTER EPSILON\r
+       0x03B6, // 0xE6 #GREEK SMALL LETTER ZETA\r
+       0x03B7, // 0xE7 #GREEK SMALL LETTER ETA\r
+       0x03B8, // 0xE8 #GREEK SMALL LETTER THETA\r
+       0x03B9, // 0xE9 #GREEK SMALL LETTER IOTA\r
+       0x03BA, // 0xEA #GREEK SMALL LETTER KAPPA\r
+       0x03BB, // 0xEB #GREEK SMALL LETTER LAMDA\r
+       0x03BC, // 0xEC #GREEK SMALL LETTER MU\r
+       0x03BD, // 0xED #GREEK SMALL LETTER NU\r
+       0x03BE, // 0xEE #GREEK SMALL LETTER XI\r
+       0x03BF, // 0xEF #GREEK SMALL LETTER OMICRON\r
+       0x03C0, // 0xF0 #GREEK SMALL LETTER PI\r
+       0x03C1, // 0xF1 #GREEK SMALL LETTER RHO\r
+       0x03C2, // 0xF2 #GREEK SMALL LETTER FINAL SIGMA\r
+       0x03C3, // 0xF3 #GREEK SMALL LETTER SIGMA\r
+       0x03C4, // 0xF4 #GREEK SMALL LETTER TAU\r
+       0x03C5, // 0xF5 #GREEK SMALL LETTER UPSILON\r
+       0x03C6, // 0xF6 #GREEK SMALL LETTER PHI\r
+       0x03C7, // 0xF7 #GREEK SMALL LETTER CHI\r
+       0x03C8, // 0xF8 #GREEK SMALL LETTER PSI\r
+       0x03C9, // 0xF9 #GREEK SMALL LETTER OMEGA\r
+       0x03CA, // 0xFA #GREEK SMALL LETTER IOTA WITH DIALYTIKA\r
+       0x03CB, // 0xFB #GREEK SMALL LETTER UPSILON WITH DIALYTIKA\r
+       0x03CC, // 0xFC #GREEK SMALL LETTER OMICRON WITH TONOS\r
+       0x03CD, // 0xFD #GREEK SMALL LETTER UPSILON WITH TONOS\r
+       0x03CE, // 0xFE #GREEK SMALL LETTER OMEGA WITH TONOS\r
+       0x0020, // 0xFF #UNDEFINED\r
+};\r
+\r
+// Unicode range 0x2013 - 0x2022\r
+static unsigned char CP_1253_20XX[16] = {\r
+       0x96, 0x97, 0xAF, 0, 0, 0x91, 0x92, 0x82, 0, 0x93, 0x94, 0x84, 0, 0x86, 0x87, 0x95\r
+};\r
+\r
+unsigned char UnicodeToCP1253(WORD tc)\r
+{\r
+       if ((tc >= 0 && tc <= 0x7F) ||\r
+               (tc >= 0xA0 && tc <= 0xBD) &&\r
+               (tc != 0xA1 || tc != 0xA2 || tc != 0xAA || tc != 0xAF ||\r
+               tc != 0xB4 || tc != 0xB8 || tc != 0xB9 || tc != 0xBA || tc != 0xBC)) {\r
+               return (unsigned char)(tc & 0xFF);\r
+       }\r
+       if (tc >= 0x388 && tc <= 0x3CE && (tc != 0x38B && tc != 0x38D && tc != 0x3A2)) {\r
+               return (unsigned char)(tc - 0x388 + 0xB8);\r
+       }\r
+       \r
+       if (tc >= 0x2013 && tc <= 0x2022) {\r
+               unsigned char c = CP_1253_20XX[tc - 0x2013];\r
+               if (c != 0) return c;\r
+       }\r
+\r
+       unsigned char c;\r
+       switch (tc) {\r
+       case 0x0192: c = 0x83; break;\r
+       case 0x0384: c = 0xB4; break;\r
+       case 0x0385: c = 0xA1; break;\r
+       case 0x0386: c = 0xA2; break;\r
+       case 0x2026: c = 0x85; break;\r
+       case 0x2030: c = 0x89; break;\r
+       case 0x2039: c = 0x8B; break;\r
+       case 0x203A: c = 0x9B; break;\r
+       case 0x20AC: c = 0x80; break;\r
+       case 0x2122: c = 0x99; break;\r
+       default:\r
+               c = (unsigned char)tc & 0xFF; // can't convert it.\r
+       }\r
+       return c;\r
+}\r
+void MultiByteToWideChar_CP1253(LPCSTR pMb, LPWSTR pUni, DWORD n)\r
+{\r
+       const unsigned char *p = (const unsigned char *)pMb;\r
+       LPWSTR q = pUni;\r
+\r
+       DWORD i = 0; \r
+       while(*p && (n == 0xFFFFFFFF || i < n)) {\r
+               *q++ = cp_1253[*p];\r
+               p++;\r
+               i++;\r
+       }\r
+       *q++ = TEXT('\0');\r
+}\r
+\r
+void WideCharToMultiByte_CP1253(LPCWSTR pUni, LPSTR pMb, DWORD n)\r
+{\r
+       LPCWSTR p = pUni;\r
+       unsigned char *q = (unsigned char*)pMb;\r
+\r
+       DWORD i = 0;\r
+       while(*p && (n = 0xFFFFFFFF || i < n)) {\r
+               *q++ = UnicodeToCP1253(*p);\r
+               p++;\r
+               i++;\r
+       }\r
+       *q++ = '\0';\r
+}\r
+#endif //defined(PLATFORM_BE500) && defined(TOMBO_LANG_ENGLISH)\r
+\r
+////////////////////////////////////////////////////////////\r
+// SJIS -> Unicode\95Ï\8a·\r
+////////////////////////////////////////////////////////////\r
+\r
+LPTSTR ConvSJIS2Unicode(const char *p)\r
+{\r
+       // \97Ì\88æ\8am\95Û\r
+       DWORD l = strlen(p) + 1;\r
+       LPTSTR pUni = new TCHAR[l];\r
+       if (pUni == NULL) {\r
+               SetLastError(ERROR_NOT_ENOUGH_MEMORY);\r
+               return NULL;\r
+       }\r
+\r
+#ifdef _WIN32_WCE\r
+#if defined(PLATFORM_BE500) && defined(TOMBO_LANG_ENGLISH)\r
+       if (g_Property.GetCodePage() == 1253) { // Greek codepage\r
+               MultiByteToWideChar_CP1253((LPCSTR)p, pUni, -1);\r
+       } else {\r
+               MultiByteToWideChar(CP_ACP, 0, (LPCSTR)p, -1, pUni, l);\r
+       }\r
+#else\r
+       MultiByteToWideChar(CP_ACP, 0, (LPCSTR)p, -1, pUni, l);\r
+#endif\r
+\r
+#else  // _WIN32_WCE\r
+       _tcscpy(pUni, p);\r
+#endif\r
+       return pUni;\r
+}\r
+\r
+#ifdef _WIN32_WCE\r
+DWORD CountMBStrings(const char *pStr, DWORD nBytes)\r
+{\r
+#if defined(PLATFORM_BE500) && defined(TOMBO_LANG_ENGLISH)\r
+       if (g_Property.GetCodePage() == 1253) {\r
+               DWORD n = strlen(pStr);\r
+               return (n < nBytes) ? n : nBytes;\r
+       } else {\r
+               return MultiByteToWideChar(CP_ACP, 0, pStr, nBytes, NULL, 0);\r
+       }\r
+#else\r
+       return MultiByteToWideChar(CP_ACP, 0, pStr, nBytes, NULL, 0);\r
+#endif\r
+}\r
+#endif\r
+\r
+#ifdef _WIN32_WCE\r
+DWORD CountWCBytes(LPCTSTR pStr, DWORD nChar)\r
+{\r
+#if defined(PLATFORM_BE500) && defined(TOMBO_LANG_ENGLISH)\r
+       if (g_Property.GetCodePage() == 1253) {\r
+               DWORD n = _tcslen(pStr);\r
+               return (n < nChar) ? n : nChar;\r
+       } else{\r
+               return WideCharToMultiByte(CP_ACP, 0, pStr, nChar, NULL, 0, NULL, NULL);\r
+       }\r
+#else\r
+       return WideCharToMultiByte(CP_ACP, 0, pStr, nChar, NULL, 0, NULL, NULL);\r
+#endif\r
+}\r
+#endif\r
+\r
+DWORD ConvUTF8PosToUCSPos(const char *pUTF, DWORD nBytes)\r
+{\r
+       DWORD n = 0;\r
+       const char *p = pUTF;\r
+       while(*p) {\r
+               if ((DWORD)(p - pUTF) == nBytes) break;\r
+               if ((*p & 0x80) == 0x00) {\r
+                       p++; n++;\r
+               } else if ((*p & 0xE0) == 0xC0) {\r
+                       p += 2; n++;\r
+               } else if ((*p & 0xF0) == 0xE0) {\r
+                       p += 3; n++;\r
+               } else return -1;\r
+       }\r
+       return n;\r
+}\r
+\r
+DWORD ConvUCSPosToUTF8Pos(const char *pUTF, DWORD nUCSPos)\r
+{\r
+       DWORD n = 0;\r
+       const char *p = pUTF;\r
+       while(*p) {\r
+               if (n >= nUCSPos) break;\r
+               if ((*p & 0x80) == 0x00) {\r
+                       p++; n++;\r
+               } else if ((*p & 0xE0) == 0xC0) {\r
+                       p += 2; n++;\r
+               } else if ((*p & 0xF0) == 0xE0) {\r
+                       p += 3; n++;\r
+               } else return -1;\r
+       }\r
+       return (DWORD)(p - pUTF);\r
+}\r
+\r
+///////////////////////////////////////////////////////////\r
+// Unicode -> SJIS\95Ï\8a·\r
+////////////////////////////////////////////////////////////\r
+\r
+char *ConvUnicode2SJIS(LPCTSTR p)\r
+{\r
+       DWORD l = (_tcslen(p) + 1)*sizeof(TCHAR);\r
+       char *pS = new char[l];\r
+       if (pS == NULL) {\r
+               SetLastError(ERROR_NOT_ENOUGH_MEMORY);\r
+               return NULL;\r
+       }\r
+#ifdef _WIN32_WCE\r
+#if defined(PLATFORM_BE500) && defined(TOMBO_LANG_ENGLISH)\r
+       if (g_Property.GetCodePage() == 1253) {\r
+               WideCharToMultiByte_CP1253(p, pS, -1);\r
+       } else {\r
+               WideCharToMultiByte(CP_ACP, 0, p, -1, pS, l, NULL, NULL);\r
+       }\r
+#else\r
+       WideCharToMultiByte(CP_ACP, 0, p, -1, pS, l, NULL, NULL);\r
+#endif\r
+#else // _WIN32_WCE\r
+       strcpy(pS, p);\r
+#endif\r
+       return pS;\r
+}\r
+\r
+///////////////////////////////////////////////////////////\r
+// Convert TCHAR to WCHAR\r
+////////////////////////////////////////////////////////////\r
+\r
+LPWSTR ConvTCharToWChar(LPCTSTR p)\r
+{\r
+       if (p == NULL) return NULL;\r
+#if defined(PLATFORM_WIN32)\r
+       LPWSTR pW;\r
+       DWORD nLen = strlen(p);\r
+       pW = new WCHAR[nLen +1];\r
+       if (pW == NULL) return NULL;\r
+       MultiByteToWideChar(CP_ACP, 0, p, -1, pW, nLen + 1);\r
+       pW[nLen] = L'\0';\r
+       return pW;\r
+#else\r
+       return StringDup(p);\r
+#endif\r
+}\r
+\r
+LPTSTR ConvWCharToTChar(LPCWSTR p)\r
+{\r
+       if (p == NULL) return NULL;\r
+#if defined(PLATFORM_WIN32)\r
+       DWORD nLen = WideCharToMultiByte(CP_ACP, 0, p, -1, NULL, 0, NULL, NULL);\r
+       LPTSTR pT = new TCHAR[nLen + 1];\r
+       if (pT == NULL) return NULL;\r
+       WideCharToMultiByte(CP_ACP, 0, p, -1, pT, nLen + 1, NULL, NULL);\r
+       pT[nLen] = TEXT('\0');\r
+       return pT;\r
+#else\r
+       return StringDup(p);\r
+#endif\r
+}\r
+\r
+//////////////////////////////////\r
+// TCHAR <-> UTF-8\r
+//////////////////////////////////\r
+\r
+char *ConvTCharToUTF8(LPCTSTR p)\r
+{\r
+       if (p == NULL) return NULL;\r
+#if defined(PLATFORM_WIN32)\r
+       LPWSTR pW = ConvTCharToWChar(p);\r
+       SecureBufferAutoPointerW ap(pW);\r
+       if (pW == NULL) return NULL;\r
+       \r
+       return ConvUCS2ToUTF8(pW);\r
+#else\r
+       return ConvUCS2ToUTF8(p);\r
+#endif\r
+}\r
+\r
+LPTSTR ConvUTF8ToTChar(const char *p)\r
+{\r
+       LPWSTR pW = ConvUTF8ToUCS2(p);\r
+       if (pW == NULL) return NULL;\r
+#if defined(PLATFORM_WIN32)\r
+       SecureBufferAutoPointerW ap(pW);\r
+       return ConvWCharToTChar(pW);\r
+#else\r
+       return pW;\r
+#endif\r
+}\r
+\r
+///////////////////////////////////////////////////\r
+// JIS -> SJIS\95Ï\8a·\83\8b\81[\83`\83\93\r
+///////////////////////////////////////////////////\r
+// \95Ï\8a·\83A\83\8b\83S\83\8a\83Y\83\80\82Í "C\8c¾\8cê\82É\82æ\82é\8dÅ\90V\83A\83\8b\83S\83\8a\83Y\83\80\8e«\93T" \89\9c\91º\90°\95F, \8bZ\8fp\95]\98_\8eР\82ª\83x\81[\83X\81B\r
+#define CODEPAGE_ANSI    0\r
+#define CODEPAGE_JIS     1\r
+#define CODEPAGE_HANKANA 2\r
+\r
+void ConvJIS2SJIS(const char *pIn, char *pOut)\r
+{\r
+       const BYTE *p = (const BYTE*)pIn;\r
+       BYTE *q = (BYTE*)pOut;\r
+\r
+       BYTE c, d, n;\r
+       DWORD codepage = CODEPAGE_ANSI;\r
+\r
+       while(*p) {\r
+               // Is escape-sequence?\r
+\r
+               if (*p == ESC) {\r
+                       if (*(p+1) == '$') {\r
+                               if (*(p+2) == 'B' || *(p+2) == '@') {\r
+                                       p+= 3;\r
+                                       codepage = CODEPAGE_JIS;\r
+                                       continue;\r
+                               }\r
+                       }\r
+                       if (*(p+1) == '(') {\r
+                               n = *(p+2);\r
+                               if (n == 'H' || n == 'J' || n == 'B') {\r
+                                       p+= 3;\r
+                                       codepage = CODEPAGE_ANSI;\r
+                                       continue;\r
+                               }\r
+                               if (n == 'I') {\r
+                                       p+= 3;\r
+                                       codepage = CODEPAGE_HANKANA;\r
+                                       continue;\r
+                               }\r
+                       }\r
+                       if (*(p+1) == 'K') {\r
+                               codepage = CODEPAGE_JIS;\r
+                               p+= 2;\r
+                               continue;\r
+                       }\r
+                       if (*(p+1) == 'H') {\r
+                               codepage = CODEPAGE_ANSI;\r
+                               p += 2;\r
+                               continue;\r
+                       }\r
+               }\r
+\r
+               // for processing by codepage\r
+               switch(codepage) {\r
+               case CODEPAGE_ANSI:\r
+                       *q++ = *p++;\r
+                       break;\r
+               case CODEPAGE_JIS:\r
+                       c = *p++;\r
+                       if (c >= 0x21 && c <= 0x7E) {\r
+                               if ((d = *p++) >= 0x21 && d <= 0x7E) {\r
+                                       shift(&c, &d);\r
+                               }\r
+                               *q++ = c; if (d != '\0') *q++ = (char)d;\r
+                       } else if (c >= 0xA1 && c <= 0xFE) {\r
+                               if ((d = *p++) >= 0xA1 && d <= 0xFE) {\r
+                                       d &= 0x7F; c &= 0x7F; shift(&c, &d);\r
+                               }\r
+                               *q++ = c; if (d != '\0') *q++ = (char)d;\r
+                       } else *q++ = c;\r
+                       break;\r
+               case CODEPAGE_HANKANA:\r
+                       *q++ = (*p++) | 0x80;\r
+                       break;\r
+               }\r
+       }\r
+       *q++ = '\0';\r
+}\r
+\r
+///////////////////////////\r
+// \95Ï\8a·\89º\90¿\82¯\r
+\r
+static void shift(BYTE *ph, BYTE *pl)\r
+{\r
+       if (*ph & 1) {\r
+               if (*pl < 0x60) *pl += 0x1F;\r
+               else *pl += 0x20;\r
+       } else *pl += 0x7E;\r
+       if (*ph < 0x5F) *ph = (*ph + 0xE1) >> 1;\r
+       else *ph = (*ph + 0x161) >> 1;\r
+}\r
+\r
+///////////////////////////////////////////////////\r
+// MimeDec\89º\90¿\82¯\r
+\r
+// BASE64\95\8e\9a\82ð0-63\82Ì\92l\82É\95Ï\8a·\r
+\r
+inline char dec64(char c)\r
+{\r
+       if ('A' <= c && c <= 'Z') {\r
+               return c - 'A';\r
+       }\r
+       if ('a' <= c && c <= 'z') {\r
+               return c - 'a' + 26;\r
+       }\r
+       if ('0' <= c && c <= '9') {\r
+               return c - '0' + 52;\r
+       }\r
+       if (c == '+') return 62;\r
+       if (c == '/') return 63;\r
+       else return 64;\r
+}\r
+\r
+///////////////////////////////////////////////////\r
+// MIME BASE64(ISO-2022-JP) \83f\83R\81[\83h\r
+///////////////////////////////////////////////////\r
+// BASE64\83w\83b\83_(ISO-2022-JP\82Ì\82Ý)\82ð\83f\83R\81[\83h\82·\82é\r
+\r
+BOOL MimeDec(char *pDst, const char *pSrc)\r
+{\r
+       const char *p = pSrc;\r
+       char *q = pDst;\r
+       char b1, b2, b3;\r
+       char c1, c2, c3, c4;\r
+\r
+S1:\r
+       while(*p) {\r
+               if (*p == '=' && *(p+1) == '?') break;\r
+               *q++ = *p++;\r
+       }\r
+       if (*p == '\0') {\r
+               *q++ = '\0';\r
+               return FALSE;\r
+       }\r
+       // ASSERT(*p == '=' && *(p+1) == '?')\r
+\r
+       if (strncmp(p + 2, "iso-2022-jp?B?", 14) != 0 &&\r
+               strncmp(p + 2, "ISO-2022-JP?B?", 14) != 0) {\r
+               *q++ = *p++;\r
+               *q++ = *p++;\r
+               goto S1;\r
+       }\r
+       p += 16;\r
+\r
+       while(*p) {\r
+               if (*p == '?') break;\r
+               c1 = dec64(*p++);\r
+               c2 = dec64(*p++);\r
+               c3 = dec64(*p++);\r
+               c4 = dec64(*p++);\r
+\r
+               b1 = (c1 << 2) | ((c2 & 0x30) >> 4);\r
+               *q++ = b1;\r
+\r
+               if (c3 != 64) {\r
+                       b2 = ((c2 & 0xF) << 4) | ((c3 & 0x3c) >> 2);\r
+                       *q++ = b2;\r
+               }\r
+\r
+               if (c3 != 64 && c4 != 64) {\r
+                       b3 = ((c3 & 0x3) << 6) | c4;\r
+                       *q++ = b3;\r
+               }\r
+\r
+\r
+       }\r
+       if (*p == '\0') {\r
+               *q++ = '\0';\r
+               return FALSE;\r
+       }\r
+       if (*p == '?' && *(p+1) == '=') {\r
+               p += 2;\r
+               goto S1;\r
+       }\r
+       *q = '\0';\r
+       return FALSE;\r
+}\r
+\r
+\r
+////////////////////////////////////////\r
+// ConvSJIS2JIS\89º\90¿\82¯\r
+\r
+// SJIS\82Ì2\83o\83C\83g\83y\83A\82ðJIS\82Ì2\83o\83C\83g\83y\83A\82É\95Ï\8a·\r
+\r
+static void jis(BYTE *ph, BYTE *pl)\r
+{\r
+       if (*ph <= 0x9F) {\r
+               if (*pl < 0x9F) *ph = (*ph << 1) - 0xE1;\r
+               else                    *ph = (*ph << 1) - 0xE0;\r
+       } else {\r
+               if (*pl < 0x9F) *ph = (*ph << 1) - 0x161;\r
+               else                    *ph = (*ph << 1) - 0x160;\r
+       }\r
+       if              (*pl < 0x7F) *pl -= 0x1F;\r
+       else if (*pl < 0x9F) *pl -= 0x20;\r
+       else                             *pl -= 0x7E;\r
+}\r
+\r
+\r
+//////////////////////////////////////////////\r
+// top\81`*cur\82Ì\93à\97e\82ª\83R\83s\81[\82³\82ê\82½\83o\83b\83t\83@\82ð\8am\95Û\82·\82é\81B\r
+// top\82Ì\8ew\82·\90æ\82Í\8aJ\95ú\82³\82ê\82é\81B\r
+// \90V\82µ\82¢\83o\83b\83t\83@\82Íbufsiz\82æ\82èCONVSJIS2_JIS_EXTEND_SIZE\8ag\92£\82³\82ê\82Ä\82¢\82é\r
+\r
+#define CONVSJIS2JIS_INIT_SIZE 256\r
+#define CONVSJIS2JIS_EXTEND_SIZE 64\r
+\r
+static char *Resize(char *top, char **cur, int *bufsiz)\r
+{\r
+       char *p = new char[*bufsiz + CONVSJIS2JIS_EXTEND_SIZE];\r
+       if (p == NULL) {\r
+               SetLastError(ERROR_NOT_ENOUGH_MEMORY);\r
+               return NULL;\r
+       }\r
+       memcpy(p, top, *cur - top);\r
+       *cur = (*cur - top) + p;\r
+       *bufsiz += CONVSJIS2JIS_EXTEND_SIZE;\r
+       delete [] top;\r
+       return p;\r
+}\r
+\r
+//////////////////////////////////////////////////\r
+// Shift JIS\82©\82ç JIS\82Ö\82Ì\95Ï\8a·\r
+//////////////////////////////////////////////////\r
+// \95Ï\8a·\83A\83\8b\83S\83\8a\83Y\83\80\82Í "C\8c¾\8cê\82É\82æ\82é\8dÅ\90V\83A\83\8b\83S\83\8a\83Y\83\80\8e«\93T" \89\9c\91º\90°\95F, \8bZ\8fp\95]\98_\8eР\82ª\83x\81[\83X\81B\r
+//\r
+// \97Ì\88æ\82ð\8am\95Û\82µ\82»\82±\82Ö\82Ì\83|\83C\83\93\83^\82ª\95Ô\82³\82ê\82é\81B\r
+\r
+char *ConvSJIS2JIS(char *str)\r
+{\r
+       char *outbuf = new char[CONVSJIS2JIS_INIT_SIZE];\r
+       int bufsiz = CONVSJIS2JIS_INIT_SIZE;\r
+\r
+       if (outbuf == NULL) {\r
+               SetLastError(ERROR_NOT_ENOUGH_MEMORY);\r
+               return NULL;\r
+       }\r
+\r
+       char *p = str;\r
+       char *q = outbuf;\r
+\r
+       BYTE c, d;\r
+       BOOL bKanji = FALSE;\r
+       while ((c = *p++) != '\0') {\r
+               if (iskanji(c)) {\r
+                       if (bKanji == FALSE) {\r
+                               if (q - outbuf + 3 >= bufsiz) {\r
+                                       outbuf = Resize(outbuf, &q, &bufsiz);\r
+                                       if (q == NULL) return FALSE;\r
+                               }\r
+                               *q++ = ESC;\r
+                               *q++ = '$';\r
+                               *q++ = 'B';\r
+                               bKanji = TRUE;\r
+                       }\r
+                       d = *p++;\r
+                       if (iskanji2(d)) {\r
+                               jis(&c, &d);\r
+                               if (q - outbuf + 2 >= bufsiz) {\r
+                                       outbuf = Resize(outbuf, &q, &bufsiz);\r
+                                       if (q == NULL) return FALSE;\r
+                               }\r
+                               *q++ = c;\r
+                               *q++ = d;\r
+                       } else {\r
+                               if (q - outbuf >= bufsiz) {\r
+                                       outbuf = Resize(outbuf, &q, &bufsiz);\r
+                                       if (q == NULL) return FALSE;\r
+                               }\r
+                               *q++ = c;\r
+                               if (d != '\0') {\r
+                                       if (q - outbuf >= bufsiz) {\r
+                                               outbuf = Resize(outbuf, &q, &bufsiz);\r
+                                               if (q == NULL) return FALSE;\r
+                                       }\r
+                                       *q++ = d;\r
+                               }\r
+                       }\r
+               } else {\r
+                       if (bKanji == TRUE) {\r
+                               if (q - outbuf + 3 >= bufsiz) {\r
+                                       outbuf = Resize(outbuf, &q, &bufsiz);\r
+                                       if (q == NULL) return FALSE;\r
+                               }\r
+                               *q++ = ESC;\r
+                               *q++ = '(';\r
+                               *q++ = 'B';\r
+                               bKanji = FALSE;\r
+                       }\r
+                       if (q - outbuf >= bufsiz) {\r
+                               outbuf = Resize(outbuf, &q, &bufsiz);\r
+                               if (q == NULL) return FALSE;\r
+                       }\r
+                       *q++ = c;\r
+               }\r
+       }\r
+       if (bKanji = TRUE) {\r
+                       if (bKanji == TRUE) {\r
+                               if (q - outbuf + 3 >= bufsiz) {\r
+                                       outbuf = Resize(outbuf, &q, &bufsiz);\r
+                                       if (q == NULL) return FALSE;\r
+                               }\r
+                               *q++ = ESC;\r
+                               *q++ = '(';\r
+                               *q++ = 'B';\r
+                               bKanji = FALSE;\r
+                       }\r
+       }\r
+       if (q - outbuf >= bufsiz) {\r
+               outbuf = Resize(outbuf, &q, &bufsiz);\r
+               if (q == NULL) return FALSE;\r
+       }\r
+       *q++ = '\0';\r
+       return outbuf;\r
+}\r
+\r
+#ifdef COMMENT\r
+////////////////////////////////////////////////////\r
+// Base64Encoder\8eÀ\91\95\r
+////////////////////////////////////////////////////\r
+\r
+// \95Ï\8dX\82·\82é\82Æ\82¤\82Ü\82­\93®\82©\82È\82­\82È\82é\82©\82à\81B\r
+// BASE64_LINE_WIDTH\82ÍENCODE_BUF_SIZE\82æ\82è \8dÅ\92á\82Å\82à4/3 + 18\88È\8fã\91å\82«\82¢\82±\82Æ\81B\r
+#define BASE64_LINE_WIDTH 80\r
+#define ENCODE_BUF_SIZ 26\r
+\r
+#define ENC_HEADER_LEN 16\r
+char *pEncHeader = "=?iso-2022-jp?B?";\r
+\r
+#define ENC_FOOTER_LEN 2\r
+char *pEncFooter = "?=";\r
+\r
+\r
+Base64Encoder::~Base64Encoder()\r
+{\r
+       Item *p = head;\r
+       Item *q;\r
+       while(p) {\r
+               delete [] (p->pLine);\r
+               q = p;\r
+               p = p->pNext;\r
+               delete q;\r
+       }\r
+}\r
+\r
+// \8ew\92è\83o\83C\83g\88È\93à\82É\8eû\82ß\82é\r
+// \8a¿\8e\9a\82ª\8aÜ\82Ü\82ê\82Ä\82¢\82½\82çASCII\82à\82Ü\82Æ\82ß\82Ä\83G\83\93\83R\81[\83h\82·\82é\r
+// \82 \82Ó\82ê\82é\8fê\8d\87\82É\82Í\89ü\8ds\82·\82é\r
+// \89ü\8ds\82Ì\8dÛ\82É\95\8e\9a\83R\81[\83h\82ªJIS\82¾\82Á\82½\82çASCII\82É\96ß\82·\82½\82ßESC $ (\82ð\8aÜ\82ß\82Ä\83G\83\93\83R\81[\83h\r
+// \8a¿\8e\9a\82Ì1byte\82ß\82Æ2byte\82ß\82Ì\8aÔ\82Å\82Í\89ü\8ds\82µ\82È\82¢\81B\r
+\r
+\r
+static void EncBuf(char *pIn, char *pOut)\r
+{\r
+       DWORD v;\r
+       static char enctable[65] = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/";\r
+       \r
+       DWORD n = strlen(pIn);\r
+\r
+       unsigned char *p = (unsigned char *)pIn;\r
+       unsigned char *q = (unsigned char *)pOut;\r
+\r
+       while(n >= 3) {\r
+               v = *p >> 2;\r
+               *q++ = enctable[v];\r
+               v = ((*p & 3) << 4) + (*(p+1) >> 4);\r
+               *q++ = enctable[v];\r
+               v = ((*(p+1) & 0xF) << 2) + (*(p+2) >> 6);\r
+               *q++ = enctable[v];\r
+               v = *(p+2) & 0x3F;\r
+               *q++ = enctable[v];\r
+\r
+               p += 3;\r
+               n -= 3;\r
+       }\r
+\r
+       if (n == 2) {\r
+               v = *p >> 2;\r
+               *q++ = enctable[v];\r
+               v = ((*p & 3) << 4) + (*(p+1) >> 4);\r
+               *q++ = enctable[v];\r
+               v = ((*(p+1) & 0x0F) << 2);\r
+               *q++ = enctable[v];\r
+               *q++ = '=';\r
+       } else if (n == 1) {\r
+               v = *p >> 2;\r
+               *q++ = enctable[v];\r
+               v = (*p & 3) << 4;\r
+               *q++ = enctable[v];\r
+               *q++ = '=';\r
+               *q++ = '=';\r
+       }\r
+       *q = '\0';\r
+}\r
+\r
+#define TOKEN_EOF   0\r
+#define TOKEN_OTHER 1\r
+#define TOKEN_KANJI 2\r
+#define TOKEN_TO_JIS   3\r
+#define TOKEN_TO_ASCII 4\r
+\r
+BOOL Base64Encoder::Encode(char *str)\r
+{\r
+       BOOL bKanji = FALSE;\r
+       char *pLine = AllocLine();\r
+       if (pLine == NULL) return FALSE;\r
+       \r
+       char *p = str;\r
+\r
+       while(TRUE) {\r
+               p = EncodeLine(p, pLine, &bKanji);\r
+               if (*p == '\0') break; \r
+               pLine = AllocLine();\r
+               if (pLine == NULL) return FALSE;\r
+       }\r
+\r
+       return TRUE;\r
+}\r
+\r
+char *Base64Encoder::EncodeLine(char *pIn, char *pOut, BOOL *pKanji)\r
+{\r
+       char *p = pIn;\r
+\r
+       char kbuf[ENCODE_BUF_SIZ];\r
+       char *q = kbuf;\r
+\r
+       BOOL bKanji = *pKanji;\r
+       DWORD n, t;\r
+\r
+       // \8ds\93ª\82Ì\92²\90®\r
+       // KKKK..       =>      E$BKKKK         bKanji = T\r
+       // aaaa..       =>  aaaa\r
+       // E$BK..       =>  E$BK\r
+       // E(Ba..       =>  a                   bKanji = T\r
+       if (bKanji) {\r
+               BOOL bk = bKanji;\r
+               n = GetToken(p, &bk, &t);\r
+               if (t == TOKEN_KANJI) {\r
+                       *q++ = ESC;\r
+                       *q++ = '$';\r
+                       *q++ = 'B';\r
+               } else {\r
+                       p += n;\r
+                       bKanji = FALSE;\r
+               }\r
+       }\r
+\r
+       // kbuf\82É\95\8e\9a\82ð\82Â\82ß\82Ä\82ä\82­\r
+       t = TOKEN_EOF;\r
+\r
+       while(*p) {\r
+               BOOL bk = bKanji;\r
+               DWORD pt;\r
+               n = GetToken(p, &bk, &pt);\r
+               if (q - kbuf + 3 + n >= ENCODE_BUF_SIZ) break;\r
+\r
+               bKanji = bk;\r
+               t = pt;\r
+               memcpy(q, p, n);\r
+               q += n;\r
+               p += n;\r
+       }\r
+\r
+       // \8ds\96\96\82Ì\92²\90®\r
+       // KKKKK        ->  KKE(B       next: kanji\r
+       // aaE$B        ->      aa              next: kanji\r
+       // aaE(B        ->      aaE(B   next: ascii\r
+       // aaaaa        ->      aaaaa   next: ascii\r
+\r
+       if (t == TOKEN_KANJI) {\r
+               *q++ = ESC;\r
+               *q++ = '(';\r
+               *q++ = 'B';\r
+       } else if (t == TOKEN_TO_JIS) {\r
+               q -= 3;\r
+       }\r
+       *q++ = '\0';\r
+\r
+       // \83R\81[\83h\82Ì\95Ï\8a·\r
+       if (strlen(kbuf) > 0) {\r
+               strcpy(pOut, pEncHeader);\r
+               EncBuf(kbuf, pOut + ENC_HEADER_LEN);\r
+               strcat(pOut, pEncFooter);\r
+       } else {\r
+               *pOut = '\0';\r
+       }\r
+       *pKanji = bKanji;\r
+       return p;\r
+}\r
+\r
+DWORD Base64Encoder::GetToken(char *pCurrent, BOOL *pKanji, DWORD *pType)\r
+{\r
+       DWORD nBytes;\r
+\r
+       if (*pCurrent == '\0') {\r
+               *pType = TOKEN_EOF;\r
+               nBytes = 1;\r
+       } else if (*pCurrent == ESC && *(pCurrent+1) && *(pCurrent + 2) == 'B') {\r
+               if (*(pCurrent + 1) == '$') {\r
+                       *pType = TOKEN_TO_JIS;\r
+                       *pKanji = TRUE;\r
+               } else if (*(pCurrent + 1) == '(') {\r
+                       *pType = TOKEN_TO_ASCII;\r
+                       *pKanji = FALSE;\r
+               }\r
+               nBytes = 3;\r
+               pCurrent += 3;\r
+       } else if (*pKanji) {\r
+               *pType = TOKEN_KANJI;\r
+               nBytes = 2;\r
+               pCurrent += 2;\r
+       } else {\r
+               *pType = TOKEN_OTHER;\r
+               nBytes = 1;\r
+       }\r
+       return nBytes;\r
+}\r
+\r
+char *Base64Encoder::AllocLine()\r
+{\r
+       char *p = new char[BASE64_LINE_WIDTH + 1];\r
+       if (p == NULL) {\r
+               SetLastError(ERROR_NOT_ENOUGH_MEMORY);\r
+               return NULL;\r
+       }\r
+               \r
+       Item *pItem = new Item;\r
+       if (pItem == NULL) {\r
+               delete [] p;\r
+               SetLastError(ERROR_NOT_ENOUGH_MEMORY);\r
+               return NULL;\r
+       }\r
+\r
+       pItem->pLine = p;\r
+       pItem->pNext = NULL;\r
+\r
+       if (tail) {\r
+               tail->pNext = pItem;\r
+               tail = pItem;\r
+       } else {\r
+               head = tail = pItem;\r
+       }\r
+       return p;\r
+}\r
+#endif\r
+\r
+////////////////////////////////////////////////////\r
+// misc functions\r
+////////////////////////////////////////////////////\r
+\r
+static LPTSTR GetTail(LPTSTR pBuf)\r
+{\r
+#ifdef _WIN32_WCE\r
+       return pBuf + _tcslen(pBuf) - 1;\r
+#else\r
+       LPTSTR p = pBuf;\r
+       LPTSTR pTail = pBuf;\r
+       while(*p) {\r
+               if (iskanji(*p)) {\r
+                       pTail = p++;\r
+                       if (*p) p++;\r
+               } else {\r
+                       pTail = p++;\r
+               }\r
+       }\r
+       return pTail;\r
+#endif\r
+}\r
+\r
+void ChopFileSeparator(LPTSTR pBuf)\r
+{\r
+       LPTSTR p;\r
+       while(TRUE) {\r
+               p = GetTail(pBuf);\r
+               if (*p == TEXT('\\')) {\r
+                       *p = TEXT('\0');\r
+               } else {\r
+                       break;\r
+               }\r
+       }\r
+}\r
+\r
+void TrimRight(LPTSTR pStr)\r
+{\r
+       LPTSTR p = pStr;\r
+       LPTSTR pLastSpc = NULL;\r
+       while (*p) {\r
+               if (*p == TEXT(' ') && pLastSpc==NULL) {\r
+                       pLastSpc = p;\r
+               }\r
+               if (*p != TEXT(' ')) {\r
+                       pLastSpc = NULL;\r
+               }\r
+               p = CharNext(p);\r
+       }\r
+       if (pLastSpc) {\r
+               *pLastSpc = TEXT('\0');\r
+       }\r
+}\r
+\r
+////////////////////////////////////////////////////\r
+// strdup clone\r
+////////////////////////////////////////////////////\r
+\r
+LPTSTR StringDup(LPCTSTR pStr)\r
+{\r
+       DWORD l = _tcslen(pStr);\r
+       LPTSTR p = new TCHAR[l + 1];\r
+       if (p == NULL) {\r
+               SetLastError(ERROR_NOT_ENOUGH_MEMORY);\r
+               return NULL;\r
+       }\r
+       _tcscpy(p, pStr);\r
+       return p;\r
+}\r
+\r
+LPWSTR StringDupW(LPCWSTR pStr)\r
+{\r
+       DWORD l = wcslen(pStr);\r
+       LPWSTR p = new WCHAR[l + 1];\r
+       if (p == NULL) {\r
+               SetLastError(ERROR_NOT_ENOUGH_MEMORY);\r
+               return NULL;\r
+       }\r
+       wcscpy(p, pStr);\r
+       return p;\r
+}\r
+\r
+char *StringDupA(const char *pStr)\r
+{\r
+       DWORD l = strlen(pStr);\r
+       char *p = new char[l + 1];\r
+       if (p == NULL) {\r
+               SetLastError(ERROR_NOT_ENOUGH_MEMORY);\r
+               return NULL;\r
+       }\r
+       strcpy(p, pStr);\r
+       return p;\r
+}\r
+\r
+\r
+////////////////////////////////////////////////////\r
+// \95\8e\9a\97ñ\82ð\8a¿\8e\9a\82Æ\82µ\82Ä\83R\83s\81[\r
+////////////////////////////////////////////////////\r
+\r
+void CopyKanjiString(LPTSTR pDst, LPCTSTR pSrc, DWORD nLen)\r
+{\r
+#ifdef WIN32_WCE\r
+       LPCTSTR p = pSrc;\r
+       LPTSTR q = pDst;\r
+       DWORD n = 0;\r
+       while(*p) {\r
+               if (iskanji(*p)) {\r
+                       if (n < nLen - 1) {\r
+                               *q++ = *p++;\r
+                               *q++ = *p++;\r
+                               n+= 2;\r
+                               continue;\r
+                       } else {\r
+                               break;\r
+                       }\r
+               } else {\r
+                       *q++ = *p++; \r
+                       n++;\r
+               }\r
+       }\r
+       *q = TEXT('\0');\r
+#else\r
+       _tcsncpy(pDst, pSrc, nLen);\r
+#endif\r
+}\r
+\r
+////////////////////////////////////////////////////\r
+// Convert UTF-8 to UCS2\r
+////////////////////////////////////////////////////\r
+// Windows CE's WideCharToMultiByte is not support UTF-8... sigh..\r
+\r
+// Allocate and convert to UCS2 code. Caller should delete[] the buffer returned.\r
+// if invalid UTF-8 data, return NULL and set GetLastError() to ERROR_INVALID_DATA.\r
+\r
+LPWSTR ConvUTF8ToUCS2(const char *pUTFData)\r
+{\r
+       LPWSTR pData = new WCHAR[strlen(pUTFData) + 1];\r
+\r
+       const char *p = pUTFData;\r
+       LPWSTR q = pData;\r
+\r
+       WORD w1, w2, w3;\r
+       WCHAR c;\r
+\r
+       while(*p) {\r
+               if ((*p & 0xF0) == 0xE0 && (*(p+1) & 0xC0) == 0x80 && (*(p+2) & 0xC0) == 0x80) {\r
+                       // 3byte code\r
+                       w1 = *p & 0x0F;\r
+                       w2 = *(p+1) & 0x3F;\r
+                       w3 = *(p+2) & 0x3F;\r
+                       c = (w1 << 12) | (w2 << 6) | w3;\r
+                       *q++ = c;\r
+                       p+= 3;\r
+               } else if ((*p & 0xE0) == 0xC0 && (*(p+1) & 0x80) == 0x80) {\r
+                       // 2byte code\r
+                       w1 = *p & 0x1F;\r
+                       w2 = *(p+1) & 0x3F;\r
+                       c = (w1 << 6) | w2;\r
+                       *q++ = c;\r
+                       p+= 2;\r
+               } else if ((*p & 0x80) == 0x00) {\r
+                       // 1byte code\r
+                       w1 = *p;\r
+                       c = w1;\r
+                       *q++ = c;\r
+                       p++;\r
+               } else {\r
+                       // illegal code\r
+                       delete [] pData;\r
+                       SetLastError(ERROR_INVALID_DATA);\r
+                       return NULL;\r
+               }\r
+\r
+       }\r
+       *q = TEXT('\0');\r
+\r
+       return pData;\r
+}\r
+\r
+////////////////////////////////////////////////////\r
+// UCS2 -> UTF-8\r
+////////////////////////////////////////////////////\r
+char *ConvUCS2ToUTF8(LPCWSTR pStr)\r
+{\r
+       DWORD len = wcslen(pStr);\r
+       char *pBuf = new char[(len + 1) * 3];\r
+       if (pBuf == NULL) { \r
+               SetLastError(ERROR_NOT_ENOUGH_MEMORY);\r
+               return FALSE;\r
+       }\r
+       \r
+       LPCWSTR p = pStr;\r
+       char *q = pBuf;\r
+       while(*p) {\r
+               if (*p < 0x80) {\r
+                       *q++ = (char)(*p & 0x007F);\r
+               } else if (*p < 0x800) {\r
+                       *q++ = (char)(((*p & 0x07C0) >> 6) | 0xC0);\r
+                       *q++ = (char)(*p & 0x003F) | 0x80;\r
+               } else {\r
+                       *q++ = (char)(((*p >> 12) & 0x0F) | 0xE0);\r
+                       *q++ = (char)(((*p & 0x0FC0) >> 6) | 0x80);\r
+                       *q++ = (char)((*p & 0x3F) | 0x80);\r
+               }\r
+               p++;\r
+       }\r
+\r
+       *q = '\0';\r
+       return pBuf;\r
+}\r
+\r
+////////////////////////////////////////////////////\r
+// Escape XML special string\r
+////////////////////////////////////////////////////\r
+\r
+char *EscapeXMLStr(LPCTSTR pStr)\r
+{\r
+       LPWSTR pWStr;\r
+#if defined(PLATFORM_WIN32)\r
+       pWStr =  ConvTCharToWChar(pStr);\r
+       ArrayAutoPointer<WCHAR> ap1(pWStr);\r
+       if (pWStr == NULL) return NULL;\r
+#else\r
+       pWStr = (LPWSTR)pStr;\r
+#endif\r
+\r
+       // check escape string is exist\r
+       DWORD nExt = 0;\r
+       LPCWSTR p = pWStr;\r
+       while(*p) {\r
+               if (*p == TEXT('<') || *p == TEXT('>') ||\r
+                       *p == TEXT('&') || \r
+                       *p == TEXT('\'') || *p == TEXT('"')) {\r
+                       nExt += 6;\r
+               }\r
+               p++;\r
+       }\r
+\r
+       LPWSTR pUCS;\r
+       ArrayAutoPointer<WCHAR> ap2;\r
+\r
+       if (nExt == 0) {\r
+               pUCS = pWStr;\r
+       } else {\r
+               // Need escape\r
+               LPWSTR pEscaped = new WCHAR[wcslen(pWStr) + nExt + 1];\r
+               ap2.set(pEscaped);\r
+               \r
+               LPWSTR q = pEscaped;\r
+               p = pWStr;\r
+               while(*p) {\r
+                       switch (*p) {\r
+                       case L'<':\r
+                               wcscpy(q, L"&lt;"); q+= 4;\r
+                               break;\r
+                       case L'>':\r
+                               wcscpy(q, L"&gt;"); q+= 4;\r
+                               break;\r
+                       case L'&':\r
+                               wcscpy(q, L"&amp;"); q+= 5;\r
+                               break;\r
+                       case L'\'':\r
+                               wcscpy(q, L"&apos;"); q+= 6;\r
+                               break;\r
+                       case L'"':\r
+                               wcscpy(q, L"&quot;"); q+= 6;\r
+                               break;\r
+                       default:\r
+                               *q++ = *p;\r
+                       }\r
+                       p++;\r
+               }\r
+               *q = L'\0';\r
+               pUCS = pEscaped;\r
+       }\r
+       \r
+       return ConvUCS2ToUTF8(pUCS);\r
+}\r
+\r
+////////////////////////////////////////////////////\r
+// Base64 encode/decode\r
+////////////////////////////////////////////////////\r
+\r
+#if defined(USE_CPPUNIT)\r
+DWORD g_Base64EncodeAllocSize;\r
+#endif\r
+\r
+char *Base64Encode(const LPBYTE pBinary, DWORD nSrcLen)\r
+{\r
+       if (pBinary == NULL || nSrcLen == 0) return NULL;\r
+\r
+       static char enctable[65] = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/";\r
+\r
+       DWORD nBufSiz = nSrcLen / 3 * 4;\r
+       if (nSrcLen % 3 != 0) { nBufSiz += 4; }\r
+       nBufSiz++; // for \0\r
+\r
+#if defined(USE_CPPUNIT)\r
+       g_Base64EncodeAllocSize = nBufSiz;\r
+#endif\r
+\r
+       // alloc\r
+       unsigned char *pOutBuf = new unsigned char[nBufSiz];\r
+       if (pOutBuf == NULL) return NULL;\r
+\r
+       LPBYTE p = pBinary;\r
+       unsigned char *q = pOutBuf;\r
+\r
+       DWORD v;\r
+       DWORD n = nSrcLen;\r
+\r
+       while(n >= 3) {\r
+               v = *p >> 2;\r
+               *q++ = enctable[v];\r
+               v = ((*p & 3) << 4) + (*(p+1) >> 4);\r
+               *q++ = enctable[v];\r
+               v = ((*(p+1) & 0xF) << 2) + (*(p+2) >> 6);\r
+               *q++ = enctable[v];\r
+               v = *(p+2) & 0x3F;\r
+               *q++ = enctable[v];\r
+\r
+               p += 3;\r
+               n -= 3;\r
+       }\r
+\r
+       if (n == 2) {\r
+               v = *p >> 2;\r
+               *q++ = enctable[v];\r
+               v = ((*p & 3) << 4) + (*(p+1) >> 4);\r
+               *q++ = enctable[v];\r
+               v = ((*(p+1) & 0x0F) << 2);\r
+               *q++ = enctable[v];\r
+               *q++ = '=';\r
+       } else if (n == 1) {\r
+               v = *p >> 2;\r
+               *q++ = enctable[v];\r
+               v = (*p & 3) << 4;\r
+               *q++ = enctable[v];\r
+               *q++ = '=';\r
+               *q++ = '=';\r
+       }\r
+       *q = '\0';\r
+       return (char*)pOutBuf;\r
+}\r
+\r
+\r
+LPBYTE Base64Decode(const char *pM64str, LPDWORD pDataSize)\r
+{\r
+       DWORD nPrevSize = strlen(pM64str);\r
+       LPBYTE pDecData = new BYTE[nPrevSize];\r
+\r
+       if (pDecData == NULL || nPrevSize % 4 != 0) return NULL;\r
+\r
+       const char *p = pM64str;\r
+       LPBYTE q = pDecData;\r
+       BYTE b1, b2, b3;\r
+\r
+       unsigned char c1, c2, c3, c4;\r
+\r
+       while(*p) {\r
+               c1 = dec64(*p++);\r
+               c2 = dec64(*p++);\r
+               c3 = dec64(*p++);\r
+               c4 = dec64(*p++);\r
+\r
+               b1 = (c1 << 2) | ((c2 & 0x30) >> 4);\r
+               *q++ = b1;\r
+\r
+               if (c3 != 64) {\r
+                       b2 = ((c2 & 0xF) << 4) | ((c3 & 0x3c) >> 2);\r
+                       *q++ = b2;\r
+               }\r
+\r
+               if (c3 != 64 && c4 != 64) {\r
+                       b3 = ((c3 & 0x3) << 6) | c4;\r
+                       *q++ = b3;\r
+               }\r
+       }\r
+       *pDataSize = q - pDecData;\r
+       return pDecData;\r
+}\r
+\r
+////////////////////////////////////////////////////////////////////\r
+// \83t\83@\83C\83\8b\96¼\82Æ\82µ\82Ä\8eg\97p\82Å\82«\82È\82¢\95\8e\9a\82ð\94²\82¢\82½\8c`\82Å\95\8e\9a\97ñ\82ð\83R\83s\81[\r
+////////////////////////////////////////////////////////////////////\r
+\r
+// \83w\83b\83h\83\89\83C\83\93\8f\9c\8aO\95\8e\9a\97ñ\r
+#define SKIPCHAR TEXT("\\/:,;*?<>\"\t")\r
+\r
+void DropInvalidFileChar(LPTSTR pDst, LPCTSTR pSrc)\r
+{\r
+       LPTSTR q = pDst;\r
+       LPCTSTR p = pSrc;\r
+\r
+       // \83t\83@\83C\83\8b\96¼\82Æ\82µ\82Ä\8eg\97p\82Å\82«\82È\82¢\95\8e\9a\82ð\83X\83L\83b\83v\82µ\82Ä\83w\83b\83h\83\89\83C\83\93\82ð\83R\83s\81[\r
+       while(*p) {\r
+#ifndef _WIN32_WCE\r
+               if (IsDBCSLeadByte(*p)) {\r
+                       *q++ = *p++;\r
+                       *q++ = *p++;\r
+                       continue;\r
+               }\r
+#endif\r
+               if (_tcschr(SKIPCHAR, *p) != NULL) {\r
+                       p++;\r
+                       continue;\r
+               }\r
+               *q++ = *p++;\r
+       }\r
+       *q = TEXT('\0');\r
+}\r
+\r
+////////////////////////////////////////////////////////////////////\r
+// find next '\\'\r
+////////////////////////////////////////////////////////////////////\r
+\r
+LPCTSTR GetNextDirSeparator(LPCTSTR pStart)\r
+{\r
+       LPCTSTR p = pStart;\r
+       while(*p) {\r
+#if defined(PLATFORM_WIN32)\r
+               if (IsDBCSLeadByte((BYTE)*p)) {\r
+                       p++;\r
+                       if (*p) p++;\r
+                       continue;\r
+               }\r
+#endif\r
+               if (*p == TEXT('\\')) return p;\r
+               p++;\r
+       }\r
+       return NULL;\r
+}\r
+\r
+////////////////////////////////////////////////////////////////////\r
+// Get file path\r
+////////////////////////////////////////////////////////////////////\r
+\r
+void GetFilePath(LPTSTR pFilePath, LPCTSTR pFileName)\r
+{\r
+       LPCTSTR p = pFileName;\r
+       LPCTSTR q = NULL;\r
+\r
+       // get last position of '\'\r
+       while(*p) {\r
+#ifdef PLATFORM_WIN32\r
+               if (IsDBCSLeadByte((BYTE)*p)) {\r
+                       p+= 2;\r
+                       continue;\r
+               }\r
+#endif\r
+               if (*p == TEXT('\\')) {\r
+                       q = p;\r
+               }\r
+               p++;\r
+       }\r
+       if (q == NULL) {\r
+               *pFilePath = TEXT('\0');\r
+               return;\r
+       }\r
+       _tcsncpy(pFilePath, pFileName, q - pFileName + 1);\r
+       *(pFilePath + (q - pFileName + 1)) = TEXT('\0');\r
+}\r
+\r
+////////////////////////////////////////////////////////////////////\r
+// Get file path\r
+////////////////////////////////////////////////////////////////////\r
+\r
+void WipeOutAndDelete(LPTSTR p)\r
+{\r
+       if (p == NULL) return;\r
+\r
+       LPTSTR q = p;\r
+       while (*q) {\r
+               *q++ = TEXT('\0');\r
+       }\r
+       delete [] p;\r
+}\r
+\r
+#ifdef _WIN32_WCE\r
+void WipeOutAndDelete(char *p)\r
+{\r
+       if (p == NULL) return;\r
+\r
+       char *q = p;\r
+       while (*q) {\r
+               *q++ = TEXT('\0');\r
+       }\r
+       delete [] p;\r
+}\r
+#endif\r
+\r
+/////////////////////////////////////////////\r
+// Clear file contents and delete it\r
+/////////////////////////////////////////////\r
+\r
+BOOL WipeOutAndDeleteFile(LPCTSTR pFile)\r
+{\r
+       File delf;\r
+       if (!delf.Open(pFile, GENERIC_WRITE, 0, OPEN_ALWAYS)) return FALSE;\r
+\r
+       DWORD i;\r
+       DWORD nSize = delf.FileSize() / 64 + 1;\r
+       BYTE buf[64];\r
+       for (i = 0; i < 64; i++) buf[i] = 0;\r
+\r
+       for (i = 0; i < nSize; i++) {\r
+               delf.Write(buf, 64);\r
+       }\r
+       delf.Close();\r
+       return DeleteFile(pFile);\r
+}\r
diff --git a/Src/TomboLib/Uniconv.h b/Src/TomboLib/Uniconv.h
new file mode 100644 (file)
index 0000000..4299666
--- /dev/null
@@ -0,0 +1,208 @@
+#ifndef UNICONV_H\r
+#define UNICONV_H\r
+\r
+// most of the methods are allocate buffer by new[], so use delete[] for free memoy. \r
+\r
+//////////////////////////////////\r
+// Native <-> Unicode Conversion\r
+//////////////////////////////////\r
+\r
+LPTSTR ConvSJIS2Unicode(const char *p);\r
+char *ConvUnicode2SJIS(LPCTSTR p);\r
+\r
+//////////////////////////////////\r
+// TCHAR/WCHAR version of strdup\r
+//////////////////////////////////\r
+// not use malloc but use new[].\r
+\r
+LPTSTR StringDup(LPCTSTR pStr);\r
+LPWSTR StringDupW(LPCWSTR pStr);\r
+char *StringDupA(const char *pStr);\r
+\r
+//////////////////////////////////\r
+// Length count \r
+//////////////////////////////////\r
+#ifdef _WIN32_WCE\r
+// count number of MBCS strings. return value are number of letters insted of bytes.\r
+DWORD CountMBStrings(const char *pStr, DWORD nBytes);\r
+\r
+// count number of UNICODE bytes. return value are number of bytes when pStr converts to MBCS.\r
+DWORD CountWCBytes(LPCTSTR pStr, DWORD nChar);\r
+#endif\r
+\r
+//////////////////////////////////\r
+// LPTSTR <-> LPWSTR conversion\r
+//////////////////////////////////\r
+// On CE platform, same as StringDup.\r
+// On Windows platform, MBCS <-> WBCS conversion.\r
+\r
+LPWSTR ConvTCharToWChar(LPCTSTR p);\r
+LPTSTR ConvWCharToTChar(LPCWSTR p);\r
+\r
+//////////////////////////////////\r
+// TCHAR <-> UTF-8\r
+//////////////////////////////////\r
+\r
+char *ConvTCharToUTF8(LPCTSTR p);\r
+LPTSTR ConvUTF8ToTChar(const char *p);\r
+\r
+//////////////////////////////////\r
+// UTF-8 <--> UCS2\r
+//////////////////////////////////\r
+\r
+LPWSTR ConvUTF8ToUCS2(const char *pUTFData);\r
+char *ConvUCS2ToUTF8(LPCWSTR pStr);\r
+\r
+DWORD ConvUTF8PosToUCSPos(const char *pUTF, DWORD nUTFPos);\r
+DWORD ConvUCSPosToUTF8Pos(const char *pUTF, DWORD nUCSPos);\r
+\r
+char *EscapeXMLStr(LPCTSTR pStr);\r
+\r
+//////////////////////////////////\r
+// JIS -> SJIS\r
+//////////////////////////////////\r
+// pOut\82Í\8dÅ\92á\82Å\82àpIn\82Æ\93¯\82\91å\82«\82³\82ð\8e\9d\82Â\95K\97v\82ª\82 \82é\81B\r
+\r
+void ConvJIS2SJIS(const char *pIn, char *pOut);\r
+\r
+//////////////////////////////////\r
+// SJIS->JIS\r
+//////////////////////////////////\r
+// \97Ì\88æ\82Í\93®\93I\82É\8am\95Û\82³\82ê\82é\82½\82ß\81A\95s\97v\82É\82È\82Á\82½\8e\9e\93_\82Å delete[] \82·\82é\95K\97v\82ª\82 \82é\81B\r
+\r
+char *ConvSJIS2JIS(char *pStr);\r
+\r
+//////////////////////////////////\r
+// \8a¿\8e\9a\95\8e\9a\97ñ\82Ìstrncp\r
+//////////////////////////////////\r
+// nLen\82ª\8a¿\8e\9a\82Ì2\83o\83C\83g\96Ú\82ð\90Ø\82é\8fê\8d\87\81A1\83o\83C\83g\96Ú\82à\83R\83s\81[\82µ\82È\82¢\81B\r
+// \82»\82Ì\82½\82ß\81ASJIS\82Ì\95\8e\9a\97ñ\82Æ\82µ\82Ä\8fí\82É\97L\8cø\82È\95\8e\9a\97ñ\82Æ\82È\82é\81B\r
+\r
+void CopyKanjiString(LPTSTR pDst, LPCTSTR pSrc, DWORD nLen);\r
+\r
+\r
+//////////////////////////////////\r
+// BASE64 Encode\r
+//////////////////////////////////\r
+//\r
+// This encoder \r
+\r
+char *Base64Encode(const LPBYTE pBinary, DWORD nSrcLen);\r
+LPBYTE Base64Decode(const char *pM64str, LPDWORD pDataSize);\r
+\r
+\r
+#ifdef COMMENT\r
+//////////////////////////////////\r
+// BASE64 Decode\r
+//////////////////////////////////\r
+\r
+BOOL MimeDec(char *pDst, const char *pSrc);\r
+\r
+//////////////////////////////////////////////////\r
+// BASE64 Encode\r
+//////////////////////////////////////////////////\r
+\r
+// \8ae\83G\83\93\83R\81[\83h\92P\88Ê\82Í75\95\8e\9a\82É\90§\8cÀ\82³\82ê\82é\82½\82ß\81A\83G\83\93\83R\81[\83h\8cã\82Ì\95\8e\9a\97ñ\82Í\95¡\90\94\8ds\82É\93n\82é\89Â\94\\90«\82ª\82 \82é\81B\r
+// \82±\82ê\82ð\8eó\82¯\82Ä\81A\83G\83\93\83R\81[\83h\8c\8b\89Ê\82Í\95\8e\9a\97ñ\82Ì\83\8a\83X\83g\82Æ\82µ\82Ä\8eÀ\8c»\82µ\82Ä\82¢\82é\81B\r
+// \82»\82Ì\82½\82ß\81A\97Ì\88æ\8aÇ\97\9d\8fã\81A\83G\83\93\83R\81[\83_\82Í\83N\83\89\83X\82Æ\82µ\82Ä\8eÀ\91\95\82·\82é\81B\r
+\r
+// \8am\95Û\82µ\82½\97Ì\88æ\82ÍBase64Encoder\82ª\8aÇ\97\9d\82·\82é\82½\82ß\81A\8aJ\95ú\82Ì\95K\97v\82Í\82È\82¢\81B\r
+// \r
+// \83G\83\93\83R\81[\83h\82Í\8d¡\82Ì\82Æ\82±\82ëISO-2022-JP(JIS)\82Ì\82Ý\81B\91¼\82Ì\83R\81[\83h\83Z\83b\83g\82É\82Â\82¢\82Ä\82Í\82í\82©\82ç\82È\82¢\82Ì\82Å(^^;\8dl\97\82µ\82Ä\82¢\82È\82¢\81B\r
+// 2byte\95\8e\9a\82Å\82 \82ê\82Î\81A\91½\8f­\82Ì\8fC\90³\82Å\89½\82Æ\82©\82È\82é\82Æ\82Í\8ev\82¤\82Ì\82¾\82ª\81c\r
+\r
+// \82Ü\82½\81ABase64Encoder\82É\90H\82í\82¹\82½\95\8e\9a\97ñ\82ÍASCII\82Å\82 \82Á\82Ä\82à\83G\83\93\83R\81[\83h\82·\82é\81B\r
+// \83G\83\93\83R\81[\83h\82µ\82½\95\8e\9a\97ñ\82ª\91S\95\94ASCII\82Å\82 \82Á\82Ä\82à\83R\81[\83h\83Z\83b\83g\82Í2022-JP\82Æ\82È\82é\81B(\82¿\82å\82Á\82Æ\82¾\82³\82¢)\r
+\r
+// \83G\83\93\83R\81[\83h\82·\82é\82½\82ß\82É\82Í\81ABase64Encoder::Encode()\82ð\8cÄ\82Ô\81B\r
+// \83G\83\93\83R\81[\83h\82³\82ê\82½\95\8e\9a\97ñ\82ð\8eæ\93¾\82·\82é\8dÛ\82É\82Í\81A Base64Encoder::Item *p;\82ð\90é\8c¾\82µ\82Ä\82¨\82¢\82Ä\81A\r
+// p->Next()\82Å\83\8b\81[\83v\82³\82¹\82é\81B\8eÀ\8dÛ\82Ì\8ds\8fî\95ñ\82Íp->Value()\82Å\8eæ\93¾\82Å\82«\82é\81B\r
+\r
+class Base64Encoder{\r
+public:\r
+       class Item {\r
+               char *pLine;\r
+               Item *pNext;\r
+\r
+               friend class Base64Encoder;\r
+       public:\r
+               Item *Next() { return (pNext && *(pNext->pLine) == 0) ? NULL : pNext; }\r
+               const char *Line() { return pLine;}\r
+       };\r
+\r
+protected:\r
+\r
+       Item *head, *tail;\r
+\r
+       char *AllocLine();\r
+\r
+       // pStr\82ð\83G\83\93\83R\81[\83h\82µ\82ÄpBuf\82É\8ai\94[\81B\r
+       // pSize\82Í\8cÄ\82Ñ\8fo\82µ\8e\9e\82ÍpBuf\82Ì\83T\83C\83Y\81B\96ß\82è\8e\9e\82É\82Í\96¢\8eg\97p\97Ì\88æ\82Ì\88Ê\92u\r
+       BOOL EncodeBuf(char *pBuf, DWORD *pSize, char *pStr);\r
+\r
+       DWORD GetToken(char *p, BOOL *pKanji, DWORD *pType);\r
+\r
+       // pStr\82ðpLine\82Ö\83G\83\93\83R\81[\83h\82·\82é\81B\r
+       // \93ü\82è\82«\82ç\82È\82©\82Á\82½\8fê\8d\87\81\96ß\82è\92l\82Æ\82µ\82Ä\83G\83\93\83R\81[\83h\96¢\97¹\97Ì\88æ\82Ì\90æ\93ª\82ð\95Ô\82·\81B\r
+       char *EncodeLine(char *pStr, char *pLine, BOOL *pKanji);\r
+\r
+public:\r
+\r
+       Base64Encoder() : head(NULL), tail(NULL) {}\r
+       ~Base64Encoder();\r
+\r
+       BOOL Encode(char *str);\r
+\r
+       Item *First() { return head; }\r
+};\r
+#endif\r
+\r
+//////////////////////////////////\r
+// \95\8e\9a\8eí\94»\95Ê\97p\83}\83N\83\8d\r
+//////////////////////////////////\r
+\r
+#if defined(TOMBO_LANG_ENGLISH)\r
+#define iskanji(c) (0)\r
+#define iskanji2(c) (0)\r
+#else\r
+#define iskanji(c) (((unsigned char)c) >= 0x81 && ((unsigned char)c) <= 0x9F || ((unsigned char)c)>=0xE0 && ((unsigned char)c) <= 0xFC)\r
+#define iskanji2(c) (((unsigned char)c) >= 0x40 && ((unsigned char)c) <= 0xFC && ((unsigned char)c) != 0x7F)\r
+#endif\r
+\r
+//////////////////////////////////\r
+// helper functions\r
+//////////////////////////////////\r
+\r
+// remove '\' \r
+// ex. aa\xx\ -> aa\xx\r
+void ChopFileSeparator(LPTSTR pBuf);\r
+\r
+void TrimRight(LPTSTR pBuf);\r
+\r
+// Eliminate letters "\\/:,;*?<>\"\t" from pSrc.\r
+// pDst has at least same size of pSrc\r
+void DropInvalidFileChar(LPTSTR pDst, LPCTSTR pSrc);\r
+\r
+LPCTSTR GetNextDirSeparator(LPCTSTR pStart);\r
+\r
+// chop file name and leave path.\r
+// ex. C:\foo\bar\baz.txt -> C:\foo\bar\ \r
+void GetFilePath(LPTSTR pPath, LPCTSTR pFullPath);\r
+\r
+//////////////////////////////////\r
+// Release buffer\r
+\r
+// These function clear buffer to zero before release memory.\r
+\r
+void WipeOutAndDelete(LPTSTR pMemo);\r
+#ifdef _WIN32_WCE\r
+void WipeOutAndDelete(char *pMemo);\r
+#endif\r
+\r
+//////////////////////////////////\r
+// Delete file\r
+// before deleting, write contents to zero.\r
+\r
+BOOL WipeOutAndDeleteFile(LPCTSTR pFile);\r
+\r
+#endif\r
diff --git a/Src/TomboLib/VarBuffer.cpp b/Src/TomboLib/VarBuffer.cpp
new file mode 100644 (file)
index 0000000..c2d7a55
--- /dev/null
@@ -0,0 +1,97 @@
+#include <windows.h>\r
+#include "VarBuffer.h"\r
+\r
+/////////////////////////////////////////////////////////////////////////////\r
+// ctor, dtor & Initializer\r
+/////////////////////////////////////////////////////////////////////////////\r
+\r
+VarBufferImpl::~VarBufferImpl()\r
+{\r
+       if (pBuf) {\r
+               LocalFree(pBuf);\r
+       }\r
+}\r
+\r
+BOOL VarBufferImpl::Init(DWORD ni, DWORD delta)\r
+{\r
+       pBuf = (LPBYTE)LocalAlloc(LMEM_FIXED, ni);\r
+       if (pBuf == NULL) return FALSE;\r
+\r
+       nMax = nInitBytes = ni;\r
+       nDeltaBytes = delta;\r
+\r
+       nCurrentUse = 0;\r
+\r
+       return TRUE;\r
+}\r
+\r
+/////////////////////////////////////////////////////////////////////////////\r
+// Append area\r
+/////////////////////////////////////////////////////////////////////////////\r
+\r
+BOOL VarBufferImpl::Add(LPBYTE pData, DWORD nBytes, LPDWORD pOffset)\r
+{\r
+       if (nCurrentUse + nBytes >= nMax) {\r
+               // ReAllocate extra memory\r
+               DWORD nNumAdd = (((nBytes - (nMax - nCurrentUse)) / nDeltaBytes)  + 1) * nDeltaBytes;\r
+               pBuf = (LPBYTE)LocalReAlloc(pBuf, nMax + nNumAdd, LMEM_MOVEABLE);\r
+               if (pBuf == NULL) return FALSE;\r
+\r
+               nMax += nNumAdd;\r
+       }\r
+\r
+       memcpy(pBuf + nCurrentUse, pData, nBytes);\r
+       if (pOffset) {\r
+               *pOffset = nCurrentUse;\r
+       }\r
+       nCurrentUse += nBytes;\r
+       return TRUE;\r
+}\r
+\r
+/////////////////////////////////////////////////////////////////////////////\r
+// Extend area\r
+/////////////////////////////////////////////////////////////////////////////\r
+\r
+BOOL VarBufferImpl::Extend(DWORD nPos, DWORD nExtendBytes)\r
+{\r
+       if (nCurrentUse + nExtendBytes > nMax) {\r
+               // realloc \r
+               DWORD nDelta = (nExtendBytes / nDeltaBytes + 1) * nDeltaBytes;\r
+               LPBYTE pNewBuf;\r
+               pNewBuf = (LPBYTE)LocalReAlloc(pBuf, nMax + nDelta, LMEM_MOVEABLE);\r
+               if (pNewBuf == NULL) return FALSE;\r
+               pBuf = pNewBuf;\r
+               nMax += nDelta;\r
+       }\r
+       memmove(pBuf + nPos + nExtendBytes, pBuf + nPos, nCurrentUse - nPos);\r
+       nCurrentUse += nExtendBytes;\r
+       return TRUE;\r
+}\r
+\r
+/////////////////////////////////////////////////////////////////////////////\r
+// Shorten area\r
+/////////////////////////////////////////////////////////////////////////////\r
+\r
+BOOL VarBufferImpl::Shorten(DWORD nPos, DWORD nShortenBytes)\r
+{\r
+       memmove(pBuf + nPos, pBuf + nPos + nShortenBytes, nCurrentUse - (nPos + nShortenBytes));\r
+       nCurrentUse -= nShortenBytes;\r
+       return TRUE;\r
+}\r
+\r
+/////////////////////////////////////////////////////////////////////////////\r
+// Clear buffer\r
+/////////////////////////////////////////////////////////////////////////////\r
+// if bReAlloc is TRUE, memory area are re-allocated and size is initialized.\r
+// if FALSE, keep current area.\r
+\r
+BOOL VarBufferImpl::Clear(BOOL bReAlloc)\r
+{\r
+       if (bReAlloc) {\r
+               LocalFree(pBuf);\r
+               return Init(nInitBytes, nDeltaBytes);\r
+       } else {\r
+               nCurrentUse = 0;\r
+               return TRUE;\r
+       }\r
+}
\ No newline at end of file
diff --git a/Src/TomboLib/VarBuffer.h b/Src/TomboLib/VarBuffer.h
new file mode 100644 (file)
index 0000000..b3be59d
--- /dev/null
@@ -0,0 +1,84 @@
+#ifndef VARBUFFER_H\r
+#define VARBUFFER_H\r
+\r
+////////////////////////////////////////////////////\r
+// Variable Buffer Implimentation\r
+////////////////////////////////////////////////////\r
+// This class does not consider word alignment,\r
+// It is due to caller.\r
+\r
+class VarBufferImpl {\r
+       LPBYTE pBuf;\r
+       DWORD nInitBytes;\r
+       DWORD nDeltaBytes;\r
+       DWORD nMax;\r
+\r
+       DWORD nCurrentUse;\r
+\r
+public:\r
+       VarBufferImpl() : pBuf(NULL), nInitBytes(0), nDeltaBytes(0), nCurrentUse(0), nMax(0) {}\r
+       ~VarBufferImpl();\r
+\r
+       BOOL Init(DWORD nInitBytes, DWORD nDeltaBytes);\r
+\r
+       BOOL Add(LPBYTE pData, DWORD nBytes, LPDWORD pOffset);\r
+       BOOL Extend(DWORD nPos, DWORD nExtendBytes);\r
+       BOOL Shorten(DWORD nPos, DWORD nShortenBytes);\r
+\r
+       LPBYTE GetBuffer() { return pBuf; }\r
+       LPBYTE Get(DWORD nOffset) { return pBuf + nOffset; }\r
+       DWORD CurrentUse() { return nCurrentUse; }\r
+\r
+       BOOL Clear(BOOL bReAlloc);\r
+\r
+       friend class VarBufferTest;\r
+};\r
+\r
+////////////////////////////////////////////////////\r
+// String buffer(for SBCS)\r
+////////////////////////////////////////////////////\r
+\r
+class StringBufferA : public VarBufferImpl {\r
+public:\r
+       // BOOL Init(DWORD nInitBytes, DWORD nDeltaBytes); //inherit from VarBufferImpl\r
+       BOOL Add(const char *pData, DWORD nBytes, LPDWORD pOffset) { return VarBufferImpl::Add((LPBYTE)pData, nBytes, pOffset); }\r
+       const char *GetBuffer() { return (const char*)VarBufferImpl::GetBuffer(); }\r
+       const char *Get(DWORD nOffset) { return (const char*)VarBufferImpl::Get(nOffset); }\r
+};\r
+\r
+////////////////////////////////////////////////////\r
+// String buffer(for MBCS)\r
+////////////////////////////////////////////////////\r
+\r
+class StringBufferT : public VarBufferImpl {\r
+public:\r
+       // BOOL Init(DWORD nInitBytes, DWORD nDeltaBytes); //inherit from VarBufferImpl\r
+       BOOL Add(LPCTSTR pData, DWORD nLetters, LPDWORD pOffset) { return VarBufferImpl::Add((LPBYTE)pData, nLetters * sizeof(TCHAR), pOffset); }\r
+       LPCTSTR GetBuffer() { return (LPCTSTR)VarBufferImpl::GetBuffer(); }\r
+       LPCTSTR Get(DWORD nOffset) { return (LPCTSTR)VarBufferImpl::Get(nOffset); }\r
+};\r
+\r
+////////////////////////////////////////////////////\r
+// Vector\r
+////////////////////////////////////////////////////\r
+\r
+template <class T>\r
+class TVector : VarBufferImpl {\r
+public:\r
+       TVector() : VarBufferImpl() {}\r
+       ~TVector() {}\r
+       BOOL Init(DWORD nNumInit, DWORD nNumDelta) { return VarBufferImpl::Init(nNumInit * sizeof(T), nNumDelta * sizeof(T)); }\r
+       BOOL Add(T* pUnit) { return VarBufferImpl::Add((LPBYTE)pUnit, sizeof(T), NULL); }\r
+       T* GetBuf() { return (T*)VarBufferImpl::GetBuffer(); }\r
+       T* GetUnit(DWORD n) { return (T*)VarBufferImpl::Get(n * sizeof(T)); }\r
+       DWORD NumItems() { return CurrentUse() / sizeof(T); }\r
+\r
+       BOOL Extend(DWORD nIndex, DWORD nExtendItems) { return VarBufferImpl::Extend(nIndex * sizeof(T), nExtendItems * sizeof(T)); }\r
+       BOOL Shorten(DWORD nIndex, DWORD nShortenItems) { return VarBufferImpl::Shorten(nIndex * sizeof(T), nShortenItems * sizeof(T)); }\r
+\r
+       BOOL Clear(BOOL bReAlloc) { return VarBufferImpl::Clear(bReAlloc); }\r
+\r
+};\r
+\r
+\r
+#endif\r
diff --git a/Src/TomboPropertyTab.cpp b/Src/TomboPropertyTab.cpp
new file mode 100644 (file)
index 0000000..03af48c
--- /dev/null
@@ -0,0 +1,1040 @@
+#include <windows.h>\r
+#include <tchar.h>\r
+\r
+#include "Tombo.h"\r
+#include "resource.h"\r
+#include "Message.h"\r
+#include "Property.h"\r
+#include "UniConv.h"\r
+#include "TString.h"\r
+#include "DialogTemplate.h"\r
+#include "PropertyPage.h"\r
+#include "TomboPropertyTab.h"\r
+#include "FileSelector.h"\r
+\r
+//////////////////////////////////////////\r
+// defs\r
+//////////////////////////////////////////\r
+\r
+#define MEMO_TOP_DIR_NUM_HISTORY 8\r
+#define FONTSIZE_MIN 6\r
+#define FONTSIZE_MAX 32\r
+#define DEFAULT_FONTNAME TEXT("Tahoma")\r
+#define DEFAULT_FONTSIZE 9\r
+#define CLEARTYPE_QUALITY 5\r
+\r
+#define SIP_DELTA 16\r
+\r
+static BOOL CreateDirectories(LPCTSTR pDir);\r
+\r
+static void SetCheckBox(HWND hWnd, BOOL bChecked)\r
+{\r
+       if (bChecked) {\r
+               SendMessage(hWnd, BM_SETCHECK, BST_CHECKED, 0);\r
+       } else {\r
+               SendMessage(hWnd, BM_SETCHECK, BST_UNCHECKED, 0);\r
+       }\r
+}\r
+\r
+static BOOL GetCheckBox(HWND hWnd)\r
+{\r
+       if (SendMessage(hWnd, BM_GETCHECK, 0, 0) == BST_CHECKED) {\r
+               return TRUE;\r
+       } else {\r
+               return FALSE;\r
+       }\r
+}\r
+\r
+//////////////////////////////////////////\r
+// TomboRoot setting tab\r
+//////////////////////////////////////////\r
+\r
+static DlgMsgRes aFolderRes[] = {\r
+       { IDC_PROPTAB_FOLDER_LABEL, MSG_ID_DLG_PROPTAB_FOLDER_LABEL },\r
+       { IDC_PROPTAB_FOLDER_HELP1, MSG_ID_DLG_PROPTAB_FOLDER_HELP1 },\r
+       { IDC_KEEPTITLE,            MSG_ID_DLG_PROPTAB_FOLDER_SYNCTITLE },\r
+       { IDC_PROPTAB_FOLDER_HELP2, MSG_ID_DLG_PROPTAB_FOLDER_HELP2 },\r
+       { IDC_PROP_READONLY,        MSG_ID_DLG_PROPTAB_FOLDER_READONLY },\r
+};\r
+\r
+void FolderTab::Init(HWND hDlg)\r
+{\r
+       OverrideDlgMsg(hDlg, -1, aFolderRes, sizeof(aFolderRes)/sizeof(DlgMsgRes));\r
+\r
+       HWND hFolder = GetDlgItem(hDlg, IDC_TOPFOLDER);\r
+       LPCTSTR pHist = g_Property.GetTopDirHist();\r
+       SetHistoryToComboBox(hFolder, pHist);\r
+       if (GetWindowTextLength(hFolder) == 0) {\r
+               if (pProperty->GetTopDir()) {\r
+                       SetWindowText(hFolder, pProperty->GetTopDir());\r
+               }\r
+       }\r
+\r
+       HWND hKeepTitle = GetDlgItem(hDlg, IDC_KEEPTITLE);\r
+       if (pProperty->GetKeepTitle()) {\r
+               SendMessage(hKeepTitle, BM_SETCHECK, BST_UNCHECKED, 0);\r
+       } else {\r
+               SendMessage(hKeepTitle, BM_SETCHECK, BST_CHECKED, 0);\r
+       }\r
+\r
+       HWND hOpenReadOnly = GetDlgItem(hDlg, IDC_PROP_READONLY);\r
+       if (pProperty->GetOpenReadOnly()) {\r
+               SendMessage(hOpenReadOnly, BM_SETCHECK, BST_CHECKED, 0);\r
+       } else {\r
+               SendMessage(hOpenReadOnly, BM_SETCHECK, BST_UNCHECKED, 0);\r
+       }\r
+}\r
+\r
+BOOL FolderTab::Apply(HWND hDlg)\r
+{\r
+       HWND hKeepTitle = GetDlgItem(hDlg, IDC_KEEPTITLE);\r
+       if (SendMessage(hKeepTitle, BM_GETCHECK, 0, 0) == BST_CHECKED) {\r
+               pProperty->SetKeepTitle(FALSE);\r
+       } else {\r
+               pProperty->SetKeepTitle(TRUE);\r
+       }\r
+\r
+       TCHAR aTopPath[MAX_PATH];\r
+       HWND hTopPath = GetDlgItem(hDlg, IDC_TOPFOLDER);\r
+       GetWindowText(hTopPath, aTopPath, MAX_PATH);\r
+\r
+       // \8bó\94\92\82Ì\8f\9c\8b\8e\r
+       LPTSTR p = aTopPath;\r
+       while(*p == TEXT(' ') || *p == TEXT('\t')) p++;\r
+       if (_tcslen(p) == 0) {\r
+               SetFocus(hTopPath);\r
+               SendMessage(hTopPath, EM_SETSEL, 0, -1);\r
+               return FALSE;\r
+       }\r
+\r
+#if defined(PLATFORM_WIN32)\r
+       if (_tcslen(p) == 3 && _istalpha(p[0]) && p[1] == TEXT(':') && p[2] == TEXT('\\')) {\r
+               return pProperty->SetTopDir(p);\r
+       } else if (_tcslen(p) == 2 && _istalpha(p[0]) && p[1] == TEXT(':')) {\r
+               p[2] = TEXT('\\');\r
+               p[3] = TEXT('\0');\r
+               return pProperty->SetTopDir(p);\r
+       } else {\r
+               ChopFileSeparator(p);\r
+       }\r
+#endif\r
+#if defined(_WIN32_WCE)\r
+       if (_tcscmp(p, TEXT("\\")) == 0) {\r
+               MessageBox(hDlg, MSG_ROOT_NOT_ALLOWED, TOMBO_APP_NAME, MB_ICONERROR | MB_OK);\r
+               SetFocus(hTopPath);\r
+               return FALSE;\r
+       }\r
+       ChopFileSeparator(p);\r
+#endif\r
+       // \83t\83H\83\8b\83_\82Ì\91\8dÝ\83`\83F\83b\83N\r
+       WIN32_FIND_DATA fd;\r
+       HANDLE h = FindFirstFile(p, &fd);\r
+       if (h == INVALID_HANDLE_VALUE) {\r
+               // \91\8dÝ\82¹\82¸\r
+               if (MessageBox(hDlg, MSG_IS_CREATE_DIR, MSG_CREATE_DIR_TTL, MB_ICONQUESTION | MB_OKCANCEL) == IDOK) {\r
+                       if (!CreateDirectories(p)) {\r
+                               MessageBox(hDlg, MSG_MKDIR_FAILED, TEXT("ERROR"), MB_ICONSTOP | MB_OK);\r
+                               SetFocus(hTopPath);\r
+                               SendMessage(hTopPath, EM_SETSEL, 0, -1);\r
+                               return FALSE;\r
+                       }\r
+               } else {\r
+                       SetFocus(hTopPath);\r
+                       SendMessage(hTopPath, EM_SETSEL, 0, -1);\r
+                       return FALSE;\r
+               }\r
+       } else {\r
+               if (fd.dwFileAttributes & FILE_ATTRIBUTE_DIRECTORY == 0) {\r
+                       // \83f\83B\83\8c\83N\83g\83\8a\82Å\82Í\82È\82¢\r
+                       SetFocus(hTopPath);\r
+                       SendMessage(hTopPath, EM_SETSEL, 0, -1);\r
+                       return FALSE;\r
+               }\r
+               FindClose(h);\r
+       }\r
+\r
+       // Save history\r
+       g_Property.SetTopDirHist(GetHistoryFromComboBox(hTopPath, p, MEMO_TOP_DIR_NUM_HISTORY));\r
+\r
+       HWND hReadOnly = GetDlgItem(hDlg, IDC_PROP_READONLY);\r
+       if (SendMessage(hReadOnly, BM_GETCHECK, 0, 0) == BST_CHECKED) {\r
+               pProperty->SetOpenReadOnly(TRUE);\r
+       } else {\r
+               pProperty->SetOpenReadOnly(FALSE);\r
+       }\r
+\r
+       return pProperty->SetTopDir(p);\r
+}\r
+\r
+BOOL FolderTab::OnCommand(HWND hDlg, WPARAM wParam, LPARAM lParam)\r
+{\r
+       switch(LOWORD(wParam)) {\r
+       case IDC_FOLDERSEL:\r
+               {\r
+                       FileSelector sel;\r
+                       if (sel.Popup(g_hInstance, hDlg, MSG_CHOOSE_FOLDER, NULL) == IDOK) {\r
+                               HWND hEdit = GetDlgItem(hDlg, IDC_TOPFOLDER);\r
+                               SetWindowText(hEdit, sel.SelectedPath());\r
+                       }\r
+               }\r
+               break;\r
+       }\r
+       return TRUE;\r
+}\r
+\r
+//////////////////////////////////////////\r
+// Password timeout setting tab\r
+//////////////////////////////////////////\r
+\r
+static DlgMsgRes aPassTimeout[] = {\r
+       { IDC_PROPTAB_PASS_TIMEOUT_LABEL,MSG_ID_DLG_PROPTAB_PASSTO_LABEL },\r
+       { IDC_PROPTAB_PASS_TIMEOUT_HELP, MSG_ID_DLG_PROPTAB_PASSTO_HELP },\r
+       { IDC_PASS_TIMEOUT_USE_SAFEFILE, MSG_ID_DLG_PROPTAB_TIMEOUT_USE_SAFENAME},\r
+       { IDC_PROPTAB_PASS_TIMEOUT_SAFEFILE_HELP, MSG_ID_DLG_PROPTAB_TIMEOUT_USE_SAFENAME_HELP},\r
+};\r
+\r
+void PassTimeoutTab::Init(HWND hDlg)\r
+{\r
+       OverrideDlgMsg(hDlg, -1, aPassTimeout, sizeof(aPassTimeout)/sizeof(DlgMsgRes));\r
+       HWND hTimeout = GetDlgItem(hDlg, IDC_PASS_TIMEOUT);\r
+       TCHAR buf[64];\r
+       wsprintf(buf, TEXT("%d"), pProperty->GetPassTimeout());\r
+       SetWindowText(hTimeout, buf);\r
+\r
+       HWND hSafeFileName = GetDlgItem(hDlg, IDC_PASS_TIMEOUT_USE_SAFEFILE);\r
+       if (pProperty->GetUseSafeFileName()) {\r
+               SendMessage(hSafeFileName, BM_SETCHECK, BST_CHECKED, 0);\r
+       } else {\r
+               SendMessage(hSafeFileName, BM_SETCHECK, BST_UNCHECKED, 0);\r
+       }\r
+}\r
+\r
+BOOL PassTimeoutTab::Apply(HWND hDlg)\r
+{\r
+       HWND hTimeout = GetDlgItem(hDlg, IDC_PASS_TIMEOUT);\r
+       TCHAR buf[64];\r
+       DWORD n;\r
+\r
+       GetWindowText(hTimeout, buf, 64);\r
+\r
+       n = _ttol(buf);\r
+       if (n < 1 || n > 60) {\r
+               SetFocus(hTimeout);\r
+               return FALSE;\r
+       }\r
+       pProperty->SetPassTimeout(n);\r
+\r
+       HWND hSafeFileName = GetDlgItem(hDlg, IDC_PASS_TIMEOUT_USE_SAFEFILE);\r
+       if (SendMessage(hSafeFileName, BM_GETCHECK, 0, 0) == BST_CHECKED) {\r
+               pProperty->SetUseSafeFileName(TRUE);\r
+       } else {\r
+               pProperty->SetUseSafeFileName(FALSE);\r
+       }\r
+       return TRUE;\r
+}\r
+\r
+//////////////////////////////////////////\r
+// Font setting tab\r
+//////////////////////////////////////////\r
+\r
+extern "C" static int CALLBACK PropEnumFonts(ENUMLOGFONT FAR *pFont, NEWTEXTMETRIC FAR *pMetric, int iFontType, LPARAM lParam);\r
+\r
+static void SetFontName(HDC hDC, HWND hFontName, LPCTSTR pDefaultFontName)\r
+{\r
+       EnumFontFamilies(hDC, NULL, (FONTENUMPROC)PropEnumFonts, (LPARAM)hFontName);\r
+       DWORD n = SendMessage(hFontName, CB_FINDSTRINGEXACT, -1, (LPARAM)pDefaultFontName);\r
+       if (n != CB_ERR) {\r
+               SendMessage(hFontName, CB_SETCURSEL, n, 0);\r
+       } else {\r
+               SendMessage(hFontName, CB_SETCURSEL, 0, 0);\r
+       }\r
+}\r
+\r
+static void SetFontSize(HWND hFontSize, DWORD nDefaultSize)\r
+{\r
+       TCHAR buf[32];\r
+       BOOL bSet = FALSE;\r
+\r
+       for (DWORD i = FONTSIZE_MIN; i <= FONTSIZE_MAX; i++) {\r
+               wsprintf(buf, TEXT("%d"), i);\r
+               SendMessage(hFontSize, CB_ADDSTRING, 0, (LPARAM)buf);\r
+               if (i == nDefaultSize) {\r
+                       bSet = TRUE;\r
+                       SendMessage(hFontSize, CB_SETCURSEL, i - FONTSIZE_MIN, 0);\r
+               }\r
+       }\r
+       if (!bSet) {\r
+               wsprintf(buf, TEXT("%d"), nDefaultSize);\r
+               SendMessage(hFontSize, CB_INSERTSTRING, 0, (LPARAM)buf);\r
+               SendMessage(hFontSize, CB_SETCURSEL, 0, 0);\r
+       }\r
+}\r
+\r
+static void InitFontControls(HDC hDC, HWND hName, HWND hSize, HWND hDefault, HWND hCT, LPCTSTR pPropName, DWORD nPropSize, BYTE bQuality)\r
+{\r
+       LPCTSTR pFont;\r
+       DWORD nSize;\r
+\r
+       if (nPropSize == 0xFFFFFFFF) {\r
+               pFont = DEFAULT_FONTNAME;\r
+               nSize = DEFAULT_FONTSIZE;\r
+               SendMessage(hDefault, BM_SETCHECK, BST_CHECKED, 0);\r
+               EnableWindow(hName, FALSE);\r
+               EnableWindow(hSize, FALSE);\r
+               EnableWindow(hCT, FALSE);\r
+       } else {\r
+               SendMessage(hDefault, BM_SETCHECK, BST_UNCHECKED, 0);\r
+               EnableWindow(hName, TRUE);\r
+               EnableWindow(hSize, TRUE);\r
+               EnableWindow(hCT, TRUE);\r
+               pFont = pPropName;\r
+               nSize = nPropSize;\r
+       }\r
+       SetFontName(hDC, hName, pFont);\r
+       SetFontSize(hSize, nSize);\r
+\r
+       if (bQuality == DEFAULT_QUALITY) {\r
+               SendMessage(hCT, BM_SETCHECK, BST_UNCHECKED, 0);\r
+       } else {\r
+               SendMessage(hCT, BM_SETCHECK, BST_CHECKED, 0);\r
+       }\r
+}\r
+\r
+static DlgMsgRes aFontRes[] = {\r
+       { IDC_PROPTAB_FONT_TREE_LABEL, MSG_ID_DLG_PROPTAB_FONT_TREE_LABEL },\r
+       { IDC_FONT_SELECT_USEDEFAULT,  MSG_ID_DLG_PROPTAB_FONT_USE_DEFAULT },\r
+#if defined(PLATFORM_WIN32)\r
+       { IDC_FONT_SELECT_CLEARTYPE,   MSG_ID_DLG_PROPTAB_USE_CLEARTYPE_FONT },\r
+       { IDC_FONT_DETAILS_CLEARTYPE,  MSG_ID_DLG_PROPTAB_USE_CLEARTYPE_FONT },\r
+#else\r
+       { IDC_FONT_SELECT_CLEARTYPE,   MSG_ID_DLG_PROPTAB_USE_CLEARTYPE_FONT_CE },\r
+       { IDC_FONT_DETAILS_CLEARTYPE,  MSG_ID_DLG_PROPTAB_USE_CLEARTYPE_FONT_CE },\r
+#endif\r
+       { IDC_PROPTAB_FONT_EDIT_LABEL, MSG_ID_DLG_PROPTAB_FONT_EDIT_LABEL },\r
+       { IDC_FONT_DETAILS_USEDEFAULT, MSG_ID_DLG_PROPTAB_FONT_USE_DEFAULT },\r
+};\r
+\r
+void FontTab::Init(HWND hDlg)\r
+{\r
+       OverrideDlgMsg(hDlg, -1, aFontRes, sizeof(aFontRes)/sizeof(DlgMsgRes));\r
+\r
+       HWND hSelectUseDefault = GetDlgItem(hDlg, IDC_FONT_SELECT_USEDEFAULT);\r
+       HWND hSelectName = GetDlgItem(hDlg, IDC_FONT_SELECT_NAME);\r
+       HWND hSelectSize = GetDlgItem(hDlg, IDC_FONT_SELECT_SIZE);\r
+       HWND hSelectCT   = GetDlgItem(hDlg, IDC_FONT_SELECT_CLEARTYPE);\r
+\r
+       HWND hDetailsUseDefault = GetDlgItem(hDlg, IDC_FONT_DETAILS_USEDEFAULT);\r
+       HWND hDetailsName = GetDlgItem(hDlg, IDC_FONT_DETAILS_NAME);\r
+       HWND hDetailsSize = GetDlgItem(hDlg, IDC_FONT_DETAILS_SIZE);\r
+       HWND hDetailsCT   = GetDlgItem(hDlg, IDC_FONT_DETAILS_CLEARTYPE);\r
+\r
+       HDC hDC = GetDC(hDlg);\r
+\r
+       InitFontControls(hDC, hSelectName, hSelectSize, hSelectUseDefault, hSelectCT, pProperty->GetSelectViewFontName(), pProperty->GetSelectViewFontSize(), (BYTE)pProperty->GetSelectViewFontQuality());\r
+       InitFontControls(hDC, hDetailsName, hDetailsSize, hDetailsUseDefault, hDetailsCT, pProperty->GetDetailsViewFontName(), pProperty->GetDetailsViewFontSize(), (BYTE)pProperty->GetDetailsViewFontQuality());\r
+\r
+       ReleaseDC(hDlg, hDC);\r
+}\r
+\r
+static BOOL CheckNumberFormat(LPCTSTR pStr)\r
+{\r
+       LPCTSTR p = pStr;\r
+       while(*p) {\r
+               if (!_istdigit(*p)) return FALSE;\r
+               p++;\r
+       }\r
+       return TRUE;\r
+}\r
+\r
+static BOOL GetFontStat(HWND hName, HWND hSize, HWND hDefault, HWND hCT, LPTSTR pName, LPDWORD pSize, LPBYTE pClearType)\r
+{\r
+       DWORD nStat = SendMessage(hDefault, BM_GETCHECK, 0, 0);\r
+       if (nStat & BST_CHECKED) {\r
+               _tcscpy(pName, TEXT(""));\r
+               *pSize = 0xFFFFFFFF;\r
+       } else {\r
+               DWORD n;\r
+               n = SendMessage(hName, CB_GETCURSEL, 0, 0);\r
+               SendMessage(hName, CB_GETLBTEXT, n, (LPARAM)pName);\r
+\r
+               // get font size\r
+               TCHAR buf[256];\r
+               GetWindowText(hSize, buf, 256);\r
+               int is = _ttoi(buf);\r
+               if (!CheckNumberFormat(buf) || is <= 0) {\r
+                       MessageBox(hSize, MSG_INVALID_FONT_SIZE, TOMBO_APP_NAME, MB_ICONWARNING|MB_OK);\r
+                       return FALSE;\r
+               }\r
+               *pSize = (DWORD)is;\r
+       }\r
+\r
+       DWORD nCT = SendMessage(hCT, BM_GETCHECK, 0, 0);\r
+       if (nCT & BST_CHECKED) {\r
+               *pClearType = CLEARTYPE_QUALITY;\r
+       } else {\r
+               *pClearType = DEFAULT_QUALITY;\r
+       }\r
+       return TRUE;\r
+}\r
+\r
+BOOL FontTab::Apply(HWND hDlg)\r
+{\r
+       HWND hSelectUseDefault = GetDlgItem(hDlg, IDC_FONT_SELECT_USEDEFAULT);\r
+       HWND hSelectName = GetDlgItem(hDlg, IDC_FONT_SELECT_NAME);\r
+       HWND hSelectSize = GetDlgItem(hDlg, IDC_FONT_SELECT_SIZE);\r
+       HWND hSelectCT   = GetDlgItem(hDlg, IDC_FONT_SELECT_CLEARTYPE);\r
+\r
+       HWND hDetailsUseDefault = GetDlgItem(hDlg, IDC_FONT_DETAILS_USEDEFAULT);\r
+       HWND hDetailsName = GetDlgItem(hDlg, IDC_FONT_DETAILS_NAME);\r
+       HWND hDetailsSize = GetDlgItem(hDlg, IDC_FONT_DETAILS_SIZE);\r
+       HWND hDetailsCT   = GetDlgItem(hDlg, IDC_FONT_DETAILS_CLEARTYPE);\r
+\r
+       TCHAR fontName[LF_FACESIZE];\r
+\r
+       DWORD nFS;\r
+       BYTE nFQ;\r
+       if(!GetFontStat(hSelectName, hSelectSize, hSelectUseDefault, hSelectCT, fontName, &nFS, &nFQ)) {\r
+               return FALSE;\r
+       }\r
+       if (!pProperty->SetSelectViewFontName(fontName)) return FALSE;\r
+       pProperty->SetSelectViewFontSize(nFS);\r
+       pProperty->SetSelectViewFontQuality(nFQ);\r
+\r
+       if (!GetFontStat(hDetailsName, hDetailsSize, hDetailsUseDefault, hDetailsCT, fontName, &nFS, &nFQ)) {\r
+               return FALSE;\r
+       }\r
+       if (!pProperty->SetDetailsViewFontName(fontName)) return FALSE;\r
+       pProperty->SetDetailsViewFontSize(nFS);\r
+       pProperty->SetDetailsViewFontQuality(nFQ);\r
+       return TRUE;\r
+}\r
+\r
+static void ToggleDefault(HWND hName, HWND hSize, HWND hDefault, HWND hCT)\r
+{\r
+       if (SendMessage(hDefault, BM_GETCHECK, 0, 0) & BST_CHECKED) {\r
+               // \83f\83t\83H\83\8b\83g\83t\83H\83\93\83g\r
+               EnableWindow(hName, FALSE);\r
+               EnableWindow(hSize, FALSE);\r
+               EnableWindow(hCT, FALSE);\r
+       } else {\r
+               // \83\86\81[\83U\92è\8b`\83t\83H\83\93\83g\r
+               EnableWindow(hName, TRUE);\r
+               EnableWindow(hSize, TRUE);\r
+               EnableWindow(hCT, TRUE);\r
+       }\r
+}\r
+\r
+BOOL FontTab::OnCommand(HWND hDlg, WPARAM wParam, LPARAM lParam)\r
+{\r
+       HWND hSelectUseDefault = GetDlgItem(hDlg, IDC_FONT_SELECT_USEDEFAULT);\r
+       HWND hSelectName = GetDlgItem(hDlg, IDC_FONT_SELECT_NAME);\r
+       HWND hSelectSize = GetDlgItem(hDlg, IDC_FONT_SELECT_SIZE);\r
+       HWND hSelectCT   = GetDlgItem(hDlg, IDC_FONT_SELECT_CLEARTYPE);\r
+       HWND hDetailsUseDefault = GetDlgItem(hDlg, IDC_FONT_DETAILS_USEDEFAULT);\r
+       HWND hDetailsName = GetDlgItem(hDlg, IDC_FONT_DETAILS_NAME);\r
+       HWND hDetailsSize = GetDlgItem(hDlg, IDC_FONT_DETAILS_SIZE);\r
+       HWND hDetailsCT   = GetDlgItem(hDlg, IDC_FONT_DETAILS_CLEARTYPE);\r
+\r
+       switch (wParam) {\r
+       case IDC_FONT_SELECT_USEDEFAULT:\r
+               ToggleDefault(hSelectName, hSelectSize, hSelectUseDefault, hSelectCT);\r
+               break;\r
+       case IDC_FONT_DETAILS_USEDEFAULT:\r
+               ToggleDefault(hDetailsName, hDetailsSize, hDetailsUseDefault, hDetailsCT);\r
+               break;\r
+       }\r
+       return TRUE;\r
+}\r
+\r
+//////////////////////////////////////////\r
+// Date format\r
+//////////////////////////////////////////\r
+\r
+static DlgMsgRes aDateRes[] = {\r
+       { IDC_PROPTAB_INSDATE_DATE1, MSG_ID_DLG_PROPTAB_DATE_INSDATE1 },\r
+       { IDC_PROPTAB_INSDATE_DATE2, MSG_ID_DLG_PROPTAB_DATE_INSDATE2 },\r
+       { IDC_DATEFORMAT_DESC,       MSG_ID_DATEFORMAT_DESC },\r
+};\r
+\r
+void DateFormatTab::Init(HWND hDlg)\r
+{\r
+       OverrideDlgMsg(hDlg, -1, aDateRes, sizeof(aDateRes)/sizeof(DlgMsgRes));\r
+\r
+       HWND hFormat1 = GetDlgItem(hDlg, IDC_PROP_DATEFORMAT1);\r
+       HWND hFormat2 = GetDlgItem(hDlg, IDC_PROP_DATEFORMAT2);\r
+       HWND hDesc = GetDlgItem(hDlg, IDC_DATEFORMAT_DESC);\r
+       SetWindowText(hFormat1, pProperty->GetDateFormat1());\r
+       SetWindowText(hFormat2, pProperty->GetDateFormat2());\r
+       DWORD nTS = 4*4;\r
+       SendMessage(hDesc, EM_SETTABSTOPS, 1, (LPARAM)&nTS);\r
+//     SetWindowText(hDesc, MSG_DATEFORMAT_DESC);\r
+}\r
+\r
+BOOL DateFormatTab::Apply(HWND hDlg)\r
+{\r
+       HWND hFormat1 = GetDlgItem(hDlg, IDC_PROP_DATEFORMAT1);\r
+       HWND hFormat2 = GetDlgItem(hDlg, IDC_PROP_DATEFORMAT2);\r
+\r
+       TCHAR buf[MAX_DATEFORMAT_LEN];\r
+       GetWindowText(hFormat1, buf, MAX_DATEFORMAT_LEN - 1);\r
+       if (!pProperty->SetDateFormat1(buf)) return FALSE;\r
+       GetWindowText(hFormat2, buf, MAX_DATEFORMAT_LEN - 1);\r
+       if (!pProperty->SetDateFormat2(buf)) return FALSE;\r
+       return TRUE;\r
+}\r
+\r
+//////////////////////////////////////////\r
+// Caret setting tab\r
+//////////////////////////////////////////\r
+\r
+static DlgMsgRes aKeepCaretRes[] = {\r
+       { IDC_PROP_KEEPCARET,          MSG_ID_DLG_PROPTAB_KEEPCARET_KEEPCARET },\r
+#if !defined(PLATFORM_BE500)\r
+       { IDC_PROPTAB_KEEPCARET_HELP1, MSG_ID_DLG_PROPTAB_KEEPCARET_HELP1 },\r
+       { IDC_PROPTAB_KEEPCARET_LABEL, MSG_ID_DLG_PROPTAB_KEEPCARET_LABEL },\r
+       { IDC_PROPTAB_KEEPCARET_HELP2, MSG_ID_DLG_PROPTAB_KEEPCARET_HELP2 },\r
+#if !defined(PLATFORM_PSPC) && !defined(PLATFORM_HPC)\r
+       { IDC_PROP_SWITCHTITLE,        MSG_ID_DLG_PROPTAB_KEEPCARET_SYNCTITLE },\r
+       { IDC_PROPTAB_KEEPCARET_HELP3, MSG_ID_DLG_PROPTAB_KEEPCARET_HELP3 },\r
+#endif\r
+       { IDC_PROPTAB_DISABLESAVEDLG,  MSG_ID_DLG_PROPTAB_DISABLESAVEDLG },\r
+#endif\r
+};\r
+\r
+void KeepCaretTab::Init(HWND hDlg)\r
+{\r
+       OverrideDlgMsg(hDlg, -1, aKeepCaretRes, sizeof(aKeepCaretRes)/sizeof(DlgMsgRes));\r
+\r
+       HWND hWnd = GetDlgItem(hDlg, IDC_PROP_KEEPCARET);\r
+       if (pProperty->GetKeepCaret()) {\r
+               SendMessage(hWnd, BM_SETCHECK, BST_CHECKED, 0);\r
+       } else {\r
+               SendMessage(hWnd, BM_SETCHECK, BST_UNCHECKED, 0);\r
+       }\r
+\r
+       // tab stop\r
+       HWND hTabWnd = GetDlgItem(hDlg, IDC_PROP_TABSTOP);\r
+       TCHAR buf[30];\r
+       wsprintf(buf, TEXT("%d"), pProperty->GetTabstop());\r
+       SetWindowText(hTabWnd, buf);\r
+\r
+#if defined(PLATFORM_WIN32) || defined(PLATFORM_PKTPC) || defined(PLATFORM_WM5)\r
+       HWND hSwitchTitleWnd = GetDlgItem(hDlg, IDC_PROP_SWITCHTITLE);\r
+       if (pProperty->GetSwitchWindowTitle()) {\r
+               SendMessage(hSwitchTitleWnd, BM_SETCHECK, BST_CHECKED, 0);\r
+       } else {\r
+               SendMessage(hSwitchTitleWnd, BM_SETCHECK, BST_UNCHECKED, 0);\r
+       }\r
+#endif\r
+\r
+       HWND hDisableSaveDlg = GetDlgItem(hDlg, IDC_PROPTAB_DISABLESAVEDLG);\r
+       if (pProperty->GetDisableSaveDlg()) {\r
+               SendMessage(hDisableSaveDlg, BM_SETCHECK, BST_CHECKED, 0);\r
+       } else {\r
+               SendMessage(hDisableSaveDlg, BM_SETCHECK, BST_UNCHECKED, 0);\r
+       }\r
+\r
+}\r
+\r
+BOOL KeepCaretTab::Apply(HWND hDlg)\r
+{\r
+       HWND hWnd = GetDlgItem(hDlg, IDC_PROP_KEEPCARET);\r
+       if (SendMessage(hWnd, BM_GETCHECK, 0, 0) == BST_CHECKED) {\r
+               pProperty->SetKeepCaret(TRUE);\r
+       } else {\r
+               pProperty->SetKeepCaret(FALSE);\r
+       }\r
+\r
+       // tab stop\r
+       HWND hTabWnd = GetDlgItem(hDlg, IDC_PROP_TABSTOP);\r
+       TCHAR buf[30];\r
+       int n;\r
+       GetWindowText(hTabWnd, buf, 30);\r
+\r
+       n = _ttol(buf);\r
+       if (n < 1) {\r
+               SetFocus(hTabWnd);\r
+               return FALSE;\r
+       }\r
+       pProperty->SetTabstop(n);\r
+\r
+#if defined(PLATFORM_WIN32) || defined(PLATFORM_PKTPC) || defined(PLATFORM_WM5)\r
+       HWND hSwitchWnd = GetDlgItem(hDlg, IDC_PROP_SWITCHTITLE);\r
+       if (SendMessage(hSwitchWnd, BM_GETCHECK, 0, 0) == BST_CHECKED) {\r
+               pProperty->SetSwitchWindowTitle(TRUE);\r
+       } else {\r
+               pProperty->SetSwitchWindowTitle(FALSE);\r
+       }\r
+#endif\r
+\r
+       HWND hDisableSaveDlg = GetDlgItem(hDlg, IDC_PROPTAB_DISABLESAVEDLG);\r
+       if (SendMessage(hDisableSaveDlg, BM_GETCHECK, 0, 0) == BST_CHECKED) {\r
+               pProperty->SetDisableSaveDlg(TRUE);\r
+       } else {\r
+               pProperty->SetDisableSaveDlg(FALSE);\r
+       }\r
+\r
+       return TRUE;\r
+}\r
+\r
+//////////////////////////////////////////\r
+// Action buttons\r
+//////////////////////////////////////////\r
+\r
+#if defined(PLATFORM_PKTPC) || defined(PLATFORM_WM5)\r
+static DlgMsgRes aAppButtonRes[] = {\r
+       { IDC_PROP_APPBUTTON1,       MSG_ID_DLG_PROPTAB_APPBTN_BUTTON1 }, \r
+       { IDC_PROP_APPBUTTON2,       MSG_ID_DLG_PROPTAB_APPBTN_BUTTON2 },\r
+       { IDC_PROP_APPBUTTON3,       MSG_ID_DLG_PROPTAB_APPBTN_BUTTON3 },\r
+       { IDC_PROP_APPBUTTON4,       MSG_ID_DLG_PROPTAB_APPBTN_BUTTON4 },\r
+       { IDC_PROP_APPBUTTON5,       MSG_ID_DLG_PROPTAB_APPBTN_BUTTON5 },\r
+       { IDC_PROPTAB_APPBTN_HELP,   MSG_ID_DLG_PROPTAB_APPBTN_HELP },\r
+       { IDC_PROPTAB_DISABLEACTION, MSG_ID_DLG_PROPTAB_APPBTN_DISABLE },\r
+};\r
+\r
+void AppButtonTab::Init(HWND hDlg)\r
+{\r
+       OverrideDlgMsg(hDlg, -1, aAppButtonRes, sizeof(aAppButtonRes)/sizeof(DlgMsgRes));\r
+\r
+       HWND hAppButton1 = GetDlgItem(hDlg, IDC_PROP_APPBUTTON1);\r
+       HWND hAppButton2 = GetDlgItem(hDlg, IDC_PROP_APPBUTTON2);\r
+       HWND hAppButton3 = GetDlgItem(hDlg, IDC_PROP_APPBUTTON3);\r
+       HWND hAppButton4 = GetDlgItem(hDlg, IDC_PROP_APPBUTTON4);\r
+       HWND hAppButton5 = GetDlgItem(hDlg, IDC_PROP_APPBUTTON5);\r
+\r
+       HWND hDisableAppButton = GetDlgItem(hDlg, IDC_PROPTAB_DISABLEACTION);\r
+\r
+       if (pProperty->GetAppButton1()) {\r
+               SendMessage(hAppButton1, BM_SETCHECK, BST_CHECKED, 0);\r
+       } else {\r
+               SendMessage(hAppButton1, BM_SETCHECK, BST_UNCHECKED, 0);\r
+       }\r
+       if (pProperty->GetAppButton2()) {\r
+               SendMessage(hAppButton2, BM_SETCHECK, BST_CHECKED, 0);\r
+       } else {\r
+               SendMessage(hAppButton2, BM_SETCHECK, BST_UNCHECKED, 0);\r
+       }\r
+       if (pProperty->GetAppButton3()) {\r
+               SendMessage(hAppButton3, BM_SETCHECK, BST_CHECKED, 0);\r
+       } else {\r
+               SendMessage(hAppButton3, BM_SETCHECK, BST_UNCHECKED, 0);\r
+       }\r
+       if (pProperty->GetAppButton4()) {\r
+               SendMessage(hAppButton4, BM_SETCHECK, BST_CHECKED, 0);\r
+       } else {\r
+               SendMessage(hAppButton4, BM_SETCHECK, BST_UNCHECKED, 0);\r
+       }\r
+       if (pProperty->GetAppButton5()) {\r
+               SendMessage(hAppButton5, BM_SETCHECK, BST_CHECKED, 0);\r
+       } else {\r
+               SendMessage(hAppButton5, BM_SETCHECK, BST_UNCHECKED, 0);\r
+       }\r
+\r
+       if (pProperty->GetDisableExtraActionButton()) {\r
+               SendMessage(hDisableAppButton, BM_SETCHECK, BST_CHECKED, 0);\r
+       } else {\r
+               SendMessage(hDisableAppButton, BM_SETCHECK, BST_UNCHECKED, 0);\r
+       }\r
+}\r
+\r
+BOOL AppButtonTab::Apply(HWND hDlg)\r
+{\r
+       HWND hAppButton1 = GetDlgItem(hDlg, IDC_PROP_APPBUTTON1);\r
+       HWND hAppButton2 = GetDlgItem(hDlg, IDC_PROP_APPBUTTON2);\r
+       HWND hAppButton3 = GetDlgItem(hDlg, IDC_PROP_APPBUTTON3);\r
+       HWND hAppButton4 = GetDlgItem(hDlg, IDC_PROP_APPBUTTON4);\r
+       HWND hAppButton5 = GetDlgItem(hDlg, IDC_PROP_APPBUTTON5);\r
+       HWND hDisableAppButton = GetDlgItem(hDlg, IDC_PROPTAB_DISABLEACTION);\r
+\r
+       if (SendMessage(hAppButton1, BM_GETCHECK, 0, 0) == BST_CHECKED) {\r
+               pProperty->SetAppButton1(APPBUTTON_ACTION_ENABLE);\r
+       } else {\r
+               pProperty->SetAppButton1(APPBUTTON_ACTION_DISABLE);\r
+       }\r
+       if (SendMessage(hAppButton2, BM_GETCHECK, 0, 0) == BST_CHECKED) {\r
+               pProperty->SetAppButton2(APPBUTTON_ACTION_ENABLE);\r
+       } else {\r
+               pProperty->SetAppButton2(APPBUTTON_ACTION_DISABLE);\r
+       }\r
+       if (SendMessage(hAppButton3, BM_GETCHECK, 0, 0) == BST_CHECKED) {\r
+               pProperty->SetAppButton3(APPBUTTON_ACTION_ENABLE);\r
+       } else {\r
+               pProperty->SetAppButton3(APPBUTTON_ACTION_DISABLE);\r
+       }\r
+       if (SendMessage(hAppButton4, BM_GETCHECK, 0, 0) == BST_CHECKED) {\r
+               pProperty->SetAppButton4(APPBUTTON_ACTION_ENABLE);\r
+       } else {\r
+               pProperty->SetAppButton4(APPBUTTON_ACTION_DISABLE);\r
+       }\r
+       if (SendMessage(hAppButton5, BM_GETCHECK, 0, 0) == BST_CHECKED) {\r
+               pProperty->SetAppButton5(APPBUTTON_ACTION_ENABLE);\r
+       } else {\r
+               pProperty->SetAppButton5(APPBUTTON_ACTION_DISABLE);\r
+       }\r
+\r
+       if (SendMessage(hDisableAppButton, BM_GETCHECK, 0, 0) == BST_CHECKED) {\r
+               pProperty->SetDisableExtraActionButton(TRUE);\r
+       } else {\r
+               pProperty->SetDisableExtraActionButton(FALSE);\r
+       }\r
+\r
+       return TRUE;\r
+}\r
+\r
+#endif\r
+\r
+//////////////////////////////////////////\r
+// SIP tab\r
+//////////////////////////////////////////\r
+\r
+#if defined(PLATFORM_PKTPC) || defined(PLATFORM_WM5)\r
+static DlgMsgRes aSIPRes[] = {\r
+       { IDC_PROP_SIPDELTA, MSG_ID_DLG_PROPTAB_SIP_SHIFT },\r
+};\r
+\r
+void SipTab::Init(HWND hDlg)\r
+{\r
+       OverrideDlgMsg(hDlg, -1, aSIPRes, sizeof(aSIPRes)/sizeof(DlgMsgRes));\r
+\r
+       HWND hKeepDelta = GetDlgItem(hDlg, IDC_PROP_SIPDELTA);\r
+       if (pProperty->GetSipSizeDelta() != 0) {\r
+               SendMessage(hKeepDelta, BM_SETCHECK, BST_CHECKED, 0);\r
+       } else {\r
+               SendMessage(hKeepDelta, BM_SETCHECK, BST_UNCHECKED, 0);\r
+       }\r
+}\r
+\r
+BOOL SipTab::Apply(HWND hDlg)\r
+{\r
+       HWND hKeepDelta = GetDlgItem(hDlg, IDC_PROP_SIPDELTA);\r
+       if (SendMessage(hKeepDelta, BM_GETCHECK, 0, 0) == BST_CHECKED) {\r
+               pProperty->SetSipSizeDelta(SIP_DELTA);\r
+       } else {\r
+               pProperty->SetSipSizeDelta(0);\r
+       }\r
+       return TRUE;\r
+}\r
+\r
+#endif\r
+\r
+//////////////////////////////////////////\r
+// Codepage tab\r
+//////////////////////////////////////////\r
+\r
+static DlgMsgRes aCPRes[] = {\r
+       { IDC_PROPTAB_CODEPAGE_LABEL, MSG_ID_DLG_PROPTAB_CODEPAGE_LABEL },\r
+       { IDC_PROPTAB_CODEPAGE_NOTICE, MSG_ID_DLG_PROPTAB_CODEPAGE_NOTICE },\r
+};\r
+\r
+void CodepageTab::Init(HWND hDlg)\r
+{\r
+       OverrideDlgMsg(hDlg, -1, aCPRes, sizeof(aCPRes)/sizeof(DlgMsgRes));\r
+\r
+       HWND hWnd = GetDlgItem(hDlg, IDC_PROPTAB_CODEPAGE_CODEPAGE);\r
+       SendMessage(hWnd, CB_ADDSTRING, 0, (LPARAM)MSG_CODEPAGE_DEFAULT);\r
+       SendMessage(hWnd, CB_ADDSTRING, 0, (LPARAM)MSG_CODEPAGE_UTF16);\r
+       SendMessage(hWnd, CB_ADDSTRING, 0, (LPARAM)MSG_CODEPAGE_UTF8);\r
+       SendMessage(hWnd, CB_ADDSTRING, 0, (LPARAM)MSG_CODEPAGE_GREEK);\r
+       switch (pProperty->GetCodePage()) {\r
+       case TOMBO_CP_UTF16LE:\r
+               SendMessage(hWnd, CB_SETCURSEL, 1, 0);\r
+               break;\r
+       case TOMBO_CP_UTF8:\r
+               SendMessage(hWnd, CB_SETCURSEL, 2, 0);\r
+               break;\r
+       case TOMBO_CP_GREEK:\r
+               SendMessage(hWnd, CB_SETCURSEL, 3, 0);\r
+               break;\r
+       default:\r
+               SendMessage(hWnd, CB_SETCURSEL, 0, 0);\r
+       }\r
+}\r
+\r
+BOOL CodepageTab::Apply(HWND hDlg)\r
+{\r
+       HWND hWnd = GetDlgItem(hDlg, IDC_PROPTAB_CODEPAGE_CODEPAGE);\r
+       switch (SendMessage(hWnd, CB_GETCURSEL, 0, 0)) {\r
+       case 0:         // default\r
+               pProperty->SetCodePage(TOMBO_CP_DEFAULT);\r
+               break;\r
+       case 1:         // UTF16\r
+               pProperty->SetCodePage(TOMBO_CP_UTF16LE);\r
+               break;\r
+       case 2:         // UTF8\r
+               pProperty->SetCodePage(TOMBO_CP_UTF8);\r
+               break;\r
+       case 3:         // Greek\r
+               pProperty->SetCodePage(TOMBO_CP_GREEK);\r
+               break;\r
+       }\r
+       return TRUE;\r
+}\r
+\r
+//////////////////////////////////////////\r
+// DefaultNote tab\r
+//////////////////////////////////////////\r
+\r
+static DlgMsgRes aDefNote[] = {\r
+       { IDC_PROPTAB_DEFNOTE_LABEL,      MSG_ID_DLG_PROPTAB_DEFNOTE_LABEL },\r
+       { IDC_PROPTAB_DEFNOTE_SETCURRENT, MSG_ID_DLG_PROPTAB_DEFNOTE_CURRENT },\r
+       { IDC_PROPTAB_DEFNOTE_SETBLANK,   MSG_ID_DLG_PROPTAB_BLANK },\r
+       { IDC_PROPTAB_DEFNOTE_USELAST,    MSG_ID_DLG_PROPTAB_DEFNOTE_LAST_USE },\r
+};\r
+\r
+void DefaultNoteTab::Init(HWND hDlg)\r
+{\r
+       OverrideDlgMsg(hDlg, -1, aDefNote, sizeof(aDefNote)/sizeof(DlgMsgRes));\r
+       HWND hLastOpen = GetDlgItem(hDlg, IDC_PROPTAB_DEFNOTE_USELAST);\r
+       SetCheckBox(hLastOpen, g_Property.GetKeepLastOpen());\r
+\r
+       HWND hPath = GetDlgItem(hDlg, IDC_PROPTAB_DEFNOTE_PATH);\r
+       SetWindowText(hPath, g_Property.GetDefaultNote());\r
+\r
+       HWND hButton1 = GetDlgItem(hDlg, IDC_PROPTAB_DEFNOTE_SETCURRENT);\r
+       HWND hButton2 = GetDlgItem(hDlg, IDC_PROPTAB_DEFNOTE_SETBLANK);\r
+       BOOL bEnable = !g_Property.GetKeepLastOpen();\r
+       EnableWindow(hPath, bEnable);\r
+       EnableWindow(hButton1, bEnable);\r
+       EnableWindow(hButton2, bEnable);\r
+}\r
+\r
+BOOL DefaultNoteTab::Apply(HWND hDlg)\r
+{\r
+       HWND hPath = GetDlgItem(hDlg, IDC_PROPTAB_DEFNOTE_PATH);\r
+       TCHAR buf[MAX_PATH];\r
+       GetWindowText(hPath, buf, MAX_PATH);\r
+       g_Property.SetKeepLastOpen(GetCheckBox(GetDlgItem(hDlg, IDC_PROPTAB_DEFNOTE_USELAST)));\r
+       return g_Property.SetDefaultNote(buf);\r
+}\r
+\r
+BOOL DefaultNoteTab::OnCommand(HWND hDlg, WPARAM wParam, LPARAM lParam)\r
+{\r
+       switch(LOWORD(wParam)) {\r
+       case IDC_PROPTAB_DEFNOTE_SETCURRENT:\r
+               SetCurrent(hDlg);\r
+               break;\r
+       case IDC_PROPTAB_DEFNOTE_SETBLANK:\r
+               SetBlank(hDlg);\r
+               break;\r
+       case IDC_PROPTAB_DEFNOTE_USELAST:\r
+               {\r
+                       HWND hPath = GetDlgItem(hDlg, IDC_PROPTAB_DEFNOTE_PATH);\r
+                       HWND hButton1 = GetDlgItem(hDlg, IDC_PROPTAB_DEFNOTE_SETCURRENT);\r
+                       HWND hButton2 = GetDlgItem(hDlg, IDC_PROPTAB_DEFNOTE_SETBLANK);\r
+                       DWORD bEnable = !GetCheckBox(GetDlgItem(hDlg, IDC_PROPTAB_DEFNOTE_USELAST));\r
+                       EnableWindow(hPath, bEnable);\r
+                       EnableWindow(hButton1, bEnable);\r
+                       EnableWindow(hButton2, bEnable);\r
+               }\r
+               break;\r
+       }\r
+       return TRUE;\r
+}\r
+\r
+void DefaultNoteTab::SetBlank(HWND hDlg)\r
+{\r
+       HWND hPath = GetDlgItem(hDlg, IDC_PROPTAB_DEFNOTE_PATH);\r
+       SetWindowText(hPath, TEXT(""));\r
+}\r
+\r
+void DefaultNoteTab::SetCurrent(HWND hDlg)\r
+{\r
+       HWND hPath = GetDlgItem(hDlg, IDC_PROPTAB_DEFNOTE_PATH);\r
+       if (pCurrentPath) {\r
+               SetWindowText(hPath, pCurrentPath);\r
+       } else {\r
+               SetWindowText(hPath, TEXT(""));\r
+       }\r
+}\r
+\r
+//////////////////////////////////////////\r
+// External application tab\r
+//////////////////////////////////////////\r
+\r
+#if !defined(PLATFORM_PSPC)\r
+static DlgMsgRes aExtApp[] = {\r
+       { IDC_PROP_EXTAPP_USEASSOC,    MSG_ID_DLG_EXTAPP_USEASSOC },\r
+       { IDC_PROP_EXTAPP_TTL_EXTAPP1, MSG_ID_DLG_EXTAPP_LBL_APP1 },\r
+       { IDC_PROP_EXTAPP_TTL_EXTAPP2, MSG_ID_DLG_EXTAPP_LBL_APP2 },\r
+       { IDC_PROP_EXTAPP_CAUTION,     MSG_ID_DLG_EXTAPP_CAUTION },\r
+};\r
+\r
+void ExtAppTab::Init(HWND hDlg)\r
+{\r
+       OverrideDlgMsg(hDlg, -1, aExtApp, sizeof(aExtApp)/sizeof(DlgMsgRes));\r
+\r
+       HWND hUseAssoc = GetDlgItem(hDlg, IDC_PROP_EXTAPP_USEASSOC);\r
+       if (pProperty->GetUseAssociation()) {\r
+               SendMessage(hUseAssoc, BM_SETCHECK, BST_CHECKED, 0);\r
+       } else {\r
+               SendMessage(hUseAssoc, BM_SETCHECK, BST_UNCHECKED, 0);\r
+       }\r
+\r
+       SetWindowText(GetDlgItem(hDlg, IDC_PROP_EXTAPP_PATH_EXTAPP1), pProperty->GetExtApp1());\r
+       SetWindowText(GetDlgItem(hDlg, IDC_PROP_EXTAPP_PATH_EXTAPP2), pProperty->GetExtApp2());\r
+}\r
+\r
+BOOL ExtAppTab::Apply(HWND hDlg)\r
+{\r
+       HWND hWnd = GetDlgItem(hDlg, IDC_PROP_EXTAPP_USEASSOC);\r
+       if (SendMessage(hWnd, BM_GETCHECK, 0, 0) == BST_CHECKED) {\r
+               pProperty->SetUseAssociation(TRUE);\r
+       } else {\r
+               pProperty->SetUseAssociation(FALSE);\r
+       }\r
+       HWND hAp1 = GetDlgItem(hDlg, IDC_PROP_EXTAPP_PATH_EXTAPP1);\r
+       HWND hAp2 = GetDlgItem(hDlg, IDC_PROP_EXTAPP_PATH_EXTAPP2);\r
+       DWORD n1 = GetWindowTextLength(hAp1);\r
+       DWORD n2 = GetWindowTextLength(hAp2);\r
+       DWORD n = (n1 > n2 ? n1 : n2) + 1;\r
+       TString s;\r
+       if (!s.Alloc(n)) return FALSE;\r
+       GetWindowText(hAp1, s.Get(), n);\r
+       if (!pProperty->SetExtApp1(s.Get())) return FALSE;\r
+       GetWindowText(hAp2, s.Get(), n);\r
+       if (!pProperty->SetExtApp2(s.Get())) return FALSE;\r
+       return TRUE;\r
+}\r
+\r
+BOOL ExtAppTab::OnCommand(HWND hDlg, WPARAM wParam, LPARAM lParam)\r
+{\r
+       switch(LOWORD(wParam)) {\r
+       case IDC_PROPTAB_EXTAPP_CHOOSE1:\r
+               Choose1(hDlg);\r
+               break;\r
+       case IDC_PROPTAB_EXTAPP_CHOOSE2:\r
+               Choose2(hDlg);\r
+               break;\r
+       }\r
+       return TRUE;\r
+}\r
+\r
+void ExtAppTab::Choose1(HWND hDlg)\r
+{\r
+       FileSelector sel;\r
+#if defined(PLATFORM_WIN32)\r
+       LPCTSTR pExt = MSG_DLG_EXTAPP_CHOOSE_EXT;\r
+#else\r
+       LPCTSTR pExt = TEXT("*.exe");\r
+#endif\r
+       if (sel.Popup(g_hInstance, hDlg, MSG_DLG_EXTAPP_CHOOSE_TTL, pExt) == IDOK) {\r
+               HWND hWnd = GetDlgItem(hDlg, IDC_PROP_EXTAPP_PATH_EXTAPP1);\r
+               SetWindowText(hWnd, sel.SelectedPath());\r
+       }\r
+}\r
+\r
+void ExtAppTab::Choose2(HWND hDlg)\r
+{\r
+       FileSelector sel;\r
+#if defined(PLATFORM_WIN32)\r
+       LPCTSTR pExt = MSG_DLG_EXTAPP_CHOOSE_EXT;\r
+#else\r
+       LPCTSTR pExt = TEXT("*.exe");\r
+#endif\r
+\r
+       if (sel.Popup(g_hInstance, hDlg, MSG_DLG_EXTAPP_CHOOSE_TTL, pExt) == IDOK) {\r
+               HWND hWnd = GetDlgItem(hDlg, IDC_PROP_EXTAPP_PATH_EXTAPP2);\r
+               SetWindowText(hWnd, sel.SelectedPath());\r
+       }\r
+}\r
+#endif\r
+\r
+//////////////////////////////////////////\r
+// helper functions\r
+//////////////////////////////////////////\r
+\r
+// set font name to combobox\r
+//\r
+// callback handler called from EnumFontFamilies\r
+// set window handle to LPARAM\r
+\r
+int CALLBACK PropEnumFonts(ENUMLOGFONT FAR *pFont, NEWTEXTMETRIC FAR *pMetric, int iFontType, LPARAM lParam)\r
+{\r
+       HWND hWnd = (HWND)lParam;\r
+\r
+       LPTSTR pFace = pFont->elfLogFont.lfFaceName;\r
+       if (*pFace == TEXT('@')) return TRUE; // disable font for vertical\r
+       // if (pMetric->tmPitchAndFamily & 0x1) return TRUE;\r
+\r
+       SendMessage(hWnd, CB_ADDSTRING, 0, (LPARAM)pFace);\r
+       return TRUE;\r
+}\r
+\r
+// create directory only if it not exists\r
+static BOOL CheckCreateDir(LPCTSTR pDir)\r
+{\r
+       WIN32_FIND_DATA wfd;\r
+       HANDLE h = FindFirstFile(pDir, &wfd);\r
+       if (h == INVALID_HANDLE_VALUE) {\r
+               return CreateDirectory(pDir, NULL);\r
+       }\r
+       FindClose(h);\r
+       if (wfd.dwFileAttributes & FILE_ATTRIBUTE_DIRECTORY) {\r
+               return TRUE;\r
+       } else {\r
+               SetLastError(ERROR_FILE_EXISTS);\r
+               return FALSE;\r
+       }\r
+}\r
+\r
+// create directory recursively\r
+static BOOL CreateDirectories(LPCTSTR pDir)\r
+{\r
+       LPCTSTR p = pDir;\r
+       TCHAR aPath[MAX_PATH];\r
+       LPTSTR q = aPath;\r
+\r
+#if defined(PLATFORM_WIN32)\r
+       if (isalpha(*p) && *(p+1) == ':' && *(p+2) == '\\') {\r
+               // D:\Path\r
+               *q++ = *p++;\r
+               *q++ = *p++;\r
+               *q++ = *p++;\r
+       } else if (*p == '\\' && *(p+1) == '\\') {\r
+               // \\server\share\Path\r
+               *q++ = *p++;\r
+               *q++ = *p++;\r
+\r
+               // server\ \r
+               while(*p) {\r
+                       if (*p == '\\') {\r
+                               *q++ = *p++;\r
+                               break;\r
+                       }\r
+                       if (IsDBCSLeadByte(*p)) {\r
+                               *q++ = *p++;\r
+                       }\r
+                       *q++ = *p++;\r
+               }\r
+               // share\ \r
+               while(*p) {\r
+                       if (*p == '\\') {\r
+                               *q++ = *p++;\r
+                               break;\r
+                       }\r
+                       if (IsDBCSLeadByte(*p)) {\r
+                               *q++ = *p++;\r
+                       }\r
+                       *q++ = *p++;\r
+               }\r
+       } else {\r
+               return FALSE;\r
+       }\r
+#else\r
+       // \\ \r
+       if (*p != TEXT('\\')) {\r
+               return FALSE;\r
+       }\r
+       *q++ = *p++;\r
+#endif\r
+\r
+       while(*p) {\r
+               if (*p == TEXT('\\')) {\r
+                       *q = TEXT('\0');\r
+                       if (!CheckCreateDir(aPath)) return FALSE;\r
+               }\r
+               *q++ = *p++;\r
+       }\r
+       *q = TEXT('\0');\r
+       return CheckCreateDir(aPath);\r
+}\r
diff --git a/Src/TomboPropertyTab.h b/Src/TomboPropertyTab.h
new file mode 100644 (file)
index 0000000..c685095
--- /dev/null
@@ -0,0 +1,170 @@
+#ifndef TOMBOPROPERTYTAB_H\r
+#define TOMBOPROPERTYTAB_H\r
+\r
+//////////////////////////////////////////\r
+// TOMBO general property tab\r
+//////////////////////////////////////////\r
+\r
+class TomboPropertyTab : public PropertyTab {\r
+protected:\r
+       Property *pProperty;\r
+public:\r
+       TomboPropertyTab(Property *prop, DWORD id, DLGPROC proc, LPCTSTR pTitleName) : PropertyTab(id, pTitleName, proc), pProperty(prop) {}\r
+};\r
+\r
+//////////////////////////////////////////\r
+// TomboRoot setting tab\r
+//////////////////////////////////////////\r
+\r
+class FolderTab : public TomboPropertyTab {\r
+public:\r
+       FolderTab(Property *p) : \r
+         TomboPropertyTab(p, IDD_PROPTAB_FOLDER,(DLGPROC)DefaultPageProc, MSG_PROPTAB_FOLDER) {}\r
+       ~FolderTab() {}\r
+       void Init(HWND hDlg);\r
+       BOOL Apply(HWND hDlg);\r
+       BOOL OnCommand(HWND hDlg, WPARAM wParam, LPARAM lParam);\r
+};\r
+\r
+//////////////////////////////////////////\r
+// Password timeout setting tab\r
+//////////////////////////////////////////\r
+\r
+class PassTimeoutTab : public TomboPropertyTab {\r
+public:\r
+       PassTimeoutTab(Property *p) : \r
+         TomboPropertyTab(p, IDD_PROPTAB_PASS_TIMEOUT,(DLGPROC)DefaultPageProc, MSG_PROPTAB_PASS_TIMEOUT) {}\r
+       ~PassTimeoutTab() {}\r
+       void Init(HWND hDlg);\r
+       BOOL Apply(HWND hDlg);\r
+};\r
+\r
+//////////////////////////////////////////\r
+// Font setting tab\r
+//////////////////////////////////////////\r
+\r
+class FontTab : public TomboPropertyTab {\r
+public:\r
+       FontTab(Property *p) :\r
+         TomboPropertyTab(p, IDD_PROPTAB_FONT, (DLGPROC)DefaultPageProc, MSG_PROPTAB_FONT) {}\r
+       ~FontTab() {}\r
+       void Init(HWND hDlg);\r
+       BOOL Apply(HWND hDlg);\r
+       BOOL OnCommand(HWND hDlg, WPARAM wParam, LPARAM lParam);\r
+};\r
+\r
+//////////////////////////////////////////\r
+// Date format\r
+//////////////////////////////////////////\r
+\r
+class DateFormatTab : public TomboPropertyTab {\r
+public:\r
+       DateFormatTab(Property *p) :\r
+         TomboPropertyTab(p, IDD_PROPTAB_INSDATE, (DLGPROC)DefaultPageProc, MSG_PROPTAB_DATE) {}\r
+       ~DateFormatTab() {}\r
+       void Init(HWND hDlg);\r
+       BOOL Apply(HWND hDlg);\r
+};\r
+\r
+//////////////////////////////////////////\r
+// Caret setting tab\r
+//////////////////////////////////////////\r
+\r
+class KeepCaretTab : public TomboPropertyTab {\r
+public:\r
+       KeepCaretTab(Property *p) :\r
+         TomboPropertyTab(p, IDD_PROPTAB_KEEPCARET, (DLGPROC)DefaultPageProc, MSG_PROPTAB_KEEPCARET) {}\r
+       ~KeepCaretTab() {}\r
+       void Init(HWND hDlg);\r
+       BOOL Apply(HWND hDlg);\r
+};\r
+\r
+//////////////////////////////////////////\r
+// Action buttons\r
+//////////////////////////////////////////\r
+\r
+#if defined(PLATFORM_PKTPC) || defined(PLATFORM_WM5)\r
+class AppButtonTab : public TomboPropertyTab {\r
+public:\r
+       AppButtonTab(Property *p) :\r
+         TomboPropertyTab(p, IDD_PROPTAB_APPBUTTON, (DLGPROC)DefaultPageProc, MSG_PROPTAB_APPBUTTON) {}\r
+       ~AppButtonTab() {}\r
+       void Init(HWND hDlg);\r
+       BOOL Apply(HWND hDlg);\r
+};\r
+#endif\r
+\r
+//////////////////////////////////////////\r
+// SIP tab\r
+//////////////////////////////////////////\r
+\r
+#if defined(PLATFORM_PKTPC) || defined(PLATFORM_WM5)\r
+\r
+class SipTab : public TomboPropertyTab {\r
+public:\r
+       SipTab(Property *p) :\r
+         TomboPropertyTab(p, IDD_PROPTAB_SIP, (DLGPROC)DefaultPageProc, MSG_PROPTAB_SIP) {}\r
+  ~SipTab() {}\r
+\r
+  void Init(HWND hDlg);\r
+  BOOL Apply(HWND hDlg);\r
+};\r
+#endif\r
+\r
+//////////////////////////////////////////\r
+// Codepage tab\r
+//////////////////////////////////////////\r
+\r
+class CodepageTab : public TomboPropertyTab {\r
+public:\r
+       CodepageTab(Property *p) :\r
+         TomboPropertyTab(p, IDD_PROPTAB_CODEPAGE, (DLGPROC)DefaultPageProc, MSG_PROPTAB_CODEPAGE) {}\r
+       ~CodepageTab() {}\r
+       void Init(HWND hDlg);\r
+       BOOL Apply(HWND hDlg);\r
+};\r
+\r
+//////////////////////////////////////////\r
+// DefaultNote tab\r
+//////////////////////////////////////////\r
+\r
+class DefaultNoteTab : public TomboPropertyTab {\r
+       LPCTSTR pCurrentPath;\r
+public:\r
+       DefaultNoteTab(Property *p, LPCTSTR pPath) :\r
+         TomboPropertyTab(p, IDD_PROPTAB_DEFNOTE, (DLGPROC)DefaultPageProc, MSG_PROPTAB_DEFNOTE), pCurrentPath(pPath) {}\r
+       ~DefaultNoteTab() {}\r
+       void Init(HWND hDlg);\r
+       BOOL Apply(HWND hDlg);\r
+       BOOL OnCommand(HWND hDlg, WPARAM wParam, LPARAM lParam);\r
+\r
+protected:\r
+       void SetBlank(HWND hDlg);\r
+       void SetCurrent(HWND hDlg);\r
+};\r
+\r
+//////////////////////////////////////////\r
+// External application tab\r
+//////////////////////////////////////////\r
+\r
+#if !defined(PLATFORM_PSPC)\r
+class ExtAppTab : public TomboPropertyTab {\r
+       DWORD nUseAssoc;\r
+       TCHAR aExtApp1[MAX_PATH];\r
+       TCHAR aExtApp2[MAX_PATH];\r
+protected:\r
+       void Choose1(HWND hDlg);\r
+       void Choose2(HWND hDlg);\r
+\r
+public:\r
+       ExtAppTab(Property *p) :\r
+         TomboPropertyTab(p, IDD_PROPTAB_EXTAPP, (DLGPROC)DefaultPageProc, MSG_PROPTAB_EXTAPP) {}\r
+       ~ExtAppTab() {}\r
+\r
+       void Init(HWND hDlg);\r
+       BOOL Apply(HWND hDlg);\r
+       BOOL OnCommand(HWND hDlg, WPARAM wParam, LPARAM lParam);\r
+};\r
+#endif\r
+\r
+#endif
\ No newline at end of file
diff --git a/Src/TomboURI.cpp b/Src/TomboURI.cpp
new file mode 100644 (file)
index 0000000..df24ea2
--- /dev/null
@@ -0,0 +1,342 @@
+#include <windows.h>\r
+#include <tchar.h>\r
+#include "TString.h"\r
+#include "TomboURI.h"\r
+\r
+static LPCTSTR pURIPrefix = TEXT("tombo://");\r
+\r
+/////////////////////////////////////////////\r
+/////////////////////////////////////////////\r
+// URI implimentation\r
+/////////////////////////////////////////////\r
+/////////////////////////////////////////////\r
+\r
+/////////////////////////////////////////////\r
+// ctor & dtor\r
+/////////////////////////////////////////////\r
+\r
+TomboURI::TomboURI()\r
+{\r
+}\r
+\r
+TomboURI::TomboURI(const TomboURI &u)\r
+{\r
+       uri.Set(u.uri);\r
+       nMaxPathItem = u.nMaxPathItem;\r
+}\r
+\r
+TomboURI::~TomboURI()\r
+{\r
+}\r
+\r
+TomboURI &TomboURI::operator =(const TomboURI &val)\r
+{\r
+       uri.Set(val.uri);\r
+       nMaxPathItem = val.nMaxPathItem;\r
+       return *this;\r
+}\r
+\r
+/////////////////////////////////////////////\r
+// initialize\r
+/////////////////////////////////////////////\r
+\r
+BOOL TomboURI::Init(LPCTSTR pURI)\r
+{\r
+       // check header string\r
+       if (_tcsnicmp(pURI, pURIPrefix, 8) != 0) {\r
+               SetLastError(ERROR_INVALID_DATA);\r
+               return FALSE;\r
+       }\r
+\r
+       nMaxPathItem = 0;\r
+\r
+       // count repository string length\r
+       LPCTSTR p = pURI + 8;\r
+       LPCTSTR q;\r
+       DWORD nLv = 0;\r
+       while (1) {\r
+               q = GetNextSep(p);\r
+               if (q == NULL) {\r
+                       int n = _tcslen(p);\r
+                       if (nMaxPathItem < n) nMaxPathItem = n;\r
+                       break;\r
+               }\r
+               if (nMaxPathItem < (q - p)) nMaxPathItem = q - p;\r
+               p = q + 1;\r
+               nLv++;\r
+       }\r
+\r
+       // check like  "tombo:///"\r
+       if (nLv == 0) {\r
+               SetLastError(ERROR_INVALID_DATA);\r
+               return FALSE;\r
+       }\r
+\r
+       return uri.Set(pURI);\r
+}\r
+\r
+BOOL TomboURI::Init(const TomboURI &u)\r
+{\r
+       uri.Set(u.uri);\r
+       nMaxPathItem = u.nMaxPathItem;\r
+       return TRUE;\r
+}\r
+/////////////////////////////////////////////\r
+// Yet another initializer\r
+/////////////////////////////////////////////\r
+// This function is obsoleted and will be removed in the future.\r
+\r
+BOOL TomboURI::InitByNotePath(LPCTSTR pRepoName, LPCTSTR pNotePath)\r
+{\r
+       TString s;\r
+       if (!s.Alloc(9 + _tcslen(pRepoName) + _tcslen(pNotePath) + 1)) return FALSE;\r
+       wsprintf(s.Get(), TEXT("tombo://%s/"), pRepoName);\r
+       LPTSTR p = s.Get() + 9 + _tcslen(pRepoName);\r
+\r
+       LPCTSTR q = pNotePath;\r
+       if (*q == TEXT('\\')) q++;\r
+\r
+       while(*q) {\r
+               if (*q == TEXT('\\')) {\r
+                       *p++ = TEXT('/');\r
+                       q++;\r
+                       continue;\r
+               }\r
+#if defined(PLATFORM_WIN32)\r
+               if (IsDBCSLeadByte(*q)) {\r
+                       *p++ = *q++;\r
+               }\r
+#endif\r
+               *p++ = *q++;\r
+       }\r
+       *p = TEXT('\0');\r
+       return Init(s.Get());\r
+}\r
+\r
+/////////////////////////////////////////////\r
+// skip to next separator\r
+/////////////////////////////////////////////\r
+\r
+LPCTSTR TomboURI::GetNextSep(LPCTSTR pPartPath)\r
+{\r
+       LPCTSTR p = pPartPath;\r
+       while (*p) {\r
+               if (*p == TEXT('/')) return p;\r
+               p = CharNext(p);\r
+       }\r
+       return NULL;\r
+}\r
+\r
+/////////////////////////////////////////////\r
+// get repository name\r
+/////////////////////////////////////////////\r
+\r
+BOOL TomboURI::GetRepositoryName(TString *pRepo) const\r
+{\r
+       LPCTSTR p = uri.Get() + 8;\r
+       LPCTSTR q = GetNextSep(p);\r
+\r
+       if (!pRepo->Alloc(q - p + 1)) return FALSE;\r
+       _tcsncpy(pRepo->Get(), p, q - p);\r
+       *(pRepo->Get() + (q - p)) = TEXT('\0');\r
+\r
+       return TRUE;\r
+}\r
+\r
+/////////////////////////////////////////////\r
+// get path part\r
+/////////////////////////////////////////////\r
+\r
+LPCTSTR TomboURI::GetPath() const\r
+{\r
+       LPCTSTR p = uri.Get() + _tcslen(pURIPrefix);\r
+\r
+       // skip repository part\r
+       p = _tcschr(p, TEXT('/'));\r
+       return p;\r
+}\r
+\r
+/////////////////////////////////////////////\r
+// Is the URI point to leaf node?\r
+/////////////////////////////////////////////\r
+\r
+BOOL TomboURI::IsLeaf() const\r
+{\r
+       if (_tcslen(GetPath() + 1) == 0) return FALSE; // root\r
+       LPCTSTR p = uri.Get();\r
+       return *(p + _tcslen(p) - 1) != TEXT('/');\r
+}\r
+\r
+/////////////////////////////////////////////\r
+// Root node?\r
+/////////////////////////////////////////////\r
+\r
+BOOL TomboURI::IsRoot() const\r
+{\r
+       LPCTSTR p = _tcschr(uri.Get() + _tcslen(TEXT("tombo://")), TEXT('/'));\r
+       if (p == NULL) return FALSE; // invalid URI\r
+       if (*(p+1) == TEXT('\0')) return TRUE;\r
+       return FALSE;\r
+}\r
+\r
+/////////////////////////////////////////////\r
+// get parent path\r
+/////////////////////////////////////////////\r
+\r
+BOOL TomboURI::GetParent(TomboURI *pParent) const\r
+{\r
+       LPCTSTR p = GetPath();\r
+       LPCTSTR pBase = p;\r
+\r
+       if (*p) p++;\r
+\r
+       LPCTSTR q = NULL;\r
+       while (*p) {\r
+               if (*p == TEXT('/') && *(p+1) != TEXT('\0')) {\r
+                       q = p;\r
+               }\r
+               p = CharNext(p);\r
+       }\r
+\r
+       TString s;\r
+       if (q == NULL) {\r
+               // result is root node.\r
+               DWORD n = GetPath() - uri.Get() + 1;\r
+               if (!s.Alloc(n + 1)) return FALSE;\r
+               _tcsncpy(s.Get(), uri.Get(), n);\r
+               *(s.Get() + n) = TEXT('\0');\r
+\r
+       } else {\r
+               if (!s.Alloc(q - uri.Get() + 2)) return FALSE;\r
+               _tcsncpy(s.Get(), uri.Get(), q - uri.Get());\r
+               *(s.Get() + (q - uri.Get())) = TEXT('\0');\r
+\r
+               _tcscat(s.Get(), TEXT("/"));\r
+       }\r
+       if (!pParent->Init(s.Get())) return FALSE;\r
+\r
+       return TRUE;\r
+}\r
+\r
+/////////////////////////////////////////////\r
+// get folder to attach new note\r
+/////////////////////////////////////////////\r
+\r
+BOOL TomboURI::GetAttachFolder(TomboURI *pAttach) const\r
+{\r
+       if (IsLeaf()) {\r
+               if (!GetParent(pAttach)) return FALSE;\r
+       } else {\r
+               *pAttach = *this;\r
+       }\r
+       return TRUE;\r
+}\r
+\r
+/////////////////////////////////////////////\r
+// get parent path\r
+/////////////////////////////////////////////\r
+\r
+BOOL TomboURI::GetFilePath(TString *pPath) const\r
+{\r
+       LPCTSTR p = GetPath();\r
+       if (*p) *p++;\r
+\r
+       if (!pPath->Alloc(_tcslen(p) + 1)) return FALSE;\r
+       _tcscpy(pPath->Get(), p);\r
+\r
+       LPTSTR q = pPath->Get();\r
+       while(q = _tcschr(q, TEXT('/'))) {\r
+               *q = TEXT('\\');\r
+       }\r
+       return TRUE;\r
+}\r
+\r
+/////////////////////////////////////////////\r
+// get base name\r
+/////////////////////////////////////////////\r
+\r
+BOOL TomboURI::GetBaseName(TString *pBase) const\r
+{\r
+       LPCTSTR p = GetPath();\r
+       LPCTSTR q = NULL;\r
+       while(*p) {\r
+               if (*p == TEXT('/') && *(p+1) != TEXT('\0')) {\r
+                       q = p;\r
+                       p++;\r
+                       continue;\r
+               }\r
+#if defined(PLATFORM_WIN32)\r
+               p = CharNext(p);\r
+#else\r
+               p++;\r
+#endif\r
+       }\r
+\r
+       if (q == NULL) {\r
+               // if url point to root\r
+               if (!pBase->Set(TEXT(""))) return FALSE;\r
+               return TRUE;\r
+       }\r
+       if (!pBase->Set(q + 1)) return FALSE;\r
+       if (*(q + _tcslen(q) - 1) == TEXT('/')) {\r
+               *(pBase->Get() + _tcslen(pBase->Get()) - 1) = TEXT('\0');\r
+       }\r
+       return TRUE;\r
+}\r
+\r
+/////////////////////////////////////////////\r
+/////////////////////////////////////////////\r
+// iterator implimentation\r
+/////////////////////////////////////////////\r
+/////////////////////////////////////////////\r
+\r
+BOOL TomboURIItemIterator::Init()\r
+{\r
+       // reallocate buffer\r
+       if (pBuf) delete[] pBuf;\r
+       pBuf = new TCHAR[pURI->GetMaxPathItem() + 1];\r
+       if (pBuf == NULL) return FALSE;\r
+\r
+       return TRUE;\r
+}\r
+\r
+void TomboURIItemIterator::First()\r
+{\r
+       // seek head of path\r
+       LPCTSTR p = TomboURI::GetNextSep(pURI->GetFullURI() + 8);\r
+       p++;\r
+       nPos = p - pURI->GetFullURI();\r
+\r
+       Next();\r
+}\r
+\r
+LPCTSTR TomboURIItemIterator::Current()\r
+{\r
+       if (*pBuf == TEXT('\0')) return NULL;\r
+       return pBuf;\r
+}\r
+\r
+void TomboURIItemIterator::Next()\r
+{\r
+       LPCTSTR p = pURI->GetFullURI() + nPos;\r
+\r
+       LPTSTR q = pBuf;\r
+       while (*p && *p != TEXT('/')) {\r
+#if defined(PLATFORM_WIN32)\r
+               if (IsDBCSLeadByte(*p)) {\r
+                       *q++ = *p++;\r
+               }\r
+#endif\r
+               *q++ = *p++;\r
+       }\r
+       *q = TEXT('\0');\r
+       if (*p == TEXT('/')) p++;\r
+\r
+       nPos = p - pURI->GetFullURI();\r
+}\r
+\r
+BOOL TomboURIItemIterator::IsLeaf()\r
+{\r
+       LPCTSTR p = pURI->GetFullURI() + nPos;\r
+       return (*p == TEXT('\0')) && (*(p-1) != TEXT('/'));\r
+}
\ No newline at end of file
diff --git a/Src/TomboURI.h b/Src/TomboURI.h
new file mode 100644 (file)
index 0000000..9dff45d
--- /dev/null
@@ -0,0 +1,99 @@
+#ifndef TOMBOURI_H\r
+#define TOMBOURI_H\r
+\r
+/////////////////////////////////////////////\r
+// Notes path information\r
+/////////////////////////////////////////////\r
+\r
+class TomboURI {\r
+       int nMaxPathItem;\r
+\r
+       SharedString uri;\r
+\r
+       friend class TomboURITest;\r
+public:\r
+       ///////////////////////////////\r
+       // ctor, dtor and initializer\r
+       TomboURI();\r
+       TomboURI(const TomboURI&);\r
+       ~TomboURI();\r
+\r
+       BOOL Init(LPCTSTR pURI);\r
+       BOOL Init(const TomboURI&);\r
+       BOOL InitByNotePath(LPCTSTR pRepoName, LPCTSTR pNotePath);\r
+\r
+       ///////////////////////////////\r
+       // accessor\r
+\r
+       BOOL GetRepositoryName(TString *pRepo) const;\r
+\r
+       // get full path of URI.\r
+       LPCTSTR GetFullURI() const { return uri.Get(); }\r
+\r
+       // get path part of URI.\r
+       // ex. tombo://default/aa/bb/cc.txt -> /aa/bb/cc.txt\r
+       LPCTSTR GetPath() const;\r
+\r
+       // get parent path of URI.\r
+       // ex. tombo://default/aa/bb/cc.txt -> tombo://default/aa/bb/\r
+       //     tombo://default/aa/bb/       -> tombo://default/aa/\r
+       //     tombo://default/                         -> tombo://default/\r
+       BOOL GetParent(TomboURI *pParent) const;\r
+\r
+       BOOL GetAttachFolder(TomboURI *pAttach) const;\r
+\r
+       DWORD GetMaxPathItem() const { return nMaxPathItem; }\r
+\r
+       // get last 1 item from URI.\r
+       // ex. tombo://default/aa/bb/cc.txt -> cc.txt\r
+       //     tombo://default/aa/bb/cc/    -> cc\r
+       BOOL GetBaseName(TString *pBase) const;\r
+\r
+       // Is the URI point to leaf node?\r
+       // Checking does only to URI string. Not confirm to repository.\r
+       BOOL IsLeaf() const;\r
+\r
+       // Is the URI point to root node?\r
+       BOOL IsRoot() const;\r
+\r
+       // Get path string\r
+       // This method will be obsoleted in future version.\r
+       // ex. tombo://default/aaa/bbb/ccc.txt -> aaa\bbb\ccc.txt\r
+       BOOL GetFilePath(TString *pPath) const;\r
+\r
+\r
+       ///////////////////////////////\r
+       // helper functions\r
+       static LPCTSTR GetNextSep(LPCTSTR p);\r
+\r
+       TomboURI &operator=(const TomboURI &uri);\r
+};\r
+\r
+/////////////////////////////////////////////\r
+// path item iterator\r
+/////////////////////////////////////////////\r
+\r
+class TomboURIItemIterator {\r
+       const TomboURI *pURI;\r
+       LPTSTR pBuf;\r
+       DWORD nPos;\r
+public:\r
+\r
+       ///////////////////////////////\r
+       // ctor, dtor and initializer\r
+       TomboURIItemIterator(const TomboURI *p) : pURI(p), pBuf(NULL) {}\r
+       ~TomboURIItemIterator() { if (pBuf) delete[] pBuf; }\r
+       BOOL Init();\r
+\r
+       ///////////////////////////////\r
+       // iteration methods\r
+       void First();\r
+       LPCTSTR Current();\r
+       void Next();\r
+\r
+       ///////////////////////////////\r
+       // May current item have child?\r
+       BOOL IsLeaf();\r
+};\r
+\r
+#endif
\ No newline at end of file
diff --git a/Src/TreeViewItem.cpp b/Src/TreeViewItem.cpp
new file mode 100644 (file)
index 0000000..0c25413
--- /dev/null
@@ -0,0 +1,836 @@
+#include <windows.h>\r
+#include <commctrl.h>\r
+#include <tchar.h>\r
+#include "Tombo.h"\r
+#include "TreeViewItem.h"\r
+#include "MemoSelectView.h"\r
+#include "TString.h"\r
+#include "TomboURI.h"\r
+#include "UniConv.h"\r
+#include "Property.h"\r
+#include "MemoManager.h"\r
+#include "MainFrame.h"\r
+#include "DirectoryScanner.h"\r
+#include "Message.h"\r
+#include "VFStream.h"\r
+#include "TSParser.h"\r
+#include "VarBuffer.h"\r
+#include "VFManager.h"\r
+#include "AutoPtr.h"\r
+#include "URIScanner.h"\r
+\r
+#include "Repository.h"\r
+\r
+#if defined(PLATFORM_BE500)\r
+#include "COShellAPI.h"\r
+#endif\r
+\r
+#define ITEM_ORDER_FILE                1\r
+#define ITEM_ORDER_FOLDER      0\r
+\r
+/////////////////////////////////////////////\r
+/////////////////////////////////////////////\r
+//  TreeViewItem\r
+/////////////////////////////////////////////\r
+/////////////////////////////////////////////\r
+\r
+TreeViewItem::TreeViewItem(BOOL bItem) : bHasMultiItem(bItem), hItem(NULL)\r
+{\r
+}\r
+\r
+TreeViewItem::~TreeViewItem()\r
+{\r
+}\r
+\r
+HTREEITEM TreeViewItem::GetViewItem()\r
+{\r
+       return hItem;\r
+}\r
+\r
+void TreeViewItem::SetViewItem(HTREEITEM h)\r
+{\r
+       hItem = h;\r
+}\r
+\r
+BOOL TreeViewItem::IsOperationEnabled(MemoSelectView *pView, OpType op)\r
+{\r
+       DWORD nOpMatrix = OpNewMemo | OpNewFolder | OpCut | OpCopy | OpPaste;\r
+       return (nOpMatrix & op) != 0;\r
+}\r
+\r
+BOOL TreeViewItem::IsUseDetailsView()\r
+{\r
+       return FALSE;\r
+}\r
+\r
+BOOL TreeViewItem::OpenMemo(MemoSelectView *pView, DWORD nOption)\r
+{\r
+       return TRUE;\r
+}\r
+\r
+BOOL TreeViewItem::LoadMemo(MemoSelectView *pView, BOOL bAskPass)\r
+{\r
+       return TRUE;\r
+}\r
+\r
+void TreeViewItem::SetURI(const TomboURI *p)\r
+{\r
+       loc.set(p);\r
+}\r
+\r
+TreeViewItem::Locator::~Locator()\r
+{\r
+       delete pURI;\r
+}\r
+\r
+void TreeViewItem::Locator::set(const TomboURI *p)\r
+{\r
+       delete pURI;\r
+       pURI = new TomboURI(*p);        // share string buffer\r
+}\r
+\r
+/////////////////////////////////////////////\r
+/////////////////////////////////////////////\r
+//  File\r
+/////////////////////////////////////////////\r
+/////////////////////////////////////////////\r
+\r
+TreeViewFileItem::TreeViewFileItem() : TreeViewItem(FALSE)\r
+{\r
+}\r
+\r
+TreeViewFileItem::~TreeViewFileItem()\r
+{\r
+}\r
+\r
+BOOL TreeViewFileItem::CopyMove(BOOL bCopy, MemoManager *pMgr, MemoSelectView *pView)\r
+{\r
+       TomboURI sCopyToURI;\r
+       TomboURI sCurURI;\r
+\r
+       const TomboURI *pCurSelURI = pView->GetCurrentSelectedURI();\r
+       if (pCurSelURI == NULL) return FALSE;\r
+       sCurURI = *pCurSelURI;\r
+\r
+       if (!g_Repository.GetAttachURI(&sCurURI, &sCopyToURI)) return FALSE;\r
+\r
+       HTREEITEM hParent = pView->ShowItemByURI(&sCopyToURI, FALSE, FALSE);\r
+       URIOption opt;\r
+       if (bCopy) {\r
+               if (!g_Repository.Copy(loc.getURI(), &sCopyToURI, &opt)) return FALSE;\r
+       } else {\r
+               if (!g_Repository.Move(loc.getURI(), &sCopyToURI, &opt)) return FALSE;\r
+       }\r
+\r
+       pView->InsertFile(hParent, opt.pNewURI, opt.pNewHeadLine->Get(), FALSE, FALSE);\r
+       return TRUE;\r
+}\r
+\r
+BOOL TreeViewFileItem::Move(MemoManager *pMgr, MemoSelectView *pView, LPCTSTR *ppErr)\r
+{\r
+       return CopyMove(FALSE, pMgr, pView);\r
+}\r
+\r
+BOOL TreeViewFileItem::Copy(MemoManager *pMgr, MemoSelectView *pView, LPCTSTR *ppErr)\r
+{\r
+       return CopyMove(TRUE, pMgr, pView);\r
+}\r
+\r
+BOOL TreeViewFileItem::Delete(MemoManager *pMgr, MemoSelectView *pView)\r
+{\r
+       // Confirm\r
+       if (TomboMessageBox(NULL, MSG_CONFIRM_DELETE, MSG_DELETE_TTL, MB_ICONQUESTION | MB_OKCANCEL) != IDOK) return FALSE;\r
+\r
+       if (g_Property.GetUseTwoPane() && pMgr->GetDetailsView()->IsNoteDisplayed(loc.getURI())) {\r
+               // close current note\r
+               pMgr->GetDetailsView()->DiscardMemo();\r
+       }\r
+\r
+       URIOption opt;\r
+       if (!g_Repository.Delete(loc.getURI(), &opt)) {\r
+               TomboMessageBox(NULL, MSG_DELETE_FAILED, TEXT("ERROR"), MB_ICONSTOP | MB_OK);\r
+               return FALSE;\r
+       }\r
+       return TRUE;\r
+}\r
+\r
+BOOL TreeViewFileItem::Encrypt(MemoManager *pMgr, MemoSelectView *pView)\r
+{\r
+       // if this note is encrypted, ignore. \r
+       if (g_Repository.IsEncrypted(loc.getURI())) return TRUE;\r
+\r
+       // if the note is opened, close it.\r
+       if (g_Property.GetUseTwoPane() && pMgr->GetDetailsView()->IsNoteDisplayed(loc.getURI())) {\r
+               pMgr->InactiveDetailsView();\r
+       }\r
+\r
+       URIOption opt(NOTE_OPTIONMASK_ENCRYPTED);\r
+       opt.bEncrypt = TRUE;\r
+       if (!g_Repository.SetOption(loc.getURI(), &opt)) {\r
+               switch(GetLastError()) {\r
+               case ERROR_TOMBO_W_DELETEOLD_FAILED:\r
+                       MessageBox(NULL, MSG_DELETE_PREV_CRYPT_MEMO_FAILED, TOMBO_APP_NAME, MB_ICONWARNING | MB_OK);\r
+                       break;\r
+               default:\r
+                       MessageBox(NULL, MSG_ENCRYPT_FAILED, TOMBO_APP_NAME, MB_ICONERROR | MB_OK);\r
+                       break;\r
+               }\r
+               return FALSE;\r
+       }\r
+       // replace URI that TreeViewItem have\r
+       loc.set(opt.pNewURI);\r
+       pView->GetManager()->ChangeURINotify(opt.pNewURI);\r
+\r
+       // update icon and headline string\r
+       if (!pView->UpdateItemStatusNotify(this, opt.pNewHeadLine->Get())) {\r
+               MessageBox(NULL, TEXT("UpdateItemStatusNotify failed"), TEXT("DEBUG"), MB_OK);\r
+               return FALSE;\r
+       }\r
+       return TRUE;\r
+}\r
+\r
+BOOL TreeViewFileItem::Decrypt(MemoManager *pMgr, MemoSelectView *pView)\r
+{\r
+       // if the note is plain text, ignore it\r
+       if (!g_Repository.IsEncrypted(loc.getURI())) return TRUE;\r
+\r
+       // if the note is opened, close it.\r
+       if (g_Property.GetUseTwoPane() && pMgr->GetDetailsView()->IsNoteDisplayed(loc.getURI())) {\r
+               pMgr->InactiveDetailsView();\r
+       }\r
+\r
+       // decrypt\r
+       URIOption opt(NOTE_OPTIONMASK_ENCRYPTED);\r
+       opt.bEncrypt = FALSE;\r
+       if (!g_Repository.SetOption(loc.getURI(), &opt)) {\r
+               switch(GetLastError()) {\r
+               case ERROR_TOMBO_W_DELETEOLD_FAILED:\r
+                       MessageBox(NULL, MSG_DEL_PREV_DECRYPT_MEMO_FAILED, TOMBO_APP_NAME, MB_ICONWARNING | MB_OK);\r
+                       break;\r
+               default:\r
+                       MessageBox(NULL, MSG_DECRYPT_FAILED, TOMBO_APP_NAME, MB_ICONERROR | MB_OK);\r
+                       break;\r
+               }\r
+               return FALSE;\r
+       }\r
+\r
+       // replace URI that TreeViewItem have\r
+       loc.set(opt.pNewURI);\r
+       pView->GetManager()->ChangeURINotify(opt.pNewURI);\r
+\r
+       // update icon and headline string\r
+       if (!pView->UpdateItemStatusNotify(this, opt.pNewHeadLine->Get())) {\r
+               return FALSE;\r
+       }\r
+       return TRUE;\r
+}\r
+\r
+BOOL TreeViewFileItem::IsOperationEnabled(MemoSelectView *pView, OpType op)\r
+{\r
+       URIOption opt(NOTE_OPTIONMASK_ENCRYPTED);\r
+       const TomboURI *pURI = GetRealURI();\r
+       if (!g_Repository.GetOption(pURI, &opt)) return FALSE;\r
+\r
+       if (op == OpEncrypt) {\r
+               return !opt.bEncrypt;\r
+       } else if (op == OpDecrypt) {\r
+               return opt.bEncrypt;\r
+       } else {\r
+               DWORD nOpMatrix = OpDelete | OpRename | OpNewMemo | OpNewFolder | OpCut | OpCopy | OpPaste;\r
+               return (nOpMatrix & op) != 0;\r
+       }\r
+}\r
+\r
+BOOL TreeViewFileItem::Rename(MemoManager *pMgr, MemoSelectView *pView, LPCTSTR pNewHeadLine)\r
+{\r
+       URIOption opt;\r
+       if (!g_Repository.ChangeHeadLine(loc.getURI(), pNewHeadLine, &opt)) {\r
+               switch(GetLastError()) {\r
+               case ERROR_NO_DATA:\r
+                       TomboMessageBox(NULL, MSG_NO_FILENAME, TOMBO_APP_NAME, MB_ICONWARNING | MB_OK);\r
+                       break;\r
+               case ERROR_ALREADY_EXISTS:\r
+                       TomboMessageBox(NULL, MSG_SAME_FILE, TOMBO_APP_NAME, MB_ICONWARNING | MB_OK);\r
+                       break;\r
+               case ERROR_TOMBO_I_OPERATION_NOT_PERFORMED:\r
+                       return TRUE;\r
+               default:\r
+                       {\r
+                               TCHAR buf[MAX_PATH];\r
+                               wsprintf(buf, MSG_RENAME_FAILED, GetLastError());\r
+                               TomboMessageBox(NULL, buf, TOMBO_APP_NAME, MB_ICONERROR | MB_OK);\r
+                       }\r
+               }\r
+               return FALSE;\r
+       }\r
+\r
+       loc.set(opt.pNewURI);\r
+       pView->GetManager()->ChangeURINotify(opt.pNewURI);\r
+       return TRUE;\r
+}\r
+\r
+DWORD TreeViewFileItem::GetIcon(MemoSelectView *, DWORD nStatus)\r
+{\r
+       URIOption opt(NOTE_OPTIONMASK_ENCRYPTED);\r
+       const TomboURI *pURI = GetRealURI();\r
+       if (!g_Repository.GetOption(pURI, &opt)) return FALSE;\r
+\r
+       if (nStatus & MEMO_VIEW_STATE_INIT) {\r
+               if (opt.bEncrypt) {\r
+                       return IMG_ARTICLE_ENCRYPTED;\r
+               } else {\r
+                       return IMG_ARTICLE;\r
+               }\r
+       }\r
+\r
+       if (nStatus & MEMO_VIEW_STATE_CLIPED_SET) {\r
+               if (opt.bEncrypt) {\r
+                       return IMG_ARTICLE_ENC_MASKED;\r
+               } else {\r
+                       return IMG_ARTICLE_MASKED;\r
+               }\r
+       } else {\r
+               if (opt.bEncrypt) {\r
+                       return IMG_ARTICLE_ENCRYPTED;\r
+               } else {\r
+                       return IMG_ARTICLE;\r
+               }\r
+       }\r
+}\r
+\r
+DWORD TreeViewFileItem::ItemOrder()\r
+{\r
+       return ITEM_ORDER_FILE;\r
+}\r
+\r
+BOOL TreeViewFileItem::OpenMemo(MemoSelectView *pView, DWORD nOption)\r
+{\r
+       pView->GetManager()->GetMainFrame()->OpenDetailsView(loc.getURI(), nOption);\r
+       return TRUE;\r
+}\r
+\r
+BOOL TreeViewFileItem::LoadMemo(MemoSelectView *pView, BOOL bAskPass)\r
+{\r
+       pView->GetManager()->GetMainFrame()->LoadMemo(loc.getURI(), bAskPass);\r
+       return TRUE;\r
+}\r
+\r
+BOOL TreeViewFileItem::ExecApp(MemoManager *pMgr, MemoSelectView *pView, ExeAppType nType)\r
+{\r
+       if(!g_Repository.ExecuteAssoc(loc.getURI(), nType)) return FALSE;\r
+       return TRUE;\r
+}\r
+\r
+/////////////////////////////////////////////\r
+/////////////////////////////////////////////\r
+//  Folder\r
+/////////////////////////////////////////////\r
+/////////////////////////////////////////////\r
+\r
+TreeViewFolderItem::TreeViewFolderItem() : TreeViewItem(TRUE)\r
+{\r
+}\r
+\r
+static BOOL IsSubFolder(LPCTSTR pSrc, LPCTSTR pDst)\r
+{\r
+       DWORD n = _tcslen(pSrc);\r
+       if (_tcsncmp(pSrc, pDst, n) == 0) return TRUE;\r
+       return FALSE;\r
+}\r
+\r
+BOOL TreeViewFolderItem::CopyMove(BOOL bCopy, MemoManager *pMgr, MemoSelectView *pView, LPCTSTR *ppErr)\r
+{\r
+       // Inactivate edit view\r
+       pMgr->InactiveDetailsView();\r
+       if (!bCopy) {\r
+               pView->TreeCollapse(GetViewItem());\r
+       }\r
+\r
+       // convert to URI\r
+       TomboURI sSrcURI, sDstURI;\r
+       HTREEITEM hSrcItem = GetViewItem();\r
+       sSrcURI = *GetRealURI();\r
+\r
+       TomboURI sSelURI;\r
+       const TomboURI *pCurSel = pView->GetCurrentSelectedURI();\r
+       if (pCurSel == NULL) return FALSE;\r
+       sSelURI = *pCurSel;\r
+\r
+       if (!g_Repository.GetAttachURI(&sSelURI, &sDstURI)) return FALSE;\r
+       HTREEITEM hParentX = pView->ShowItemByURI(&sDstURI, FALSE, FALSE);\r
+\r
+       URIOption opt;\r
+       BOOL bResult;\r
+       if (bCopy) {\r
+               bResult = g_Repository.Copy(&sSrcURI, &sDstURI, &opt);\r
+       } else {\r
+               bResult = g_Repository.Move(&sSrcURI, &sDstURI, &opt);\r
+       }\r
+       if (!bResult) {\r
+               if (GetLastError() == ERROR_TOMBO_W_OPERATION_NOT_PERMITTED) {\r
+                       *ppErr = MSG_DST_FOLDER_IS_SRC_SUBFOLDER;\r
+               }\r
+               return FALSE;\r
+       }\r
+\r
+       TString sHL;\r
+       if (!g_Repository.GetHeadLine(&sSrcURI, &sHL)) return FALSE;\r
+       pView->CreateNewFolder(hParentX, sHL.Get());\r
+       return TRUE;\r
+}\r
+\r
+BOOL TreeViewFolderItem::Move(MemoManager *pMgr, MemoSelectView *pView, LPCTSTR *ppErr)\r
+{\r
+       return CopyMove(FALSE, pMgr, pView, ppErr);\r
+}\r
+\r
+BOOL TreeViewFolderItem::Copy(MemoManager *pMgr, MemoSelectView *pView, LPCTSTR *ppErr)\r
+{\r
+       return CopyMove(TRUE, pMgr, pView, ppErr);\r
+}\r
+\r
+BOOL TreeViewFolderItem::Delete(MemoManager *pMgr, MemoSelectView *pView)\r
+{\r
+       TomboURI sURI;\r
+       sURI = *GetRealURI();\r
+\r
+       if (sURI.IsRoot()) return TRUE;\r
+       if (TomboMessageBox(NULL, MSG_CONFIRM_DEL_FOLDER, MSG_DEL_FOLDER_TTL, MB_ICONQUESTION | MB_OKCANCEL) != IDOK) return FALSE;\r
+\r
+       // inactivate notes\r
+       pMgr->InactiveDetailsView();\r
+\r
+       // Collapse tree\r
+       pView->TreeCollapse(GetViewItem());\r
+\r
+       URIOption opt;\r
+       if (!g_Repository.Delete(&sURI, &opt)) {\r
+               switch(GetLastError()) {\r
+               case ERROR_TOMBO_W_OTHERFILE_EXISTS:\r
+                       MessageBox(NULL, MSG_OTHER_FILE_EXISTS, TOMBO_APP_NAME, MB_ICONWARNING | MB_OK);\r
+                       break;\r
+               case ERROR_TOMBO_E_RMFILE_FAILED:\r
+                       MessageBox(NULL, MSG_RMFILE_FAILED, TOMBO_APP_NAME, MB_ICONERROR | MB_OK);\r
+                       break;\r
+               case ERROR_TOMBO_E_RMDIR_FAILED:\r
+                       MessageBox(NULL, MSG_RMDIR_FAILED, TOMBO_APP_NAME, MB_ICONERROR | MB_OK);\r
+                       break;\r
+               default:\r
+                       MessageBox(NULL, MSG_DELETE_FAILED, TOMBO_APP_NAME, MB_ICONERROR | MB_OK);\r
+                       break;\r
+               }\r
+               return FALSE;\r
+       }\r
+       return TRUE;\r
+}\r
+\r
+BOOL TreeViewFolderItem::Encrypt(MemoManager *pMgr, MemoSelectView *pView)\r
+{\r
+       TomboURI sURI;\r
+       sURI = *GetRealURI();\r
+\r
+       if (sURI.IsRoot()) return TRUE;\r
+       if (TomboMessageBox(NULL, MSG_CONFIRM_ENCRYPT_FOLDER, MSG_CONFIRM_ENCRYPT_FOLDER_TTL, MB_ICONQUESTION | MB_OKCANCEL) != IDOK) return TRUE;\r
+\r
+       pMgr->InactiveDetailsView();\r
+       pView->TreeCollapse(GetViewItem());\r
+\r
+       // encrypt request to repository\r
+       URIOption opt(NOTE_OPTIONMASK_ENCRYPTED);\r
+       opt.bEncrypt = TRUE;\r
+       if (!g_Repository.SetOption(&sURI, &opt)) {\r
+               switch(GetLastError()) {\r
+               case ERROR_TOMBO_I_GET_PASSWORD_CANCELED:\r
+                       MessageBox(NULL, MSG_GET_PASS_FAILED, TOMBO_APP_NAME, MB_ICONINFORMATION | MB_OK);\r
+                       return TRUE;\r
+               default:\r
+                       MessageBox(NULL, MSG_ENCRYPT_FAILED, TOMBO_APP_NAME, MB_ICONERROR | MB_OK);\r
+                       return FALSE;\r
+               }\r
+       }\r
+       return TRUE;\r
+}\r
+\r
+BOOL TreeViewFolderItem::Decrypt(MemoManager *pMgr, MemoSelectView *pView)\r
+{\r
+       TomboURI sURI;\r
+       sURI = *GetRealURI();\r
+\r
+       if (sURI.IsRoot()) return TRUE;\r
+       if (TomboMessageBox(NULL, MSG_CONFIRM_DECRYPT_FOLDER, MSG_CONFIRM_DECRYPT_FOLDER_TTL, MB_ICONQUESTION | MB_OKCANCEL) != IDOK) return TRUE;\r
+\r
+       pMgr->InactiveDetailsView();\r
+       pView->TreeCollapse(GetViewItem());\r
+\r
+       // decrypt request to repository\r
+       URIOption opt(NOTE_OPTIONMASK_ENCRYPTED);\r
+       opt.bEncrypt = FALSE;\r
+       if (!g_Repository.SetOption(&sURI, &opt)) {\r
+               switch(GetLastError()) {\r
+               case ERROR_TOMBO_I_GET_PASSWORD_CANCELED:\r
+                       MessageBox(NULL, MSG_GET_PASS_FAILED, TOMBO_APP_NAME, MB_ICONINFORMATION | MB_OK);\r
+                       return TRUE;\r
+               default:\r
+                       MessageBox(NULL, MSG_DECRYPT_FAILED, TOMBO_APP_NAME, MB_ICONERROR | MB_OK);\r
+                       return FALSE;\r
+               }       \r
+       }\r
+       return TRUE;\r
+}\r
+\r
+DWORD TreeViewFolderItem::GetIcon(MemoSelectView *pView, DWORD nStatus)\r
+{\r
+       if (nStatus & MEMO_VIEW_STATE_INIT) {\r
+               return IMG_FOLDER;\r
+       }\r
+\r
+       // \83X\83e\81[\83^\83X\82Ì\8eæ\93¾\r
+       TV_ITEM ti;\r
+       ti.mask = TVIF_STATE | TVIF_IMAGE;\r
+       ti.hItem = GetViewItem();\r
+       ti.stateMask = TVIS_EXPANDED;\r
+       pView->GetItem(&ti);\r
+\r
+       BOOL bExpanded = ti.state & TVIS_EXPANDED;\r
+       BOOL bCliped = pView->IsCliped(this);\r
+\r
+       if (nStatus & MEMO_VIEW_STATE_CLIPED_SET) {\r
+               bCliped = TRUE;\r
+       }\r
+       if (nStatus & MEMO_VIEW_STATE_CLIPED_CLEAR) {\r
+               bCliped = FALSE;\r
+       }\r
+       if (nStatus & MEMO_VIEW_STATE_OPEN_SET) {\r
+               bExpanded = TRUE;\r
+       }\r
+       if (nStatus & MEMO_VIEW_STATE_OPEN_CLEAR) {\r
+               bExpanded = FALSE;\r
+       }\r
+\r
+       if (bCliped) {\r
+               if (bExpanded) {\r
+                       return IMG_FOLDER_SEL_MASKED;\r
+               } else {\r
+                       return IMG_FOLDER_MASKED;\r
+               }\r
+       } else {\r
+               if (bExpanded) {\r
+                       return IMG_FOLDER_SEL;\r
+               } else {\r
+                       return IMG_FOLDER;\r
+               }\r
+       }\r
+}\r
+\r
+BOOL TreeViewFolderItem::IsOperationEnabled(MemoSelectView *pView, OpType op)\r
+{\r
+       if (op == OpDelete || op == OpRename || op == OpCut || op == OpCopy) {\r
+               HTREEITEM hParent = pView->GetParentItem(GetViewItem());\r
+               if (hParent == NULL) return FALSE;\r
+               return TRUE;\r
+       } else {\r
+               DWORD nOpMatrix = OpEncrypt | OpDecrypt | OpNewMemo | OpNewFolder | OpPaste | OpGrep;\r
+               return (nOpMatrix & op) != 0;\r
+       }\r
+}\r
+\r
+BOOL TreeViewFolderItem::Rename(MemoManager *pMgr, MemoSelectView *pView, LPCTSTR pNewName)\r
+{\r
+       TomboURI sCurrentURI;\r
+       sCurrentURI = *GetRealURI();\r
+       \r
+       if (sCurrentURI.IsRoot()) return FALSE;\r
+\r
+       pMgr->InactiveDetailsView();\r
+       pView->TreeCollapse(GetViewItem());\r
+\r
+       URIOption opt;\r
+       if (!g_Repository.ChangeHeadLine(&sCurrentURI, pNewName, &opt)) {\r
+               DWORD nErr = GetLastError();\r
+               switch (nErr) {\r
+               case ERROR_NO_DATA:\r
+                       TomboMessageBox(NULL, MSG_NO_FOLDERNAME, TOMBO_APP_NAME, MB_ICONWARNING | MB_OK);\r
+                       break;\r
+               case ERROR_ALREADY_EXISTS:\r
+                       TomboMessageBox(NULL, MSG_SAME_FOLDER, TOMBO_APP_NAME, MB_ICONWARNING | MB_OK);\r
+                       break;\r
+               default:\r
+                       {\r
+                               TCHAR buf[MAX_PATH];\r
+                               wsprintf(buf, MSG_REN_FOLDER_FAILED, nErr);\r
+                               TomboMessageBox(NULL, buf, TOMBO_APP_NAME, MB_ICONERROR | MB_OK);\r
+                       }\r
+               }\r
+               return FALSE;\r
+       }\r
+       return TRUE;\r
+}\r
+\r
+DWORD TreeViewFolderItem::ItemOrder()\r
+{\r
+       return ITEM_ORDER_FOLDER;\r
+}\r
+\r
+\r
+BOOL TreeViewFolderItem::Expand(MemoSelectView *pView)\r
+{\r
+       HTREEITEM hParent = GetViewItem();\r
+\r
+       TomboURI sURI;\r
+       sURI = *GetRealURI();\r
+\r
+       BOOL bLoose;\r
+       URIList *pURIList = g_Repository.GetChild(&sURI, FALSE, TRUE, &bLoose);\r
+       if (pURIList == NULL) return FALSE;\r
+       AutoPointer<URIList> ap(pURIList);\r
+\r
+       if (bLoose) {\r
+               MessageBox(NULL, MSG_DECRYPT_IS_PARTIAL, TEXT("Warning"), MB_ICONWARNING | MB_OK);\r
+       }\r
+\r
+       DWORD n = pURIList->GetSize();\r
+       for (DWORD i = 0; i < n; i++) {\r
+               URIOption opt(NOTE_OPTIONMASK_VALID);\r
+               if (!g_Repository.GetOption(pURIList->GetURI(i), &opt)) return FALSE;\r
+               if (opt.bFolder) {\r
+                       TreeViewFolderItem *pItem = new TreeViewFolderItem();\r
+                       pItem->SetURI(pURIList->GetURI(i));\r
+                       pView->InsertFolder(hParent, pURIList->GetTitle(i), pItem, TRUE);\r
+               } else {\r
+                       if (!pView->InsertFile(hParent, pURIList->GetURI(i), pURIList->GetTitle(i), TRUE, FALSE)) return FALSE;\r
+               }\r
+       }\r
+\r
+       return TRUE;\r
+}\r
+\r
+BOOL TreeViewFolderItem::ExecApp(MemoManager *pMgr, MemoSelectView *pView, ExeAppType nType)\r
+{\r
+       TomboURI sURI;\r
+       sURI = *GetRealURI();\r
+       g_Repository.ExecuteAssoc(&sURI, nType);\r
+       return TRUE;\r
+}\r
+\r
+/////////////////////////////////////////////\r
+/////////////////////////////////////////////\r
+//  File link\r
+/////////////////////////////////////////////\r
+/////////////////////////////////////////////\r
+\r
+BOOL TreeViewFileLink::IsOperationEnabled(MemoSelectView *pView, OpType op)\r
+{\r
+       DWORD nOpMatrix = OpNewMemo | OpLink;\r
+       return (nOpMatrix & op) != 0;\r
+}\r
+\r
+/////////////////////////////////////////////\r
+/////////////////////////////////////////////\r
+//  Virtual folder(Root)\r
+/////////////////////////////////////////////\r
+/////////////////////////////////////////////\r
+\r
+TreeViewVirtualFolderRoot::TreeViewVirtualFolderRoot() : TreeViewFolderItem(), pDefaultURI(NULL)\r
+{\r
+}\r
+\r
+TreeViewVirtualFolderRoot::~TreeViewVirtualFolderRoot()\r
+{\r
+       delete pDefaultURI;\r
+}\r
+\r
+BOOL TreeViewVirtualFolderRoot::Init(const TomboURI *pURI, VFManager *p)\r
+{\r
+       pDefaultURI = new TomboURI();\r
+       pDefaultURI->Init(TEXT("tombo://default/"));\r
+       pManager = p;\r
+       SetURI(pURI);\r
+       return TRUE;\r
+}\r
+\r
+DWORD TreeViewVirtualFolderRoot::GetIcon(MemoSelectView *pView, DWORD nStatus)\r
+{\r
+       if (nStatus & MEMO_VIEW_STATE_INIT) {\r
+               return IMG_VFOLDER;\r
+       }\r
+\r
+       // Get status\r
+       TV_ITEM ti;\r
+       ti.mask = TVIF_STATE | TVIF_IMAGE;\r
+       ti.hItem = GetViewItem();\r
+       ti.stateMask = TVIS_EXPANDED;\r
+       pView->GetItem(&ti);\r
+\r
+       BOOL bExpanded = ti.state & TVIS_EXPANDED;\r
+\r
+       if (nStatus & MEMO_VIEW_STATE_OPEN_SET) {\r
+               bExpanded = TRUE;\r
+       }\r
+       if (nStatus & MEMO_VIEW_STATE_OPEN_CLEAR) {\r
+               bExpanded = FALSE;\r
+       }\r
+\r
+       if (bExpanded) {\r
+               return IMG_VFOLDER_SEL;\r
+       } else {\r
+               return IMG_VFOLDER;\r
+       }\r
+}\r
+\r
+BOOL TreeViewVirtualFolderRoot::InsertVirtualFolder(MemoSelectView *pView, LPCTSTR pName, VFDirectoryGenerator *pGen, VFStore *pStore)\r
+{\r
+       HTREEITEM hParent = GetViewItem();\r
+\r
+       TreeViewVirtualFolder *pVf = new TreeViewVirtualFolder();\r
+       if (pVf == NULL) return FALSE;\r
+\r
+       pVf->SetGenerator(pGen);\r
+       pVf->SetStore(pStore);\r
+\r
+       if (!pView->InsertFolder(hParent, pName, pVf, TRUE)) return FALSE;\r
+       return TRUE;\r
+}\r
+\r
+class VFExpandListener : public VirtualFolderEnumListener {\r
+       TreeViewVirtualFolderRoot *pRoot;\r
+       MemoSelectView *pView;\r
+public:\r
+       VFExpandListener(MemoSelectView *pv, TreeViewVirtualFolderRoot *pr) : pView(pv), pRoot(pr) {}\r
+\r
+       BOOL ProcessStream(LPCTSTR pName, BOOL bPersit, VFDirectoryGenerator *pGen, VFStore *pStore);\r
+};\r
+\r
+BOOL VFExpandListener::ProcessStream(LPCTSTR pName, BOOL bPersit, VFDirectoryGenerator *pGen, VFStore *pStore)\r
+{\r
+       return pRoot->InsertVirtualFolder(pView, pName, pGen, pStore); \r
+}\r
+\r
+BOOL TreeViewVirtualFolderRoot::Expand(MemoSelectView *pView)\r
+{\r
+       VFExpandListener vfel(pView, this);\r
+       pManager->Enum(&vfel);\r
+\r
+       return TRUE;\r
+}\r
+\r
+BOOL TreeViewVirtualFolderRoot::AddSearchResult(MemoSelectView *pView, const VFInfo *pInfo)\r
+{\r
+       HTREEITEM hParent = GetViewItem();\r
+       if (!pView->IsExpand(hParent)) {\r
+               pView->ToggleExpandFolder(hParent, 0);\r
+       } else {\r
+               // insert tree manually\r
+               VFExpandListener vfel(pView, this);\r
+               pManager->RetrieveInfo(pInfo, &vfel);\r
+       }\r
+       return TRUE;\r
+}\r
+\r
+\r
+BOOL TreeViewVirtualFolderRoot::IsOperationEnabled(MemoSelectView *pView, OpType op)\r
+{\r
+       DWORD nOpMatrix = OpNewMemo;\r
+       return (nOpMatrix & op) != 0;\r
+}\r
+\r
+const TomboURI *TreeViewVirtualFolderRoot::GetRealURI() const\r
+{\r
+       return pDefaultURI;\r
+}\r
+\r
+/////////////////////////////////////////////\r
+/////////////////////////////////////////////\r
+//  Virtual folder (non-root)\r
+/////////////////////////////////////////////\r
+/////////////////////////////////////////////\r
+\r
+TreeViewVirtualFolder::TreeViewVirtualFolder() : TreeViewFolderItem(), pGenerator(NULL), pStore(NULL), pDefaultURI(NULL)\r
+{\r
+       pDefaultURI = new TomboURI();\r
+       pDefaultURI->Init(TEXT("tombo://default/"));\r
+}\r
+\r
+TreeViewVirtualFolder::~TreeViewVirtualFolder()\r
+{\r
+       if (pGenerator) {\r
+               pGenerator->FreeObject();\r
+               delete pGenerator;\r
+       }\r
+       delete pDefaultURI;\r
+}\r
+\r
+DWORD TreeViewVirtualFolder::GetIcon(MemoSelectView *pView, DWORD nStatus)\r
+{\r
+       if (nStatus & MEMO_VIEW_STATE_INIT) {\r
+               return IMG_VFOLDER;\r
+       }\r
+\r
+       // Get status\r
+       TV_ITEM ti;\r
+       ti.mask = TVIF_STATE | TVIF_IMAGE;\r
+       ti.hItem = GetViewItem();\r
+       ti.stateMask = TVIS_EXPANDED;\r
+       pView->GetItem(&ti);\r
+\r
+       BOOL bExpanded = ti.state & TVIS_EXPANDED;\r
+\r
+       if (nStatus & MEMO_VIEW_STATE_OPEN_SET) {\r
+               bExpanded = TRUE;\r
+       }\r
+       if (nStatus & MEMO_VIEW_STATE_OPEN_CLEAR) {\r
+               bExpanded = FALSE;\r
+       }\r
+\r
+       if (bExpanded) {\r
+               return IMG_VFOLDER_SEL;\r
+       } else {\r
+               return IMG_VFOLDER;\r
+       }\r
+}\r
+\r
+BOOL TreeViewVirtualFolder::SetGenerator(VFDirectoryGenerator *p)\r
+{\r
+       pGenerator = p;\r
+       return TRUE;\r
+}\r
+\r
+BOOL TreeViewVirtualFolder::SetStore(VFStore *p)\r
+{\r
+       pStore = p;\r
+       return TRUE;\r
+}\r
+\r
+BOOL TreeViewVirtualFolder::Expand(MemoSelectView *pView)\r
+{\r
+       HTREEITEM hItem = GetViewItem();\r
+\r
+       // scanning.\r
+       if (!pGenerator || !pStore || \r
+               !pGenerator->Prepare() || \r
+               !pGenerator->Activate() ||\r
+               !pGenerator->PostActivate()) {\r
+               return FALSE;\r
+       }\r
+\r
+       // Insert notes to tree\r
+       DWORD n = pStore->NumItem();\r
+       VFNote *pNote;\r
+       for (DWORD i = 0; i < n; i++) {\r
+               pNote = pStore->GetNote(i);\r
+               LPCTSTR pTitle = pNote->GetTitle();\r
+               pView->InsertFile(hItem, pNote->GetURI(), pTitle, TRUE, TRUE);\r
+       }\r
+       pStore->FreeArray();\r
+       return TRUE;\r
+}\r
+\r
+BOOL TreeViewVirtualFolder::IsOperationEnabled(MemoSelectView *pView, OpType op)\r
+{\r
+       DWORD nOpMatrix = OpNewMemo;\r
+       return (nOpMatrix & op) != 0;\r
+}\r
+\r
+const TomboURI *TreeViewVirtualFolder::GetRealURI() const\r
+{\r
+       return pDefaultURI;\r
+}\r
diff --git a/Src/TreeViewItem.h b/Src/TreeViewItem.h
new file mode 100644 (file)
index 0000000..5761228
--- /dev/null
@@ -0,0 +1,254 @@
+#ifndef TREEVIEWITEM_H\r
+#define TREEVIEWITEM_H\r
+\r
+#include <commctrl.h>\r
+\r
+class MemoSelectView;\r
+class MemoManager;\r
+class VFDirectoryGenerator;\r
+class VFStore;\r
+class VFStream;\r
+class MemoLoctor;\r
+class TreeViewVirtualFolder;\r
+class TString;\r
+class VFManager;\r
+class VFInfo;\r
+class TomboURI;\r
+\r
+#include "MemoManager.h"\r
+#include "VarBuffer.h"\r
+\r
+/////////////////////////////////////////////\r
+//  TreeView Node\r
+/////////////////////////////////////////////\r
+\r
+class TreeViewItem {\r
+       BOOL bHasMultiItem;\r
+       HTREEITEM hItem;\r
+\r
+protected:\r
+       class Locator {\r
+               TomboURI *pURI;\r
+       public:\r
+               Locator() : pURI(NULL) {}\r
+               ~Locator();\r
+               const TomboURI *getURI() const { return pURI; }\r
+               void set(const TomboURI *pURI);\r
+       };\r
+\r
+       Locator loc;\r
+\r
+public:\r
+       ///////////////////////////////////////////////////////\r
+       // constants\r
+\r
+       enum OpType {\r
+               OpDelete        = (1 << 0),\r
+               OpRename        = (1 << 1),\r
+               OpEncrypt       = (1 << 2),\r
+               OpDecrypt       = (1 << 3),\r
+               OpNewMemo       = (1 << 4),\r
+               OpNewFolder = (1 << 5),\r
+               OpCut           = (1 << 6),\r
+               OpCopy          = (1 << 7),\r
+               OpPaste         = (1 << 8),\r
+               OpGrep          = (1 << 9),\r
+               OpLink          = (1 << 10)\r
+       };\r
+\r
+       ///////////////////////////////////////////////////////\r
+       // TreeViewItem specific methods\r
+\r
+       TreeViewItem(BOOL bMultiItem);\r
+       virtual ~TreeViewItem();\r
+\r
+       HTREEITEM GetViewItem();\r
+       void SetViewItem(HTREEITEM h);\r
+\r
+       BOOL HasMultiItem() { return bHasMultiItem; }\r
+\r
+       ////////////////////////////////\r
+       // location related members\r
+\r
+       void SetURI(const TomboURI *p);\r
+       virtual const TomboURI *GetRealURI() const { return loc.getURI(); }\r
+\r
+       ///////////////////////////////////////////////////////\r
+\r
+       // is operation enabled?\r
+       virtual BOOL IsOperationEnabled(MemoSelectView *pView, OpType op);\r
+\r
+       //  node operators\r
+       virtual BOOL Rename(MemoManager *pMgr, MemoSelectView *pView, LPCTSTR pNewName) = 0;\r
+       virtual BOOL Delete(MemoManager *pMgr, MemoSelectView *pView) = 0;\r
+               // "this" object is not deleted, so delete manually if return value is TRUE.\r
+       virtual BOOL Encrypt(MemoManager *pMgr, MemoSelectView *pView) = 0;\r
+       virtual BOOL Decrypt(MemoManager *pMgr, MemoSelectView *pView) = 0;\r
+       virtual BOOL ExecApp(MemoManager *pMgr, MemoSelectView *pView, ExeAppType nType) = 0;\r
+\r
+       // Move/Copy this item to current selected item\r
+       virtual BOOL Move(MemoManager *pMgr, MemoSelectView *pView, LPCTSTR *ppErr) = 0;\r
+       virtual BOOL Copy(MemoManager *pMgr, MemoSelectView *pView, LPCTSTR *ppErr) = 0;\r
+\r
+       // Compare item order\r
+       virtual DWORD ItemOrder() = 0;\r
+       virtual DWORD GetIcon(MemoSelectView *pView, DWORD nStatus) = 0;\r
+\r
+       // Get path information\r
+\r
+       virtual BOOL OpenMemo(MemoSelectView *pView, DWORD nOption);\r
+       virtual BOOL LoadMemo(MemoSelectView *pView, BOOL bAskPass);\r
+       virtual BOOL IsUseDetailsView();\r
+};\r
+\r
+/////////////////////////////////////////////\r
+//  File\r
+/////////////////////////////////////////////\r
+class TreeViewFileItem : public TreeViewItem {\r
+protected:\r
+\r
+       BOOL CopyMove(BOOL bCopy, MemoManager *pMgr, MemoSelectView *pView);\r
+public:\r
+       TreeViewFileItem();\r
+       ~TreeViewFileItem();\r
+\r
+       ////////////////////////////////\r
+       // inherited methods\r
+       BOOL IsOperationEnabled(MemoSelectView *pView, OpType op);\r
+\r
+       BOOL Delete(MemoManager *pMgr, MemoSelectView *pView);\r
+       BOOL Encrypt(MemoManager *pMgr, MemoSelectView *pView);\r
+       BOOL Decrypt(MemoManager *pMgr, MemoSelectView *pView);\r
+       BOOL Rename(MemoManager *pMgr, MemoSelectView *pView, LPCTSTR pNewName);\r
+       BOOL ExecApp(MemoManager *pMgr, MemoSelectView *pView, ExeAppType nType);\r
+\r
+       BOOL Move(MemoManager *pMgr, MemoSelectView *pView, LPCTSTR *ppErr);\r
+       BOOL Copy(MemoManager *pMgr, MemoSelectView *pView, LPCTSTR *ppErr);\r
+\r
+       DWORD GetIcon(MemoSelectView *pView, DWORD nStatus);\r
+       DWORD ItemOrder();\r
+\r
+       BOOL OpenMemo(MemoSelectView *pView, DWORD nOption);\r
+       BOOL LoadMemo(MemoSelectView *pView, BOOL bAskPass);\r
+\r
+};\r
+\r
+/////////////////////////////////////////////\r
+//  Real folder\r
+/////////////////////////////////////////////\r
+\r
+class TreeViewFolderItem : public TreeViewItem {\r
+       BOOL CopyMove(BOOL bCopy, MemoManager *pMgr, MemoSelectView *pView, LPCTSTR *ppErr);\r
+public:\r
+       TreeViewFolderItem();\r
+\r
+       ////////////////////////////////\r
+       // multi node methods\r
+\r
+       virtual BOOL Expand(MemoSelectView *pView);\r
+\r
+       ////////////////////////////////\r
+       // inherited methods\r
+\r
+       BOOL IsOperationEnabled(MemoSelectView *pView, OpType op);\r
+\r
+       BOOL Rename(MemoManager *pMgr, MemoSelectView *pView, LPCTSTR pNewName);\r
+       BOOL Delete(MemoManager *pMgr, MemoSelectView *pView);\r
+       BOOL Encrypt(MemoManager *pMgr, MemoSelectView *pView);\r
+       BOOL Decrypt(MemoManager *pMgr, MemoSelectView *pView);\r
+       BOOL ExecApp(MemoManager *pMgr, MemoSelectView *pView, ExeAppType nType);\r
+\r
+       BOOL Move(MemoManager *pMgr, MemoSelectView *pView, LPCTSTR *ppErr);\r
+       BOOL Copy(MemoManager *pMgr, MemoSelectView *pView, LPCTSTR *ppErr);\r
+\r
+       DWORD GetIcon(MemoSelectView *pView, DWORD nStatus);\r
+       DWORD ItemOrder();\r
+};\r
+\r
+/////////////////////////////////////////////\r
+//  File link\r
+/////////////////////////////////////////////\r
+class TreeViewFileLink : public TreeViewFileItem {\r
+public:\r
+\r
+       ////////////////////////////////\r
+       // inherited methods\r
+\r
+       BOOL IsOperationEnabled(MemoSelectView *pView, OpType op);\r
+};\r
+\r
+/////////////////////////////////////////////\r
+//  Virtual Folder (Root)\r
+/////////////////////////////////////////////\r
+\r
+class TreeViewVirtualFolderRoot : public TreeViewFolderItem {\r
+       VFManager *pManager;\r
+       TomboURI *pDefaultURI;\r
+public:\r
+       TreeViewVirtualFolderRoot();\r
+       ~TreeViewVirtualFolderRoot();\r
+       BOOL Init(const TomboURI *pURI, VFManager *pManager);\r
+\r
+       ////////////////////////////\r
+       // class specific methods\r
+\r
+       BOOL AddSearchResult(MemoSelectView *pView, const VFInfo *p);\r
+       BOOL InsertVirtualFolder(MemoSelectView *pView, LPCTSTR pName, VFDirectoryGenerator *pGen, VFStore *pStore);\r
+\r
+       ////////////////////////////////\r
+       // multi node methods\r
+\r
+       BOOL Expand(MemoSelectView *pView);\r
+\r
+       ////////////////////////////////\r
+       // inherited methods\r
+\r
+       BOOL IsOperationEnabled(MemoSelectView *pView, OpType op);\r
+\r
+       DWORD GetIcon(MemoSelectView *pView, DWORD nStatus);\r
+\r
+       const TomboURI *GetRealURI() const;\r
+};\r
+\r
+\r
+/////////////////////////////////////////////\r
+//  Virtual Folder (Non-root)\r
+/////////////////////////////////////////////\r
+\r
+class TreeViewVirtualFolder : public TreeViewFolderItem {\r
+protected:\r
+       VFDirectoryGenerator *pGenerator;\r
+       VFStore *pStore;\r
+       TomboURI *pDefaultURI;\r
+public:\r
+       TreeViewVirtualFolder();\r
+       ~TreeViewVirtualFolder();\r
+\r
+       ////////////////////////////\r
+       // class specific methods\r
+\r
+       // pGen's life scope is control under TreeViewVirtualFolder.\r
+       // don't delete pGen after calling SetGenerator.\r
+       BOOL SetGenerator(VFDirectoryGenerator *pGen);\r
+\r
+       // pStore's  life scope is control under TreeViewVirtualFolder.\r
+       // don't delete pStore after calling SetStore.\r
+       BOOL SetStore(VFStore *pStore);\r
+\r
+       ////////////////////////////////\r
+       // multi node methods\r
+\r
+       BOOL Expand(MemoSelectView *pView);\r
+\r
+       ////////////////////////////////\r
+       // inherited methods\r
+\r
+       BOOL IsOperationEnabled(MemoSelectView *pView, OpType op);\r
+\r
+       DWORD GetIcon(MemoSelectView *pView, DWORD nStatus);\r
+\r
+       const TomboURI *GetRealURI() const;\r
+};\r
+\r
+\r
+#endif\r
diff --git a/Src/URIScanner.cpp b/Src/URIScanner.cpp
new file mode 100644 (file)
index 0000000..11e49b0
--- /dev/null
@@ -0,0 +1,340 @@
+#include <windows.h>\r
+#include <tchar.h>\r
+#include "Tombo.h"\r
+#include "UniConv.h"\r
+#include "TString.h"\r
+#include "TomboURI.h"\r
+#include "VarBuffer.h"\r
+#include "URIScanner.h"\r
+#include "Repository.h"\r
+\r
+#define URILIST_INITSIZE 20\r
+#define URILIST_DELTASIZE 10\r
+\r
+/////////////////////////////////////////////////\r
+//////////////////////////////////////////////////\r
+// URIList implementation\r
+//////////////////////////////////////////////////\r
+//////////////////////////////////////////////////\r
+\r
+URIList::URIList()\r
+{\r
+}\r
+\r
+URIList::~URIList()\r
+{\r
+       for (DWORD i = 0; i < liList.NumItems(); i++) {\r
+               URIListItem *pItem = liList.GetUnit(i);\r
+               delete pItem->pURI;\r
+               delete [] pItem->pTitle;\r
+       }\r
+}\r
+\r
+BOOL URIList::Init()\r
+{\r
+       if (!liList.Init(URILIST_INITSIZE, URILIST_DELTASIZE)) return FALSE;\r
+       return TRUE;\r
+}\r
+\r
+BOOL URIList::Add(const TomboURI *pURI, LPCTSTR pTitle)\r
+{\r
+       URIListItem item;\r
+       if (pURI) {\r
+               item.pURI = new TomboURI(*pURI);\r
+               if (item.pURI == NULL) { SetLastError(ERROR_NOT_ENOUGH_MEMORY); return FALSE; }\r
+       }\r
+\r
+       if (pTitle) {\r
+               item.pTitle = StringDup(pTitle); \r
+               if (item.pTitle == NULL) return FALSE;\r
+       }\r
+\r
+       if (!liList.Add(&item)) return FALSE;\r
+\r
+       return TRUE;\r
+}\r
+\r
+/////////////////////////////////////////////////\r
+//////////////////////////////////////////////////\r
+// URIScanner implementation\r
+//////////////////////////////////////////////////\r
+//////////////////////////////////////////////////\r
+\r
+//////////////////////////////////////////////////\r
+// ctor & Initialize\r
+//////////////////////////////////////////////////\r
+\r
+URIScanner::URIScanner() : pBaseURI(NULL), pCurrentURI(NULL), pTop(NULL), pBaseTitle(NULL)\r
+{\r
+}\r
+\r
+BOOL URIScanner::Init(IEnumRepository *pRepo, const TomboURI *pURI, BOOL bSKE)\r
+{\r
+       // initialize value\r
+       pRepository = pRepo;\r
+       bSkipEncrypt = bSKE;\r
+       iDirection = 1;\r
+\r
+       // check URI\r
+       URIOption opt(NOTE_OPTIONMASK_VALID);\r
+       if (!pRepository->GetOption(pURI, &opt)) return FALSE;\r
+\r
+       if (!opt.bFolder) {\r
+               SetLastError(ERROR_INVALID_PARAMETER);\r
+               return FALSE;\r
+       }\r
+\r
+       // set URI\r
+       pBaseURI = new TomboURI(*pURI);\r
+\r
+       return TRUE;\r
+}\r
+\r
+//////////////////////////////////////////////////\r
+// dtor\r
+//////////////////////////////////////////////////\r
+\r
+URIScanner::~URIScanner()\r
+{\r
+       ClearStack();\r
+       delete pBaseURI;\r
+       delete pBaseTitle;\r
+}\r
+\r
+//////////////////////////////////////////////////\r
+// treat stack frame\r
+//////////////////////////////////////////////////\r
+\r
+void URIScanner::ClearStack()\r
+{\r
+       while(pTop) {\r
+               LeaveFrame();\r
+       }\r
+}\r
+\r
+void URIScanner::LeaveFrame()\r
+{\r
+       StackFrame *pSF = pTop;\r
+       pTop = pSF->pNext;\r
+\r
+       delete pSF->pList;\r
+       delete pSF;\r
+}\r
+\r
+BOOL URIScanner::PushFrame(const TomboURI *pURI)\r
+{\r
+       StackFrame *pSF = new StackFrame();\r
+       if (pSF == NULL) { SetLastError(ERROR_NOT_ENOUGH_MEMORY); return FALSE; }\r
+\r
+       BOOL bLoose;\r
+       pSF->pList = pRepository->GetChild(pCurrentURI, bSkipEncrypt, FALSE, &bLoose);\r
+       if (pSF->pList == NULL) {\r
+               DWORD n = GetLastError();\r
+               if (GetLastError() == ERROR_CANCELLED) {\r
+                       StopScan();\r
+                       delete pSF;\r
+                       return TRUE;\r
+               }\r
+               return FALSE;\r
+       }\r
+       if (iDirection == 1) {\r
+               pSF->nPos = 0;\r
+       } else {\r
+               pSF->nPos = pSF->pList->GetSize() - 1;\r
+       }\r
+\r
+       pSF->pNext = pTop;\r
+       pTop = pSF;\r
+\r
+       return TRUE;\r
+}\r
+\r
+//////////////////////////////////////////////////\r
+// cutomisable methods\r
+//////////////////////////////////////////////////\r
+\r
+void URIScanner::InitialScan() {}\r
+void URIScanner::AfterScan() {}\r
+void URIScanner::PreFolder() {}\r
+void URIScanner::PostFolder() {}\r
+void URIScanner::Node() {}\r
+\r
+//////////////////////////////////////////////////\r
+// Scan repository\r
+//////////////////////////////////////////////////\r
+\r
+BOOL URIScanner::FullScan()\r
+{\r
+       return Scan(NULL, FALSE);\r
+}\r
+\r
+//////////////////////////////////////////////////\r
+// Scan repository\r
+//////////////////////////////////////////////////\r
+\r
+BOOL URIScanner::Scan(const TomboURI *pStartURI, BOOL bReverse)\r
+{\r
+       // Initialize \r
+       if (bReverse) {\r
+               iDirection = -1;\r
+       } else {\r
+               iDirection = 1;\r
+       }\r
+       bStopScan = FALSE;\r
+       pBaseTitle = new TString();\r
+       if (!pRepository->GetHeadLine(pBaseURI, pBaseTitle)) return FALSE;\r
+\r
+       // set marker and call initialize method\r
+       pCurrentURI = pBaseURI;\r
+       pTitle = pBaseTitle->Get();\r
+       InitialScan();\r
+\r
+\r
+       // create stack frame\r
+       if (pStartURI == NULL || _tcscmp(pStartURI->GetFullURI(), pBaseURI->GetFullURI()) == 0) {\r
+               if (!PushFrame(pCurrentURI)) return FALSE;\r
+               if (bStopScan) {\r
+                       AfterScan();\r
+                       return TRUE;\r
+               }\r
+               PreFolder();\r
+       } else {\r
+               // if pStartURI is passed, traverse the tree to create stack frame.\r
+               if (!MakeFrame(pStartURI)) {\r
+                       return FALSE;\r
+               }\r
+       }\r
+\r
+       while(pTop) {\r
+               // enum current frame\r
+               while (pTop->nPos >= 0 && pTop->nPos < pTop->pList->GetSize()) {\r
+\r
+                       if (bStopScan) break;\r
+\r
+                       // update marker\r
+                       pCurrentURI = pTop->pList->GetURI(pTop->nPos);\r
+                       pTitle = pTop->pList->GetTitle(pTop->nPos);\r
+\r
+                       // check folder or not\r
+                       URIOption opt(NOTE_OPTIONMASK_VALID);\r
+                       if (!pRepository->GetOption(pCurrentURI, &opt)) return FALSE;\r
+\r
+                       if (opt.bFolder) {\r
+                               // create new frame\r
+                               if (!PushFrame(pCurrentURI)) return FALSE;\r
+                               if (bStopScan) break;\r
+                               PreFolder();\r
+                               continue;\r
+                       } else {\r
+                               Node();\r
+                       }\r
+                       pTop->nPos += iDirection;\r
+               }\r
+\r
+               // when enumeration finished, \r
+               LeaveFrame();\r
+               if (pTop) {\r
+                       pCurrentURI = pTop->pList->GetURI(pTop->nPos);\r
+                       pTitle = pTop->pList->GetTitle(pTop->nPos);\r
+               } else {\r
+                       pCurrentURI = pBaseURI;\r
+                       pTitle = pBaseTitle->Get();\r
+               }\r
+               PostFolder();\r
+               if (pTop) {\r
+                       pTop->nPos += iDirection;\r
+               }\r
+       }\r
+\r
+       // call finalize method\r
+       AfterScan();\r
+\r
+       return TRUE;\r
+}\r
+\r
+//////////////////////////////////////////////////\r
+//\r
+//////////////////////////////////////////////////\r
+\r
+BOOL URIScanner::MakeFrame(const TomboURI *pStartURI)\r
+{\r
+       // check base uri and start uri\r
+       TString repB, repS;\r
+       if (!pBaseURI->GetRepositoryName(&repB) || !pStartURI->GetRepositoryName(&repS) ||\r
+               _tcscmp(repB.Get(), repS.Get()) != 0) return FALSE;\r
+\r
+       TomboURIItemIterator itrB(pBaseURI);\r
+       TomboURIItemIterator itrS(pStartURI);\r
+       if (!itrB.Init() || !itrS.Init()) return FALSE;\r
+       itrB.First(); itrS.First();\r
+       while(TRUE) {\r
+               LPCTSTR pB = itrB.Current();\r
+               LPCTSTR pS = itrS.Current();\r
+\r
+               if (pB == NULL || pS == NULL) {\r
+                       if (pS == NULL && pB != NULL) return FALSE;\r
+                       break;\r
+               }\r
+\r
+               if (_tcscmp(pB, pS) != 0) return FALSE;\r
+\r
+               itrB.Next();\r
+               itrS.Next();\r
+       }\r
+\r
+       // OK, stack frames.\r
+\r
+       const TomboURI *pURI = pCurrentURI;\r
+\r
+       pTitle = pBaseTitle->Get();\r
+\r
+       // stack first frame\r
+       if (!PushFrame(pURI)) return FALSE;\r
+       PreFolder();\r
+\r
+       TString shl;\r
+\r
+       LPCTSTR pElement = itrS.Current();\r
+       LPCTSTR pHeadLine;\r
+\r
+       do {\r
+               // get each element\r
+               if (itrS.IsLeaf()) {\r
+                       if (!pRepository->GetHeadLine(pStartURI, &shl)) return FALSE;\r
+                       pHeadLine = shl.Get();\r
+\r
+               } else {\r
+                       pHeadLine = pElement;\r
+\r
+               }\r
+\r
+               while (pTop->nPos >= 0 && pTop->nPos < pTop->pList->GetSize()) {\r
+                       LPCTSTR pElem = pTop->pList->GetTitle(pTop->nPos);\r
+\r
+                       if (_tcscmp(pHeadLine, pElem) == 0) {\r
+                               // path is matched.\r
+\r
+                               pCurrentURI = pTop->pList->GetURI(pTop->nPos);\r
+                               pTitle = pElem;\r
+\r
+                               URIOption opt(NOTE_OPTIONMASK_VALID);\r
+                               if (!pRepository->GetOption(pCurrentURI, &opt)) return FALSE;\r
+                               if (opt.bFolder) {\r
+                                       if (!PushFrame(pCurrentURI)) return FALSE;\r
+                                       if (bStopScan) break;\r
+                                       PreFolder();\r
+                                       break;\r
+                               } else {\r
+                                       break;\r
+                               }\r
+                       }\r
+\r
+                       pTop->nPos += iDirection;\r
+               }\r
+\r
+               itrS.Next();\r
+       } while((pElement = itrS.Current()) != NULL);\r
+\r
+\r
+       return TRUE;\r
+}\r
diff --git a/Src/URIScanner.h b/Src/URIScanner.h
new file mode 100644 (file)
index 0000000..74bce55
--- /dev/null
@@ -0,0 +1,98 @@
+#ifndef URISCANNER_H\r
+#define URISCANNER_H\r
+\r
+class TomboURI;\r
+class IEnumRepository;\r
+\r
+//////////////////////////////////////////////////\r
+// List of URI\r
+//////////////////////////////////////////////////\r
+//\r
+// item order is display order.\r
+\r
+class URIList {\r
+protected:\r
+       struct URIListItem {\r
+               TomboURI *pURI;\r
+               LPTSTR pTitle;\r
+\r
+               URIListItem() : pURI(NULL), pTitle(NULL) {}\r
+       };\r
+\r
+       TVector<URIListItem> liList;\r
+public:\r
+       URIList();\r
+       virtual ~URIList();\r
+\r
+       BOOL Init();\r
+\r
+       DWORD GetSize() { return liList.NumItems(); }\r
+       const TomboURI *GetURI(DWORD n) { return liList.GetUnit(n)->pURI; }\r
+       LPCTSTR GetTitle(DWORD n) { return liList.GetUnit(n)->pTitle; }\r
+\r
+       BOOL Add(const TomboURI *pURI, LPCTSTR pTitle);\r
+};\r
+\r
+//////////////////////////////////////////////////\r
+// URI Scanner class\r
+//////////////////////////////////////////////////\r
+\r
+class URIScanner {\r
+private:\r
+       struct StackFrame {\r
+               URIList *pList;\r
+               DWORD nPos;\r
+\r
+               StackFrame *pNext;\r
+       };\r
+       StackFrame *pTop;\r
+       IEnumRepository *pRepository;\r
+       TomboURI *pBaseURI;\r
+       TString *pBaseTitle;\r
+       BOOL bSkipEncrypt;\r
+\r
+       int iDirection; // 1 or -1\r
+\r
+       const TomboURI *pCurrentURI;\r
+       LPCTSTR pTitle;\r
+\r
+       BOOL bStopScan;\r
+\r
+       BOOL PushFrame(const TomboURI *pURI);\r
+       void ClearStack();\r
+       void LeaveFrame();\r
+\r
+       BOOL MakeFrame(const TomboURI *pStartPos);\r
+\r
+protected:\r
+       LPCTSTR GetTitle() { return pTitle; }\r
+\r
+       // Request to stop scanning. \r
+       // even if this flag is set, 5 methods are not interrupted and done at finish the method.\r
+       // Notice PostFolder() and AfterScan() is called even if flag is set.\r
+\r
+       virtual void InitialScan();\r
+       virtual void AfterScan();\r
+\r
+       virtual void PreFolder();\r
+       virtual void PostFolder();\r
+\r
+       virtual void Node();\r
+\r
+public:\r
+       URIScanner();\r
+       ~URIScanner();\r
+\r
+       BOOL Init(IEnumRepository *pEnumIF, const TomboURI *pTopURI, BOOL bSkipEncrypt);\r
+\r
+       void StopScan() { bStopScan = TRUE; }\r
+       BOOL IsStopScan() { return bStopScan; }\r
+\r
+       // The URI now scanning. You can use this value in 5 customizable methods.\r
+       const TomboURI* CurrentURI() { return pCurrentURI; }\r
+\r
+       BOOL FullScan();\r
+       BOOL Scan(const TomboURI *pStartURL, BOOL bReverse);\r
+};\r
+\r
+#endif
\ No newline at end of file
diff --git a/Src/VFManager.cpp b/Src/VFManager.cpp
new file mode 100644 (file)
index 0000000..4af0c31
--- /dev/null
@@ -0,0 +1,279 @@
+#include <windows.h>\r
+#include <tchar.h>\r
+#include "Message.h"\r
+#include "VarBuffer.h"\r
+#include "VFManager.h"\r
+#include "VFStream.h"\r
+#include "PasswordManager.h"\r
+#include "Tombo.h"\r
+#include "UniConv.h"\r
+#include "TString.h"\r
+#include "TSParser.h"\r
+#include "File.h"\r
+\r
+/////////////////////////////////////////////\r
+//  ctor & dtor\r
+/////////////////////////////////////////////\r
+\r
+VFManager::VFManager() : nGrepCount(0)\r
+{\r
+}\r
+\r
+VFManager::~VFManager()\r
+{\r
+       ClearInfo();\r
+}\r
+\r
+BOOL VFManager::Init()\r
+{\r
+       return vbInfo.Init(5,5);\r
+}\r
+\r
+void VFManager::ClearInfo()\r
+{\r
+       // delete vbInfo's items memory\r
+       DWORD n = vbInfo.NumItems();\r
+       VFInfo *p;\r
+       for (DWORD i = 0; i < n; i++) {\r
+               p = vbInfo.GetUnit(i);\r
+               p->Release();\r
+       }\r
+       vbInfo.Clear(FALSE);\r
+}\r
+\r
+/////////////////////////////////////////////\r
+//  Create stream from VFInfo\r
+/////////////////////////////////////////////\r
+\r
+BOOL VFManager::StreamObjectsFactory(const VFInfo *pInfo, VFDirectoryGenerator **ppGen, VFStore **ppStore)\r
+{\r
+       *ppGen = (VFDirectoryGenerator*)pInfo->pGenerator->Clone(ppStore);\r
+       return *ppGen != NULL;\r
+}\r
+\r
+/////////////////////////////////////////////\r
+//  Get VFInfo\r
+/////////////////////////////////////////////\r
+\r
+const VFInfo *VFManager::GetGrepVFInfo(LPCTSTR pPath, LPCTSTR pRegex,\r
+                                               BOOL bIsCaseSensitive, BOOL bCheckCrypt, BOOL bCheckFileName, BOOL bNegate)\r
+{\r
+       if (pPath == NULL || pRegex == NULL) {\r
+               SetLastError(ERROR_INVALID_DATA);\r
+               return NULL;\r
+       }\r
+       VFInfo vInfo;\r
+\r
+       // Create template stream\r
+       VFDirectoryGenerator *pGen = new VFDirectoryGenerator();\r
+       VFStore *pStore = new VFStore();\r
+       VFRegexFilter *pFilter = new VFRegexFilter();\r
+       if (!pGen || !pStore || !pFilter) {\r
+               SetLastError(ERROR_NOT_ENOUGH_MEMORY);\r
+               delete pGen;\r
+               delete pStore;\r
+               delete pFilter;\r
+               return NULL;\r
+       }\r
+       if (!pGen->Init(pPath, bCheckCrypt) ||\r
+               !pFilter->Init(pRegex, bIsCaseSensitive, bCheckCrypt, bCheckFileName, bNegate, g_pPasswordManager) ||\r
+               !pStore->Init()) {\r
+               delete pGen;\r
+               delete pStore;\r
+               delete pFilter;\r
+               return NULL;\r
+       }\r
+\r
+       pGen->SetNext(pFilter); pFilter->SetNext(pStore); //link objects\r
+       vInfo.bPersist = FALSE;\r
+       vInfo.pGenerator = pGen;\r
+       vInfo.pStore = pStore;\r
+\r
+       vInfo.pName = GetNodeName();\r
+       if (vInfo.pName == NULL) return NULL;\r
+\r
+       // Regist data\r
+       if (!vbInfo.Add(&vInfo)) return FALSE;\r
+       DWORD n = vbInfo.NumItems();\r
+       VFInfo *q = vbInfo.GetUnit(n - 1);\r
+\r
+       return q;\r
+}\r
+\r
+/////////////////////////////////////////////\r
+//  Enum vfolders\r
+/////////////////////////////////////////////\r
+\r
+BOOL VFManager::Enum(VirtualFolderEnumListener *pListener)\r
+{\r
+       VFInfo *pInfo;\r
+       VFDirectoryGenerator *pGen;\r
+       VFStore *pStore;\r
+\r
+       /// Add virtual folders.\r
+       TCHAR buf[MAX_PATH + 1];\r
+       TCHAR buf2[MAX_PATH + 1];\r
+       GetModuleFileName(NULL, buf, MAX_PATH);\r
+       GetFilePath(buf2, buf);\r
+\r
+       TString sVFpath;\r
+       if (!sVFpath.Join(buf2, TOMBO_VFOLDER_DEF_FILE)) return FALSE;\r
+\r
+       TSParser tp;\r
+       tp.Parse(sVFpath.Get(), pListener);\r
+\r
+       // Enum temporary vfolders\r
+       DWORD n = vbInfo.NumItems();\r
+       for (DWORD i = 0; i < n; i++) {\r
+               pInfo = vbInfo.GetUnit(i);\r
+               if (!StreamObjectsFactory(pInfo, &pGen, &pStore)) return FALSE;\r
+               if (!pListener->ProcessStream(pInfo->pName, FALSE, pGen, pStore)) break;\r
+       }\r
+       return TRUE;\r
+}\r
+\r
+BOOL VFManager::RetrieveInfo(const VFInfo *pInfo, VirtualFolderEnumListener *pListener)\r
+{\r
+       VFDirectoryGenerator *pGen;\r
+       VFStore *pStore;\r
+       if (!StreamObjectsFactory(pInfo, &pGen, &pStore)) return FALSE;\r
+       pListener->ProcessStream(pInfo->pName, pInfo->bPersist, pGen, pStore);\r
+       return TRUE;\r
+}\r
+\r
+/////////////////////////////////////////////\r
+//  Update vfolders\r
+/////////////////////////////////////////////\r
+\r
+BOOL VFManager::UpdateVirtualFolders(VFInfo **ppInfo, DWORD nNumFolders)\r
+{\r
+       // Create tmp file\r
+       TCHAR buf[MAX_PATH + 1];\r
+       TCHAR buf2[MAX_PATH + 1];\r
+       GetModuleFileName(NULL, buf, MAX_PATH);\r
+       GetFilePath(buf2, buf);\r
+\r
+       TString sVFpathTmp, sVFpath;\r
+       if (!sVFpath.Join(buf2, TOMBO_VFOLDER_DEF_FILE)) return FALSE;\r
+       if (!sVFpathTmp.Join(buf2, TOMBO_VFOLDER_DEF_FILE, TEXT(".tmp"))) return FALSE;\r
+       File fNewVFDef;\r
+       if (!fNewVFDef.Open(sVFpathTmp.Get(), GENERIC_WRITE, FILE_SHARE_WRITE, CREATE_ALWAYS)) return FALSE;\r
+\r
+       // prepare headers\r
+       LPCWSTR pHeader = \r
+               L"<?xml version='1.0' encoding='UTF-16'?>\n"\r
+               L"<!DOCTYPE folders SYSTEM \"TOMBO_vfolder.dtd\">\n"\r
+               L"<folders>\n";\r
+\r
+       if (!fNewVFDef.WriteUnicodeString(pHeader)) return FALSE;\r
+\r
+       ClearInfo();\r
+\r
+       // save virtual folder defs\r
+       DWORD i;\r
+       VFInfo *p;\r
+       for (i = 0; i < nNumFolders; i++) {\r
+               p = ppInfo[i];\r
+               if (p->bPersist) {\r
+                       if (!p->WriteXML(&fNewVFDef)) return FALSE;\r
+               } else {\r
+                       vbInfo.Add(p);\r
+                       p->pGenerator = NULL;\r
+                       p->pName = NULL;\r
+               }\r
+       }\r
+\r
+       // output footer\r
+       if (!fNewVFDef.WriteUnicodeString(L"</folders>\n")) return FALSE;\r
+       fNewVFDef.Close();\r
+\r
+       // replace def file\r
+       DeleteFile(sVFpath.Get());\r
+       MoveFile(sVFpathTmp.Get(), sVFpath.Get());\r
+       return TRUE;\r
+}\r
+\r
+/////////////////////////////////////////////\r
+//  Assign name to node\r
+/////////////////////////////////////////////\r
+\r
+LPTSTR VFManager::GetNodeName()\r
+{\r
+       LPTSTR pName;\r
+       pName = new TCHAR[_tcslen(MSG_GREP_NONAME_LABEL) + 10];\r
+       if (pName == NULL) {\r
+               SetLastError(ERROR_NOT_ENOUGH_MEMORY);\r
+               return NULL;\r
+       }\r
+       wsprintf(pName, TEXT("%s%03d"), MSG_GREP_NONAME_LABEL, ++nGrepCount);\r
+       return pName;\r
+}\r
+\r
+/////////////////////////////////////////////\r
+//  VirtualFolderEnumListener implimentation\r
+/////////////////////////////////////////////\r
+\r
+VirtualFolderEnumListener::~VirtualFolderEnumListener()\r
+{\r
+}\r
+\r
+/////////////////////////////////////////////\r
+//  VFInfo implimentation\r
+/////////////////////////////////////////////\r
+\r
+void VFInfo::Release()\r
+{\r
+        delete[] pName;\r
+        if(pGenerator) pGenerator->FreeObject();\r
+}\r
+\r
+/////////////////////////////////////////////\r
+//  Output XML\r
+/////////////////////////////////////////////\r
+\r
+BOOL VFInfo::WriteXML(File *p)\r
+{\r
+       if (pName == NULL) {\r
+               SetLastError(ERROR_INVALID_DATA);\r
+               return FALSE;\r
+       }\r
+\r
+       LPWSTR pNameW = ConvTCharToWChar(pName);\r
+\r
+       if (!p->WriteUnicodeString(L"<vfolder name=\"") || \r
+               !p->Write((LPBYTE)pNameW, wcslen(pNameW) * sizeof(WCHAR)) ||\r
+               !p->WriteUnicodeString(L"\">\n")) {\r
+               delete [] pNameW;\r
+               return FALSE;\r
+       }\r
+       delete [] pNameW;\r
+\r
+       if (!pGenerator->GenerateXMLOpenTag(p)) return FALSE;\r
+       if (!pGenerator->GenerateXMLCloseTag(p)) return FALSE;\r
+\r
+       if (!p->WriteUnicodeString(L"</vfolder>\n")) return FALSE;\r
+       return TRUE;\r
+}\r
+\r
+/////////////////////////////////////////////\r
+//  Clone VFInfo\r
+/////////////////////////////////////////////\r
+\r
+VFInfo *VFInfo::Clone()\r
+{\r
+       VFInfo *pNew = new VFInfo();\r
+       if (pNew == NULL) return NULL;\r
+\r
+       pNew->pGenerator = (VFDirectoryGenerator*)pGenerator->Clone(&(pNew->pStore));\r
+       if (pNew->pGenerator == NULL) return NULL;\r
+\r
+       pNew->bPersist = bPersist;\r
+       pNew->pName = StringDup(pName);\r
+       if (pNew->pName == NULL) {\r
+               pNew->Release();\r
+               delete pNew;\r
+               return NULL;\r
+       }\r
+       return pNew;\r
+}\r
+\r
diff --git a/Src/VFManager.h b/Src/VFManager.h
new file mode 100644 (file)
index 0000000..81f3d98
--- /dev/null
@@ -0,0 +1,81 @@
+#ifndef VFMANAGER_H\r
+#define VFMANAGER_H\r
+\r
+class VFDirectoryGenerator;\r
+class VFStore;\r
+class File;\r
+\r
+#define VFINFO_VIEWTYPE_DEFAULT 0\r
+#define VFINFO_VIEWTYPE_PREV   1\r
+#define VFINFO_VIEWTYPE_POST   2\r
+\r
+/////////////////////////////////////////////\r
+//  Virtual folder definition\r
+/////////////////////////////////////////////\r
+\r
+class VFInfo {\r
+public:\r
+       VFInfo() : pName(NULL), nViewType(VFINFO_VIEWTYPE_DEFAULT){}\r
+\r
+       void Release();\r
+       BOOL WriteXML(File *p);\r
+       VFInfo *Clone();\r
+\r
+       LPTSTR pName;\r
+       BOOL bPersist;\r
+       VFDirectoryGenerator *pGenerator;\r
+       VFStore *pStore;\r
+\r
+       DWORD nViewType;\r
+};\r
+\r
+/////////////////////////////////////////////\r
+//  Enumerator\r
+/////////////////////////////////////////////\r
+\r
+class VirtualFolderEnumListener {\r
+public:\r
+       virtual ~VirtualFolderEnumListener();\r
+\r
+       // pGen and pStore is controled under callee. you must release stream.\r
+       virtual BOOL ProcessStream(LPCTSTR pName, BOOL bPersist, VFDirectoryGenerator *pGen, VFStore *pStore) = 0;\r
+};\r
+\r
+/////////////////////////////////////////////\r
+//  Virtual folder manager\r
+/////////////////////////////////////////////\r
+\r
+class VFManager {\r
+       DWORD nGrepCount;\r
+       TVector<VFInfo> vbInfo;\r
+protected:\r
+       void ClearInfo();\r
+\r
+public:\r
+       /////////////////////////////////\r
+       // ctor & dtor\r
+       VFManager();\r
+       ~VFManager();\r
+       BOOL Init();\r
+\r
+       /////////////////////////////////\r
+       // factory methods\r
+       BOOL StreamObjectsFactory(const VFInfo *pInfo, VFDirectoryGenerator **ppGen, VFStore **ppStore);\r
+       const VFInfo *GetGrepVFInfo(LPCTSTR pPath, LPCTSTR pRegex,\r
+                                                       BOOL bIsCaseSensitive, BOOL bCheckCrypt, BOOL bCheckFileName, BOOL bNegate);\r
+\r
+       /////////////////////////////////\r
+       // enumerators\r
+       BOOL Enum(VirtualFolderEnumListener *pListener);\r
+       BOOL RetrieveInfo(const VFInfo *pInfo, VirtualFolderEnumListener *pListener);\r
+\r
+       /////////////////////////////////\r
+       // Update folders\r
+       BOOL UpdateVirtualFolders(VFInfo **ppInfo, DWORD nNumFolders);\r
+\r
+       /////////////////////////////////\r
+\r
+       LPTSTR GetNodeName();\r
+};\r
+\r
+#endif\r
diff --git a/Src/VFStream.cpp b/Src/VFStream.cpp
new file mode 100644 (file)
index 0000000..c9822f8
--- /dev/null
@@ -0,0 +1,971 @@
+#include <windows.h>\r
+#include <tchar.h>\r
+#if defined(PLATFORM_WIN32)\r
+#include <wchar.h>\r
+#endif\r
+#include <commctrl.h>\r
+#include "Tombo.h"\r
+#include "Message.h"\r
+#include "UniConv.h"\r
+#include "TString.h"\r
+#include "TomboURI.h"\r
+#include "Repository.h"\r
+#include "File.h"\r
+#include "Property.h"\r
+#include "MemoSelectView.h"\r
+#include "DirectoryScanner.h"\r
+#include "VFStream.h"\r
+#include "SearchEngine.h"\r
+#include "VarBuffer.h"\r
+#include "AutoPtr.h"\r
+#include "URIScanner.h"\r
+\r
+#include "resource.h"\r
+#include "DialogTemplate.h"\r
+#include "FilterAddDlg.h"\r
+\r
+#define STORE_INIT_SIZE 100\r
+#define STORE_EXTEND_DELTA 50\r
+\r
+////////////////////////////////////\r
+// VFNote\r
+////////////////////////////////////\r
+\r
+VFNote::~VFNote()\r
+{\r
+       delete [] pTitle;\r
+       delete pURI;\r
+}\r
+\r
+BOOL VFNote::Init(const TomboURI *pu, LPCTSTR title)\r
+{\r
+       pURI = new TomboURI(*pu);\r
+       if (pURI == NULL) { SetLastError(ERROR_NOT_ENOUGH_MEMORY); return FALSE; }\r
+\r
+       pTitle = StringDup(title);\r
+       if (pTitle == NULL) return FALSE;\r
+\r
+       if (!g_Repository.GetNoteAttribute(pURI, &uLastUpdate, &uCreateDate, &uFileSize)) return FALSE;\r
+       return TRUE;\r
+}\r
+\r
+////////////////////////////////////\r
+////////////////////////////////////\r
+\r
+VFStream::VFStream() : pNext(NULL)\r
+{\r
+}\r
+\r
+VFStream::~VFStream()\r
+{\r
+}\r
+\r
+BOOL VFStream::SetNext(VFStream *p)\r
+{\r
+       pNext = p;\r
+       return TRUE;\r
+}\r
+\r
+BOOL VFStream::Prepare()\r
+{\r
+       if (pNext) return pNext->Prepare();\r
+       return TRUE;\r
+}\r
+\r
+void VFStream::FreeObject()\r
+{\r
+       if (pNext) pNext->FreeObject();\r
+       delete pNext;\r
+       pNext = NULL;\r
+}\r
+\r
+BOOL VFStream::PostActivate()\r
+{\r
+       if (pNext) return pNext->PostActivate();\r
+       return TRUE;\r
+}\r
+\r
+BOOL VFStream::NeedEncryptedNote()\r
+{\r
+       return FALSE;\r
+}\r
+\r
+////////////////////////////////////\r
+// Traverse directory\r
+////////////////////////////////////\r
+// VFDirectoryGenerator's helper class\r
+\r
+class VFolderScanner : public URIScanner {\r
+       VFStream *pNext;\r
+       BOOL bCheckEncrypt;\r
+\r
+       DWORD nError;\r
+\r
+       void InitialScan() { nError = ERROR_SUCCESS; }\r
+       void Node();\r
+\r
+public:\r
+\r
+       BOOL Init(const TomboURI *pURI, VFStream *pNext, BOOL bCheckEncrypt);\r
+       DWORD GetError() { return nError; }\r
+};\r
+\r
+BOOL VFolderScanner::Init(const TomboURI *pURI, VFStream *pN, BOOL bce)\r
+{\r
+       bCheckEncrypt = bce;\r
+       pNext = pN;\r
+       return URIScanner::Init(&g_Repository, pURI, !bCheckEncrypt);\r
+}\r
+\r
+void VFolderScanner::Node() \r
+{\r
+       const TomboURI *pCur = CurrentURI();\r
+       LPCTSTR pTitle = GetTitle();\r
+       \r
+       if (!bCheckEncrypt && g_Repository.IsEncrypted(pCur)) return;\r
+\r
+       VFNote *pVF = new VFNote();\r
+       if (pVF == NULL) {\r
+               nError = ERROR_NOT_ENOUGH_MEMORY;\r
+               StopScan();\r
+               return;\r
+       }\r
+       if (!pVF->Init(pCur, pTitle)) {\r
+               nError = GetLastError();\r
+               StopScan();\r
+               delete pVF;\r
+               return;\r
+       }\r
+\r
+       // pass to the filter.\r
+       if (!pNext->Store(pVF)) {\r
+               nError = GetLastError();\r
+               StopScan();\r
+               delete pVF;\r
+       }\r
+}\r
+\r
+////////////////////////////////////\r
+// VFDirectoryGenerator\r
+////////////////////////////////////\r
+\r
+VFDirectoryGenerator::VFDirectoryGenerator() : pURI(NULL)\r
+{\r
+}\r
+\r
+VFDirectoryGenerator::~VFDirectoryGenerator()\r
+{\r
+       delete pURI;\r
+}\r
+\r
+BOOL VFDirectoryGenerator::Init(LPCTSTR pDirPath, BOOL bCe)\r
+{\r
+       bCheckEncrypt = bCe;\r
+       SetDirPath(pDirPath);\r
+       return TRUE;\r
+}\r
+\r
+BOOL VFDirectoryGenerator::Init(const TomboURI *pURI, BOOL bCe)\r
+{\r
+       bCheckEncrypt = bCe;\r
+       return SetURI(pURI);\r
+}\r
+\r
+BOOL VFDirectoryGenerator::SetDirPath(LPCTSTR pPath)\r
+{\r
+       delete pURI;\r
+       pURI = new TomboURI();\r
+       if (pURI == NULL) { SetLastError(ERROR_NOT_ENOUGH_MEMORY); return FALSE; }\r
+       // XXXX get repo name and set it\r
+       if (!pURI->InitByNotePath(TEXT("default"), pPath)) return FALSE;\r
+       return TRUE;\r
+}\r
+\r
+BOOL VFDirectoryGenerator::SetURI(const TomboURI *p)\r
+{\r
+       delete pURI;\r
+       pURI = new TomboURI(*p);\r
+       if (pURI == NULL) { SetLastError(ERROR_NOT_ENOUGH_MEMORY); return FALSE; }\r
+       return TRUE;\r
+}\r
+\r
+BOOL VFDirectoryGenerator::Activate()\r
+{\r
+       if (!pNext) return FALSE;\r
+\r
+       BOOL bCE;\r
+       if (bCheckEncrypt) {\r
+               bCE = TRUE;\r
+       } else {\r
+               bCE = FALSE;\r
+               VFStream *p = pNext;\r
+               while(p) {\r
+                       if (p->NeedEncryptedNote()) {\r
+                               bCE = TRUE;\r
+                       }\r
+                       p = p->GetNext();\r
+               }\r
+       }\r
+       VFolderScanner vfs;\r
+       if (!vfs.Init(pURI, pNext, bCE)) return FALSE;\r
+       return vfs.FullScan();\r
+}\r
+\r
+BOOL VFDirectoryGenerator::Store(VFNote *p)\r
+{\r
+       // usually, this member is not called.\r
+       return FALSE;\r
+}\r
+\r
+VFStream *VFDirectoryGenerator::Clone(VFStore **ppTail)\r
+{\r
+       VFDirectoryGenerator *p = new VFDirectoryGenerator();\r
+       if (p == NULL) return NULL;\r
+       \r
+       p->bCheckEncrypt = bCheckEncrypt;\r
+       p->pNext = pNext->Clone(ppTail);\r
+       if (!p || p->pNext == NULL) {\r
+               delete p;\r
+               return NULL;\r
+       }\r
+       p->pURI = new TomboURI(*pURI);\r
+\r
+       return p;\r
+}\r
+\r
+BOOL VFDirectoryGenerator::GenerateXMLOpenTag(File *pFile)\r
+{\r
+       pNext->GenerateXMLOpenTag(pFile);\r
+\r
+       TString sDirPath;\r
+       if (!pURI->GetFilePath(&sDirPath)) return FALSE;\r
+\r
+       if (!pFile->WriteUnicodeString(L"<src folder=\"")) return FALSE;\r
+       LPWSTR pDirW = ConvTCharToWChar(sDirPath.Get());\r
+       if (!pDirW) return FALSE;\r
+       if (!pFile->WriteUnicodeString(pDirW)) {\r
+               delete [] pDirW;\r
+               return FALSE;\r
+       }\r
+       delete [] pDirW;\r
+       if (!pFile->WriteUnicodeString(L"\"")) return FALSE;\r
+       if (bCheckEncrypt) {\r
+               if (!pFile->WriteUnicodeString(L" checkencrypt='True'")) return FALSE;\r
+       }\r
+       if (!pFile->WriteUnicodeString(L"/>\n")) return FALSE;\r
+\r
+       return TRUE;\r
+}\r
+\r
+BOOL VFDirectoryGenerator::GenerateXMLCloseTag(File *pFile)\r
+{\r
+       return pNext->GenerateXMLCloseTag(pFile);\r
+}\r
+\r
+\r
+LPCTSTR VFDirectoryGenerator::GetFilterType()\r
+{\r
+       return NULL;\r
+}\r
+\r
+BOOL VFDirectoryGenerator::ToString(TString *p)\r
+{\r
+       return FALSE;\r
+}\r
+\r
+\r
+BOOL VFDirectoryGenerator::UpdateParamWithDialog(HINSTANCE hInst, HWND hParent)\r
+{\r
+       return FALSE;\r
+}\r
+\r
+////////////////////////////////////\r
+// VFStore implimentation\r
+////////////////////////////////////\r
+\r
+VFStore::VFStore()\r
+{\r
+}\r
+\r
+VFStore::~VFStore()\r
+{\r
+}\r
+\r
+BOOL VFStore::Init()\r
+{\r
+       return vNotes.Init(STORE_INIT_SIZE, STORE_EXTEND_DELTA);\r
+}\r
+\r
+void VFStore::FreeObject()\r
+{\r
+       /* NOP */\r
+}\r
+\r
+BOOL VFStore::Prepare()\r
+{\r
+       if (!vNotes.Clear(TRUE)) return FALSE;\r
+       return TRUE;\r
+}\r
+\r
+BOOL VFStore::Store(VFNote *p)\r
+{\r
+       return vNotes.Add(&p);\r
+}\r
+\r
+BOOL VFStore::PostActivate()\r
+{\r
+       // TODO: sorting.\r
+       return TRUE;\r
+}\r
+\r
+void VFStore::FreeArray()\r
+{\r
+       DWORD n = vNotes.NumItems();\r
+       for (DWORD i = 0; i < n; i++) {\r
+               delete (*vNotes.GetUnit(i));\r
+       }\r
+       vNotes.Clear(FALSE);\r
+}\r
+\r
+VFStream *VFStore::Clone(VFStore **ppTail)\r
+{\r
+       VFStore *p = new VFStore();\r
+       if (!p || !p->Init()) return NULL;\r
+       *ppTail = p;\r
+       return p;\r
+}\r
+\r
+BOOL VFStore::GenerateXMLOpenTag(File *pFile)\r
+{\r
+       return TRUE;\r
+}\r
+\r
+BOOL VFStore::GenerateXMLCloseTag(File *pFile)\r
+{\r
+       return TRUE;\r
+}\r
+\r
+LPCTSTR VFStore::GetFilterType()\r
+{\r
+       return NULL;\r
+}\r
+\r
+BOOL VFStore::ToString(TString *p)\r
+{\r
+       return FALSE;\r
+}\r
+\r
+BOOL VFStore::UpdateParamWithDialog(HINSTANCE hInst, HWND hParent)\r
+{\r
+       return FALSE;\r
+}\r
+\r
+////////////////////////////////////\r
+//  VFRegexFilter\r
+////////////////////////////////////\r
+\r
+VFRegexFilter::VFRegexFilter() : pRegex(NULL), pPassMgr(NULL)\r
+{\r
+}\r
+\r
+VFRegexFilter::~VFRegexFilter()\r
+{\r
+       delete pRegex;\r
+}\r
+\r
+BOOL VFRegexFilter::Init(LPCTSTR pPat, BOOL bCase, BOOL bEnc, BOOL bFileName, BOOL bNeg, PasswordManager *pPMgr)\r
+{\r
+       pPattern = new TString();\r
+       if (!pPattern) {\r
+               SetLastError(ERROR_NOT_ENOUGH_MEMORY);\r
+               return FALSE;\r
+       }\r
+       pPassMgr = pPMgr;\r
+       return Reset(pPat, bCase, bEnc, bFileName, bNeg);\r
+}\r
+\r
+BOOL VFRegexFilter::Reset(LPCTSTR pPat, BOOL bCase, BOOL bEnc, BOOL bFileName, BOOL bNeg)\r
+{\r
+       if (!pPattern->Set(pPat)) return FALSE;\r
+\r
+       bCaseSensitive = bCase;\r
+       bFileNameOnly= bFileName;\r
+       bNegate = bNeg;\r
+\r
+       pRegex = new SearchEngineA();\r
+       const char *pReason;\r
+       if (!pRegex || !pRegex->Init(g_Property.GetCodePage(), bEnc, bFileName, pPassMgr)) return FALSE;\r
+       if (!pRegex->Prepare(pPat, bCase, &pReason)) return FALSE;\r
+       return TRUE;\r
+}\r
+\r
+BOOL VFRegexFilter::Store(VFNote *p)\r
+{\r
+       switch(pRegex->SearchFromURI(p->GetURI())) {\r
+       case SR_NOTFOUND:\r
+               if (bNegate) {\r
+                       return pNext->Store(p);\r
+               } else {\r
+                       delete p; // when discarding, Store() must delete object p.\r
+                       return TRUE;\r
+               }\r
+       case SR_FOUND:\r
+               if (bNegate) {\r
+                       delete p; // when discarding, Store() must delete object p.\r
+                       return TRUE;\r
+               } else {\r
+                       return pNext->Store(p);\r
+               }\r
+       case SR_CANCELED:\r
+       case SR_FAILED:\r
+       default:\r
+               return FALSE;\r
+       }\r
+}\r
+\r
+VFStream *VFRegexFilter::Clone(VFStore **ppTail)\r
+{\r
+       VFRegexFilter *p = new VFRegexFilter();\r
+       if (p == NULL) return NULL;\r
+\r
+       p->pPattern = new TString();\r
+       p->pPattern->Set(pPattern->Get());\r
+\r
+       p->pRegex = pRegex->Clone();\r
+       p->pNext = pNext->Clone(ppTail);\r
+\r
+       p->bCaseSensitive = bCaseSensitive;\r
+       p->bFileNameOnly = bFileNameOnly;\r
+       p->bNegate = bNegate;\r
+\r
+       if (!p || p->pRegex == NULL || \r
+               p->pNext == NULL) {\r
+               delete p;\r
+               return NULL;\r
+       }\r
+       return p;\r
+}\r
+\r
+BOOL VFRegexFilter::GenerateXMLOpenTag(File *pFile)\r
+{\r
+       if (!pNext->GenerateXMLOpenTag(pFile)) return FALSE;\r
+\r
+       if (!pFile->WriteUnicodeString(L"<grep pattern=\"")) return FALSE;\r
+       WString sPatW;\r
+       if (!sPatW.Set(pPattern)) return FALSE;\r
+       if (!pFile->WriteUnicodeString(sPatW.Get())) return FALSE;\r
+       if (!pFile->WriteUnicodeString(L"\"")) return FALSE;\r
+\r
+       if (bCaseSensitive) {\r
+               if (!pFile->WriteUnicodeString(L" casesensitive='True'")) return FALSE;\r
+       }\r
+       if (bFileNameOnly) {\r
+               if (!pFile->WriteUnicodeString(L" filenameonly='True'")) return FALSE;\r
+       }\r
+       if (bNegate) {\r
+               if (!pFile->WriteUnicodeString(L" not='True'")) return FALSE;\r
+       }\r
+\r
+       if (pRegex->IsSearchEncryptMemo()) {\r
+               if (!pFile->WriteUnicodeString(L" checkencrypt='True'")) return FALSE;\r
+       }\r
+\r
+       if (!pFile->WriteUnicodeString(L">\n")) return FALSE;\r
+\r
+       return TRUE;\r
+}\r
+\r
+BOOL VFRegexFilter::GenerateXMLCloseTag(File *pFile)\r
+{\r
+       if (!pFile->WriteUnicodeString(L"</grep>\n")) return FALSE;\r
+       if (!pNext->GenerateXMLCloseTag(pFile)) return FALSE;\r
+       return TRUE;\r
+}\r
+\r
+LPCTSTR VFRegexFilter::GetFilterType()\r
+{\r
+       return MSG_STREAM_NAME_REGEXP;\r
+}\r
+\r
+BOOL VFRegexFilter::ToString(TString *p)\r
+{\r
+       return p->Set(pPattern->Get());\r
+}\r
+\r
+BOOL VFRegexFilter::UpdateParamWithDialog(HINSTANCE hInst, HWND hParent)\r
+{\r
+       RegexFilterAddDlg ad;\r
+       if (!ad.Init(pPattern->Get(), bCaseSensitive, pRegex->IsSearchEncryptMemo(), bFileNameOnly, bNegate)) return FALSE;\r
+       if (ad.Popup(hInst, hParent) == IDOK) {\r
+               Reset(ad.GetMatchString()->Get(), \r
+                               ad.IsCaseSensitive(), ad.IsCheckEncrypt(),\r
+                               ad.IsCheckFileName(), ad.IsNegate());\r
+               return TRUE;\r
+       }\r
+       return FALSE;\r
+}\r
+\r
+BOOL VFRegexFilter::NeedEncryptedNote()\r
+{\r
+       return pRegex->IsSearchEncryptMemo();\r
+}\r
+\r
+////////////////////////////////////\r
+//  VFLimitFilter\r
+////////////////////////////////////\r
+\r
+VFLimitFilter::VFLimitFilter() : nLimit(0)\r
+{\r
+}\r
+\r
+VFLimitFilter::~VFLimitFilter()\r
+{\r
+}\r
+\r
+BOOL VFLimitFilter::Init(DWORD n)\r
+{\r
+       nLimit = n;\r
+       return TRUE;\r
+}\r
+\r
+BOOL VFLimitFilter::Prepare()\r
+{\r
+       nCount = 0;\r
+       return VFStream::Prepare();\r
+}\r
+\r
+BOOL VFLimitFilter::Store(VFNote *p)\r
+{\r
+       if (nCount >= nLimit) {\r
+               delete p;\r
+               return TRUE;\r
+       }\r
+       nCount++;\r
+       return pNext->Store(p);\r
+}\r
+\r
+VFStream *VFLimitFilter::Clone(VFStore **ppTail)\r
+{\r
+       VFLimitFilter *p = new VFLimitFilter();\r
+       if (!p || !p->Init(nLimit)) {\r
+               delete p;\r
+               return NULL;\r
+       }\r
+       p->pNext = pNext->Clone(ppTail);\r
+       if (!p || p->pNext == NULL) {\r
+               delete p;\r
+               return NULL;\r
+       }\r
+       return p;\r
+}\r
+\r
+\r
+BOOL VFLimitFilter::GenerateXMLOpenTag(File *pFile)\r
+{\r
+       if (!pNext->GenerateXMLOpenTag(pFile)) return FALSE;\r
+\r
+       if (!pFile->WriteUnicodeString(L"<limit number=\"")) return FALSE;\r
+       WCHAR buf[32];\r
+       swprintf(buf, L"%d", nLimit);\r
+       if (!pFile->WriteUnicodeString(buf)) return FALSE;\r
+\r
+       if (!pFile->WriteUnicodeString(L"\">\n")) return FALSE;\r
+       return TRUE;\r
+}\r
+\r
+BOOL VFLimitFilter::GenerateXMLCloseTag(File *pFile)\r
+{\r
+       if (!pFile->WriteUnicodeString(L"</limit>\n")) return FALSE;\r
+       if (!pNext->GenerateXMLCloseTag(pFile)) return FALSE;\r
+       return TRUE;\r
+}\r
+\r
+LPCTSTR VFLimitFilter::GetFilterType()\r
+{\r
+       return MSG_STREAM_NAME_LIMIT;\r
+}\r
+\r
+BOOL VFLimitFilter::ToString(TString *p)\r
+{\r
+       if (!p->Alloc(_tcslen(MSG_STREAM_VALUE_LIMIT) + 10)) return FALSE;\r
+       wsprintf(p->Get(), MSG_STREAM_VALUE_LIMIT, nLimit);\r
+       return TRUE;\r
+}\r
+\r
+BOOL VFLimitFilter::UpdateParamWithDialog(HINSTANCE hInst, HWND hParent)\r
+{\r
+       LimitFilterAddDlg ad;\r
+       if (!ad.Init(nLimit)) return FALSE;\r
+       if (ad.Popup(hInst, hParent) == IDOK) {\r
+               nLimit = ad.GetLimit();\r
+               return TRUE;\r
+       }\r
+       return FALSE;\r
+}\r
+\r
+////////////////////////////////////\r
+//  VFTimestampFilter\r
+////////////////////////////////////\r
+\r
+VFTimestampFilter::VFTimestampFilter()\r
+{\r
+}\r
+\r
+VFTimestampFilter::~VFTimestampFilter()\r
+{\r
+}\r
+\r
+BOOL VFTimestampFilter::Reset(DWORD nDelta, BOOL bNew)\r
+{\r
+       SYSTEMTIME st;\r
+       GetLocalTime(&st);\r
+       FILETIME ft;\r
+       SystemTimeToFileTime(&st, &ft);\r
+\r
+       nDeltaDays = nDelta;\r
+\r
+       uBase = ((UINT64)ft.dwHighDateTime << 32) | (UINT64)ft.dwLowDateTime;\r
+       UINT64 d = 0xc92a69c000;        // 1 day\r
+       uBase -= d * nDelta;\r
+       bNewer = bNew;\r
+\r
+       return TRUE;\r
+}\r
+\r
+BOOL VFTimestampFilter::Store(VFNote *pNote)\r
+{\r
+       if (bNewer && pNote->GetLastUpdate() > uBase || (!bNewer && pNote->GetLastUpdate() < uBase)) {\r
+               return pNext->Store(pNote);\r
+       } else {\r
+               delete pNote;\r
+               return TRUE;\r
+       }\r
+}\r
+\r
+VFStream *VFTimestampFilter::Clone(VFStore **ppTail)\r
+{\r
+       VFTimestampFilter *p = new VFTimestampFilter();\r
+       if (!p) return NULL;\r
+\r
+       p->bNewer = bNewer;\r
+       p->uBase = uBase;\r
+       p->nDeltaDays = nDeltaDays;\r
+       p->pNext = pNext->Clone(ppTail);\r
+       if (!p || p->pNext == NULL) {\r
+               delete p;\r
+               return NULL;\r
+       }\r
+       return p;\r
+}\r
+\r
+BOOL VFTimestampFilter::GenerateXMLOpenTag(File *pFile)\r
+{\r
+       if (!pNext->GenerateXMLOpenTag(pFile)) return FALSE;\r
+\r
+       if (!pFile->WriteUnicodeString(L"<timestamp days=\"")) return FALSE;\r
+       WCHAR buf[32];\r
+       swprintf(buf, L"%d", nDeltaDays);\r
+       if (!pFile->WriteUnicodeString(buf)) return FALSE;\r
+       if (!pFile->WriteUnicodeString(L"\"")) return FALSE;\r
+\r
+       if (bNewer) {\r
+               if (!pFile->WriteUnicodeString(L" newer='True'")) return FALSE;\r
+       } else {\r
+               if (!pFile->WriteUnicodeString(L" older='True'")) return FALSE;\r
+       }\r
+\r
+       if (!pFile->WriteUnicodeString(L">\n")) return FALSE;\r
+       return TRUE;\r
+}\r
+\r
+BOOL VFTimestampFilter::GenerateXMLCloseTag(File *pFile)\r
+{\r
+       if (!pFile->WriteUnicodeString(L"</timestamp>\n")) return FALSE;\r
+       if (!pNext->GenerateXMLCloseTag(pFile)) return FALSE;\r
+       return TRUE;\r
+}\r
+\r
+LPCTSTR VFTimestampFilter::GetFilterType()\r
+{\r
+       return MSG_STREAM_NAME_TIMESTAMP;\r
+}\r
+\r
+BOOL VFTimestampFilter::ToString(TString *p)\r
+{\r
+       LPCTSTR pTmpl;\r
+       if (bNewer) {\r
+               pTmpl = MSG_STREAM_VALUE_TIMESTAMP_NEWER;\r
+       } else {\r
+               pTmpl = MSG_STREAM_VALUE_TIMESTAMP_OLDER;\r
+       }\r
+       if (!p->Alloc(_tcslen(pTmpl) + 10)) return FALSE;\r
+       wsprintf(p->Get(), pTmpl, nDeltaDays);\r
+       return TRUE;\r
+}\r
+\r
+BOOL VFTimestampFilter::UpdateParamWithDialog(HINSTANCE hInst, HWND hParent)\r
+{\r
+       TimestampFilterAddDlg ad;\r
+       if (!ad.Init(nDeltaDays, bNewer)) return FALSE;\r
+       if (ad.Popup(hInst, hParent) == IDOK) {\r
+               return Reset(ad.GetDeltaDay(), ad.IsNewer());\r
+       }\r
+       return FALSE;\r
+}\r
+\r
+////////////////////////////////////\r
+//  VFSortFilter\r
+////////////////////////////////////\r
+\r
+VFSortFilter::VFSortFilter()\r
+{\r
+}\r
+\r
+VFSortFilter::~VFSortFilter()\r
+{\r
+}\r
+\r
+BOOL VFSortFilter::Init(SortFuncType sf)\r
+{\r
+       sfType = sf;\r
+       return vNotes.Init(STORE_INIT_SIZE, STORE_EXTEND_DELTA);\r
+}\r
+\r
+BOOL VFSortFilter::Prepare()\r
+{\r
+       vNotes.Clear(TRUE);\r
+       return VFStream::Prepare();\r
+}\r
+\r
+BOOL VFSortFilter::Store(VFNote *p)\r
+{\r
+       if (!vNotes.Add(&p)) return FALSE;\r
+       return TRUE;\r
+}\r
+\r
+extern "C" {\r
+typedef int SortFunc(const void *e1, const void *e2);\r
+};\r
+\r
+extern "C" static int SortNotes_FileNameAsc(const void *e1, const void *e2)\r
+{\r
+       VFNote *p1 = *(VFNote**)e1;\r
+       VFNote *p2 = *(VFNote**)e2;\r
+       return _tcsicmp(p1->GetTitle(), p2->GetTitle());\r
+}\r
+\r
+extern "C" static int SortNotes_FileNameDesc(const void *e1, const void *e2)\r
+{\r
+       VFNote *p1 = *(VFNote**)e1;\r
+       VFNote *p2 = *(VFNote**)e2;\r
+       return _tcsicmp(p2->GetTitle(), p1->GetTitle());\r
+}\r
+\r
+extern "C" static int SortNotes_LastUpdateOlder(const void *e1, const void *e2)\r
+{\r
+       VFNote *p1 = *(VFNote**)e1;\r
+       VFNote *p2 = *(VFNote**)e2;\r
+       if (p1->GetLastUpdate() == p2->GetLastUpdate()) return 0;\r
+       if (p1->GetLastUpdate() > p2->GetLastUpdate()) return 1;\r
+       else return -1;\r
+}\r
+\r
+extern "C" static int SortNotes_LastUpdateNewer(const void *e1, const void *e2)\r
+{\r
+       VFNote *p1 = *(VFNote**)e1;\r
+       VFNote *p2 = *(VFNote**)e2;\r
+       if (p2->GetLastUpdate() == p1->GetLastUpdate()) return 0;\r
+       if (p2->GetLastUpdate() > p1->GetLastUpdate()) return 1;\r
+       else return -1;\r
+}\r
+\r
+extern "C" static int SortNotes_CreateDateOlder(const void *e1, const void *e2)\r
+{\r
+       VFNote *p1 = *(VFNote**)e1;\r
+       VFNote *p2 = *(VFNote**)e2;\r
+       if (p1->GetCreateDate() == p2->GetCreateDate()) return 0;\r
+       if (p1->GetCreateDate() > p2->GetCreateDate()) return 1;\r
+       else return -1;\r
+}\r
+\r
+extern "C" static int SortNotes_CreateDateNewer(const void *e1, const void *e2)\r
+{\r
+       VFNote *p1 = *(VFNote**)e1;\r
+       VFNote *p2 = *(VFNote**)e2;\r
+       if (p2->GetCreateDate() == p1->GetCreateDate()) return 0;\r
+       if (p2->GetCreateDate() > p1->GetCreateDate()) return 1;\r
+       else return -1;\r
+}\r
+\r
+extern "C" static int SortNotes_FileSizeAsc(const void *e1, const void *e2)\r
+{\r
+       VFNote *p1 = *(VFNote**)e1;\r
+       VFNote *p2 = *(VFNote**)e2;\r
+\r
+       if (p1->GetFileSize() == p2->GetFileSize()) return 0;\r
+       if (p1->GetFileSize() > p2->GetFileSize()) return 1;\r
+       else return -1;\r
+}\r
+\r
+extern "C" static int SortNotes_FileSizeDsc(const void *e1, const void *e2)\r
+{\r
+       VFNote *p1 = *(VFNote**)e1;\r
+       VFNote *p2 = *(VFNote**)e2;\r
+\r
+       if (p2->GetFileSize() == p1->GetFileSize()) return 0;\r
+       if (p2->GetFileSize() > p1->GetFileSize()) return 1;\r
+       else return -1;\r
+}\r
+\r
+BOOL VFSortFilter::PostActivate()\r
+{\r
+       VFNote *p;\r
+       DWORD n = vNotes.NumItems();\r
+\r
+       SortFunc *pFunc;\r
+       switch(sfType) {\r
+       case SortFunc_FileNameAsc:\r
+               pFunc = SortNotes_FileNameAsc;\r
+               break;\r
+       case SortFunc_FileNameDsc:\r
+               pFunc = SortNotes_FileNameDesc;\r
+               break;\r
+       case SortFunc_LastUpdateAsc:\r
+               pFunc = SortNotes_LastUpdateOlder;\r
+               break;\r
+       case SortFunc_LastUpdateDsc:\r
+               pFunc = SortNotes_LastUpdateNewer;\r
+               break;\r
+       case SortFunc_CreateDateAsc:\r
+               pFunc = SortNotes_CreateDateOlder;\r
+               break;\r
+       case SortFunc_CreateDateDsc:\r
+               pFunc = SortNotes_CreateDateNewer;\r
+               break;\r
+       case SortFunc_FileSizeAsc:\r
+               pFunc = SortNotes_FileSizeAsc;\r
+               break;\r
+       case SortFunc_FileSizeDsc:\r
+               pFunc = SortNotes_FileSizeDsc;\r
+               break;\r
+       default:\r
+               return FALSE;\r
+       }\r
+       qsort((LPBYTE)vNotes.GetBuf(), n, sizeof(VFNote*), pFunc);\r
+       for (DWORD i = 0; i < n; i++) {\r
+               p = *vNotes.GetUnit(i);\r
+               if (!pNext->Store(p)) return FALSE;\r
+       }\r
+       return VFStream::PostActivate();\r
+}\r
+\r
+VFStream *VFSortFilter::Clone(VFStore **ppTail)\r
+{\r
+       VFSortFilter *p = new VFSortFilter();\r
+       if (!p || !p->Init(sfType)) return NULL;\r
+\r
+       p->pNext = pNext->Clone(ppTail);\r
+       if (!p || p->pNext == NULL) {\r
+               delete p;\r
+               return NULL;\r
+       }\r
+       return p;\r
+}\r
+\r
+BOOL VFSortFilter::GenerateXMLOpenTag(File *pFile)\r
+{\r
+       if (!pNext->GenerateXMLOpenTag(pFile)) return FALSE;\r
+\r
+       if (!pFile->WriteUnicodeString(L"<sort func=\"")) return FALSE;\r
+       LPCWSTR pType;\r
+       switch(sfType) {\r
+       case SortFunc_FileNameAsc:\r
+               pType = L"filename_asc";\r
+               break;\r
+       case SortFunc_FileNameDsc:\r
+               pType = L"filename_dsc";\r
+               break;\r
+       case SortFunc_LastUpdateAsc:\r
+               pType = L"lastupdate_asc";\r
+               break;\r
+       case SortFunc_LastUpdateDsc:\r
+               pType = L"lastupdate_dsc";\r
+               break;\r
+       case SortFunc_CreateDateAsc:\r
+               pType = L"createdate_asc";\r
+               break;\r
+       case SortFunc_CreateDateDsc:\r
+               pType = L"createdate_dsc";\r
+               break;\r
+       case SortFunc_FileSizeAsc:\r
+               pType = L"filesize_asc";\r
+               break;\r
+       case SortFunc_FileSizeDsc:\r
+               pType = L"filesize_dsc";\r
+               break;\r
+       default:\r
+               SetLastError(ERROR_INVALID_DATA);\r
+               return FALSE;\r
+       }\r
+       if (!pFile->WriteUnicodeString(pType)) return FALSE;\r
+       if (!pFile->WriteUnicodeString(L"\">\n")) return FALSE;\r
+       return TRUE;\r
+}\r
+\r
+BOOL VFSortFilter::GenerateXMLCloseTag(File *pFile)\r
+{\r
+       if (!pFile->WriteUnicodeString(L"</sort>\n")) return FALSE;\r
+       if (!pNext->GenerateXMLCloseTag(pFile)) return FALSE;\r
+       return TRUE;\r
+}\r
+\r
+LPCTSTR VFSortFilter::GetFilterType()\r
+{\r
+       return MSG_STREAM_NAME_SORT;\r
+}\r
+\r
+BOOL VFSortFilter::ToString(TString *p)\r
+{\r
+       LPCTSTR pTmpl;\r
+       switch(sfType) {\r
+       case SortFunc_FileNameAsc:\r
+               pTmpl = MSG_STREAM_VALUE_SORT_FNAME_ASC;\r
+               break;\r
+       case SortFunc_FileNameDsc:\r
+               pTmpl = MSG_STREAM_VALUE_SORT_FNAME_DSC;\r
+               break;\r
+       case SortFunc_LastUpdateAsc:\r
+               pTmpl = MSG_STREAM_VALUE_SORT_LASTUPD_ASC;\r
+               break;\r
+       case SortFunc_LastUpdateDsc:\r
+               pTmpl = MSG_STREAM_VALUE_SORT_LASTUPD_DSC;\r
+               break;\r
+       case SortFunc_CreateDateAsc:\r
+               pTmpl = MSG_STREAM_VALUE_SORT_CREATE_ASC;\r
+               break;\r
+       case SortFunc_CreateDateDsc:\r
+               pTmpl = MSG_STREAM_VALUE_SORT_CREATE_DSC;\r
+               break;\r
+       case SortFunc_FileSizeAsc:\r
+               pTmpl = MSG_STREAM_VALUE_SORT_FILESIZE_ASC;\r
+               break;\r
+       case SortFunc_FileSizeDsc:\r
+               pTmpl = MSG_STREAM_VALUE_SORT_FILESIZE_DSC;\r
+               break;\r
+       default:\r
+               SetLastError(ERROR_INVALID_DATA);\r
+               return FALSE;\r
+       }\r
+       return p->Set(pTmpl);\r
+}\r
+\r
+BOOL VFSortFilter::UpdateParamWithDialog(HINSTANCE hInst, HWND hParent)\r
+{\r
+       SortFilterAddDlg ad;\r
+       if (!ad.Init(sfType)) return FALSE;\r
+       if (ad.Popup(hInst, hParent) == IDOK) {\r
+               sfType = ad.GetType();\r
+               return TRUE;\r
+       }\r
+       return FALSE;\r
+}\r
diff --git a/Src/VFStream.h b/Src/VFStream.h
new file mode 100644 (file)
index 0000000..6fc1483
--- /dev/null
@@ -0,0 +1,330 @@
+#ifndef VFSTREAM_H\r
+#define VFSTREAM_H\r
+\r
+class SearchEngineA;\r
+class PasswordManager;\r
+class VFStore;\r
+class TString;\r
+class File;\r
+class TomboURI;\r
+\r
+#include "VarBuffer.h"\r
+\r
+////////////////////////////////////\r
+////////////////////////////////////\r
+// Virtual Folder Node Stream\r
+////////////////////////////////////\r
+////////////////////////////////////\r
+\r
+////////////////////////////////////\r
+// stream item\r
+////////////////////////////////////\r
+\r
+class VFNote {\r
+       // The object lifecycle of *pURI is same as VFNote.\r
+       // do not point *pURI but use copy of the object. *pURI has smart pointer, so cost is not expensive.\r
+       TomboURI *pURI;\r
+       LPTSTR pTitle;\r
+       UINT64 uLastUpdate;\r
+       UINT64 uCreateDate;\r
+       UINT64 uFileSize;\r
+\r
+public:\r
+       VFNote() : pURI(NULL), pTitle(NULL) {}\r
+       ~VFNote();\r
+       BOOL Init(const TomboURI *pURI, LPCTSTR pTitle);\r
+\r
+       const TomboURI *GetURI() { return pURI; }\r
+\r
+       // If ClearNote() is not called and VFNote is deleted, \r
+       // pNote is deleted, too. To prevent deleting, you should call ClearNote().\r
+       // In this case, deleting pNote is due to caller.\r
+\r
+       LPCTSTR GetTitle() { return pTitle; }\r
+\r
+       UINT64 GetLastUpdate() { return uLastUpdate; }\r
+       UINT64 GetCreateDate() { return uCreateDate; }\r
+       UINT64 GetFileSize() { return uFileSize; }\r
+};\r
+\r
+////////////////////////////////////\r
+// VFStream interface\r
+////////////////////////////////////\r
+\r
+class VFStream {\r
+protected:\r
+       VFStream *pNext;\r
+public:\r
+\r
+       VFStream();\r
+       virtual ~VFStream();\r
+\r
+       ///////////////////////////\r
+       // Create/delete filter chains.\r
+\r
+       BOOL SetNext(VFStream *p);\r
+       virtual void FreeObject();\r
+       VFStream *GetNext() { return pNext; }\r
+\r
+       ///////////////////////////\r
+       // Notes filtering.\r
+\r
+       // Initialize classes before sequence of Store().\r
+       // by default, Prepare() calls pNext->Prepare().\r
+       virtual BOOL Prepare();\r
+\r
+       // Try to store VFNote. If success, retrun TRUE. If errors, return FALSE.\r
+       // if a class VFStream's subclass decide discard p, the class should delete p.\r
+       virtual BOOL Store(VFNote *p) = 0;\r
+\r
+       // Finalize classes after calling sequence of Store().\r
+       // by default PostActive() calls pNext->PostActive().\r
+       virtual BOOL PostActivate();\r
+\r
+       ///////////////////////////\r
+       // copy method\r
+       virtual VFStream *Clone(VFStore **ppTail) = 0;\r
+\r
+       ///////////////////////////\r
+       // generate XML\r
+       virtual BOOL GenerateXMLOpenTag(File *pFile) = 0;\r
+       virtual BOOL GenerateXMLCloseTag(File *pFile) = 0;\r
+\r
+       ///////////////////////////\r
+       // for FilterDefDlg\r
+       virtual LPCTSTR GetFilterType() = 0;\r
+       virtual BOOL ToString(TString *p) = 0;\r
+\r
+       ///////////////////////////\r
+       // for Setting parameter\r
+       virtual BOOL UpdateParamWithDialog(HINSTANCE hInst, HWND hParent) = 0;\r
+               // return TRUE if updated.\r
+               // FALSE if not updated(CANCELED) or failed.\r
+\r
+       virtual BOOL NeedEncryptedNote();\r
+\r
+};\r
+\r
+////////////////////////////////////\r
+// Directory generator\r
+////////////////////////////////////\r
+// In current version, VFDirectoryGenerator is only generator.\r
+\r
+class VFDirectoryGenerator : public VFStream {\r
+       TomboURI *pURI;\r
+       BOOL bCheckEncrypt;\r
+public:\r
+       VFDirectoryGenerator();\r
+       ~VFDirectoryGenerator();\r
+\r
+       ////////////////////////////\r
+       // VFStream implimentation\r
+\r
+       // BOOL Prepare(); inherit \r
+       BOOL Store(VFNote *p);\r
+       // BOOL PostActivate(); inherit\r
+       BOOL Activate();\r
+       // void FreeObject(); inherit\r
+\r
+       BOOL Init(LPCTSTR pDir, BOOL bCheckEncrypt);\r
+       BOOL Init(const TomboURI *pURI, BOOL bCheckEncrypt);\r
+\r
+       VFStream *Clone(VFStore **ppTail);\r
+\r
+       BOOL GenerateXMLOpenTag(File *pFile);\r
+       BOOL GenerateXMLCloseTag(File *pFile);\r
+\r
+       const TomboURI *GetURI() { return pURI; }\r
+\r
+       BOOL SetDirPath(LPCTSTR pPath);\r
+       BOOL SetURI(const TomboURI *pURI);\r
+\r
+       LPCTSTR GetFilterType();\r
+       BOOL ToString(TString *p);\r
+\r
+       BOOL UpdateParamWithDialog(HINSTANCE hInst, HWND hParent);\r
+};\r
+\r
+////////////////////////////////////\r
+// Directory generator\r
+////////////////////////////////////\r
+\r
+class VFStore : public VFStream {\r
+public:\r
+       enum OrderInfo {\r
+               ORDER_TITLE,\r
+               ORDER_LAST_UPD,\r
+       };\r
+\r
+protected:\r
+       enum OrderInfo oiOrder;\r
+       TVector <VFNote*> vNotes;\r
+\r
+public:\r
+//     VFStore(enum OrderInfo odr);\r
+       VFStore();\r
+       ~VFStore();\r
+       BOOL Init();\r
+\r
+       void FreeObject();\r
+\r
+       BOOL Prepare();\r
+       BOOL Store(VFNote *p);\r
+       BOOL PostActivate();\r
+       VFStream *Clone(VFStore **ppTail);\r
+       BOOL GenerateXMLOpenTag(File *pFile);\r
+       BOOL GenerateXMLCloseTag(File *pFile);\r
+\r
+       DWORD NumItem() { return vNotes.NumItems(); }\r
+       VFNote *GetNote(DWORD n) { return *vNotes.GetUnit(n); }\r
+\r
+       // free VFNote array. \r
+       void FreeArray();\r
+\r
+       LPCTSTR GetFilterType();\r
+       BOOL ToString(TString *p);\r
+\r
+       BOOL UpdateParamWithDialog(HINSTANCE hInst, HWND hParent);\r
+};\r
+\r
+////////////////////////////////////\r
+// Filter by regular expression\r
+////////////////////////////////////\r
+\r
+class VFRegexFilter : public VFStream {\r
+#ifdef UNIT_TEST\r
+public:\r
+#endif\r
+       SearchEngineA *pRegex;\r
+       TString *pPattern;\r
+       BOOL bCaseSensitive;\r
+       BOOL bFileNameOnly;\r
+       BOOL bNegate;\r
+\r
+       PasswordManager *pPassMgr;\r
+\r
+public:\r
+       VFRegexFilter();\r
+       ~VFRegexFilter();\r
+       BOOL Init(LPCTSTR pPattern, BOOL bCase, BOOL bEnc, BOOL bFileName, BOOL bNeg, PasswordManager *pPassMgr);\r
+       BOOL Reset(LPCTSTR pPattern, BOOL bCase, BOOL bEnc, BOOL bFileName, BOOL bNeg);\r
+\r
+       ////////////////////////////\r
+       // VFStream implimentation\r
+\r
+       // BOOL Prepare();              inherit to VFStream\r
+       virtual BOOL Store(VFNote *p);\r
+       // BOOL PostActivate(); inherit to VFStream\r
+       // void FreeObject();   inherit to VFStream\r
+\r
+       VFStream *Clone(VFStore **ppTail);\r
+       BOOL GenerateXMLOpenTag(File *pFile);\r
+       BOOL GenerateXMLCloseTag(File *pFile);\r
+\r
+       LPCTSTR GetFilterType();\r
+       BOOL ToString(TString *p);\r
+\r
+       BOOL UpdateParamWithDialog(HINSTANCE hInst, HWND hParent);\r
+       BOOL NeedEncryptedNote();\r
+};\r
+\r
+////////////////////////////////////\r
+// Limit number of notes\r
+////////////////////////////////////\r
+\r
+class VFLimitFilter : public VFStream {\r
+#ifdef UNIT_TEST\r
+public:\r
+#endif\r
+       DWORD nLimit;\r
+       DWORD nCount;\r
+public:\r
+       VFLimitFilter();\r
+       ~VFLimitFilter();\r
+       BOOL Init(DWORD nLimit);\r
+\r
+       BOOL Prepare();\r
+       BOOL Store(VFNote *p);\r
+\r
+       VFStream *Clone(VFStore **ppTail);\r
+       BOOL GenerateXMLOpenTag(File *pFile);\r
+       BOOL GenerateXMLCloseTag(File *pFile);\r
+\r
+       LPCTSTR GetFilterType();\r
+       BOOL ToString(TString *p);\r
+\r
+       BOOL UpdateParamWithDialog(HINSTANCE hInst, HWND hParent);\r
+};\r
+\r
+////////////////////////////////////\r
+// Check timestamp\r
+////////////////////////////////////\r
+\r
+class VFTimestampFilter : public VFStream {\r
+#ifdef UNIT_TEST\r
+public:\r
+#endif\r
+       BOOL bNewer;\r
+       DWORD nDeltaDays;\r
+       UINT64 uBase;\r
+public:\r
+       VFTimestampFilter();\r
+       ~VFTimestampFilter();\r
+       BOOL Reset(DWORD nDeltaDays, BOOL bNewer);\r
+       BOOL Init(DWORD nDelta = 0, BOOL bNew = FALSE) { return Reset(nDelta, bNew); }\r
+\r
+       // BOOL Prepare();\r
+       BOOL Store(VFNote *p);\r
+\r
+       VFStream *Clone(VFStore **ppTail);\r
+       BOOL GenerateXMLOpenTag(File *pFile);\r
+       BOOL GenerateXMLCloseTag(File *pFile);\r
+\r
+       LPCTSTR GetFilterType();\r
+       BOOL ToString(TString *p);\r
+\r
+       BOOL UpdateParamWithDialog(HINSTANCE hInst, HWND hParent);\r
+};\r
+\r
+////////////////////////////////////\r
+// Sort \r
+////////////////////////////////////\r
+\r
+class VFSortFilter : public VFStream {\r
+public:\r
+       enum SortFuncType {\r
+               SortFunc_Unknown,\r
+               SortFunc_FileNameAsc,\r
+               SortFunc_FileNameDsc,\r
+               SortFunc_LastUpdateAsc,\r
+               SortFunc_LastUpdateDsc,\r
+               SortFunc_CreateDateAsc,\r
+               SortFunc_CreateDateDsc,\r
+               SortFunc_FileSizeAsc,\r
+               SortFunc_FileSizeDsc\r
+       };\r
+#ifndef UNIT_TEST\r
+protected:\r
+#endif\r
+       SortFuncType sfType;\r
+       TVector<VFNote*> vNotes;\r
+public:\r
+       VFSortFilter();\r
+       ~VFSortFilter();\r
+       BOOL Init(SortFuncType sf);\r
+\r
+       BOOL Prepare();\r
+       BOOL Store(VFNote *p);\r
+       BOOL PostActivate();\r
+\r
+       VFStream *Clone(VFStore **ppTail);\r
+       BOOL GenerateXMLOpenTag(File *pFile);\r
+       BOOL GenerateXMLCloseTag(File *pFile);\r
+\r
+       LPCTSTR GetFilterType();\r
+       BOOL ToString(TString *p);\r
+\r
+       BOOL UpdateParamWithDialog(HINSTANCE hInst, HWND hParent);\r
+};\r
+\r
+#endif\r
diff --git a/Src/WM5Platform.cpp b/Src/WM5Platform.cpp
new file mode 100644 (file)
index 0000000..310e05f
--- /dev/null
@@ -0,0 +1,371 @@
+#if defined(PLATFORM_WM5)\r
+\r
+#include <windows.h>\r
+#include <tchar.h>\r
+#include <commctrl.h>\r
+#include <aygshell.h>\r
+\r
+#include "Tombo.h"\r
+#include "resource.h"\r
+#include "Message.h"\r
+#include "PlatformLayer.h"\r
+#include "PocketPCPlatform.h"\r
+#include "SipControl.h"\r
+#include "Property.h"\r
+\r
+#define MENUBAR_MENU_LEFT 0\r
+#define MENUBAR_MENU_RIGHT 1\r
+\r
+///////////////////////////////////////////////////////\r
+// Menu definitions\r
+///////////////////////////////////////////////////////\r
+// To retrieve submenu depends on the item's position.\r
+// Be careful if order changes.\r
+\r
+// Treeview\r
+\r
+static MenuMsgRes aMSLeftMenu[] = {\r
+       {  0, IDM_NEWMEMO,         0, MSG_ID_TOOLTIPS_NEWMEMO,  NULL },\r
+       {  1, -1,                  0, 0,                        NULL },\r
+       {  2, IDM_BOOKMARK_ADD,    0, MSG_ID_MENUITEM_B_ADDBM,  NULL },\r
+       {  3, IDM_BOOKMARK_CONFIG, 0, MSG_ID_MENUITEM_B_EDITBM, NULL },\r
+       {  4, -1,                  0, 0,                        NULL },\r
+       { -1, 0,                   0, 0,                        NULL },\r
+};\r
+\r
+static MenuMsgRes aMSRightEditSubMenu[] = {\r
+       {  0, IDM_CUT,      0, MSG_ID_MENUITEM_MAIN_CUT,    NULL },\r
+       {  1, IDM_COPY,     0, MSG_ID_MENUITEM_MAIN_COPY,   NULL },\r
+       {  2, IDM_PASTE,    0, MSG_ID_MENUITEM_MAIN_PASTE,  NULL },\r
+       { -1, 0,            0, 0,                           NULL },\r
+};\r
+\r
+static MenuMsgRes aMSRightFindSubMenu[] = {\r
+       {  0, IDM_SEARCH,      0,         MSG_ID_MENUITEM_MAIN_FIND,         NULL },\r
+       {  1, IDM_SEARCH_NEXT, MF_GRAYED, MSG_ID_MENUITEM_MAIN_FIND_NEXT,    NULL },\r
+       {  2, IDM_SEARCH_PREV, MF_GRAYED, MSG_ID_MENUITEM_MAIN_FIND_PREV,    NULL },\r
+       {  3, -1,              0,         0,                                 NULL },\r
+       {  4, IDM_GREP,        0,         MSG_ID_MENUITEM_MAIN_QUICKFILTER,  NULL },\r
+       { -1, 0,               0,         0,                                 NULL },\r
+};\r
+\r
+static MenuMsgRes aMSRightSecuritySubMenu[] = {\r
+       {  0, IDM_ENCRYPT,    0, MSG_ID_MENUITEM_MAIN_ENCRYPT,      NULL },\r
+       {  1, IDM_DECRYPT,    0, MSG_ID_MENUITEM_MAIN_DECRYPT,      NULL },\r
+       {  2, -1,             0, 0,                                 NULL },\r
+       {  3, IDM_FORGETPASS, 0, MSG_ID_MENUITEM_TOOL_FORGETPASS,   NULL },\r
+       { -1, 0,              0, 0,                                 NULL },\r
+};\r
+\r
+static MenuMsgRes aMSRightFileSubMenu[] = {\r
+       {  0, IDM_RENAME,     0, MSG_ID_MENUITEM_MAIN_RENAME,    NULL },\r
+       {  1, IDM_NEWFOLDER,  0, MSG_ID_MENUITEM_MAIN_NEWFOLDER, NULL },\r
+       {  2, -1,             0, 0,                              NULL },\r
+       {  3, IDM_DELETEITEM, 0, MSG_ID_MENUITEM_MAIN_DELETE,    NULL },\r
+       { -1, 0,              0, 0,                              NULL },\r
+};\r
+\r
+static MenuMsgRes aMSRightPropertySubMenu[] = {\r
+       {  0, IDM_VFOLDER_DEF, 0, MSG_ID_MENUITEM_TOOL_VFOLDER_DEF,  NULL },\r
+       {  1, IDM_PROPERTY,    0, MSG_ID_MENUITEM_TOOL_PROPERTY,     NULL },\r
+       { -1, 0,              0, 0,                              NULL },\r
+};\r
+\r
+#define MS_R_EDIT_SUBMENU_POS 0\r
+#define MS_R_FIND_SUBMENU_POS 1\r
+#define MS_R_SECURITY_SUBMENU_POS 2\r
+#define MS_R_FILE_SUBMENU_POS 3\r
+#define MS_R_PROPERTY_SUBMENU_POS 4\r
+\r
+static MenuMsgRes aMSRightMenu[] = {\r
+       {  0,  0,             0, MSG_ID_EDIT,                  aMSRightEditSubMenu },\r
+       {  1,  0,             0, MSG_ID_MENUITEM_MAIN_FIND,    aMSRightFindSubMenu },\r
+       {  2,  0,             0, MSG_ID_PROPTAB_PASS_TIMEOUT,  aMSRightSecuritySubMenu },\r
+       {  3,  0,             0, MSG_ID_MENUITEM_FILE,         aMSRightFileSubMenu },\r
+       {  4,  0,             0, MSG_ID_PROPTAB_TITLE,         aMSRightPropertySubMenu },\r
+       {  5, -1,             0, 0,                            NULL },\r
+       {  6, IDM_TOGGLEPANE, 0, MSG_ID_MENUITEM_BE_T_TWOPANE, NULL }, \r
+       {  7, -1,             0, 0,                            NULL },\r
+       {  8, IDM_ABOUT,      0, MSG_ID_MENUITEM_TOOL_ABOUT,   NULL },\r
+       {  9, IDM_EXIT,       0, MSG_ID_MENUITEM_TOOL_EXIT,    NULL },\r
+       { -1, 0,              0, 0,                            NULL },\r
+};\r
+\r
+// Editview\r
+\r
+static MenuMsgRes aMDRightEditSubMenu[] = {\r
+       {  0, IDM_CUT,      0, MSG_ID_MENUITEM_MAIN_CUT,   NULL },\r
+       {  1, IDM_COPY,     0, MSG_ID_MENUITEM_MAIN_COPY,  NULL },\r
+       {  2, IDM_PASTE,    0, MSG_ID_MENUITEM_MAIN_PASTE, NULL },\r
+       {  3, -1,           0, 0,                          NULL },\r
+       {  4, IDM_INSDATE1, 0, MSG_ID_TOOLTIPS_INSDATE1,   NULL },\r
+       {  5, IDM_INSDATE2, 0, MSG_ID_TOOLTIPS_INSDATE2,   NULL },\r
+       { -1, 0,            0, 0,                          NULL },\r
+};\r
+\r
+static MenuMsgRes aMDRightFindSubMenu[] = {\r
+       {  0, IDM_SEARCH,      0,         MSG_ID_MENUITEM_MAIN_FIND,         NULL },\r
+       {  1, IDM_SEARCH_NEXT, MF_GRAYED, MSG_ID_MENUITEM_MAIN_FIND_NEXT,    NULL },\r
+       {  2, IDM_SEARCH_PREV, MF_GRAYED, MSG_ID_MENUITEM_MAIN_FIND_PREV,    NULL },\r
+       { -1, 0,               0,         0,                                 NULL },\r
+};\r
+\r
+#define MD_R_EDIT_SUBMENU_POS 0\r
+#define MD_R_FIND_SUBMENU_POS 1\r
+\r
+static MenuMsgRes aMDRightMenu[] = {\r
+       {  0,  0,                  0,          MSG_ID_EDIT,               aMDRightEditSubMenu },\r
+       {  1,  0,                  0,          MSG_ID_MENUITEM_MAIN_FIND, aMDRightFindSubMenu },\r
+       {  2, -1,                  0,          0,                         NULL },\r
+       {  3, IDM_DETAILS_HSCROLL, MF_CHECKED, MSG_ID_MENUITEM_TOOL_WRAP, NULL },\r
+       {  4, -1,                  0,          0,                         NULL },\r
+       {  5, IDM_EXIT,            0,          MSG_ID_MENUITEM_TOOL_EXIT, NULL },\r
+       { -1, 0,                   0,          0,                         NULL },\r
+};\r
+\r
+///////////////////////////////////////////////////////\r
+// util\r
+///////////////////////////////////////////////////////\r
+\r
+static HMENU GetMenuFromMenubar(HWND hWnd, DWORD nIndex) {\r
+       TBBUTTONINFO tbbi = {0};\r
+       tbbi.cbSize = sizeof(tbbi);\r
+       tbbi.dwMask = TBIF_LPARAM | TBIF_BYINDEX;                \r
+       SendMessage(hWnd, TB_GETBUTTONINFO, nIndex, (LPARAM)&tbbi);\r
+       return (HMENU)tbbi.lParam;\r
+}\r
+\r
+static HWND CreateMenubar(HWND hWnd, HINSTANCE hInst, UINT nToolBarId, MenuMsgRes *pLeft, MenuMsgRes *pRight)\r
+{\r
+       SHMENUBARINFO mbi;\r
+       memset(&mbi, 0, sizeof(SHMENUBARINFO));\r
+       mbi.cbSize = sizeof(SHMENUBARINFO);\r
+       mbi.hwndParent = hWnd;\r
+       mbi.nToolBarId = nToolBarId;\r
+       mbi.hInstRes =hInst;\r
+\r
+       if (!SHCreateMenuBar(&mbi)) {\r
+               TCHAR buf[1024];\r
+               wsprintf(buf, TEXT("SHCreateMenuBar failed(%d)."), GetLastError());\r
+               MessageBox(hWnd, buf, TEXT("DEBUG"), MB_OK);\r
+               return NULL;\r
+       }\r
+\r
+       if (pLeft != NULL) {\r
+               HMENU hMenu = GetMenuFromMenubar(mbi.hwndMB, MENUBAR_MENU_LEFT);\r
+               RemoveMenu(hMenu, 0, MF_BYPOSITION);\r
+               AddMenuItemByMsgRes(hMenu, pLeft);\r
+       }\r
+       if (pRight != NULL) {\r
+               HMENU hMenu = GetMenuFromMenubar(mbi.hwndMB, MENUBAR_MENU_RIGHT);\r
+               RemoveMenu(hMenu, 0, MF_BYPOSITION);\r
+               AddMenuItemByMsgRes(hMenu, pRight);\r
+       }\r
+\r
+       return mbi.hwndMB;\r
+}\r
+\r
+static HMENU GetSubMenu(HMENU hMenu, DWORD nIndex)\r
+{\r
+       MENUITEMINFO mi;\r
+       ZeroMemory(&mi, sizeof(mi));\r
+       mi.cbSize = sizeof(mi);\r
+       mi.fMask = MIIM_SUBMENU;\r
+       if (!GetMenuItemInfo(hMenu, nIndex, TRUE, &mi)) {\r
+               return NULL;\r
+       }\r
+       return mi.hSubMenu;\r
+}\r
+\r
+///////////////////////////////////////////////////////\r
+// methods\r
+///////////////////////////////////////////////////////\r
+\r
+void WM5Platform::Create(HWND hWnd, HINSTANCE hInst)\r
+{\r
+       hMainWnd = hWnd;\r
+\r
+       // create menubar\r
+       hMSCmdBar = CreateMenubar(hWnd, hInst, IDM_MAIN_MENU, aMSLeftMenu, aMSRightMenu);\r
+       hMDCmdBar = CreateMenubar(hWnd, hInst, IDM_DETAILS_MENU, NULL, aMDRightMenu);\r
+\r
+       TBBUTTONINFO tbi;\r
+       ZeroMemory(&tbi, sizeof(tbi));\r
+       tbi.cbSize = sizeof(tbi);\r
+       tbi.dwMask = TBIF_BYINDEX | TBIF_TEXT;\r
+\r
+       tbi.pszText = (LPTSTR)MSG_MEMO;\r
+       tbi.cchText = _tcslen(MSG_MEMO);\r
+       SendMessage(hMSCmdBar, TB_SETBUTTONINFO, 0, (LPARAM)&tbi);\r
+       tbi.pszText = (LPTSTR)MSG_TOOL;\r
+       tbi.cchText = _tcslen(MSG_TOOL);\r
+       SendMessage(hMSCmdBar, TB_SETBUTTONINFO, 1, (LPARAM)&tbi);\r
+       SendMessage(hMDCmdBar, TB_SETBUTTONINFO, 1, (LPARAM)&tbi);\r
+\r
+       ShowWindow(hMDCmdBar, SW_HIDE);\r
+}\r
+\r
+HMENU WM5Platform::GetMDToolMenu() { return SHGetSubMenu(hMDCmdBar, IDM_DETAILS_TOOL); }\r
+HMENU WM5Platform::GetMSBookMarkMenu()\r
+{\r
+       return GetMenuFromMenubar(hMSCmdBar, MENUBAR_MENU_LEFT);\r
+}\r
+\r
+void WM5Platform::EnableMenu(UINT uid, BOOL bEnable)\r
+{\r
+       BOOL bSBS = FALSE;\r
+       BOOL bMenu = TRUE;\r
+       HWND hTB;\r
+\r
+       HMENU hMenu = NULL;\r
+       switch (uid) {\r
+       case IDM_CUT:\r
+       case IDM_COPY:\r
+       case IDM_PASTE:\r
+               hMenu = GetSubMenu(GetMenuFromMenubar(hMSCmdBar, MENUBAR_MENU_RIGHT), MS_R_EDIT_SUBMENU_POS);\r
+               break;\r
+       case IDM_GREP:\r
+               hMenu = GetSubMenu(GetMenuFromMenubar(hMSCmdBar, MENUBAR_MENU_RIGHT), MS_R_FIND_SUBMENU_POS);\r
+               break;\r
+       case IDM_DECRYPT:\r
+       case IDM_ENCRYPT:\r
+               hMenu = GetSubMenu(GetMenuFromMenubar(hMSCmdBar, MENUBAR_MENU_RIGHT), MS_R_SECURITY_SUBMENU_POS);\r
+               break;\r
+       case IDM_DELETEITEM:\r
+       case IDM_RENAME:\r
+       case IDM_NEWFOLDER:\r
+               hMenu = GetSubMenu(GetMenuFromMenubar(hMSCmdBar, MENUBAR_MENU_RIGHT), MS_R_FILE_SUBMENU_POS);\r
+               break;\r
+       case IDM_NEWMEMO:\r
+               hMenu = GetMenuFromMenubar(hMSCmdBar, MENUBAR_MENU_LEFT);\r
+               break;\r
+       case IDM_SAVE:\r
+               bSBS = TRUE;\r
+               hTB = hMDCmdBar;\r
+               break;\r
+       default:\r
+               return;\r
+       }\r
+\r
+       if (hMenu != NULL) {\r
+               if (bEnable) {\r
+                       EnableMenuItem(hMenu, uid, MF_BYCOMMAND | MF_ENABLED);\r
+               } else {\r
+                       EnableMenuItem(hMenu, uid, MF_BYCOMMAND | MF_GRAYED);\r
+               }\r
+       }\r
+\r
+       if (bSBS) {\r
+               SendMessage(hTB, TB_ENABLEBUTTON, uid, MAKELONG(bEnable, 0));\r
+       }\r
+}\r
+\r
+void WM5Platform::CheckMenu(UINT uid, BOOL bCheck)\r
+{\r
+       HMENU hMenu = NULL;\r
+       switch (uid) {\r
+       case IDM_TOGGLEPANE:\r
+               hMenu = GetMenuFromMenubar(hMSCmdBar, MENUBAR_MENU_RIGHT);\r
+               break;\r
+       case IDM_DETAILS_HSCROLL:\r
+               hMenu = GetMenuFromMenubar(hMDCmdBar, MENUBAR_MENU_RIGHT);\r
+               break;\r
+       default:\r
+               return;\r
+       }\r
+\r
+       if (hMenu) {\r
+               CheckMenuItem(hMenu, uid, MF_BYCOMMAND | (bCheck ? MF_CHECKED : MF_UNCHECKED));\r
+       }\r
+}\r
+\r
+void WM5Platform::OpenDetailsView()\r
+{\r
+       ShowWindow(hMDCmdBar, SW_SHOW);\r
+       ShowWindow(hMSCmdBar, SW_HIDE);\r
+\r
+       SHDoneButton(hMainWnd, SHDB_SHOW);\r
+}\r
+\r
+void WM5Platform::CloseDetailsView()\r
+{\r
+       ShowWindow(hMDCmdBar, SW_HIDE);\r
+       ShowWindow(hMSCmdBar, SW_SHOW);\r
+\r
+       SHDoneButton(hMainWnd, SHDB_HIDE);\r
+}\r
+\r
+void WM5Platform::EnableSearchNext()\r
+{\r
+       HMENU hMSMenu = GetSubMenu(GetMenuFromMenubar(hMSCmdBar, MENUBAR_MENU_RIGHT), MS_R_FIND_SUBMENU_POS);\r
+       EnableMenuItem(hMSMenu, IDM_SEARCH_PREV, MF_BYCOMMAND | MF_ENABLED);\r
+       EnableMenuItem(hMSMenu, IDM_SEARCH_NEXT, MF_BYCOMMAND | MF_ENABLED);\r
+\r
+       HMENU hMDMenu = GetSubMenu(GetMenuFromMenubar(hMDCmdBar, MENUBAR_MENU_RIGHT), MD_R_FIND_SUBMENU_POS);\r
+       EnableMenuItem(hMDMenu, IDM_SEARCH_PREV, MF_BYCOMMAND | MF_ENABLED);\r
+       EnableMenuItem(hMDMenu, IDM_SEARCH_NEXT, MF_BYCOMMAND | MF_ENABLED);\r
+}\r
+\r
+void WM5Platform::AdjustUserRect(RECT *r)\r
+{\r
+       // menubar\r
+       RECT rMenuRect;\r
+       GetWindowRect(hMSCmdBar, &rMenuRect);\r
+       DWORD nHOffset = rMenuRect.bottom - rMenuRect.top;\r
+\r
+       r->bottom -= nHOffset - 1;\r
+\r
+       // SIP\r
+       BOOL bStat;\r
+       SipControl sc;\r
+       if (!sc.Init()) return;\r
+       if (!sc.GetSipStat(&bStat)) return;\r
+\r
+       if (bStat) {\r
+               RECT rSip = sc.GetRect();\r
+               DWORD nDelta = g_Property.GetSipSizeDelta();\r
+       \r
+               r->bottom -= (rSip.bottom - rSip.top + nDelta);\r
+       }\r
+}\r
+\r
+///////////////////////////////////////////////////////\r
+//\r
+///////////////////////////////////////////////////////\r
+static MenuMsgRes aMSPopupMenu[] = {\r
+       {  0, IDM_CUT,        0, MSG_ID_MENUITEM_MAIN_CUT },\r
+       {  1, IDM_COPY,       0, MSG_ID_MENUITEM_MAIN_COPY },\r
+       {  2, IDM_PASTE,      0, MSG_ID_MENUITEM_MAIN_PASTE },\r
+       {  3, -1, 0, 0},\r
+       {  4, IDM_DELETEITEM, 0, MSG_ID_MENUITEM_MAIN_DELETE },\r
+       {  5, IDM_RENAME,     0, MSG_ID_MENUITEM_MAIN_RENAME },\r
+       {  6, -1, 0, 0},\r
+       {  7, IDM_ENCRYPT,    0, MSG_ID_MENUITEM_MAIN_ENCRYPT },\r
+       {  8, IDM_DECRYPT,    0, MSG_ID_MENUITEM_MAIN_DECRYPT },\r
+\r
+};\r
+\r
+HMENU WM5Platform::LoadSelectViewPopupMenu()\r
+{\r
+       HMENU hMenu = CreatePopupMenu();\r
+       OverrideMenuTitle(hMenu, aMSPopupMenu, sizeof(aMSPopupMenu) / sizeof(MenuMsgRes));\r
+       return hMenu;\r
+}\r
+\r
+static MenuMsgRes aMDPopupMenu[] = {\r
+       { 0, IDM_CUT,      0, MSG_ID_MENUITEM_MAIN_CUT },\r
+       { 1, IDM_COPY,     0, MSG_ID_MENUITEM_MAIN_COPY },\r
+       { 2, IDM_PASTE,    0, MSG_ID_MENUITEM_MAIN_PASTE },\r
+       { 3, -1, 0, 0},\r
+       { 4, IDM_INSDATE1, 0, MSG_ID_TOOLTIPS_INSDATE1 },\r
+       { 5, IDM_INSDATE2, 0, MSG_ID_TOOLTIPS_INSDATE2 },\r
+};\r
+\r
+HMENU WM5Platform::LoadDetailsViewPopupMenu()\r
+{\r
+       HMENU hMenu = CreatePopupMenu();\r
+       OverrideMenuTitle(hMenu, aMDPopupMenu, sizeof(aMDPopupMenu) / sizeof(MenuMsgRes));\r
+       return hMenu;\r
+}\r
+\r
+#endif // PLATFORM_WM5
\ No newline at end of file
diff --git a/Src/WM5Platform.h b/Src/WM5Platform.h
new file mode 100644 (file)
index 0000000..f4b1420
--- /dev/null
@@ -0,0 +1,46 @@
+#ifndef WM5PLATFORM_H\r
+#define WM5PLATFORM_H\r
+#if defined(PLATFORM_WM5)\r
+\r
+#define PLATFORM_TYPE WM5Platform\r
+\r
+#define SHGetMenu(hWndMB)  (HMENU)SendMessage((hWndMB), SHCMBM_GETMENU, (WPARAM)0, (LPARAM)0)\r
+#define SHGetSubMenu(hWndMB,ID_MENU) (HMENU)SendMessage((hWndMB), SHCMBM_GETSUBMENU, (WPARAM)0, (LPARAM)ID_MENU)\r
+#define SHSetSubMenu(hWndMB,ID_MENU) (HMENU)SendMessage((hWndMB), SHCMBM_SETSUBMENU, (WPARAM)0, (LPARAM)ID_MENU)\r
+\r
+class WM5Platform : public PlatformLayer {\r
+       HWND hMainWnd;\r
+       HWND hMSCmdBar;\r
+       HWND hMDCmdBar;\r
+\r
+public:\r
+\r
+       void Create(HWND hWnd, HINSTANCE hInst);\r
+\r
+       HMENU GetMDToolMenu();\r
+       HMENU GetMSBookMarkMenu();\r
+\r
+       void EnableMenu(UINT uid, BOOL bEnable);\r
+       void EnableSearchNext();\r
+       void CheckMenu(UINT uid, BOOL bCheck);\r
+\r
+       void OpenDetailsView();\r
+       void CloseDetailsView();\r
+\r
+       void AdjustUserRect(RECT *r);\r
+\r
+       void ShowStatusBar(BOOL bShow) {/* nop */}\r
+       void SetStatusIndicator(DWORD nPos, LPCTSTR pText, BOOL bDisp) { /* nop */ }\r
+       WORD GetStatusBarHeight() { return 0; }\r
+       void ResizeStatusBar(WPARAM wParam, LPARAM lParam) { /* nop */ }\r
+       void GetStatusWindowRect(RECT *pRect);\r
+\r
+       static WM5Platform *PlatformFactory() { return new WM5Platform(); }\r
+\r
+       static HMENU LoadSelectViewPopupMenu();\r
+       static HMENU LoadDetailsViewPopupMenu();\r
+};\r
+\r
+#endif\r
+\r
+#endif\r
diff --git a/Src/Win32Platform.cpp b/Src/Win32Platform.cpp
new file mode 100644 (file)
index 0000000..7f2d533
--- /dev/null
@@ -0,0 +1,371 @@
+#if defined(PLATFORM_WIN32)\r
+#include <windows.h>\r
+#include <commctrl.h>\r
+#include <tchar.h>\r
+\r
+#include "Tombo.h"\r
+#include "resource.h"\r
+#include "PlatformLayer.h"\r
+#include "Win32Platform.h"\r
+#include "StatusBar.h"\r
+#include "Property.h"\r
+#include "Message.h"\r
+\r
+#define NUM_MY_TOOLBAR_BMPS 12\r
+\r
+#define NUM_TOOLBAR_BUTTONS 19\r
+static TBBUTTON aToolbarButtons[NUM_TOOLBAR_BUTTONS] = {\r
+       {STD_FILENEW + NUM_MY_TOOLBAR_BMPS,  IDM_NEWMEMO,    TBSTATE_ENABLED, TBSTYLE_BUTTON, 0, 0, 0, -1},\r
+       {STD_FILESAVE + NUM_MY_TOOLBAR_BMPS, IDM_SAVE,       TBSTATE_ENABLED, TBSTYLE_BUTTON, 0, 0, 0, -1},\r
+       {0,                                  0,              TBSTATE_ENABLED, TBSTYLE_SEP,    0, 0, 0, -1},\r
+       {STD_CUT + NUM_MY_TOOLBAR_BMPS,      IDM_CUT,        TBSTATE_ENABLED, TBSTYLE_BUTTON, 0, 0, 0, -1},\r
+       {STD_COPY + NUM_MY_TOOLBAR_BMPS,     IDM_COPY,       TBSTATE_ENABLED, TBSTYLE_BUTTON, 0, 0, 0, -1},\r
+       {STD_PASTE + NUM_MY_TOOLBAR_BMPS,    IDM_PASTE,      TBSTATE_ENABLED, TBSTYLE_BUTTON, 0, 0, 0, -1},\r
+       {0,                                  0,              TBSTATE_ENABLED, TBSTYLE_SEP,    0, 0, 0, -1},\r
+       {STD_DELETE + NUM_MY_TOOLBAR_BMPS,   IDM_DELETEITEM, TBSTATE_ENABLED, TBSTYLE_BUTTON, 0, 0, 0, -1},\r
+       {0,                                  0,              TBSTATE_ENABLED, TBSTYLE_SEP,    0, 0, 0, -1},\r
+       {3,                                  IDM_INSDATE1,   TBSTATE_ENABLED, TBSTYLE_BUTTON, 0, 0, 0, -1},\r
+       {4,                                  IDM_INSDATE2,   TBSTATE_ENABLED, TBSTYLE_BUTTON, 0, 0, 0, -1},\r
+       {0,                                  0,              TBSTATE_ENABLED, TBSTYLE_SEP,    0, 0, 0, -1},\r
+       {9,                                  IDM_SEARCH,     TBSTATE_ENABLED, TBSTYLE_BUTTON, 0, 0, 0, -1},\r
+       {7,                                  IDM_SEARCH_PREV,              0, TBSTYLE_BUTTON, 0, 0, 0, -1},\r
+       {8,                                  IDM_SEARCH_NEXT,              0, TBSTYLE_BUTTON, 0, 0, 0, -1},\r
+       {0,                                  0,              TBSTATE_ENABLED, TBSTYLE_SEP,    0, 0, 0, -1},\r
+       {6,                                  IDM_TOGGLEPANE, TBSTATE_ENABLED, TBSTYLE_BUTTON, 0, 0, 0, -1},\r
+       {10,                                 IDM_TOPMOST,    TBSTATE_ENABLED, TBSTYLE_BUTTON, 0, 0, 0, -1},\r
+       {0,                                  0,              TBSTATE_ENABLED, TBSTYLE_SEP,    0, 0, 0, -1},\r
+};\r
+\r
+Win32Platform::Win32Platform() : pStatusBar(NULL)\r
+{\r
+}\r
+\r
+Win32Platform::~Win32Platform()\r
+{\r
+       delete pStatusBar;\r
+}\r
+\r
+static HWND CreateToolBar(HWND hParent, HINSTANCE hInst)\r
+{\r
+       HWND hwndTB;\r
+       TBADDBITMAP tbab;\r
+\r
+       hwndTB = CreateWindowEx(WS_EX_TOOLWINDOW, TOOLBARCLASSNAME, (LPSTR)NULL, \r
+                                                       WS_CHILD | \r
+                                                       WS_CLIPSIBLINGS | WS_CLIPCHILDREN | CCS_NODIVIDER | CCS_NORESIZE |\r
+                                                       TBSTYLE_FLAT | TBSTYLE_ALTDRAG |\r
+                                                       TBSTYLE_TOOLTIPS| CCS_ADJUSTABLE ,\r
+                                                       0, 0, 0, 0, \r
+                                                       hParent, (HMENU)IDC_TOOLBAR, hInst, NULL);\r
+       SendMessage(hwndTB, TB_BUTTONSTRUCTSIZE, (WPARAM)sizeof(TBBUTTON), 0);\r
+\r
+       tbab.hInst = hInst;\r
+       tbab.nID = IDB_TOOLBAR;\r
+    SendMessage(hwndTB, TB_ADDBITMAP, (WPARAM) 3, (LPARAM) &tbab);  \r
+\r
+       tbab.hInst = HINST_COMMCTRL;\r
+       tbab.nID = IDB_STD_SMALL_COLOR;\r
+    SendMessage(hwndTB, TB_ADDBITMAP, (WPARAM) NUM_TOOLBAR_BUTTONS, (LPARAM) &tbab);  \r
+\r
+    \r
+       SendMessage(hwndTB, TB_ADDBUTTONS, (WPARAM) NUM_TOOLBAR_BUTTONS, \r
+        (LPARAM) (LPTBBUTTON) &aToolbarButtons); \r
+     return hwndTB; \r
+}\r
+\r
+void Win32Platform::Create(HWND hWnd, HINSTANCE hInst)\r
+{\r
+       pStatusBar = new StatusBar();\r
+       pStatusBar->Create(hWnd, g_Property.GetUseTwoPane());\r
+\r
+        hRebar = CreateWindowEx(WS_EX_TOOLWINDOW, REBARCLASSNAME, NULL,\r
+                                                               WS_BORDER | RBS_BANDBORDERS | RBS_AUTOSIZE | \r
+                                                               WS_CHILD | WS_CLIPSIBLINGS| RBS_TOOLTIPS | \r
+                                                               WS_CLIPCHILDREN|RBS_VARHEIGHT,\r
+                                                               0, 0, 0, 0,\r
+                                                               hWnd, NULL, hInst, NULL);\r
+       REBARINFO rbi;\r
+       rbi.cbSize = sizeof(rbi);\r
+       rbi.fMask = 0;\r
+       rbi.himl = NULL;\r
+       SendMessage(hRebar, RB_SETBARINFO, 0, (LPARAM)&rbi);\r
+\r
+       hToolBar = CreateToolBar(hRebar, hInst);\r
+\r
+       REBARBANDINFO rbband;\r
+       rbband.cbSize = sizeof(rbband);\r
+       rbband.fMask = RBBIM_SIZE | RBBIM_CHILD | RBBIM_CHILDSIZE | RBBIM_STYLE ;\r
+       rbband.fStyle = RBBS_CHILDEDGE | RBBS_GRIPPERALWAYS;\r
+\r
+       DWORD dwBtnSize = SendMessage(hToolBar, TB_GETBUTTONSIZE, 0, 0);\r
+\r
+       rbband.cbSize = sizeof(rbband);\r
+       rbband.hwndChild  = hToolBar;\r
+       rbband.cxMinChild = 0;\r
+       rbband.cyMinChild = HIWORD(dwBtnSize);\r
+       rbband.cx         = 250;\r
+\r
+       SendMessage(hRebar, RB_INSERTBAND, (WPARAM)-1, (LPARAM)&rbband);\r
+       SendMessage(hRebar, RB_MAXIMIZEBAND, 0, 0);\r
+}\r
+\r
+void Win32Platform::EnableMenu(UINT uId, BOOL bEnable)\r
+{\r
+       BOOL bTB = FALSE;\r
+       HWND hTB;\r
+\r
+       switch (uId) {\r
+       case IDM_DELETEITEM:\r
+       case IDM_NEWMEMO:\r
+       case IDM_CUT:\r
+       case IDM_COPY:\r
+       case IDM_PASTE:\r
+       case IDM_SAVE:\r
+               bTB = TRUE;\r
+               hTB = GetMainToolBar();\r
+       default:\r
+               break;\r
+       }\r
+\r
+       HMENU hMenu = GetMainMenu();\r
+\r
+       UINT uFlg1;\r
+       if (bEnable) {\r
+               uFlg1 = MF_BYCOMMAND | MF_ENABLED;\r
+       } else {\r
+               uFlg1 = MF_BYCOMMAND | MF_GRAYED | MF_DISABLED;\r
+       }\r
+       EnableMenuItem(hMenu, uId, uFlg1);\r
+\r
+       if (bTB) {\r
+               int x = SendMessage(hTB, TB_ENABLEBUTTON, uId, MAKELONG(bEnable, 0));\r
+       }\r
+}\r
+\r
+void Win32Platform::ControlMenu(BOOL bTreeActive)\r
+{\r
+       HMENU hMenu = GetMainMenu();\r
+\r
+       UINT uDisableFlg = MF_BYCOMMAND | MF_GRAYED;\r
+#if defined(PLATFORM_WIN32)\r
+       uDisableFlg |= MF_DISABLED;\r
+#endif\r
+\r
+       UINT uFlg1, uFlg2;\r
+       if (bTreeActive) {\r
+               uFlg1 = MF_BYCOMMAND | MF_ENABLED;\r
+               uFlg2 = uDisableFlg;\r
+       } else {\r
+               uFlg1 = uDisableFlg;\r
+               uFlg2 = MF_BYCOMMAND | MF_ENABLED;\r
+       }\r
+\r
+       EnableMenuItem(hMenu, IDM_FORGETPASS, uFlg1);\r
+       EnableMenuItem(hMenu, IDM_PROPERTY, uFlg1);\r
+\r
+       EnableMenuItem(hMenu, IDM_INSDATE1, uFlg2);\r
+       EnableMenuItem(hMenu, IDM_INSDATE2, uFlg2);\r
+       EnableMenuItem(hMenu, IDM_DETAILS_HSCROLL, uFlg2);\r
+}\r
+\r
+void Win32Platform::ControlToolbar(BOOL bTreeActive)\r
+{\r
+       SendMessage(hToolBar, TB_ENABLEBUTTON, IDM_INSDATE1, MAKELONG(!bTreeActive, 0));\r
+       SendMessage(hToolBar, TB_ENABLEBUTTON, IDM_INSDATE2, MAKELONG(!bTreeActive, 0));\r
+}\r
+\r
+void Win32Platform::OpenDetailsView()\r
+{\r
+       ControlMenu(FALSE);\r
+       ControlToolbar(FALSE);\r
+}\r
+\r
+void Win32Platform::CloseDetailsView()\r
+{\r
+       ControlMenu(TRUE);\r
+       ControlToolbar(TRUE);\r
+}\r
+\r
+void Win32Platform::EnableSearchNext()\r
+{\r
+       SendMessage(hToolBar, TB_SETSTATE, IDM_SEARCH_PREV, MAKELONG(TBSTATE_ENABLED, 0)); \r
+       SendMessage(hToolBar, TB_SETSTATE, IDM_SEARCH_NEXT, MAKELONG(TBSTATE_ENABLED, 0)); \r
+}\r
+\r
+void Win32Platform::AdjustUserRect(RECT *pRect)\r
+{\r
+       // get rebar height\r
+       WORD nRebarH;\r
+\r
+       if (g_Property.GetHideRebar()) {\r
+               nRebarH = 0;\r
+       } else {\r
+               RECT r;\r
+               GetWindowRect(hRebar, &r);\r
+               nRebarH = (WORD)(r.bottom - r.top);\r
+       }\r
+\r
+       // get statusbar height\r
+       WORD nStatusHeight;\r
+       if (g_Property.GetHideStatusBar()) {\r
+               nStatusHeight = 0;\r
+       } else {\r
+               nStatusHeight = GetStatusBarHeight();\r
+       }\r
+\r
+       pRect->top = nRebarH;\r
+       pRect->bottom -= (nRebarH + nStatusHeight);\r
+\r
+}\r
+\r
+void Win32Platform::CheckMenu(UINT uid, BOOL bCheck)\r
+{\r
+       HMENU hMenu;\r
+       BOOL bNegButton = FALSE;\r
+       switch(uid) {\r
+       case IDM_TOGGLEPANE:\r
+               bNegButton = TRUE;\r
+               hMenu = GetMainMenu();\r
+               break;\r
+       case IDM_DETAILS_HSCROLL:\r
+               hMenu = GetMDToolMenu();\r
+               break;\r
+       default:\r
+               return;\r
+       }\r
+\r
+       BOOL bButton = bNegButton ? !bCheck : bCheck;\r
+\r
+       // CheckMenuItem is superseeded funcs, but in CE, SetMenuItemInfo can't set values, so use it.\r
+       CheckMenuItem(hMenu, uid, MF_BYCOMMAND | (bCheck ? MF_CHECKED : MF_UNCHECKED));\r
+       SendMessage(hToolBar, TB_PRESSBUTTON, uid, MAKELONG(bButton, 0));\r
+}\r
+\r
+void Win32Platform::ShowStatusBar(BOOL bShow)\r
+{\r
+       pStatusBar->Show(bShow);\r
+}\r
+\r
+void Win32Platform::ShowRebar(BOOL bShow)\r
+{\r
+       if (bShow) {\r
+               ShowWindow(hRebar, SW_SHOW);\r
+       } else {\r
+               ShowWindow(hRebar, SW_HIDE);\r
+       }\r
+}\r
+\r
+void Win32Platform::SetStatusIndicator(DWORD nPos, LPCTSTR pText, BOOL bDisp)\r
+{\r
+       pStatusBar->SetStatusIndicator(nPos, pText, bDisp);\r
+}\r
+\r
+WORD Win32Platform::GetStatusBarHeight()\r
+{\r
+       return pStatusBar->GetHeight();\r
+}\r
+\r
+void Win32Platform::ResizeStatusBar(WPARAM wParam, LPARAM lParam)\r
+{\r
+       SendMessage(hRebar, WM_SIZE, wParam, lParam);\r
+\r
+       pStatusBar->SendSize(wParam, lParam);\r
+       pStatusBar->ResizeStatusBar();\r
+}\r
+\r
+void Win32Platform::GetStatusWindowRect(RECT *pRect)\r
+{\r
+       pStatusBar->GetWindowRect(pRect);\r
+}\r
+\r
+///////////////////////////////////////////////////\r
+// Load i18nized menu\r
+///////////////////////////////////////////////////\r
+\r
+static void InsertBaseMenu(HMENU hMain, int pos, LPCTSTR pText, HMENU hSub)\r
+{\r
+       MENUITEMINFO mii;\r
+       memset(&mii, 0, sizeof(mii));\r
+       mii.cbSize = sizeof(mii);\r
+\r
+       mii.fMask = MIIM_DATA | MIIM_TYPE | MIIM_SUBMENU;\r
+       mii.fType = MFT_STRING;\r
+       mii.dwTypeData = (LPTSTR)pText;\r
+       mii.cch = _tcslen(pText);\r
+       mii.hSubMenu = hSub;\r
+       InsertMenuItem(hMain, pos, FALSE, &mii);\r
+}\r
+\r
+static MenuMsgRes aFileMenu[] = {\r
+       {  0, IDM_NEWMEMO,    0, MSG_ID_MENUITEM_W32_F_NEWMEMO },\r
+       {  1, IDM_NEWFOLDER,  0, MSG_ID_MENUITEM_W32_F_NEWFOLDER },\r
+       {  2, IDM_RENAME,     0, MSG_ID_MENUITEM_W32_F_RENAME },\r
+       {  3, IDM_DELETEITEM, 0, MSG_ID_MENUITEM_W32_F_DEL },\r
+       {  4, -1,             0, 0},\r
+       {  5, IDM_SAVE,       0, MSG_ID_MENUITEM_W32_F_SAVE },\r
+       {  6, IDM_EXIT,       0, MSG_ID_MENUITEM_W32_F_EXIT},\r
+};\r
+\r
+static MenuMsgRes aEditMenu[] = {\r
+       {  0, IDM_CUT,         0,         MSG_ID_MENUITEM_W32_E_CUT },\r
+       {  1, IDM_COPY,        0,         MSG_ID_MENUITEM_W32_E_COPY },\r
+       {  2, IDM_PASTE,       0,         MSG_ID_MENUITEM_W32_E_PASTE },\r
+       {  3, -1,              0,         0 },\r
+       {  4, IDM_SELALL,      0,         MSG_ID_MENUITEM_W32_E_SELALL },\r
+       {  5, -1,              0,         0 },\r
+       {  6, IDM_SEARCH,      0,         MSG_ID_MENUITEM_W32_E_FIND },\r
+       {  7, IDM_SEARCH_NEXT, 0,         MSG_ID_MENUITEM_W32_E_FINDNEXT },\r
+       {  8, IDM_SEARCH_PREV, 0,         MSG_ID_MENUITEM_W32_E_FINDPREV },\r
+       {  9, -1,              0,         0 },\r
+       { 10, IDM_GREP,        0,         MSG_ID_MENUITEM_W32_E_QFILTER },\r
+       { 11, -1,              0,         0 },\r
+       { 12, IDM_INSDATE1,    MF_GRAYED, MSG_ID_MENUITEM_W32_E_DATE1 },\r
+       { 13, IDM_INSDATE2,    MF_GRAYED, MSG_ID_MENUITEM_W32_E_DATE2 },\r
+};\r
+\r
+static MenuMsgRes aBookMarkMenu[] = {\r
+       { 0, IDM_BOOKMARK_ADD,    0, MSG_ID_MENUITEM_W32_B_ADDBM },\r
+       { 1, IDM_BOOKMARK_CONFIG, 0, MSG_ID_MENUITEM_W32_B_EDITBM },\r
+       { 2, -1,                  0, 0 },\r
+};\r
+\r
+static MenuMsgRes aToolMenu[] = {\r
+       {  0, IDM_DETAILS_HSCROLL, MF_CHECKED | MF_GRAYED, MSG_ID_MENUITEM_W32_T_WRAPTEXT },\r
+       {  1, IDM_TOGGLEPANE,      MF_CHECKED,             MSG_ID_MENUITEM_W32_T_TWOPANE },\r
+       {  2, IDM_SHOWREBAR,       MF_CHECKED,             MSG_ID_MENUITEM_W32_T_REBAR },\r
+       {  3, IDM_SHOWSTATUSBAR,   MF_CHECKED,             MSG_ID_MENUITEM_W32_T_STATUSBAR },\r
+       {  4, IDM_TOPMOST,         0,                      MSG_ID_MENUITEM_W32_T_STAYTOPMOST },\r
+       {  5, -1,                  0,                      0 },\r
+       {  6, IDM_ENCRYPT,         MF_GRAYED,              MSG_ID_MENUITEM_W32_T_ENCRYPT },\r
+       {  7, IDM_DECRYPT,         MF_GRAYED,              MSG_ID_MENUITEM_W32_T_DECRYPT },\r
+       {  8, -1,                  0,                      0 },\r
+       {  9, IDM_FORGETPASS,      0,                      MSG_ID_MENUITEM_W32_T_ERASEPASS },\r
+       { 10, -1,                  0,                      0 },\r
+       { 11, IDM_VFOLDER_DEF,     0,                      MSG_ID_MENUITEM_W32_T_VIRTUALFOLDER },\r
+       { 12, IDM_PROPERTY,        0,                      MSG_ID_MENUITEM_W32_T_OPTIONS },\r
+};\r
+\r
+static MenuMsgRes aHelpMenu[] = {\r
+       { 0, IDM_ABOUT, 0, MSG_ID_MENUITEM_W32_H_ABOUT },\r
+};\r
+\r
+\r
+HMENU Win32Platform::LoadMainMenu()\r
+{\r
+       HMENU hMainM = CreateMenu();\r
+\r
+       HMENU hSub;\r
+       OverrideMenuTitle(hSub = CreateMenu(), aFileMenu, sizeof(aFileMenu)/sizeof(MenuMsgRes));\r
+       InsertBaseMenu(hMainM, 0, MSG_MENUITEM_W32B_FILE, hSub);\r
+       OverrideMenuTitle(hSub = CreateMenu(), aEditMenu, sizeof(aEditMenu)/sizeof(MenuMsgRes));\r
+       InsertBaseMenu(hMainM, 1, MSG_MENUITEM_W32B_EDIT, hSub);\r
+       OverrideMenuTitle(hSub = CreateMenu(), aBookMarkMenu, sizeof(aBookMarkMenu)/sizeof(MenuMsgRes));\r
+       InsertBaseMenu(hMainM, 1, MSG_MENUITEM_W32B_BOOKMARK, hSub);\r
+       OverrideMenuTitle(hSub = CreateMenu(), aToolMenu, sizeof(aToolMenu)/sizeof(MenuMsgRes));\r
+       InsertBaseMenu(hMainM, 1, MSG_MENUITEM_W32B_TOOL, hSub);\r
+       OverrideMenuTitle(hSub = CreateMenu(), aHelpMenu, sizeof(aHelpMenu)/sizeof(MenuMsgRes));\r
+       InsertBaseMenu(hMainM, 1, MSG_MENUITEM_W32B_HELP, hSub);\r
+       return hMainM;\r
+}\r
+\r
+#endif // PLATFORM_WIN32
\ No newline at end of file
diff --git a/Src/Win32Platform.h b/Src/Win32Platform.h
new file mode 100644 (file)
index 0000000..8742b00
--- /dev/null
@@ -0,0 +1,56 @@
+#ifndef WIN32PLATFORM_H\r
+#define WIN32PLATFORM_H\r
+#if defined(PLATFORM_WIN32)\r
+\r
+#define PLATFORM_TYPE Win32Platform\r
+\r
+\r
+class StatusBar;\r
+\r
+class Win32Platform : public PlatformLayer {\r
+protected:\r
+       void ControlMenu(BOOL bTreeActive);\r
+       void ControlToolbar(BOOL bTreeActive);\r
+\r
+       StatusBar *pStatusBar;\r
+public:\r
+       HWND hRebar;\r
+       HWND hToolBar;\r
+\r
+       Win32Platform();\r
+       virtual ~Win32Platform();\r
+\r
+       void Create(HWND hWnd, HINSTANCE hInst);\r
+\r
+       HWND GetMainToolBar() { return hToolBar; }\r
+\r
+       HMENU GetMainMenu() { return GetMenu(hMainWnd); }\r
+       HMENU GetMDToolMenu() { return GetMainMenu(); }\r
+       HMENU GetMSEditMenu() { return GetMainMenu(); }\r
+       HMENU GetMSBookMarkMenu() { return GetSubMenu(GetMainMenu(), BOOKMARK_MENU_POS); }\r
+\r
+       void EnableMenu(UINT uid, BOOL bEnable);\r
+       void EnableSearchNext();\r
+       void CheckMenu(UINT uid, BOOL bCheck);\r
+\r
+       void OpenDetailsView();\r
+       void CloseDetailsView();\r
+\r
+       void AdjustUserRect(RECT *r);\r
+\r
+       void ShowStatusBar(BOOL bShow);\r
+       void ShowRebar(BOOL bShow);\r
+\r
+       void SetStatusIndicator(DWORD nPos, LPCTSTR pText, BOOL bDisp);\r
+       WORD GetStatusBarHeight();\r
+       void ResizeStatusBar(WPARAM wParam, LPARAM lParam);\r
+       void GetStatusWindowRect(RECT *pRect);\r
+\r
+       static Win32Platform *PlatformFactory() { return new Win32Platform(); }\r
+\r
+       static HMENU LoadMainMenu();\r
+       static HMENU LoadContextMenu(DWORD nFlg);\r
+};\r
+\r
+#endif // PLATFORM_WIN32\r
+#endif
\ No newline at end of file
diff --git a/Src/YAEdit/FontWidthCache.cpp b/Src/YAEdit/FontWidthCache.cpp
new file mode 100644 (file)
index 0000000..dc72452
--- /dev/null
@@ -0,0 +1,66 @@
+#include <windows.h>\r
+#include "FontWidthCache.h"\r
+\r
+////////////////////////////////////////////////////////\r
+//\r
+////////////////////////////////////////////////////////\r
+\r
+FontWidthCache::FontWidthCache() : hRefDC(NULL), hWndRef(NULL)\r
+{\r
+}\r
+\r
+FontWidthCache::~FontWidthCache()\r
+{\r
+       if (hRefDC) {\r
+               ReleaseDC(hWndRef, hRefDC);\r
+       }\r
+       Clear();\r
+}\r
+\r
+\r
+BOOL FontWidthCache::Init(HWND h, HFONT hFont)\r
+{\r
+       hWndRef = h;\r
+       hRefDC = GetDC(hWndRef);\r
+       SelectObject(hRefDC, hFont);\r
+       Clear();\r
+       return TRUE;\r
+}\r
+\r
+void FontWidthCache::Clear()\r
+{\r
+       memset(bWidthTable, 0, FONT_TABLE_SIZE);\r
+}\r
+\r
+#if defined(PLATFORM_WIN32)\r
+\r
+BYTE FontWidthCache::GetOnebyteCharWidth(const char c)\r
+{\r
+       DWORD nIdx = c;\r
+\r
+       SIZE size;\r
+       GetTextExtentPoint32(hRefDC, &c, 1, &size);\r
+       return (BYTE)size.cx;\r
+}\r
+\r
+BYTE FontWidthCache::GetTwobyteCharWidth(const char *p)\r
+{\r
+       if (*p == '\0') return 0;\r
+       SIZE size;\r
+       GetTextExtentPoint32(hRefDC, p, 2, &size);\r
+       return (BYTE)size.cx;\r
+}\r
+\r
+#else\r
+\r
+BYTE FontWidthCache::GetWideCharWidth(const WCHAR c)\r
+{\r
+       if (bWidthTable[c]) return bWidthTable[c];\r
+\r
+       SIZE size;\r
+       GetTextExtentPoint32(hRefDC, &c, 1, &size);\r
+       bWidthTable[c] = (BYTE)size.cx;\r
+       return (BYTE)size.cx;\r
+}\r
+#endif\r
+\r
diff --git a/Src/YAEdit/FontWidthCache.h b/Src/YAEdit/FontWidthCache.h
new file mode 100644 (file)
index 0000000..21d6011
--- /dev/null
@@ -0,0 +1,30 @@
+#ifndef FONTWIDTHCACHE_H\r
+#define FONTWIDTHCACHE_H\r
+\r
+#define FONT_TABLE_SIZE (256*256)\r
+\r
+class FontWidthCache {\r
+       BYTE bWidthTable[FONT_TABLE_SIZE];\r
+       HWND hWndRef;\r
+       HDC hRefDC;\r
+\r
+protected:\r
+\r
+public:\r
+       FontWidthCache();\r
+       ~FontWidthCache();\r
+\r
+       BOOL Init(HWND hWnd, HFONT hFont);\r
+\r
+       void Clear();\r
+\r
+#if defined(PLATFORM_WIN32)\r
+       BYTE GetOnebyteCharWidth(const char c);\r
+       BYTE GetTwobyteCharWidth(const char *p);\r
+#else\r
+       BYTE GetWideCharWidth(const WCHAR c);\r
+#endif\r
+};\r
+\r
+#endif\r
+\r
diff --git a/Src/YAEdit/LineManager.cpp b/Src/YAEdit/LineManager.cpp
new file mode 100644 (file)
index 0000000..721f6a8
--- /dev/null
@@ -0,0 +1,358 @@
+#include <windows.h>\r
+\r
+#include "VarBuffer.h"\r
+#include "Region.h"\r
+#include "LineManager.h"\r
+#include "MemManager.h"\r
+#include "LineWrapper.h"\r
+#include "PhysicalLineManager.h"\r
+#include "YAEdit.h"\r
+#include "YAEditDoc.h"\r
+\r
+#define INITIAL_ARRAY_SIZE 1000\r
+#define ARRAY_DELTA 100\r
+\r
+/////////////////////////////////////////////////////////////////////////////\r
+// ctor & dtor, initializer\r
+/////////////////////////////////////////////////////////////////////////////\r
+\r
+LineManager::LineManager() : pEdit(NULL)\r
+{\r
+}\r
+\r
+LineManager::~LineManager()\r
+{\r
+}\r
+\r
+BOOL LineManager::Init(YAEditImpl *pEd)\r
+{\r
+       pEdit = pEd;\r
+       if (!aliLine.Init(INITIAL_ARRAY_SIZE, ARRAY_DELTA)) return FALSE;\r
+       return TRUE;\r
+}\r
+\r
+BOOL LineManager::ReleaseBuffer()\r
+{\r
+       if (MaxLine() != 0 && !aliLine.Clear(TRUE)) return FALSE;\r
+       return TRUE;\r
+}\r
+\r
+/////////////////////////////////////////////////////////////////////////////\r
+// Reference logical line.\r
+/////////////////////////////////////////////////////////////////////////////\r
+\r
+DWORD LineManager::LineChars(DWORD nLgLine)\r
+{\r
+       LgLineInfo *pInfo = aliLine.GetUnit(nLgLine);\r
+       LgLineInfo *pNext = aliLine.GetUnit(nLgLine + 1);\r
+\r
+       if (nLgLine + 1 >= MaxLine() || pNext->nPhyLineNo != pInfo->nPhyLineNo) {\r
+               // Get the end position of physical line\r
+               DWORD nPhLine = pInfo->nPhyLineNo;\r
+               MemBlock *pBlock = pEdit->GetDoc()->GetPhMgr()->GetLineInfo(nPhLine)->pLine;\r
+               return pBlock->nUsed - pInfo->nLinePos;\r
+       } else {\r
+               return pNext->nLinePos - pInfo->nLinePos; \r
+       }\r
+}\r
+\r
+BOOL LineManager::IsContLine(DWORD nLgLine)\r
+{\r
+       LgLineInfo *pInfo = aliLine.GetUnit(nLgLine);\r
+       LgLineInfo *pNext = aliLine.GetUnit(nLgLine + 1);\r
+       if (nLgLine + 1 >= MaxLine() || pNext->nPhyLineNo != pInfo->nPhyLineNo) {\r
+               return FALSE;\r
+       } else {\r
+               return TRUE;\r
+       }\r
+\r
+}\r
+\r
+BOOL LineManager::AdjustLines(DWORD nLgLineNo, DWORD nOld, DWORD nNew)\r
+{\r
+       if (nOld == nNew) return TRUE;\r
+       if (nOld > nNew) {\r
+               // dec line\r
+               return aliLine.Shorten(nLgLineNo + nNew, nOld - nNew);\r
+       } else {\r
+               // inc line\r
+               return aliLine.Extend(nLgLineNo, nNew - nOld);\r
+       }\r
+}\r
+\r
+/////////////////////////////////////////////////////////////////////////////\r
+// Convert physical line to logical line that is top of same physical line.\r
+/////////////////////////////////////////////////////////////////////////////\r
+\r
+DWORD LineManager::ConvertPhLineToLgLineTop(DWORD nPhLine)\r
+{\r
+       DWORD nStart = 0;\r
+       DWORD nEnd = MaxLine();\r
+       DWORD nMid, nMidPhLine;\r
+\r
+       while(nStart <= nEnd) {\r
+               nMid = (nStart + nEnd) / 2;\r
+               nMidPhLine = aliLine.GetUnit(nMid)->nPhyLineNo;\r
+               if (nPhLine == nMidPhLine) break;\r
+               if (nPhLine > nMidPhLine) {\r
+                       nStart = nMid + 1;\r
+               } else {\r
+                       nEnd = nMid - 1;\r
+               }\r
+       }\r
+       if (nPhLine == nMidPhLine) {\r
+               while(nMid > 0 && aliLine.GetUnit(nMid - 1)->nPhyLineNo == nPhLine) {\r
+                       nMid--;\r
+               }\r
+               return nMid;\r
+       } else {\r
+               return 0xFFFFFFFF;\r
+       }\r
+}\r
+\r
+/////////////////////////////////////////////////////////////////////////////\r
+// Convert logical line to physical line\r
+/////////////////////////////////////////////////////////////////////////////\r
+\r
+DWORD LineManager::ConvertToPhysicalLine(DWORD nLgLine)\r
+{\r
+       LgLineInfo *pLgInfo = aliLine.GetUnit(nLgLine);\r
+       if (pLgInfo == NULL) return NULL;\r
+       return pLgInfo->nPhyLineNo;\r
+}\r
+\r
+/////////////////////////////////////////////////////////////////////////////\r
+// line position conversion\r
+/////////////////////////////////////////////////////////////////////////////\r
+\r
+// (LgLineNo, LgPos) -> (PhLineNo, PhPos)\r
+\r
+void LineManager::LogicalPosToPhysicalPos(const Coordinate *pLgPos, Coordinate *pPhPos)\r
+{\r
+       DWORD nLgLineNo = pLgPos->row;\r
+       pPhPos->row = ConvertToPhysicalLine(nLgLineNo);\r
+       LgLineInfo *pLi = aliLine.GetUnit(nLgLineNo);\r
+       pPhPos->col = pLi->nLinePos + pLgPos->col;\r
+}\r
+\r
+// (PhLineNo, PhPos) -> (LgLineNo, LgPos)\r
+void LineManager::PhysicalPosToLogicalPos(const Coordinate *pPhPos, Coordinate *pLgPos)\r
+{\r
+       DWORD nPhLineNo = pPhPos->row;\r
+       DWORD nLgLineTop = ConvertPhLineToLgLineTop(nPhLineNo);\r
+\r
+       DWORD nPos = pPhPos->col;\r
+       DWORD i = nLgLineTop;\r
+       while(i + 1 < aliLine.NumItems()) {\r
+               LgLineInfo *pLi = aliLine.GetUnit(i + 1);\r
+               if (pLi->nPhyLineNo != nPhLineNo || pLi->nLinePos > nPos) break;\r
+               i++;\r
+       }\r
+       pLgPos->row = i;\r
+       pLgPos->col = pPhPos->col - aliLine.GetUnit(i)->nLinePos;\r
+}\r
+\r
+/////////////////////////////////////////////////////////////////////////////\r
+// Re-wrapping\r
+/////////////////////////////////////////////////////////////////////////////\r
+\r
+BOOL LineManager::RecalcWrap(LineWrapper *pWrapper)\r
+{\r
+       BOOL b = Assoc(pEdit->GetDoc()->GetPhMgr(), pWrapper);\r
+       return b;\r
+}\r
+\r
+/////////////////////////////////////////////////////////////////////////////\r
+// ReMap line\r
+/////////////////////////////////////////////////////////////////////////////\r
+\r
+BOOL LineManager::ReMapLine(LineWrapper *pWrapper, DWORD nCalcStartPos, DWORD nPhLineNo, DWORD nLgLineNo, \r
+                                                       LPCTSTR pData, DWORD nLen, \r
+                                                       DWORD nPrevLines, LPDWORD pPostLines)\r
+{\r
+       TVector<DWORD> vSep;\r
+\r
+       if (!vSep.Init(10, 10)) return FALSE;\r
+       if (!vSep.Add(&nCalcStartPos)) return FALSE;\r
+\r
+       if (!pWrapper->GetNewMarkerList(&vSep, nCalcStartPos, pData, nLen)) return FALSE;\r
+       *pPostLines = vSep.NumItems() - 1;\r
+\r
+       if (!AdjustLines(nLgLineNo, nPrevLines, *pPostLines)) return FALSE;\r
+\r
+       LgLineInfo *pInfo;\r
+       for (DWORD i = 0; i < *pPostLines; i++) {\r
+               pInfo = aliLine.GetUnit(nLgLineNo + i);\r
+               pInfo->nPhyLineNo = nPhLineNo;\r
+               pInfo->nLinePos = *(vSep.GetUnit(i));\r
+       }\r
+       return TRUE;\r
+}\r
+\r
+/////////////////////////////////////////////////////////////////////////////\r
+// Get line chunk\r
+/////////////////////////////////////////////////////////////////////////////\r
+\r
+BOOL LineManager::GetLineChunk(DWORD nLgLine, LineChunk *pChunk)\r
+{\r
+       LgLineInfo *p = aliLine.GetUnit(nLgLine);\r
+       LPTSTR pStr = pEdit->GetDoc()->GetPhMgr()->GetLine(p->nPhyLineNo);\r
+       pChunk->pLine = pStr + p->nLinePos; \r
+\r
+       pChunk->nLen = LineChars(nLgLine);\r
+       pChunk->bIsContLine = IsContLine(nLgLine);\r
+       pChunk->nLineNo = nLgLine;\r
+       return TRUE;\r
+}\r
+\r
+/////////////////////////////////////////////////////////////////////////////\r
+// \r
+/////////////////////////////////////////////////////////////////////////////\r
+\r
+void LineChunk::GetSelRange(LPDWORD pStart, LPDWORD pEnd)\r
+{\r
+       if (pSelRegion->posStart.row <= nLineNo && nLineNo <= pSelRegion->posEnd.row) {\r
+               if (nLineNo == pSelRegion->posStart.row) {\r
+                       *pStart = pSelRegion->posStart.col;\r
+               } else {\r
+                       *pStart = 0;\r
+               }\r
+               if (nLineNo == pSelRegion->posEnd.row) {\r
+                       *pEnd = pSelRegion->posEnd.col;\r
+               } else {\r
+                       *pEnd = LineLen();\r
+               }\r
+       } else {\r
+               *pStart = *pEnd = 0;\r
+       }\r
+}\r
+\r
+/////////////////////////////////////////////////////////////////////////////\r
+// Associate with given PhsicalLineManager\r
+/////////////////////////////////////////////////////////////////////////////\r
+\r
+BOOL LineManager::Assoc(PhysicalLineManager *pMgr, LineWrapper *pWrapper)\r
+{\r
+       DWORD k;\r
+       DWORD n = pMgr->MaxLine();\r
+       LPTSTR pLine;\r
+       DWORD nLen, nLgLines;\r
+\r
+       if (!aliLine.Clear(FALSE)) return FALSE;\r
+       for (k = 0; k < n; k++) {\r
+               DWORD nLgLineNo = MaxLine();\r
+\r
+               pLine = pMgr->GetLine(k);\r
+               nLen = pMgr->LineChars(k);\r
+\r
+               if (!ReMapLine(pWrapper, 0, k, nLgLineNo, pLine, nLen, 0, &nLgLines)) return FALSE;\r
+       }\r
+       return TRUE;\r
+}\r
+\r
+void LineManager::GetDeletedLgLines(const Region &rPhDelete, Coordinate *pLgStartPos, LPDWORD pLgAfEndLine)\r
+{\r
+       // convert Physical region to Logical region\r
+       PhysicalPosToLogicalPos(&(rPhDelete.posStart), pLgStartPos);\r
+\r
+       Coordinate cLgAfEnd;\r
+       PhysicalPosToLogicalPos(&(rPhDelete.posEnd), &cLgAfEnd);\r
+\r
+       // get max logical lineno whose PhLineNo is same.\r
+       DWORD nRow = cLgAfEnd.row;\r
+       DWORD n = MaxLine();\r
+       while (nRow + 1 < n) {\r
+               if (aliLine.GetUnit(nRow + 1)->nPhyLineNo == rPhDelete.posEnd.row) {\r
+                       nRow++;\r
+               } else {\r
+                       break;\r
+               }\r
+       }\r
+       *pLgAfEndLine = nRow;\r
+}\r
+\r
+BOOL LineManager::AdjustLgLines(PhysicalLineManager *pMgr, LineWrapper *pWrapper, const Region &rPhDelete, DWORD nPhBeforeLines, DWORD nPhAfterLines, DWORD nPhAffectedLine, Coordinate *pLgAfStart, LPDWORD pAffLines)\r
+{\r
+       // TODO1: merge vWork and vSep\r
+       // TODO2: wrap part of line especially when rPhDelete.posStart.col is not first logical line in the physical line, \r
+\r
+       // get logical line range that LineManager should remove.\r
+       DWORD nLgAfStartLine, nLgAfEndLine;\r
+       Region r = rPhDelete;\r
+       r.posStart.col = 0;\r
+       GetDeletedLgLines(r, pLgAfStart, &nLgAfEndLine);\r
+       nLgAfStartLine = pLgAfStart->row;\r
+\r
+       ///////////////////////////\r
+       // wrap affected physical lines and save to work area.\r
+\r
+       TVector<LgLineInfo> vWork; // work area\r
+       if (!vWork.Init(nPhAffectedLine, nPhAffectedLine / 2 > 0 ? nPhAffectedLine : 1)) return FALSE;\r
+               // The number of logical line is same as physical lines if no wrapping, so allocate first.\r
+\r
+       MemBlock *pBlock;\r
+       TVector<DWORD> vSep;\r
+       if (!vSep.Init(10, 10)) return FALSE;\r
+       DWORD i, j, l;\r
+       LgLineInfo li;\r
+       DWORD nZero = 0;\r
+\r
+       l = r.posStart.row;\r
+       for (i = 0; i < nPhAffectedLine; i++) { // for each line\r
+               if (!vSep.Clear(FALSE)) return FALSE;\r
+               if (!vSep.Add(&nZero)) return FALSE;\r
+\r
+               pBlock = pMgr->GetLineInfo(l)->pLine;\r
+\r
+               if (!pWrapper->GetNewMarkerList(&vSep, 0, pBlock->GetDataArea(), pBlock->nUsed)) return FALSE;\r
+               DWORD n = vSep.NumItems() - 1;\r
+\r
+               li.nPhyLineNo = l;\r
+               for (j = 0; j < n; j++) {\r
+                       li.nLinePos = *(vSep.GetUnit(j));\r
+                       if (!vWork.Add(&li)) return FALSE;\r
+               }\r
+\r
+               l++;\r
+       }\r
+\r
+       ///////////////////////\r
+       // if number of physical line changes, update index\r
+       if (nPhBeforeLines < nPhAfterLines) {\r
+               DWORD nDelta = nPhAfterLines - nPhBeforeLines;\r
+               for (i = nLgAfEndLine + 1; i< aliLine.NumItems(); i++) {\r
+                       aliLine.GetUnit(i)->nPhyLineNo += nDelta;\r
+               }\r
+       } else {\r
+               if (nPhBeforeLines > nPhAfterLines) {\r
+                       DWORD nDelta = nPhBeforeLines - nPhAfterLines;\r
+                       for (i = nLgAfEndLine + 1; i < aliLine.NumItems(); i++) {\r
+                               aliLine.GetUnit(i)->nPhyLineNo -= nDelta;\r
+                       }\r
+               }\r
+       }\r
+\r
+       ///////////////////////\r
+       // Adjust lgmgr size\r
+\r
+       DWORD nExist = nLgAfEndLine - nLgAfStartLine + 1;\r
+       DWORD nNeed = vWork.NumItems();\r
+       if (nExist < nNeed) {\r
+               if (!aliLine.Extend(nLgAfStartLine, nNeed - nExist)) return FALSE;\r
+       } else {\r
+               if (!aliLine.Shorten(nLgAfStartLine, nExist - nNeed)) return FALSE;\r
+       }\r
+\r
+       ///////////////////////\r
+       // update lmgr\r
+\r
+       LgLineInfo *pSrc, *pDst;\r
+       for (i = 0; i < vWork.NumItems(); i++) {\r
+               pSrc = vWork.GetUnit(i);\r
+               pDst = aliLine.GetUnit(nLgAfStartLine + i);\r
+               pDst->nLinePos = pSrc->nLinePos;\r
+               pDst->nPhyLineNo = pSrc->nPhyLineNo;\r
+       }\r
+\r
+       return TRUE;\r
+}\r
diff --git a/Src/YAEdit/LineManager.h b/Src/YAEdit/LineManager.h
new file mode 100644 (file)
index 0000000..5b37e69
--- /dev/null
@@ -0,0 +1,132 @@
+#ifndef LINEMANAGER_H\r
+#define LINEMANAGER_H\r
+\r
+class LineWrapper;\r
+class PhysicalLineManager;\r
+struct LineInfo;\r
+class MemBlock;\r
+class Coordinate;\r
+class Region;\r
+class YAEditDoc;\r
+class YAEditImpl;\r
+\r
+/////////////////////////////////////////////////////////////////////////////\r
+// Line chunk\r
+/////////////////////////////////////////////////////////////////////////////\r
+// Line chunk is wrapper for logical line data.\r
+//\r
+// In future plan, impliment GC and LineChunk controls locking contorl, so \r
+// You should not allocate LineChunk to heap area.\r
+// For same resons, LineChunk result especially GetLineData() may updated\r
+// by other thread. don't keep its results pointer after LineChunk object\r
+// has deleted.\r
+\r
+class LineChunk {\r
+       LPCTSTR pLine;\r
+       DWORD nLen;\r
+       BOOL bIsContLine;\r
+\r
+       DWORD nLineNo;\r
+       const Region *pSelRegion;\r
+public:\r
+       LineChunk() : pLine(NULL), nLen(0), bIsContLine(FALSE), nLineNo(0xFFFFFFFF), pSelRegion(NULL) {}\r
+       ~LineChunk() {}\r
+\r
+       ///////////////////////////////////////\r
+       // logical line data\r
+\r
+       LPCTSTR GetLineData() { return pLine; }\r
+       DWORD LineLen() { return nLen; }\r
+\r
+       ///////////////////////////////////////\r
+       // attribute accessor\r
+\r
+       BOOL IsContLine() { return bIsContLine; }\r
+\r
+       ///////////////////////////////////////\r
+       // line no information\r
+       DWORD GetLineNo() { return nLineNo; }\r
+\r
+       ///////////////////////////////////////\r
+       // selected region\r
+       void SetSelRegion(const Region *p) { pSelRegion = p; }\r
+       void GetSelRange(LPDWORD pStart, LPDWORD pEnd);\r
+\r
+       friend class LineManager;\r
+};\r
+\r
+/////////////////////////////////////////////////////////////////////////////\r
+// Logical line element \r
+/////////////////////////////////////////////////////////////////////////////\r
+\r
+class LgLineInfo {\r
+       DWORD nPhyLineNo;\r
+       DWORD nLinePos;\r
+\r
+       friend class LineManager;\r
+       friend class LineManagerTest;\r
+};\r
+\r
+/////////////////////////////////////////////////////////////////////////////\r
+// Line Management System\r
+/////////////////////////////////////////////////////////////////////////////\r
+\r
+class LineManager {\r
+       TVector<LgLineInfo> aliLine; // logical line index\r
+\r
+       YAEditImpl *pEdit;\r
+\r
+protected:\r
+\r
+       BOOL ReMapLine(LineWrapper *pWrapper, DWORD nCalcStartPos, DWORD nPhLineNo, DWORD nLgLineNo, \r
+                                       LPCTSTR pData, DWORD nLen, \r
+                                       DWORD nPrevLines, LPDWORD pPostLines);\r
+\r
+       DWORD LineChars(DWORD n);\r
+       BOOL IsContLine(DWORD n);\r
+       \r
+       DWORD ConvertToPhysicalLine(DWORD nLgLine);\r
+               // Convert Logical line no to Physical line no\r
+\r
+       DWORD ConvertPhLineToLgLineTop(DWORD nPhLine);\r
+\r
+       BOOL AdjustLines(DWORD nLgLineNo, DWORD nOld, DWORD nNew);\r
+       void GetDeletedLgLines(const Region &rPhDelete, Coordinate *pLgStartPos, LPDWORD pLgAfEndLine);\r
+public:\r
+\r
+       ////////////////////////////////////////////////////\r
+       // ctor, dtor & initialize\r
+\r
+       LineManager();\r
+       ~LineManager();\r
+       BOOL Init(YAEditImpl *pEdit);\r
+       BOOL ReleaseBuffer();\r
+\r
+       ////////////////////////////////////////////////////\r
+       // request rewrapping\r
+\r
+       BOOL RecalcWrap(LineWrapper *pWrapper);\r
+       BOOL Assoc(PhysicalLineManager *pMgr, LineWrapper *pWrapper);\r
+\r
+       ////////////////////////////////////////////////////\r
+       // refer logical line.\r
+\r
+       DWORD MaxLine() { return aliLine.NumItems(); }\r
+       BOOL GetLineChunk(DWORD n, LineChunk *pChunk);\r
+\r
+       ////////////////////////////////////////////////////\r
+       // logical position <-> physical position conversion\r
+\r
+       void LogicalPosToPhysicalPos(const Coordinate *pLgPos, Coordinate *pPhPos);\r
+       void PhysicalPosToLogicalPos(const Coordinate *pPhPos, Coordinate *pLgPos);\r
+               // In current implimentation, Ph->Lg conversion is more heavy than Lg->Ph conversions.\r
+\r
+       ////////////////////////////////////////////////////\r
+       // corresponds to physical line changes\r
+\r
+       BOOL AdjustLgLines(PhysicalLineManager *pMgr, LineWrapper *pWrapper, const Region &rPhDelete, DWORD nPhBeforeLines, DWORD nPhAfterLines, DWORD nPhAffectedLine, Coordinate *pLgAfStart, LPDWORD pAffLines);\r
+\r
+       friend class LineManagerTest;\r
+};\r
+\r
+#endif\r
diff --git a/Src/YAEdit/LineWrapper.cpp b/Src/YAEdit/LineWrapper.cpp
new file mode 100644 (file)
index 0000000..267bd55
--- /dev/null
@@ -0,0 +1,81 @@
+#include <windows.h>\r
+#include "VarBuffer.h"\r
+#include "LineWrapper.h"\r
+#include "Region.h"\r
+#include "YAEdit.h"\r
+\r
+/////////////////////////////////////////////////////////////////////////////\r
+// LinWrapper methods\r
+/////////////////////////////////////////////////////////////////////////////\r
+\r
+BOOL LineWrapper::GetNewMarkerList(TVector<DWORD> *pLines, DWORD nCalcStartPos, LPCTSTR pData, DWORD nLen)\r
+{\r
+       LineWrapper::WrapResult wr;\r
+\r
+       DWORD nSepPoint;\r
+       BOOL bBreak = FALSE;\r
+       DWORD nPos = nCalcStartPos;\r
+\r
+       while(!bBreak) {\r
+               wr = Wrap(nPos, pData, nLen, &nSepPoint);\r
+\r
+               switch(wr) {\r
+               case LineWrapper::WRAPRESULT_CONT:\r
+                       if (!pLines->Add(&nSepPoint)) return FALSE;\r
+                       break;\r
+\r
+               case LineWrapper::WRAPRESULT_FINISH:\r
+                       if (!pLines->Add(&nLen)) return FALSE;\r
+                       bBreak = TRUE;\r
+                       break;\r
+\r
+               case LineWrapper::WRAPRESULT_FAIL:\r
+                       return FALSE;\r
+               }\r
+\r
+               nPos = nSepPoint;\r
+       }\r
+       return TRUE;\r
+}\r
+\r
+/////////////////////////////////////////////////////////////////////////////\r
+// SimpleLineWrapper implimentation\r
+/////////////////////////////////////////////////////////////////////////////\r
+\r
+SimpleLineWrapper::SimpleLineWrapper()\r
+{\r
+}\r
+\r
+SimpleLineWrapper::~SimpleLineWrapper()\r
+{\r
+}\r
+\r
+LineWrapper::WrapResult SimpleLineWrapper::Wrap(DWORD nCurrentPos, LPCTSTR pBase, DWORD nLineLimit, LPDWORD pSepPos)\r
+{\r
+       LPCTSTR pStart = pBase + nCurrentPos;\r
+       LPCTSTR pLimit = pBase + nLineLimit;\r
+\r
+       *pSepPos = nLineLimit - nCurrentPos;\r
+       return WRAPRESULT_FINISH;\r
+}\r
+\r
+/////////////////////////////////////////////////////////////////////////////\r
+// FixedLetterWrapper implimentation\r
+/////////////////////////////////////////////////////////////////////////////\r
+\r
+FixedLetterWrapper::FixedLetterWrapper(DWORD n) : nViewWidth(n) {}\r
+FixedLetterWrapper::~FixedLetterWrapper() {}\r
+\r
+LineWrapper::WrapResult FixedLetterWrapper::Wrap(DWORD nCurrentPos, LPCTSTR pBase, DWORD nLineLimit, LPDWORD pSepPos)\r
+{\r
+       LPCTSTR pStart = pBase + nCurrentPos;\r
+       DWORD nLen = nLineLimit - nCurrentPos;\r
+\r
+       if (nLen > nViewWidth) {\r
+               *pSepPos = nCurrentPos + nViewWidth;            \r
+               return WRAPRESULT_CONT;\r
+       } else {\r
+               *pSepPos = nLineLimit;\r
+               return WRAPRESULT_FINISH;\r
+       }\r
+}\r
diff --git a/Src/YAEdit/LineWrapper.h b/Src/YAEdit/LineWrapper.h
new file mode 100644 (file)
index 0000000..f3bfaa5
--- /dev/null
@@ -0,0 +1,82 @@
+#ifndef LINEWRAPPER_H\r
+#define LINEWRAPPER_H\r
+\r
+////////////////////////////////////////////////////////////////////////////\r
+// Wrap line text\r
+/////////////////////////////////////////////////////////////////////////////\r
+\r
+class LineWrapper {\r
+protected:\r
+       DWORD nViewWidth;\r
+public:\r
+       enum WrapResult {\r
+               WRAPRESULT_FAIL,\r
+               WRAPRESULT_CONT,\r
+               WRAPRESULT_FINISH\r
+       };\r
+\r
+       LineWrapper() {}\r
+       virtual ~LineWrapper() {}\r
+\r
+       /////////////////////////////////////////////////////////////////\r
+       // wrapping implimentaiton\r
+       // IN:\r
+       //              nCurrentPos\r
+       //              pBase\r
+       //              nLineLimit\r
+       // OUT:\r
+       //              pSepPos \r
+       // RESULT:\r
+       //              WRAPRESULT_FINISH       - returns when wrapping has finished.\r
+       //              WRAPRESULT_CONT         - returns when remain data exists.\r
+\r
+       virtual WrapResult Wrap(DWORD nCurrentPos, LPCTSTR pBase, DWORD nLineLimit, LPDWORD pSepPos) = 0;\r
+\r
+       /////////////////////////////////////////////////////////////////\r
+       // get wrapping info to line.\r
+       // Seek lines and calls Wrap(), summarise results to pLines.\r
+       //\r
+       // IN:\r
+       //              pData   - physical line data\r
+       //              nLen    - data length\r
+       //              nCalcStartPos - wrap start position\r
+       // OUT:\r
+       //              pLines  - array of wrapping points\r
+\r
+       BOOL GetNewMarkerList(TVector<DWORD> *pLines, DWORD nCalcStartPos, LPCTSTR pData, DWORD nLen);\r
+\r
+       /////////////////////////////////////////////////////////////////\r
+       // data accessors \r
+\r
+       // screen width\r
+       void SetViewWidth(DWORD nWidth) { nViewWidth = nWidth; }\r
+       DWORD GetViewWidth() { return nViewWidth; }\r
+\r
+};\r
+\r
+////////////////////////////////////////////////////////////////////////////\r
+// Simple line wrapper\r
+/////////////////////////////////////////////////////////////////////////////\r
+// SimpleLineWrapper associates 1 physical line to 1 logical line(no wrapping).\r
+\r
+class SimpleLineWrapper : public LineWrapper {\r
+public:\r
+       SimpleLineWrapper();\r
+       virtual ~SimpleLineWrapper();\r
+\r
+       WrapResult Wrap(DWORD nCurrentPos, LPCTSTR pBase, DWORD nLineLimit, LPDWORD pSepPos);\r
+};\r
+\r
+////////////////////////////////////////////////////////////////////////////\r
+// wrap by specified letters \r
+/////////////////////////////////////////////////////////////////////////////\r
+\r
+class FixedLetterWrapper : public LineWrapper {\r
+       DWORD nViewWidth;\r
+public:\r
+       FixedLetterWrapper(DWORD n);\r
+       ~FixedLetterWrapper();\r
+\r
+       WrapResult Wrap(DWORD nCurrentPos, LPCTSTR pBase, DWORD nLineLimit, LPDWORD pSepPos);\r
+};\r
+#endif\r
diff --git a/Src/YAEdit/LineWrapperImpl.cpp b/Src/YAEdit/LineWrapperImpl.cpp
new file mode 100644 (file)
index 0000000..1aca588
--- /dev/null
@@ -0,0 +1,39 @@
+#include <windows.h>\r
+#include "VarBuffer.h"\r
+#include "LineWrapper.h"\r
+#include "LineWrapperImpl.h"\r
+#include "Region.h"\r
+#include "YAEdit.h"\r
+\r
+/////////////////////////////////////////////////////////////////////////////\r
+// \r
+/////////////////////////////////////////////////////////////////////////////\r
+\r
+LineWrapper::WrapResult FixedPixelLineWrapper::Wrap(DWORD nCurrentPos, LPCTSTR pBase, DWORD nLineLimit, LPDWORD pSepPos)\r
+{\r
+       LPCTSTR pStart = pBase + nCurrentPos;\r
+       LPCTSTR pLimit = pBase + nLineLimit;\r
+       LPCTSTR p = pStart;\r
+       DWORD nWidth;\r
+       DWORD nCurrentWidth = 0;\r
+       DWORD k;\r
+       while(p < pLimit) {\r
+               k = 1;\r
+#if defined(PLATFORM_WIN32)\r
+               if (IsDBCSLeadByte(*p)) {\r
+                       k++;\r
+               }\r
+#endif\r
+               nWidth = pView->GetLineWidth(nCurrentWidth, p, k);\r
+               nCurrentWidth += nWidth;\r
+               if (nCurrentWidth > nViewWidth) break;\r
+               p += k;\r
+       }\r
+\r
+       if (p == pLimit) {\r
+               return WRAPRESULT_FINISH;\r
+       } else {\r
+               *pSepPos = p - pBase;\r
+               return WRAPRESULT_CONT;\r
+       }\r
+}\r
diff --git a/Src/YAEdit/LineWrapperImpl.h b/Src/YAEdit/LineWrapperImpl.h
new file mode 100644 (file)
index 0000000..35d1f49
--- /dev/null
@@ -0,0 +1,25 @@
+#ifndef LINEWRAPPERIMPL_H\r
+#define LINEWRAPPERIMPL_H\r
+\r
+/////////////////////////////////////////////////////////////////////////////\r
+// wrapped by window width\r
+/////////////////////////////////////////////////////////////////////////////\r
+\r
+class YAEditImpl;\r
+\r
+class FixedPixelLineWrapper : public LineWrapper {\r
+protected:\r
+       YAEditImpl *pView;\r
+public:\r
+\r
+       FixedPixelLineWrapper() {}\r
+       virtual ~FixedPixelLineWrapper() {}\r
+\r
+       BOOL Init(YAEditImpl *p) { pView = p; return TRUE; }\r
+\r
+       WrapResult Wrap(DWORD nCurrentPos, LPCTSTR pBase, DWORD nLineLimit, LPDWORD pSepPos);\r
+\r
+};\r
+\r
+\r
+#endif
\ No newline at end of file
diff --git a/Src/YAEdit/MemManager.cpp b/Src/YAEdit/MemManager.cpp
new file mode 100644 (file)
index 0000000..161aa25
--- /dev/null
@@ -0,0 +1,99 @@
+#include <windows.h>\r
+#include <tchar.h>\r
+#include "MemManager.h"\r
+\r
+#define INITIAL_HEAP_SIZE 2048\r
+\r
+/////////////////////////////////////////////////////////////////////////////\r
+// ctor & dtor, initializer\r
+/////////////////////////////////////////////////////////////////////////////\r
+\r
+MemManager::MemManager() : hHeap(NULL)\r
+{\r
+}\r
+\r
+MemManager::~MemManager()\r
+{\r
+       if (hHeap) {\r
+               HeapDestroy(hHeap);\r
+       }\r
+}\r
+\r
+BOOL MemManager::Init()\r
+{\r
+       hHeap = HeapCreate(0, INITIAL_HEAP_SIZE, 0);\r
+       if (hHeap == NULL) return FALSE;\r
+       return TRUE;\r
+}\r
+\r
+/////////////////////////////////////////////////////////////////////////////\r
+// Allocate memory\r
+/////////////////////////////////////////////////////////////////////////////\r
+\r
+MemBlock *MemManager::Alloc(DWORD nLetters)\r
+{\r
+       WORD nlen = sizeof(MemBlock) + nLetters * sizeof(TCHAR);\r
+       MemBlock *p = (MemBlock*)HeapAlloc(hHeap, 0, nlen);\r
+       if (!p) return NULL;\r
+       p->nBlockType = MEMBLOCK_TYPE_NORMAL;\r
+       p->nBlockLen = (WORD)nLetters;\r
+       p->nUsed = 0;\r
+       return p;\r
+}\r
+\r
+/////////////////////////////////////////////////////////////////////////////\r
+// Allocate memory with memory copy\r
+/////////////////////////////////////////////////////////////////////////////\r
+\r
+MemBlock *MemManager::Alloc(LPCTSTR pStr, DWORD nLetters)\r
+{\r
+       MemBlock *p = Alloc(nLetters);\r
+       if (p == NULL) return NULL;\r
+\r
+       p->nUsed = (WORD)nLetters;\r
+       LPTSTR pData = p->GetDataArea();\r
+       memcpy(pData, pStr, nLetters * sizeof(TCHAR));\r
+       return p;\r
+}\r
+\r
+/////////////////////////////////////////////////////////////////////////////\r
+// free memory\r
+/////////////////////////////////////////////////////////////////////////////\r
+void MemManager::Free(MemBlock *p)\r
+{\r
+       HeapFree(hHeap, 0, p);\r
+}\r
+\r
+/////////////////////////////////////////////////////////////////////////////\r
+// Extend memory\r
+/////////////////////////////////////////////////////////////////////////////\r
+MemBlock *MemManager::Extend(MemBlock *pBlock, DWORD nPos, DWORD nSize)\r
+{\r
+       if (pBlock->nUsed + nSize >= pBlock->nBlockLen) {\r
+               // need realloc\r
+               DWORD nNeedBytes = nSize * sizeof(TCHAR);\r
+               DWORD nDeltaBytes = (nNeedBytes / sizeof(MemBlock) + 1) * sizeof(MemBlock);\r
+\r
+               pBlock = (MemBlock*)HeapReAlloc(hHeap, 0, pBlock, sizeof(MemBlock) + (pBlock->nUsed)*sizeof(TCHAR) + nDeltaBytes);\r
+               if (pBlock == NULL) return NULL;\r
+               pBlock->nBlockLen += nDeltaBytes / sizeof(TCHAR);\r
+       }\r
+       LPTSTR p = pBlock->GetDataArea();\r
+       memmove(p + (nPos + nSize), p + nPos, (pBlock->nUsed - nPos)* sizeof(TCHAR));\r
+       pBlock->nUsed += nSize;\r
+       return pBlock;\r
+}\r
+\r
+/////////////////////////////////////////////////////////////////////////////\r
+// concat string\r
+/////////////////////////////////////////////////////////////////////////////\r
+\r
+MemBlock *MemManager::ConCat(MemBlock *pBlock, LPCTSTR pStr, DWORD nLetters)\r
+{\r
+       DWORD nUsed = pBlock->nUsed;\r
+       MemBlock *p = Extend(pBlock, pBlock->nUsed, nLetters);\r
+       if (p == NULL) return NULL;\r
+\r
+       _tcsncpy(p->GetDataArea() + nUsed, pStr, nLetters);\r
+       return p;\r
+}
\ No newline at end of file
diff --git a/Src/YAEdit/MemManager.h b/Src/YAEdit/MemManager.h
new file mode 100644 (file)
index 0000000..2fd6fa1
--- /dev/null
@@ -0,0 +1,48 @@
+#ifndef MEMMANAGER_H\r
+#define MEMMANAGER_H\r
+\r
+////////////////////////////////////////////////////////////////////////////\r
+// Data Management System\r
+/////////////////////////////////////////////////////////////////////////////\r
+\r
+#define MEMBLOCK_TYPE_SENTINEL 0\r
+#define MEMBLOCK_TYPE_NORMAL 1\r
+\r
+/////////////////////////////////////////////////////////////////////////////\r
+// Data block header\r
+/////////////////////////////////////////////////////////////////////////////\r
+\r
+class MemBlock {\r
+public:\r
+       BYTE nBlockType;\r
+       DWORD nBlockLen;\r
+       DWORD nUsed;\r
+       // in MBCS coding system, nBlockLen and nUsed's unit is bytes.\r
+       // in UCS-2(Unicode) coding system, nBlockLen and nUsed's unit is letters.\r
+       // so, sizeof(TCHAR) times are real memory bytes in UCS-2 coding system.\r
+\r
+       LPTSTR GetDataArea() { return (LPTSTR)(((LPBYTE)this) + sizeof(MemBlock)); }\r
+};\r
+\r
+/////////////////////////////////////////////////////////////////////////////\r
+// Controller of DMS\r
+/////////////////////////////////////////////////////////////////////////////\r
+\r
+class MemManager {\r
+protected:\r
+       HANDLE hHeap;   // Local heap\r
+\r
+public:\r
+       MemManager();\r
+       ~MemManager();\r
+       BOOL Init();\r
+\r
+       MemBlock *Alloc(DWORD nLetters);\r
+       MemBlock *Alloc(LPCTSTR pStr, DWORD nLetters);\r
+       void Free(MemBlock *p);\r
+       MemBlock *Extend(MemBlock *pBlock, DWORD nPos, DWORD nSize);\r
+\r
+       MemBlock *ConCat(MemBlock *pBlock, LPCTSTR pStr, DWORD nLetters);\r
+};\r
+\r
+#endif\r
diff --git a/Src/YAEdit/PhysicalLineManager.cpp b/Src/YAEdit/PhysicalLineManager.cpp
new file mode 100644 (file)
index 0000000..199e899
--- /dev/null
@@ -0,0 +1,419 @@
+#include <windows.h>\r
+#include <tchar.h>\r
+#include "VarBuffer.h"\r
+#include "MemManager.h"\r
+#include "PhysicalLineManager.h"\r
+#include "TString.h"\r
+#include "Region.h"\r
+#include "TomboLib/Uniconv.h"\r
+#include "StringSplitter.h"\r
+\r
+#define INITIAL_ARRAY_SIZE 1000\r
+#define ARRAY_DELTA 100\r
+\r
+/////////////////////////////////////////////////////////////////////////////\r
+// ctor & dtor, initializer\r
+/////////////////////////////////////////////////////////////////////////////\r
+\r
+PhysicalLineManager::PhysicalLineManager() : pMemMgr(NULL)\r
+{\r
+}\r
+\r
+PhysicalLineManager::~PhysicalLineManager()\r
+{\r
+       if (pMemMgr) delete pMemMgr;\r
+}\r
+\r
+\r
+BOOL PhysicalLineManager::Init()\r
+{\r
+       if (!aliLine.Init(INITIAL_ARRAY_SIZE, ARRAY_DELTA)) return FALSE;\r
+       if ((pMemMgr = new MemManager()) == NULL || !pMemMgr->Init()) return FALSE;\r
+       bModify = FALSE;\r
+       return TRUE;\r
+}\r
+\r
+/////////////////////////////////////////////////////////////////////////////\r
+// retrieve line info\r
+/////////////////////////////////////////////////////////////////////////////\r
+\r
+LPTSTR PhysicalLineManager::GetLine(DWORD n) \r
+{\r
+       if (n >= MaxLine()) return NULL;\r
+       LineInfo *p = GetLineInfo(n);\r
+       return p->pLine->GetDataArea();\r
+}\r
+\r
+LineInfo *PhysicalLineManager::GetLineInfo(DWORD nLine)\r
+{\r
+       if (nLine >= MaxLine()) return NULL;\r
+       return aliLine.GetUnit(nLine);\r
+}\r
+\r
+DWORD PhysicalLineManager::LineChars(DWORD n)\r
+{\r
+       if (n>= MaxLine()) return 0;\r
+       return aliLine.GetUnit(n)->pLine->nUsed;\r
+}\r
+\r
+/////////////////////////////////////////////////////////////////////////////\r
+// append line to end of the document\r
+/////////////////////////////////////////////////////////////////////////////\r
+\r
+BOOL PhysicalLineManager::AppendLine(MemBlock *pBlock)\r
+{\r
+       LineInfo li;\r
+       li.pLine = pBlock;\r
+       return aliLine.Add(&li);\r
+}\r
+\r
+/////////////////////////////////////////////////////////////////////////////\r
+// replace line\r
+/////////////////////////////////////////////////////////////////////////////\r
+\r
+BOOL PhysicalLineManager::UpdateBlock(DWORD nLineNo, MemBlock *pNewBlk)\r
+{\r
+       if (nLineNo >= MaxLine()) return FALSE;\r
+       LineInfo *p = aliLine.GetUnit(nLineNo);\r
+       p->pLine = pNewBlk;\r
+       return TRUE;\r
+}\r
+\r
+/////////////////////////////////////////////////////////////////////////////\r
+// insert line\r
+/////////////////////////////////////////////////////////////////////////////\r
+\r
+BOOL PhysicalLineManager::InsertLine(DWORD nLineNo, LPCTSTR pData, DWORD nLen)\r
+{\r
+       MemBlock *pBlock = pMemMgr->Alloc(pData, nLen);\r
+       if (pBlock == NULL) return FALSE;\r
+\r
+       if (!aliLine.Extend(nLineNo, 1)) return FALSE;\r
+       LineInfo *p = aliLine.GetUnit(nLineNo);\r
+       p->pLine = pBlock;\r
+\r
+       return TRUE;\r
+}\r
+\r
+/////////////////////////////////////////////////////////////////////////////\r
+// delete line\r
+/////////////////////////////////////////////////////////////////////////////\r
+// MemBlock are not released automatically. Release manually if you want.\r
+\r
+BOOL PhysicalLineManager::DeleteLine(DWORD nLineNo, DWORD nLines)\r
+{\r
+       if (!aliLine.Shorten(nLineNo, nLines)) return FALSE;\r
+       return TRUE;\r
+}\r
+\r
+/////////////////////////////////////////////////////////////////////////////\r
+// delete region\r
+/////////////////////////////////////////////////////////////////////////////\r
+BOOL PhysicalLineManager::DeleteRegion(const Region *pRegion)\r
+{\r
+       DWORD nNewEnd;\r
+       return ReplaceRegion(pRegion, TEXT(""), &nNewEnd, NULL);\r
+}\r
+\r
+/////////////////////////////////////////////////////////////////////////////\r
+// Insert string\r
+/////////////////////////////////////////////////////////////////////////////\r
+\r
+BOOL PhysicalLineManager::InsertString(DWORD nLineNo, DWORD nStart, LPCTSTR pStr, DWORD nLen)\r
+{\r
+       LineInfo *pInfo = aliLine.GetUnit(nLineNo);\r
+       if (!pInfo) return FALSE;\r
+\r
+       MemBlock *pBlk = pInfo->pLine;\r
+       MemBlock *pNewBlk = pMemMgr->Extend(pBlk, (WORD)nStart, (WORD)nLen);\r
+       if (pNewBlk == NULL) return FALSE;\r
+\r
+       if (pBlk != pNewBlk) {\r
+               UpdateBlock(nLineNo, pNewBlk);\r
+               pInfo->pLine = pNewBlk;\r
+       }\r
+       LPTSTR pData = pNewBlk->GetDataArea();\r
+       memcpy(pData + nStart, pStr, nLen * sizeof(TCHAR));\r
+       return TRUE;\r
+}\r
+\r
+/////////////////////////////////////////////////////////////////////////////\r
+// delete string\r
+/////////////////////////////////////////////////////////////////////////////\r
+\r
+BOOL PhysicalLineManager::DeleteString(DWORD nLineNo, DWORD nStart, DWORD nLen)\r
+{\r
+       LineInfo *pInfo = aliLine.GetUnit(nLineNo);\r
+       if (!pInfo) return FALSE;\r
+\r
+       MemBlock *pBlk = pInfo->pLine;\r
+\r
+       LPTSTR pData = pBlk->GetDataArea();\r
+       memmove(pData + nStart, pData + nStart + nLen, pBlk->nUsed - nStart - nLen);\r
+       pBlk->nUsed -= (WORD)nLen;\r
+\r
+       return TRUE;\r
+}\r
+\r
+/////////////////////////////////////////////////////////////////////////////\r
+// Load document\r
+/////////////////////////////////////////////////////////////////////////////\r
+\r
+BOOL PhysicalLineManager::LoadDoc(LPCTSTR pStr)\r
+{\r
+       // release document index and data area\r
+       if (!aliLine.Clear(TRUE)) return FALSE;\r
+       delete pMemMgr;\r
+       if ((pMemMgr = new MemManager()) == NULL || !pMemMgr->Init()) return FALSE;\r
+\r
+       MemBlock *pBlock;\r
+       // check empty document\r
+\r
+       if (*pStr == TEXT('\0')) {\r
+               pBlock = pMemMgr->Alloc(TEXT(""), 0);\r
+               if (pBlock == NULL || !AppendLine(pBlock)) return FALSE;\r
+               return TRUE;\r
+       }\r
+\r
+       // chop each line\r
+       LPCTSTR q = pStr;\r
+       LPCTSTR pPrevTop = pStr;\r
+\r
+       while(*q) {\r
+               if (*q == TEXT('\r') || *q == TEXT('\n')) {\r
+                       // insert line\r
+                       pBlock = pMemMgr->Alloc(pPrevTop, q - pPrevTop);\r
+                       if (pBlock == NULL || !AppendLine(pBlock)) return FALSE;\r
+\r
+                       if (*q == TEXT('\r') && *(q+1) == TEXT('\n')) {\r
+                               q = CharNext(q);\r
+                       }\r
+                       q = CharNext(q);\r
+                       pPrevTop = q;\r
+\r
+                       if (*q == TEXT('\0')) {\r
+                               pBlock = pMemMgr->Alloc(pPrevTop, 0);\r
+                               if (pBlock == NULL || !AppendLine(pBlock)) return FALSE;                                \r
+                               return TRUE;\r
+                       }\r
+\r
+                       continue;\r
+               }\r
+               q = CharNext(q);\r
+       }\r
+\r
+       if (pPrevTop != q) {\r
+               pBlock = pMemMgr->Alloc(pPrevTop, q - pPrevTop);\r
+               if (pBlock == NULL || !AppendLine(pBlock)) return FALSE;\r
+       }\r
+\r
+       return TRUE;\r
+}\r
+\r
+/////////////////////////////////////////////////////////////////////////////\r
+// Load document\r
+/////////////////////////////////////////////////////////////////////////////\r
+\r
+char *PhysicalLineManager::GetDocumentData(LPDWORD pLen)\r
+{\r
+       DWORD nSize = 0;\r
+\r
+       // Count buffer size\r
+       DWORD nLine = aliLine.NumItems();\r
+       DWORD i;\r
+       for (i = 0; i < nLine; i++) {\r
+               MemBlock *p = aliLine.GetUnit(i)->pLine;\r
+\r
+               nSize += p->nUsed;\r
+               nSize += 2;\r
+       }\r
+       nSize -= 2;\r
+\r
+       LPTSTR pData = new TCHAR[nSize + 1];\r
+       if (pData == NULL) return NULL;\r
+       LPTSTR q = pData;\r
+       for (i = 0; i < nLine; i++) {\r
+               MemBlock *p = aliLine.GetUnit(i)->pLine;\r
+\r
+               _tcsncpy(q, p->GetDataArea(), p->nUsed);\r
+               q += p->nUsed;\r
+               if (i < nLine - 1) {\r
+                       _tcscpy(q, TEXT("\r\n"));\r
+                       q += 2;\r
+               }\r
+       }\r
+       *q = TEXT('\0');\r
+\r
+       char *pResultData;\r
+#ifdef _WIN32_WCE\r
+       pResultData = ConvUnicode2SJIS(pData);\r
+       *pLen = strlen(pResultData);\r
+       delete [] pData;\r
+#else\r
+       pResultData = pData;\r
+       *pLen = nSize;\r
+#endif\r
+       return pResultData;\r
+}\r
+\r
+/////////////////////////////////////////////////////////////////////////////\r
+// Get string in the region\r
+/////////////////////////////////////////////////////////////////////////////\r
+\r
+LPTSTR PhysicalLineManager::GetRegionString(const Region *pRegion)\r
+{\r
+       if (pRegion->posStart.row == pRegion->posEnd.row) {\r
+               MemBlock *pBlock = aliLine.GetUnit(pRegion->posStart.row)->pLine;\r
+\r
+               DWORD nLen = pBlock->nUsed;\r
+               LPTSTR pLine = pBlock->GetDataArea();\r
+\r
+               DWORD nRegionSize = pRegion->posEnd.col - pRegion->posStart.col;\r
+               LPTSTR p = new TCHAR[nRegionSize + 1];\r
+               if (p == NULL) { SetLastError(ERROR_NOT_ENOUGH_MEMORY); return NULL; }\r
+\r
+               _tcsncpy(p, pLine + pRegion->posStart.col, nRegionSize);\r
+               *(p + nRegionSize) = TEXT('\0');\r
+               return p;\r
+\r
+       } else {\r
+               // get data size\r
+               DWORD nRegionSize = 0;\r
+\r
+               MemBlock *pFirstBlock = aliLine.GetUnit(pRegion->posStart.row)->pLine;\r
+               DWORD nFirstLen = pFirstBlock->nUsed - pRegion->posStart.col;\r
+               nRegionSize += nFirstLen;\r
+\r
+               nRegionSize += 2;       // CRLF\r
+               MemBlock *pLastBlock = aliLine.GetUnit(pRegion->posEnd.row)->pLine;\r
+               DWORD nLastLen = pRegion->posEnd.col;\r
+               nRegionSize += nLastLen;\r
+               DWORD i;\r
+               for (i = pRegion->posStart.row + 1; i < pRegion->posEnd.row; i++) {\r
+                       MemBlock *pBlock = aliLine.GetUnit(i)->pLine;\r
+                       DWORD nLen = pBlock->nUsed;\r
+                       nRegionSize += nLen;\r
+                       nRegionSize += 2; // CRLF;\r
+               }\r
+\r
+               // allocate buffer\r
+               LPTSTR p = new TCHAR[nRegionSize + 1];\r
+               if (p == NULL) { SetLastError(ERROR_NOT_ENOUGH_MEMORY); return NULL; }\r
+\r
+               // padding data\r
+               LPTSTR q = p;\r
+               _tcsncpy(q, pFirstBlock->GetDataArea() + pRegion->posStart.col, nFirstLen);\r
+               q += nFirstLen;\r
+\r
+               _tcsncpy(q, TEXT("\r\n"), 2); q += 2;\r
+\r
+               for (i = pRegion->posStart.row + 1; i < pRegion->posEnd.row; i++) {\r
+                       MemBlock *pBlock = aliLine.GetUnit(i)->pLine;\r
+                       _tcsncpy(q, pBlock->GetDataArea(), pBlock->nUsed);\r
+                       q += pBlock->nUsed;\r
+                       _tcsncpy(q, TEXT("\r\n"), 2); q += 2;                   \r
+               }\r
+\r
+               _tcsncpy(q, pLastBlock->GetDataArea(), nLastLen);\r
+               q += nLastLen;\r
+               *q = TEXT('\0');\r
+               return p;\r
+       }\r
+}\r
+\r
+/////////////////////////////////////////////////////////////////////////////\r
+// Replace string\r
+/////////////////////////////////////////////////////////////////////////////\r
+\r
+BOOL PhysicalLineManager::ReplaceRegion(const Region *pRegion, LPCTSTR pString, LPDWORD pAffectedLines, Region *pNewRegion)\r
+{\r
+       // parse and split replase string\r
+       StringSplitter ss;\r
+       if (!ss.Init() || !ss.Parse(pString)) return FALSE;\r
+       *pAffectedLines = ss.MaxLine();\r
+\r
+       // keep first and last line of curent memblock;\r
+       MemBlock *pFirstLine;\r
+       MemBlock *pLastLine;\r
+\r
+       pFirstLine = aliLine.GetUnit(pRegion->posStart.row)->pLine;\r
+       if (pRegion->posStart.row != pRegion->posEnd.row) {\r
+               pLastLine = aliLine.GetUnit(pRegion->posEnd.row)->pLine;\r
+       } else {\r
+               pLastLine = NULL;\r
+       }\r
+\r
+       DWORD i;\r
+       // free unused block;\r
+       if (pRegion->posEnd.row - pRegion->posStart.row >= 1) {\r
+               for (i = pRegion->posStart.row + 1; i <= pRegion->posEnd.row - 1; i++) {\r
+                       pMemMgr->Free(aliLine.GetUnit(i)->pLine);\r
+               }\r
+       }\r
+\r
+       // modify physical line vector\r
+       DWORD nPrevLines = pRegion->posEnd.row - pRegion->posStart.row + 1;\r
+       DWORD nAfterLines = ss.MaxLine();\r
+       if (nPrevLines > nAfterLines) {\r
+               aliLine.Shorten(pRegion->posStart.row, nPrevLines - nAfterLines);\r
+       } else {\r
+               aliLine.Extend(pRegion->posStart.row, nAfterLines - nPrevLines);\r
+       }\r
+\r
+       // link appended line except first and last line.\r
+       MemBlock *pAppend;\r
+       DWORD nMidStart = pRegion->posStart.row;\r
+       for (i = 1; i < ss.MaxLine() - 1; i++) {\r
+               pAppend = pMemMgr->Alloc(pString + ss.GetBegin(i), ss.GetEnd(i) - ss.GetBegin(i));\r
+               if (pAppend == NULL) {\r
+                       // TODO: error handling\r
+                       return FALSE;\r
+               }\r
+               aliLine.GetUnit(nMidStart + i)->pLine = pAppend;\r
+       }\r
+\r
+       pAppend = pMemMgr->Alloc(pFirstLine->GetDataArea(), pRegion->posStart.col);\r
+       if (pAppend == NULL) return FALSE;\r
+       pAppend = pMemMgr->ConCat(pAppend, pString + ss.GetBegin(0), ss.GetEnd(0) - ss.GetBegin(0));\r
+       if (pAppend == NULL) return FALSE;\r
+\r
+       DWORD nLastAppend;\r
+       if (ss.MaxLine() == 1) {\r
+               nLastAppend = 0;\r
+       } else {\r
+               // top line\r
+               aliLine.GetUnit(pRegion->posStart.row)->pLine = pAppend;\r
+\r
+               // last line\r
+               nLastAppend = ss.MaxLine() - 1;\r
+               pAppend = pMemMgr->Alloc(pString + ss.GetBegin(nLastAppend), ss.GetEnd(nLastAppend) - ss.GetBegin(nLastAppend));\r
+               if (pAppend == NULL) return FALSE;\r
+       }\r
+\r
+       if (pLastLine) {\r
+               pAppend = pMemMgr->ConCat(pAppend, pLastLine->GetDataArea() + pRegion->posEnd.col, pLastLine->nUsed - pRegion->posEnd.col);\r
+       } else {\r
+               pAppend = pMemMgr->ConCat(pAppend, pFirstLine->GetDataArea() + pRegion->posEnd.col, pFirstLine->nUsed - pRegion->posEnd.col);\r
+       }\r
+       if (pAppend == NULL) return FALSE;\r
+       aliLine.GetUnit(pRegion->posStart.row + nLastAppend)->pLine = pAppend;\r
+\r
+       // free old memblocks\r
+       pMemMgr->Free(pFirstLine);\r
+       if (pLastLine) pMemMgr->Free(pLastLine);\r
+\r
+       // set pNewRegion\r
+       if (pNewRegion) {\r
+               pNewRegion->posStart = pRegion->posStart;\r
+               pNewRegion->posEnd.row = pRegion->posStart.row + ss.MaxLine() - 1;\r
+\r
+               if (ss.MaxLine() == 1) {\r
+                       pNewRegion->posEnd.col = pRegion->posStart.col + ss.GetEnd(ss.MaxLine() - 1);\r
+               } else {\r
+                       pNewRegion->posEnd.col = ss.GetEnd(ss.MaxLine() - 1) - ss.GetBegin(ss.MaxLine() - 1);\r
+               }\r
+       }\r
+\r
+       return TRUE;\r
+}\r
+\r
diff --git a/Src/YAEdit/PhysicalLineManager.h b/Src/YAEdit/PhysicalLineManager.h
new file mode 100644 (file)
index 0000000..a42c98e
--- /dev/null
@@ -0,0 +1,63 @@
+#ifndef PHYSICALLINEMANAGER_H\r
+#define PHYSICALLINEMANAGER_H\r
+\r
+class MemBlock;\r
+class MemManager;\r
+class Region;\r
+class StringSplitter;\r
+\r
+/////////////////////////////////////////////////////////////////////////////\r
+// Physical line element info\r
+/////////////////////////////////////////////////////////////////////////////\r
+\r
+struct LineInfo {\r
+       MemBlock *pLine;\r
+};\r
+\r
+/////////////////////////////////////////////////////////////////////////////\r
+// Line Management System(Physical line)\r
+/////////////////////////////////////////////////////////////////////////////\r
+\r
+class PhysicalLineManager\r
+{\r
+protected:\r
+       TVector<LineInfo> aliLine; // line index\r
+       MemManager *pMemMgr;\r
+\r
+       BOOL bModify;\r
+\r
+       BOOL AppendLine(MemBlock *pBlock);\r
+       BOOL UpdateBlock(DWORD nLineNo, MemBlock *pNewBlk);\r
+\r
+public:\r
+\r
+       PhysicalLineManager();\r
+       ~PhysicalLineManager();\r
+       BOOL Init();\r
+\r
+       BOOL LoadDoc(LPCTSTR pStr);\r
+       char* GetDocumentData(LPDWORD pLen);\r
+\r
+       LPTSTR GetLine(DWORD n);\r
+       LineInfo *GetLineInfo(DWORD nLine);\r
+       DWORD LineChars(DWORD n);\r
+\r
+       DWORD MaxLine() { return aliLine.NumItems(); }\r
+\r
+       BOOL InsertLine(DWORD nLineNo, LPCTSTR pData, DWORD nLen);\r
+       BOOL DeleteLine(DWORD nLineNo, DWORD nLines);\r
+\r
+       BOOL DeleteRegion(const Region *pPhRegion);\r
+\r
+       BOOL InsertString(DWORD nLineNo, DWORD nStart, LPCTSTR pData, DWORD nLen);\r
+       BOOL DeleteString(DWORD nLineNo, DWORD nStart, DWORD nLen);\r
+\r
+       BOOL ReplaceRegion(const Region *pRegion, LPCTSTR pStr, LPDWORD pAffectedLines, Region *pNewRegion);\r
+\r
+       LPTSTR GetRegionString(const Region *pRegion);\r
+\r
+       friend class PhysicalLineManagerTest;\r
+};\r
+\r
+\r
+#endif
\ No newline at end of file
diff --git a/Src/YAEdit/Region.cpp b/Src/YAEdit/Region.cpp
new file mode 100644 (file)
index 0000000..7818575
--- /dev/null
@@ -0,0 +1,6 @@
+#include <windows.h>\r
+#include "Region.h"\r
+\r
+/////////////////////////////////////////////////////////////////////////////\r
+// no body\r
+/////////////////////////////////////////////////////////////////////////////\r
diff --git a/Src/YAEdit/Region.h b/Src/YAEdit/Region.h
new file mode 100644 (file)
index 0000000..0691857
--- /dev/null
@@ -0,0 +1,36 @@
+#ifndef REGION_H\r
+#define REGION_H\r
+\r
+class Coordinate {\r
+public:\r
+       DWORD col;\r
+       DWORD row;\r
+\r
+       Coordinate() : col(0), row(0) {}\r
+       Coordinate(DWORD c, DWORD r) : col(c), row(r) {}\r
+       void Set(DWORD c, DWORD r) { col = c; row = r; }\r
+};\r
+\r
+inline int operator==(const Coordinate &pos1, const Coordinate &pos2) { return pos1.col == pos2.col && pos1.row == pos2.row; }\r
+inline int operator!=(const Coordinate &pos1, const Coordinate &pos2) { return !(pos1 == pos2); }\r
+inline int operator<(const Coordinate &pos1, const Coordinate &pos2) { return pos1.row < pos2.row || (pos1.row == pos2.row && pos1.col < pos2.col); }\r
+inline int operator>(const Coordinate &pos1, const Coordinate &pos2) { return pos2 < pos1; }\r
+\r
+class Region {\r
+public:\r
+       enum { COL_EOL = 0xFFFFFFFF, ROW_MAX = 0xFFFFFFFF };\r
+\r
+       Coordinate posStart;\r
+       Coordinate posEnd;\r
+\r
+       Region() { posStart.Set(0, 0); posEnd.Set(0, 0); }\r
+       Region(const Region& r) { posStart = r.posStart; posEnd = r.posEnd; }\r
+       Region(DWORD cs, DWORD rs, DWORD ce, DWORD re) { posStart.Set(cs, rs); posEnd.Set(ce, re); }\r
+\r
+       BOOL IsEmptyRegion() const { return posStart == posEnd; }\r
+\r
+};\r
+\r
+inline int operator==(const Region &r1, const Region &r2) { return (r1.posStart == r2.posStart) && (r1.posEnd == r2.posEnd); }\r
+\r
+#endif
\ No newline at end of file
diff --git a/Src/YAEdit/StringSplitter.cpp b/Src/YAEdit/StringSplitter.cpp
new file mode 100644 (file)
index 0000000..e4c2c4f
--- /dev/null
@@ -0,0 +1,67 @@
+#include <windows.h>\r
+#include "VarBuffer.h"\r
+#include "StringSplitter.h"\r
+\r
+/////////////////////////////////////////////////////////////////////////////\r
+// Initialize\r
+/////////////////////////////////////////////////////////////////////////////\r
+\r
+BOOL StringSplitter::Init()\r
+{\r
+       return lines.Init(10, 10);\r
+}\r
+\r
+/////////////////////////////////////////////////////////////////////////////\r
+// parse string and set to vector\r
+/////////////////////////////////////////////////////////////////////////////\r
+\r
+// Usually, EOL code is only one and it is designated by options but\r
+// in current version, EOL code is not deterministic.\r
+// all pattern is accepted below even though some code exists in other lines.\r
+// CR, LF, CR+LF, CR+CR, LF+LF, LF+CR\r
+\r
+// ex.  abc\rdef\nghi is delimited by 3 lines : [abc][def][ghi]\r
+\r
+BOOL StringSplitter::Parse(LPCTSTR pStr)\r
+{\r
+       lines.Clear(FALSE);\r
+       if (*pStr == TEXT('\0')) {\r
+               Marker m;\r
+               m.nBegin = m.nEnd = 0;\r
+               return lines.Add(&m);\r
+       }\r
+\r
+       LPCTSTR p;\r
+       LPCTSTR pFirstLine, pLastLine;\r
+       pFirstLine = pLastLine = p = pStr;\r
+       Marker m;\r
+\r
+       while(*p) {\r
+\r
+               if (*p == TEXT('\r') || *p == TEXT('\n')) {\r
+\r
+                       // add line info\r
+                       m.nBegin = pFirstLine - pStr;\r
+                       m.nEnd = pLastLine - pStr;\r
+                       if (!lines.Add(&m)) return FALSE;\r
+\r
+                       // skip if CRLF\r
+                       p++;\r
+                       if (*p == TEXT('\r') || *p == TEXT('\n')) {\r
+                               p++;\r
+                       }\r
+\r
+                       // prepare for next line\r
+                       pFirstLine = pLastLine = p;\r
+                       continue;\r
+               }\r
+               pLastLine = p = CharNext(p);\r
+       }\r
+\r
+       m.nBegin = pFirstLine - pStr;\r
+       m.nEnd = pLastLine - pStr;\r
+       if (!lines.Add(&m)) return FALSE;\r
+\r
+       return TRUE;\r
+}\r
+\r
diff --git a/Src/YAEdit/StringSplitter.h b/Src/YAEdit/StringSplitter.h
new file mode 100644 (file)
index 0000000..7906a9f
--- /dev/null
@@ -0,0 +1,26 @@
+#ifndef LINESPLITTER_H\r
+#define LINESPLITTER_H\r
+\r
+class StringSplitter {\r
+       struct Marker {\r
+               DWORD nBegin;\r
+               DWORD nEnd;\r
+       };\r
+\r
+       TVector<Marker> lines;\r
+public:\r
+       StringSplitter() {}\r
+       ~StringSplitter() {}\r
+\r
+       BOOL Init();\r
+\r
+       BOOL Parse(LPCTSTR pStr);\r
+\r
+       DWORD MaxLine() { return lines.NumItems(); }\r
+       DWORD GetBegin(DWORD i) { return lines.GetUnit(i)->nBegin; }\r
+       DWORD GetEnd(DWORD i) { return lines.GetUnit(i)->nEnd; }\r
+\r
+       friend class StringSplitterTest;\r
+};\r
+\r
+#endif\r
diff --git a/Src/YAEdit/YAEdit.cpp b/Src/YAEdit/YAEdit.cpp
new file mode 100644 (file)
index 0000000..4a7dbae
--- /dev/null
@@ -0,0 +1,1466 @@
+#include <windows.h>\r
+#include <tchar.h>\r
+#if !defined(PLATFORM_PSPC)\r
+#include <imm.h>\r
+#endif\r
+#if defined(PLATFORM_WIN32)\r
+#include <zmouse.h>\r
+#endif\r
+#if defined(PLATFORM_PKTPC) || defined(PLATFORM_WM5)\r
+#include <aygshell.h>\r
+#endif\r
+#include "resource.h"\r
+#include "Region.h"\r
+#include "YAEdit.h"\r
+#include "YAEditView.h"\r
+#include "YAEditDoc.h"\r
+#include "VarBuffer.h"\r
+#include "LineManager.h"\r
+#include "LineWrapper.h"\r
+#include "LineWrapperImpl.h"\r
+#include "Logger.h"\r
+#include "FontWidthCache.h"\r
+#include "TomboLib/UniConv.h"\r
+#include "TomboLib/Clipboard.h"\r
+#include "TString.h"\r
+\r
+/////////////////////////////////////////////////////////////////////////////\r
+// constatnt definitions\r
+/////////////////////////////////////////////////////////////////////////////\r
+\r
+#define YAEDIT_CLASS_NAME TEXT("YAEditCtl")\r
+\r
+#define CHARA_CTRL_C 3\r
+#define CHARA_CTRL_S 19\r
+#define CHARA_CTRL_V 22\r
+#define CHARA_CTRL_X 24\r
+#define CHARA_BS 8\r
+#define CHARA_ENTER 13\r
+#define CHARA_ESC 27\r
+#define CHARA_TAB 9\r
+#define CHARA_SPACE 32\r
+\r
+/////////////////////////////////////////////////////////////////////////////\r
+// static funcs/vars declarations\r
+/////////////////////////////////////////////////////////////////////////////\r
+\r
+static LRESULT CALLBACK YAEditWndProc(HWND hWnd, UINT nMessage, WPARAM wParam, LPARAM lParam);\r
+\r
+/////////////////////////////////////////////////////////////////////////////\r
+// Regist window class\r
+/////////////////////////////////////////////////////////////////////////////\r
+\r
+BOOL YAEdit::RegisterClass(HINSTANCE hInst)\r
+{\r
+       WNDCLASS wc;\r
+\r
+       wc.style = CS_DBLCLKS;\r
+       wc.lpfnWndProc = (WNDPROC)YAEditWndProc;\r
+       wc.cbClsExtra = 0;\r
+       wc.cbWndExtra = sizeof(LONG);\r
+       wc.hInstance = hInst;\r
+       wc.hIcon = NULL;\r
+#ifdef _WIN32_WCE\r
+       wc.hCursor = NULL;\r
+       wc.hbrBackground = (HBRUSH)GetStockObject(WHITE_BRUSH);\r
+#else\r
+       wc.hCursor = LoadCursor(NULL, IDC_IBEAM);\r
+       wc.hbrBackground = (HBRUSH)GetStockObject(WHITE_BRUSH);\r
+#endif\r
+       wc.lpszMenuName = NULL;\r
+       wc.lpszClassName = YAEDIT_CLASS_NAME;\r
+       ::RegisterClass(&wc);\r
+       return TRUE;\r
+}\r
+\r
+/////////////////////////////////////////////////////////////////////////////\r
+// factory method\r
+/////////////////////////////////////////////////////////////////////////////\r
+\r
+YAEdit *YAEdit::GetInstance(YAEditCallback *pCallback)\r
+{\r
+       return new YAEditImpl(pCallback);\r
+}\r
+\r
+YAEditDoc *YAEditImpl::CreateDocument(const char *pStr, YAEditCallback* pCb)\r
+{\r
+       YAEditDoc *pDoc = new YAEditDoc();\r
+       if (pDoc == NULL) {\r
+               SetLastError(ERROR_NOT_ENOUGH_MEMORY);\r
+               return NULL;\r
+       }\r
+       if (pDoc->Init(pStr, this, pCb)) return pDoc;\r
+       return NULL;\r
+}\r
+\r
+/////////////////////////////////////////////////////////////////////////////\r
+// ctor & dtor\r
+/////////////////////////////////////////////////////////////////////////////\r
+\r
+YAEditImpl::YAEditImpl(YAEditCallback *pCB) : \r
+       pWrapper(NULL), bScrollTimerOn(FALSE), pView(NULL), \r
+       bMouseDown(FALSE), pLineMgr(NULL), pCallback(pCB), \r
+       bInsertMode(FALSE)\r
+{\r
+}\r
+\r
+YAEditImpl::~YAEditImpl()\r
+{\r
+       if (pView) {\r
+               if (pView->hViewWnd) DestroyWindow(pView->hViewWnd);\r
+       }\r
+       if (pLineMgr) delete pLineMgr;\r
+}\r
+\r
+/////////////////////////////////////////////////////////////////////////////\r
+// Event handler\r
+/////////////////////////////////////////////////////////////////////////////\r
+\r
+LRESULT CALLBACK YAEditWndProc(HWND hWnd, UINT nMessage, WPARAM wParam, LPARAM lParam)\r
+{\r
+       if (nMessage == WM_CREATE) {\r
+               LPCREATESTRUCT pCS = (LPCREATESTRUCT)lParam;\r
+               YAEditImpl *frm = (YAEditImpl*)pCS->lpCreateParams;\r
+               SetWindowLong(hWnd, 0, (LONG)frm);\r
+               frm->OnCreate(hWnd, wParam, lParam);\r
+               return 0;\r
+       }\r
+\r
+       YAEditImpl *frm = (YAEditImpl*)GetWindowLong(hWnd, 0);\r
+       if (frm == NULL) {\r
+               return DefWindowProc(hWnd, nMessage, wParam, lParam);\r
+       }\r
+\r
+       switch(nMessage) {\r
+       case WM_KEYDOWN:\r
+               if (frm->OnKeyDown(hWnd, wParam, lParam)) {\r
+                       return 0;\r
+               }\r
+               break;\r
+       case WM_CHAR:\r
+               frm->OnChar(hWnd, wParam, lParam);\r
+               return 0;\r
+       case WM_DESTROY:\r
+               return 0;\r
+       case WM_PAINT:\r
+               frm->OnPaint(hWnd, wParam, lParam);\r
+               break;\r
+       case WM_VSCROLL:\r
+               frm->OnVScroll(hWnd, wParam, lParam);\r
+               return 0;\r
+       case WM_HSCROLL:\r
+               frm->OnHScroll(hWnd, wParam, lParam);\r
+               return 0;\r
+       case WM_LBUTTONDOWN:\r
+               frm->OnLButtonDown(hWnd, wParam, lParam);\r
+               break;\r
+       case WM_LBUTTONDBLCLK:\r
+               frm->OnLButtonDblClick(hWnd, wParam, lParam);\r
+               break;\r
+       case WM_MOUSEMOVE:\r
+               frm->OnMouseMove(hWnd, wParam, lParam);\r
+               break;\r
+       case WM_LBUTTONUP:\r
+               frm->OnLButtonUp(hWnd, wParam, lParam);\r
+               break;\r
+       case WM_SETFOCUS:\r
+               frm->OnSetFocus();\r
+               return 0;\r
+       case WM_KILLFOCUS:\r
+               frm->OnKillFocus();\r
+               return 0;\r
+       case WM_TIMER:\r
+               frm->OnTimer(hWnd, wParam, lParam);\r
+               return 0;\r
+       case WM_SIZE:\r
+               frm->OnResize(hWnd, wParam, lParam);\r
+               break;\r
+       case WM_RBUTTONDOWN:\r
+               frm->OnRbuttonDown(hWnd, wParam, lParam);\r
+               return 0;\r
+#if defined(PLATFORM_WIN32)\r
+       case WM_MOUSEWHEEL:\r
+               frm->OnMouseWheel(hWnd, wParam, lParam);\r
+               return 0;\r
+#endif\r
+//     case WM_IME_COMPOSITION:\r
+//             frm->OnIMEComposition(hWnd, wParam, lParam);\r
+//             return 0;\r
+       }\r
+       return DefWindowProc(hWnd, nMessage, wParam, lParam);\r
+}\r
+\r
+/////////////////////////////////////////////////////////////////////////////\r
+// Create window\r
+/////////////////////////////////////////////////////////////////////////////\r
+\r
+BOOL YAEditImpl::Create(HINSTANCE hInst, HWND hParent, DWORD nId, RECT &r, BOOL bWrap)\r
+{\r
+       hInstance = hInst;\r
+       pDoc = NULL;\r
+\r
+       pLineMgr = new LineManager();\r
+       if (!pLineMgr->Init(this)) return FALSE;\r
+\r
+       pView = new YAEditView(this);\r
+\r
+       bWrapLine = bWrap;\r
+       if (!SetWrapper()) return FALSE;\r
+\r
+       pDoc = new YAEditDoc(); \r
+       if (!pDoc->Init("", this, pCallback)) return FALSE;\r
+       \r
+#if defined(PLATFORM_WIN32) || defined(PLATFORM_HPC)\r
+       pView->hViewWnd = CreateWindowEx(WS_EX_CLIENTEDGE, YAEDIT_CLASS_NAME, TEXT(""),\r
+                                               WS_CHILD | WS_VISIBLE | WS_VSCROLL | WS_HSCROLL,\r
+                                               r.left,\r
+                                               r.top,\r
+                                               r.right,\r
+                                               r.bottom,\r
+                                               hParent,\r
+                                               (HMENU)nId,\r
+                                               hInst,\r
+                                               this);\r
+       DWORD nx = GetLastError();\r
+#else\r
+       pView->hViewWnd = CreateWindow(YAEDIT_CLASS_NAME, TEXT(""),\r
+                                               WS_BORDER | WS_CHILD | WS_VISIBLE | WS_VSCROLL | WS_HSCROLL,\r
+                                               r.left,\r
+                                               r.top,\r
+                                               r.right,\r
+                                               r.bottom,\r
+                                               hParent,\r
+                                               (HMENU)nId,\r
+                                               hInst,\r
+                                               this);\r
+#endif\r
+\r
+       if (pView->hViewWnd == NULL) return FALSE;\r
+\r
+#if defined(PLATFORM_WIN32)\r
+       // clear buffer\r
+       aKeyBuffer[0] = aKeyBuffer[1] = '\0';\r
+#endif\r
+\r
+       rSelRegion.posStart.Set(0, 0);\r
+       rSelRegion.posEnd.Set(0, 0);\r
+\r
+       return TRUE;\r
+}\r
+\r
+/////////////////////////////////////////////////////////////////////////////\r
+// set wrapper\r
+/////////////////////////////////////////////////////////////////////////////\r
+\r
+BOOL YAEditImpl::SetWrapper()\r
+{\r
+       if (bWrapLine) {\r
+               // allocate wrapper\r
+               FixedPixelLineWrapper *pWw = new FixedPixelLineWrapper();\r
+               if (pWw == NULL || !pWw->Init(this)) return FALSE;\r
+               delete pWrapper;\r
+               pWrapper = pWw;\r
+       } else {\r
+               SimpleLineWrapper *pWw = new SimpleLineWrapper();\r
+               if (pWw == NULL) return FALSE;\r
+               delete pWrapper;\r
+               pWrapper = pWw;\r
+       }\r
+       return TRUE;\r
+}\r
+\r
+/////////////////////////////////////////////////////////////////////////////\r
+// WM_CREATE handler\r
+/////////////////////////////////////////////////////////////////////////////\r
+// In this function, hViewWnd are not initialized yet.\r
+\r
+void YAEditImpl::OnCreate(HWND hWnd, WPARAM wParam, LPARAM lParam)\r
+{\r
+       pView->OnCreate(hWnd, wParam, lParam);\r
+\r
+       pView->ResetPosition();\r
+       pWrapper->SetViewWidth(pView->GetViewClientRect().right - pView->GetViewClientRect().left - pView->nMaxCharWidth);\r
+\r
+       // associate with default(empty) document.\r
+       // Since memory allocation check, object is created in Create(), and assoicated here.\r
+       SetDoc(pDoc);\r
+}\r
+\r
+/////////////////////////////////////////////////////////////////////////////\r
+// WM_VSCROLL handler\r
+/////////////////////////////////////////////////////////////////////////////\r
+\r
+void YAEditImpl::OnVScroll(HWND hWnd, WPARAM wParam, LPARAM lParam)\r
+{\r
+       int nScrollCode = LOWORD(wParam);\r
+       switch(nScrollCode) {\r
+       case SB_LINEDOWN:\r
+               pView->Next1L();\r
+               break;\r
+       case SB_LINEUP:\r
+               pView->Prev1L();\r
+               break;\r
+       case SB_PAGEDOWN:\r
+               pView->NextPage();\r
+               break;\r
+       case SB_PAGEUP:\r
+               pView->PrevPage();\r
+               break;\r
+       case SB_THUMBTRACK:\r
+               pView->SetScrollVertPos(HIWORD(wParam), TRUE);\r
+               break;\r
+       }\r
+}\r
+\r
+/////////////////////////////////////////////////////////////////////////////\r
+// WM_HSCROLL handler\r
+/////////////////////////////////////////////////////////////////////////////\r
+\r
+void YAEditImpl::OnHScroll(HWND hWnd, WPARAM wParam, LPARAM lParam)\r
+{\r
+       int nScrollCode = LOWORD(wParam);\r
+       switch(nScrollCode) {\r
+       case SB_LINELEFT:\r
+               pView->ScrollLeft1L();\r
+               break;\r
+       case SB_LINERIGHT:\r
+               pView->ScrollRight1L();\r
+               break;\r
+       case SB_PAGELEFT:\r
+               pView->ScrollLeft1P();\r
+               break;\r
+       case SB_PAGERIGHT:\r
+               pView->ScrollRight1P();\r
+               break;\r
+       case SB_THUMBTRACK:\r
+               {\r
+                       int nPos = HIWORD(wParam); \r
+                       pView->SetScrollHorizPos(nPos);\r
+               }\r
+               break;\r
+       }\r
+}\r
+\r
+/////////////////////////////////////////////////////////////////////////////\r
+// WM_MOUSEWHEEL\r
+/////////////////////////////////////////////////////////////////////////////\r
+#if defined(PLATFORM_WIN32)\r
+void YAEditImpl::OnMouseWheel(HWND hWnd, WPARAM wParam, LPARAM lParam)\r
+{\r
+       short delta = ((short) HIWORD(wParam))/WHEEL_DELTA;\r
+       pView->SetScrollVertByOffset(-delta * 2);\r
+}\r
+#endif\r
+\r
+/////////////////////////////////////////////////////////////////////////////\r
+////////////////////////////////////////////////////////////////////////////\r
+// Line drawing related members\r
+//////////////////////////////////////////////////////////////////////////\r
+/////////////////////////////////////////////////////////////////////////\r
+\r
+void YAEditImpl::OnPaint(HWND hWnd, WPARAM wParam, LPARAM lParam)\r
+{\r
+       PAINTSTRUCT ps;\r
+       HDC hDC = BeginPaint(hWnd, &ps);\r
+       if (pDoc == NULL) { \r
+               // Usually, pDoc has some value. this check is for safety.\r
+               EndPaint(hWnd, &ps);\r
+               return;\r
+       }\r
+       pView->PaintRect(hDC, ps.rcPaint);\r
+       EndPaint(hWnd, &ps);\r
+}\r
+\r
+void YAEditImpl::RequestRedraw(DWORD nLineNo, WORD nLeftPos, BOOL bToBottom) { pView->RequestRedraw(nLineNo, nLeftPos, bToBottom); }\r
+void YAEditImpl::RequestRedrawRegion(const Region *pRegion) \r
+{ \r
+       pView->RequestRedrawRegion(pRegion); \r
+}\r
+\r
+/////////////////////////////////////////////////////////////////////////////\r
+// FOCUS\r
+/////////////////////////////////////////////////////////////////////////////\r
+\r
+void YAEditImpl::OnSetFocus()  { \r
+       if (pView) pView->OnSetFocus();\r
+       if (pCallback) pCallback->OnGetFocus();\r
+}\r
+\r
+void YAEditImpl::OnKillFocus() { if (pView) pView->OnKillFocus(); }\r
+\r
+/////////////////////////////////////////////////////////////////////////////\r
+// Key handler\r
+/////////////////////////////////////////////////////////////////////////////\r
+BOOL YAEditImpl::OnKeyDown(HWND hWnd, WPARAM wParam, LPARAM lParam)\r
+{\r
+       int nVertKey = (int)wParam;\r
+       BOOL bShiftDown = (GetKeyState(VK_SHIFT) & 0x8000) != 0;\r
+       BOOL bCtrlDown = (GetKeyState(VK_CONTROL) & 0x8000) != 0;\r
+       BOOL bAltDown = (GetKeyState(VK_MENU) & 0x8000) != 0;\r
+\r
+       if (bShiftDown) {\r
+               switch (nVertKey) {\r
+               case VK_RIGHT:\r
+                       CmdSelRight();\r
+                       break;\r
+               case VK_LEFT:\r
+                       CmdSelLeft();\r
+                       break;\r
+               case VK_UP:\r
+                       CmdSelUp();\r
+                       break;\r
+               case VK_DOWN:\r
+                       CmdSelDown();\r
+                       break;\r
+               case VK_DELETE:\r
+                       CmdCut();\r
+                       break;\r
+               case VK_INSERT:\r
+                       CmdPaste();\r
+                       break;\r
+               case VK_HOME:\r
+                       if (bCtrlDown) {\r
+                               CmdSelTopOfDoc();\r
+                       } else {\r
+                               CmdSelTopOfLogicalLine();\r
+                       }\r
+                       break;\r
+               case VK_END:\r
+                       if (bCtrlDown) {\r
+                               CmdSelEndOfDoc();\r
+                       } else {\r
+                               CmdSelEndOfLogicalLine();\r
+                       }\r
+                       break;\r
+               }\r
+       } else if (bCtrlDown) {\r
+               switch (nVertKey) {\r
+               case 'C':\r
+                       CmdCopy();\r
+                       break;\r
+               case 'V':\r
+                       CmdPaste();\r
+                       break;\r
+               case 'X':\r
+                       CmdCut();\r
+                       break;\r
+               case 'A':\r
+                       CmdSelAll();\r
+                       break;\r
+               case 'Z':\r
+                       CmdUndo();\r
+                       break;\r
+               case 'B':\r
+                       CmdToggleReadOnly();\r
+                       break;\r
+               case VK_INSERT:\r
+                       CmdCopy();\r
+                       break;\r
+               default:\r
+                       CmdNOP();\r
+               }\r
+               return TRUE;\r
+       } else {\r
+               switch (nVertKey) {\r
+               case VK_DELETE:\r
+                       CmdDeleteChar();\r
+                       break;\r
+               case VK_RIGHT:\r
+                       CmdMoveRight();\r
+                       return TRUE;\r
+               case VK_LEFT:\r
+                       CmdMoveLeft();\r
+                       return TRUE;\r
+               case VK_UP:\r
+                       CmdMoveUp();\r
+                       return TRUE;\r
+               case VK_DOWN:\r
+                       CmdMoveDown();\r
+                       return TRUE;\r
+               case VK_PRIOR:\r
+                       CmdScrollUp();\r
+                       return TRUE;\r
+               case VK_NEXT:\r
+                       CmdScrollDown();\r
+                       return TRUE;\r
+               case VK_HOME:\r
+                       CmdMoveTOL();\r
+                       break;\r
+               case VK_END:\r
+                       CmdMoveEOL();\r
+                       break;\r
+               case VK_INSERT:\r
+                       CmdToggleInsertMode();\r
+                       break;\r
+               default:\r
+                       return FALSE;\r
+               }\r
+       }\r
+\r
+       pView->ScrollCaret();\r
+       return TRUE;\r
+}\r
+\r
+void YAEditImpl::OnChar(HWND hWnd, WPARAM wParam, LPARAM lParam)\r
+{\r
+       TCHAR ch = (TCHAR)wParam;\r
+\r
+       if (pDoc->IsReadOnly()) {\r
+               if (ch == CHARA_BS) { CmdScrollUp(); return; }\r
+               if (ch == CHARA_SPACE) { CmdScrollDown(); return; }\r
+               return;\r
+       }\r
+\r
+       if (ch == CHARA_BS) { CmdBackSpace(); return; }\r
+       if (ch == CHARA_ENTER) { CmdReplaceString(TEXT("\n")); return; }\r
+       if (ch == CHARA_ESC) { /* nop */; return; }\r
+\r
+       // if control char, nothing to do\r
+       if (\r
+#if defined(PLATFORM_WIN32)\r
+               aKeyBuffer[0] == '\0' && \r
+#endif\r
+               0 <= ch && ch <= 29 && ch != CHARA_TAB) return;\r
+\r
+#if defined(PLATFORM_WIN32)\r
+       if (aKeyBuffer[0] != '\0') {\r
+               aKeyBuffer[1] = ch;\r
+               aKeyBuffer[2] = TEXT('\0');\r
+               if (bInsertMode && SelectedRegion().IsEmptyRegion()) {\r
+                       CmdSelRight();\r
+               }\r
+               ReplaceText(SelectedRegion(), aKeyBuffer);\r
+               aKeyBuffer[0] = aKeyBuffer[1] = '\0';\r
+               return;\r
+       } else {\r
+               // if char is DBCS lead byte, buffering.\r
+               if (IsDBCSLeadByte(ch)) {\r
+                       aKeyBuffer[0] = ch;\r
+                       return;\r
+               }\r
+       }\r
+#endif\r
+       TCHAR kbuf[2];\r
+       kbuf[0] = ch; kbuf[1] = TEXT('\0');\r
+       if (bInsertMode && SelectedRegion().IsEmptyRegion()) {\r
+               CmdSelRight();\r
+       }\r
+\r
+       ReplaceText(SelectedRegion(), kbuf);\r
+}\r
+\r
+/////////////////////////////////////////////////////////////////////////////\r
+// update selected region\r
+/////////////////////////////////////////////////////////////////////////////\r
+\r
+void YAEditImpl::UpdateSelRegion()\r
+{\r
+       Coordinate nSelNow = pView->GetCaretPosition();\r
+       Coordinate nSelOld;\r
+\r
+       Region r;\r
+       ExtendSelectRegion(nSelNow, &nSelOld);\r
+       if (nSelNow < nSelOld) {\r
+               r.posStart = nSelNow; r.posEnd = nSelOld;\r
+       } else {\r
+               r.posStart = nSelOld; r.posEnd = nSelNow;\r
+       }\r
+       RequestRedrawRegion(&r);\r
+}\r
+\r
+/////////////////////////////////////////////////////////////////////////////\r
+// commands\r
+/////////////////////////////////////////////////////////////////////////////\r
+\r
+void YAEditImpl::CmdNOP() { /* NOP */ }\r
+void YAEditImpl::CmdMoveRight() { pView->ScrollCaret(); pView->MoveRight(); ClearRegion(); pView->ScrollCaret(); }\r
+void YAEditImpl::CmdMoveLeft()  { pView->ScrollCaret(); pView->MoveLeft();  ClearRegion(); pView->ScrollCaret(); }\r
+\r
+void YAEditImpl::CmdMoveUp()\r
+{\r
+       pView->ScrollCaret(); \r
+       pView->MoveUp();\r
+       ClearRegion();\r
+       pView->ScrollCaret(); \r
+}\r
+\r
+void YAEditImpl::CmdMoveEOL()   { pView->ScrollCaret(); pView->MoveEOL();   ClearRegion(); pView->ScrollCaret(); }\r
+void YAEditImpl::CmdMoveTOL()   { pView->ScrollCaret(); pView->MoveTOL();   ClearRegion(); }\r
+void YAEditImpl::CmdMoveDown()  { pView->ScrollCaret(); pView->MoveDown();  ClearRegion(); }\r
+\r
+void YAEditImpl::CmdSelRight() { pView->MoveRight(); UpdateSelRegion(); }\r
+void YAEditImpl::CmdSelLeft()  { pView->MoveLeft(); UpdateSelRegion(); }\r
+void YAEditImpl::CmdSelUp()            { pView->MoveUp(); UpdateSelRegion(); }\r
+void YAEditImpl::CmdSelDown()  { pView->MoveDown(); UpdateSelRegion(); }\r
+\r
+void YAEditImpl::CmdScrollUp() { pView->PrevPage(); }\r
+void YAEditImpl::CmdScrollDown(){ pView->NextPage(); }\r
+\r
+void YAEditImpl::CmdSelTopOfLogicalLine() \r
+{\r
+       Region rNewRegion;\r
+\r
+       rNewRegion.posEnd = rSelRegion.posStart;\r
+       rNewRegion.posStart.Set(0, rSelRegion.posStart.row);\r
+\r
+       ClearRegion();\r
+       rSelRegion = rNewRegion;\r
+       RequestRedrawRegion(&rSelRegion);\r
+       pView->SetCaretPosition(rSelRegion.posStart);\r
+}\r
+\r
+void YAEditImpl::CmdSelEndOfLogicalLine()\r
+{\r
+       Region rNewRegion;\r
+       rNewRegion.posStart = rSelRegion.posEnd;\r
+\r
+       LineChunk lc;\r
+       pLineMgr->GetLineChunk(rSelRegion.posEnd.row, &lc);\r
+       rNewRegion.posEnd.Set(lc.LineLen(), rSelRegion.posEnd.row);\r
+\r
+       ClearRegion();\r
+       rSelRegion = rNewRegion;\r
+       RequestRedrawRegion(&rSelRegion);\r
+       pView->SetCaretPosition(rSelRegion.posEnd);\r
+}\r
+\r
+void YAEditImpl::CmdSelTopOfDoc()\r
+{\r
+       Region rNewRegion;\r
+       rNewRegion.posEnd = rSelRegion.posStart;\r
+       rNewRegion.posStart.Set(0, 0);\r
+\r
+       ClearRegion();\r
+       rSelRegion = rNewRegion;\r
+       RequestRedrawRegion(&rSelRegion);\r
+       pView->SetCaretPosition(rSelRegion.posStart);\r
+}\r
+\r
+void YAEditImpl::CmdSelEndOfDoc()\r
+{\r
+       Region rNewRegion;\r
+       rNewRegion.posStart = rSelRegion.posEnd;\r
+\r
+       LineChunk lc;\r
+       pLineMgr->GetLineChunk(pLineMgr->MaxLine() - 1, &lc);\r
+       rNewRegion.posEnd.Set(lc.LineLen(), pLineMgr->MaxLine() - 1);\r
+\r
+       ClearRegion();\r
+       rSelRegion = rNewRegion;\r
+       RequestRedrawRegion(&rSelRegion);\r
+       pView->SetCaretPosition(rSelRegion.posEnd);\r
+}\r
+\r
+void YAEditImpl::CmdReplaceString(LPCTSTR p)\r
+{\r
+       ReplaceText(SelectedRegion(), p);\r
+       pView->ResetScrollbar();\r
+}\r
+\r
+void YAEditImpl::CmdCut()\r
+{\r
+       if (pDoc->IsReadOnly()) return;\r
+\r
+       if (IsRegionSelected()) {\r
+               if (!CopyToClipboard()) {\r
+                       MessageBox(pView->hViewWnd, TEXT("Copy to clipboard failed."), TEXT("ERROR"), MB_ICONWARNING | MB_OK);\r
+               }\r
+               ReplaceText(SelectedRegion(), TEXT(""));\r
+               pView->ResetScrollbar();\r
+       }\r
+}\r
+\r
+void YAEditImpl::CmdCopy()\r
+{\r
+       if (!CopyToClipboard()) {\r
+               MessageBox(pView->hViewWnd, TEXT("Copy to clipboard failed."), TEXT("ERROR"), MB_ICONWARNING | MB_OK);\r
+       }\r
+}\r
+\r
+void YAEditImpl::CmdPaste()\r
+{\r
+       if (pDoc->IsReadOnly()) return;\r
+\r
+       if (!InsertFromClipboard()) {\r
+               MessageBox(pView->hViewWnd, TEXT("Paste from clipboard failed."), TEXT("ERROR"), MB_ICONWARNING | MB_OK);\r
+       } else {\r
+               pView->ResetScrollbar();\r
+       }\r
+}\r
+\r
+void YAEditImpl::CmdBackSpace()\r
+{\r
+       if (pDoc->IsReadOnly()) return;\r
+\r
+       if (IsRegionSelected()) {\r
+               ReplaceText(SelectedRegion(), TEXT(""));\r
+       } else {\r
+               Region r;\r
+               r.posEnd = pView->GetCaretPosition();\r
+               pView->MoveLeft();\r
+               r.posStart = pView->GetCaretPosition();\r
+               if (!r.IsEmptyRegion()) ReplaceText(r, TEXT(""));\r
+       }\r
+}\r
+\r
+void YAEditImpl::CmdDeleteChar()\r
+{\r
+       if (pDoc->IsReadOnly()) return;\r
+\r
+       if (IsRegionSelected()) {\r
+               ReplaceText(SelectedRegion(), TEXT(""));\r
+       } else {\r
+               Region r;\r
+               r.posStart = pView->GetCaretPosition();\r
+               pView->MoveRight();\r
+               r.posEnd = pView->GetCaretPosition();\r
+               if (!r.IsEmptyRegion()) ReplaceText(r, TEXT(""));\r
+       }\r
+}\r
+\r
+void YAEditImpl::CmdSelAll()\r
+{\r
+       rSelRegion.posStart.Set(0, 0);\r
+\r
+       LineChunk lc;\r
+       pLineMgr->GetLineChunk(pLineMgr->MaxLine() - 1, &lc);\r
+       rSelRegion.posEnd.Set(lc.LineLen(), pLineMgr->MaxLine() - 1);\r
+       RequestRedrawRegion(&rSelRegion);\r
+}\r
+\r
+void YAEditImpl::CmdUndo()\r
+{\r
+       if (pDoc->IsReadOnly()) return;\r
+\r
+       pDoc->Undo();\r
+}\r
+\r
+void YAEditImpl::CmdToggleReadOnly()\r
+{\r
+       pDoc->SetReadOnly(!pDoc->IsReadOnly());\r
+\r
+       if (pCallback) {\r
+               pCallback->ChangeReadOnlyStatusNotify(pDoc->IsReadOnly());\r
+       }\r
+}\r
+\r
+void YAEditImpl::CmdToggleWrapMode(BOOL bWrap)\r
+{\r
+       bWrapLine = bWrap;\r
+       SetWrapper();\r
+\r
+       RECT r;\r
+       GetClientRect(pView->hViewWnd, &r);\r
+       // rewrap logical lines\r
+       pWrapper->SetViewWidth(r.right - r.left - pView->nMaxCharWidth);\r
+       pLineMgr->RecalcWrap(pWrapper);\r
+       // reset view\r
+       pView->UpdateMaxLineWidth();    // UpdateMaxLineWidth depends on LineManager so call after updating LineManager.\r
+\r
+       // reset caret/region position\r
+       pView->ResetPosition();\r
+       pView->SetCaretPosition(Coordinate(0, 0));\r
+       ClearSelectedRegion();  \r
+\r
+       // update scrollbar\r
+       pView->ResetScrollbar();\r
+\r
+       // redraw screen\r
+       pView->RedrawAllScreen();\r
+}\r
+\r
+void YAEditImpl::CmdToggleInsertMode()\r
+{\r
+       bInsertMode = !bInsertMode;\r
+}\r
+\r
+/////////////////////////////////////////////////////////////////////////////\r
+//  RButton\r
+/////////////////////////////////////////////////////////////////////////////\r
+\r
+void YAEditImpl::OnRbuttonDown(HWND hWnd, WPARAM wParam, LPARAM lParam)\r
+{\r
+       RECT rWinRect;\r
+       GetWindowRect(hWnd, &rWinRect);\r
+\r
+       WORD x = (WORD)(rWinRect.left + LOWORD(lParam));\r
+       WORD y = (WORD)(rWinRect.top + HIWORD(lParam));\r
+\r
+       OnLButtonDown(hWnd, wParam, lParam);\r
+       OnLButtonUp(hWnd, wParam, lParam);\r
+       pCallback->OnContextMenu(pView->hViewWnd, x, y);\r
+}\r
+\r
+/////////////////////////////////////////////////////////////////////////////\r
+// WM_LBUTTONDOWN\r
+/////////////////////////////////////////////////////////////////////////////\r
+\r
+void YAEditImpl::OnLButtonDown(HWND hWnd, WPARAM wParam, LPARAM lParam)\r
+{\r
+\r
+       SetFocus();\r
+\r
+#if defined(PLATFORM_PKTPC) || defined(PLATFORM_WM5)\r
+       // Tap&hold\r
+       SHRGINFO rgi;\r
+       rgi.cbSize = sizeof(SHRGINFO);\r
+       rgi.hwndClient = hWnd;\r
+       rgi.ptDown.x = LOWORD(lParam);\r
+       rgi.ptDown.y = HIWORD(lParam);\r
+       rgi.dwFlags = SHRG_RETURNCMD;\r
+\r
+       if (SHRecognizeGesture(&rgi) == GN_CONTEXTMENU) {\r
+               RECT r;\r
+               GetWindowRect(hWnd, &r);\r
+\r
+               pCallback->OnContextMenu(pView->hViewWnd, r.left + rgi.ptDown.x, r.top + rgi.ptDown.y);\r
+               return;\r
+       }\r
+\r
+#endif\r
+\r
+       WORD nMouseDrgStartX, nMouseDrgStartY;  // LButton down point by WM_LBUTTONDOWN\r
+       nMouseDrgStartX = LOWORD(lParam);\r
+       nMouseDrgStartY = HIWORD(lParam);\r
+\r
+       // move caret\r
+       DWORD nNewRow = pView->DpLinePixelToLgLineNo(nMouseDrgStartY);\r
+       if (nNewRow < pLineMgr->MaxLine()) {\r
+               if (nNewRow > 0 && nNewRow - pView->GetBaseLineNo() >= pView->GetPageHeight()) {\r
+                       nNewRow--;\r
+               }\r
+\r
+               pView->SetNearCursorPos(nMouseDrgStartX, nNewRow);\r
+\r
+               Region rOldRgn = SelectedRegion();\r
+               rSelRegion.posStart = rSelRegion.posEnd = pView->GetCaretPosition();\r
+\r
+               // crear previously selected region\r
+               RequestRedrawRegion(&rOldRgn);\r
+       }\r
+\r
+\r
+       // get mouse capture\r
+       SetCapture(hWnd);\r
+       bMouseDown = TRUE;\r
+}\r
+\r
+// Hiragana = 3040 - 309F\r
+// Hankaku-Katakana = FF71-FF9F\r
+\r
+// 0 = control code\r
+// 1 = SPC\r
+// 2 = mark\r
+// 3 = number\r
+// 4 = alpha\r
+// 5 = DBCS\r
+static const BYTE codeType[] = {\r
+  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\r
+  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\r
+  1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,\r
+  3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 2, 2, 2, 2, 2, 2,\r
+  2, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,\r
+  4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 2, 2, 2, 2, 2,\r
+  2, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,\r
+  4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 2, 2, 2, 2, 0,\r
+  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\r
+  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\r
+  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\r
+  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\r
+  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\r
+  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\r
+  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\r
+  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0\r
+};\r
+\r
+#if defined(PLATFORM_WIN32)\r
+static BYTE getCharType(BYTE b)\r
+{\r
+       if (IsDBCSLeadByte(b)) {\r
+               return 5;\r
+       } else {\r
+               return codeType[b];\r
+       }\r
+}\r
+\r
+inline LPCTSTR NextLetter(LPCTSTR p) {\r
+       return CharNext(p);\r
+}\r
+\r
+#else\r
+static BYTE getCharType(WCHAR c)\r
+{\r
+       if (c < 0x7F) {\r
+               return codeType[c];\r
+       }\r
+       return 5;\r
+}\r
+\r
+inline LPCTSTR NextLetter(LPCTSTR p) {\r
+       return p+1;\r
+}\r
+#endif\r
+\r
+void YAEditImpl::OnLButtonDblClick(HWND hWnd, WPARAM wParam, LPARAM lParam)\r
+{\r
+       LineChunk lc;\r
+       pLineMgr->GetLineChunk(rSelRegion.posStart.row, &lc);\r
+\r
+       LPCTSTR pLine = lc.GetLineData();\r
+       LPCTSTR pCur = pLine + rSelRegion.posStart.col;\r
+       DWORD nCol = rSelRegion.posStart.col;\r
+       BYTE nCurType;\r
+\r
+       // get start position\r
+       nCurType = getCharType(*pCur);\r
+\r
+       LPCTSTR p = pLine;\r
+       LPCTSTR q = p;\r
+       while (p < pCur) {\r
+               if (getCharType(*p) != nCurType) {\r
+                       q = p;\r
+               }\r
+               p = NextLetter(p);\r
+       }\r
+       if (q < pCur && getCharType(*q) != nCurType) q = NextLetter(q);\r
+       DWORD nStartPos = q - pLine;\r
+\r
+       // get end position\r
+       LPCTSTR pEnd = pLine + lc.LineLen();\r
+       p = pCur;\r
+       q = pEnd;\r
+\r
+       while (p < pEnd) {\r
+               if (getCharType(*p) != nCurType) {\r
+                       q = p;\r
+                       break;\r
+               }\r
+               p = NextLetter(p);\r
+       }\r
+       DWORD nEndPos = q - pLine;\r
+\r
+       // update select region\r
+       rSelRegion.posEnd.row = rSelRegion.posStart.row;\r
+       rSelRegion.posStart.col = nStartPos;\r
+       rSelRegion.posEnd.col = nEndPos;\r
+       RequestRedrawRegion(&rSelRegion);\r
+\r
+       // update caret position\r
+       pView->SetCaretPosition(rSelRegion.posEnd);\r
+       pView->ScrollCaret();\r
+\r
+}\r
+\r
+/////////////////////////////////////////////////////////////////////////////\r
+//  Mouse move\r
+/////////////////////////////////////////////////////////////////////////////\r
+\r
+#ifndef MAKEPOINTS\r
+#define MAKEPOINTS(l)   (*((POINTS FAR *) & (l))) \r
+#endif\r
+\r
+void YAEditImpl::SetSelectionFromPoint(int xPos, int yPos)\r
+{\r
+       // when SetCaptured, cursor pos may be negative.\r
+       if (xPos < 0) xPos = 0;\r
+       if (yPos < 0) {\r
+               pView->Prev1L();\r
+               yPos = 0;\r
+       }\r
+       if (xPos > pView->GetViewClientRect().right) xPos = pView->GetViewClientRect().right - 1;\r
+       if (yPos > pView->GetViewClientRect().bottom) {\r
+               yPos = pView->GetViewClientRect().bottom - 1;\r
+               pView->Next1L();\r
+       }\r
+\r
+       // move cursor\r
+       DWORD nNewRow = pView->DpLinePixelToLgLineNo(yPos);\r
+       if (nNewRow < pLineMgr->MaxLine()) {\r
+               pView->SetNearCursorPos(xPos, nNewRow);\r
+               UpdateSelRegion();\r
+       }\r
+}\r
+\r
+void YAEditImpl::OnMouseMove(HWND hWnd, WPARAM wParam, LPARAM lParam)\r
+{\r
+       if (!bMouseDown) return;\r
+\r
+       POINTS ptPos;\r
+       ptPos = MAKEPOINTS(lParam);\r
+       int xPos = ptPos.x;\r
+       int yPos = ptPos.y;\r
+\r
+       if (xPos < 0 || yPos < 0 || xPos > pView->GetViewClientRect().right || yPos > pView->GetViewClientRect().bottom) {\r
+               if (!bScrollTimerOn) {\r
+                       SetTimer(hWnd, IDT_SELSCROLL, 50, NULL);\r
+                       bScrollTimerOn = TRUE;\r
+                       ptMousePos.x = ptPos.x;\r
+                       ptMousePos.y = ptPos.y;\r
+               }\r
+       } else {\r
+               if (bScrollTimerOn) {\r
+                       KillTimer(hWnd, IDT_SELSCROLL);\r
+                       bScrollTimerOn = FALSE;\r
+               }\r
+       }\r
+       SetSelectionFromPoint(xPos, yPos);\r
+}\r
+\r
+/////////////////////////////////////////////////////////////////////////////\r
+// WM_LBUTTONUP\r
+/////////////////////////////////////////////////////////////////////////////\r
+\r
+void YAEditImpl::OnLButtonUp(HWND hWnd, WPARAM wParam, LPARAM lParam)\r
+{\r
+       if (!bMouseDown) return;\r
+\r
+       // kill scroll timer\r
+       if (bScrollTimerOn) {\r
+               KillTimer(hWnd, IDT_SELSCROLL);\r
+               bScrollTimerOn = FALSE;\r
+       }\r
+\r
+       // release mouse capture\r
+       if (GetCapture() == hWnd) ReleaseCapture();\r
+       bMouseDown = FALSE;\r
+}\r
+\r
+\r
+/////////////////////////////////////////////////////////////////////////////\r
+// WM_TIMER\r
+/////////////////////////////////////////////////////////////////////////////\r
+\r
+void YAEditImpl::OnTimer(HWND hWnd, WPARAM wParam, LPARAM lParam)\r
+{\r
+       switch(wParam) {\r
+       case IDT_SELSCROLL:\r
+               SetSelectionFromPoint(ptMousePos.x, ptMousePos.y);\r
+               break;\r
+       }\r
+}\r
+\r
+/////////////////////////////////////////////////////////////////////////////\r
+// Set new document\r
+/////////////////////////////////////////////////////////////////////////////\r
+\r
+YAEditDoc *YAEditImpl::SetDoc(YAEditDoc *pNewDoc)\r
+{\r
+       // replace document and LineManager\r
+       YAEditDoc *pOldDoc = pDoc;\r
+       pDoc = pNewDoc;\r
+       pLineMgr->ReleaseBuffer();\r
+\r
+       RECT r;\r
+       GetClientRect(pView->hViewWnd, &r);\r
+\r
+       // rewrap logical lines\r
+       pWrapper->SetViewWidth(r.right - r.left - pView->nMaxCharWidth);\r
+       pLineMgr->RecalcWrap(pWrapper);\r
+       // reset view\r
+       pView->UpdateMaxLineWidth();    // UpdateMaxLineWidth depends on LineManager so call after updating LineManager.\r
+\r
+       // reset caret/region position\r
+       pView->ResetPosition();\r
+       pView->SetCaretPosition(Coordinate(0, 0));\r
+       ClearSelectedRegion();  \r
+\r
+       // update scrollbar\r
+       pView->ResetScrollbar();\r
+\r
+       // redraw screen\r
+       pView->RedrawAllScreen();\r
+       return pOldDoc;\r
+}\r
+\r
+/////////////////////////////////////////////////////////////////////////////\r
+// get max line width for decide hscroll range\r
+/////////////////////////////////////////////////////////////////////////////\r
+\r
+DWORD YAEditImpl::GetLineWidth(DWORD nOffset, LPCTSTR pStr, DWORD nLen) { return pView->GetLineWidth(nOffset, pStr, nLen); }\r
+\r
+/////////////////////////////////////////////////////////////////////////////\r
+// Resize window\r
+/////////////////////////////////////////////////////////////////////////////\r
+\r
+void YAEditImpl::OnResize(HWND hWnd, WPARAM wParam, LPARAM lParam)\r
+{\r
+       DWORD width = (DWORD)LOWORD(lParam);\r
+       DWORD height = (DWORD)HIWORD(lParam);\r
+\r
+       Region rPhRgn;\r
+\r
+       // Preserve absolute cursor position before rewrapping.\r
+       Coordinate cPhCursorPos;\r
+       pLineMgr->LogicalPosToPhysicalPos(&(pView->GetCaretPosition()), &cPhCursorPos);\r
+       pLineMgr->LogicalPosToPhysicalPos(&(rSelRegion.posStart), &(rPhRgn.posStart));\r
+       pLineMgr->LogicalPosToPhysicalPos(&(rSelRegion.posEnd), &(rPhRgn.posEnd));\r
+\r
+       pView->ResizeNotify();\r
+\r
+       RECT r;\r
+       GetClientRect(pView->hViewWnd, &r);\r
+\r
+       // rewrap logical lines\r
+       pWrapper->SetViewWidth(r.right - r.left - pView->nMaxCharWidth);\r
+       pLineMgr->RecalcWrap(pWrapper);\r
+\r
+       pView->ResetScrollbar();\r
+\r
+       // get cursor position after rewrapping.\r
+       Coordinate cLgCursorPos;\r
+       pLineMgr->PhysicalPosToLogicalPos(&cPhCursorPos, &cLgCursorPos);\r
+       pView->SetCaretPosition(cLgCursorPos);\r
+       pLineMgr->PhysicalPosToLogicalPos(&(rPhRgn.posStart), &(rSelRegion.posStart));\r
+       pLineMgr->PhysicalPosToLogicalPos(&(rPhRgn.posEnd), &(rSelRegion.posEnd));\r
+\r
+       // redraw screen\r
+       pView->RedrawAllScreen();\r
+}\r
+\r
+void YAEditImpl::ResizeWindow(int x, int y, int width, int height) \r
+{\r
+       // resizing and re-configure logical lines\r
+       MoveWindow(pView->hViewWnd, x, y, width, height, TRUE);\r
+}\r
+\r
+BOOL YAEditImpl::Show(int nCmdShow)\r
+{\r
+       ShowWindow(pView->hViewWnd, nCmdShow);\r
+       return TRUE;\r
+}\r
+\r
+\r
+/////////////////////////////////////////////////////////////////////////////\r
+// Region\r
+/////////////////////////////////////////////////////////////////////////////\r
+void YAEditImpl::SetFocus()\r
+{\r
+       ::SetFocus(pView->hViewWnd);\r
+}\r
+\r
+/////////////////////////////////////////////////////////////////////////////\r
+// Region\r
+/////////////////////////////////////////////////////////////////////////////\r
+\r
+void YAEditImpl::ClearRegion()\r
+{\r
+       RequestRedrawRegion(&SelectedRegion());\r
+       ClearSelectedRegion();\r
+}\r
+\r
+void YAEditImpl::ClearSelectedRegion()\r
+{\r
+       rSelRegion.posEnd = pView->GetCaretPosition();\r
+       rSelRegion.posStart = rSelRegion.posEnd;\r
+}\r
+\r
+/////////////////////////////////////////////////////////////////////////////\r
+// Insert String considering cursor move\r
+/////////////////////////////////////////////////////////////////////////////\r
+\r
+BOOL YAEditImpl::ReplaceText(const Region &rLg, LPCTSTR pText)\r
+{\r
+       Region r;\r
+       pLineMgr->LogicalPosToPhysicalPos(&(rLg.posStart), &(r.posStart));\r
+       pLineMgr->LogicalPosToPhysicalPos(&(rLg.posEnd), &(r.posEnd));\r
+       return pDoc->ReplaceString(&r, pText);\r
+}\r
+\r
+/////////////////////////////////////////////////////////////////////////////\r
+// Clipboard\r
+/////////////////////////////////////////////////////////////////////////////\r
+\r
+BOOL YAEditImpl::CopyToClipboard()\r
+{\r
+       Tombo_Lib::Clipboard cb;\r
+\r
+       // Get region data\r
+       DWORD nRgnSize = GetRegionSize();\r
+       if (nRgnSize == 0) return TRUE;\r
+       TString sRgnStr;\r
+       if (!sRgnStr.Alloc(nRgnSize + 1)) return FALSE;\r
+       if (!GetRegionString(sRgnStr.Get())) return FALSE;\r
+\r
+       // Set data to clipboard\r
+       if (!cb.Open(pView->hViewWnd)) return FALSE;\r
+       if (!cb.SetText(sRgnStr.Get())) return FALSE;\r
+       cb.Close();\r
+\r
+       return TRUE;\r
+}\r
+\r
+BOOL YAEditImpl::InsertFromClipboard()\r
+{\r
+       // Get data from clipboard\r
+       Tombo_Lib::Clipboard cb;\r
+\r
+       if (!cb.Open(pView->hViewWnd)) return FALSE;\r
+       LPTSTR pText = cb.GetText();\r
+       cb.Close();\r
+       if (pText == NULL) return TRUE;\r
+\r
+       // Insert to buffer\r
+       // allocation check has finished, so this case is clipboard is empty or unknown format, so return TRUE.\r
+       if (!ReplaceText(SelectedRegion(), pText)) return FALSE;\r
+\r
+       return TRUE;\r
+}\r
+\r
+/////////////////////////////////////////////////////////////////////////////\r
+// region\r
+/////////////////////////////////////////////////////////////////////////////\r
+\r
+DWORD YAEditImpl::GetRegionSize()\r
+{\r
+       if (IsSelRegionOneLine()) {\r
+               return rSelRegion.posEnd.col - rSelRegion.posStart.col;\r
+       } else {\r
+               DWORD nSize = 0;\r
+               DWORD i;\r
+               for (i = rSelRegion.posStart.row; i <= rSelRegion.posEnd.row; i++) {\r
+                       LineChunk lc;\r
+                       if (!GetLgLineChunk(i, &lc)) return 0;\r
+\r
+                       if (i == rSelRegion.posStart.row) {\r
+                               nSize += lc.LineLen() - rSelRegion.posStart.col;\r
+                               if (!lc.IsContLine()) nSize += 2;       // \r\n\r
+                       } else if (i == rSelRegion.posEnd.row) {\r
+                               nSize += rSelRegion.posEnd.col;\r
+                       } else {\r
+                               nSize += lc.LineLen();\r
+                               if (!lc.IsContLine()) nSize += 2;       // \r\n\r
+                       }\r
+               }\r
+               return nSize;\r
+       }\r
+}\r
+\r
+BOOL YAEditImpl::GetRegionString(LPTSTR pBuf)\r
+{\r
+       if (IsSelRegionOneLine()) {\r
+               LineChunk lc;\r
+               if (!GetLgLineChunk(rSelRegion.posStart.row, &lc)) return FALSE;\r
+               DWORD n = rSelRegion.posEnd.col - rSelRegion.posStart.col;\r
+               _tcsncpy(pBuf, lc.GetLineData() + rSelRegion.posStart.col, n);\r
+               *(pBuf + n) = TEXT('\0');\r
+               return TRUE;\r
+       } else {\r
+               LPTSTR p = pBuf;\r
+               DWORD n;\r
+\r
+               DWORD i;\r
+               for (i = rSelRegion.posStart.row; i <= rSelRegion.posEnd.row; i++) {\r
+                       LineChunk lc;\r
+                       if (!GetLgLineChunk(i, &lc)) return FALSE;\r
+\r
+                       if (i == rSelRegion.posStart.row) {\r
+                               n = lc.LineLen() - rSelRegion.posStart.col;\r
+                               _tcsncpy(p, lc.GetLineData() + rSelRegion.posStart.col, n);\r
+                               p += n;\r
+\r
+                               if (!lc.IsContLine()) {\r
+                                       // add eol mark\r
+                                       *p++ = TEXT('\r');\r
+                                       *p++ = TEXT('\n');\r
+                               }\r
+                       } else if (i == rSelRegion.posEnd.row) {\r
+                               n = rSelRegion.posEnd.col;\r
+                               _tcsncpy(p, lc.GetLineData(), n);\r
+                               p += n;\r
+                       } else {\r
+                               n = lc.LineLen();\r
+                               _tcsncpy(p, lc.GetLineData(), n);\r
+                               p += n;\r
+\r
+                               if (!lc.IsContLine()) {\r
+                                       // add eol mark\r
+                                       *p++ = TEXT('\r');\r
+                                       *p++ = TEXT('\n');\r
+                               }\r
+                       }\r
+\r
+               }\r
+               *p = TEXT('\0');\r
+               return TRUE;\r
+       }\r
+}\r
+\r
+void YAEditImpl::ExtendSelectRegion(const Coordinate &nCurrent, Coordinate *pPrev)\r
+{\r
+       if (!IsRegionSelected()) {\r
+               *pPrev = rSelRegion.posStart;\r
+\r
+               if (rSelRegion.posStart < nCurrent) {\r
+                       bForwardDrag = TRUE;\r
+                       rSelRegion.posEnd = nCurrent;\r
+               } else {\r
+                       bForwardDrag = FALSE;\r
+                       rSelRegion.posStart = nCurrent;\r
+               }\r
+       } else {\r
+               if (bForwardDrag) {\r
+                       if (nCurrent < rSelRegion.posStart) {\r
+                               // turn to backward drag\r
+                               bForwardDrag = FALSE;\r
+                               *pPrev = rSelRegion.posEnd;\r
+                               rSelRegion.posEnd = rSelRegion.posStart;\r
+                               rSelRegion.posStart = nCurrent;\r
+                       } else {\r
+                               *pPrev = rSelRegion.posEnd;\r
+                               rSelRegion.posEnd = nCurrent;\r
+                       }\r
+               } else {\r
+                       if (nCurrent > rSelRegion.posEnd) {\r
+                               // turn to forward drag\r
+                               bForwardDrag = TRUE;\r
+                               *pPrev = rSelRegion.posStart;\r
+                               rSelRegion.posStart = rSelRegion.posEnd;\r
+                               rSelRegion.posEnd = nCurrent;\r
+                       } else {\r
+                               *pPrev = rSelRegion.posStart;\r
+                               rSelRegion.posStart = nCurrent;\r
+                       }\r
+               }\r
+       }\r
+}\r
+\r
+/////////////////////////////////////////////////////////////////////////////\r
+// Update notify from YAEditDoc\r
+/////////////////////////////////////////////////////////////////////////////\r
+\r
+BOOL YAEditImpl::UpdateNotify(PhysicalLineManager *pPhMgr, const Region *pOldRegion, const Region *pNewRegion, DWORD nBefPhLines, DWORD nAftPhLines, DWORD nAffeLines)\r
+{\r
+       DWORD nBefLgLines = pLineMgr->MaxLine();\r
+\r
+       Coordinate cLgAfStart;\r
+       DWORD nAffLgLines;\r
+       if (!pLineMgr->AdjustLgLines(pPhMgr, pWrapper, *pOldRegion, nBefPhLines, nAftPhLines, nAffeLines, &cLgAfStart, &nAffLgLines)) return FALSE;\r
+\r
+       DWORD nAftLgLines = pLineMgr->MaxLine();\r
+\r
+       // adjust caret position\r
+       Coordinate cCaretPos;\r
+       pLineMgr->PhysicalPosToLogicalPos(&(pNewRegion->posEnd), &cCaretPos);\r
+       pView->SetCaretPosition(cCaretPos);\r
+       ClearSelectedRegion();\r
+\r
+       // update view\r
+       // what a inefficient logic!!\r
+       RequestRedraw(cLgAfStart.row, 0, TRUE);\r
+\r
+       pView->ScrollCaret();\r
+\r
+       return TRUE;\r
+}\r
+\r
+/////////////////////////////////////////////////////////////////////////////\r
+// Set font\r
+/////////////////////////////////////////////////////////////////////////////\r
+\r
+void YAEditImpl::SetFont(HFONT hFont)\r
+{\r
+       if (hFont == NULL) {\r
+               hFont = (HFONT)GetStockObject(SYSTEM_FONT);\r
+       }\r
+       pView->SetFont(hFont);\r
+       pWrapper->SetViewWidth(pView->GetViewClientRect().right - pView->GetViewClientRect().left - pView->nMaxCharWidth);\r
+\r
+       if (pLineMgr) delete pLineMgr;\r
+       pLineMgr = new LineManager();\r
+       if (!pLineMgr->Init(this)) return;\r
+       SetDoc(pDoc);\r
+}\r
+\r
+/////////////////////////////////////////////////////////////////////////////\r
+// get caret position\r
+/////////////////////////////////////////////////////////////////////////////\r
+\r
+DWORD YAEditImpl::GetCaretPos()\r
+{\r
+       Coordinate lgCur = pView->GetCaretPosition();\r
+       Coordinate phCur;\r
+       pLineMgr->LogicalPosToPhysicalPos(&lgCur, &phCur);\r
+\r
+       Region r;\r
+\r
+       r.posStart.Set(0, 0);\r
+       r.posEnd.Set(phCur.col, phCur.row);\r
+       \r
+       return pDoc->GetDataBytes(&r);\r
+}\r
+\r
+void YAEditImpl::SetCaretPos(DWORD n)\r
+{\r
+       Coordinate phCur, lgCur;\r
+       pDoc->ConvertBytesToCoordinate(n, &phCur);\r
+       pLineMgr->PhysicalPosToLogicalPos(&phCur, &lgCur);\r
+       pView->SetCaretPosition(lgCur);\r
+       ClearRegion();\r
+       pView->ScrollCaret();\r
+}\r
+\r
+BOOL YAEditImpl::GetLgLineChunk(DWORD nLineNo, LineChunk *pChunk)\r
+{\r
+       // retrieve line data info.\r
+       if (!GetLineMgr()->GetLineChunk(nLineNo, pChunk)) return FALSE;\r
+       pChunk->SetSelRegion(&SelectedRegion());\r
+       return TRUE;\r
+}\r
+\r
+/////////////////////////////////////////////////////////////////////////////\r
+// get previous position\r
+/////////////////////////////////////////////////////////////////////////////\r
+// In DBCS char set, it is difficult to detmine previous char. It may be -1, or may be -2.\r
+// In Unicode(UCS-2), this is simply -1 letter(2 bytes).\r
+\r
+DWORD YAEditImpl::GetPrevOffset(DWORD n, DWORD nPos)\r
+{\r
+#if defined(PLATFORM_WIN32)\r
+       LineChunk lc;\r
+       if (!GetLineMgr()->GetLineChunk(n, &lc)) return FALSE;\r
+\r
+       const char *p = lc.GetLineData();\r
+       if (!p) return 0;\r
+\r
+       const char *r = p + nPos;\r
+       const char *q = p;\r
+       const char *pPrevChar = NULL;\r
+       while(*q && r > q) {\r
+               pPrevChar = q;\r
+               if (IsDBCSLeadByte(*q)) {\r
+                       q++;\r
+               }\r
+               q++;\r
+       }\r
+       return pPrevChar ? nPos - (pPrevChar - p) : 0;\r
+#else\r
+       return 1;\r
+#endif\r
+}\r
+\r
+/////////////////////////////////////////////////////////////////////////////\r
+// select region\r
+/////////////////////////////////////////////////////////////////////////////\r
+\r
+void YAEditImpl::SetSelectRegion(DWORD nStartPos, DWORD nEndPos)\r
+{\r
+       Coordinate phCur;\r
+\r
+       Coordinate lgStartPos;\r
+       pDoc->ConvertBytesToCoordinate(nStartPos, &phCur);\r
+       pLineMgr->PhysicalPosToLogicalPos(&phCur, &lgStartPos);\r
+\r
+       Coordinate lgEndPos;\r
+       pDoc->ConvertBytesToCoordinate(nEndPos, &phCur);\r
+       pLineMgr->PhysicalPosToLogicalPos(&phCur, &lgEndPos);\r
+\r
+       ClearRegion();\r
+       // set selected region\r
+       rSelRegion.posStart = lgStartPos;\r
+       rSelRegion.posEnd = lgEndPos;\r
+\r
+       RequestRedrawRegion(&rSelRegion);\r
+       pView->SetCaretPosition(lgEndPos);\r
+       pView->ScrollCaret();\r
+\r
+}\r
diff --git a/Src/YAEdit/YAEdit.h b/Src/YAEdit/YAEdit.h
new file mode 100644 (file)
index 0000000..4d1f304
--- /dev/null
@@ -0,0 +1,307 @@
+#ifndef YAEDIT_H\r
+#define YAEDIT_H\r
+\r
+class YAEditDoc;\r
+class LineWrapper;\r
+class LineChunk;\r
+class FontWidthCache;\r
+class YAEditView;\r
+class LineManager;\r
+class PhysicalLineManager;\r
+struct YAEContextMenu;\r
+\r
+//////////////////////////////////////////////////\r
+// callback class\r
+//////////////////////////////////////////////////\r
+\r
+class YAEditCallback {\r
+public:\r
+       // called when get screen forcus\r
+       virtual void OnGetFocus() = 0;\r
+\r
+       // called from YAE when the document is modified.\r
+       virtual void ChangeModifyStatusNotify(BOOL bStatus) = 0;\r
+\r
+       // called from YAE when the document read only flag is changed\r
+       virtual void ChangeReadOnlyStatusNotify(BOOL bStatus) = 0;\r
+\r
+       virtual void OnContextMenu(HWND hWnd, WORD x, WORD y) = 0;\r
+};\r
+\r
+//////////////////////////////////////////////////\r
+// Controller class for YAE\r
+//////////////////////////////////////////////////\r
+// YAEdit is abstract class for hiding YAE internal methods.\r
+\r
+class YAEdit {\r
+public:\r
+\r
+       virtual BOOL Create(HINSTANCE hInst, HWND hWnd, DWORD nId, RECT &r, BOOL bWrap) = 0;\r
+       virtual void SetFocus() = 0;\r
+       virtual void SetFont(HFONT hFont) = 0;\r
+\r
+       virtual void ResizeWindow(int x, int y, int width, int height) = 0;\r
+       virtual BOOL Show(int nCmdShow) = 0;\r
+\r
+       ///////////////////////////////////////\r
+       // document related funcs\r
+\r
+       virtual YAEditDoc *GetDoc() = 0;\r
+       virtual YAEditDoc *SetDoc(YAEditDoc *pNewDoc) = 0;\r
+\r
+\r
+       ///////////////////////////////////////\r
+       // caret position/selection related funcs\r
+\r
+       virtual DWORD GetCaretPos() = 0;\r
+       virtual void SetCaretPos(DWORD n) = 0;\r
+\r
+       virtual void SetSelectRegion(DWORD nStart, DWORD nEnd) = 0;\r
+\r
+\r
+       ///////////////////////////////////////\r
+       // exported commands\r
+\r
+       virtual void CmdReplaceString(LPCTSTR p) = 0;\r
+       virtual void CmdBackSpace() = 0;\r
+\r
+       virtual void CmdUndo() = 0;\r
+\r
+       virtual void CmdCut() = 0;\r
+       virtual void CmdCopy() = 0;\r
+       virtual void CmdPaste() = 0;\r
+\r
+       virtual void CmdSelAll() = 0;\r
+       virtual void CmdToggleWrapMode(BOOL bFold) = 0;\r
+\r
+       ///////////////////////////////////////\r
+       // register window class\r
+       static BOOL RegisterClass(HINSTANCE hInst);\r
+\r
+       ///////////////////////////////////////\r
+       // factory method\r
+\r
+       // get YAEdit instance\r
+       static YAEdit *GetInstance(YAEditCallback *pCallback);\r
+\r
+       // get YAEditDoc instance\r
+       virtual YAEditDoc *CreateDocument(const char *pStr, YAEditCallback*pCb) = 0;\r
+};\r
+\r
+\r
+//////////////////////////////////////////////////\r
+// Controller class for YAE implementation\r
+//////////////////////////////////////////////////\r
+\r
+class YAEditListener {\r
+public:\r
+       virtual BOOL UpdateNotify(PhysicalLineManager *pPhMgr, const Region *pOldRegion, const Region *pNewRegion, DWORD nBefPhLines, DWORD nAftPhLines, DWORD nAffeLines) = 0;\r
+};\r
+\r
+//////////////////////////////////////////////////\r
+// YAE implementation\r
+//////////////////////////////////////////////////\r
+\r
+class YAEditImpl : public YAEdit, YAEditListener {\r
+protected:\r
+       ///////////////////////////////////////\r
+       // callback handler\r
+       YAEditCallback *pCallback;\r
+\r
+       ///////////////////////////////////////\r
+       // window related members\r
+       HDC hCommonDC;\r
+       HINSTANCE hInstance;\r
+\r
+       ///////////////////////////////////////\r
+       // VMC related members\r
+       YAEditDoc *pDoc;\r
+       YAEditView *pView;\r
+\r
+       ///////////////////////////////////////\r
+       // key related members\r
+#if defined(PLATFORM_WIN32)\r
+       char aKeyBuffer[3];\r
+#endif\r
+\r
+       ///////////////////////////////////////\r
+       // line management members\r
+\r
+       LineManager *pLineMgr;\r
+       LineWrapper *pWrapper;\r
+\r
+       BOOL bScrollTimerOn;\r
+       POINT ptMousePos;\r
+       BOOL bMouseDown;\r
+\r
+       BOOL bWrapLine;\r
+       BOOL bInsertMode;\r
+\r
+       // value is by logical coordinate, \r
+       // (nSelStartCol, nSelStartRow) < (nSelEndCol, nSelEndRow) is always TRUE.\r
+       Region rSelRegion;\r
+       BOOL bForwardDrag;\r
+\r
+protected:\r
+       ///////////////////////////////////////\r
+       // select region\r
+       void SetSelectionFromPoint(int xPos, int yPos);\r
+       void UpdateSelRegion();\r
+\r
+       ////////////////////////////////////////////////////\r
+       // line operation helper\r
+       BOOL ReplaceText(const Region &r, LPCTSTR pText);\r
+\r
+       ////////////////////////////////////////////////////\r
+       // Region related members\r
+       BOOL GetRegionString(LPTSTR pBuf);\r
+       DWORD GetRegionSize();\r
+\r
+       void ClearRegion();\r
+       void ClearSelectedRegion();\r
+\r
+       BOOL SetWrapper();\r
+\r
+public:\r
+\r
+       ///////////////////////////////////////\r
+       // ctor & initialize\r
+       YAEditImpl(YAEditCallback *pCb);\r
+       virtual ~YAEditImpl();\r
+\r
+       BOOL Create(HINSTANCE hInst, HWND hWnd, DWORD nId, RECT &r, BOOL bWrap);\r
+       void SetFocus();\r
+\r
+       /////////////////////////////////\r
+       // Event handler\r
+\r
+       void OnCreate(HWND hWnd, WPARAM wParam, LPARAM lParam);\r
+       void OnPaint(HWND hWnd, WPARAM wParam, LPARAM lParam);\r
+\r
+       BOOL OnKeyDown(HWND hWnd, WPARAM wParam, LPARAM lParam); // if FALSE, call default proc\r
+       void OnChar(HWND hWnd, WPARAM wParam, LPARAM lParam);\r
+\r
+       void OnLButtonDown(HWND hWnd, WPARAM wParam, LPARAM lParam);\r
+       void OnLButtonDblClick(HWND hWnd, WPARAM wParam, LPARAM lParam);\r
+       void OnRbuttonDown(HWND hWnd, WPARAM wParam, LPARAM lParam);\r
+       void OnMouseMove(HWND hWnd, WPARAM wParam, LPARAM lParam);\r
+       void OnLButtonUp(HWND hWnd, WPARAM wParam, LPARAM lParam);\r
+\r
+       void OnVScroll(HWND hWnd, WPARAM wParam, LPARAM lParam);\r
+       void OnHScroll(HWND hWnd, WPARAM wParam, LPARAM lParam);\r
+\r
+#if defined(PLATFORM_WIN32)\r
+       void OnMouseWheel(HWND hWnd, WPARAM wParam, LPARAM lParam);\r
+#endif\r
+\r
+       void OnTimer(HWND hWnd, WPARAM wParam, LPARAM lParam);\r
+       void OnResize(HWND hWnd, WPARAM wParam, LPARAM lParam);\r
+\r
+       /////////////////////////////////\r
+       // forcus window\r
+       void OnSetFocus();\r
+       void OnKillFocus();\r
+       void OnGetFocus();\r
+\r
+       /////////////////////////////////\r
+       // application funcs.\r
+       YAEditDoc *SetDoc(YAEditDoc *pNewDoc);\r
+       YAEditDoc *GetDoc() { return pDoc; }\r
+       LineManager *GetLineMgr() { return pLineMgr; }\r
+\r
+       ///////////////////////////////////////\r
+       // cursor moving funcs.\r
+\r
+       DWORD GetCaretPos();\r
+       void SetCaretPos(DWORD n);\r
+\r
+       /////////////////////////////////\r
+       // Commands\r
+\r
+       void CmdNOP();\r
+\r
+       void CmdBackSpace();\r
+       void CmdDeleteChar();\r
+       void CmdMoveRight();\r
+       void CmdMoveLeft();\r
+       void CmdMoveUp();\r
+       void CmdMoveDown();\r
+       void CmdMoveEOL();\r
+       void CmdMoveTOL();\r
+       \r
+       void CmdSelRight();\r
+       void CmdSelLeft();\r
+       void CmdSelUp();\r
+       void CmdSelDown();\r
+\r
+       void CmdSelEndOfLogicalLine();\r
+       void CmdSelTopOfLogicalLine();\r
+       void CmdSelTopOfDoc();\r
+       void CmdSelEndOfDoc();\r
+\r
+       void CmdScrollUp();\r
+       void CmdScrollDown();\r
+\r
+       void CmdReplaceString(LPCTSTR p);\r
+       void CmdCut();\r
+       void CmdCopy();\r
+       void CmdPaste();\r
+\r
+       void CmdSelAll();\r
+       void CmdUndo();\r
+\r
+       void CmdToggleReadOnly();\r
+       void CmdToggleWrapMode(BOOL bWrap);\r
+       void CmdToggleInsertMode();\r
+\r
+       /////////////////////////////////\r
+       // Move/Resize window\r
+       void ResizeWindow(int x, int y, int width, int height);\r
+       BOOL Show(int nCmdShow);\r
+\r
+       /////////////////////////////////\r
+       // YAEditDoc callback\r
+\r
+       void RequestRedraw(DWORD nLineNo, WORD nLeftPos, BOOL bToBottom);\r
+       void RequestRedrawRegion(const Region *pRegion);\r
+\r
+       /////////////////////////////////\r
+       // Line wrapping \r
+       LineWrapper *GetWrapper() { return pWrapper; }\r
+       DWORD GetLineWidth(DWORD nOffset, LPCTSTR pStr, DWORD nLen);\r
+\r
+       /////////////////////////////////\r
+       // Clipboard\r
+       BOOL CopyToClipboard();\r
+       BOOL InsertFromClipboard();\r
+\r
+       ////////////////////////////////////////////////////\r
+       // Region related members\r
+\r
+       BOOL IsRegionSelected() { return rSelRegion.posStart != rSelRegion.posEnd; }\r
+       BOOL IsSelRegionOneLine() { return rSelRegion.posStart.row == rSelRegion.posEnd.row; }\r
+       const Region& SelectedRegion() { return rSelRegion; }\r
+\r
+       // Select [selected region] + nCurrent\r
+       void ExtendSelectRegion(const Coordinate &nCurrent, Coordinate *pPrev);\r
+\r
+       void SetSelectRegion(DWORD nStart, DWORD nEnd);\r
+\r
+       ////////////////////////////////////////////////////\r
+       // callback from Document\r
+       BOOL UpdateNotify(PhysicalLineManager *pPhMgr, const Region *pOldRegion, const Region *pNewRegion, DWORD nBefPhLines, DWORD nAftPhLines, DWORD nAffeLines);\r
+\r
+       ////////////////////////////////////////////////////\r
+       // font\r
+       void SetFont(HFONT hFont);\r
+\r
+       ////////////////////////////////////////////////////\r
+       // data access from YAEditView\r
+       BOOL GetLgLineChunk(DWORD nLineNo, LineChunk *pChunk);\r
+       DWORD GetPrevOffset(DWORD nLineNo, DWORD nCurrentPos);\r
+\r
+       ////////////////////////////////////////////////////\r
+       // \r
+       YAEditDoc *CreateDocument(const char *pStr, YAEditCallback*pCb);\r
+};\r
+#endif
\ No newline at end of file
diff --git a/Src/YAEdit/YAEditDoc.cpp b/Src/YAEdit/YAEditDoc.cpp
new file mode 100644 (file)
index 0000000..25d1dde
--- /dev/null
@@ -0,0 +1,267 @@
+#include <windows.h>\r
+#include <tchar.h>\r
+#include "AutoPtr.h"\r
+#include "Region.h"\r
+#include "VarBuffer.h"\r
+#include "YAEditDoc.h"\r
+#include "LineWrapper.h"\r
+#include "LineWrapperImpl.h"\r
+#include "YAEdit.h"\r
+#include "MemManager.h"\r
+#include "TomboLib/UniConv.h"\r
+#include "LineManager.h"\r
+#include "PhysicalLineManager.h"\r
+#include "StringSplitter.h"\r
+\r
+/////////////////////////////////////////////////////////////////////////////\r
+// undo info\r
+/////////////////////////////////////////////////////////////////////////////\r
+\r
+class UndoInfo {\r
+public:\r
+       LPTSTR pUndoStr;\r
+       Region rRegion;\r
+\r
+       UndoInfo(LPTSTR pUndoStr);\r
+       ~UndoInfo();\r
+};\r
+\r
+UndoInfo::UndoInfo(LPTSTR p) : pUndoStr(p)\r
+{\r
+}\r
+\r
+UndoInfo::~UndoInfo()\r
+{\r
+       delete[] pUndoStr;\r
+}\r
+\r
+LPCTSTR YAEditDoc::GetUndoStr() { if (pUndo) return pUndo->pUndoStr; else return NULL; }\r
+const Region YAEditDoc::GetUndoRegion()\r
+{\r
+       Region r(0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF);\r
+       if (pUndo) return pUndo->rRegion; \r
+       else return r;\r
+}\r
+\r
+/////////////////////////////////////////////////////////////////////////////\r
+// ctor & dtor\r
+/////////////////////////////////////////////////////////////////////////////\r
+\r
+YAEditDoc::YAEditDoc() : \r
+       pPhLineMgr(NULL), pCallback(NULL), pListener(NULL), \r
+       pUndo(NULL), bReadOnly(FALSE)\r
+{\r
+}\r
+\r
+YAEditDoc::~YAEditDoc()\r
+{\r
+       if (pPhLineMgr) delete pPhLineMgr;\r
+       if (pUndo) delete pUndo;\r
+}\r
+\r
+BOOL YAEditDoc::Init(const char *pStr, YAEditListener *pL, YAEditCallback*pCb)\r
+{\r
+       pCallback = pCb;\r
+       pListener = pL;\r
+       if (!ReleaseDoc()) return FALSE;\r
+       return LoadDoc(pStr);\r
+}\r
+\r
+/////////////////////////////////////////////////////////////////////////////\r
+// load document\r
+/////////////////////////////////////////////////////////////////////////////\r
+\r
+BOOL YAEditDoc::LoadDoc(const char *pStr)\r
+{\r
+       ReleaseDoc();\r
+       LPTSTR pStrT;\r
+#ifdef _WIN32_WCE\r
+       pStrT = ConvSJIS2Unicode(pStr);\r
+#else\r
+       pStrT = (LPTSTR)pStr;\r
+#endif\r
+\r
+       if (!pPhLineMgr->LoadDoc(pStrT)) return FALSE;\r
+#ifdef _WIN32_WCE\r
+       delete [] pStrT;\r
+#endif\r
+\r
+       SetModify(FALSE);\r
+       return TRUE;\r
+}\r
+\r
+/////////////////////////////////////////////////////////////////////////////\r
+// save document\r
+/////////////////////////////////////////////////////////////////////////////\r
+\r
+char *YAEditDoc::GetDocumentData(LPDWORD pLen)\r
+{\r
+       return pPhLineMgr->GetDocumentData(pLen);\r
+}\r
+\r
+/////////////////////////////////////////////////////////////////////////////\r
+// release document memory\r
+/////////////////////////////////////////////////////////////////////////////\r
+\r
+BOOL YAEditDoc::ReleaseDoc()\r
+{\r
+       // LineManager depends on MarkerAllocator, delete/new order is important.\r
+       if (pPhLineMgr) delete pPhLineMgr;\r
+\r
+       pPhLineMgr = new PhysicalLineManager();\r
+       if (pPhLineMgr == NULL) {\r
+               SetLastError(ERROR_NOT_ENOUGH_MEMORY);\r
+               return FALSE;\r
+       }\r
+       if (!pPhLineMgr->Init()) return FALSE;\r
+\r
+       return TRUE;\r
+}\r
+\r
+/////////////////////////////////////////////////////////////////////////////\r
+// Replace string\r
+/////////////////////////////////////////////////////////////////////////////\r
+\r
+BOOL YAEditDoc::ReplaceString(const Region *pDelRegion, LPCTSTR pString)\r
+{\r
+       // if read only mode, ignore editing.\r
+       if (bReadOnly) return TRUE;\r
+\r
+       DWORD nPhLinesBefore = pPhLineMgr->MaxLine();\r
+\r
+       LPTSTR pOldTxt = pPhLineMgr->GetRegionString(pDelRegion);\r
+       ArrayAutoPointer<TCHAR> ap(pOldTxt);\r
+\r
+       if (pUndo != NULL && pUndo->rRegion.posEnd !=  pDelRegion->posEnd) {\r
+               delete pUndo;\r
+               pUndo = NULL;\r
+       }\r
+\r
+       // delete region and insert string\r
+       Region rNewRegion;\r
+       DWORD nAffLines;\r
+       if (!pPhLineMgr->ReplaceRegion(pDelRegion, pString, &nAffLines, &rNewRegion)) {\r
+               return FALSE;\r
+       }\r
+       DWORD nPhLinesAfter = pPhLineMgr->MaxLine();\r
+\r
+       if (pUndo == NULL) {\r
+               pUndo = new UndoInfo(pOldTxt);\r
+               ap.set(NULL);\r
+               if (pUndo == NULL) { SetLastError(ERROR_NOT_ENOUGH_MEMORY); return FALSE; }\r
+               pUndo->rRegion = rNewRegion;\r
+       } else if (*pOldTxt == TEXT('\0')) {\r
+               pUndo->rRegion.posEnd = rNewRegion.posEnd;\r
+       }\r
+\r
+       if (pListener && !pListener->UpdateNotify(pPhLineMgr, pDelRegion, &rNewRegion, nPhLinesBefore, nPhLinesAfter, nAffLines)) {\r
+               return FALSE;\r
+       }\r
+       SetModify(TRUE);\r
+\r
+       return TRUE;\r
+}\r
+\r
+BOOL YAEditDoc::Undo()\r
+{\r
+       if (pUndo == NULL) return TRUE;\r
+       UndoInfo *p = pUndo;\r
+       AutoPointer<UndoInfo> ap(p);\r
+       pUndo = NULL;\r
+\r
+       if (!ReplaceString(&(p->rRegion), p->pUndoStr)) return FALSE;\r
+\r
+       return TRUE;\r
+}\r
+\r
+/////////////////////////////////////////////////////////////////////////////\r
+// update status\r
+/////////////////////////////////////////////////////////////////////////////\r
+\r
+void YAEditDoc::SetModify(BOOL b)\r
+{\r
+       if (bModified == b) return;\r
+       BOOL bOld = bModified;\r
+       bModified = b;\r
+       if (pCallback) pCallback->ChangeModifyStatusNotify(bModified);\r
+}\r
+\r
+void YAEditDoc::SetReadOnly(BOOL b)\r
+{\r
+       bReadOnly = b;\r
+}\r
+\r
+/////////////////////////////////////////////////////////////////////////////\r
+// update modify status\r
+/////////////////////////////////////////////////////////////////////////////\r
+\r
+DWORD YAEditDoc::GetDataBytes(const Region *pRegion)\r
+{\r
+       if (pRegion->posStart.row == pRegion->posEnd.row) {\r
+               return pRegion->posEnd.col - pRegion->posStart.col;\r
+       } else {\r
+               DWORD nBytes = 0;\r
+               LineInfo *pInfo;\r
+               pInfo= pPhLineMgr->GetLineInfo(pRegion->posStart.row);\r
+\r
+               // first line\r
+               nBytes = pInfo->pLine->nUsed - pRegion->posStart.col + 2; // +2 means CRLF\r
+\r
+               for (DWORD i = pRegion->posStart.row + 1; i < pRegion->posEnd.row; i++) {\r
+                       pInfo = pPhLineMgr->GetLineInfo(i);\r
+                       nBytes += pInfo->pLine->nUsed + 2;\r
+               }\r
+\r
+               // last line\r
+               nBytes += pRegion->posEnd.col;\r
+\r
+               return nBytes;\r
+       }\r
+}\r
+\r
+/////////////////////////////////////////////////////////////////////////////\r
+// Convert data bytes to physical position\r
+/////////////////////////////////////////////////////////////////////////////\r
+\r
+void YAEditDoc::ConvertBytesToCoordinate(DWORD nPos, Coordinate *pPos)\r
+{\r
+       DWORD nBytes = 0;\r
+       LineInfo *p = NULL;\r
+\r
+       DWORD n = pPhLineMgr->MaxLine();\r
+       DWORD i = 0;\r
+\r
+       do {\r
+               p = pPhLineMgr->GetLineInfo(i);\r
+\r
+               if (nBytes + p->pLine->nUsed >= nPos) {\r
+                       // in the line\r
+                       pPos->row = i;\r
+                       pPos->col = nPos - nBytes;\r
+                       return;\r
+               }\r
+               nBytes += p->pLine->nUsed + 2;\r
+               i++;\r
+               if (i >= n) break;\r
+\r
+               if (nBytes >= nPos) {\r
+                       pPos->row = i;\r
+                       pPos->col = 0;\r
+                       return;\r
+               }\r
+\r
+       } while (TRUE);\r
+\r
+       // if pos is grater than docment size, set EOL\r
+       pPos->row = n - 1;\r
+       pPos->col = p->pLine->nUsed;\r
+}\r
+\r
+/////////////////////////////////////////////////////////////////////////////\r
+// \r
+/////////////////////////////////////////////////////////////////////////////\r
+\r
+BOOL YAEditDoc::InsertUndoPoint()\r
+{\r
+       return TRUE;\r
+}
\ No newline at end of file
diff --git a/Src/YAEdit/YAEditDoc.h b/Src/YAEdit/YAEditDoc.h
new file mode 100644 (file)
index 0000000..aa077b3
--- /dev/null
@@ -0,0 +1,76 @@
+#ifndef YAEDITDOC_H\r
+#define YAEDITDOC_H\r
+\r
+class YAEditImpl;\r
+class Region;\r
+class PhysicalLineManager;\r
+class YAEditCallback;\r
+class YAEditListener;\r
+\r
+class UndoInfo;\r
+\r
+////////////////////////////////////////////////////\r
+// Document container for YAE\r
+////////////////////////////////////////////////////\r
+\r
+class YAEditDoc {\r
+protected:\r
+       PhysicalLineManager *pPhLineMgr;\r
+       YAEditListener *pListener;\r
+\r
+       YAEditCallback *pCallback;\r
+\r
+       // undo related\r
+       UndoInfo *pUndo;\r
+\r
+       // this member should not to edit directry. use SetModify().\r
+       BOOL bModified;\r
+       BOOL bReadOnly;\r
+\r
+       BOOL ReleaseDoc();\r
+public:\r
+       ////////////////////////////////////////////////////\r
+       // ctor, dtor & initialize\r
+\r
+       YAEditDoc();\r
+       ~YAEditDoc();\r
+\r
+       BOOL Init(const char *pStr, YAEditListener *pListener, YAEditCallback*pCb);\r
+\r
+       PhysicalLineManager *GetPhMgr() { return pPhLineMgr; }\r
+\r
+       ////////////////////////////////////////////////////\r
+       // set/get document\r
+\r
+       BOOL LoadDoc(const char *pStr);\r
+       char *GetDocumentData(LPDWORD pLen);\r
+\r
+       ////////////////////////////////////////////////////\r
+       // retrieve & set line \r
+\r
+       BOOL ReplaceString(const Region *pRegion, LPCTSTR pString);\r
+       BOOL Undo();\r
+\r
+       BOOL IsModify() { return bModified; }\r
+       void SetModify(BOOL b);\r
+\r
+       BOOL IsReadOnly() { return bReadOnly; }\r
+       void SetReadOnly(BOOL b);\r
+\r
+       ////////////////////////////////////////////////////\r
+       // Data size related functions\r
+       DWORD GetDataBytes(const Region *pRegion);\r
+       void ConvertBytesToCoordinate(DWORD nPos, Coordinate *pPos);\r
+\r
+       ////////////////////////////////////////////////////\r
+       // set current document status as undo point\r
+       BOOL InsertUndoPoint();\r
+\r
+       ////////////////////////////////////////////////////\r
+       // only for testing\r
+\r
+       LPCTSTR GetUndoStr();\r
+       const Region GetUndoRegion();\r
+};\r
+\r
+#endif
\ No newline at end of file
diff --git a/Src/YAEdit/YAEditView.cpp b/Src/YAEdit/YAEditView.cpp
new file mode 100644 (file)
index 0000000..d9f44c2
--- /dev/null
@@ -0,0 +1,994 @@
+#include <windows.h>\r
+#include <tchar.h>\r
+#if !defined(PLATFORM_PSPC)\r
+#include <imm.h>\r
+#endif\r
+#if defined(PLATFORM_WIN32)\r
+#include <zmouse.h>\r
+#endif\r
+#include "resource.h"\r
+#include "Region.h"\r
+#include "YAEdit.h"\r
+#include "YAEditView.h"\r
+#include "YAEditDoc.h"\r
+#include "VarBuffer.h"\r
+#include "LineManager.h"\r
+#include "LineWrapper.h"\r
+#include "Logger.h"\r
+#include "FontWidthCache.h"\r
+#include "TomboLib/UniConv.h"\r
+#include "TomboLib/Clipboard.h"\r
+#include "TString.h"\r
+\r
+#define COLOR_EOL RGB(255, 128, 128)\r
+#define COLOR_LEOL RGB(255, 128, 128)\r
+#define COLOR_TAB RGB(255, 128, 128)\r
+#define COLOR_EOF RGB(0, 0, 255)\r
+\r
+#define CHAR_TYPE_NORMAL 0\r
+#define CHAR_TYPE_SPACE 1\r
+#define CHAR_TYPE_SPACE_ZENKAKU 2\r
+#define CHAR_TYPE_TAB 3\r
+\r
+/////////////////////////////////////////////////////////////////////////////\r
+// initialize\r
+/////////////////////////////////////////////////////////////////////////////\r
+\r
+YAEditView::~YAEditView()\r
+{\r
+       if (pFontCache) delete pFontCache;\r
+}\r
+\r
+BOOL YAEditView::ResetPosition()\r
+{\r
+       nCursorColPos = nCursorCol = 0;\r
+       nBaseLineNo = nCursorRow = 0;\r
+       nColOffset = 0;\r
+\r
+       bShowCaret = FALSE;\r
+       return TRUE;\r
+}\r
+\r
+void YAEditView::ResizeNotify()\r
+{\r
+       GetClientRect(hViewWnd, &rClientRect);\r
+       nPageHeight = (rClientRect.bottom - rClientRect.top) / nLineH;\r
+}\r
+\r
+BOOL YAEditView::ResetScrollbar()\r
+{\r
+       nHorizPageScrollDelta = (rClientRect.right - rClientRect.left) / 4;\r
+\r
+       // set scroll info\r
+       SCROLLINFO si;\r
+       si.cbSize = sizeof(si);\r
+       si.fMask = SIF_RANGE | SIF_PAGE | SIF_POS;\r
+\r
+       // vert scroll bar\r
+       si.nMin = 0;\r
+       si.nPos = nBaseLineNo;\r
+       si.nMax = GetMaxLine() - 1;\r
+       si.nPage = nPageHeight;\r
+       ::SetScrollInfo(hViewWnd, SB_VERT, &si, TRUE);\r
+\r
+       // horiz scroll bar\r
+       si.nMin = 0;\r
+       si.nMax = nMaxWidthPixel - nMaxCharWidth;\r
+       si.nPage = (rClientRect.right - rClientRect.left - nMaxCharWidth);\r
+       si.nPos = nColOffset;\r
+       ::SetScrollInfo(hViewWnd, SB_HORZ, &si, TRUE);\r
+       \r
+       return TRUE;\r
+}\r
+/////////////////////////////////////////////////////////////////////////////\r
+// Draw line element helper functions\r
+/////////////////////////////////////////////////////////////////////////////\r
+\r
+static void DrawZenkakuSpace(HDC hDC, RECT *pRect, COLORREF color)\r
+{\r
+       HPEN hPen = CreatePen(PS_SOLID, 0, color);\r
+       HGDIOBJ hOld = SelectObject(hDC, hPen);\r
+\r
+       POINT pt[5];\r
+       pt[0].x = pRect->left + 3;      pt[0].y = pRect->top + 3;\r
+       pt[1].x = pt[0].x;                      pt[1].y = pRect->bottom - 3;\r
+       pt[2].x = pRect->right - 3;     pt[2].y = pt[1].y;\r
+       pt[3].x = pt[2].x;                      pt[3].y = pRect->top + 3;\r
+       pt[4].x = pt[0].x;                      pt[4].y = pt[0].y;\r
+       Polyline(hDC, pt, 5);\r
+\r
+       SelectObject(hDC, hOld);\r
+       DeleteObject(hPen);\r
+}\r
+\r
+static void DrawTab(HDC hDC, RECT *pRect, COLORREF color)\r
+{\r
+       COLORREF crDefault = SetTextColor(hDC, COLOR_TAB);\r
+       DrawText(hDC, TEXT(">"), 1, pRect, DT_TOP | DT_SINGLELINE);\r
+       SetTextColor(hDC, crDefault);\r
+}\r
+\r
+static DWORD CheckCharType(LPCTSTR pLine, LPDWORD pNumChar)\r
+{\r
+#if defined(PLATFORM_WIN32)\r
+       if (*pLine == (char)0x81 &&\r
+               *(pLine + 1) == (char)0x40) {\r
+               *pNumChar = 2;\r
+               return CHAR_TYPE_SPACE_ZENKAKU;\r
+       }\r
+#endif\r
+       if (*pLine == TEXT(' ')) {\r
+               *pNumChar = 1;\r
+               return CHAR_TYPE_SPACE;\r
+       }\r
+       if (*pLine == TEXT('\t')) {\r
+               *pNumChar = 1;\r
+               return CHAR_TYPE_TAB;\r
+       }\r
+\r
+#if defined(PLATFORM_WIN32)\r
+       *pNumChar = (IsDBCSLeadByte(*pLine) ? 2 : 1);\r
+#else\r
+       *pNumChar = 1;\r
+#endif\r
+       return CHAR_TYPE_NORMAL;\r
+}\r
+\r
+static void DrawEOL(HDC hDC, LPRECT pRect, COLORREF color)\r
+{\r
+       WORD nHalfX = (WORD)((pRect->right - pRect->left)/ 2);\r
+       WORD nHalfY = (WORD)((pRect->bottom - pRect->top) / 2);\r
+\r
+       int nW = pRect->right - pRect->left;\r
+       int nH = pRect->bottom - pRect->top;\r
+       WORD w = ((nW < nH ? nW : nH) * 8) / 10;\r
+       WORD rX = (nW - w) / 2;\r
+       WORD rY = (nH - w) / 2;\r
+\r
+       HPEN hPen = CreatePen(PS_SOLID, 0, color);\r
+       HGDIOBJ hOld = SelectObject(hDC, hPen);\r
+\r
+       POINT pt[3];\r
+       pt[0].x = pRect->right - rX;    pt[0].y = pRect->top + rY;\r
+       pt[1].x = pt[0].x;                              pt[1].y = pRect->bottom - rY;\r
+       pt[2].x = pRect->left + rX;             pt[2].y = pt[1].y;\r
+       Polyline(hDC, pt, 3);\r
+\r
+       for (int x = 0; x <= 2; x++) {\r
+               for (int y = -x; y <= x; y++) {\r
+                       SetPixel(hDC, pt[2].x + x, pt[2].y + y, color);\r
+               }\r
+       }\r
+       SelectObject(hDC, hOld);\r
+       DeleteObject(hPen);\r
+}\r
+\r
+static void DrawLEOL(HDC hDC, LPRECT pRect, COLORREF color)\r
+{\r
+       WORD nHalfX = (WORD)((pRect->right - pRect->left)/ 2);\r
+\r
+       int nH = pRect->bottom - pRect->top;\r
+       WORD w = (nH * 7) / 10;\r
+       WORD rY = (nH - w) / 2;\r
+\r
+       HPEN hPen = CreatePen(PS_SOLID, 0, color);\r
+       HGDIOBJ hOld = SelectObject(hDC, hPen);\r
+\r
+       POINT pt[2];\r
+       pt[0].x = pRect->right + nHalfX; pt[0].y = pRect->top + rY;\r
+       pt[1].x = pt[0].x; pt[1].y = pRect->bottom - rY;\r
+       Polyline(hDC, pt, 2);\r
+\r
+       for (int y = -2; y <= 0; y++) {\r
+               for (int x = y; x <= -y; x++) {\r
+                       SetPixel(hDC, pt[1].x + x, pt[1].y + y, color);\r
+               }\r
+       }\r
+       SelectObject(hDC, hOld);\r
+       DeleteObject(hPen);\r
+}\r
+\r
+void YAEditView::DrawEndLineMark(HDC hDC, DWORD wStartPos, DWORD nMaxLine, RECT *pRect, LineChunk *pChunk)\r
+{\r
+       DWORD nLineNo = pChunk->GetLineNo();\r
+\r
+       RECT r2;\r
+       COLORREF crDefault;\r
+       r2.left = (WORD)wStartPos;\r
+       r2.top = pRect->top;\r
+       r2.bottom = r2.top + nLineH;\r
+\r
+       if (nLineNo + 1 == nMaxLine) {\r
+               // EOF\r
+               r2.right = r2.left + 100;\r
+               crDefault = SetTextColor(hDC, COLOR_EOF);\r
+               DrawText(hDC, TEXT("[EOF]"), 5, &r2, DT_TOP | DT_SINGLELINE);\r
+       } else {\r
+               // EOL\r
+               if (pChunk->IsContLine()) {\r
+                       // Logical EOL\r
+                       r2.right = r2.left + 5;\r
+                       crDefault = SetTextColor(hDC, COLOR_LEOL);\r
+                       DrawLEOL(hDC, &r2, COLOR_LEOL);\r
+               } else {\r
+                       // Physical EOL\r
+                       r2.right = r2.left + nAveCharWidth;\r
+                       crDefault = SetTextColor(hDC, COLOR_EOL);\r
+                       DrawEOL(hDC, &r2, COLOR_EOL);\r
+               }\r
+       }\r
+       SetTextColor(hDC, crDefault);\r
+}\r
+\r
+/////////////////////////////////////////////////////////////////////////////\r
+// Draw one line \r
+/////////////////////////////////////////////////////////////////////////////\r
+\r
+BOOL YAEditView::PaintLine(HDC hDC, LineChunk *pChunk, const LPRECT pRect, DWORD nSelStart, DWORD nSelEnd)\r
+{\r
+       HFONT hOldFont = NULL;\r
+       if (hFont) {\r
+               hOldFont = (HFONT)SelectObject(hDC, hFont);\r
+       }\r
+\r
+       DWORD nLineNo = pChunk->GetLineNo();\r
+\r
+       BOOL bInvertText = FALSE;\r
+\r
+       LPCTSTR pLine = pChunk->GetLineData();\r
+       DWORD nLineLen = pChunk->LineLen();\r
+\r
+       // Draw line\r
+       DWORD nBaseX = pRect->left;\r
+\r
+       DWORD nCurrentCharPos;  // which char is drawing\r
+       DWORD nOffset;                  // where the char should draw\r
+\r
+       DWORD nNumChar;         // number(length) of char\r
+       DWORD nCharWidth;       // number of pixels drawn\r
+\r
+       DWORD nSpecialChar;     // character type\r
+\r
+       nOffset = 0;\r
+       nCurrentCharPos = 0; \r
+\r
+       RECT r = *pRect;\r
+       r.bottom = r.top + nLineH;\r
+\r
+       while(nCurrentCharPos < nLineLen) {\r
+               r.left = nBaseX + nOffset;\r
+\r
+               if (nSelStart <= nCurrentCharPos && nCurrentCharPos < nSelEnd) {\r
+                       bInvertText = TRUE;\r
+               } else {\r
+                       bInvertText = FALSE;\r
+               }\r
+\r
+               LPCTSTR pChunkData = pLine + nCurrentCharPos;\r
+               nSpecialChar = CheckCharType(pChunkData, &nNumChar);\r
+\r
+               switch(nSpecialChar) {\r
+               case CHAR_TYPE_SPACE:\r
+                       if (bInvertText) {\r
+                               HBRUSH hBrush = CreateSolidBrush(RGB(0,0,0));\r
+                               HGDIOBJ hDefaultBrush = SelectObject(hDC, hBrush);\r
+                               Rectangle(hDC, r.left, r.top, r.left + GetLineWidth(0, TEXT(" "), 1), r.bottom);\r
+                               SelectObject(hDC, hDefaultBrush);\r
+                               DeleteObject(hBrush);\r
+                       }\r
+                       nCharWidth = GetLineWidth(nOffset, pChunkData, nNumChar);\r
+                       break;\r
+               case CHAR_TYPE_TAB:\r
+                       nCharWidth = GetLineWidth(nOffset, TEXT("\t"), 1);\r
+                       if (bInvertText) {\r
+                               HBRUSH hBrush = CreateSolidBrush(RGB(0,0,0));\r
+                               HGDIOBJ hDefaultBrush = SelectObject(hDC, hBrush);\r
+                               Rectangle(hDC, r.left, r.top, r.left + nCharWidth, r.bottom);\r
+                               SelectObject(hDC, hDefaultBrush);\r
+                               DeleteObject(hBrush);\r
+                       } else {\r
+                               r.right = r.left + nCharWidth;\r
+                               DrawTab(hDC, &r, RGB(0, 0, 255));\r
+                       }\r
+                       break;\r
+\r
+#if defined(PLATFORM_WIN32)\r
+               case CHAR_TYPE_SPACE_ZENKAKU:\r
+                       nCharWidth = GetLineWidth(0, TEXT("\81@"), 2);\r
+                       r.right = r.left + nCharWidth;\r
+                       DrawZenkakuSpace(hDC, &r, RGB(64, 128, 128));\r
+                       break;\r
+#endif\r
+               default:        // normal char\r
+                       {\r
+                               COLORREF fg, bg;\r
+                               if (bInvertText) {\r
+                                       fg = SetTextColor(hDC, RGB(255,255,255));\r
+                                       bg = SetBkColor(hDC, RGB(0,0,0));\r
+                               }\r
+                               ExtTextOut(hDC, r.left, pRect->top, 0, NULL, pChunkData, nNumChar, NULL);\r
+                               if (bInvertText) {\r
+                                       fg = SetTextColor(hDC, fg);\r
+                                       bg = SetBkColor(hDC, bg);\r
+                               }\r
+                               nCharWidth = GetLineWidth(nOffset, pChunkData, nNumChar);\r
+                       }\r
+               }\r
+\r
+               nCurrentCharPos += nNumChar;\r
+               nOffset += nCharWidth;\r
+       }\r
+\r
+       // Draw End of line mark\r
+       DrawEndLineMark(hDC, nOffset, GetMaxLine(), pRect, pChunk);\r
+       if (hFont) {\r
+               SelectObject(hDC, hOldFont);\r
+       }\r
+       return TRUE;\r
+}\r
+\r
+void YAEditView::PaintRect(HDC hDC, const RECT &rPaintRect)\r
+{\r
+       RECT r = rClientRect;\r
+\r
+       DWORD nStartRow = r.top / nLineH + nBaseLineNo;\r
+       DWORD nEndRow = r.bottom / nLineH + nBaseLineNo;\r
+\r
+       DWORD nMaxLine = GetMaxLine();\r
+       if (nMaxLine < nEndRow) nEndRow = nMaxLine;\r
+\r
+       r.right = rClientRect.right;\r
+\r
+       SetViewportOrgEx(hDC, -(int)nColOffset, 0, NULL);\r
+\r
+       DWORD nSelStart = 0;\r
+       DWORD nSelEnd = 0;\r
+\r
+       DWORD i;\r
+       for (i = nStartRow; i < nEndRow; i++) {\r
+               // get line data\r
+               LineChunk lc;\r
+               if (!pCtrl->GetLgLineChunk(i, &lc)) break;\r
+\r
+               lc.GetSelRange(&nSelStart, &nSelEnd);\r
+\r
+               if (!PaintLine(hDC, &lc, &r, nSelStart, nSelEnd)) break;\r
+               r.top += nLineH;\r
+       }\r
+\r
+}\r
+\r
+BOOL YAEditView::DirectPaintLine(DWORD nLineNo)\r
+{\r
+       if (!IsLineDisplay(nLineNo)) return TRUE; // the line is not in window\r
+\r
+       LineChunk lc;\r
+       if (!pCtrl->GetLgLineChunk(nLineNo, &lc)) return FALSE;\r
+\r
+       DWORD nDpLineNo = LgLineNoToDpLineNo(nLineNo);\r
+\r
+       RECT r;\r
+       r.left = 0;\r
+       r.top = DpLineNoToDpLinePixel(nDpLineNo);\r
+       r.right = rClientRect.right;\r
+       if (nDpLineNo == nPageHeight) {\r
+               r.bottom = rClientRect.bottom;\r
+       } else {\r
+               r.bottom = DpLineNoToDpLinePixel(nDpLineNo + 1);\r
+       }\r
+\r
+       HDC hDC = GetDC(hViewWnd);\r
+\r
+       SelectObject(hDC, GetSysColorBrush(COLOR_WINDOW));\r
+       SelectObject(hDC, GetStockObject(NULL_PEN));\r
+       Rectangle(hDC, r.left, r.top, r.right, r.bottom + 1);\r
+       PaintLine(hDC, &lc, &r, 0, 0);\r
+\r
+       ReleaseDC(hViewWnd, hDC);\r
+       return TRUE;\r
+}\r
+\r
+void YAEditView::RequestRedraw(DWORD nLineNo, WORD nLeftPos, BOOL bToBottom)\r
+{\r
+       if (!IsLineDisplay(nLineNo)) return;\r
+\r
+       RECT r;\r
+       r.left = nLeftPos;\r
+       r.right = rClientRect.right;\r
+       \r
+       r.top = (nLineNo - nBaseLineNo) * nLineH;\r
+       if (bToBottom) {\r
+               r.bottom = rClientRect.bottom;\r
+       } else {\r
+               r.bottom = r.top + nLineH;\r
+       }\r
+\r
+       InvalidateRect(hViewWnd, &r, TRUE);\r
+}\r
+\r
+// maybe this method is not used now\r
+void YAEditView::RequestRedrawWithLine(DWORD nLineNo, DWORD nNumLine)\r
+{\r
+       LineChunk lc;\r
+       pCtrl->GetLgLineChunk(nLineNo + nNumLine, &lc);\r
+\r
+       // redraw updated region\r
+       Region r;\r
+       r.posStart.Set(0, nLineNo);\r
+       r.posEnd.Set(lc.LineLen(), nLineNo + nNumLine);\r
+       RequestRedrawRegion(&r);\r
+}\r
+\r
+void YAEditView::RequestRedrawRegion(const Region *pRegion)\r
+{\r
+       Region rgn = *pRegion;\r
+\r
+       // replace Region::COL_EOL\r
+       if (rgn.posEnd.col == Region::COL_EOL) {\r
+               LineChunk lc2;\r
+               pCtrl->GetLgLineChunk(rgn.posEnd.row, &lc2);\r
+               rgn.posEnd.col = lc2.LineLen();\r
+       }\r
+\r
+       if (rgn.posEnd.row < nBaseLineNo ||\r
+               rgn.posStart.row > nBaseLineNo + nPageHeight) {\r
+               // selected area is out of screen\r
+               return;\r
+       }\r
+\r
+       if (rgn.posStart.row == rgn.posEnd.row) {\r
+               // region is in one line\r
+               CalcInvalidateArea(rgn.posStart.row, rgn.posStart.col, rgn.posEnd.col);\r
+       } else {\r
+               // top of line\r
+               if (rgn.posStart.row >= nBaseLineNo && rgn.posStart.row <= nBaseLineNo + nPageHeight) {\r
+                       LineChunk lc;\r
+                       pCtrl->GetLgLineChunk(rgn.posStart.row, &lc);\r
+                       CalcInvalidateArea(rgn.posStart.row, 0, lc.LineLen());\r
+               }\r
+\r
+               // end of line\r
+               if (rgn.posEnd.row >= nBaseLineNo && rgn.posEnd.row <= nBaseLineNo + nPageHeight) {\r
+                       CalcInvalidateArea(rgn.posEnd.row, 0, rgn.posEnd.col);\r
+               }\r
+\r
+               // rest area\r
+\r
+               // select lines that in the view\r
+               DWORD nStartRow = rgn.posStart.row + 1;\r
+               DWORD nEndRow = rgn.posEnd.row - 1;\r
+               if (nStartRow > nEndRow) return;\r
+               if (nStartRow < nBaseLineNo) nStartRow = nBaseLineNo;\r
+               if (nEndRow > nBaseLineNo + nPageHeight) nEndRow = nBaseLineNo + nPageHeight;\r
+\r
+               // request update\r
+               RECT r;\r
+               r.left = rClientRect.left; r.right = rClientRect.right;\r
+               r.top = (nStartRow - nBaseLineNo) * nLineH;\r
+               r.bottom = r.top + (nEndRow - nStartRow + 1) * nLineH;\r
+               InvalidateRect(hViewWnd, &r, TRUE);\r
+       }\r
+\r
+       //\r
+       if (rgn.posEnd.row == GetMaxLine() - 1) {\r
+               RECT r;\r
+               r.left = rClientRect.left; r.right = rClientRect.right;\r
+               r.top = (rgn.posEnd.row - nBaseLineNo) * nLineH;\r
+               r.bottom = rClientRect.bottom;\r
+               InvalidateRect(hViewWnd, &r, TRUE);\r
+\r
+       }\r
+}\r
+\r
+void YAEditView::CalcInvalidateArea(DWORD nLine, DWORD nStart, DWORD nEnd)\r
+{\r
+       RECT r;\r
+\r
+       LineChunk lc;\r
+       if (!pCtrl->GetLgLineChunk(nLine, &lc)) return;\r
+\r
+       DWORD nStartPos = GetLineWidth(0, lc.GetLineData(), nStart);\r
+       DWORD nEndPos = GetLineWidth(nStartPos, lc.GetLineData() + nStart, \r
+                                                               nEnd - nStart);\r
+\r
+       r.left = nStartPos - nColOffset;\r
+       r.top = (nLine - nBaseLineNo) * nLineH;\r
+       r.right = r.left + nEndPos;\r
+       r.bottom = r.top + nLineH;\r
+\r
+       if (nEnd == lc.LineLen()) {\r
+               r.right = rClientRect.right;\r
+       }\r
+\r
+       InvalidateRect(hViewWnd, &r, TRUE);\r
+}\r
+\r
+/////////////////////////////////////////////////////////////////////////////\r
+// get max line no\r
+/////////////////////////////////////////////////////////////////////////////\r
+// This method is the proxy of YAEdit.\r
+\r
+DWORD YAEditView::GetMaxLine()\r
+{\r
+       if (pCtrl && pCtrl->GetDoc()) {\r
+               return pCtrl->GetLineMgr()->MaxLine();\r
+       } else {\r
+               return 0;\r
+       }\r
+}\r
+\r
+/////////////////////////////////////////////////////////////////////////////\r
+// set caret position\r
+/////////////////////////////////////////////////////////////////////////////\r
+\r
+void YAEditView::SetCaretPos()\r
+{\r
+       if (IsCursorInDisplay()) {\r
+               if (!bShowCaret) {\r
+                       ShowCaret(hViewWnd);\r
+                       bShowCaret = TRUE;\r
+               }\r
+\r
+#if !defined(PLATFORM_PSPC)\r
+               HIMC hIMC = ImmGetContext(hViewWnd);\r
+               COMPOSITIONFORM cf;\r
+               cf.dwStyle = CFS_POINT;\r
+               cf.ptCurrentPos.x = nCursorColPos - nColOffset;\r
+               cf.ptCurrentPos.y = (nCursorRow - nBaseLineNo) * nLineH;\r
+               ImmSetCompositionWindow(hIMC, &cf);\r
+               ImmSetCompositionFont(hIMC, &lfLogFont);\r
+               ImmReleaseContext(hViewWnd, hIMC);\r
+#endif\r
+\r
+               ::SetCaretPos(nCursorColPos - nColOffset, (nCursorRow - nBaseLineNo)*nLineH);\r
+       } else {\r
+               if (bShowCaret) {\r
+                       HideCaret(hViewWnd);\r
+                       bShowCaret = FALSE;\r
+               }\r
+       }\r
+}\r
+\r
+void YAEditView::SetFont(HFONT h)\r
+{\r
+       if (h == NULL) return;\r
+       hFont = h;\r
+\r
+       GetObject(h, sizeof(LOGFONT), &lfLogFont);\r
+\r
+       ResetFontInfo();\r
+}\r
+\r
+/////////////////////////////////////////////////////////////////////////////\r
+// ScrollCaret\r
+/////////////////////////////////////////////////////////////////////////////\r
+// Scroll view that cursor is in.\r
+//\r
+// ScrollCaret try to adjust to view cursor cetner of the view if it can.\r
+void YAEditView::ScrollCaret()\r
+{\r
+       if (IsCursorInDisplay()) return;\r
+\r
+       // Adjust vert position\r
+       DWORD nNewBase;\r
+       if (nCursorRow > nPageHeight / 2) {\r
+               nNewBase = nCursorRow - nPageHeight / 2;\r
+       } else {\r
+               nNewBase = 0;\r
+       }\r
+       SetScrollVertPos(nNewBase, TRUE);\r
+\r
+       // Adjust horiz position. \r
+       int nPos = nCursorColPos - (rClientRect.right - rClientRect.left)/2;\r
+       SetScrollHorizPos(nPos);\r
+}\r
+\r
+/////////////////////////////////////////////////////////////////////////////\r
+// Find text position\r
+/////////////////////////////////////////////////////////////////////////////\r
+\r
+void YAEditView::SetNearCursorPos(WORD xPos, DWORD nYLines)\r
+{\r
+       xPos += (WORD)nColOffset;\r
+       nCursorRow = nYLines;\r
+\r
+       LineChunk lc;\r
+       if (!pCtrl->GetLgLineChunk(nYLines, &lc)) {\r
+               SetCaretPos();\r
+               return;\r
+       }\r
+       LPCTSTR pLine = lc.GetLineData();\r
+       DWORD nLineLen = lc.LineLen();\r
+       \r
+       LPCTSTR pLimit = pLine + nLineLen;\r
+       LPCTSTR p = pLine;\r
+       LPCTSTR q;\r
+       DWORD w = 0;\r
+       DWORD nCurWidth = 0;\r
+\r
+       while (p < pLimit) {\r
+               q = CharNext(p);\r
+\r
+               w = GetLineWidth(nCurWidth, p, q - p);\r
+               if (nCurWidth + w> xPos) break;\r
+               nCurWidth += w;\r
+               p = q;\r
+       }\r
+       nCursorCol = p - pLine;\r
+       nCursorColPos = nCurWidth;\r
+\r
+       SetCaretPos();\r
+}\r
+\r
+void YAEditView::SetCaretPosition(const Coordinate &pos)\r
+{\r
+       nCursorRow = pos.row;\r
+       nCursorCol = pos.col;\r
+\r
+       LineChunk lc;\r
+       if (!pCtrl->GetLgLineChunk(nCursorRow, &lc)) return;\r
+\r
+       if (nCursorCol >= lc.LineLen()) {\r
+               nCursorCol = lc.LineLen();\r
+       }\r
+\r
+       nCursorColPos = GetLineWidth(0, lc.GetLineData(), nCursorCol);\r
+       SetCaretPos();\r
+}\r
+\r
+/////////////////////////////////////////////////////////////////////////////\r
+// scroll view\r
+/////////////////////////////////////////////////////////////////////////////\r
+\r
+void YAEditView::SetScrollVertPos(DWORD nPos, BOOL bFullRewrite)\r
+{\r
+       if (nPos + nPageHeight > GetMaxLine()) {\r
+               nPos = GetMaxLine() - nPageHeight;\r
+       }\r
+\r
+       nBaseLineNo = nPos;\r
+       if (bFullRewrite) {\r
+               InvalidateRect(hViewWnd, &rClientRect, TRUE);\r
+       }\r
+       SetScrollPos(hViewWnd, SB_VERT, nBaseLineNo, TRUE);\r
+       SetCaretPos();\r
+}\r
+\r
+void YAEditView::SetScrollVertByOffset(int nLineOffset)\r
+{\r
+       if (nPageHeight > GetMaxLine()) return;\r
+\r
+       DWORD nPos = nBaseLineNo + nLineOffset;\r
+\r
+       if (nLineOffset < 0 && nBaseLineNo < (DWORD)-nLineOffset) {\r
+               nPos = 0;\r
+       } else if (nPos + nPageHeight > GetMaxLine()) {\r
+               nPos = GetMaxLine() - nPageHeight;\r
+       }\r
+       if (nPos == nBaseLineNo) return;\r
+\r
+       nBaseLineNo = nPos;\r
+\r
+       // set invalidate range\r
+       RECT r = rClientRect;\r
+       if (nLineOffset == 1) {\r
+               r.bottom = r.top + (nLineH + 1) * nPageHeight;\r
+               HideCaret(hViewWnd);\r
+               ScrollWindowEx(hViewWnd, 0, -(int)nLineH, &r, &r, NULL, NULL, 0);\r
+               DirectPaintLine(DpLineNoToLgLineNo(nPageHeight) - 1);\r
+               ShowCaret(hViewWnd);\r
+               SetScrollVertPos(nPos, FALSE);\r
+               return;\r
+       } else if (nLineOffset == -1) {\r
+               r.bottom = r.top + nLineH * nPageHeight;\r
+               HideCaret(hViewWnd);\r
+               ScrollWindowEx(hViewWnd, 0, nLineH, &r, &r, NULL, NULL, 0);\r
+               DirectPaintLine(nBaseLineNo);\r
+               ShowCaret(hViewWnd);\r
+               SetScrollVertPos(nPos, FALSE);\r
+               return;\r
+       }\r
+\r
+       SetScrollVertPos(nPos, TRUE);\r
+}\r
+\r
+void YAEditView::SetScrollHorizPos(int nPos)\r
+{\r
+       SCROLLINFO si;\r
+       si.cbSize = sizeof(si);\r
+       si.fMask = SIF_PAGE | SIF_POS | SIF_RANGE;\r
+       GetScrollInfo(hViewWnd, SB_HORZ, &si);\r
+\r
+       if (nPos < si.nMin) {\r
+               nPos = 0;\r
+       } else if (si.nMax - (int)si.nPage <= nPos) {\r
+               nPos = si.nMax - si.nPage;\r
+       }\r
+       if (nPos == si.nPos) return;\r
+\r
+       nColOffset = nPos;\r
+       SetScrollPos(hViewWnd, SB_HORZ, nPos, TRUE);\r
+       InvalidateRect(hViewWnd, &rClientRect, TRUE);\r
+       SetCaretPos();\r
+}\r
+\r
+void YAEditView::NextPage() { SetScrollVertByOffset((int)(nPageHeight - 2)); }\r
+void YAEditView::PrevPage() { SetScrollVertByOffset(-(int)(nPageHeight - 2)); }\r
+void YAEditView::Next1L() { SetScrollVertByOffset(1); }\r
+void YAEditView::Prev1L() { SetScrollVertByOffset(-1); }\r
+void YAEditView::ScrollRight1L() { SetScrollHorizPos(nColOffset + nAveCharWidth); }\r
+void YAEditView::ScrollLeft1L() { SetScrollHorizPos(nColOffset - nAveCharWidth); }\r
+void YAEditView::ScrollRight1P() { SetScrollHorizPos(nColOffset + nHorizPageScrollDelta); }\r
+void YAEditView::ScrollLeft1P() { SetScrollHorizPos(nColOffset - nHorizPageScrollDelta); }\r
+\r
+/////////////////////////////////////////////////////////////////////////////\r
+// cursor position check funcs\r
+/////////////////////////////////////////////////////////////////////////////\r
+\r
+BOOL YAEditView::IsCursorInDocBottom() { return nCursorRow + 1 == GetMaxLine(); }\r
+BOOL YAEditView::IsCursorInPageBottom() { return nCursorRow - nBaseLineNo == nPageHeight - 1; }\r
+BOOL YAEditView::IsCursorInPageTop() { return nCursorRow - nBaseLineNo == 0; }\r
+BOOL YAEditView::IsCursorInDocTop() { return nCursorRow == 0 && nCursorCol == 0; }\r
+\r
+BOOL YAEditView::IsCursorInDisplay()\r
+{\r
+       if (nCursorRow < nBaseLineNo ||\r
+               nCursorRow >= nBaseLineNo + nPageHeight ||\r
+               nCursorColPos < nColOffset || \r
+               nColOffset + (rClientRect.right - rClientRect.left) < nCursorColPos\r
+       ) return FALSE;\r
+       return TRUE;\r
+}\r
+\r
+BOOL YAEditView::IsLineDisplay(DWORD nLineNo)\r
+{\r
+       return (nBaseLineNo <= nLineNo) && (nLineNo < nBaseLineNo + nPageHeight);\r
+}\r
+/////////////////////////////////////////////////////////////////////////////\r
+//  Coordinate conversion\r
+/////////////////////////////////////////////////////////////////////////////\r
+\r
+DWORD YAEditView::LgLineNoToDpLineNo(DWORD nLgLineNo) { return nLgLineNo - nBaseLineNo; }\r
+DWORD YAEditView::DpLineNoToLgLineNo(DWORD nDpLineNo) { return nDpLineNo + nBaseLineNo; }\r
+DWORD YAEditView::DpLineNoToDpLinePixel(DWORD nDpLineNo) { return rClientRect.top + nDpLineNo * nLineH; }\r
+DWORD YAEditView::DpLinePixelToLgLineNo(DWORD nDpLinePixel) { return nDpLinePixel / nLineH + nBaseLineNo; }\r
+\r
+/////////////////////////////////////////////////////////////////////////////\r
+// WM_CREATE\r
+/////////////////////////////////////////////////////////////////////////////\r
+void YAEditView::OnCreate(HWND hWnd, WPARAM wParam, LPARAM lParam)\r
+{\r
+       GetClientRect(hWnd, &rClientRect);\r
+       hViewWnd = hWnd;\r
+\r
+       ResetFontInfo();\r
+\r
+}\r
+\r
+void YAEditView::ResetFontInfo()\r
+{\r
+       HDC hDC = GetDC(hViewWnd);\r
+       if (hDC) {\r
+               HFONT hOldFont = NULL;\r
+               if (hFont) {\r
+                       hOldFont = (HFONT)SelectObject(hDC, hFont);\r
+               }\r
+               TEXTMETRIC tm;\r
+               GetTextMetrics(hDC, &tm);\r
+               nLineH = tm.tmHeight;\r
+               nAveCharWidth = tm.tmAveCharWidth;\r
+               nMaxCharWidth = tm.tmMaxCharWidth;\r
+\r
+               nTabWidth = nAveCharWidth * 4;\r
+\r
+               if (hFont) {\r
+                       SelectObject(hDC, hOldFont);\r
+               }\r
+               ReleaseDC(hViewWnd, hDC);\r
+       } else {\r
+               return;\r
+       }\r
+\r
+       nPageHeight = (rClientRect.bottom - rClientRect.top) / nLineH;\r
+\r
+       if (pFontCache) delete pFontCache;\r
+       pFontCache = new FontWidthCache();\r
+       if (pFontCache == NULL || !pFontCache->Init(hViewWnd, hFont)) return;\r
+\r
+}\r
+/////////////////////////////////////////////////////////////////////////////\r
+// Forcus window\r
+/////////////////////////////////////////////////////////////////////////////\r
+\r
+void YAEditView::OnSetFocus()\r
+{\r
+       DWORD nCaretWidth = GetSystemMetrics(SM_CXBORDER);\r
+       if (nCaretWidth < 2) nCaretWidth = 2;\r
+\r
+       CreateCaret(hViewWnd, NULL, nCaretWidth, nLineH);\r
+       bShowCaret = TRUE;\r
+       ShowCaret(NULL);\r
+       SetCaretPos();\r
+}\r
+\r
+void YAEditView::OnKillFocus()\r
+{\r
+       HideCaret(hViewWnd);\r
+       bShowCaret = FALSE;\r
+       DestroyCaret();\r
+}\r
+\r
+/////////////////////////////////////////////////////////////////////////////\r
+// cursor move\r
+/////////////////////////////////////////////////////////////////////////////\r
+\r
+void YAEditView::MoveRight()\r
+{\r
+       if (!pCtrl->GetDoc()) return;\r
+\r
+       LineChunk lc;\r
+       if (!pCtrl->GetLgLineChunk(nCursorRow, &lc)) return;\r
+\r
+       if (nCursorCol >= lc.LineLen()) {\r
+               // at the right of the line.\r
+               if (IsCursorInDocBottom()) return;\r
+               MoveDown();\r
+               MoveTOL();\r
+               return; \r
+       }\r
+\r
+       LPCTSTR pLine = lc.GetLineData();\r
+       LPCTSTR pCurrentChar = pLine + nCursorCol;\r
+       DWORD nLen = 1;\r
+\r
+#if defined(PLATFORM_WIN32)\r
+       if (IsDBCSLeadByte(*pCurrentChar)) {\r
+               nLen = 2;\r
+       }\r
+#endif\r
+\r
+       nCursorColPos += GetLineWidth(nCursorColPos, pCurrentChar, nLen);\r
+       nCursorCol += nLen;\r
+\r
+       if (!IsCursorInDisplay()) {\r
+               ScrollRight1P();\r
+       }\r
+       SetCaretPos();\r
+}\r
+\r
+void YAEditView::MoveLeft()\r
+{\r
+       if (!pCtrl->GetDoc()) return;\r
+\r
+       if (nCursorCol == 0) {\r
+               // at the top of the line.\r
+               if (nCursorRow == 0) return;\r
+               MoveUp();\r
+               MoveEOL();\r
+               return; \r
+       }\r
+\r
+       LineChunk lc;\r
+       if (!pCtrl->GetLgLineChunk(nCursorRow, &lc)) return;\r
+       LPCTSTR pLine = lc.GetLineData();\r
+       DWORD nLen = pCtrl->GetPrevOffset(nCursorRow, nCursorCol);\r
+       LPCTSTR pNewChar = pLine + nCursorCol - nLen;\r
+       nCursorColPos = GetLineWidth(0, pLine, nCursorCol - nLen);\r
+       nCursorCol -= nLen;\r
+\r
+       if (!IsCursorInDisplay()) {\r
+               ScrollLeft1P();\r
+       }\r
+       SetCaretPos();\r
+}\r
+\r
+void YAEditView::MoveUp()\r
+{\r
+       if (IsCursorInPageTop()) {\r
+               if (nBaseLineNo == 0) return;\r
+               // scroll up 1 line\r
+               Prev1L();\r
+       }\r
+       SetNearCursorPos((WORD)nCursorColPos, nCursorRow - 1);\r
+}\r
+\r
+void YAEditView::MoveEOL()\r
+{\r
+       LineChunk lc;\r
+       if (!pCtrl->GetLgLineChunk(nCursorRow, &lc)) return;\r
+\r
+       LPCTSTR p = lc.GetLineData();\r
+       nCursorCol = lc.LineLen();\r
+       nCursorColPos = GetLineWidth(0, p, nCursorCol);\r
+\r
+       if (!IsCursorInDisplay()) {\r
+               if (nCursorColPos < nColOffset) {\r
+                       SetScrollHorizPos(((nColOffset - nCursorColPos) / nHorizPageScrollDelta + 1) * nHorizPageScrollDelta);\r
+               } else {\r
+                       DWORD n = nCursorColPos / nHorizPageScrollDelta - 1; // most right position that you can view EOL.\r
+                       n -= (rClientRect.right - rClientRect.left) / nHorizPageScrollDelta -1; // Adjust that the line is displayed as much as possible.\r
+                       SetScrollHorizPos(n * nHorizPageScrollDelta);\r
+               }\r
+       }\r
+\r
+       SetCaretPos();\r
+}\r
+\r
+void YAEditView::MoveTOL()\r
+{\r
+       nCursorCol = 0;\r
+       nCursorColPos = 0;\r
+       if (!IsCursorInDisplay()) {\r
+               SetScrollHorizPos(0);\r
+       }\r
+       SetCaretPos();\r
+}\r
+\r
+void YAEditView::MoveDown()\r
+{\r
+       if (IsCursorInDocBottom()) return;\r
+       if (IsCursorInPageBottom()) Next1L();\r
+\r
+       SetNearCursorPos((WORD)nCursorColPos, nCursorRow + 1);\r
+}\r
+\r
+DWORD YAEditView::GetLineWidth(DWORD nOffset, LPCTSTR pStr, DWORD nLen)\r
+{\r
+       LPCTSTR pLimit = pStr + nLen;\r
+       DWORD w = 0;\r
+       LPCTSTR p = pStr;\r
+       LPCTSTR q;\r
+       while (p < pLimit) {\r
+               q = CharNext(p);\r
+\r
+               if (*p == TEXT('\t')) {\r
+                       DWORD wt = ((nOffset + w) / nTabWidth + 1) * nTabWidth;\r
+                       w = wt - nOffset;\r
+               } else {\r
+                       DWORD wc;\r
+#if defined(PLATFORM_WIN32)\r
+                       if (q - p == 1) {\r
+                               wc = pFontCache->GetOnebyteCharWidth(*p);\r
+                       } else {\r
+                               wc = pFontCache->GetTwobyteCharWidth(p);\r
+                       }\r
+#else\r
+                       wc = pFontCache->GetWideCharWidth(*p);\r
+#endif\r
+                       w += wc;\r
+               }\r
+               p = q;\r
+       }\r
+       return w;\r
+}\r
+\r
+void YAEditView::UpdateMaxLineWidth()\r
+{\r
+       DWORD i, w;\r
+       DWORD n = pCtrl->GetLineMgr()->MaxLine();\r
+\r
+       nMaxWidthPixel = 0;\r
+       LineChunk lc;\r
+       for (i = 0; i < n; i++) {\r
+               if (!pCtrl->GetLgLineChunk(i, &lc)) return;\r
+\r
+               LPCTSTR p = lc.GetLineData();\r
+               w = GetLineWidth(0, p, lc.LineLen());\r
+               if (w > nMaxWidthPixel) nMaxWidthPixel = w;\r
+       }\r
+}\r
+\r
+void YAEditView::RedrawAllScreen()\r
+{\r
+       InvalidateRect(hViewWnd, NULL, TRUE);\r
+}\r
+\r
+BOOL YAEditView::IsVertScrollbarDisplayed()\r
+{\r
+       SCROLLINFO si;\r
+       si.cbSize = sizeof(si);\r
+       si.fMask = SIF_PAGE | SIF_POS | SIF_RANGE;\r
+\r
+       GetScrollInfo(hViewWnd, SB_VERT, &si);\r
+       return (si.nMin != si.nMax) && ((UINT)si.nMin <= si.nPage) && (si.nPage <= (UINT)si.nMax);\r
+}
\ No newline at end of file
diff --git a/Src/YAEdit/YAEditView.h b/Src/YAEdit/YAEditView.h
new file mode 100644 (file)
index 0000000..bdf36ce
--- /dev/null
@@ -0,0 +1,174 @@
+#ifndef YAEDITVIEW_H\r
+#define YAEDITVIEW_H\r
+\r
+class YAEditImpl;\r
+class YAEditDoc;\r
+\r
+class YAEditView {\r
+       YAEditImpl *pCtrl;\r
+\r
+       ///////////////////////////////////////\r
+       // cursor(caret) related members\r
+\r
+       BOOL bShowCaret;        // is caret shown?\r
+\r
+protected:\r
+       ///////////////////////////////////////\r
+       // proxy to YAEdit\r
+\r
+       DWORD GetMaxLine();\r
+\r
+       LONG nAveCharWidth;// average width of 1 letter\r
+       DWORD nLineH;           // 1 line height\r
+       DWORD nPageHeight;      // number of lines in the window\r
+       DWORD nBaseLineNo;      // top page position\r
+\r
+       DWORD nHorizPageScrollDelta;\r
+       DWORD nColOffset;       // offset of horiz scroll\r
+\r
+       DWORD nTabWidth;        // tab width(pixels)\r
+\r
+       FontWidthCache *pFontCache;\r
+\r
+       ///////////////////////////////////////\r
+       // cursor(caret) related members\r
+\r
+       DWORD nCursorColPos;// cursor col position (by pixel)\r
+       DWORD nCursorRow;       // cursor row position(line no of the document)\r
+       DWORD nCursorCol;       // cursor col position (by char)\r
+                                               // in DBCS coding, nCusorCol points bytes.\r
+                                               // in UCS-2 coding, nCursorCol points number of the letters.\r
+\r
+       ///////////////////////////////////////\r
+       // Drawing\r
+\r
+       BOOL PaintLine(HDC hDC, LineChunk *pChunk, const LPRECT pRect, DWORD nSelStart, DWORD nSelEnd);\r
+       void DrawEndLineMark(HDC hDC, DWORD w, DWORD nMaxLine, RECT *pRect, LineChunk *pChunk);\r
+       BOOL DirectPaintLine(DWORD nLineNo);\r
+       void CalcInvalidateArea(DWORD nLine, DWORD nStart, DWORD nEnd);\r
+\r
+       RECT rClientRect;\r
+\r
+public:\r
+       HWND hViewWnd;\r
+\r
+       LONG nMaxCharWidth;\r
+       DWORD nMaxWidthPixel; // max line width(pixels) in the document\r
+\r
+       HFONT hFont;\r
+       LOGFONT lfLogFont;\r
+\r
+       ///////////////////////////////////////\r
+       // initializing\r
+\r
+       YAEditView(YAEditImpl *p) : pCtrl(p), pFontCache(NULL), hFont(NULL) {}\r
+       ~YAEditView();\r
+\r
+       BOOL ResetPosition();\r
+\r
+       void ResizeNotify();\r
+       BOOL ResetScrollbar();\r
+\r
+       ///////////////////////////////////////\r
+       // checking funcs.\r
+       BOOL IsCursorInPageBottom();\r
+       BOOL IsCursorInPageTop();\r
+       BOOL IsCursorInDocTop();\r
+       BOOL IsCursorInDocBottom();\r
+\r
+       BOOL IsCursorInDisplay();\r
+       BOOL IsLineDisplay(DWORD nLgLineNo);\r
+\r
+       ///////////////////////////////////////\r
+       // cursor control \r
+\r
+       void SetCaretPos();\r
+       void ScrollCaret();\r
+       void SetNearCursorPos(WORD xPos, DWORD nYLines);\r
+\r
+       void SetCaretPosition(const Coordinate& pos);\r
+       Coordinate GetCaretPosition() { return Coordinate(nCursorCol, nCursorRow); }\r
+\r
+       /////////////////////////////////\r
+       // Redrawing\r
+\r
+       void PaintRect(HDC hDC, const RECT &r);\r
+       void RequestRedraw(DWORD nLineNo, WORD nLeftPos, BOOL bToBottom);\r
+       void RequestRedrawWithLine(DWORD nLineNo, DWORD nNumLine);\r
+       void RequestRedrawRegion(const Region *pRegion);\r
+       void RedrawAllScreen();\r
+\r
+       ///////////////////////////////////////\r
+       // Coordinate conversion\r
+       // logical line No <-> display line no / pixel position\r
+\r
+       DWORD LgLineNoToDpLineNo(DWORD nLgLineNo);\r
+       DWORD DpLineNoToDpLinePixel(DWORD nDpLineNo);\r
+       DWORD DpLineNoToLgLineNo(DWORD nDpLineNo);\r
+       DWORD DpLinePixelToLgLineNo(DWORD nDpLinePixel);\r
+\r
+       ///////////////////////////////////////\r
+       // message handler helper\r
+       void OnCreate(HWND hWnd, WPARAM wParam, LPARAM lParam);\r
+\r
+       ///////////////////////////////////////\r
+       // Focus\r
+       void OnSetFocus();\r
+       void OnKillFocus();\r
+\r
+       ///////////////////////////////////////\r
+       // Scroll\r
+\r
+       void SetScrollVertPos(DWORD nPos, BOOL bFullRewrite);\r
+       void SetScrollVertByOffset(int nLineOffset);\r
+       void SetScrollHorizPos(int nPos);\r
+\r
+       void Next1L();\r
+       void Prev1L();\r
+       void NextPage();\r
+       void PrevPage();\r
+\r
+       void ScrollRight1L();\r
+       void ScrollLeft1L();\r
+       void ScrollRight1P();\r
+       void ScrollLeft1P();\r
+\r
+       ///////////////////////////////////////\r
+       // cursor moving funcs.\r
+\r
+       void MoveRight();\r
+       void MoveLeft();\r
+       void MoveUp();\r
+       void MoveDown();\r
+       void MoveEOL();\r
+       void MoveTOL();\r
+\r
+       ///////////////////////////////////////\r
+       // line width related funcs.\r
+\r
+       DWORD GetLineWidth(DWORD nOffset, LPCTSTR pStr, DWORD nLen);\r
+\r
+       // Check all LineManager data and get the value of max width.\r
+       void UpdateMaxLineWidth();\r
+\r
+       ///////////////////////////////////////\r
+       // font related funcs\r
+\r
+       void ResetFontInfo();\r
+       void SetFont(HFONT hFont);\r
+\r
+       ///////////////////////////////////////\r
+       // scroll bar status\r
+       BOOL IsVertScrollbarDisplayed();\r
+\r
+       ///////////////////////////////////////\r
+       // accessor\r
+       DWORD GetPageHeight() { return nPageHeight; }\r
+       DWORD GetBaseLineNo() { return nBaseLineNo; }\r
+       const RECT& GetViewClientRect() { return rClientRect; }\r
+\r
+       // just debugging\r
+       FontWidthCache *GetFontCache() { return pFontCache; }\r
+};\r
+\r
+#endif
\ No newline at end of file
diff --git a/Src/YAEditor.cpp b/Src/YAEditor.cpp
new file mode 100644 (file)
index 0000000..1163089
--- /dev/null
@@ -0,0 +1,300 @@
+#include <windows.h>\r
+#include <tchar.h>\r
+#include <commctrl.h>\r
+#include "YAEditor.h"\r
+\r
+#include "resource.h"\r
+\r
+#include "Tombo.h"\r
+#include "UniConv.h"\r
+#include "Property.h"\r
+#include "Region.h"\r
+#include "YAEdit.h"\r
+#include "YAEditDoc.h"\r
+#include "YAEditView.h"\r
+#include "MemoManager.h"\r
+#include "MainFrame.h"\r
+\r
+/////////////////////////////////////////////////////////////////////////////\r
+// TomboDoc callback\r
+/////////////////////////////////////////////////////////////////////////////\r
+\r
+class YAEDetailsViewCallback : public YAEditCallback {\r
+       YAEditor *pEditor;\r
+       MemoManager *pManager;\r
+public:\r
+       YAEDetailsViewCallback(YAEditor *pSelf, MemoManager *pmm) : pEditor(pSelf), pManager(pmm) {}\r
+\r
+       void OnGetFocus();\r
+       void ChangeModifyStatusNotify(BOOL bStatus);\r
+       void ChangeReadOnlyStatusNotify(BOOL bStatus);\r
+\r
+       void OnContextMenu(HWND hWnd, WORD x, WORD y);\r
+};\r
+\r
+void YAEDetailsViewCallback::OnGetFocus()\r
+{\r
+       pEditor->OnGetFocus();\r
+}\r
+\r
+void YAEDetailsViewCallback::ChangeModifyStatusNotify(BOOL bStatus)\r
+{\r
+       pEditor->ChangeModifyStatusNotify(bStatus);\r
+}\r
+\r
+void YAEDetailsViewCallback::ChangeReadOnlyStatusNotify(BOOL bStatus)\r
+{\r
+       pManager->GetMainFrame()->SetReadOnlyStatus(bStatus);\r
+}\r
+\r
+\r
+typedef void (YAEditor::*YAEditCommandFunc)();\r
+\r
+struct YAEContextMenu {\r
+       LPCTSTR pItemName;\r
+       YAEditCommandFunc pFunc;\r
+};\r
+\r
+void YAEDetailsViewCallback::OnContextMenu(HWND hWnd, WORD x, WORD y)\r
+{\r
+       // MSG_xx needs initializ after initialized message resources. \r
+       static YAEContextMenu contextMenu[] = {\r
+               { MSG_MENUITEM_UNDO,                    &YAEditor::CmdUndo },\r
+               { TEXT(""),                                             NULL },\r
+               { MSG_MENUITEM_MAIN_CUT,                &YAEditor::CmdCut },\r
+               { MSG_MENUITEM_MAIN_COPY,               &YAEditor::CmdCopy },\r
+               { MSG_MENUITEM_MAIN_PASTE,              &YAEditor::CmdPaste },\r
+               { MSG_MENUITEM_MAIN_DELETE,             &YAEditor::CmdBackSpace },\r
+               { TEXT(""),                                             NULL },\r
+               { MSG_MENUITEM_DETAILS_SELALL,  &YAEditor::CmdSelAll },\r
+               { TEXT(""),                                             NULL },\r
+               { MSG_TOOLTIPS_INSDATE1,                &YAEditor::InsertDate1 },\r
+               { MSG_TOOLTIPS_INSDATE2,                &YAEditor::InsertDate2 },\r
+               { NULL,                                                 NULL },\r
+       };\r
+\r
+       // create context menu\r
+       HMENU hMenu = CreatePopupMenu();\r
+       DWORD nItems = 1;\r
+\r
+       const YAEContextMenu *p = contextMenu;\r
+       while (p->pItemName != NULL) {\r
+               if (*(p->pItemName) == TEXT('\0')) {\r
+                       InsertMenu(hMenu, nItems - 1, MF_BYPOSITION | MF_SEPARATOR, 0, NULL);\r
+               } else {\r
+                       InsertMenu(hMenu, nItems - 1, MF_BYPOSITION | MF_STRING, nItems, p->pItemName);\r
+               }\r
+               p++;\r
+               nItems++;\r
+       }\r
+\r
+       DWORD id = TrackPopupMenuEx(hMenu, TPM_RETURNCMD | TPM_TOPALIGN | TPM_LEFTALIGN, x, y, hWnd, NULL);\r
+       if (id > 0 && id < nItems) {\r
+               YAEditCommandFunc f = contextMenu[id - 1].pFunc;\r
+               (pEditor->*f)();\r
+       }\r
+       DestroyMenu(hMenu);\r
+}\r
+\r
+/////////////////////////////////////////////////////////////////////////////\r
+// YAEditor implimentation \r
+/////////////////////////////////////////////////////////////////////////////\r
+\r
+\r
+YAEditor::YAEditor(MemoManager *pMgr) : MemoDetailsView(pMgr), pEdit(NULL), pYAECallback(NULL)\r
+{\r
+}\r
+\r
+YAEditor::~YAEditor()\r
+{\r
+       delete pEdit;\r
+       delete pYAECallback;\r
+}\r
+\r
+BOOL YAEditor::Create(LPCTSTR pName, RECT &r, HWND hParent, HINSTANCE hInst, HFONT hFont)\r
+{\r
+       pYAECallback = new YAEDetailsViewCallback(this, pManager);\r
+       pEdit = YAEdit::GetInstance(pYAECallback);\r
+       pEdit->Create(hInst, hParent, nID, r, g_Property.GetWrapText());\r
+       pEdit->SetFont(hFont);\r
+       return TRUE;\r
+}\r
+\r
+BOOL YAEditor::Init(DWORD n)\r
+{\r
+       nID = n;\r
+       return TRUE;\r
+}\r
+\r
+void YAEditor::SetFocus()\r
+{\r
+       if (pEdit) pEdit->SetFocus();\r
+}\r
+\r
+void YAEditor::OnGetFocus()\r
+{\r
+       pManager->GetMainFrame()->NotifyDetailsViewFocused();\r
+}\r
+\r
+\r
+LPTSTR YAEditor::GetMemo()\r
+{\r
+       DWORD nLen;\r
+       char *pData = pEdit->GetDoc()->GetDocumentData(&nLen);\r
+#if defined(PLATFORM_WIN32)\r
+       return pData;\r
+#else\r
+       LPTSTR pDataW = ConvSJIS2Unicode(pData);\r
+       delete [] pData;\r
+       return pDataW;\r
+#endif\r
+}\r
+\r
+void YAEditor::MoveWindow(DWORD x, DWORD y, DWORD nWidth, DWORD nHeight)\r
+{\r
+       if (pEdit) pEdit->ResizeWindow(x, y, nWidth, nHeight);\r
+}\r
+\r
+BOOL YAEditor::SetMemo(LPCTSTR pMemoW, DWORD nPos, BOOL bReadOnly)\r
+{\r
+#if defined(PLATFORM_WIN32)\r
+       const char *pMemo = pMemoW;\r
+#else\r
+       char *pMemo = ConvUnicode2SJIS(pMemoW);\r
+#endif\r
+       YAEditDoc *pDoc = pEdit->CreateDocument(pMemo, pYAECallback);\r
+       if (pDoc == NULL) return FALSE;\r
+\r
+       pDoc->SetReadOnly(bReadOnly);\r
+       pYAECallback->ChangeReadOnlyStatusNotify(bReadOnly);\r
+\r
+#if !defined(PLATFORM_WIN32)\r
+       delete [] pMemo;\r
+#endif\r
+\r
+       YAEditDoc *pOldDoc = pEdit->SetDoc(pDoc);\r
+       delete pOldDoc;\r
+\r
+       if (g_Property.GetKeepCaret()) {\r
+               pEdit->SetCaretPos(nPos);\r
+       }\r
+\r
+       return TRUE;\r
+}\r
+\r
+BOOL YAEditor::IsModify()\r
+{\r
+       return pEdit->GetDoc()->IsModify();\r
+}\r
+\r
+void YAEditor::ResetModify()\r
+{\r
+       pEdit->GetDoc()->SetModify(FALSE);\r
+}\r
+\r
+BOOL YAEditor::OnCommand(HWND hWnd, WPARAM wParam, LPARAM lParam)\r
+{\r
+       switch(LOWORD(wParam)) {\r
+       case IDM_CUT:\r
+               pEdit->CmdCut();\r
+               return TRUE;\r
+       case IDM_COPY:\r
+               pEdit->CmdCopy();\r
+               return TRUE;\r
+       case IDM_PASTE:\r
+               pEdit->CmdPaste();\r
+               return TRUE;\r
+       case IDM_INSDATE1:\r
+               InsertDate1();\r
+               return TRUE;\r
+       case IDM_INSDATE2:\r
+               InsertDate2();\r
+               return TRUE;\r
+       case IDM_UNDO:\r
+               pEdit->CmdUndo();\r
+               return TRUE;\r
+       }\r
+       return FALSE;\r
+}\r
+\r
+void YAEditor::SetMDSearchFlg(BOOL bFlg)\r
+{\r
+       pManager->SetMDSearchFlg(bFlg);\r
+}\r
+\r
+void YAEditor::SetFont(HFONT hFont)\r
+{\r
+       pEdit->SetFont(hFont);\r
+}\r
+\r
+DWORD YAEditor::GetCursorPos()\r
+{\r
+       return pEdit->GetCaretPos();\r
+}\r
+\r
+void YAEditor::ChangeModifyStatusNotify(BOOL bStatus)\r
+{\r
+       pManager->GetMainFrame()->SetModifyStatus(bStatus);\r
+}\r
+\r
+BOOL YAEditor::ReplaceText(LPCTSTR p)\r
+{\r
+       pEdit->CmdReplaceString(p);\r
+       return TRUE;\r
+}\r
+\r
+void YAEditor::SetSelectRegion(DWORD nStart, DWORD nEnd)\r
+{\r
+       pEdit->SetSelectRegion(nStart, nEnd);\r
+}\r
+\r
+void YAEditor::SetReadOnly(BOOL bReadOnly)\r
+{\r
+       pEdit->GetDoc()->SetReadOnly(bReadOnly);\r
+}\r
+\r
+BOOL YAEditor::IsReadOnly()\r
+{\r
+       return pEdit->GetDoc()->IsReadOnly();\r
+}\r
+\r
+BOOL YAEditor::SetFolding(BOOL bFold)\r
+{\r
+       pEdit->CmdToggleWrapMode(bFold);\r
+       return TRUE;\r
+}\r
+\r
+void YAEditor::CmdUndo()\r
+{\r
+       pEdit->CmdUndo();\r
+}\r
+\r
+void YAEditor::CmdCut()\r
+{\r
+       pEdit->CmdCut();\r
+}\r
+\r
+void YAEditor::CmdCopy()\r
+{\r
+       pEdit->CmdCopy();\r
+}\r
+\r
+void YAEditor::CmdPaste()\r
+{\r
+       pEdit->CmdPaste();\r
+}\r
+\r
+void YAEditor::CmdBackSpace()\r
+{\r
+       pEdit->CmdBackSpace();\r
+}\r
+\r
+void YAEditor::CmdSelAll()\r
+{\r
+       pEdit->CmdSelAll();\r
+}\r
+\r
+BOOL YAEditor::Show(int nCmdShow)\r
+{\r
+       return pEdit->Show(nCmdShow);\r
+}
\ No newline at end of file
diff --git a/Src/YAEditor.h b/Src/YAEditor.h
new file mode 100644 (file)
index 0000000..8ca2afd
--- /dev/null
@@ -0,0 +1,70 @@
+#ifndef YAEDITOR_H\r
+#define YAEDITOR_H\r
+\r
+#include "MemoDetailsView.h"\r
+\r
+class YAEdit;\r
+class MemoManager;\r
+class YAEDetailsViewCallback;\r
+\r
+class YAEditor : public MemoDetailsView {\r
+       YAEdit *pEdit;\r
+       DWORD nID;\r
+\r
+       YAEDetailsViewCallback *pYAECallback;\r
+\r
+       BOOL SetMemo(LPCTSTR pMemo, DWORD nPos, BOOL bReadOnly);\r
+\r
+public:\r
+\r
+       YAEditor(MemoManager *pMgr);\r
+       virtual ~YAEditor();\r
+       BOOL Init(DWORD nID);\r
+\r
+       BOOL Create(LPCTSTR pName, RECT &r, HWND hParent, HINSTANCE hInst, HFONT hFont);\r
+       void SetFocus();\r
+       void MoveWindow(DWORD x, DWORD y, DWORD nWidth, DWORD nHeight);\r
+\r
+       BOOL IsModify();\r
+       void ResetModify();\r
+\r
+       void SetMDSearchFlg(BOOL bFlg);\r
+\r
+       LPTSTR GetMemo();\r
+\r
+       BOOL Show(int nCmdShow);\r
+\r
+       void SetTabstop() {}\r
+       BOOL SetFolding(BOOL bFold);\r
+       void SetReadOnly(BOOL bReadOnly);\r
+       BOOL IsReadOnly();\r
+\r
+       void SetModifyStatus() {}\r
+\r
+       void SetFont(HFONT hFont);\r
+\r
+       BOOL OnCommand(HWND hWnd, WPARAM wParam, LPARAM lParam);\r
+       BOOL OnHotKey(HWND hWnd, WPARAM wParam) { return TRUE; }\r
+       void OnGetFocus();\r
+\r
+       DWORD GetCursorPos();\r
+       DWORD GetInitialPos() { return 0; }\r
+\r
+       void SelectAll() {}\r
+\r
+       void ChangeModifyStatusNotify(BOOL bStatus);\r
+       void SetSelectRegion(DWORD nStart, DWORD nEnd);\r
+\r
+       BOOL ReplaceText(LPCTSTR p);\r
+\r
+       //////////////////////////\r
+       // commands\r
+       void CmdUndo();\r
+       void CmdCut();\r
+       void CmdCopy();\r
+       void CmdPaste();\r
+       void CmdBackSpace();\r
+       void CmdSelAll();\r
+};\r
+\r
+#endif
\ No newline at end of file
diff --git a/Src/image/Thumbs.db b/Src/image/Thumbs.db
new file mode 100644 (file)
index 0000000..8a0f367
Binary files /dev/null and b/Src/image/Thumbs.db differ
diff --git a/Src/image/Tombo.ICO b/Src/image/Tombo.ICO
new file mode 100644 (file)
index 0000000..b8e02e8
Binary files /dev/null and b/Src/image/Tombo.ICO differ
diff --git a/Src/image/bookmark.bmp b/Src/image/bookmark.bmp
new file mode 100644 (file)
index 0000000..6143331
Binary files /dev/null and b/Src/image/bookmark.bmp differ
diff --git a/Src/image/copy.bmp b/Src/image/copy.bmp
new file mode 100644 (file)
index 0000000..3ebde5b
Binary files /dev/null and b/Src/image/copy.bmp differ
diff --git a/Src/image/cut.bmp b/Src/image/cut.bmp
new file mode 100644 (file)
index 0000000..132945c
Binary files /dev/null and b/Src/image/cut.bmp differ
diff --git a/Src/image/delete.bmp b/Src/image/delete.bmp
new file mode 100644 (file)
index 0000000..845ba28
Binary files /dev/null and b/Src/image/delete.bmp differ
diff --git a/Src/image/draftimg.bmp b/Src/image/draftimg.bmp
new file mode 100644 (file)
index 0000000..5e3e491
Binary files /dev/null and b/Src/image/draftimg.bmp differ
diff --git a/Src/image/find.bmp b/Src/image/find.bmp
new file mode 100644 (file)
index 0000000..c6d8ef8
Binary files /dev/null and b/Src/image/find.bmp differ
diff --git a/Src/image/findnext.bmp b/Src/image/findnext.bmp
new file mode 100644 (file)
index 0000000..9a6f7b5
Binary files /dev/null and b/Src/image/findnext.bmp differ
diff --git a/Src/image/findprev.bmp b/Src/image/findprev.bmp
new file mode 100644 (file)
index 0000000..ae63035
Binary files /dev/null and b/Src/image/findprev.bmp differ
diff --git a/Src/image/insdate1.bmp b/Src/image/insdate1.bmp
new file mode 100644 (file)
index 0000000..8d72e0c
Binary files /dev/null and b/Src/image/insdate1.bmp differ
diff --git a/Src/image/insdate2.bmp b/Src/image/insdate2.bmp
new file mode 100644 (file)
index 0000000..102f8e6
Binary files /dev/null and b/Src/image/insdate2.bmp differ
diff --git a/Src/image/mdtoolbar.bmp b/Src/image/mdtoolbar.bmp
new file mode 100644 (file)
index 0000000..a3f4e77
Binary files /dev/null and b/Src/image/mdtoolbar.bmp differ
diff --git a/Src/image/memoimg.bmp b/Src/image/memoimg.bmp
new file mode 100644 (file)
index 0000000..12c272e
Binary files /dev/null and b/Src/image/memoimg.bmp differ
diff --git a/Src/image/memoimg24.bmp b/Src/image/memoimg24.bmp
new file mode 100644 (file)
index 0000000..20789a6
Binary files /dev/null and b/Src/image/memoimg24.bmp differ
diff --git a/Src/image/newmemo.bmp b/Src/image/newmemo.bmp
new file mode 100644 (file)
index 0000000..c3bccef
Binary files /dev/null and b/Src/image/newmemo.bmp differ
diff --git a/Src/image/paste.bmp b/Src/image/paste.bmp
new file mode 100644 (file)
index 0000000..8ff5a9f
Binary files /dev/null and b/Src/image/paste.bmp differ
diff --git a/Src/image/rebar.bmp b/Src/image/rebar.bmp
new file mode 100644 (file)
index 0000000..90bff75
Binary files /dev/null and b/Src/image/rebar.bmp differ
diff --git a/Src/image/save.bmp b/Src/image/save.bmp
new file mode 100644 (file)
index 0000000..09e3fed
Binary files /dev/null and b/Src/image/save.bmp differ
diff --git a/Src/image/tool.bmp b/Src/image/tool.bmp
new file mode 100644 (file)
index 0000000..10f1a7c
Binary files /dev/null and b/Src/image/tool.bmp differ
diff --git a/Src/image/toolbar.bmp b/Src/image/toolbar.bmp
new file mode 100644 (file)
index 0000000..3bcd2f5
Binary files /dev/null and b/Src/image/toolbar.bmp differ
diff --git a/Src/image/toolbarlarge.bmp b/Src/image/toolbarlarge.bmp
new file mode 100644 (file)
index 0000000..fe60ae3
Binary files /dev/null and b/Src/image/toolbarlarge.bmp differ
diff --git a/Src/main.cpp b/Src/main.cpp
new file mode 100644 (file)
index 0000000..15ea179
--- /dev/null
@@ -0,0 +1,242 @@
+#include <windows.h>\r
+#include <commctrl.h>\r
+#include <tchar.h>\r
+#if defined(PLATFORM_PKTPC) || defined(PLATFORM_WM5)\r
+#include <aygshell.h>\r
+#endif\r
+\r
+#include "Tombo.h"\r
+#include "Message.h"\r
+#include "UniConv.h"\r
+#include "VarBuffer.h"\r
+#include "MainFrame.h"\r
+#include "Property.h"\r
+#include "Logger.h"\r
+#include "PasswordManager.h"\r
+#include "Message.h"\r
+\r
+//////////////////////////////////////\r
+// Global variables\r
+//////////////////////////////////////\r
+\r
+Property g_Property;\r
+HINSTANCE g_hInstance;\r
+Logger *g_pLogger;\r
+\r
+BOOL bDisableHotKey;\r
+\r
+PasswordManager *g_pPasswordManager = NULL;\r
+\r
+TomboMessage g_mMsgRes;\r
+\r
+//////////////////////////////////////\r
+// Declarations\r
+//////////////////////////////////////\r
+\r
+BOOL CheckAndRaiseAnotherTombo();\r
+BOOL ParseCmdLine(LPTSTR pCmdLine);\r
+\r
+extern "C" {\r
+       const char *CheckBlowFish();\r
+};\r
+\r
+//////////////////////////////////////\r
+// WinMain\r
+//////////////////////////////////////\r
+#ifndef UNIT_TEST\r
+int WINAPI WinMain(HINSTANCE hInst, HINSTANCE hPrev, LPTSTR pCmdLine, int nCmdShow)\r
+{\r
+       // initialize random seed\r
+       srand(GetTickCount());\r
+\r
+       // load message resources.\r
+       g_mMsgRes.Init();\r
+\r
+       // Check other Tombo.exe is executed\r
+       if (CheckAndRaiseAnotherTombo()) {\r
+               return 0;\r
+       }\r
+\r
+       // Check BLOWFISH library\r
+       const char *p = CheckBlowFish();\r
+       if (p != NULL) {\r
+               TCHAR buf[1024];\r
+               LPTSTR pMsg = ConvSJIS2Unicode(p);\r
+               if (pMsg) {\r
+                       wsprintf(buf, MSG_CHECKBF_FAILED, pMsg);\r
+               } else {\r
+                       wsprintf(buf, MSG_CHECKBF_FAILED, TEXT("unknown"));\r
+               }\r
+               MessageBox(NULL, buf, MSG_CHECKBF_TTL, MB_ICONWARNING | MB_OK);\r
+               delete [] pMsg;\r
+       }\r
+\r
+       // Check command line strings\r
+       ParseCmdLine(pCmdLine);\r
+\r
+       // initialize logger\r
+       g_pLogger = &g_Logger;\r
+       // if write debug log, comment out two lines:\r
+//     g_Logger.Init(TEXT("C:\\temp\\TomboLog.txt"));\r
+//     TomboMessageBox(NULL, TEXT("Log mode is ON"), TEXT("DEBUG"), MB_OK);\r
+\r
+       bDisableHotKey = FALSE;\r
+\r
+#if defined(PLATFORM_PSPC) || defined(PLATFORM_PKTPC) || defined(PLATFORM_BE500) || defined(PLATFORM_WM5)\r
+       InitCommonControls();\r
+#endif\r
+#if defined(PLATFORM_WIN32) || defined(PLATFORM_HPC)\r
+       // initialize rebar control\r
+   INITCOMMONCONTROLSEX icex;\r
+   icex.dwSize = sizeof(INITCOMMONCONTROLSEX);\r
+   icex.dwICC   = ICC_COOL_CLASSES|ICC_BAR_CLASSES;\r
+   InitCommonControlsEx(&icex);\r
+#endif\r
+\r
+#if defined(PLATFORM_PKTPC) || defined(PLATFORM_WM5)\r
+       SHInitExtraControls();\r
+#endif\r
+\r
+       // create MainFrame instance\r
+       MainFrame frmMain;\r
+       MainFrame::RegisterClass(hInst);\r
+\r
+       g_hInstance = hInst;\r
+\r
+       // load properties\r
+       BOOL bResult;\r
+       bResult = g_Property.Load();\r
+       if (!bResult || g_Property.IsNeedAskUser()) {\r
+               BOOL bPrev = bDisableHotKey;\r
+               bDisableHotKey = TRUE;\r
+               DWORD nResult = g_Property.Popup(hInst, NULL, NULL);\r
+               bDisableHotKey = bPrev;\r
+               if (nResult == IDCANCEL) {\r
+                       return 1;\r
+               }\r
+       }\r
+       frmMain.Create(TOMBO_APP_NAME, hInst, nCmdShow);\r
+\r
+       // go message loop\r
+       int res = frmMain.MainLoop();\r
+\r
+       g_Logger.Close();\r
+       return res;\r
+}\r
+#endif\r
+\r
+//////////////////////////////////////\r
+// Mutial execute check function\r
+//////////////////////////////////////\r
+\r
+static BOOL CALLBACK EnumProc(HWND hWnd, LPARAM lParam)\r
+{\r
+       TCHAR buf[1024];\r
+       GetClassName(hWnd, buf, 1024);\r
+       if (_tcscmp(buf, TOMBO_MAIN_FRAME_WINDOW_CLSS) == 0) {\r
+\r
+               // send message to elder instanse\r
+               SendMessage(hWnd, MWM_RAISE_MAINFRAME, 0, 0);\r
+               *(BOOL*)lParam = TRUE;\r
+       }\r
+       return TRUE;\r
+}\r
+\r
+//////////////////////////////////////\r
+// Check mutual execution\r
+//////////////////////////////////////\r
+//\r
+// Enum window and check Tombo's window.\r
+// Raise window and exit if exists.\r
+//\r
+// statically say, we should use Mutex but...\r
+\r
+static BOOL CheckAndRaiseAnotherTombo()\r
+{\r
+       BOOL bExist = FALSE;\r
+       EnumWindows((WNDENUMPROC)EnumProc, (WPARAM)&bExist);\r
+       return bExist;\r
+}\r
+\r
+//////////////////////////////////////\r
+// Message box\r
+//////////////////////////////////////\r
+//\r
+// Disable hotkey version\r
+\r
+int TomboMessageBox(HWND hWnd, LPCTSTR pText, LPCTSTR pCaption, UINT uType) \r
+{\r
+       BOOL bPrev = bDisableHotKey;\r
+       bDisableHotKey = TRUE;\r
+       int nResult = MessageBox(hWnd, pText, pCaption, uType);\r
+       bDisableHotKey = bPrev;\r
+       return nResult;\r
+}\r
+\r
+//////////////////////////////////////\r
+// Parse command line string\r
+//////////////////////////////////////\r
+BOOL GetDefaultFolder(LPTSTR pCmdLine, LPDWORD pStart, LPDWORD pEnd, LPTSTR *ppNext);\r
+\r
+BOOL ParseCmdLine(LPTSTR pCmdLine)\r
+{\r
+       LPTSTR p = pCmdLine;\r
+       while (*p) {\r
+               if (*p == TEXT('-')) {\r
+                       if (_tcsnicmp(p+1, TEXT("root="), 5) == 0) {\r
+                               DWORD nStart, nEnd;\r
+                               LPTSTR pNext;\r
+                               if (GetDefaultFolder(p + 6, &nStart, &nEnd, &pNext)) {\r
+                                       g_Property.SetCmdLineAssignedTomboRoot(p + 6 + nStart, nEnd - nStart);\r
+                               }\r
+                               p = pNext;\r
+//                     } else if (_tcsnicmp(p+1, TEXT("ro"), 2) == 0) {\r
+//                             g_Property.SetDefaultROMode(TRUE);\r
+                       }\r
+               }\r
+               p = CharNext(p);\r
+       }\r
+       return TRUE;\r
+}\r
+\r
+BOOL GetDefaultFolder(LPTSTR pCmdLine, LPDWORD pStart, LPDWORD pEnd, LPTSTR *ppNext)\r
+{\r
+       LPTSTR p = pCmdLine;\r
+       BOOL bQuoted = FALSE;\r
+\r
+       // Is quoted?\r
+       if (*p == TEXT('"')) {\r
+               bQuoted = TRUE;\r
+               p++;\r
+       }\r
+       *pStart = p - pCmdLine;\r
+\r
+       BOOL bBreak = FALSE;\r
+       while(*p) {\r
+               if (!bQuoted && *p == TEXT(' ')) {\r
+                       bBreak = TRUE;\r
+                       break;\r
+               }\r
+               if (bQuoted && *p == TEXT('"')) {\r
+                       bBreak = TRUE;\r
+                       break;\r
+               }\r
+               p = CharNext(p);\r
+       }\r
+       if (bQuoted) {\r
+               if (*p != TEXT('"')) {\r
+                       *ppNext = p; // may be EOL\r
+                       return FALSE;\r
+               }\r
+               *ppNext = p + 1;\r
+               *pEnd = p - pCmdLine;\r
+               return TRUE;\r
+       } else {\r
+               *ppNext = p;\r
+               *pEnd = p - pCmdLine;\r
+               return TRUE;\r
+       }\r
+\r
+\r
+       return TRUE;\r
+}
\ No newline at end of file
diff --git a/Src/regex/config.h b/Src/regex/config.h
new file mode 100644 (file)
index 0000000..6a0475d
--- /dev/null
@@ -0,0 +1,30 @@
+#ifndef TOMBO_CONFIG_FOR_REGEX\r
+#define TOMBO_CONFIG_FOR_REGEX\r
+\r
+#define HAVE_STRING_H\r
+#define HAVE_PROTOTYPES\r
+#define NO_ALLOCA\r
+#define STDC_HEADERS\r
+\r
+//sys/types.h\82Í\91\8dÝ\82¹\82¸\r
+#include <tchar.h>\r
+\r
+unsigned long scan_oct(const char *start, int len, int *retlen);\r
+unsigned long scan_hex(const char *start, int len, int *retlen);\r
+\r
+#define snprintf _snprintf\r
+\r
+void *xmalloc(size_t siz);\r
+void *xrealloc(void *p, size_t siz);\r
+void xfree(void *p);\r
+\r
+#include <ctype.h>\r
+\r
+#if defined(PLATFORM_HPC) || defined(PLATFORM_PSPC)\r
+#include "ctypeutil.h"\r
+#endif\r
+\r
+#if defined(PLATFORM_WIN32)\r
+#include <malloc.h>\r
+#endif\r
+#endif
\ No newline at end of file
diff --git a/Src/regex/ctypeutil.c b/Src/regex/ctypeutil.c
new file mode 100644 (file)
index 0000000..2d4d9ba
--- /dev/null
@@ -0,0 +1,29 @@
+#include <windows.h>\r
+#include "ctypeutil.h"\r
+\r
+// int isalnum(int);\r
+\r
+static unsigned char pattern[256] = {\r
+0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x24, 0x24, 0x24, 0x24, 0x24, 0x04, 0x04, \r
+0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, \r
+0x21, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, \r
+0x83, 0x83, 0x83, 0x83, 0x83, 0x83, 0x83, 0x83, 0x83, 0x83, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, \r
+0x11, 0xc1, 0xc1, 0xc1, 0xc1, 0xc1, 0xc1, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, \r
+0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x11, 0x11, 0x11, 0x11, 0x11, \r
+0x11, 0x89, 0x89, 0x89, 0x89, 0x89, 0x89, 0x09, 0x09, 0x09, 0x09, 0x09, 0x09, 0x09, 0x09, 0x09, \r
+0x09, 0x09, 0x09, 0x09, 0x09, 0x09, 0x09, 0x09, 0x09, 0x09, 0x09, 0x11, 0x11, 0x11, 0x11, 0x04, \r
+0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, \r
+0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, \r
+0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, \r
+0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, \r
+0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, \r
+0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, \r
+0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, \r
+0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00\r
+};\r
+\r
+int isctype(int c, int t)\r
+{\r
+       if (c < 0 || c > 0xFF) return 0;\r
+       return pattern[c] & t;\r
+}
\ No newline at end of file
diff --git a/Src/regex/ctypeutil.h b/Src/regex/ctypeutil.h
new file mode 100644 (file)
index 0000000..5b8a941
--- /dev/null
@@ -0,0 +1,28 @@
+#ifndef _CTYPEUTIL_H\r
+#define _CTYPEUTIL_H\r
+\r
+// MBCS\94Åctype\8cÝ\8a·\83\8b\81[\83`\83\93\r
+// CE2.11\82É\82Í\91\8dÝ\82µ\82Ä\82¢\82È\82¢\81B\8d¢\82Á\82½\82à\82Ì\82¾...\r
+\r
+#define CTUTIL_PRINT  1\r
+#define CTUTIL_DIGIT  (CTUTIL_PRINT << 1)\r
+#define CTUTIL_CNTRL  (CTUTIL_PRINT << 2)\r
+#define CTUTIL_LOWER  (CTUTIL_PRINT << 3)\r
+#define CTUTIL_PUNCT  (CTUTIL_PRINT << 4)\r
+#define CTUTIL_SPACE  (CTUTIL_PRINT << 5)\r
+#define CTUTIL_UPPER  (CTUTIL_PRINT << 6)\r
+#define CTUTIL_XDIGIT (CTUTIL_PRINT << 7)\r
+\r
+int isctype(int c, int t);\r
+#define isalnum(c)     (isctype(c, CTUTIL_UPPER | CTUTIL_LOWER | CTUTIL_DIGIT))\r
+#define isspace(c)     (isctype(c, CTUTIL_SPACE))\r
+#define isdigit(c)     (isctype(c, CTUTIL_DIGIT))\r
+#define isalpha(c)     (isctype(c, CTUTIL_UPPER | CTUTIL_LOWER))\r
+#define iscntrl(c)     (isctype(c, CTUTIL_CNTRL))\r
+#define isprint(c)     (isctype(c, CTUTIL_PRINT))\r
+#define islower(c)     (isctype(c, CTUTIL_LOWER))\r
+#define ispunct(c)     (isctype(c, CTUTIL_PUNCT))\r
+#define isupper(c)     (isctype(c, CTUTIL_UPPER))\r
+#define isxdigit(c)    (isctype(c, CTUTIL_XDIGIT))\r
+\r
+#endif
\ No newline at end of file
diff --git a/Src/regex/regex.c b/Src/regex/regex.c
new file mode 100644 (file)
index 0000000..0811379
--- /dev/null
@@ -0,0 +1,4504 @@
+/* Extended regular expression matching and search library.\r
+   Copyright (C) 1993, 94, 95, 96, 97, 98 Free Software Foundation, Inc.\r
+\r
+   The GNU C Library is free software; you can redistribute it and/or\r
+   modify it under the terms of the GNU Library General Public License as\r
+   published by the Free Software Foundation; either version 2 of the\r
+   License, or (at your option) any later version.\r
+\r
+   The GNU C Library is distributed in the hope that it will be useful,\r
+   but WITHOUT ANY WARRANTY; without even the implied warranty of\r
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU\r
+   Library General Public License for more details.\r
+\r
+   You should have received a copy of the GNU Library General Public\r
+   License along with the GNU C Library; see the file COPYING.LIB.  If not,\r
+   write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,\r
+   Boston, MA 02111-1307, USA.  */\r
+/* Multi-byte extension added May, 1993 by t^2 (Takahiro Tanimoto)\r
+   Last change: May 21, 1993 by t^2  */\r
+/* removed gapped buffer support, multiple syntax support by matz <matz@nts.co.jp> */\r
+/* Perl5 extension added by matz <matz@caelum.co.jp> */\r
+/* UTF-8 extension added Jan 16 1999 by Yoshida Masato  <yoshidam@tau.bekkoame.ne.jp> */\r
+/* comment out sys/types.h for WinCE by hirami <tomohisa.hirami@nifty.com> */\r
+\r
+#include "config.h"\r
+\r
+#ifdef HAVE_STRING_H\r
+# include <string.h>\r
+#else\r
+# include <strings.h>\r
+#endif\r
+\r
+/* We write fatal error messages on standard error.  */\r
+#include <stdio.h>\r
+\r
+\r
+/* isalpha(3) etc. are used for the character classes.  */\r
+#include <ctype.h>\r
+\r
+#ifndef _WIN32_WCE\r
+/* sys/types.h is not exist on WinCE */\r
+#include <sys/types.h>\r
+#endif\r
+\r
+#ifndef PARAMS\r
+# if defined __GNUC__ || (defined __STDC__ && __STDC__)\r
+#  define PARAMS(args) args\r
+# else\r
+#  define PARAMS(args) ()\r
+# endif  /* GCC.  */\r
+#endif  /* Not PARAMS.  */\r
+\r
+#if defined(STDC_HEADERS)\r
+#if !defined(PLATFORM_BE500) && !defined(TOMBO)\r
+# include <stddef.h>\r
+#endif\r
+#else\r
+/* We need this for `regex.h', and perhaps for the Emacs include files.  */\r
+# include <sys/types.h>\r
+#endif\r
+\r
+#ifndef __STDC__\r
+# define volatile\r
+#endif\r
+\r
+#ifdef HAVE_PROTOTYPES\r
+# define _(args) args\r
+#else\r
+# define _(args) ()\r
+#endif\r
+\r
+#ifdef RUBY_PLATFORM\r
+#include "defines.h"\r
+\r
+# define RUBY\r
+extern int rb_prohibit_interrupt;\r
+extern int rb_trap_pending;\r
+void rb_trap_exec _((void));\r
+\r
+# define CHECK_INTS if (!rb_prohibit_interrupt) {\\r
+    if (rb_trap_pending) rb_trap_exec();\\r
+}\r
+\r
+#define xmalloc ruby_xmalloc\r
+#define xcalloc ruby_xcalloc\r
+#define xrealloc ruby_xrealloc\r
+#define xfree ruby_xfree\r
+\r
+void *xmalloc _((size_t));\r
+void *xcalloc _((size_t,size_t));\r
+void *xrealloc _((void*,size_t));\r
+void xfree _((void*));\r
+#endif\r
+\r
+/* Make alloca work the best possible way.  */\r
+#ifdef __GNUC__\r
+# ifndef atarist\r
+#  ifndef alloca\r
+#   define alloca __builtin_alloca\r
+#  endif\r
+# endif /* atarist */\r
+#else\r
+# if defined(HAVE_ALLOCA_H)\r
+#  include <alloca.h>\r
+# elif !defined(alloca)\r
+char *alloca();\r
+# endif\r
+#endif /* __GNUC__ */\r
+\r
+#ifdef _AIX\r
+#pragma alloca\r
+#endif\r
+\r
+#ifdef HAVE_STRING_H\r
+# include <string.h>\r
+#else\r
+# include <strings.h>\r
+#endif\r
+\r
+#ifdef C_ALLOCA\r
+#define FREE_VARIABLES() alloca(0)\r
+#else\r
+#define FREE_VARIABLES()\r
+#endif\r
+\r
+#define FREE_AND_RETURN_VOID(stackb)   do {                            \\r
+  FREE_VARIABLES();                                                    \\r
+  if (stackb != stacka) xfree(stackb);                                 \\r
+  return;                                                              \\r
+} while(0)\r
+\r
+#define FREE_AND_RETURN(stackb,val)    do {                            \\r
+  FREE_VARIABLES();                                                    \\r
+  if (stackb != stacka) xfree(stackb);                                 \\r
+  return(val);                                                         \\r
+} while(0)\r
+\r
+#define DOUBLE_STACK(type) do {                                                \\r
+  type *stackx;                                                                \\r
+  unsigned int xlen = stacke - stackb;                                         \\r
+  if (stackb == stacka) {                                              \\r
+    stackx = (type*)xmalloc(2 * xlen * sizeof(type));                  \\r
+    memcpy(stackx, stackb, xlen * sizeof (type));                      \\r
+  }                                                                    \\r
+  else {                                                               \\r
+    stackx = (type*)xrealloc(stackb, 2 * xlen * sizeof(type));         \\r
+  }                                                                    \\r
+  /* Rearrange the pointers. */                                                \\r
+  stackp = stackx + (stackp - stackb);                                 \\r
+  stackb = stackx;                                                     \\r
+  stacke = stackb + 2 * xlen;                                          \\r
+} while (0)\r
+\r
+#define RE_TALLOC(n,t)  ((t*)alloca((n)*sizeof(t)))\r
+#define TMALLOC(n,t)    ((t*)xmalloc((n)*sizeof(t)))\r
+#define TREALLOC(s,n,t) (s=((t*)xrealloc(s,(n)*sizeof(t))))\r
+\r
+#define EXPAND_FAIL_STACK() DOUBLE_STACK(unsigned char*)\r
+#define ENSURE_FAIL_STACK(n)                                           \\r
+  do {                                                                 \\r
+    if (stacke - stackp <= (n)) {                                      \\r
+       /* if (len > re_max_failures * MAX_NUM_FAILURE_ITEMS)           \\r
+          {                                                            \\r
+          FREE_AND_RETURN(stackb,(-2));                                \\r
+          }*/                                                          \\r
+                                                                       \\r
+        /* Roughly double the size of the stack.  */                   \\r
+        EXPAND_FAIL_STACK();                                           \\r
+      }                                                                        \\r
+  } while (0)\r
+\r
+/* Get the interface, including the syntax bits.  */\r
+#include "regex.h"\r
+\r
+/* Subroutines for re_compile_pattern.  */\r
+static void store_jump _((char*, int, char*));\r
+static void insert_jump _((int, char*, char*, char*));\r
+static void store_jump_n _((char*, int, char*, unsigned));\r
+static void insert_jump_n _((int, char*, char*, char*, unsigned));\r
+static void insert_op _((int, char*, char*));\r
+static void insert_op_2 _((int, char*, char*, int, int));\r
+static int memcmp_translate _((unsigned char*, unsigned char*, int));\r
+\r
+/* Define the syntax stuff, so we can do the \<, \>, etc.  */\r
+\r
+/* This must be nonzero for the wordchar and notwordchar pattern\r
+   commands in re_match.  */\r
+#define Sword  1\r
+#define Sword2 2\r
+\r
+#define SYNTAX(c) re_syntax_table[c]\r
+\r
+static char re_syntax_table[256];\r
+static void init_syntax_once _((void));\r
+static const unsigned char *translate = 0;\r
+static void init_regs _((struct re_registers*, unsigned int));\r
+static void bm_init_skip _((int *, unsigned char*, int, const unsigned char*));\r
+static int current_mbctype = MBCTYPE_ASCII;\r
+\r
+#undef P\r
+\r
+#ifdef RUBY\r
+#include "util.h"\r
+#endif\r
+\r
+static void\r
+init_syntax_once()\r
+{\r
+   register int c;\r
+   static int done = 0;\r
+\r
+   if (done)\r
+     return;\r
+\r
+   memset(re_syntax_table, 0, sizeof re_syntax_table);\r
+\r
+   for (c=0; c<=0x7f; c++)\r
+     if (isalnum(c)) \r
+       re_syntax_table[c] = Sword;\r
+   re_syntax_table['_'] = Sword;\r
+\r
+   for (c=0x80; c<=0xff; c++)\r
+     if (isalnum(c)) \r
+       re_syntax_table[c] = Sword2;\r
+   done = 1;\r
+}\r
+\r
+void\r
+re_set_casetable(table)\r
+     const char *table;\r
+{\r
+  translate = (const unsigned char*)table;\r
+}\r
+\r
+/* Jim Meyering writes:\r
+\r
+   "... Some ctype macros are valid only for character codes that\r
+   isascii says are ASCII (SGI's IRIX-4.0.5 is one such system --when\r
+   using /bin/cc or gcc but without giving an ansi option).  So, all\r
+   ctype uses should be through macros like ISPRINT...  If\r
+   STDC_HEADERS is defined, then autoconf has verified that the ctype\r
+   macros don't need to be guarded with references to isascii. ...\r
+   Defining isascii to 1 should let any compiler worth its salt\r
+   eliminate the && through constant folding."\r
+   Solaris defines some of these symbols so we must undefine them first.  */\r
+\r
+#undef ISASCII\r
+#if defined STDC_HEADERS || (!defined isascii && !defined HAVE_ISASCII)\r
+# define ISASCII(c) 1\r
+#else\r
+# define ISASCII(c) isascii(c)\r
+#endif\r
+\r
+#ifdef isblank\r
+# define ISBLANK(c) (ISASCII(c) && isblank(c))\r
+#else\r
+# define ISBLANK(c) ((c) == ' ' || (c) == '\t')\r
+#endif\r
+#ifdef isgraph\r
+# define ISGRAPH(c) (ISASCII(c) && isgraph(c))\r
+#else\r
+# define ISGRAPH(c) (ISASCII(c) && isprint(c) && !isspace(c))\r
+#endif\r
+\r
+#undef ISPRINT\r
+#define ISPRINT(c) (ISASCII(c) && isprint(c))\r
+#define ISDIGIT(c) (ISASCII(c) && isdigit(c))\r
+#define ISALNUM(c) (ISASCII(c) && isalnum(c))\r
+#define ISALPHA(c) (ISASCII(c) && isalpha(c))\r
+#define ISCNTRL(c) (ISASCII(c) && iscntrl(c))\r
+#define ISLOWER(c) (ISASCII(c) && islower(c))\r
+#define ISPUNCT(c) (ISASCII(c) && ispunct(c))\r
+#define ISSPACE(c) (ISASCII(c) && isspace(c))\r
+#define ISUPPER(c) (ISASCII(c) && isupper(c))\r
+#define ISXDIGIT(c) (ISASCII(c) && isxdigit(c))\r
+\r
+#ifndef NULL\r
+# define NULL (void *)0\r
+#endif\r
+\r
+/* We remove any previous definition of `SIGN_EXTEND_CHAR',\r
+   since ours (we hope) works properly with all combinations of\r
+   machines, compilers, `char' and `unsigned char' argument types.\r
+   (Per Bothner suggested the basic approach.)  */\r
+#undef SIGN_EXTEND_CHAR\r
+#if __STDC__\r
+# define SIGN_EXTEND_CHAR(c) ((signed char)(c))\r
+#else  /* not __STDC__ */\r
+/* As in Harbison and Steele.  */\r
+# define SIGN_EXTEND_CHAR(c) ((((unsigned char)(c)) ^ 128) - 128)\r
+#endif\r
+\r
+/* These are the command codes that appear in compiled regular\r
+   expressions, one per byte.  Some command codes are followed by\r
+   argument bytes.  A command code can specify any interpretation\r
+   whatsoever for its arguments.  Zero-bytes may appear in the compiled\r
+   regular expression.\r
+\r
+   The value of `exactn' is needed in search.c (search_buffer) in emacs.\r
+   So regex.h defines a symbol `RE_EXACTN_VALUE' to be 1; the value of\r
+   `exactn' we use here must also be 1.  */\r
+\r
+enum regexpcode\r
+  {\r
+    unused=0,\r
+    exactn=1, /* Followed by one byte giving n, then by n literal bytes.  */\r
+    begline,  /* Fail unless at beginning of line.  */\r
+    endline,  /* Fail unless at end of line.  */\r
+    begbuf,   /* Succeeds if at beginning of buffer (if emacs) or at beginning\r
+                 of string to be matched (if not).  */\r
+    endbuf,   /* Analogously, for end of buffer/string.  */\r
+    endbuf2,  /* End of buffer/string, or newline just before it.  */\r
+    begpos,   /* Matches where last scan//gsub left off.  */\r
+    jump,     /* Followed by two bytes giving relative address to jump to.  */\r
+    jump_past_alt,/* Same as jump, but marks the end of an alternative.  */\r
+    on_failure_jump,    /* Followed by two bytes giving relative address of \r
+                           place to resume at in case of failure.  */\r
+    finalize_jump,      /* Throw away latest failure point and then jump to \r
+                           address.  */\r
+    maybe_finalize_jump, /* Like jump but finalize if safe to do so.\r
+                           This is used to jump back to the beginning\r
+                           of a repeat.  If the command that follows\r
+                           this jump is clearly incompatible with the\r
+                           one at the beginning of the repeat, such that\r
+                           we can be sure that there is no use backtracking\r
+                           out of repetitions already completed,\r
+                           then we finalize.  */\r
+    dummy_failure_jump,  /* Jump, and push a dummy failure point. This \r
+                           failure point will be thrown away if an attempt \r
+                            is made to use it for a failure. A + construct \r
+                            makes this before the first repeat.  Also\r
+                            use it as an intermediary kind of jump when\r
+                            compiling an or construct.  */\r
+    push_dummy_failure, /* Push a dummy failure point and continue.  Used at the end of\r
+                          alternatives.  */\r
+    succeed_n,  /* Used like on_failure_jump except has to succeed n times;\r
+                   then gets turned into an on_failure_jump. The relative\r
+                    address following it is useless until then.  The\r
+                    address is followed by two bytes containing n.  */\r
+    jump_n,     /* Similar to jump, but jump n times only; also the relative\r
+                   address following is in turn followed by yet two more bytes\r
+                    containing n.  */\r
+    try_next,    /* Jump to next pattern for the first time,\r
+                   leaving this pattern on the failure stack. */\r
+    finalize_push,     /* Finalize stack and push the beginning of the pattern\r
+                          on the stack to retry (used for non-greedy match) */\r
+    finalize_push_n,   /* Similar to finalize_push, buf finalize n time only */\r
+    set_number_at,     /* Set the following relative location to the\r
+                          subsequent number.  */\r
+    anychar,    /* Matches any (more or less) one character excluding newlines.  */\r
+    anychar_repeat,     /* Matches sequence of characters excluding newlines.  */\r
+    charset,     /* Matches any one char belonging to specified set.\r
+                   First following byte is number of bitmap bytes.\r
+                   Then come bytes for a bitmap saying which chars are in.\r
+                   Bits in each byte are ordered low-bit-first.\r
+                   A character is in the set if its bit is 1.\r
+                   A character too large to have a bit in the map\r
+                   is automatically not in the set.  */\r
+    charset_not, /* Same parameters as charset, but match any character\r
+                    that is not one of those specified.  */\r
+    start_memory, /* Start remembering the text that is matched, for\r
+                   storing in a memory register.  Followed by one\r
+                    byte containing the register number.  Register numbers\r
+                    must be in the range 0 through RE_NREGS.  */\r
+    stop_memory, /* Stop remembering the text that is matched\r
+                   and store it in a memory register.  Followed by\r
+                    one byte containing the register number. Register\r
+                    numbers must be in the range 0 through RE_NREGS.  */\r
+    start_paren,    /* Place holder at the start of (?:..). */\r
+    stop_paren,    /* Place holder at the end of (?:..). */\r
+    casefold_on,   /* Turn on casefold flag. */\r
+    casefold_off,  /* Turn off casefold flag. */\r
+    option_set,           /* Turn on multi line match (match with newlines). */\r
+    start_nowidth, /* Save string point to the stack. */\r
+    stop_nowidth,  /* Restore string place at the point start_nowidth. */\r
+    pop_and_fail,  /* Fail after popping nowidth entry from stack. */\r
+    stop_backtrack,  /* Restore backtrack stack at the point start_nowidth. */\r
+    duplicate,   /* Match a duplicate of something remembered.\r
+                   Followed by one byte containing the index of the memory \r
+                    register.  */\r
+    wordchar,    /* Matches any word-constituent character.  */\r
+    notwordchar, /* Matches any char that is not a word-constituent.  */\r
+    wordbeg,    /* Succeeds if at word beginning.  */\r
+    wordend,    /* Succeeds if at word end.  */\r
+    wordbound,   /* Succeeds if at a word boundary.  */\r
+    notwordbound /* Succeeds if not at a word boundary.  */\r
+  };\r
+\r
+\r
+/* Number of failure points to allocate space for initially,\r
+   when matching.  If this number is exceeded, more space is allocated,\r
+   so it is not a hard limit.  */\r
+\r
+#ifndef NFAILURES\r
+#define NFAILURES 160\r
+#endif\r
+\r
+/* Store NUMBER in two contiguous bytes starting at DESTINATION.  */\r
+#define STORE_NUMBER(destination, number)                              \\r
+  do { (destination)[0] = (number) & 0377;                             \\r
+    (destination)[1] = (number) >> 8; } while (0)\r
+\r
+/* Same as STORE_NUMBER, except increment the destination pointer to\r
+   the byte after where the number is stored.  Watch out that values for\r
+   DESTINATION such as p + 1 won't work, whereas p will.  */\r
+#define STORE_NUMBER_AND_INCR(destination, number)                     \\r
+  do { STORE_NUMBER(destination, number);                              \\r
+    (destination) += 2; } while (0)\r
+\r
+\r
+/* Put into DESTINATION a number stored in two contingous bytes starting\r
+   at SOURCE.  */\r
+#define EXTRACT_NUMBER(destination, source)                            \\r
+  do { (destination) = *(source) & 0377;                               \\r
+    (destination) += SIGN_EXTEND_CHAR(*(char*)((source) + 1)) << 8; } while (0)\r
+\r
+/* Same as EXTRACT_NUMBER, except increment the pointer for source to\r
+   point to second byte of SOURCE.  Note that SOURCE has to be a value\r
+   such as p, not, e.g., p + 1. */\r
+#define EXTRACT_NUMBER_AND_INCR(destination, source)                   \\r
+  do { EXTRACT_NUMBER(destination, source);                            \\r
+       (source) += 2; } while (0)\r
+\r
+\r
+/* Specify the precise syntax of regexps for compilation.  This provides\r
+   for compatibility for various utilities which historically have\r
+   different, incompatible syntaxes.\r
+\r
+   The argument SYNTAX is a bit-mask comprised of the various bits\r
+   defined in regex.h.  */\r
+\r
+long\r
+re_set_syntax(syntax)\r
+  long syntax;\r
+{\r
+    /* obsolete */\r
+    return 0;\r
+}\r
+\r
+\f\r
+/* Macros for re_compile_pattern, which is found below these definitions.  */\r
+\r
+#define TRANSLATE_P() ((options&RE_OPTION_IGNORECASE) && translate)\r
+#define MAY_TRANSLATE() ((bufp->options&(RE_OPTION_IGNORECASE|RE_MAY_IGNORECASE)) && translate)\r
+/* Fetch the next character in the uncompiled pattern---translating it \r
+   if necessary.  Also cast from a signed character in the constant\r
+   string passed to us by the user to an unsigned char that we can use\r
+   as an array index (in, e.g., `translate').  */\r
+#define PATFETCH(c)                                                    \\r
+  do {if (p == pend) goto end_of_pattern;                              \\r
+    c = (unsigned char) *p++;                                          \\r
+    if (TRANSLATE_P()) c = (unsigned char)translate[c];        \\r
+  } while (0)\r
+\r
+/* Fetch the next character in the uncompiled pattern, with no\r
+   translation.  */\r
+#define PATFETCH_RAW(c)                                                        \\r
+  do {if (p == pend) goto end_of_pattern;                              \\r
+    c = (unsigned char)*p++;                                           \\r
+  } while (0)\r
+\r
+/* Go backwards one character in the pattern.  */\r
+#define PATUNFETCH p--\r
+\r
+#define MBC2WC(c, p)                                                   \\r
+  do {                                                                 \\r
+    if (current_mbctype == MBCTYPE_UTF8) {                             \\r
+      int n = mbclen(c) - 1;                                           \\r
+      c &= (1<<(BYTEWIDTH-2-n)) - 1;                                   \\r
+      while (n--) {                                                    \\r
+       c = c << 6 | (*p++ & ((1<<6)-1));                               \\r
+      }                                                                        \\r
+    }                                                                  \\r
+    else {                                                             \\r
+      c <<= 8;                                                         \\r
+      c |= (unsigned char)*(p)++;                                      \\r
+    }                                                                  \\r
+  } while (0)\r
+\r
+#define PATFETCH_MBC(c)                                                        \\r
+  do {                                                                 \\r
+    if (p + mbclen(c) - 1 >= pend) goto end_of_pattern;                        \\r
+    MBC2WC(c, p);                                                      \\r
+  } while(0)\r
+\r
+#define WC2MBC1ST(c)                                                   \\r
+ ((current_mbctype != MBCTYPE_UTF8) ? ((c<0x100) ? (c) : (((c)>>8)&0xff)) : utf8_firstbyte(c))\r
+\r
+static unsigned int\r
+utf8_firstbyte(c)\r
+     unsigned long c;\r
+{\r
+  if (c < 0x80) return c;\r
+  if (c <= 0x7ff) return ((c>>6)&0xff)|0xc0;\r
+  if (c <= 0xffff) return ((c>>12)&0xff)|0xe0;\r
+  if (c <= 0x1fffff) return ((c>>18)&0xff)|0xf0;\r
+  if (c <= 0x3ffffff) return ((c>>24)&0xff)|0xf8;\r
+  if (c <= 0x7fffffff) return ((c>>30)&0xff)|0xfc;\r
+#if SIZEOF_INT > 4\r
+  if (c <= 0xfffffffff) return 0xfe;\r
+#else\r
+  return 0xfe;\r
+#endif\r
+}\r
+\r
+static void\r
+print_mbc(c)\r
+     unsigned int c;\r
+{\r
+  if (current_mbctype == MBCTYPE_UTF8) {\r
+    if (c < 0x80)\r
+      printf("%c", (int)c);\r
+    else if (c <= 0x7ff)\r
+      printf("%c%c", (int)utf8_firstbyte(c), (int)(c & 0x3f));\r
+    else if (c <= 0xffff)\r
+      printf("%c%c%c", (int)utf8_firstbyte(c), (int)((c >> 6) & 0x3f),\r
+            (int)(c & 0x3f));\r
+    else if (c <= 0x1fffff) \r
+      printf("%c%c%c%c", (int)utf8_firstbyte(c), (int)((c >> 12) & 0x3f),\r
+            (int)((c >> 6) & 0x3f), (int)(c & 0x3f));\r
+    else if (c <= 0x3ffffff)\r
+      printf("%c%c%c%c%c", (int)utf8_firstbyte(c), (int)((c >> 18) & 0x3f),\r
+            (int)((c >> 12) & 0x3f), (int)((c >> 6) & 0x3f), (int)(c & 0x3f));\r
+    else if (c <= 0x7fffffff)\r
+      printf("%c%c%c%c%c%c", (int)utf8_firstbyte(c), (int)((c >> 24) & 0x3f),\r
+            (int)((c >> 18) & 0x3f), (int)((c >> 12) & 0x3f),\r
+            (int)((c >> 6) & 0x3f), (int)(c & 0x3f));\r
+  }\r
+  else if (c < 0xff) {\r
+    printf("\\%o", (int)c);\r
+  }\r
+  else {\r
+    printf("%c%c", (int)(c >> BYTEWIDTH), (int)(c &0xff));\r
+  }\r
+}\r
+\r
+/* If the buffer isn't allocated when it comes in, use this.  */\r
+#define INIT_BUF_SIZE  28\r
+\r
+/* Make sure we have at least N more bytes of space in buffer.  */\r
+#define GET_BUFFER_SPACE(n)                                            \\r
+  do {                                                                 \\r
+    while (b - bufp->buffer + (n) >= bufp->allocated)                  \\r
+      EXTEND_BUFFER;                                                   \\r
+  } while (0)\r
+\r
+/* Make sure we have one more byte of buffer space and then add CH to it.  */\r
+#define BUFPUSH(ch)                                                    \\r
+  do {                                                                 \\r
+    GET_BUFFER_SPACE(1);                                               \\r
+    *b++ = (char)(ch);                                                 \\r
+  } while (0)\r
+\r
+/* Extend the buffer by twice its current size via reallociation and\r
+   reset the pointers that pointed into the old allocation to point to\r
+   the correct places in the new allocation.  If extending the buffer\r
+   results in it being larger than 1 << 16, then flag memory exhausted.  */\r
+#define EXTEND_BUFFER                                                  \\r
+  do { char *old_buffer = bufp->buffer;                                        \\r
+    if (bufp->allocated == (1L<<16)) goto too_big;                     \\r
+    bufp->allocated *= 2;                                              \\r
+    if (bufp->allocated > (1L<<16)) bufp->allocated = (1L<<16);                \\r
+    bufp->buffer = (char*)xrealloc(bufp->buffer, bufp->allocated);     \\r
+    if (bufp->buffer == 0)                                             \\r
+      goto memory_exhausted;                                           \\r
+    b = (b - old_buffer) + bufp->buffer;                               \\r
+    if (fixup_alt_jump)                                                        \\r
+      fixup_alt_jump = (fixup_alt_jump - old_buffer) + bufp->buffer;   \\r
+    if (laststart)                                                     \\r
+      laststart = (laststart - old_buffer) + bufp->buffer;             \\r
+    begalt = (begalt - old_buffer) + bufp->buffer;                     \\r
+    if (pending_exact)                                                 \\r
+      pending_exact = (pending_exact - old_buffer) + bufp->buffer;     \\r
+  } while (0)\r
+\r
+\r
+/* Set the bit for character C in a character set list.  */\r
+#define SET_LIST_BIT(c)                                                        \\r
+  (b[(unsigned char)(c) / BYTEWIDTH]                                   \\r
+   |= 1 << ((unsigned char)(c) % BYTEWIDTH))\r
+\r
+/* Get the next unsigned number in the uncompiled pattern.  */\r
+#define GET_UNSIGNED_NUMBER(num)                                       \\r
+  do { if (p != pend) {                                                \\r
+        PATFETCH(c);                                                   \\r
+       while (ISDIGIT(c)) {                                            \\r
+         if (num < 0)                                                  \\r
+            num = 0;                                                   \\r
+         num = num * 10 + c - '0';                                     \\r
+         if (p == pend)                                                \\r
+            break;                                                     \\r
+         PATFETCH(c);                                                  \\r
+       }                                                               \\r
+     }                                                                         \\r
+  } while (0)\r
+\r
+#define STREQ(s1, s2) ((strcmp(s1, s2) == 0))\r
+\r
+#define CHAR_CLASS_MAX_LENGTH  6 /* Namely, `xdigit'.  */\r
+\r
+#define IS_CHAR_CLASS(string)                                          \\r
+   (STREQ(string, "alpha") || STREQ(string, "upper")                   \\r
+    || STREQ(string, "lower") || STREQ(string, "digit")                        \\r
+    || STREQ(string, "alnum") || STREQ(string, "xdigit")               \\r
+    || STREQ(string, "space") || STREQ(string, "print")                        \\r
+    || STREQ(string, "punct") || STREQ(string, "graph")                        \\r
+    || STREQ(string, "cntrl") || STREQ(string, "blank"))\r
+\f\r
+#define STORE_MBC(p, c)                                                        \\r
+  do {                                                                 \\r
+    (p)[0] = (unsigned char)(((c) >>24) & 0xff);                       \\r
+    (p)[1] = (unsigned char)(((c) >>16) & 0xff);                       \\r
+    (p)[2] = (unsigned char)(((c) >> 8) & 0xff);                       \\r
+    (p)[3] = (unsigned char)(((c) >> 0) & 0xff);                       \\r
+  } while (0)\r
+\r
+#define STORE_MBC_AND_INCR(p, c)                                       \\r
+  do {                                                                 \\r
+    *(p)++ = (unsigned char)(((c) >>24) & 0xff);                       \\r
+    *(p)++ = (unsigned char)(((c) >>16) & 0xff);                       \\r
+    *(p)++ = (unsigned char)(((c) >> 8) & 0xff);                       \\r
+    *(p)++ = (unsigned char)(((c) >> 0) & 0xff);                       \\r
+  } while (0)\r
+\r
+#define EXTRACT_MBC(p)                                                         \\r
+  ((unsigned int)((unsigned char)(p)[0] << 24 |                                \\r
+                   (unsigned char)(p)[1] << 16 |                       \\r
+                    (unsigned char)(p)[2] <<  8 |                      \\r
+                   (unsigned char)(p)[3]))\r
+\r
+#define EXTRACT_MBC_AND_INCR(p)                                        \\r
+  ((unsigned int)((p) += 4,                                            \\r
+                   (unsigned char)(p)[-4] << 24 |                      \\r
+                   (unsigned char)(p)[-3] << 16 |                      \\r
+                    (unsigned char)(p)[-2] <<  8 |                     \\r
+                   (unsigned char)(p)[-1]))\r
+\r
+#define EXTRACT_UNSIGNED(p) \\r
+  ((unsigned char)(p)[0] | (unsigned char)(p)[1] << 8)\r
+#define EXTRACT_UNSIGNED_AND_INCR(p) \\r
+  ((p) += 2, (unsigned char)(p)[-2] | (unsigned char)(p)[-1] << 8)\r
+\r
+/* Handle (mb)?charset(_not)?.\r
+\r
+   Structure of mbcharset(_not)? in compiled pattern.\r
+\r
+     struct {\r
+       unsinged char id;               mbcharset(_not)?\r
+       unsigned char sbc_size;\r
+       unsigned char sbc_map[sbc_size];        same as charset(_not)? up to here.\r
+       unsigned short mbc_size;                number of intervals.\r
+       struct {\r
+        unsigned long beg;             beginning of interval.\r
+        unsigned long end;             end of interval.\r
+       } intervals[mbc_size];\r
+     }; */\r
+\r
+static void\r
+set_list_bits(c1, c2, b)\r
+    unsigned long c1, c2;\r
+    unsigned char *b;\r
+{\r
+  unsigned char sbc_size = b[-1];\r
+  unsigned short mbc_size = EXTRACT_UNSIGNED(&b[sbc_size]);\r
+  unsigned short beg, end, upb;\r
+\r
+  if (c1 > c2)\r
+    return;\r
+  b = &b[sbc_size + 2];\r
+\r
+  for (beg = 0, upb = mbc_size; beg < upb; ) {\r
+    unsigned short mid = (unsigned short)(beg + upb) >> 1;\r
+\r
+    if ((int)c1 - 1 > (int)EXTRACT_MBC(&b[mid*8+4]))\r
+      beg = mid + 1;\r
+    else\r
+      upb = mid;\r
+  }\r
+\r
+  for (end = beg, upb = mbc_size; end < upb; ) {\r
+    unsigned short mid = (unsigned short)(end + upb) >> 1;\r
+\r
+    if ((int)c2 >= (int)EXTRACT_MBC(&b[mid*8]) - 1)\r
+      end = mid + 1;\r
+    else\r
+      upb = mid;\r
+  }\r
+\r
+  if (beg != end) {\r
+    if (c1 > EXTRACT_MBC(&b[beg*8]))\r
+      c1 = EXTRACT_MBC(&b[beg*8]);\r
+    if (c2 < EXTRACT_MBC(&b[(end - 1)*8+4]))\r
+      c2 = EXTRACT_MBC(&b[(end - 1)*8+4]);\r
+  }\r
+  if (end < mbc_size && end != beg + 1)\r
+    /* NOTE: memcpy() would not work here.  */\r
+    memmove(&b[(beg + 1)*8], &b[end*8], (mbc_size - end)*8);\r
+  STORE_MBC(&b[beg*8 + 0], c1);\r
+  STORE_MBC(&b[beg*8 + 4], c2);\r
+  mbc_size += beg - end + 1;\r
+  STORE_NUMBER(&b[-2], mbc_size);\r
+}\r
+\r
+static int\r
+is_in_list(c, b)\r
+    unsigned long c;\r
+    const unsigned char *b;\r
+{\r
+  unsigned short size;\r
+  unsigned short i, j;\r
+\r
+  size = *b++;\r
+  if ((int)c / BYTEWIDTH < (int)size && b[c / BYTEWIDTH] & 1 << c % BYTEWIDTH) {\r
+    return 1;\r
+  }\r
+  b += size + 2;\r
+  size = EXTRACT_UNSIGNED(&b[-2]);\r
+  if (size == 0) return 0;\r
+\r
+  for (i = 0, j = size; i < j; ) {\r
+    unsigned short k = (unsigned short)(i + j) >> 1;\r
+\r
+    if (c > EXTRACT_MBC(&b[k*8+4]))\r
+      i = k + 1;\r
+    else\r
+      j = k;\r
+  }\r
+  if (i < size && EXTRACT_MBC(&b[i*8]) <= c\r
+      && ((unsigned char)c != '\n' && (unsigned char)c != '\0'))\r
+    return 1;\r
+  return 0;\r
+}\r
+\r
+static void\r
+print_partial_compiled_pattern(start, end)\r
+    unsigned char *start;\r
+    unsigned char *end;\r
+{\r
+  int mcnt, mcnt2;\r
+  unsigned char *p = start;\r
+  unsigned char *pend = end;\r
+\r
+  if (start == NULL) {\r
+    printf("(null)\n");\r
+    return;\r
+  }\r
+\r
+  /* Loop over pattern commands.  */\r
+  while (p < pend) {\r
+    switch ((enum regexpcode)*p++) {\r
+    case unused:\r
+      printf("/unused");\r
+      break;\r
+\r
+    case exactn:\r
+      mcnt = *p++;\r
+      printf("/exactn/%d", mcnt);\r
+      do {\r
+       putchar('/');\r
+       printf("%c", *p++);\r
+      }\r
+      while (--mcnt);\r
+      break;\r
+\r
+    case start_memory:\r
+      mcnt = *p++;\r
+      printf("/start_memory/%d/%d", mcnt, *p++);\r
+      break;\r
+\r
+    case stop_memory:\r
+      mcnt = *p++;\r
+      printf("/stop_memory/%d/%d", mcnt, *p++);\r
+      break;\r
+\r
+    case start_paren:\r
+      printf("/start_paren");\r
+      break;\r
+\r
+    case stop_paren:\r
+      printf("/stop_paren");\r
+      break;\r
+\r
+    case casefold_on:\r
+      printf("/casefold_on");\r
+      break;\r
+\r
+    case casefold_off:\r
+      printf("/casefold_off");\r
+      break;\r
+\r
+    case option_set:\r
+      printf("/option_set/%d", *p++);\r
+      break;\r
+\r
+    case start_nowidth:\r
+      EXTRACT_NUMBER_AND_INCR(mcnt, p);\r
+      printf("/start_nowidth//%d", mcnt);\r
+      break;\r
+\r
+    case stop_nowidth:\r
+      printf("/stop_nowidth//");\r
+      p += 2;\r
+      break;\r
+\r
+    case pop_and_fail:\r
+      printf("/pop_and_fail");\r
+      break;\r
+\r
+    case stop_backtrack:\r
+      printf("/stop_backtrack//");\r
+      p += 2;\r
+      break;\r
+\r
+    case duplicate:\r
+      printf("/duplicate/%d", *p++);\r
+      break;\r
+\r
+    case anychar:\r
+      printf("/anychar");\r
+      break;\r
+\r
+    case anychar_repeat:\r
+      printf("/anychar_repeat");\r
+      break;\r
+\r
+    case charset:\r
+    case charset_not:\r
+      {\r
+       register int c;\r
+\r
+       printf("/charset%s",\r
+              (enum regexpcode)*(p - 1) == charset_not ? "_not" : "");\r
+\r
+       mcnt = *p++;\r
+       printf("/%d", mcnt);\r
+       for (c = 0; c < mcnt; c++) {\r
+         unsigned bit;\r
+         unsigned char map_byte = p[c];\r
+\r
+         putchar ('/');\r
+\r
+         for (bit = 0; bit < BYTEWIDTH; bit++)\r
+           if (map_byte & (1 << bit))\r
+             printf("%c", c * BYTEWIDTH + bit);\r
+       }\r
+       p += mcnt;\r
+       mcnt = EXTRACT_UNSIGNED_AND_INCR(p);\r
+       printf("/");\r
+       while (mcnt--) {\r
+         print_mbc(EXTRACT_MBC_AND_INCR(p));\r
+         printf("-");\r
+         print_mbc(EXTRACT_MBC_AND_INCR(p));\r
+       }\r
+       break;\r
+      }\r
+\r
+    case begline:\r
+      printf("/begline");\r
+      break;\r
+\r
+    case endline:\r
+      printf("/endline");\r
+      break;\r
+\r
+    case on_failure_jump:\r
+      EXTRACT_NUMBER_AND_INCR(mcnt, p);\r
+      printf("/on_failure_jump//%d", mcnt);\r
+      break;\r
+\r
+    case dummy_failure_jump:\r
+      EXTRACT_NUMBER_AND_INCR(mcnt, p);\r
+      printf("/dummy_failure_jump//%d", mcnt);\r
+      break;\r
+\r
+    case push_dummy_failure:\r
+      printf("/push_dummy_failure");\r
+      break;\r
+\r
+    case finalize_jump:\r
+      EXTRACT_NUMBER_AND_INCR(mcnt, p);\r
+      printf("/finalize_jump//%d", mcnt);\r
+      break;\r
+\r
+    case maybe_finalize_jump:\r
+      EXTRACT_NUMBER_AND_INCR(mcnt, p);\r
+      printf("/maybe_finalize_jump//%d", mcnt);\r
+      break;\r
+\r
+    case jump_past_alt:\r
+      EXTRACT_NUMBER_AND_INCR(mcnt, p);\r
+      printf("/jump_past_alt//%d", mcnt);\r
+      break;\r
+\r
+    case jump:\r
+      EXTRACT_NUMBER_AND_INCR(mcnt, p);\r
+      printf("/jump//%d", mcnt);\r
+      break;\r
+\r
+    case succeed_n: \r
+      EXTRACT_NUMBER_AND_INCR(mcnt, p);\r
+      EXTRACT_NUMBER_AND_INCR(mcnt2, p);\r
+      printf("/succeed_n//%d//%d", mcnt, mcnt2);\r
+      break;\r
+\r
+    case jump_n: \r
+      EXTRACT_NUMBER_AND_INCR(mcnt, p);\r
+      EXTRACT_NUMBER_AND_INCR(mcnt2, p);\r
+      printf("/jump_n//%d//%d", mcnt, mcnt2);\r
+      break;\r
+\r
+    case set_number_at: \r
+      EXTRACT_NUMBER_AND_INCR(mcnt, p);\r
+      EXTRACT_NUMBER_AND_INCR(mcnt2, p);\r
+      printf("/set_number_at//%d//%d", mcnt, mcnt2);\r
+      break;\r
+\r
+    case try_next:\r
+      EXTRACT_NUMBER_AND_INCR(mcnt, p);\r
+      printf("/try_next//%d", mcnt);\r
+      break;\r
+\r
+    case finalize_push:\r
+      EXTRACT_NUMBER_AND_INCR(mcnt, p);\r
+      printf("/finalize_push//%d", mcnt);\r
+      break;\r
+\r
+    case finalize_push_n:\r
+      EXTRACT_NUMBER_AND_INCR(mcnt, p);\r
+      EXTRACT_NUMBER_AND_INCR(mcnt2, p);\r
+      printf("/finalize_push_n//%d//%d", mcnt, mcnt2);\r
+      break;\r
+\r
+    case wordbound:\r
+      printf("/wordbound");\r
+      break;\r
+\r
+    case notwordbound:\r
+      printf("/notwordbound");\r
+      break;\r
+\r
+    case wordbeg:\r
+      printf("/wordbeg");\r
+      break;\r
+\r
+    case wordend:\r
+      printf("/wordend");\r
+\r
+    case wordchar:\r
+      printf("/wordchar");\r
+      break;\r
+         \r
+    case notwordchar:\r
+      printf("/notwordchar");\r
+      break;\r
+\r
+    case begbuf:\r
+      printf("/begbuf");\r
+      break;\r
+\r
+    case endbuf:\r
+      printf("/endbuf");\r
+      break;\r
+\r
+    case endbuf2:\r
+      printf("/endbuf2");\r
+      break;\r
+\r
+    case begpos:\r
+      printf("/begpos");\r
+      break;\r
+\r
+    default:\r
+      printf("?%d", *(p-1));\r
+    }\r
+  }\r
+  printf("/\n");\r
+}\r
+\r
+\r
+static void\r
+print_compiled_pattern(bufp)\r
+     struct re_pattern_buffer *bufp;\r
+{\r
+  unsigned char *buffer = (unsigned char*)bufp->buffer;\r
+\r
+  print_partial_compiled_pattern(buffer, buffer + bufp->used);\r
+}\r
+\r
+static char*\r
+calculate_must_string(start, end)\r
+     char *start;\r
+     char *end;\r
+{\r
+  int mcnt;\r
+  int max = 0;\r
+  char *p = start;\r
+  char *pend = end;\r
+  char *must = 0;\r
+\r
+  if (start == NULL) return 0;\r
+\r
+  /* Loop over pattern commands.  */\r
+  while (p < pend) {\r
+    switch ((enum regexpcode)*p++) {\r
+    case unused:\r
+      break;\r
+\r
+    case exactn:\r
+      mcnt = *p;\r
+      if (mcnt > max) {\r
+       must = p;\r
+       max = mcnt;\r
+      }\r
+      p += mcnt+1;\r
+      break;\r
+\r
+    case start_memory:\r
+    case stop_memory:\r
+      p += 2;\r
+      break;\r
+\r
+    case duplicate:\r
+      p++;\r
+      break;\r
+\r
+    case casefold_on:\r
+    case casefold_off:\r
+      return 0;                /* should not check must_string */\r
+\r
+    case pop_and_fail:\r
+    case anychar:\r
+    case anychar_repeat:\r
+    case begline:\r
+    case endline:\r
+    case wordbound:\r
+    case notwordbound:\r
+    case wordbeg:\r
+    case wordend:\r
+    case wordchar:\r
+    case notwordchar:\r
+    case begbuf:\r
+    case endbuf:\r
+    case endbuf2:\r
+    case begpos:\r
+    case push_dummy_failure:\r
+    case start_paren:\r
+    case stop_paren:\r
+    case option_set:\r
+      break;\r
+\r
+    case charset:\r
+    case charset_not:\r
+      mcnt = *p++;\r
+      p += mcnt;\r
+      mcnt = EXTRACT_UNSIGNED_AND_INCR(p);\r
+      while (mcnt--) {\r
+       p += 4;\r
+      }\r
+      break;\r
+\r
+    case on_failure_jump:\r
+      EXTRACT_NUMBER_AND_INCR(mcnt, p);\r
+      if (mcnt > 0) p += mcnt;\r
+      if ((enum regexpcode)p[-3] == jump) {\r
+       p -= 2;\r
+       EXTRACT_NUMBER_AND_INCR(mcnt, p);\r
+       if (mcnt > 0) p += mcnt;\r
+      }\r
+      break;\r
+\r
+    case dummy_failure_jump:\r
+    case succeed_n: \r
+    case try_next:\r
+    case jump:\r
+      EXTRACT_NUMBER_AND_INCR(mcnt, p);\r
+      if (mcnt > 0) p += mcnt;\r
+      break;\r
+\r
+    case start_nowidth:\r
+    case stop_nowidth:\r
+    case stop_backtrack:\r
+    case finalize_jump:\r
+    case maybe_finalize_jump:\r
+    case finalize_push:\r
+      p += 2;\r
+      break;\r
+\r
+    case jump_n: \r
+    case set_number_at: \r
+    case finalize_push_n:\r
+      p += 4;\r
+      break;\r
+\r
+    default:\r
+      break;\r
+    }\r
+  }\r
+  return must;\r
+}\r
+\r
+static unsigned int\r
+read_backslash(c)\r
+     int c;\r
+{\r
+  switch (c) {\r
+  case 'n':\r
+    return '\n';\r
+\r
+  case 't':\r
+    return '\t';\r
+\r
+  case 'r':\r
+    return '\r';\r
+\r
+  case 'f':\r
+    return '\f';\r
+\r
+  case 'v':\r
+    return '\v';\r
+\r
+  case 'a':\r
+    return '\007';\r
+\r
+  case 'b':\r
+    return '\010';\r
+\r
+  case 'e':\r
+    return '\033';\r
+  }\r
+  return c;\r
+}\r
+\r
+static unsigned int\r
+read_special(p, pend, pp)\r
+     const char *p, *pend, **pp;\r
+{\r
+  int c;\r
+\r
+  PATFETCH_RAW(c);\r
+  switch (c) {\r
+  case 'M':\r
+    PATFETCH_RAW(c);\r
+    if (c != '-') return -1;\r
+    PATFETCH_RAW(c);\r
+    *pp = p;\r
+    if (c == '\\') {\r
+      return read_special(p, pend, pp) | 0x80;\r
+    }\r
+    else if (c == -1) return ~0;\r
+    else {\r
+      return ((c & 0xff) | 0x80);\r
+    }\r
+\r
+  case 'C':\r
+    PATFETCH_RAW(c);\r
+    if (c != '-') return ~0;\r
+  case 'c':\r
+    PATFETCH_RAW(c);\r
+    *pp = p;\r
+    if (c == '\\') {\r
+      c = read_special(p, pend, pp);\r
+    }\r
+    else if (c == '?') return 0177;\r
+    else if (c == -1) return ~0;\r
+    return c & 0x9f;\r
+  default:\r
+    return read_backslash(c);\r
+  }\r
+\r
+ end_of_pattern:\r
+  return ~0;\r
+}\r
+\r
+/* re_compile_pattern takes a regular-expression string\r
+   and converts it into a buffer full of byte commands for matching.\r
+\r
+   PATTERN   is the address of the pattern string\r
+   SIZE      is the length of it.\r
+   BUFP            is a  struct re_pattern_buffer *  which points to the info\r
+            on where to store the byte commands.\r
+            This structure contains a  char *  which points to the\r
+            actual space, which should have been obtained with malloc.\r
+            re_compile_pattern may use realloc to grow the buffer space.\r
+\r
+   The number of bytes of commands can be found out by looking in\r
+   the `struct re_pattern_buffer' that bufp pointed to, after\r
+   re_compile_pattern returns. */\r
+\r
+char *\r
+re_compile_pattern(pattern, size, bufp)\r
+     const char *pattern;\r
+     int size;\r
+     struct re_pattern_buffer *bufp;\r
+{\r
+  register char *b = bufp->buffer;\r
+  register const char *p = pattern;\r
+  const char *nextp;\r
+  const char *pend = pattern + size;\r
+  register unsigned int c, c1 = 0;\r
+  const char *p0;\r
+  int numlen;\r
+#define ERROR_MSG_MAX_SIZE 200\r
+  static char error_msg[ERROR_MSG_MAX_SIZE+1];\r
+\r
+  /* Address of the count-byte of the most recently inserted `exactn'\r
+     command.  This makes it possible to tell whether a new exact-match\r
+     character can be added to that command or requires a new `exactn'\r
+     command.  */\r
+\r
+  char *pending_exact = 0;\r
+\r
+  /* Address of the place where a forward-jump should go to the end of\r
+     the containing expression.  Each alternative of an `or', except the\r
+     last, ends with a forward-jump of this sort.  */\r
+\r
+  char *fixup_alt_jump = 0;\r
+\r
+  /* Address of start of the most recently finished expression.\r
+     This tells postfix * where to find the start of its operand.  */\r
+\r
+  char *laststart = 0;\r
+\r
+  /* In processing a repeat, 1 means zero matches is allowed.  */\r
+\r
+  char zero_times_ok;\r
+\r
+  /* In processing a repeat, 1 means many matches is allowed.  */\r
+\r
+  char many_times_ok;\r
+\r
+  /* In processing a repeat, 1 means non-greedy matches.  */\r
+\r
+  char greedy;\r
+\r
+  /* Address of beginning of regexp, or inside of last (.  */\r
+\r
+  char *begalt = b;\r
+\r
+  /* Place in the uncompiled pattern (i.e., the {) to\r
+     which to go back if the interval is invalid.  */\r
+  const char *beg_interval;\r
+\r
+  /* In processing an interval, at least this many matches must be made.  */\r
+  int lower_bound;\r
+\r
+  /* In processing an interval, at most this many matches can be made.  */\r
+  int upper_bound;\r
+\r
+  /* Stack of information saved by ( and restored by ).\r
+     Five stack elements are pushed by each (:\r
+     First, the value of b.\r
+     Second, the value of fixup_alt_jump.\r
+     Third, the value of begalt.\r
+     Fourth, the value of regnum.\r
+     Fifth, the type of the paren. */\r
+\r
+  int stacka[40];\r
+  int *stackb = stacka;\r
+  int *stackp = stackb;\r
+  int *stacke = stackb + 40;\r
+\r
+  /* Counts ('s as they are encountered.  Remembered for the matching ),\r
+     where it becomes the register number to put in the stop_memory\r
+     command.  */\r
+\r
+  int regnum = 1;\r
+\r
+  int range = 0;\r
+  int had_mbchar = 0;\r
+  int had_num_literal = 0;\r
+  int had_char_class = 0;\r
+\r
+  int options = bufp->options;\r
+\r
+  bufp->fastmap_accurate = 0;\r
+  bufp->must = 0;\r
+  bufp->must_skip = 0;\r
+\r
+  /* Initialize the syntax table.  */\r
+  init_syntax_once();\r
+\r
+  if (bufp->allocated == 0) {\r
+    bufp->allocated = INIT_BUF_SIZE;\r
+    if (bufp->buffer)\r
+      /* EXTEND_BUFFER loses when bufp->allocated is 0.  */\r
+      bufp->buffer = (char*)xrealloc(bufp->buffer, INIT_BUF_SIZE);\r
+    else\r
+      /* Caller did not allocate a buffer.  Do it for them.  */\r
+      bufp->buffer = (char*)xmalloc(INIT_BUF_SIZE);\r
+    if (!bufp->buffer) goto memory_exhausted;\r
+    begalt = b = bufp->buffer;\r
+  }\r
+\r
+  while (p != pend) {\r
+    PATFETCH(c);\r
+\r
+    switch (c) {\r
+    case '$':\r
+      if (bufp->options & RE_OPTION_SINGLELINE) {\r
+       BUFPUSH(endbuf);\r
+      }\r
+      else {\r
+       p0 = p;\r
+       /* When testing what follows the $,\r
+          look past the \-constructs that don't consume anything.  */\r
+\r
+       while (p0 != pend) {\r
+         if (*p0 == '\\' && p0 + 1 != pend\r
+             && (p0[1] == 'b' || p0[1] == 'B'))\r
+           p0 += 2;\r
+         else\r
+           break;\r
+       }\r
+       BUFPUSH(endline);\r
+      }\r
+      break;\r
+\r
+    case '^':\r
+      if (bufp->options & RE_OPTION_SINGLELINE)\r
+       BUFPUSH(begbuf);\r
+      else\r
+       BUFPUSH(begline);\r
+      break;\r
+\r
+    case '+':\r
+    case '?':\r
+    case '*':\r
+      /* If there is no previous pattern, char not special. */\r
+      if (!laststart) {\r
+       snprintf(error_msg, ERROR_MSG_MAX_SIZE, \r
+                "invalid regular expression; there's no previous pattern, to which '%c' would define cardinality at %d", \r
+                c, p-pattern);\r
+       FREE_AND_RETURN(stackb, error_msg);\r
+      }\r
+      /* If there is a sequence of repetition chars,\r
+        collapse it down to just one.  */\r
+      zero_times_ok = c != '+';\r
+      many_times_ok = c != '?';\r
+      greedy = 1;\r
+      if (p != pend) {\r
+       PATFETCH(c);\r
+       switch (c) {\r
+       case '?':\r
+         greedy = 0;\r
+         break;\r
+       case '*':\r
+       case '+':\r
+         goto nested_meta;\r
+       default:\r
+         PATUNFETCH;\r
+         break;\r
+       }\r
+      }\r
+\r
+    repeat:\r
+      /* Star, etc. applied to an empty pattern is equivalent\r
+        to an empty pattern.  */\r
+      if (!laststart)  \r
+       break;\r
+\r
+      if (greedy && many_times_ok && *laststart == anychar && b - laststart <= 2) {\r
+       if (b[-1] == stop_paren)\r
+         b--;\r
+       if (zero_times_ok)\r
+         *laststart = anychar_repeat;\r
+       else {\r
+         BUFPUSH(anychar_repeat);\r
+       }\r
+       break;\r
+      }\r
+      /* Now we know whether or not zero matches is allowed\r
+        and also whether or not two or more matches is allowed.  */\r
+      if (many_times_ok) {\r
+       /* If more than one repetition is allowed, put in at the\r
+          end a backward relative jump from b to before the next\r
+          jump we're going to put in below (which jumps from\r
+          laststart to after this jump).  */\r
+       GET_BUFFER_SPACE(3);\r
+       store_jump(b,greedy?maybe_finalize_jump:finalize_push,laststart-3);\r
+       b += 3;         /* Because store_jump put stuff here.  */\r
+      }\r
+\r
+      /* On failure, jump from laststart to next pattern, which will be the\r
+        end of the buffer after this jump is inserted.  */\r
+      GET_BUFFER_SPACE(3);\r
+      insert_jump(on_failure_jump, laststart, b + 3, b);\r
+      b += 3;\r
+\r
+      if (zero_times_ok) {\r
+       if (greedy == 0) {\r
+         GET_BUFFER_SPACE(3);\r
+         insert_jump(try_next, laststart, b + 3, b);\r
+         b += 3;\r
+       }\r
+      }\r
+      else {\r
+       /* At least one repetition is required, so insert a\r
+          `dummy_failure_jump' before the initial\r
+          `on_failure_jump' instruction of the loop. This\r
+          effects a skip over that instruction the first time\r
+          we hit that loop.  */\r
+       GET_BUFFER_SPACE(3);\r
+       insert_jump(dummy_failure_jump, laststart, laststart + 6, b);\r
+       b += 3;\r
+      }\r
+      break;\r
+\r
+    case '.':\r
+      laststart = b;\r
+      BUFPUSH(anychar);\r
+      break;\r
+\r
+    case '[':\r
+      if (p == pend)\r
+       FREE_AND_RETURN(stackb, "invalid regular expression; '[' can't be the last character ie. can't start range at the end of pattern");\r
+      while ((b - bufp->buffer + 9 + (1 << BYTEWIDTH) / BYTEWIDTH)\r
+            > bufp->allocated)\r
+       EXTEND_BUFFER;\r
+\r
+      laststart = b;\r
+      if (*p == '^') {\r
+       BUFPUSH(charset_not); \r
+       p++;\r
+      }\r
+      else\r
+       BUFPUSH(charset);\r
+      p0 = p;\r
+\r
+      BUFPUSH((1 << BYTEWIDTH) / BYTEWIDTH);\r
+      /* Clear the whole map */\r
+      memset(b, 0, (1 << BYTEWIDTH) / BYTEWIDTH + 2);\r
+\r
+      had_mbchar = 0;\r
+      had_num_literal = 0;\r
+      had_char_class = 0;\r
+\r
+      /* Read in characters and ranges, setting map bits.  */\r
+      for (;;) {\r
+       int size;\r
+       unsigned last = (unsigned)-1;\r
+\r
+       if ((size = EXTRACT_UNSIGNED(&b[(1 << BYTEWIDTH) / BYTEWIDTH]))\r
+           || current_mbctype) {\r
+         /* Ensure the space is enough to hold another interval\r
+            of multi-byte chars in charset(_not)?.  */\r
+         size = (1 << BYTEWIDTH) / BYTEWIDTH + 2 + size*8 + 8;\r
+         while (b + size + 1 > bufp->buffer + bufp->allocated)\r
+           EXTEND_BUFFER;\r
+       }\r
+      range_retry:\r
+       if (range && had_char_class) {\r
+         FREE_AND_RETURN(stackb, "invalid regular expression; can't use character class as an end value of range");\r
+       }\r
+       PATFETCH(c);\r
+\r
+       if (c == ']') {\r
+         if (p == p0 + 1) {\r
+           if (p == pend)\r
+             FREE_AND_RETURN(stackb, "invalid regular expression; empty character class");\r
+         }\r
+         else \r
+           /* Stop if this isn't merely a ] inside a bracket\r
+              expression, but rather the end of a bracket\r
+              expression.  */\r
+           break;\r
+       }\r
+       /* Look ahead to see if it's a range when the last thing\r
+          was a character class.  */\r
+       if (had_char_class && c == '-' && *p != ']')\r
+         FREE_AND_RETURN(stackb, "invalid regular expression; can't use character class as a start value of range");\r
+       if (ismbchar(c)) {\r
+         PATFETCH_MBC(c);\r
+         had_mbchar++;\r
+       }\r
+       had_char_class = 0;\r
+\r
+       /* \ escapes characters when inside [...].  */\r
+       if (c == '\\') {\r
+         PATFETCH_RAW(c);\r
+         switch (c) {\r
+         case 'w':\r
+           for (c = 0; c < (1 << BYTEWIDTH); c++) {\r
+             if (SYNTAX(c) == Sword ||\r
+                 (!current_mbctype && SYNTAX(c) == Sword2))\r
+               SET_LIST_BIT(c);\r
+           }\r
+           if (current_mbctype) {\r
+             set_list_bits(0x80, 0xffffffff, b);\r
+           }\r
+           had_char_class = 1;\r
+           last = -1;\r
+           continue;\r
+\r
+         case 'W':\r
+           for (c = 0; c < (1 << BYTEWIDTH); c++) {\r
+             if (SYNTAX(c) != Sword &&\r
+                 ((current_mbctype && !re_mbctab[c]) ||\r
+                 (!current_mbctype && SYNTAX(c) != Sword2)))\r
+               SET_LIST_BIT(c);\r
+           }\r
+           had_char_class = 1;\r
+           last = -1;\r
+           continue;\r
+\r
+         case 's':\r
+           for (c = 0; c < 256; c++)\r
+             if (ISSPACE(c))\r
+               SET_LIST_BIT(c);\r
+           had_char_class = 1;\r
+           last = -1;\r
+           continue;\r
+\r
+         case 'S':\r
+           for (c = 0; c < 256; c++)\r
+             if (!ISSPACE(c))\r
+               SET_LIST_BIT(c);\r
+           if (current_mbctype)\r
+             set_list_bits(0x80, 0xffffffff, b);\r
+           had_char_class = 1;\r
+           last = -1;\r
+           continue;\r
+\r
+         case 'd':\r
+           for (c = '0'; c <= '9'; c++)\r
+             SET_LIST_BIT(c);\r
+           had_char_class = 1;\r
+           last = -1;\r
+           continue;\r
+\r
+         case 'D':\r
+           for (c = 0; c < 256; c++)\r
+             if (!ISDIGIT(c))\r
+               SET_LIST_BIT(c);\r
+           if (current_mbctype)\r
+             set_list_bits(0x80, 0xffffffff, b);\r
+           had_char_class = 1;\r
+           last = -1;\r
+           continue;\r
+\r
+         case 'x':\r
+           c = scan_hex(p, 2, &numlen);\r
+           p += numlen;\r
+           had_num_literal = 1;\r
+           break;\r
+\r
+         case '0': case '1': case '2': case '3': case '4':\r
+         case '5': case '6': case '7': case '8': case '9':\r
+           PATUNFETCH;\r
+           c = scan_oct(p, 3, &numlen);\r
+           p += numlen;\r
+           had_num_literal = 1;\r
+           break;\r
+\r
+         case 'M':\r
+         case 'C':\r
+         case 'c':\r
+           {\r
+             char *pp;\r
+\r
+             --p;\r
+             c = read_special(p, pend, &pp);\r
+             if (c > 255) goto invalid_escape;\r
+             p = pp;\r
+             had_num_literal = 1;\r
+           }\r
+           break;\r
+\r
+         default:\r
+           c = read_backslash(c);\r
+           if (ismbchar(c)) {\r
+             PATFETCH_MBC(c);\r
+             had_mbchar++;\r
+           }\r
+           break;\r
+         }\r
+       }\r
+\r
+       /* Get a range.  */\r
+       if (range) {\r
+         if (last > c)\r
+           goto invalid_pattern;\r
+\r
+         range = 0;\r
+         if (had_mbchar == 0) {\r
+           for (;last<=c;last++)\r
+             SET_LIST_BIT(last);\r
+         }\r
+         else if (had_mbchar == 2) {\r
+           set_list_bits(last, c, b);\r
+         }\r
+         else {\r
+           /* restriction: range between sbc and mbc */\r
+           goto invalid_pattern;\r
+         }\r
+       }\r
+       else if (p[0] == '-' && p[1] != ']') {\r
+         last = c;\r
+         PATFETCH(c1);\r
+         range = 1;\r
+         goto range_retry;\r
+       }\r
+       else if (c == '[' && *p == ':') {\r
+         /* Leave room for the null.  */\r
+         char str[CHAR_CLASS_MAX_LENGTH + 1];\r
+\r
+         PATFETCH_RAW(c);\r
+         c1 = 0;\r
+\r
+         /* If pattern is `[[:'.  */\r
+         if (p == pend) \r
+           FREE_AND_RETURN(stackb, "invalid regular expression; re can't end '[[:'");\r
+\r
+         for (;;) {\r
+           PATFETCH (c);\r
+           if (c == ':' || c == ']' || p == pend\r
+               || c1 == CHAR_CLASS_MAX_LENGTH)\r
+             break;\r
+           str[c1++] = c;\r
+         }\r
+         str[c1] = '\0';\r
+\r
+         /* If isn't a word bracketed by `[:' and:`]':\r
+            undo the ending character, the letters, and leave \r
+            the leading `:' and `[' (but set bits for them).  */\r
+         if (c == ':' && *p == ']') {\r
+           int ch;\r
+           char is_alnum = STREQ(str, "alnum");\r
+           char is_alpha = STREQ(str, "alpha");\r
+           char is_blank = STREQ(str, "blank");\r
+           char is_cntrl = STREQ(str, "cntrl");\r
+           char is_digit = STREQ(str, "digit");\r
+           char is_graph = STREQ(str, "graph");\r
+           char is_lower = STREQ(str, "lower");\r
+           char is_print = STREQ(str, "print");\r
+           char is_punct = STREQ(str, "punct");\r
+           char is_space = STREQ(str, "space");\r
+           char is_upper = STREQ(str, "upper");\r
+           char is_xdigit = STREQ(str, "xdigit");\r
+\r
+           if (!IS_CHAR_CLASS(str)){\r
+             snprintf(error_msg, ERROR_MSG_MAX_SIZE, \r
+                      "invalid regular expression; [:%s:] is not a character class", str);\r
+             FREE_AND_RETURN(stackb, error_msg);\r
+           }\r
+\r
+           /* Throw away the ] at the end of the character class.  */\r
+           PATFETCH(c);\r
+\r
+           if (p == pend) \r
+             FREE_AND_RETURN(stackb, "invalid regular expression; range doesn't have ending ']' after a character class");\r
+\r
+           for (ch = 0; ch < 1 << BYTEWIDTH; ch++) {\r
+             if (   (is_alnum  && ISALNUM(ch))\r
+                 || (is_alpha  && ISALPHA(ch))\r
+                 || (is_blank  && ISBLANK(ch))\r
+                 || (is_cntrl  && ISCNTRL(ch))\r
+                 || (is_digit  && ISDIGIT(ch))\r
+                 || (is_graph  && ISGRAPH(ch))\r
+                 || (is_lower  && ISLOWER(ch))\r
+                 || (is_print  && ISPRINT(ch))\r
+                 || (is_punct  && ISPUNCT(ch))\r
+                 || (is_space  && ISSPACE(ch))\r
+                 || (is_upper  && ISUPPER(ch))\r
+                 || (is_xdigit && ISXDIGIT(ch)))\r
+               SET_LIST_BIT(ch);\r
+           }\r
+           had_char_class = 1;\r
+         }\r
+         else {\r
+           c1++;\r
+           while (c1--)    \r
+             PATUNFETCH;\r
+           SET_LIST_BIT(TRANSLATE_P()?translate['[']:'[');\r
+           SET_LIST_BIT(TRANSLATE_P()?translate[':']:':');\r
+           had_char_class = 0;\r
+           last = ':';\r
+         }\r
+       }\r
+       else if (had_mbchar == 0 && (!current_mbctype || !had_num_literal)) {\r
+         SET_LIST_BIT(c);\r
+         had_num_literal = 0;\r
+       }\r
+       else\r
+         set_list_bits(c, c, b);\r
+       had_mbchar = 0;\r
+      }\r
+\r
+      /* Discard any character set/class bitmap bytes that are all\r
+        0 at the end of the map. Decrement the map-length byte too.  */\r
+      while ((int)b[-1] > 0 && b[b[-1] - 1] == 0) \r
+       b[-1]--; \r
+      if (b[-1] != (1 << BYTEWIDTH) / BYTEWIDTH)\r
+       memmove(&b[b[-1]], &b[(1 << BYTEWIDTH) / BYTEWIDTH],\r
+               2 + EXTRACT_UNSIGNED(&b[(1 << BYTEWIDTH) / BYTEWIDTH])*8);\r
+      b += b[-1] + 2 + EXTRACT_UNSIGNED(&b[b[-1]])*8;\r
+      break;\r
+\r
+    case '(':\r
+      {\r
+       int old_options = options;\r
+       int push_option = 0;\r
+       int casefold = 0;\r
+\r
+      PATFETCH(c);\r
+      if (c == '?') {\r
+       int negative = 0;\r
+\r
+       PATFETCH_RAW(c);\r
+       switch (c) {\r
+       case 'x': case 'p': case 'm': case 'i': case '-':\r
+         for (;;) {\r
+           switch (c) {\r
+           case '-':\r
+             negative = 1;\r
+             break;\r
+\r
+           case ':':\r
+           case ')':\r
+             break;\r
+\r
+           case 'x':\r
+             if (negative)\r
+               options &= ~RE_OPTION_EXTENDED;\r
+             else\r
+               options |= RE_OPTION_EXTENDED;\r
+             break;\r
+\r
+           case 'p':\r
+             if (negative) {\r
+               if ((options&RE_OPTION_POSIXLINE) == RE_OPTION_POSIXLINE) {\r
+                 options &= ~RE_OPTION_POSIXLINE;\r
+               }\r
+             }\r
+             else if ((options&RE_OPTION_POSIXLINE) != RE_OPTION_POSIXLINE) {\r
+               options |= RE_OPTION_POSIXLINE;\r
+             }\r
+             push_option = 1;\r
+             break;\r
+\r
+           case 'm':\r
+             if (negative) {\r
+               if (options&RE_OPTION_MULTILINE) {\r
+                 options &= ~RE_OPTION_MULTILINE;\r
+               }\r
+             }\r
+             else if (!(options&RE_OPTION_MULTILINE)) {\r
+               options |= RE_OPTION_MULTILINE;\r
+             }\r
+             push_option = 1;\r
+             break;\r
+\r
+           case 'i':\r
+             if (negative) {\r
+               if (options&RE_OPTION_IGNORECASE) {\r
+                 options &= ~RE_OPTION_IGNORECASE;\r
+               }\r
+             }\r
+             else if (!(options&RE_OPTION_IGNORECASE)) {\r
+               options |= RE_OPTION_IGNORECASE;\r
+             }\r
+               casefold = 1;\r
+             break;\r
+\r
+           default:\r
+             FREE_AND_RETURN(stackb, "undefined (?...) inline option");\r
+           }\r
+           if (c == ')') {\r
+             c = '#';  /* read whole in-line options */\r
+             break;\r
+           }\r
+           if (c == ':') break;\r
+           PATFETCH_RAW(c);\r
+         }\r
+         break;\r
+\r
+       case '#':\r
+         for (;;) {\r
+           PATFETCH(c);\r
+           if (c == ')') break;\r
+         }\r
+         c = '#';\r
+         break;\r
+\r
+       case ':':\r
+       case '=':\r
+       case '!':\r
+       case '>':\r
+         break;\r
+\r
+       default:\r
+         FREE_AND_RETURN(stackb, "undefined (?...) sequence");\r
+       }\r
+       }\r
+       else {\r
+         PATUNFETCH;\r
+         c = '(';\r
+       }\r
+       if (c == '#') {\r
+       if (push_option) {\r
+         BUFPUSH(option_set);\r
+         BUFPUSH(options);\r
+       }\r
+         if (casefold) {\r
+           if (options & RE_OPTION_IGNORECASE)\r
+             BUFPUSH(casefold_on);\r
+           else\r
+             BUFPUSH(casefold_off);\r
+      }\r
+         break;\r
+      }\r
+      if (stackp+8 >= stacke) {\r
+       DOUBLE_STACK(int);\r
+      }\r
+\r
+      /* Laststart should point to the start_memory that we are about\r
+        to push (unless the pattern has RE_NREGS or more ('s).  */\r
+      /* obsolete: now RE_NREGS is just a default register size. */\r
+      *stackp++ = b - bufp->buffer;    \r
+      *stackp++ = fixup_alt_jump ? fixup_alt_jump - bufp->buffer + 1 : 0;\r
+      *stackp++ = begalt - bufp->buffer;\r
+      switch (c) {\r
+      case '(':\r
+       BUFPUSH(start_memory);\r
+       BUFPUSH(regnum);\r
+       *stackp++ = regnum++;\r
+       *stackp++ = b - bufp->buffer;\r
+       BUFPUSH(0);\r
+       /* too many ()'s to fit in a byte. (max 254) */\r
+       if (regnum >= RE_REG_MAX) goto too_big;\r
+       break;\r
+\r
+      case '=':\r
+      case '!':\r
+      case '>':\r
+       BUFPUSH(start_nowidth);\r
+       *stackp++ = b - bufp->buffer;\r
+       BUFPUSH(0);     /* temporary value */\r
+       BUFPUSH(0);\r
+       if (c != '!') break;\r
+\r
+       BUFPUSH(on_failure_jump);\r
+       *stackp++ = b - bufp->buffer;\r
+       BUFPUSH(0);     /* temporary value */\r
+       BUFPUSH(0);\r
+       break;\r
+\r
+      case ':':\r
+       BUFPUSH(start_paren);\r
+       pending_exact = 0;\r
+      default:\r
+       break;\r
+      }\r
+       if (push_option) {\r
+         BUFPUSH(option_set);\r
+         BUFPUSH(options);\r
+       }\r
+       if (casefold) {\r
+         if (options & RE_OPTION_IGNORECASE)\r
+           BUFPUSH(casefold_on);\r
+         else\r
+           BUFPUSH(casefold_off);\r
+       }\r
+      *stackp++ = c;\r
+      *stackp++ = old_options;\r
+      fixup_alt_jump = 0;\r
+      laststart = 0;\r
+      begalt = b;\r
+      }\r
+      break;\r
+\r
+    case ')':\r
+      if (stackp == stackb) \r
+       FREE_AND_RETURN(stackb, "unmatched )");\r
+\r
+      pending_exact = 0;\r
+      if (fixup_alt_jump) {\r
+       /* Push a dummy failure point at the end of the\r
+          alternative for a possible future\r
+          `finalize_jump' to pop.  See comments at\r
+          `push_dummy_failure' in `re_match'.  */\r
+       BUFPUSH(push_dummy_failure);\r
+\r
+       /* We allocated space for this jump when we assigned\r
+          to `fixup_alt_jump', in the `handle_alt' case below.  */\r
+       store_jump(fixup_alt_jump, jump, b);\r
+      }\r
+      if (options != stackp[-1]) {\r
+       if ((options ^ stackp[-1]) & RE_OPTION_IGNORECASE) {\r
+         BUFPUSH((options&RE_OPTION_IGNORECASE)?casefold_off:casefold_on);\r
+       }\r
+       if ((options ^ stackp[-1]) != RE_OPTION_IGNORECASE) {\r
+         BUFPUSH(option_set);\r
+         BUFPUSH(stackp[-1]);\r
+       }\r
+      }\r
+      p0 = b;\r
+      options = *--stackp;\r
+      switch (c = *--stackp) {\r
+      case '(':\r
+       {\r
+         char *loc = bufp->buffer + *--stackp;\r
+         *loc = regnum - stackp[-1];\r
+         BUFPUSH(stop_memory);\r
+         BUFPUSH(stackp[-1]);\r
+         BUFPUSH(regnum - stackp[-1]);\r
+         stackp--;\r
+       }\r
+       break;\r
+\r
+      case '!':\r
+       BUFPUSH(pop_and_fail);\r
+       /* back patch */\r
+       STORE_NUMBER(bufp->buffer+stackp[-1], b - bufp->buffer - stackp[-1] - 2);\r
+       stackp--;\r
+       /* fall through */\r
+      case '=':\r
+       BUFPUSH(stop_nowidth);\r
+       /* tell stack-pos place to start_nowidth */\r
+       STORE_NUMBER(bufp->buffer+stackp[-1], b - bufp->buffer - stackp[-1] - 2);\r
+       BUFPUSH(0);     /* space to hold stack pos */\r
+       BUFPUSH(0);\r
+       stackp--;\r
+       break;\r
+\r
+      case '>':\r
+       BUFPUSH(stop_backtrack);\r
+       /* tell stack-pos place to start_nowidth */\r
+       STORE_NUMBER(bufp->buffer+stackp[-1], b - bufp->buffer - stackp[-1] - 2);\r
+       BUFPUSH(0);     /* space to hold stack pos */\r
+       BUFPUSH(0);\r
+       stackp--;\r
+       break;\r
+\r
+      case ':':\r
+       BUFPUSH(stop_paren);\r
+       break;\r
+\r
+      default:\r
+       break;\r
+      }\r
+      begalt = *--stackp + bufp->buffer;\r
+      stackp--;\r
+      fixup_alt_jump = *stackp ? *stackp + bufp->buffer - 1 : 0;\r
+      laststart = *--stackp + bufp->buffer;\r
+      if (c == '!' || c == '=') laststart = b;\r
+      break;\r
+\r
+    case '|':\r
+      /* Insert before the previous alternative a jump which\r
+        jumps to this alternative if the former fails.  */\r
+      GET_BUFFER_SPACE(3);\r
+      insert_jump(on_failure_jump, begalt, b + 6, b);\r
+      pending_exact = 0;\r
+      b += 3;\r
+      /* The alternative before this one has a jump after it\r
+        which gets executed if it gets matched.  Adjust that\r
+        jump so it will jump to this alternative's analogous\r
+        jump (put in below, which in turn will jump to the next\r
+        (if any) alternative's such jump, etc.).  The last such\r
+        jump jumps to the correct final destination.  A picture:\r
+        _____ _____ \r
+        |   | |   |   \r
+        |   v |   v \r
+        a | b   | c   \r
+\r
+        If we are at `b', then fixup_alt_jump right now points to a\r
+        three-byte space after `a'.  We'll put in the jump, set\r
+        fixup_alt_jump to right after `b', and leave behind three\r
+        bytes which we'll fill in when we get to after `c'.  */\r
+\r
+      if (fixup_alt_jump)\r
+       store_jump(fixup_alt_jump, jump_past_alt, b);\r
+\r
+      /* Mark and leave space for a jump after this alternative,\r
+        to be filled in later either by next alternative or\r
+        when know we're at the end of a series of alternatives.  */\r
+      fixup_alt_jump = b;\r
+      GET_BUFFER_SPACE(3);\r
+      b += 3;\r
+\r
+      laststart = 0;\r
+      begalt = b;\r
+      break;\r
+\r
+    case '{':\r
+      /* If there is no previous pattern, this is an invalid pattern.  */\r
+      if (!laststart) {\r
+       snprintf(error_msg, ERROR_MSG_MAX_SIZE, \r
+                "invalid regular expression; there's no previous pattern, to which '{' would define cardinality at %d", \r
+                p-pattern);\r
+       FREE_AND_RETURN(stackb, error_msg);\r
+      }\r
+      if( p == pend)\r
+       FREE_AND_RETURN(stackb, "invalid regular expression; '{' can't be last character" );\r
+\r
+      beg_interval = p - 1;\r
+\r
+      lower_bound = -1;                        /* So can see if are set.  */\r
+      upper_bound = -1;\r
+      GET_UNSIGNED_NUMBER(lower_bound);\r
+      if (c == ',') {\r
+       GET_UNSIGNED_NUMBER(upper_bound);\r
+      }\r
+      else\r
+       /* Interval such as `{1}' => match exactly once. */\r
+       upper_bound = lower_bound;\r
+\r
+      if (lower_bound < 0 || c != '}')\r
+       goto unfetch_interval;\r
+\r
+      if (lower_bound >= RE_DUP_MAX || upper_bound >= RE_DUP_MAX)\r
+       FREE_AND_RETURN(stackb, "too big quantifier in {,}");\r
+      if (upper_bound < 0) upper_bound = RE_DUP_MAX;\r
+      if (lower_bound > upper_bound)\r
+       FREE_AND_RETURN(stackb, "can't do {n,m} with n > m");\r
+\r
+      beg_interval = 0;\r
+      pending_exact = 0;\r
+\r
+      greedy = 1;\r
+      if (p != pend) {\r
+       PATFETCH(c);\r
+       if (c == '?') greedy = 0;\r
+       else PATUNFETCH;\r
+      }\r
+\r
+      if (lower_bound == 0) {\r
+       zero_times_ok = 1;\r
+       if (upper_bound == RE_DUP_MAX) {\r
+         many_times_ok = 1;\r
+         goto repeat;\r
+       }\r
+       if (upper_bound == 1) {\r
+         many_times_ok = 0;\r
+         goto repeat;\r
+       }\r
+      }\r
+      if (lower_bound == 1) {\r
+       if (upper_bound == 1) {\r
+         /* No need to repeat */\r
+         break;\r
+       }\r
+       if (upper_bound == RE_DUP_MAX) {\r
+         many_times_ok = 1;\r
+         zero_times_ok = 0;\r
+         goto repeat;\r
+       }\r
+      }\r
+\r
+      /* If upper_bound is zero, don't want to succeed at all; \r
+        jump from laststart to b + 3, which will be the end of\r
+        the buffer after this jump is inserted.  */\r
+\r
+      if (upper_bound == 0) {\r
+       GET_BUFFER_SPACE(3);\r
+       insert_jump(jump, laststart, b + 3, b);\r
+       b += 3;\r
+       break;\r
+      }\r
+\r
+      /* If lower_bound == upper_bound, repeat count can be removed */\r
+      if (lower_bound == upper_bound) {\r
+       int mcnt;\r
+       int skip_stop_paren = 0;\r
+\r
+       if (b[-1] == stop_paren) {\r
+         skip_stop_paren = 1;\r
+         b--;\r
+       }\r
+\r
+       if (*laststart == exactn && laststart[1]+2 == b - laststart\r
+           && laststart[1]*lower_bound < 256) {\r
+         mcnt = laststart[1];\r
+         GET_BUFFER_SPACE((lower_bound-1)*mcnt);\r
+         laststart[1] = lower_bound*mcnt;\r
+         while (--lower_bound) {\r
+           memcpy(b, laststart+2, mcnt);\r
+           b += mcnt;\r
+         }\r
+         if (skip_stop_paren) BUFPUSH(stop_paren);\r
+         break;\r
+       }\r
+\r
+       if (lower_bound < 5 && b - laststart < 10) {\r
+         /* 5 and 10 are the magic numbers */\r
+\r
+         mcnt = b - laststart;\r
+         GET_BUFFER_SPACE((lower_bound-1)*mcnt);\r
+         while (--lower_bound) {\r
+           memcpy(b, laststart, mcnt);\r
+           b += mcnt;\r
+         }\r
+         if (skip_stop_paren) BUFPUSH(stop_paren);\r
+         break;\r
+       }\r
+       if (skip_stop_paren) b++; /* push back stop_paren */\r
+      }\r
+\r
+      /* Otherwise, we have a nontrivial interval.  When\r
+        we're all done, the pattern will look like:\r
+        set_number_at <jump count> <upper bound>\r
+        set_number_at <succeed_n count> <lower bound>\r
+        succeed_n <after jump addr> <succed_n count>\r
+        <body of loop>\r
+        jump_n <succeed_n addr> <jump count>\r
+        (The upper bound and `jump_n' are omitted if\r
+        `upper_bound' is 1, though.)  */\r
+      { /* If the upper bound is > 1, we need to insert\r
+          more at the end of the loop.  */\r
+       unsigned nbytes = upper_bound == 1 ? 10 : 20;\r
+\r
+       GET_BUFFER_SPACE(nbytes);\r
+       /* Initialize lower bound of the `succeed_n', even\r
+          though it will be set during matching by its\r
+          attendant `set_number_at' (inserted next),\r
+          because `re_compile_fastmap' needs to know.\r
+          Jump to the `jump_n' we might insert below.  */\r
+       insert_jump_n(succeed_n, laststart, b + (nbytes/2), \r
+                     b, lower_bound);\r
+       b += 5;         /* Just increment for the succeed_n here.  */\r
+\r
+       /* Code to initialize the lower bound.  Insert \r
+          before the `succeed_n'.  The `5' is the last two\r
+          bytes of this `set_number_at', plus 3 bytes of\r
+          the following `succeed_n'.  */\r
+       insert_op_2(set_number_at, laststart, b, 5, lower_bound);\r
+       b += 5;\r
+\r
+       if (upper_bound > 1) {\r
+         /* More than one repetition is allowed, so\r
+            append a backward jump to the `succeed_n'\r
+            that starts this interval.\r
+\r
+            When we've reached this during matching,\r
+            we'll have matched the interval once, so\r
+            jump back only `upper_bound - 1' times.  */\r
+         GET_BUFFER_SPACE(5);\r
+         store_jump_n(b, greedy?jump_n:finalize_push_n, laststart + 5,\r
+                      upper_bound - 1);\r
+         b += 5;\r
+\r
+         /* The location we want to set is the second\r
+            parameter of the `jump_n'; that is `b-2' as\r
+            an absolute address.  `laststart' will be\r
+            the `set_number_at' we're about to insert;\r
+            `laststart+3' the number to set, the source\r
+            for the relative address.  But we are\r
+            inserting into the middle of the pattern --\r
+            so everything is getting moved up by 5.\r
+            Conclusion: (b - 2) - (laststart + 3) + 5,\r
+            i.e., b - laststart.\r
+\r
+            We insert this at the beginning of the loop\r
+            so that if we fail during matching, we'll\r
+            reinitialize the bounds.  */\r
+         insert_op_2(set_number_at, laststart, b, b - laststart,\r
+                     upper_bound - 1);\r
+         b += 5;\r
+       }\r
+      }\r
+      break;\r
+\r
+    unfetch_interval:\r
+      /* If an invalid interval, match the characters as literals.  */\r
+      p = beg_interval;\r
+      beg_interval = 0;\r
+\r
+      /* normal_char and normal_backslash need `c'.  */\r
+      PATFETCH(c);     \r
+      goto normal_char;\r
+\r
+    case '\\':\r
+      if (p == pend)\r
+       FREE_AND_RETURN(stackb, "invalid regular expression; '\\' can't be last character");\r
+      /* Do not translate the character after the \, so that we can\r
+        distinguish, e.g., \B from \b, even if we normally would\r
+        translate, e.g., B to b.  */\r
+      PATFETCH_RAW(c);\r
+      switch (c) {\r
+      case 's':\r
+      case 'S':\r
+      case 'd':\r
+      case 'D':\r
+       while (b - bufp->buffer + 9 + (1 << BYTEWIDTH) / BYTEWIDTH\r
+              > bufp->allocated)\r
+         EXTEND_BUFFER;\r
+\r
+       laststart = b;\r
+       if (c == 's' || c == 'd') {\r
+         BUFPUSH(charset);\r
+       }\r
+       else {\r
+         BUFPUSH(charset_not);\r
+       }\r
+\r
+       BUFPUSH((1 << BYTEWIDTH) / BYTEWIDTH);\r
+       memset(b, 0, (1 << BYTEWIDTH) / BYTEWIDTH + 2);\r
+       if (c == 's' || c == 'S') {\r
+         SET_LIST_BIT(' ');\r
+         SET_LIST_BIT('\t');\r
+         SET_LIST_BIT('\n');\r
+         SET_LIST_BIT('\r');\r
+         SET_LIST_BIT('\f');\r
+       }\r
+       else {\r
+         char cc;\r
+\r
+         for (cc = '0'; cc <= '9'; cc++) {\r
+           SET_LIST_BIT(cc);\r
+         }\r
+       }\r
+\r
+       while ((int)b[-1] > 0 && b[b[-1] - 1] == 0) \r
+         b[-1]--; \r
+       if (b[-1] != (1 << BYTEWIDTH) / BYTEWIDTH)\r
+         memmove(&b[b[-1]], &b[(1 << BYTEWIDTH) / BYTEWIDTH],\r
+                 2 + EXTRACT_UNSIGNED(&b[(1 << BYTEWIDTH) / BYTEWIDTH])*8);\r
+       b += b[-1] + 2 + EXTRACT_UNSIGNED(&b[b[-1]])*8;\r
+       break;\r
+\r
+      case 'w':\r
+       laststart = b;\r
+       BUFPUSH(wordchar);\r
+       break;\r
+\r
+      case 'W':\r
+       laststart = b;\r
+       BUFPUSH(notwordchar);\r
+       break;\r
+\r
+#ifndef RUBY\r
+      case '<':\r
+       BUFPUSH(wordbeg);\r
+       break;\r
+\r
+      case '>':\r
+       BUFPUSH(wordend);\r
+       break;\r
+#endif\r
+\r
+      case 'b':\r
+       BUFPUSH(wordbound);\r
+       break;\r
+\r
+      case 'B':\r
+       BUFPUSH(notwordbound);\r
+       break;\r
+\r
+      case 'A':\r
+       BUFPUSH(begbuf);\r
+       break;\r
+\r
+      case 'Z':\r
+       if ((bufp->options & RE_OPTION_SINGLELINE) == 0) {\r
+         BUFPUSH(endbuf2);\r
+         break;\r
+       }\r
+       /* fall through */\r
+      case 'z':\r
+       BUFPUSH(endbuf);\r
+       break;\r
+\r
+      case 'G':\r
+       BUFPUSH(begpos);\r
+       break;\r
+\r
+       /* hex */\r
+      case 'x':\r
+       had_mbchar = 0;\r
+       c = scan_hex(p, 2, &numlen);\r
+       p += numlen;\r
+       had_num_literal = 1;\r
+       goto numeric_char;\r
+\r
+       /* octal */\r
+      case '0':\r
+       had_mbchar = 0;\r
+       c = scan_oct(p, 3, &numlen);\r
+       p += numlen;\r
+       had_num_literal = 1;\r
+       goto numeric_char;\r
+\r
+       /* back-ref or octal */\r
+      case '1': case '2': case '3':\r
+      case '4': case '5': case '6':\r
+      case '7': case '8': case '9':\r
+         PATUNFETCH;\r
+       p0 = p;\r
+\r
+         had_mbchar = 0;\r
+         c1 = 0;\r
+         GET_UNSIGNED_NUMBER(c1);\r
+         if (!ISDIGIT(c)) PATUNFETCH;\r
+\r
+       if (9 < c1 && c1 >= regnum) {\r
+           /* need to get octal */\r
+         c = scan_oct(p0, 3, &numlen) & 0xff;\r
+         p = p0 + numlen;\r
+           c1 = 0;\r
+           had_num_literal = 1;\r
+           goto numeric_char;\r
+         }\r
+\r
+       laststart = b;\r
+       BUFPUSH(duplicate);\r
+       BUFPUSH(c1);\r
+       break;\r
+\r
+      case 'M':\r
+      case 'C':\r
+      case 'c':\r
+       p0 = --p;\r
+       c = read_special(p, pend, &p0);\r
+       if (c > 255) goto invalid_escape;\r
+       p = p0;\r
+       had_num_literal = 1;\r
+       goto numeric_char;\r
+\r
+      default:\r
+       c = read_backslash(c);\r
+       goto normal_char;\r
+      }\r
+      break;\r
+\r
+    case '#':\r
+      if (options & RE_OPTION_EXTENDED) {\r
+       while (p != pend) {\r
+         PATFETCH(c);\r
+         if (c == '\n') break;\r
+       }\r
+       break;\r
+      }\r
+      goto normal_char;\r
+\r
+    case ' ':\r
+    case '\t':\r
+    case '\f':\r
+    case '\r':\r
+    case '\n':\r
+      if (options & RE_OPTION_EXTENDED)\r
+       break;\r
+\r
+    default:\r
+    normal_char:               /* Expects the character in `c'.  */\r
+      had_mbchar = 0;\r
+      if (ismbchar(c)) {\r
+       had_mbchar = 1;\r
+       c1 = p - pattern;\r
+      }\r
+    numeric_char:\r
+      nextp = p + mbclen(c) - 1;\r
+      if (!pending_exact || pending_exact + *pending_exact + 1 != b\r
+         || *pending_exact >= (c1 ? 0176 : 0177)\r
+         || *nextp == '+' || *nextp == '?'\r
+         || *nextp == '*' || *nextp == '^'\r
+         || *nextp == '{') {\r
+       laststart = b;\r
+       BUFPUSH(exactn);\r
+       pending_exact = b;\r
+       BUFPUSH(0);\r
+      }\r
+      if (had_num_literal || c == 0xff) {\r
+       BUFPUSH(0xff);\r
+       (*pending_exact)++;\r
+       had_num_literal = 0;\r
+      }\r
+      BUFPUSH(c);\r
+      (*pending_exact)++;\r
+      if (had_mbchar) {\r
+       int len = mbclen(c) - 1;\r
+       while (len--) {\r
+         PATFETCH_RAW(c);\r
+         BUFPUSH(c);\r
+         (*pending_exact)++;\r
+       }\r
+      }\r
+    }\r
+  }\r
+\r
+  if (fixup_alt_jump)\r
+    store_jump(fixup_alt_jump, jump, b);\r
+\r
+  if (stackp != stackb)\r
+    FREE_AND_RETURN(stackb, "unmatched (");\r
+\r
+  /* set optimize flags */\r
+  laststart = bufp->buffer;\r
+  if (laststart != b) {\r
+    if (*laststart == start_memory) laststart += 3;\r
+    if (*laststart == dummy_failure_jump) laststart += 3;\r
+    else if (*laststart == try_next) laststart += 3;\r
+    if (*laststart == anychar_repeat) {\r
+      bufp->options |= RE_OPTIMIZE_ANCHOR;\r
+    }\r
+  }\r
+\r
+  bufp->used = b - bufp->buffer;\r
+  bufp->re_nsub = regnum;\r
+  laststart = bufp->buffer;\r
+  if (laststart != b) {\r
+    if (*laststart == start_memory) laststart += 3;\r
+    if (*laststart == exactn) {\r
+      bufp->options |= RE_OPTIMIZE_EXACTN;\r
+      bufp->must = laststart+1;\r
+    }\r
+  }\r
+  if (!bufp->must) {\r
+    bufp->must = calculate_must_string(bufp->buffer, b);\r
+  }\r
+  if (current_mbctype == MBCTYPE_SJIS) bufp->options |= RE_OPTIMIZE_NO_BM;\r
+  else if (bufp->must) {\r
+    int i;\r
+    int len = (unsigned char)bufp->must[0];\r
+\r
+    for (i=1; i<len; i++) {\r
+      if ((unsigned char)bufp->must[i] == 0xff ||\r
+         (current_mbctype && ismbchar(bufp->must[i]))) {\r
+       bufp->options |= RE_OPTIMIZE_NO_BM;\r
+       break;\r
+      }\r
+    }\r
+    if (!(bufp->options & RE_OPTIMIZE_NO_BM)) {\r
+      bufp->must_skip = (int *) xmalloc((1 << BYTEWIDTH)*sizeof(int));\r
+      bm_init_skip(bufp->must_skip, (unsigned char*)bufp->must+1,\r
+                  (unsigned char)bufp->must[0],\r
+                  (unsigned char*)(MAY_TRANSLATE()?translate:0));\r
+    }\r
+  }\r
+\r
+  bufp->regstart = TMALLOC(regnum, unsigned char*);\r
+  bufp->regend = TMALLOC(regnum, unsigned char*);\r
+  bufp->old_regstart = TMALLOC(regnum, unsigned char*);\r
+  bufp->old_regend = TMALLOC(regnum, unsigned char*);\r
+  bufp->reg_info = TMALLOC(regnum, register_info_type);\r
+  bufp->best_regstart = TMALLOC(regnum, unsigned char*);\r
+  bufp->best_regend = TMALLOC(regnum, unsigned char*);\r
+  FREE_AND_RETURN(stackb, 0);\r
+\r
+ invalid_pattern:\r
+  FREE_AND_RETURN(stackb, "invalid regular expression");\r
+\r
+ end_of_pattern:\r
+  FREE_AND_RETURN(stackb, "premature end of regular expression");\r
+\r
+ too_big:\r
+  FREE_AND_RETURN(stackb, "regular expression too big");\r
+\r
+ memory_exhausted:\r
+  FREE_AND_RETURN(stackb, "memory exhausted");\r
+\r
+ nested_meta:\r
+  FREE_AND_RETURN(stackb, "nested *?+ in regexp");\r
+\r
+ invalid_escape:\r
+  FREE_AND_RETURN(stackb, "Invalid escape character syntax");\r
+}\r
+\r
+void\r
+re_free_pattern(bufp)\r
+     struct re_pattern_buffer *bufp;\r
+{\r
+  xfree(bufp->buffer);\r
+  xfree(bufp->fastmap);\r
+  if (bufp->must_skip) xfree(bufp->must_skip);\r
+\r
+  xfree(bufp->regstart);\r
+  xfree(bufp->regend);\r
+  xfree(bufp->old_regstart);\r
+  xfree(bufp->old_regend);\r
+  xfree(bufp->best_regstart);\r
+  xfree(bufp->best_regend);\r
+  xfree(bufp->reg_info);\r
+  xfree(bufp);\r
+}\r
+\r
+/* Store a jump of the form <OPCODE> <relative address>.\r
+   Store in the location FROM a jump operation to jump to relative\r
+   address FROM - TO.  OPCODE is the opcode to store.  */\r
+\r
+static void\r
+store_jump(from, opcode, to)\r
+     char *from, *to;\r
+     int opcode;\r
+{\r
+  from[0] = (char)opcode;\r
+  STORE_NUMBER(from + 1, to - (from + 3));\r
+}\r
+\r
+\r
+/* Open up space before char FROM, and insert there a jump to TO.\r
+   CURRENT_END gives the end of the storage not in use, so we know \r
+   how much data to copy up. OP is the opcode of the jump to insert.\r
+\r
+   If you call this function, you must zero out pending_exact.  */\r
+\r
+static void\r
+insert_jump(op, from, to, current_end)\r
+     int op;\r
+     char *from, *to, *current_end;\r
+{\r
+  register char *pfrom = current_end;          /* Copy from here...  */\r
+  register char *pto = current_end + 3;                /* ...to here.  */\r
+\r
+  while (pfrom != from)                               \r
+    *--pto = *--pfrom;\r
+  store_jump(from, op, to);\r
+}\r
+\r
+\r
+/* Store a jump of the form <opcode> <relative address> <n> .\r
+\r
+   Store in the location FROM a jump operation to jump to relative\r
+   address FROM - TO.  OPCODE is the opcode to store, N is a number the\r
+   jump uses, say, to decide how many times to jump.\r
+\r
+   If you call this function, you must zero out pending_exact.  */\r
+\r
+static void\r
+store_jump_n(from, opcode, to, n)\r
+     char *from, *to;\r
+     int opcode;\r
+     unsigned n;\r
+{\r
+  from[0] = (char)opcode;\r
+  STORE_NUMBER(from + 1, to - (from + 3));\r
+  STORE_NUMBER(from + 3, n);\r
+}\r
+\r
+\r
+/* Similar to insert_jump, but handles a jump which needs an extra\r
+   number to handle minimum and maximum cases.  Open up space at\r
+   location FROM, and insert there a jump to TO.  CURRENT_END gives the\r
+   end of the storage in use, so we know how much data to copy up. OP is\r
+   the opcode of the jump to insert.\r
+\r
+   If you call this function, you must zero out pending_exact.  */\r
+\r
+static void\r
+insert_jump_n(op, from, to, current_end, n)\r
+     int op;\r
+     char *from, *to, *current_end;\r
+     unsigned n;\r
+{\r
+  register char *pfrom = current_end;          /* Copy from here...  */\r
+  register char *pto = current_end + 5;                /* ...to here.  */\r
+\r
+  while (pfrom != from)                               \r
+    *--pto = *--pfrom;\r
+  store_jump_n(from, op, to, n);\r
+}\r
+\r
+\r
+/* Open up space at location THERE, and insert operation OP.\r
+   CURRENT_END gives the end of the storage in use, so\r
+   we know how much data to copy up.\r
+\r
+   If you call this function, you must zero out pending_exact.  */\r
+\r
+static void\r
+insert_op(op, there, current_end)\r
+     int op;\r
+     char *there, *current_end;\r
+{\r
+  register char *pfrom = current_end;          /* Copy from here...  */\r
+  register char *pto = current_end + 1;                /* ...to here.  */\r
+\r
+  while (pfrom != there)                              \r
+    *--pto = *--pfrom;\r
+\r
+  there[0] = (char)op;\r
+}\r
+\r
+\r
+/* Open up space at location THERE, and insert operation OP followed by\r
+   NUM_1 and NUM_2.  CURRENT_END gives the end of the storage in use, so\r
+   we know how much data to copy up.\r
+\r
+   If you call this function, you must zero out pending_exact.  */\r
+\r
+static void\r
+insert_op_2(op, there, current_end, num_1, num_2)\r
+     int op;\r
+     char *there, *current_end;\r
+     int num_1, num_2;\r
+{\r
+  register char *pfrom = current_end;          /* Copy from here...  */\r
+  register char *pto = current_end + 5;                /* ...to here.  */\r
+\r
+  while (pfrom != there)                              \r
+    *--pto = *--pfrom;\r
+\r
+  there[0] = (char)op;\r
+  STORE_NUMBER(there + 1, num_1);\r
+  STORE_NUMBER(there + 3, num_2);\r
+}\r
+\r
+\f\r
+#define trans_eq(c1, c2, translate) (translate?(translate[c1]==translate[c2]):((c1)==(c2)))\r
+static int\r
+slow_match(little, lend, big, bend, translate)\r
+     unsigned char *little, *lend;\r
+     unsigned char *big, *bend;\r
+     unsigned char *translate;\r
+{\r
+  int c;\r
+\r
+  while (little < lend && big < bend) {\r
+    c = *little++;\r
+    if (c == 0xff)\r
+      c = *little++;\r
+    if (!trans_eq(*big++, c, translate)) break;\r
+  }\r
+  if (little == lend) return 1;\r
+  return 0;\r
+}\r
+\r
+static int\r
+slow_search(little, llen, big, blen, translate)\r
+     unsigned char *little;\r
+     int llen;\r
+     unsigned char *big;\r
+     int blen;\r
+     char *translate;\r
+{\r
+  unsigned char *bsave = big;\r
+  unsigned char *bend = big + blen;\r
+  register int c;\r
+  int fescape = 0;\r
+\r
+  c = *little;\r
+  if (c == 0xff) {\r
+    c = little[1];\r
+    fescape = 1;\r
+  }\r
+  else if (translate && !ismbchar(c)) {\r
+    c = translate[c];\r
+  }\r
+\r
+  while (big < bend) {\r
+    /* look for first character */\r
+    if (fescape) {\r
+      while (big < bend) {\r
+       if (*big == c) break;\r
+       big++;\r
+      }\r
+    }\r
+    else if (translate && !ismbchar(c)) {\r
+      while (big < bend) {\r
+       if (ismbchar(*big)) big+=mbclen(*big)-1;\r
+       else if (translate[*big] == c) break;\r
+       big++;\r
+      }\r
+    }\r
+    else {\r
+      while (big < bend) {\r
+       if (*big == c) break;\r
+       if (ismbchar(*big)) big+=mbclen(*big)-1;\r
+       big++;\r
+      }\r
+    }\r
+\r
+    if (slow_match(little, little+llen, big, bend, translate))\r
+      return big - bsave;\r
+\r
+    big+=mbclen(*big);\r
+  }\r
+  return -1;\r
+}\r
+\r
+static void\r
+bm_init_skip(skip, pat, m, translate)\r
+     int *skip;\r
+     unsigned char *pat;\r
+     int m;\r
+     const unsigned char *translate;\r
+{\r
+  int j, c;\r
+\r
+  for (c=0; c<256; c++) {\r
+    skip[c] = m;\r
+  }\r
+  if (translate) {\r
+    for (j=0; j<m-1; j++) {\r
+      skip[translate[pat[j]]] = m-1-j;\r
+    }\r
+  }\r
+  else {\r
+    for (j=0; j<m-1; j++) {\r
+      skip[pat[j]] = m-1-j;\r
+    }\r
+  }\r
+}\r
+\r
+static int\r
+bm_search(little, llen, big, blen, skip, translate)\r
+     unsigned char *little;\r
+     int llen;\r
+     unsigned char *big;\r
+     int blen;\r
+     int *skip;\r
+     unsigned char *translate;\r
+{\r
+  int i, j, k;\r
+\r
+  i = llen-1;\r
+  if (translate) {\r
+    while (i < blen) {\r
+      k = i;\r
+      j = llen-1;\r
+      while (j >= 0 && translate[big[k]] == translate[little[j]]) {\r
+       k--;\r
+       j--;\r
+      }\r
+      if (j < 0) return k+1;\r
+\r
+      i += skip[translate[big[i]]];\r
+    }\r
+    return -1;\r
+  }\r
+  while (i < blen) {\r
+    k = i;\r
+    j = llen-1;\r
+    while (j >= 0 && big[k] == little[j]) {\r
+      k--;\r
+      j--;\r
+    }\r
+    if (j < 0) return k+1;\r
+\r
+    i += skip[big[i]];\r
+  }\r
+  return -1;\r
+}\r
+\f\r
+/* Given a pattern, compute a fastmap from it.  The fastmap records\r
+   which of the (1 << BYTEWIDTH) possible characters can start a string\r
+   that matches the pattern.  This fastmap is used by re_search to skip\r
+   quickly over totally implausible text.\r
+\r
+   The caller must supply the address of a (1 << BYTEWIDTH)-byte data \r
+   area as bufp->fastmap.\r
+   The other components of bufp describe the pattern to be used.  */\r
+void\r
+re_compile_fastmap(bufp)\r
+     struct re_pattern_buffer *bufp;\r
+{\r
+  unsigned char *pattern = (unsigned char*)bufp->buffer;\r
+  int size = bufp->used;\r
+  register char *fastmap = bufp->fastmap;\r
+  register unsigned char *p = pattern;\r
+  register unsigned char *pend = pattern + size;\r
+  register int j, k;\r
+  unsigned is_a_succeed_n;\r
+\r
+  \r
+  unsigned char *stacka[NFAILURES];\r
+  unsigned char **stackb = stacka;\r
+  unsigned char **stackp = stackb;\r
+  unsigned char **stacke = stackb + NFAILURES;\r
+  int options = bufp->options;\r
+\r
+  memset(fastmap, 0, (1 << BYTEWIDTH));\r
+  bufp->fastmap_accurate = 1;\r
+  bufp->can_be_null = 0;\r
+\r
+  while (p) {\r
+    is_a_succeed_n = 0;\r
+    if (p == pend) {\r
+      bufp->can_be_null = 1;\r
+      break;\r
+    }\r
+#ifdef SWITCH_ENUM_BUG\r
+    switch ((int)((enum regexpcode)*p++))\r
+#else\r
+    switch ((enum regexpcode)*p++)\r
+#endif\r
+      {\r
+      case exactn:\r
+       if (p[1] == 0xff) {\r
+         if (TRANSLATE_P())\r
+           fastmap[translate[p[2]]] = 2;\r
+         else\r
+           fastmap[p[2]] = 2;\r
+         bufp->options |= RE_OPTIMIZE_BMATCH;\r
+       }\r
+       else if (TRANSLATE_P())\r
+         fastmap[translate[p[1]]] = 1;\r
+       else\r
+         fastmap[p[1]] = 1;\r
+       break;\r
+\r
+      case begline:\r
+      case begbuf:\r
+      case begpos:\r
+      case endbuf:\r
+      case endbuf2:\r
+      case wordbound:\r
+      case notwordbound:\r
+      case wordbeg:\r
+      case wordend:\r
+      case pop_and_fail:\r
+      case push_dummy_failure:\r
+      case start_paren:\r
+      case stop_paren:\r
+       continue;\r
+\r
+      case casefold_on:\r
+       bufp->options |= RE_MAY_IGNORECASE;\r
+      case casefold_off:\r
+       options ^= RE_OPTION_IGNORECASE;\r
+       continue;\r
+\r
+      case option_set:\r
+       options = *p++;\r
+       continue;\r
+\r
+      case endline:\r
+       if (TRANSLATE_P())\r
+         fastmap[translate['\n']] = 1;\r
+       else\r
+         fastmap['\n'] = 1;\r
+       if ((options & RE_OPTION_SINGLELINE) == 0 && bufp->can_be_null == 0)\r
+         bufp->can_be_null = 2;\r
+       break;\r
+\r
+      case jump_n:\r
+      case finalize_jump:\r
+      case maybe_finalize_jump:\r
+      case jump:\r
+      case jump_past_alt:\r
+      case dummy_failure_jump:\r
+      case finalize_push:\r
+      case finalize_push_n:\r
+       EXTRACT_NUMBER_AND_INCR(j, p);\r
+       p += j; \r
+       if (j > 0)\r
+         continue;\r
+       /* Jump backward reached implies we just went through\r
+          the body of a loop and matched nothing.\r
+          Opcode jumped to should be an on_failure_jump.\r
+          Just treat it like an ordinary jump.\r
+          For a * loop, it has pushed its failure point already;\r
+          If so, discard that as redundant.  */\r
+\r
+       if ((enum regexpcode)*p != on_failure_jump\r
+           && (enum regexpcode)*p != try_next\r
+           && (enum regexpcode)*p != succeed_n)\r
+         continue;\r
+       p++;\r
+       EXTRACT_NUMBER_AND_INCR(j, p);\r
+       p += j; \r
+       if (stackp != stackb && *stackp == p)\r
+         stackp--;             /* pop */\r
+       continue;\r
+\r
+      case try_next:\r
+      case start_nowidth:\r
+      case stop_nowidth:\r
+      case stop_backtrack:\r
+       p += 2;\r
+       continue;\r
+\r
+      case succeed_n:\r
+       is_a_succeed_n = 1;\r
+       /* Get to the number of times to succeed.  */\r
+       EXTRACT_NUMBER(k, p + 2);\r
+       /* Increment p past the n for when k != 0.  */\r
+       if (k != 0) {\r
+         p += 4;\r
+         continue;\r
+       }\r
+       /* fall through */\r
+\r
+      case on_failure_jump:\r
+      EXTRACT_NUMBER_AND_INCR(j, p);\r
+      if (p + j < pend) {\r
+       if (stackp == stacke) {\r
+         EXPAND_FAIL_STACK();\r
+       }\r
+       *++stackp = p + j;      /* push */\r
+      }\r
+      else {\r
+       bufp->can_be_null = 1;\r
+      }\r
+      if (is_a_succeed_n)\r
+       EXTRACT_NUMBER_AND_INCR(k, p);  /* Skip the n.  */\r
+      continue;\r
+\r
+      case set_number_at:\r
+       p += 4;\r
+       continue;\r
+\r
+      case start_memory:\r
+      case stop_memory:\r
+       p += 2;\r
+       continue;\r
+\r
+      case duplicate:\r
+       bufp->can_be_null = 1;\r
+       fastmap['\n'] = 1;\r
+      case anychar_repeat:\r
+      case anychar:\r
+       for (j = 0; j < (1 << BYTEWIDTH); j++) {\r
+         if (j != '\n' || (options & RE_OPTION_MULTILINE))\r
+           fastmap[j] = 1;\r
+       }\r
+       if (bufp->can_be_null) {\r
+         FREE_AND_RETURN_VOID(stackb);\r
+       }\r
+       /* Don't return; check the alternative paths\r
+          so we can set can_be_null if appropriate.  */\r
+       if ((enum regexpcode)p[-1] == anychar_repeat) {\r
+           continue;\r
+       }\r
+       break;\r
+\r
+      case wordchar:\r
+       for (j = 0; j < 0x80; j++) {\r
+         if (SYNTAX(j) == Sword)\r
+           fastmap[j] = 1;\r
+       }\r
+       switch (current_mbctype) {\r
+       case MBCTYPE_ASCII:\r
+         for (j = 0x80; j < (1 << BYTEWIDTH); j++) {\r
+           if (SYNTAX(j) == Sword2)\r
+             fastmap[j] = 1;\r
+         }\r
+         break;\r
+       case MBCTYPE_EUC:\r
+       case MBCTYPE_SJIS:\r
+       case MBCTYPE_UTF8:\r
+         for (j = 0x80; j < (1 << BYTEWIDTH); j++) {\r
+           if (re_mbctab[j])\r
+             fastmap[j] = 1;\r
+         }\r
+         break;\r
+       }\r
+       break;\r
+\r
+      case notwordchar:\r
+       for (j = 0; j < 0x80; j++)\r
+         if (SYNTAX(j) != Sword)\r
+           fastmap[j] = 1;\r
+       switch (current_mbctype) {\r
+       case MBCTYPE_ASCII:\r
+         for (j = 0x80; j < (1 << BYTEWIDTH); j++) {\r
+           if (SYNTAX(j) != Sword2)\r
+             fastmap[j] = 1;\r
+         }\r
+         break;\r
+       case MBCTYPE_EUC:\r
+       case MBCTYPE_SJIS:\r
+       case MBCTYPE_UTF8:\r
+         for (j = 0x80; j < (1 << BYTEWIDTH); j++) {\r
+           if (!re_mbctab[j])\r
+             fastmap[j] = 1;\r
+         }\r
+         break;\r
+       }\r
+       break;\r
+\r
+      case charset:\r
+       /* NOTE: Charset for single-byte chars never contain\r
+          multi-byte char.  See set_list_bits().  */\r
+       for (j = *p++ * BYTEWIDTH - 1; j >= 0; j--)\r
+         if (p[j / BYTEWIDTH] & (1 << (j % BYTEWIDTH))) {\r
+           int tmp = TRANSLATE_P()?translate[j]:j;\r
+           fastmap[tmp] = 1;\r
+         }\r
+       {\r
+         unsigned short size;\r
+         unsigned long c, beg, end;\r
+\r
+         p += p[-1] + 2;\r
+         size = EXTRACT_UNSIGNED(&p[-2]);\r
+         for (j = 0; j < (int)size; j++) {\r
+           c = EXTRACT_MBC(&p[j*8]);\r
+           beg = WC2MBC1ST(c);\r
+           c = EXTRACT_MBC(&p[j*8+4]);\r
+           end = WC2MBC1ST(c);\r
+           /* set bits for 1st bytes of multi-byte chars.  */\r
+           while (beg <= end) {\r
+             /* NOTE: Charset for multi-byte chars might contain\r
+                single-byte chars.  We must reject them. */\r
+             if (c < 0x100) {\r
+               fastmap[beg] = 2;\r
+               bufp->options |= RE_OPTIMIZE_BMATCH;\r
+             }\r
+             else if (ismbchar(beg))\r
+               fastmap[beg] = 1;\r
+             beg++;\r
+           }\r
+         }\r
+       }\r
+       break;\r
+\r
+      case charset_not:\r
+       /* S: set of all single-byte chars.\r
+          M: set of all first bytes that can start multi-byte chars.\r
+          s: any set of single-byte chars.\r
+          m: any set of first bytes that can start multi-byte chars.\r
+\r
+          We assume S+M = U.\r
+          ___      _   _\r
+          s+m = (S*s+M*m).  */\r
+       /* Chars beyond end of map must be allowed */\r
+       /* NOTE: Charset_not for single-byte chars might contain\r
+          multi-byte chars.  See set_list_bits(). */\r
+       for (j = *p * BYTEWIDTH; j < (1 << BYTEWIDTH); j++)\r
+         if (!ismbchar(j))\r
+           fastmap[j] = 1;\r
+\r
+       for (j = *p++ * BYTEWIDTH - 1; j >= 0; j--)\r
+         if (!(p[j / BYTEWIDTH] & (1 << (j % BYTEWIDTH)))) {\r
+           if (!ismbchar(j))\r
+             fastmap[j] = 1;\r
+         }\r
+       {\r
+         unsigned short size;\r
+         unsigned long c, beg;\r
+         int num_literal = 0;\r
+\r
+         p += p[-1] + 2;\r
+         size = EXTRACT_UNSIGNED(&p[-2]);\r
+         if (size == 0) {\r
+           for (j = 0x80; j < (1 << BYTEWIDTH); j++)\r
+             if (ismbchar(j))\r
+               fastmap[j] = 1;\r
+           break;\r
+         }\r
+         for (j = 0,c = 0;j < (int)size; j++) {\r
+           unsigned int cc = EXTRACT_MBC(&p[j*8]);\r
+           beg = WC2MBC1ST(cc);\r
+           while (c <= beg) {\r
+             if (ismbchar(c))\r
+               fastmap[c] = 1;\r
+             c++;\r
+           }\r
+\r
+           cc = EXTRACT_MBC(&p[j*8+4]);\r
+           if (cc < 0xff) {\r
+             num_literal = 1;\r
+             while (c <= cc) {\r
+               if (ismbchar(c))\r
+                 fastmap[c] = 1;\r
+               c++;\r
+             }\r
+           }\r
+           c = WC2MBC1ST(cc);\r
+         }\r
+\r
+         for (j = c; j < (1 << BYTEWIDTH); j++) {\r
+           if (num_literal)\r
+             fastmap[j] = 1;\r
+           if (ismbchar(j))\r
+             fastmap[j] = 1;\r
+         }\r
+       }\r
+       break;\r
+\r
+      case unused:     /* pacify gcc -Wall */\r
+       break;\r
+      }\r
+\r
+    /* Get here means we have successfully found the possible starting\r
+       characters of one path of the pattern.  We need not follow this\r
+       path any farther.  Instead, look at the next alternative\r
+       remembered in the stack.  */\r
+    if (stackp != stackb)\r
+      p = *stackp--;           /* pop */\r
+    else\r
+      break;\r
+  }\r
+  FREE_AND_RETURN_VOID(stackb);\r
+}\r
+\f\r
+/* adjust startpos value to the position between characters. */\r
+int\r
+re_adjust_startpos(bufp, string, size, startpos, range)\r
+     struct re_pattern_buffer *bufp;\r
+     const char *string;\r
+     int size, startpos, range;\r
+{\r
+  /* Update the fastmap now if not correct already.  */\r
+  if (!bufp->fastmap_accurate) {\r
+    re_compile_fastmap(bufp);\r
+  }\r
+\r
+  /* Adjust startpos for mbc string */\r
+  if (current_mbctype && startpos>0 && !(bufp->options&RE_OPTIMIZE_BMATCH)) {\r
+    int i = 0;\r
+\r
+    if (range > 0) {\r
+      while (i<size) {\r
+       i += mbclen(string[i]);\r
+       if (startpos <= i) {\r
+         startpos = i;\r
+         break;\r
+       }\r
+      }\r
+    }\r
+    else {\r
+      int w;\r
+\r
+      while (i<size) {\r
+       w = mbclen(string[i]);\r
+       if (startpos < i + w) {\r
+         startpos = i;\r
+         break;\r
+       }\r
+       i += w;\r
+      }\r
+    }\r
+  }\r
+  return startpos;\r
+}\r
+\f\r
+\r
+/* Using the compiled pattern in BUFP->buffer, first tries to match\r
+   STRING, starting first at index STARTPOS, then at STARTPOS + 1, and\r
+   so on.  RANGE is the number of places to try before giving up.  If\r
+   RANGE is negative, it searches backwards, i.e., the starting\r
+   positions tried are STARTPOS, STARTPOS - 1, etc.  STRING is of SIZE.\r
+   In REGS, return the indices of STRING that matched the entire\r
+   BUFP->buffer and its contained subexpressions.\r
+\r
+   The value returned is the position in the strings at which the match\r
+   was found, or -1 if no match was found, or -2 if error (such as\r
+   failure stack overflow).  */\r
+\r
+int\r
+re_search(bufp, string, size, startpos, range, regs)\r
+     struct re_pattern_buffer *bufp;\r
+     const char *string;\r
+     int size, startpos, range;\r
+     struct re_registers *regs;\r
+{\r
+  register char *fastmap = bufp->fastmap;\r
+  int val, anchor = 0;\r
+\r
+  /* Check for out-of-range starting position.  */\r
+  if (startpos < 0  ||  startpos > size)\r
+    return -1;\r
+\r
+  /* Update the fastmap now if not correct already.  */\r
+  if (fastmap && !bufp->fastmap_accurate) {\r
+    re_compile_fastmap(bufp);\r
+  }\r
+\r
+\r
+  /* If the search isn't to be a backwards one, don't waste time in a\r
+     search for a pattern that must be anchored.  */\r
+  if (bufp->used > 0) {\r
+    switch ((enum regexpcode)bufp->buffer[0]) {\r
+    case begbuf:\r
+    begbuf_match:\r
+      if (range > 0) {\r
+       if (startpos > 0) return -1;\r
+       else {\r
+         val = re_match(bufp, string, size, 0, regs);\r
+         if (val >= 0) return 0;\r
+         return val;\r
+       }\r
+      }\r
+      break;\r
+\r
+    case begline:\r
+      anchor = 1;\r
+      break;\r
+\r
+    case begpos:\r
+      val = re_match(bufp, string, size, startpos, regs);\r
+      if (val >= 0) return startpos;\r
+      return val;\r
+\r
+    default:\r
+      break;\r
+    }\r
+  }\r
+  if (bufp->options & RE_OPTIMIZE_ANCHOR) {\r
+    if (bufp->options&RE_OPTION_SINGLELINE) {\r
+      goto begbuf_match;\r
+    }\r
+    anchor = 1;\r
+  }\r
+\r
+  if (bufp->must) {\r
+    int len = ((unsigned char*)bufp->must)[0];\r
+    int pos, pbeg, pend;\r
+\r
+    pbeg = startpos;\r
+    pend = startpos + range;\r
+    if (pbeg > pend) {         /* swap pbeg,pend */\r
+      pos = pend; pend = pbeg; pbeg = pos;\r
+    }\r
+    pend = size;\r
+    if (bufp->options & RE_OPTIMIZE_NO_BM) {\r
+      pos = slow_search(bufp->must+1, len,\r
+                       string+pbeg, pend-pbeg,\r
+                       MAY_TRANSLATE()?translate:0);\r
+    }\r
+    else {\r
+      pos = bm_search(bufp->must+1, len,\r
+                     string+pbeg, pend-pbeg,\r
+                     bufp->must_skip,\r
+                     MAY_TRANSLATE()?translate:0);\r
+    }\r
+    if (pos == -1) return -1;\r
+    if (range > 0 && (bufp->options & RE_OPTIMIZE_EXACTN)) {\r
+      startpos += pos;\r
+      range -= pos;\r
+      if (range < 0) return -1;\r
+    }\r
+  }\r
+\r
+  for (;;) {\r
+    /* If a fastmap is supplied, skip quickly over characters that\r
+       cannot possibly be the start of a match.  Note, however, that\r
+       if the pattern can possibly match the null string, we must\r
+       test it at each starting point so that we take the first null\r
+       string we get.  */\r
+\r
+    if (fastmap && startpos < size\r
+       && bufp->can_be_null != 1 && !(anchor && startpos == 0)) {\r
+      if (range > 0) { /* Searching forwards.  */\r
+       register unsigned char *p, c;\r
+       int irange = range;\r
+\r
+       p = (unsigned char*)string+startpos;\r
+\r
+       while (range > 0) {\r
+         c = *p++;\r
+         if (ismbchar(c)) {\r
+           int len;\r
+\r
+           if (fastmap[c])\r
+             break;\r
+           len = mbclen(c) - 1;\r
+           while (len--) {\r
+             c = *p++;\r
+             range--;\r
+             if (fastmap[c] == 2)\r
+               goto startpos_adjust;\r
+           }\r
+         }\r
+         else {\r
+           if (fastmap[MAY_TRANSLATE() ? translate[c] : c])\r
+             break;\r
+         }\r
+         range--;\r
+       }\r
+      startpos_adjust:\r
+       startpos += irange - range;\r
+      }\r
+      else {                   /* Searching backwards.  */\r
+       register unsigned char c;\r
+\r
+       c = string[startpos];\r
+       c &= 0xff;\r
+       if (MAY_TRANSLATE() ? !fastmap[translate[c]] : !fastmap[c])\r
+         goto advance;\r
+      }\r
+    }\r
+\r
+    if (startpos > size) return -1;\r
+    if ((anchor || !bufp->can_be_null) && range > 0 && size > 0 && startpos == size)\r
+      return -1;\r
+    val = re_match(bufp, string, size, startpos, regs);\r
+    if (val >= 0) return startpos;\r
+    if (val == -2) return -2;\r
+\r
+#ifndef NO_ALLOCA\r
+#ifdef C_ALLOCA\r
+    alloca(0);\r
+#endif /* C_ALLOCA */\r
+#endif /* NO_ALLOCA */\r
+\r
+    if (range > 0) {\r
+      if (anchor && startpos < size &&\r
+         (startpos < 1 || string[startpos-1] != '\n')) {\r
+       while (range > 0 && string[startpos] != '\n') {\r
+         range--;\r
+         startpos++;\r
+       }\r
+      }\r
+    }\r
+\r
+  advance:\r
+    if (!range) \r
+      break;\r
+    else if (range > 0) {\r
+      const char *d = string + startpos;\r
+\r
+      if (ismbchar(*d)) {\r
+       int len = mbclen(*d) - 1;\r
+       range-=len, startpos+=len;\r
+       if (!range)\r
+         break;\r
+      }\r
+      range--, startpos++;\r
+    }\r
+    else {\r
+      range++, startpos--;\r
+      {\r
+       const char *s, *d, *p;\r
+\r
+       s = string; d = string + startpos;\r
+       for (p = d; p-- > s && ismbchar(*p); )\r
+         /* --p >= s would not work on 80[12]?86. \r
+            (when the offset of s equals 0 other than huge model.)  */\r
+         ;\r
+       if (!((d - p) & 1)) {\r
+         if (!range)\r
+           break;\r
+         range++, startpos--;\r
+       }\r
+      }\r
+    }\r
+  }\r
+  return -1;\r
+}\r
+\r
+\r
+\f\r
+\r
+/* The following are used for re_match, defined below:  */\r
+\r
+/* Accessing macros used in re_match: */\r
+\r
+#define IS_ACTIVE(R)  ((R).bits.is_active)\r
+#define MATCHED_SOMETHING(R)  ((R).bits.matched_something)\r
+\r
+\r
+/* Macros used by re_match:  */\r
+\r
+/* I.e., regstart, regend, and reg_info.  */\r
+#define NUM_REG_ITEMS  3\r
+\r
+/* I.e., ptr and count.  */\r
+#define NUM_COUNT_ITEMS 2\r
+\r
+/* Individual items aside from the registers.  */\r
+#define NUM_NONREG_ITEMS 4\r
+\r
+/* We push at most this many things on the stack whenever we\r
+   fail.  The `+ 2' refers to PATTERN_PLACE and STRING_PLACE, which are\r
+   arguments to the PUSH_FAILURE_POINT macro.  */\r
+#define MAX_NUM_FAILURE_ITEMS   (num_regs * NUM_REG_ITEMS + NUM_NONREG_ITEMS)\r
+\r
+/* We push this many things on the stack whenever we fail.  */\r
+#define NUM_FAILURE_ITEMS  (last_used_reg * NUM_REG_ITEMS + NUM_NONREG_ITEMS + 1)\r
+\r
+/* This pushes counter information for succeed_n and jump_n */\r
+#define PUSH_FAILURE_COUNT(ptr)                                                \\r
+  do {                                                                 \\r
+    int c;                                                             \\r
+    EXTRACT_NUMBER(c, ptr);                                            \\r
+    ENSURE_FAIL_STACK(NUM_COUNT_ITEMS);                                        \\r
+    *stackp++ = (unsigned char*)(long)c;                               \\r
+    *stackp++ = (ptr);                                                 \\r
+    num_failure_counts++;                                              \\r
+  } while (0)\r
+\r
+/* This pushes most of the information about the current state we will want\r
+   if we ever fail back to it.  */\r
+\r
+#define PUSH_FAILURE_POINT(pattern_place, string_place)                        \\r
+  do {                                                                 \\r
+    long last_used_reg, this_reg;                                      \\r
+                                                                       \\r
+    /* Find out how many registers are active or have been matched.    \\r
+       (Aside from register zero, which is only set at the end.) */    \\r
+    for (last_used_reg = num_regs-1; last_used_reg > 0; last_used_reg--)\\r
+      if (!REG_UNSET(regstart[last_used_reg]))                         \\r
+        break;                                                         \\r
+                                                                       \\r
+    ENSURE_FAIL_STACK(NUM_FAILURE_ITEMS);                              \\r
+    *stackp++ = (unsigned char*)(long)num_failure_counts;              \\r
+    num_failure_counts = 0;                                            \\r
+                                                                       \\r
+    /* Now push the info for each of those registers.  */              \\r
+    for (this_reg = 1; this_reg <= last_used_reg; this_reg++) {                \\r
+      *stackp++ = regstart[this_reg];                                  \\r
+      *stackp++ = regend[this_reg];                                    \\r
+      *stackp++ = reg_info[this_reg].word;                             \\r
+    }                                                                  \\r
+                                                                       \\r
+    /* Push how many registers we saved.  */                           \\r
+    *stackp++ = (unsigned char*)last_used_reg;                         \\r
+                                                                       \\r
+    *stackp++ = pattern_place;                                          \\r
+    *stackp++ = string_place;                                           \\r
+    *stackp++ = (unsigned char*)(long)options; /* current option status */     \\r
+    *stackp++ = (unsigned char*)0; /* non-greedy flag */               \\r
+  } while(0)\r
+\r
+#define NON_GREEDY ((unsigned char*)1)\r
+\r
+#define POP_FAILURE_COUNT()                                            \\r
+  do {                                                                 \\r
+    unsigned char *ptr = *--stackp;                                    \\r
+    int count = (long)*--stackp;                                       \\r
+    STORE_NUMBER(ptr, count);                                          \\r
+  } while (0)\r
+\r
+/* This pops what PUSH_FAILURE_POINT pushes.  */\r
+\r
+#define POP_FAILURE_POINT()                                            \\r
+  do {                                                                 \\r
+    long temp;                                                         \\r
+    stackp -= NUM_NONREG_ITEMS;        /* Remove failure points (and flag). */ \\r
+    temp = (long)*--stackp;    /* How many regs pushed.  */            \\r
+    temp *= NUM_REG_ITEMS;     /* How much to take off the stack.  */  \\r
+    stackp -= temp;            /* Remove the register info.  */        \\r
+    temp = (long)*--stackp;    /* How many counters pushed.  */        \\r
+    while (temp--) {                                                   \\r
+      POP_FAILURE_COUNT();      /* Remove the counter info.  */                \\r
+    }                                                                  \\r
+    num_failure_counts = 0;    /* Reset num_failure_counts.  */        \\r
+  } while(0)\r
+\r
+     /* Registers are set to a sentinel when they haven't yet matched.  */\r
+#define REG_UNSET_VALUE ((unsigned char*)-1)\r
+#define REG_UNSET(e) ((e) == REG_UNSET_VALUE)\r
+\r
+#define PREFETCH if (d == dend) goto fail\r
+\r
+     /* Call this when have matched something; it sets `matched' flags for the\r
+   registers corresponding to the subexpressions of which we currently\r
+   are inside.  */\r
+#define SET_REGS_MATCHED                                               \\r
+  do { unsigned this_reg;                                              \\r
+    for (this_reg = 0; this_reg < num_regs; this_reg++) {              \\r
+        if (IS_ACTIVE(reg_info[this_reg]))                             \\r
+          MATCHED_SOMETHING(reg_info[this_reg]) = 1;                   \\r
+        else                                                           \\r
+          MATCHED_SOMETHING(reg_info[this_reg]) = 0;                   \\r
+      }                                                                \\r
+  } while(0)\r
+\r
+#define AT_STRINGS_BEG(d)  ((d) == string)\r
+#define AT_STRINGS_END(d)  ((d) == dend)\r
+\r
+#define IS_A_LETTER(d) (SYNTAX(*(d)) == Sword ||                       \\r
+                       (current_mbctype ?                              \\r
+                        (re_mbctab[*(d)] && ((d)+mbclen(*(d)))<=dend): \\r
+                        SYNTAX(*(d)) == Sword2))\r
+\r
+#define PREV_IS_A_LETTER(d) ((current_mbctype == MBCTYPE_SJIS)?                \\r
+                            IS_A_LETTER((d)-(!AT_STRINGS_BEG((d)-1)&&  \\r
+                                             ismbchar((d)[-2])?2:1)):  \\r
+                             ((current_mbctype && ((d)[-1] >= 0x80)) ||        \\r
+                             IS_A_LETTER((d)-1)))\r
+\r
+static void\r
+init_regs(regs, num_regs)\r
+     struct re_registers *regs;\r
+     unsigned int num_regs;\r
+{\r
+  int i;\r
+\r
+  regs->num_regs = num_regs;\r
+  if (num_regs < RE_NREGS)\r
+    num_regs = RE_NREGS;\r
+\r
+  if (regs->allocated == 0) {\r
+    regs->beg = TMALLOC(num_regs, int);\r
+    regs->end = TMALLOC(num_regs, int);\r
+    regs->allocated = num_regs;\r
+  }\r
+  else if (regs->allocated < num_regs) {\r
+    TREALLOC(regs->beg, num_regs, int);\r
+    TREALLOC(regs->end, num_regs, int);\r
+    regs->allocated = num_regs;\r
+  }\r
+  for (i=0; i<num_regs; i++) {\r
+    regs->beg[i] = regs->end[i] = -1;\r
+  }\r
+}\r
+\r
+/* Match the pattern described by BUFP against STRING, which is of\r
+   SIZE.  Start the match at index POS in STRING.  In REGS, return the\r
+   indices of STRING that matched the entire BUFP->buffer and its\r
+   contained subexpressions.\r
+\r
+   If bufp->fastmap is nonzero, then it had better be up to date.\r
+\r
+   The reason that the data to match are specified as two components\r
+   which are to be regarded as concatenated is so this function can be\r
+   used directly on the contents of an Emacs buffer.\r
+\r
+   -1 is returned if there is no match.  -2 is returned if there is an\r
+   error (such as match stack overflow).  Otherwise the value is the\r
+   length of the substring which was matched.  */\r
+\r
+int\r
+re_match(bufp, string_arg, size, pos, regs)\r
+     struct re_pattern_buffer *bufp;\r
+     const char *string_arg;\r
+     int size, pos;\r
+     struct re_registers *regs;\r
+{\r
+  register unsigned char *p = (unsigned char*)bufp->buffer;\r
+  unsigned char *p1;\r
+\r
+  /* Pointer to beyond end of buffer.  */\r
+  register unsigned char *pend = p + bufp->used;\r
+\r
+  unsigned num_regs = bufp->re_nsub;\r
+\r
+  unsigned char *string = (unsigned char*)string_arg;\r
+\r
+  register unsigned char *d, *dend;\r
+  register int mcnt;                   /* Multipurpose.  */\r
+  int options = bufp->options;\r
+\r
+  /* Failure point stack.  Each place that can handle a failure further\r
+     down the line pushes a failure point on this stack.  It consists of\r
+     restart, regend, and reg_info for all registers corresponding to the\r
+     subexpressions we're currently inside, plus the number of such\r
+     registers, and, finally, two char *'s.  The first char * is where to\r
+     resume scanning the pattern; the second one is where to resume\r
+     scanning the strings.  If the latter is zero, the failure point is a\r
+     ``dummy''; if a failure happens and the failure point is a dummy, it\r
+     gets discarded and the next next one is tried.  */\r
+\r
+  unsigned char **stacka;\r
+  unsigned char **stackb;\r
+  unsigned char **stackp;\r
+  unsigned char **stacke;\r
+\r
+  /* Information on the contents of registers. These are pointers into\r
+     the input strings; they record just what was matched (on this\r
+     attempt) by a subexpression part of the pattern, that is, the\r
+     regnum-th regstart pointer points to where in the pattern we began\r
+     matching and the regnum-th regend points to right after where we\r
+     stopped matching the regnum-th subexpression.  (The zeroth register\r
+     keeps track of what the whole pattern matches.)  */\r
+\r
+  unsigned char **regstart = bufp->regstart;\r
+  unsigned char **regend = bufp->regend;\r
+\r
+  /* If a group that's operated upon by a repetition operator fails to\r
+     match anything, then the register for its start will need to be\r
+     restored because it will have been set to wherever in the string we\r
+     are when we last see its open-group operator.  Similarly for a\r
+     register's end.  */\r
+  unsigned char **old_regstart = bufp->old_regstart;\r
+  unsigned char **old_regend = bufp->old_regend;\r
+\r
+  /* The is_active field of reg_info helps us keep track of which (possibly\r
+     nested) subexpressions we are currently in. The matched_something\r
+     field of reg_info[reg_num] helps us tell whether or not we have\r
+     matched any of the pattern so far this time through the reg_num-th\r
+     subexpression.  These two fields get reset each time through any\r
+     loop their register is in.  */\r
+\r
+  register_info_type *reg_info = bufp->reg_info;\r
+\r
+  /* The following record the register info as found in the above\r
+     variables when we find a match better than any we've seen before. \r
+     This happens as we backtrack through the failure points, which in\r
+     turn happens only if we have not yet matched the entire string.  */\r
+\r
+  unsigned best_regs_set = 0;\r
+  unsigned char **best_regstart = bufp->best_regstart;\r
+  unsigned char **best_regend = bufp->best_regend;\r
+\r
+  int num_failure_counts = 0;\r
+\r
+  if (regs) {\r
+    init_regs(regs, num_regs);\r
+  }\r
+\r
+  /* Initialize the stack. */\r
+  stacka = RE_TALLOC(MAX_NUM_FAILURE_ITEMS * NFAILURES, unsigned char*);\r
+  stackb = stacka;\r
+  stackp = stackb;\r
+  stacke = &stackb[MAX_NUM_FAILURE_ITEMS * NFAILURES];\r
+\r
+#ifdef DEBUG_REGEX\r
+  fprintf(stderr, "Entering re_match(%s)\n", string_arg);\r
+#endif\r
+\r
+  /* Initialize subexpression text positions to -1 to mark ones that no\r
+     ( or ( and ) or ) has been seen for. Also set all registers to\r
+     inactive and mark them as not having matched anything or ever\r
+     failed. */\r
+  for (mcnt = 0; mcnt < num_regs; mcnt++) {\r
+    regstart[mcnt] = regend[mcnt]\r
+      = old_regstart[mcnt] = old_regend[mcnt]\r
+      = best_regstart[mcnt] = best_regend[mcnt] = REG_UNSET_VALUE;\r
+#ifdef __CHECKER__\r
+    reg_info[mcnt].word = 0;\r
+#endif\r
+    IS_ACTIVE (reg_info[mcnt]) = 0;\r
+    MATCHED_SOMETHING (reg_info[mcnt]) = 0;\r
+  }\r
+\r
+  /* Set up pointers to ends of strings.\r
+     Don't allow the second string to be empty unless both are empty.  */\r
+\r
+\r
+  /* `p' scans through the pattern as `d' scans through the data. `dend'\r
+     is the end of the input string that `d' points within. `d' is\r
+     advanced into the following input string whenever necessary, but\r
+     this happens before fetching; therefore, at the beginning of the\r
+     loop, `d' can be pointing at the end of a string, but it cannot\r
+     equal string2.  */\r
+\r
+  d = string + pos, dend = string + size;\r
+\r
+  /* This loops over pattern commands.  It exits by returning from the\r
+     function if match is complete, or it drops through if match fails\r
+     at this starting point in the input data.  */\r
+\r
+  for (;;) {\r
+#ifdef DEBUG_REGEX\r
+    fprintf(stderr,\r
+           "regex loop(%d):  matching 0x%02d\n",\r
+           p - (unsigned char*)bufp->buffer,\r
+           *p);\r
+#endif\r
+    /* End of pattern means we might have succeeded.  */\r
+    if (p == pend) {\r
+      /* If not end of string, try backtracking.  Otherwise done.  */\r
+      if ((bufp->options & RE_OPTION_LONGEST) && d != dend) {\r
+       if (best_regs_set) /* non-greedy, no need to backtrack */\r
+         goto restore_best_regs;\r
+       while (stackp != stackb && stackp[-1] == NON_GREEDY) {\r
+         if (best_regs_set) /* non-greedy, no need to backtrack */\r
+           goto restore_best_regs;\r
+         POP_FAILURE_POINT();\r
+       }\r
+       if (stackp != stackb) {\r
+         /* More failure points to try.  */\r
+\r
+         /* If exceeds best match so far, save it.  */\r
+         if (! best_regs_set || (d > best_regend[0])) {\r
+           best_regs_set = 1;\r
+           best_regend[0] = d; /* Never use regstart[0].  */\r
+\r
+           for (mcnt = 1; mcnt < num_regs; mcnt++) {\r
+             best_regstart[mcnt] = regstart[mcnt];\r
+             best_regend[mcnt] = regend[mcnt];\r
+           }\r
+         }\r
+         goto fail;           \r
+       }\r
+       /* If no failure points, don't restore garbage.  */\r
+       else if (best_regs_set) {\r
+       restore_best_regs:\r
+         /* Restore best match.  */\r
+         d = best_regend[0];\r
+\r
+         for (mcnt = 0; mcnt < num_regs; mcnt++) {\r
+           regstart[mcnt] = best_regstart[mcnt];\r
+           regend[mcnt] = best_regend[mcnt];\r
+         }\r
+       }\r
+      }\r
+\r
+      /* If caller wants register contents data back, convert it \r
+        to indices.  */\r
+      if (regs) {\r
+       regs->beg[0] = pos;\r
+       regs->end[0] = d - string;\r
+       for (mcnt = 1; mcnt < num_regs; mcnt++) {\r
+         if (REG_UNSET(regend[mcnt])) {\r
+           regs->beg[mcnt] = -1;\r
+           regs->end[mcnt] = -1;\r
+           continue;\r
+         }\r
+         regs->beg[mcnt] = regstart[mcnt] - string;\r
+         regs->end[mcnt] = regend[mcnt] - string;\r
+       }\r
+      }\r
+      FREE_AND_RETURN(stackb, (d - pos - string));\r
+    }\r
+\r
+    /* Otherwise match next pattern command.  */\r
+#ifdef SWITCH_ENUM_BUG\r
+    switch ((int)((enum regexpcode)*p++))\r
+#else\r
+    switch ((enum regexpcode)*p++)\r
+#endif\r
+      {\r
+       /* ( [or `(', as appropriate] is represented by start_memory,\r
+          ) by stop_memory.  Both of those commands are followed by\r
+          a register number in the next byte.  The text matched\r
+          within the ( and ) is recorded under that number.  */\r
+      case start_memory:\r
+       old_regstart[*p] = regstart[*p];\r
+       regstart[*p] = d;\r
+       IS_ACTIVE(reg_info[*p]) = 1;\r
+       MATCHED_SOMETHING(reg_info[*p]) = 0;\r
+       p += 2;\r
+       continue;\r
+\r
+      case stop_memory:\r
+       old_regend[*p] = regend[*p];\r
+       regend[*p] = d;\r
+       IS_ACTIVE(reg_info[*p]) = 0;\r
+       p += 2;\r
+       continue;\r
+\r
+      case start_paren:\r
+      case stop_paren:\r
+       break;\r
+\r
+       /* \<digit> has been turned into a `duplicate' command which is\r
+          followed by the numeric value of <digit> as the register number.  */\r
+      case duplicate:\r
+       {\r
+         int regno = *p++;   /* Get which register to match against */\r
+         register unsigned char *d2, *dend2;\r
+\r
+         /* Check if there's corresponding group */\r
+         if (regno >= num_regs) goto fail;\r
+         /* Check if corresponding group is still open */\r
+         if (IS_ACTIVE(reg_info[regno])) goto fail;\r
+\r
+         /* Where in input to try to start matching.  */\r
+         d2 = regstart[regno];\r
+         if (REG_UNSET(d2)) goto fail;\r
+\r
+         /* Where to stop matching; if both the place to start and\r
+            the place to stop matching are in the same string, then\r
+            set to the place to stop, otherwise, for now have to use\r
+            the end of the first string.  */\r
+\r
+         dend2 = regend[regno];\r
+         if (REG_UNSET(dend2)) goto fail;\r
+         for (;;) {\r
+           /* At end of register contents => success */\r
+           if (d2 == dend2) break;\r
+\r
+           /* If necessary, advance to next segment in data.  */\r
+           PREFETCH;\r
+\r
+           /* How many characters left in this segment to match.  */\r
+           mcnt = dend - d;\r
+\r
+           /* Want how many consecutive characters we can match in\r
+              one shot, so, if necessary, adjust the count.  */\r
+           if (mcnt > dend2 - d2)\r
+             mcnt = dend2 - d2;\r
+\r
+           /* Compare that many; failure if mismatch, else move\r
+              past them.  */\r
+           if ((options & RE_OPTION_IGNORECASE) \r
+               ? memcmp_translate(d, d2, mcnt) \r
+               : memcmp((char*)d, (char*)d2, mcnt))\r
+             goto fail;\r
+           d += mcnt, d2 += mcnt;\r
+         }\r
+       }\r
+       break;\r
+\r
+      case start_nowidth:\r
+       PUSH_FAILURE_POINT(0, d);\r
+       if (stackp - stackb > RE_DUP_MAX) {\r
+          FREE_AND_RETURN(stackb,(-2));\r
+       }\r
+       EXTRACT_NUMBER_AND_INCR(mcnt, p);\r
+       STORE_NUMBER(p+mcnt, stackp - stackb);\r
+       continue;\r
+\r
+      case stop_nowidth:\r
+       EXTRACT_NUMBER_AND_INCR(mcnt, p);\r
+       stackp = stackb + mcnt;\r
+       d = stackp[-3];\r
+       POP_FAILURE_POINT();\r
+       continue;\r
+\r
+      case stop_backtrack:\r
+       EXTRACT_NUMBER_AND_INCR(mcnt, p);\r
+       stackp = stackb + mcnt;\r
+       POP_FAILURE_POINT();\r
+       continue;\r
+\r
+      case pop_and_fail:\r
+       EXTRACT_NUMBER(mcnt, p+1);\r
+       stackp = stackb + mcnt;\r
+       POP_FAILURE_POINT();\r
+       goto fail;\r
+\r
+      case anychar:\r
+       PREFETCH;\r
+       if (ismbchar(*d)) {\r
+         if (d + mbclen(*d) > dend)\r
+           goto fail;\r
+         SET_REGS_MATCHED;\r
+         d += mbclen(*d);\r
+         break;\r
+       }\r
+       if (!(options&RE_OPTION_MULTILINE)\r
+           && (TRANSLATE_P() ? translate[*d] : *d) == '\n')\r
+         goto fail;\r
+       SET_REGS_MATCHED;\r
+       d++;\r
+       break;\r
+\r
+      case anychar_repeat:\r
+       for (;;) {\r
+         PUSH_FAILURE_POINT(p, d);\r
+         PREFETCH;\r
+         if (ismbchar(*d)) {\r
+           if (d + mbclen(*d) > dend)\r
+             goto fail;\r
+           SET_REGS_MATCHED;\r
+           d += mbclen(*d);\r
+           continue;\r
+         }\r
+         if (!(options&RE_OPTION_MULTILINE) &&\r
+             (TRANSLATE_P() ? translate[*d] : *d) == '\n')\r
+           goto fail;\r
+         SET_REGS_MATCHED;\r
+         d++;\r
+       }\r
+       break;\r
+\r
+      case charset:\r
+      case charset_not:\r
+       {\r
+         int not;          /* Nonzero for charset_not.  */\r
+         int part = 0;     /* true if matched part of mbc */\r
+         unsigned char *dsave = d + 1;\r
+         int cc, c;\r
+\r
+         PREFETCH;\r
+         cc = c = (unsigned char)*d++;\r
+         if (ismbchar(c)) {\r
+           if (d + mbclen(c) - 1 <= dend) {\r
+             MBC2WC(c, d);\r
+           }\r
+         }\r
+         else if (TRANSLATE_P())\r
+           cc = c = (unsigned char)translate[c];\r
+\r
+         not = is_in_list(c, p);\r
+         if (!not && cc != c) {\r
+             part = not = is_in_list(cc, p);\r
+         }\r
+         if (*(p - 1) == (unsigned char)charset_not) {\r
+           not = !not;\r
+         }\r
+         if (!not) goto fail;\r
+\r
+         p += 1 + *p + 2 + EXTRACT_UNSIGNED(&p[1 + *p])*8;\r
+         SET_REGS_MATCHED;\r
+\r
+         if (part) d = dsave;\r
+         break;\r
+       }\r
+\r
+      case begline:\r
+       if (size == 0 || AT_STRINGS_BEG(d))\r
+         break;\r
+       if (d[-1] == '\n' && !AT_STRINGS_END(d))\r
+         break;\r
+       goto fail;\r
+\r
+      case endline:\r
+       if (AT_STRINGS_END(d)) {\r
+         if (size == 0 || d[-1] != '\n')\r
+           break;\r
+       }\r
+       else if (*d == '\n')\r
+         break;\r
+       goto fail;\r
+\r
+       /* Match at the very beginning of the string. */\r
+      case begbuf:\r
+       if (AT_STRINGS_BEG(d))\r
+         break;\r
+       goto fail;\r
+\r
+       /* Match at the very end of the data. */\r
+      case endbuf:\r
+       if (AT_STRINGS_END(d))\r
+         break;\r
+       goto fail;\r
+\r
+       /* Match at the very end of the data. */\r
+      case endbuf2:\r
+       if (AT_STRINGS_END(d)) {\r
+         if (size == 0 || d[-1] != '\n')\r
+           break;\r
+       }\r
+       /* .. or newline just before the end of the data. */\r
+       if (*d == '\n' && AT_STRINGS_END(d+1))\r
+         break;\r
+       goto fail;\r
+\r
+       /* `or' constructs are handled by starting each alternative with\r
+          an on_failure_jump that points to the start of the next\r
+          alternative.  Each alternative except the last ends with a\r
+          jump to the joining point.  (Actually, each jump except for\r
+          the last one really jumps to the following jump, because\r
+          tensioning the jumps is a hassle.)  */\r
+\r
+       /* The start of a stupid repeat has an on_failure_jump that points\r
+          past the end of the repeat text. This makes a failure point so \r
+          that on failure to match a repetition, matching restarts past\r
+          as many repetitions have been found with no way to fail and\r
+          look for another one.  */\r
+\r
+       /* A smart repeat is similar but loops back to the on_failure_jump\r
+          so that each repetition makes another failure point.  */\r
+\r
+       /* Match at the starting position. */\r
+      case begpos:\r
+       if (d - string == pos)\r
+         break;\r
+       goto fail;\r
+\r
+      case on_failure_jump:\r
+      on_failure:\r
+      EXTRACT_NUMBER_AND_INCR(mcnt, p);\r
+      PUSH_FAILURE_POINT(p + mcnt, d);\r
+      continue;\r
+\r
+      /* The end of a smart repeat has a maybe_finalize_jump back.\r
+        Change it either to a finalize_jump or an ordinary jump.  */\r
+      case maybe_finalize_jump:\r
+       EXTRACT_NUMBER_AND_INCR(mcnt, p);\r
+       p1 = p;\r
+\r
+       /* Compare the beginning of the repeat with what in the\r
+          pattern follows its end. If we can establish that there\r
+          is nothing that they would both match, i.e., that we\r
+          would have to backtrack because of (as in, e.g., `a*a')\r
+          then we can change to finalize_jump, because we'll\r
+          never have to backtrack.\r
+\r
+          This is not true in the case of alternatives: in\r
+          `(a|ab)*' we do need to backtrack to the `ab' alternative\r
+          (e.g., if the string was `ab').  But instead of trying to\r
+          detect that here, the alternative has put on a dummy\r
+          failure point which is what we will end up popping.  */\r
+\r
+       /* Skip over open/close-group commands.  */\r
+       while (p1 + 2 < pend) {\r
+         if ((enum regexpcode)*p1 == stop_memory ||\r
+             (enum regexpcode)*p1 == start_memory)\r
+           p1 += 3;    /* Skip over args, too.  */\r
+         else if (/*(enum regexpcode)*p1 == start_paren ||*/\r
+                  (enum regexpcode)*p1 == stop_paren)\r
+             p1 += 1;\r
+         else\r
+           break;\r
+       }\r
+\r
+       if (p1 == pend)\r
+         p[-3] = (unsigned char)finalize_jump;\r
+       else if (*p1 == (unsigned char)exactn ||\r
+                *p1 == (unsigned char)endline) {\r
+         register int c = *p1 == (unsigned char)endline ? '\n' : p1[2];\r
+         register unsigned char *p2 = p + mcnt;\r
+           /* p2[0] ... p2[2] are an on_failure_jump.\r
+              Examine what follows that.  */\r
+         if (p2[3] == (unsigned char)exactn && p2[5] != c)\r
+           p[-3] = (unsigned char)finalize_jump;\r
+         else if (p2[3] == (unsigned char)charset ||\r
+                  p2[3] == (unsigned char)charset_not) {\r
+           int not;\r
+           if (ismbchar(c)) {\r
+             unsigned char *pp = p1+3;\r
+             MBC2WC(c, pp);\r
+           }\r
+           /* `is_in_list()' is TRUE if c would match */\r
+           /* That means it is not safe to finalize.  */\r
+           not = is_in_list(c, p2 + 4);\r
+           if (p2[3] == (unsigned char)charset_not)\r
+             not = !not;\r
+           if (!not)\r
+             p[-3] = (unsigned char)finalize_jump;\r
+         }\r
+       }\r
+       p -= 2;         /* Point at relative address again.  */\r
+       if (p[-1] != (unsigned char)finalize_jump) {\r
+         p[-1] = (unsigned char)jump;  \r
+         goto nofinalize;\r
+       }\r
+       /* Note fall through.  */\r
+\r
+       /* The end of a stupid repeat has a finalize_jump back to the\r
+          start, where another failure point will be made which will\r
+          point to after all the repetitions found so far.  */\r
+\r
+       /* Take off failure points put on by matching on_failure_jump \r
+          because didn't fail.  Also remove the register information\r
+          put on by the on_failure_jump.  */\r
+      case finalize_jump:\r
+       if (stackp > stackb && stackp[-3] == d) {\r
+         p = stackp[-4];\r
+         POP_FAILURE_POINT();\r
+         continue;\r
+       }\r
+       POP_FAILURE_POINT(); \r
+       /* Note fall through.  */\r
+\r
+      /* We need this opcode so we can detect where alternatives end\r
+        in `group_match_null_string_p' et al.  */\r
+      case jump_past_alt:\r
+       /* fall through */\r
+\r
+       /* Jump without taking off any failure points.  */\r
+      case jump:\r
+      nofinalize:\r
+        EXTRACT_NUMBER_AND_INCR(mcnt, p);\r
+        if (mcnt < 0 && stackp > stackb && stackp[-3] == d) /* avoid infinite loop */\r
+          goto fail;\r
+        p += mcnt;\r
+        continue;\r
+\r
+      case dummy_failure_jump:\r
+       /* Normally, the on_failure_jump pushes a failure point, which\r
+          then gets popped at finalize_jump.  We will end up at\r
+          finalize_jump, also, and with a pattern of, say, `a+', we\r
+          are skipping over the on_failure_jump, so we have to push\r
+          something meaningless for finalize_jump to pop.  */\r
+       PUSH_FAILURE_POINT(0, 0);\r
+       goto nofinalize;\r
+\r
+       /* At the end of an alternative, we need to push a dummy failure\r
+          point in case we are followed by a `finalize_jump', because\r
+          we don't want the failure point for the alternative to be\r
+          popped.  For example, matching `(a|ab)*' against `aab'\r
+          requires that we match the `ab' alternative.  */\r
+      case push_dummy_failure:\r
+       /* See comments just above at `dummy_failure_jump' about the\r
+          two zeroes.  */\r
+       p1 = p;\r
+       /* Skip over open/close-group commands.  */\r
+       while (p1 + 2 < pend) {\r
+         if ((enum regexpcode)*p1 == stop_memory ||\r
+             (enum regexpcode)*p1 == start_memory)\r
+           p1 += 3;    /* Skip over args, too.  */\r
+         else if (/*(enum regexpcode)*p1 == start_paren ||*/\r
+                  (enum regexpcode)*p1 == stop_paren)\r
+             p1 += 1;\r
+         else\r
+           break;\r
+       }\r
+       if ((enum regexpcode)*p1 == jump)\r
+         p[-1] = unused;\r
+       else\r
+         PUSH_FAILURE_POINT(0, 0);\r
+       break;\r
+\r
+       /* Have to succeed matching what follows at least n times.  Then\r
+          just handle like an on_failure_jump.  */\r
+      case succeed_n: \r
+       EXTRACT_NUMBER(mcnt, p + 2);\r
+       /* Originally, this is how many times we HAVE to succeed.  */\r
+       if (mcnt != 0) {\r
+         mcnt--;\r
+         p += 2;\r
+         PUSH_FAILURE_COUNT(p);\r
+         STORE_NUMBER_AND_INCR(p, mcnt);\r
+         PUSH_FAILURE_POINT(0, 0);\r
+       }\r
+       else  {\r
+         goto on_failure;\r
+       }\r
+       continue;\r
+\r
+      case jump_n:\r
+       EXTRACT_NUMBER(mcnt, p + 2);\r
+       /* Originally, this is how many times we CAN jump.  */\r
+       if (mcnt) {\r
+         mcnt--;\r
+         PUSH_FAILURE_COUNT(p + 2);\r
+         STORE_NUMBER(p + 2, mcnt);\r
+         goto nofinalize;           /* Do the jump without taking off\r
+                                       any failure points.  */\r
+       }\r
+       /* If don't have to jump any more, skip over the rest of command.  */\r
+       else      \r
+         p += 4;                    \r
+       continue;\r
+\r
+      case set_number_at:\r
+       EXTRACT_NUMBER_AND_INCR(mcnt, p);\r
+       p1 = p + mcnt;\r
+       EXTRACT_NUMBER_AND_INCR(mcnt, p);\r
+       STORE_NUMBER(p1, mcnt);\r
+       continue;\r
+\r
+      case try_next:\r
+       EXTRACT_NUMBER_AND_INCR(mcnt, p);\r
+       if (p + mcnt < pend) {\r
+         PUSH_FAILURE_POINT(p, d);\r
+         stackp[-1] = NON_GREEDY;\r
+       }\r
+       p += mcnt;\r
+       continue;\r
+\r
+      case finalize_push:\r
+       POP_FAILURE_POINT();\r
+       EXTRACT_NUMBER_AND_INCR(mcnt, p);\r
+        if (mcnt < 0 && stackp > stackb  && stackp[-3] == d) /* avoid infinite loop */\r
+          goto fail;\r
+       PUSH_FAILURE_POINT(p + mcnt, d);\r
+       stackp[-1] = NON_GREEDY;\r
+       continue;\r
+\r
+      case finalize_push_n:\r
+       EXTRACT_NUMBER(mcnt, p + 2); \r
+       /* Originally, this is how many times we CAN jump.  */\r
+       if (mcnt) {\r
+         int pos, i;\r
+\r
+         mcnt--;\r
+         STORE_NUMBER(p + 2, mcnt);\r
+         EXTRACT_NUMBER(pos, p);\r
+         EXTRACT_NUMBER(i, p+pos+5);\r
+         if (i > 0) goto nofinalize;\r
+         POP_FAILURE_POINT();\r
+         EXTRACT_NUMBER_AND_INCR(mcnt, p);\r
+         PUSH_FAILURE_POINT(p + mcnt, d);\r
+         stackp[-1] = NON_GREEDY;\r
+         p += 2;               /* skip n */\r
+       }\r
+       /* If don't have to push any more, skip over the rest of command.  */\r
+       else \r
+         p += 4;   \r
+       continue;\r
+\r
+       /* Ignore these.  Used to ignore the n of succeed_n's which\r
+          currently have n == 0.  */\r
+      case unused:\r
+       continue;\r
+\r
+      case casefold_on:\r
+       options |= RE_OPTION_IGNORECASE;\r
+       continue;\r
+\r
+      case casefold_off:\r
+       options &= ~RE_OPTION_IGNORECASE;\r
+       continue;\r
+\r
+      case option_set:\r
+       options = *p++;\r
+       continue;\r
+\r
+      case wordbound:\r
+       if (AT_STRINGS_BEG(d)) {\r
+         if (IS_A_LETTER(d)) break;\r
+         else goto fail;\r
+       }\r
+       if (AT_STRINGS_END(d)) {\r
+         if (PREV_IS_A_LETTER(d)) break;\r
+         else goto fail;\r
+       }\r
+       if (PREV_IS_A_LETTER(d) != IS_A_LETTER(d))\r
+         break;\r
+       goto fail;\r
+\r
+      case notwordbound:\r
+       if (AT_STRINGS_BEG(d)) {\r
+         if (IS_A_LETTER(d)) goto fail;\r
+         else break;\r
+       }\r
+       if (AT_STRINGS_END(d)) {\r
+         if (PREV_IS_A_LETTER(d)) goto fail;\r
+         else break;\r
+       }\r
+       if (PREV_IS_A_LETTER(d) != IS_A_LETTER(d))\r
+         goto fail;\r
+       break;\r
+\r
+      case wordbeg:\r
+       if (IS_A_LETTER(d) && (AT_STRINGS_BEG(d) || !PREV_IS_A_LETTER(d)))\r
+         break;\r
+       goto fail;\r
+\r
+      case wordend:\r
+       if (!AT_STRINGS_BEG(d) && PREV_IS_A_LETTER(d)\r
+           && (!IS_A_LETTER(d) || AT_STRINGS_END(d)))\r
+         break;\r
+       goto fail;\r
+\r
+      case wordchar:\r
+       PREFETCH;\r
+       if (!IS_A_LETTER(d))\r
+         goto fail;\r
+       if (ismbchar(*d) && d + mbclen(*d) - 1 < dend)\r
+         d += mbclen(*d) - 1;\r
+       d++;\r
+       SET_REGS_MATCHED;\r
+       break;\r
+\r
+      case notwordchar:\r
+       PREFETCH;\r
+       if (IS_A_LETTER(d))\r
+         goto fail;\r
+       if (ismbchar(*d) && d + mbclen(*d) - 1 < dend)\r
+         d += mbclen(*d) - 1;\r
+       d++;\r
+       SET_REGS_MATCHED;\r
+       break;\r
+\r
+      case exactn:\r
+       /* Match the next few pattern characters exactly.\r
+          mcnt is how many characters to match.  */\r
+       mcnt = *p++;\r
+       /* This is written out as an if-else so we don't waste time\r
+          testing `translate' inside the loop.  */\r
+       if (TRANSLATE_P()) {\r
+         do {\r
+           unsigned char c;\r
+\r
+           PREFETCH;\r
+           if (*p == 0xff) {\r
+             p++;  \r
+             if (!--mcnt\r
+                 || AT_STRINGS_END(d)\r
+                 || (unsigned char)*d++ != (unsigned char)*p++)\r
+               goto fail;\r
+             continue;\r
+           }\r
+           c = *d++;\r
+           if (ismbchar(c)) {\r
+             int n;\r
+\r
+             if (c != (unsigned char)*p++)\r
+               goto fail;\r
+             for (n = mbclen(c) - 1; n > 0; n--)\r
+               if (!--mcnt     /* redundant check if pattern was\r
+                                  compiled properly. */\r
+                   || AT_STRINGS_END(d)\r
+                   || (unsigned char)*d++ != (unsigned char)*p++)\r
+                 goto fail;\r
+             continue;\r
+           }\r
+           /* compiled code translation needed for ruby */\r
+           if ((unsigned char)translate[c] != (unsigned char)translate[*p++])\r
+             goto fail;\r
+         }\r
+         while (--mcnt);\r
+       }\r
+       else {\r
+         do {\r
+           PREFETCH;\r
+           if (*p == 0xff) {p++; mcnt--;}\r
+           if (*d++ != *p++) goto fail;\r
+         }\r
+         while (--mcnt);\r
+       }\r
+       SET_REGS_MATCHED;\r
+       break;\r
+      }\r
+#ifdef RUBY\r
+    CHECK_INTS;\r
+#endif\r
+    continue;  /* Successfully executed one pattern command; keep going.  */\r
+\r
+    /* Jump here if any matching operation fails. */\r
+  fail:\r
+    if (stackp != stackb) {\r
+      /* A restart point is known.  Restart there and pop it. */\r
+      short last_used_reg, this_reg;\r
+\r
+      /* If this failure point is from a dummy_failure_point, just\r
+        skip it.  */\r
+      if (stackp[-4] == 0 || (best_regs_set && stackp[-1] == NON_GREEDY)) {\r
+       POP_FAILURE_POINT();\r
+       goto fail;\r
+      }\r
+      stackp--;                /* discard greedy flag */\r
+      options = (long)*--stackp;\r
+      d = *--stackp;\r
+      p = *--stackp;\r
+      /* Restore register info.  */\r
+      last_used_reg = (long)*--stackp;\r
+\r
+      /* Make the ones that weren't saved -1 or 0 again. */\r
+      for (this_reg = num_regs - 1; this_reg > last_used_reg; this_reg--) {\r
+       regend[this_reg] = REG_UNSET_VALUE;\r
+       regstart[this_reg] = REG_UNSET_VALUE;\r
+       IS_ACTIVE(reg_info[this_reg]) = 0;\r
+       MATCHED_SOMETHING(reg_info[this_reg]) = 0;\r
+      }\r
+\r
+      /* And restore the rest from the stack.  */\r
+      for ( ; this_reg > 0; this_reg--) {\r
+       reg_info[this_reg].word = *--stackp;\r
+       regend[this_reg] = *--stackp;\r
+       regstart[this_reg] = *--stackp;\r
+      }\r
+      mcnt = (long)*--stackp;\r
+      while (mcnt--) {\r
+       POP_FAILURE_COUNT();\r
+      }\r
+      if (p < pend) {\r
+       int is_a_jump_n = 0;\r
+       int failed_paren = 0;\r
+\r
+       p1 = p;\r
+       /* If failed to a backwards jump that's part of a repetition\r
+          loop, need to pop this failure point and use the next one.  */\r
+       switch ((enum regexpcode)*p1) {\r
+       case jump_n:\r
+       case finalize_push_n:\r
+         is_a_jump_n = 1;\r
+       case maybe_finalize_jump:\r
+       case finalize_jump:\r
+       case finalize_push:\r
+       case jump:\r
+         p1++;\r
+         EXTRACT_NUMBER_AND_INCR(mcnt, p1);\r
+\r
+         if (mcnt >= 0) break; /* should be backward jump */\r
+         p1 += mcnt;\r
+\r
+         if (( is_a_jump_n && (enum regexpcode)*p1 == succeed_n) ||\r
+             (!is_a_jump_n && (enum regexpcode)*p1 == on_failure_jump)) {\r
+           if (failed_paren) {\r
+             p1++;\r
+             EXTRACT_NUMBER_AND_INCR(mcnt, p1);\r
+             PUSH_FAILURE_POINT(p1 + mcnt, d);\r
+           }\r
+           goto fail;\r
+         }\r
+         break;\r
+       default:\r
+         /* do nothing */;\r
+       }\r
+      }\r
+    }\r
+    else\r
+      break;   /* Matching at this starting point really fails.  */\r
+  }\r
+\r
+  if (best_regs_set)\r
+    goto restore_best_regs;\r
+\r
+  FREE_AND_RETURN(stackb,(-1));        /* Failure to match.  */\r
+}\r
+\r
+\r
+static int\r
+memcmp_translate(s1, s2, len)\r
+     unsigned char *s1, *s2;\r
+     register int len;\r
+{\r
+  register unsigned char *p1 = s1, *p2 = s2, c;\r
+  while (len) {\r
+    c = *p1++;\r
+    if (ismbchar(c)) {\r
+      int n;\r
+\r
+      if (c != *p2++) return 1;\r
+      for (n = mbclen(c) - 1; n > 0; n--)\r
+       if (!--len || *p1++ != *p2++)\r
+         return 1;\r
+    }\r
+    else\r
+      if (translate[c] != translate[*p2++])\r
+       return 1;\r
+    len--;\r
+  }\r
+  return 0;\r
+}\r
+\r
+void\r
+re_copy_registers(regs1, regs2)\r
+     struct re_registers *regs1, *regs2;\r
+{\r
+  int i;\r
+\r
+  if (regs1 == regs2) return;\r
+  if (regs1->allocated == 0) {\r
+    regs1->beg = TMALLOC(regs2->num_regs, int);\r
+    regs1->end = TMALLOC(regs2->num_regs, int);\r
+    regs1->allocated = regs2->num_regs;\r
+  }\r
+  else if (regs1->allocated < regs2->num_regs) {\r
+    TREALLOC(regs1->beg, regs2->num_regs, int);\r
+    TREALLOC(regs1->end, regs2->num_regs, int);\r
+    regs1->allocated = regs2->num_regs;\r
+  }\r
+  for (i=0; i<regs2->num_regs; i++) {\r
+    regs1->beg[i] = regs2->beg[i];\r
+    regs1->end[i] = regs2->end[i];\r
+  }\r
+  regs1->num_regs = regs2->num_regs;\r
+}\r
+\r
+void\r
+re_free_registers(regs)\r
+     struct re_registers *regs;\r
+{\r
+  if (regs->allocated == 0) return;\r
+  if (regs->beg) xfree(regs->beg);\r
+  if (regs->end) xfree(regs->end);\r
+}\r
+\r
+/* Functions for multi-byte support.\r
+   Created for grep multi-byte extension Jul., 1993 by t^2 (Takahiro Tanimoto)\r
+   Last change: Jul. 9, 1993 by t^2  */\r
+static const unsigned char mbctab_ascii[] = {\r
+  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\r
+  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\r
+  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\r
+  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\r
+  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\r
+  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\r
+  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\r
+  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\r
+  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\r
+  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\r
+  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\r
+  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\r
+  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\r
+  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\r
+  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\r
+  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0\r
+};\r
+\r
+static const unsigned char mbctab_euc[] = { /* 0xA1-0xFE */\r
+  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\r
+  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\r
+  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\r
+  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\r
+  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\r
+  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\r
+  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\r
+  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\r
+  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0,\r
+  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\r
+  0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,\r
+  1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,\r
+  1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,\r
+  1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,\r
+  1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,\r
+  1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0\r
+};\r
+\r
+static const unsigned char mbctab_sjis[] = { /* 0x80-0x9f,0xE0-0xFF */\r
+  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\r
+  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\r
+  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\r
+  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\r
+  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\r
+  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\r
+  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\r
+  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\r
+  1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,\r
+  1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,\r
+  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\r
+  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\r
+  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\r
+  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\r
+  1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,\r
+  1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1\r
+};\r
+\r
+static const unsigned char mbctab_utf8[] = {\r
+  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\r
+  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\r
+  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\r
+  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\r
+  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\r
+  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\r
+  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\r
+  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\r
+  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\r
+  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\r
+  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\r
+  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\r
+  1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,\r
+  1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,\r
+  2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,\r
+  3, 3, 3, 3, 3, 3, 3, 3, 4, 4, 4, 4, 5, 5, 0, 0\r
+};\r
+\r
+const unsigned char *re_mbctab = mbctab_ascii;\r
+\r
+void\r
+re_mbcinit(mbctype)\r
+     int mbctype;\r
+{\r
+  switch (mbctype) {\r
+  case MBCTYPE_ASCII:\r
+    re_mbctab = mbctab_ascii;\r
+    current_mbctype = MBCTYPE_ASCII;\r
+    break;\r
+  case MBCTYPE_EUC:\r
+    re_mbctab = mbctab_euc;\r
+    current_mbctype = MBCTYPE_EUC;\r
+    break;\r
+  case MBCTYPE_SJIS:\r
+    re_mbctab = mbctab_sjis;\r
+    current_mbctype = MBCTYPE_SJIS;\r
+    break;\r
+  case MBCTYPE_UTF8:\r
+    re_mbctab = mbctab_utf8;\r
+    current_mbctype = MBCTYPE_UTF8;\r
+    break;\r
+  }\r
+}\r
diff --git a/Src/regex/regex.h b/Src/regex/regex.h
new file mode 100644 (file)
index 0000000..85b34c9
--- /dev/null
@@ -0,0 +1,228 @@
+/* Definitions for data structures and routines for the regular\r
+   expression library, version 0.12.\r
+   Copyright (C) 1985,89,90,91,92,93,95,96,97,98 Free Software Foundation, Inc.\r
+\r
+   This file is part of the GNU C Library.  Its master source is NOT part of\r
+   the C library, however.  The master source lives in /gd/gnu/lib.\r
+\r
+   The GNU C Library is free software; you can redistribute it and/or\r
+   modify it under the terms of the GNU Library General Public License as\r
+   published by the Free Software Foundation; either version 2 of the\r
+   License, or (at your option) any later version.\r
+\r
+   The GNU C Library is distributed in the hope that it will be useful,\r
+   but WITHOUT ANY WARRANTY; without even the implied warranty of\r
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU\r
+   Library General Public License for more details.\r
+\r
+   You should have received a copy of the GNU Library General Public\r
+   License along with the GNU C Library; see the file LGPL.  If not,\r
+   write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,\r
+   Boston, MA 02111-1307, USA.  */\r
+/* Multi-byte extension added May, 1993 by t^2 (Takahiro Tanimoto)\r
+   Last change: May 21, 1993 by t^2  */\r
+/* modified for Ruby by matz@netlab.co.jp */\r
+\r
+#ifndef __REGEXP_LIBRARY\r
+#define __REGEXP_LIBRARY\r
+\r
+/* symbol mangling for ruby */\r
+#ifdef RUBY\r
+# define re_adjust_startpos ruby_re_adjust_startpos\r
+# define re_compile_fastmap ruby_re_compile_fastmap\r
+# define re_compile_pattern ruby_re_compile_pattern\r
+# define re_copy_registers ruby_re_copy_registers\r
+# define re_free_pattern ruby_re_free_pattern\r
+# define re_free_registers ruby_re_free_registers\r
+# define re_match ruby_re_match\r
+# define re_mbcinit ruby_re_mbcinit\r
+# define re_search ruby_re_search\r
+# define re_set_casetable ruby_re_set_casetable\r
+# define register_info_type ruby_register_info_type\r
+#endif\r
+\r
+#if !defined(PLATFORM_BE500) && !defined(TOMBO)\r
+#include <stddef.h>\r
+#endif\r
+\r
+/* Define number of parens for which we record the beginnings and ends.\r
+   This affects how much space the `struct re_registers' type takes up.  */\r
+#ifndef RE_NREGS\r
+#define RE_NREGS 10\r
+#endif\r
+\r
+#define BYTEWIDTH 8\r
+\r
+#define RE_REG_MAX ((1<<BYTEWIDTH)-1)\r
+\r
+/* Maximum number of duplicates an interval can allow.  */\r
+#ifndef RE_DUP_MAX\r
+#define RE_DUP_MAX  ((1 << 15) - 1) \r
+#endif\r
+\r
+\r
+/* If this bit is set, then character classes are supported; they are:\r
+     [:alpha:],        [:upper:], [:lower:],  [:digit:], [:alnum:], [:xdigit:],\r
+     [:space:], [:print:], [:punct:], [:graph:], and [:cntrl:].\r
+   If not set, then character classes are not supported.  */\r
+#define RE_CHAR_CLASSES (1L << 9)\r
+\r
+/* match will be done case insensetively */\r
+#define RE_OPTION_IGNORECASE (1L)\r
+/* perl-style extended pattern available */\r
+#define RE_OPTION_EXTENDED   (RE_OPTION_IGNORECASE<<1)\r
+/* newline will be included for . */\r
+#define RE_OPTION_MULTILINE  (RE_OPTION_EXTENDED<<1)\r
+/* ^ and $ ignore newline */\r
+#define RE_OPTION_SINGLELINE (RE_OPTION_MULTILINE<<1)\r
+/* works line Perl's /s; it's called POSIX for wrong reason */\r
+#define RE_OPTION_POSIXLINE  (RE_OPTION_MULTILINE|RE_OPTION_SINGLELINE)\r
+/* search for longest match, in accord with POSIX regexp */\r
+#define RE_OPTION_LONGEST    (RE_OPTION_SINGLELINE<<1)\r
+\r
+#define RE_MAY_IGNORECASE    (RE_OPTION_LONGEST<<1)\r
+#define RE_OPTIMIZE_ANCHOR   (RE_MAY_IGNORECASE<<1)\r
+#define RE_OPTIMIZE_EXACTN   (RE_OPTIMIZE_ANCHOR<<1)\r
+#define RE_OPTIMIZE_NO_BM    (RE_OPTIMIZE_EXACTN<<1)\r
+#define RE_OPTIMIZE_BMATCH   (RE_OPTIMIZE_NO_BM<<1)\r
+\r
+/* For multi-byte char support */\r
+#define MBCTYPE_ASCII 0\r
+#define MBCTYPE_EUC 1\r
+#define MBCTYPE_SJIS 2\r
+#define MBCTYPE_UTF8 3\r
+\r
+#if defined IMPORT || defined USEIMPORTLIB\r
+extern __declspec(dllimport)\r
+#elif defined EXPORT\r
+extern __declspec(dllexport)\r
+#else\r
+extern\r
+#endif\r
+const unsigned char *re_mbctab;\r
+#if defined(__STDC__)\r
+void re_mbcinit (int);\r
+#else\r
+void re_mbcinit ();\r
+#endif\r
+\r
+#undef ismbchar\r
+#define ismbchar(c) re_mbctab[(unsigned char)(c)]\r
+#define mbclen(c)   (re_mbctab[(unsigned char)(c)]+1)\r
+\r
+/* Structure used in re_match() */\r
+\r
+typedef union\r
+{\r
+  unsigned char *word;\r
+  struct {\r
+    unsigned is_active : 1;\r
+    unsigned matched_something : 1;\r
+  } bits;\r
+} register_info_type;\r
+\r
+/* This data structure is used to represent a compiled pattern.  */\r
+\r
+struct re_pattern_buffer\r
+  {\r
+    char *buffer;      /* Space holding the compiled pattern commands.  */\r
+    int allocated;     /* Size of space that `buffer' points to. */\r
+    int used;          /* Length of portion of buffer actually occupied  */\r
+    char *fastmap;     /* Pointer to fastmap, if any, or zero if none.  */\r
+                       /* re_search uses the fastmap, if there is one,\r
+                          to skip over totally implausible characters.  */\r
+    char *must;                /* Pointer to exact pattern which strings should have\r
+                          to be matched.  */\r
+    int *must_skip;     /* Pointer to exact pattern skip table for bm_search */\r
+    long options;      /* Flags for options such as extended_pattern. */\r
+    long re_nsub;      /* Number of subexpressions found by the compiler. */\r
+    char fastmap_accurate;\r
+                       /* Set to zero when a new pattern is stored,\r
+                          set to one when the fastmap is updated from it.  */\r
+    char can_be_null;   /* Set to one by compiling fastmap\r
+                          if this pattern might match the null string.\r
+                          It does not necessarily match the null string\r
+                          in that case, but if this is zero, it cannot.\r
+                          2 as value means can match null string\r
+                          but at end of range or before a character\r
+                          listed in the fastmap.  */\r
+\r
+    /* stack & working area for re_match() */\r
+    unsigned char **regstart;\r
+    unsigned char **regend;\r
+    unsigned char **old_regstart;\r
+    unsigned char **old_regend;\r
+    register_info_type *reg_info;\r
+    unsigned char **best_regstart;\r
+    unsigned char **best_regend;\r
+  };\r
+\r
+typedef struct re_pattern_buffer regex_t;\r
+\r
+/* Structure to store register contents data in.\r
+\r
+   Pass the address of such a structure as an argument to re_match, etc.,\r
+   if you want this information back.\r
+\r
+   For i from 1 to RE_NREGS - 1, start[i] records the starting index in\r
+   the string of where the ith subexpression matched, and end[i] records\r
+   one after the ending index.  start[0] and end[0] are analogous, for\r
+   the entire pattern.  */\r
+\r
+struct re_registers\r
+  {\r
+    int allocated;\r
+    int num_regs;\r
+    int *beg;\r
+    int *end;\r
+  };\r
+\r
+/* Type for byte offsets within the string.  POSIX mandates this.  */\r
+typedef size_t regoff_t;\r
+\r
+/* POSIX specification for registers.  Aside from the different names than\r
+   `re_registers', POSIX uses an array of structures, instead of a\r
+   structure of arrays.  */\r
+typedef struct\r
+{\r
+  regoff_t rm_so;  /* Byte offset from string's start to substring's start.  */\r
+  regoff_t rm_eo;  /* Byte offset from string's start to substring's end.  */\r
+} regmatch_t;\r
+\r
+\f\r
+#if defined(__STDC__)\r
+extern char *re_compile_pattern (const char *, int, struct re_pattern_buffer *);\r
+void re_free_pattern (struct re_pattern_buffer *);\r
+/* Is this really advertised?  */\r
+extern int re_adjust_startpos (struct re_pattern_buffer *, const char*, int, int, int);\r
+extern void re_compile_fastmap (struct re_pattern_buffer *);\r
+extern int re_search (struct re_pattern_buffer *, const char*, int, int, int,\r
+                     struct re_registers *);\r
+extern int re_match (struct re_pattern_buffer *, const char *, int, int,\r
+                    struct re_registers *);\r
+extern void re_set_casetable (const char *table);\r
+extern void re_copy_registers (struct re_registers*, struct re_registers*);\r
+extern void re_free_registers (struct re_registers*);\r
+\r
+#ifndef RUBY\r
+/* 4.2 bsd compatibility.  */\r
+extern char *re_comp (const char *);\r
+extern int re_exec (const char *);\r
+#endif\r
+\r
+#else /* !__STDC__ */\r
+\r
+extern char *re_compile_pattern ();\r
+void re_free_regexp ();\r
+/* Is this really advertised? */\r
+extern int re_adjust_startpos ();\r
+extern void re_compile_fastmap ();\r
+extern int re_search ();\r
+extern int re_match ();\r
+extern void re_set_casetable ();\r
+extern void re_copy_registers ();\r
+extern void re_free_registers ();\r
+\r
+#endif /* __STDC__ */\r
+\r
+#endif /* !__REGEXP_LIBRARY */\r
diff --git a/Src/regex/util.c b/Src/regex/util.c
new file mode 100644 (file)
index 0000000..171f9c5
--- /dev/null
@@ -0,0 +1,223 @@
+#include <windows.h>\r
+#include <string.h>\r
+\r
+#include "oniguruma.h"\r
+#include "RegexUtil.h"\r
+\r
+static char err_buf[ONIG_MAX_ERROR_MESSAGE_LEN];\r
+\r
+// regex library wrapper\r
+\r
+static OnigEncoding GetNativeEncoding(DWORD nCodePage)\r
+{\r
+       OnigEncoding enc;\r
+       UINT acp = GetACP();\r
+\r
+       switch (nCodePage) {\r
+       case 1200:      // UTF-16LE\r
+               return ONIG_ENCODING_UTF16_LE;\r
+       case 65001:     // UTF-8\r
+               return ONIG_ENCODING_UTF8;\r
+       }\r
+\r
+       // if not match, use system default\r
+\r
+       switch(acp) {\r
+       case 932:       // Japan\r
+               enc = ONIG_ENCODING_SJIS;\r
+               break;\r
+//     case 936:       // Chinese (PRC, Singapore)\r
+//             break;\r
+//     case 949:       // Korean\r
+//             break;\r
+//     case 950:       // Chinese (Taiwan; Hong Kong SAR, PRC) \r
+//             break;\r
+//     case 1250:      // Eastern European \r
+//             break;\r
+       case 1251:      // Cyrillic\r
+               enc = ONIG_ENCODING_ISO_8859_5;\r
+               break;\r
+       case 1252:      // Latin 1\r
+               enc = ONIG_ENCODING_ISO_8859_1;\r
+               break;\r
+       case 1253:      // Greek\r
+               enc = ONIG_ENCODING_ISO_8859_7;\r
+               break;\r
+       default:        // default = ASCII\r
+               enc = ONIG_ENCODING_ASCII;\r
+       }\r
+       return enc;\r
+}\r
+\r
+//////////////////////////////////////////////////////////\r
+// Prepare and compile regex pattern\r
+//////////////////////////////////////////////////////////\r
+// pPattern            : expression pattern\r
+//                  In CE version, pPattern's encoding is UCS2. \r
+// bIgnoreCase : is case insensitive?\r
+// ppReason    : In current, ignored.\r
+// \r
+// result              : if success, returns pointer to pattern which is compiled.\r
+//                               if fail, return NULL\r
+\r
+void* Regex_Compile(const LPBYTE pPattern, BOOL bIgnoreCase, const char **ppReason, DWORD nCodePage)\r
+{\r
+       regex_t *reg;\r
+       OnigErrorInfo einfo;\r
+\r
+       UChar *pattern = (UChar*)pPattern;\r
+       OnigEncoding enc;\r
+       OnigOptionType option;\r
+       int len;\r
+       int r;\r
+\r
+       if (bIgnoreCase) {\r
+               option = ONIG_OPTION_IGNORECASE;\r
+       } else {\r
+               option = ONIG_OPTION_NONE;\r
+       }\r
+\r
+       enc = GetNativeEncoding(nCodePage);\r
+\r
+       len = onigenc_str_bytelen_null(enc, pattern);\r
+\r
+       r = onig_new(&reg, pattern, \r
+                                        pattern + len,\r
+                                        option, enc, ONIG_SYNTAX_DEFAULT, &einfo);\r
+       if (r != ONIG_NORMAL) {\r
+               onig_error_code_to_str(err_buf, r, einfo);\r
+               *ppReason = err_buf;\r
+               return NULL;\r
+       }\r
+       return reg;\r
+}\r
+\r
+//////////////////////////////////////////////////////////\r
+// free regex pattern\r
+//////////////////////////////////////////////////////////\r
+//\r
+// p  : the pointer that Regex_Compile returned.\r
+\r
+void Regex_Free(void *p)\r
+{\r
+       if (p == NULL) return;\r
+       onig_free((regex_t*)p);\r
+}\r
+\r
+//////////////////////////////////////////////////////////\r
+// execute matching\r
+//////////////////////////////////////////////////////////\r
+// [IN]\r
+// p           : the pointer that Regex_Compile returned.\r
+// iStart      : start position(bytes) on pTarget\r
+// pTarget     : target string\r
+// bForward : TRUE if search to forward\r
+//            FALSE if search to backword\r
+//\r
+// [OUT] \r
+// pStart      :  ptr to start char of region that is matched.\r
+// pEnd                :  ptr to end char of region that is matched.\r
+//\r
+// [return]\r
+//     >=0 : position to start char of region that is matched.\r
+//  -1  : not matched.\r
+//  -2  : error\r
+\r
+int Regex_Search(void *p, int iStart, const LPBYTE pTarget, BOOL bForward, int *pStart, int *pEnd, DWORD nCodePage)\r
+{\r
+       regex_t *reg = (regex_t*)p;\r
+       unsigned char *str;\r
+       unsigned char *end;\r
+       unsigned char *start, *range;\r
+       int r;\r
+       int result;\r
+       OnigEncoding enc;\r
+\r
+       OnigRegion *region;\r
+\r
+       enc = GetNativeEncoding(nCodePage);\r
+       str = (unsigned char*)pTarget;\r
+       end = str + onigenc_str_bytelen_null(enc, str);\r
+\r
+       if (bForward) {\r
+               start = str + iStart;\r
+               range = end;\r
+       } else {\r
+               start = str + iStart;\r
+               range = str;\r
+       }\r
+       region = onig_region_new();\r
+       \r
+       r = onig_search(reg, str, end, start, range, region, ONIG_OPTION_NONE);\r
+       if (r >= 0) {\r
+               // match\r
+               if (region->num_regs == 0) return -2;\r
+               if (pStart) *pStart = region->beg[0];\r
+               if (pEnd) *pEnd = region->end[0];\r
+               result = r;\r
+       } else if (r == ONIG_MISMATCH) {\r
+               // mismatch\r
+               result = -1;\r
+       } else {\r
+               // error\r
+               result = -2;\r
+       }\r
+       onig_region_free(region, 1);\r
+       return result;\r
+}\r
+\r
+//////////////////////////////////////////////////////////\r
+// convert an encoding position to another position\r
+//////////////////////////////////////////////////////////\r
+\r
+DWORD ConvertPos(const LPBYTE pSrcStr, DWORD nSrcPos, DWORD nSrcEnc, const LPBYTE pDstStr, DWORD nDstEnc)\r
+{\r
+       OnigEncoding srcEnc = GetNativeEncoding(nSrcEnc);\r
+       OnigEncoding dstEnc = GetNativeEncoding(nDstEnc);\r
+\r
+       DWORD i = 0;\r
+       const UChar* p = pSrcStr;\r
+       const UChar* q = pDstStr;\r
+\r
+       DWORD nSrc, nDst;\r
+\r
+       nSrc = nDst = 0;\r
+       while (*p) {\r
+               nSrc = p - pSrcStr;\r
+               nDst = q - pDstStr; \r
+\r
+               if (nSrc >= nSrcPos) break;\r
+\r
+               p = onigenc_get_right_adjust_char_head(srcEnc, (LPBYTE)pSrcStr, p + 1);\r
+               q = onigenc_get_right_adjust_char_head(dstEnc, (LPBYTE)pDstStr, q + 1);\r
+       }\r
+       if (*p == 0) {\r
+               nDst = q - pDstStr;\r
+       }\r
+       return nDst;\r
+}\r
+\r
+//////////////////////////////////////////////////////////\r
+// \r
+//////////////////////////////////////////////////////////\r
+\r
+const LPBYTE ShiftLeft(const LPBYTE pString, const LPBYTE pPos, DWORD nCodePage)\r
+{\r
+       OnigEncoding enc = GetNativeEncoding(nCodePage);\r
+\r
+       LPBYTE p = pPos - 1;\r
+       LPBYTE q;\r
+       while (p >= pString) {\r
+               q = onigenc_get_right_adjust_char_head(enc, pString, p);\r
+               if (q < pPos) break;\r
+               p--;\r
+       }\r
+       return q;\r
+}\r
+\r
+const LPBYTE ShiftRight(const LPBYTE pString, const LPBYTE pPos, DWORD nCodePage)\r
+{\r
+       OnigEncoding enc = GetNativeEncoding(nCodePage);\r
+       return (LPBYTE)onigenc_get_right_adjust_char_head(enc, pString, pPos + 1);\r
+}\r
+\r
diff --git a/Win32/RegErase/RegErase.dsp b/Win32/RegErase/RegErase.dsp
new file mode 100644 (file)
index 0000000..67138d3
--- /dev/null
@@ -0,0 +1,140 @@
+# Microsoft Developer Studio Project File - Name="RegErase" - Package Owner=<4>\r
+# Microsoft Developer Studio Generated Build File, Format Version 6.00\r
+# ** \95Ò\8fW\82µ\82È\82¢\82Å\82­\82¾\82³\82¢ **\r
+\r
+# TARGTYPE "Win32 (x86) Application" 0x0101\r
+\r
+CFG=RegErase - Win32 Debug\r
+!MESSAGE \82±\82ê\82Í\97L\8cø\82ÈÒ²¸Ì§²Ù\82Å\82Í\82 \82è\82Ü\82¹\82ñ\81\82±\82ÌÌßÛ¼Þª¸Ä\82ðËÞÙÄÞ\82·\82é\82½\82ß\82É\82Í NMAKE \82ð\8eg\97p\82µ\82Ä\82­\82¾\82³\82¢\81B\r
+!MESSAGE [Ò²¸Ì§²Ù\82Ì´¸½Îß°Ä] ºÏÝÄÞ\82ð\8eg\97p\82µ\82Ä\8eÀ\8ds\82µ\82Ä\82­\82¾\82³\82¢\r
+!MESSAGE \r
+!MESSAGE NMAKE /f "RegErase.mak".\r
+!MESSAGE \r
+!MESSAGE NMAKE \82Ì\8eÀ\8ds\8e\9e\82É\8d\\90¬\82ð\8ew\92è\82Å\82«\82Ü\82·\r
+!MESSAGE ºÏÝÄޠײÝ\8fã\82ÅϸÛ\82Ì\90Ý\92è\82ð\92è\8b`\82µ\82Ü\82·\81B\97á:\r
+!MESSAGE \r
+!MESSAGE NMAKE /f "RegErase.mak" CFG="RegErase - Win32 Debug"\r
+!MESSAGE \r
+!MESSAGE \91I\91ð\89Â\94\\82ÈËÞÙÄÞ Ó°ÄÞ:\r
+!MESSAGE \r
+!MESSAGE "RegErase - Win32 Release" ("Win32 (x86) Application" \97p)\r
+!MESSAGE "RegErase - Win32 Debug" ("Win32 (x86) Application" \97p)\r
+!MESSAGE \r
+\r
+# Begin Project\r
+# PROP AllowPerConfigDependencies 0\r
+# PROP Scc_ProjName ""\r
+# PROP Scc_LocalPath ""\r
+CPP=cl.exe\r
+MTL=midl.exe\r
+RSC=rc.exe\r
+\r
+!IF  "$(CFG)" == "RegErase - Win32 Release"\r
+\r
+# PROP BASE Use_MFC 0\r
+# PROP BASE Use_Debug_Libraries 0\r
+# PROP BASE Output_Dir "Release"\r
+# PROP BASE Intermediate_Dir "Release"\r
+# PROP BASE Target_Dir ""\r
+# PROP Use_MFC 0\r
+# PROP Use_Debug_Libraries 0\r
+# PROP Output_Dir "Release"\r
+# PROP Intermediate_Dir "Release"\r
+# PROP Target_Dir ""\r
+# ADD BASE CPP /nologo /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_WINDOWS" /D "_MBCS" /Yu"stdafx.h" /FD /c\r
+# ADD CPP /nologo /W3 /GX /O2 /I "../../Src/TomboLib" /I "../../Src/" /D "WIN32" /D "NDEBUG" /D "_WINDOWS" /D "_MBCS" /D "PLATFORM_WIN32" /FD /c\r
+# SUBTRACT CPP /YX /Yc /Yu\r
+# ADD BASE MTL /nologo /D "NDEBUG" /mktyplib203 /win32\r
+# ADD MTL /nologo /D "NDEBUG" /mktyplib203 /win32\r
+# ADD BASE RSC /l 0x411 /d "NDEBUG"\r
+# ADD RSC /l 0x411 /d "NDEBUG"\r
+BSC32=bscmake.exe\r
+# ADD BASE BSC32 /nologo\r
+# ADD BSC32 /nologo\r
+LINK32=link.exe\r
+# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:windows /machine:I386\r
+# ADD LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:windows /machine:I386\r
+\r
+!ELSEIF  "$(CFG)" == "RegErase - Win32 Debug"\r
+\r
+# PROP BASE Use_MFC 0\r
+# PROP BASE Use_Debug_Libraries 1\r
+# PROP BASE Output_Dir "Debug"\r
+# PROP BASE Intermediate_Dir "Debug"\r
+# PROP BASE Target_Dir ""\r
+# PROP Use_MFC 0\r
+# PROP Use_Debug_Libraries 1\r
+# PROP Output_Dir "Debug"\r
+# PROP Intermediate_Dir "Debug"\r
+# PROP Ignore_Export_Lib 0\r
+# PROP Target_Dir ""\r
+# ADD BASE CPP /nologo /W3 /Gm /GX /ZI /Od /D "WIN32" /D "_DEBUG" /D "_WINDOWS" /D "_MBCS" /Yu"stdafx.h" /FD /GZ /c\r
+# ADD CPP /nologo /W3 /Gm /GX /ZI /Od /I "../../Src/TomboLib" /I "../../Src/" /D "WIN32" /D "_DEBUG" /D "_WINDOWS" /D "_MBCS" /D "PLATFORM_WIN32" /FD /GZ /c\r
+# SUBTRACT CPP /YX /Yc /Yu\r
+# ADD BASE MTL /nologo /D "_DEBUG" /mktyplib203 /win32\r
+# ADD MTL /nologo /D "_DEBUG" /mktyplib203 /win32\r
+# ADD BASE RSC /l 0x411 /d "_DEBUG"\r
+# ADD RSC /l 0x411 /d "_DEBUG"\r
+BSC32=bscmake.exe\r
+# ADD BASE BSC32 /nologo\r
+# ADD BSC32 /nologo\r
+LINK32=link.exe\r
+# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:windows /debug /machine:I386 /pdbtype:sept\r
+# ADD LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:windows /debug /machine:I386 /pdbtype:sept\r
+\r
+!ENDIF \r
+\r
+# Begin Target\r
+\r
+# Name "RegErase - Win32 Release"\r
+# Name "RegErase - Win32 Debug"\r
+# Begin Group "Source Files"\r
+\r
+# PROP Default_Filter "cpp;c;cxx;rc;def;r;odl;idl;hpj;bat"\r
+# Begin Source File\r
+\r
+SOURCE=..\..\Src\TomboLib\AutoPtr.cpp\r
+# End Source File\r
+# Begin Source File\r
+\r
+SOURCE=..\..\Src\TomboLib\File.cpp\r
+# End Source File\r
+# Begin Source File\r
+\r
+SOURCE=..\..\Src\Message.cpp\r
+# End Source File\r
+# Begin Source File\r
+\r
+SOURCE=..\..\Src\RegErase\RegErase.cpp\r
+# End Source File\r
+# Begin Source File\r
+\r
+SOURCE=..\..\Src\TomboLib\TString.cpp\r
+# End Source File\r
+# Begin Source File\r
+\r
+SOURCE=..\..\Src\TomboLib\Uniconv.cpp\r
+# End Source File\r
+# End Group\r
+# Begin Group "Header Files"\r
+\r
+# PROP Default_Filter "h;hpp;hxx;hm;inl"\r
+# Begin Source File\r
+\r
+SOURCE=..\..\Src\TomboLib\File.h\r
+# End Source File\r
+# Begin Source File\r
+\r
+SOURCE=..\..\Src\Message.h\r
+# End Source File\r
+# Begin Source File\r
+\r
+SOURCE=..\..\Src\TomboLib\TString.h\r
+# End Source File\r
+# Begin Source File\r
+\r
+SOURCE=..\..\Src\TomboLib\Uniconv.h\r
+# End Source File\r
+# End Group\r
+# End Target\r
+# End Project\r
diff --git a/Win32/RegErase/RegErase.dsw b/Win32/RegErase/RegErase.dsw
new file mode 100644 (file)
index 0000000..98d7e5f
--- /dev/null
@@ -0,0 +1,29 @@
+Microsoft Developer Studio Workspace File, Format Version 6.00\r
+# \8cx\8d\90\82±\82ÌÜ°¸½Íß°½ Ì§²Ù \82ð\95Ò\8fW\82Ü\82½\82Í\8dí\8f\9c\82µ\82È\82¢\82Å\82­\82¾\82³\82¢!\r
+\r
+###############################################################################\r
+\r
+Project: "RegErase"=.\RegErase.dsp - Package Owner=<4>\r
+\r
+Package=<5>\r
+{{{\r
+}}}\r
+\r
+Package=<4>\r
+{{{\r
+}}}\r
+\r
+###############################################################################\r
+\r
+Global:\r
+\r
+Package=<5>\r
+{{{\r
+}}}\r
+\r
+Package=<3>\r
+{{{\r
+}}}\r
+\r
+###############################################################################\r
+\r
diff --git a/Win32/Tombo/SetupE/SetupE.vdproj b/Win32/Tombo/SetupE/SetupE.vdproj
new file mode 100644 (file)
index 0000000..8476765
--- /dev/null
@@ -0,0 +1,960 @@
+"DeployProject"\r
+{\r
+"VSVersion" = "3:800"\r
+"ProjectType" = "8:{978C614F-708E-4E1A-B201-565925725DBA}"\r
+"IsWebType" = "8:FALSE"\r
+"ProjectName" = "8:SetupE"\r
+"LanguageId" = "3:1033"\r
+"CodePage" = "3:1252"\r
+"UILanguageId" = "3:1033"\r
+"SccProjectName" = "8:"\r
+"SccLocalPath" = "8:"\r
+"SccAuxPath" = "8:"\r
+"SccProvider" = "8:"\r
+    "Hierarchy"\r
+    {\r
+        "Entry"\r
+        {\r
+        "MsmKey" = "8:_005E1CBF08B1A911BD3A0A936DE505C9"\r
+        "OwnerKey" = "8:_530D1DE28FA74B84BADDF0ED55FE6E54"\r
+        "MsmSig" = "8:_UNDEFINED"\r
+        }\r
+        "Entry"\r
+        {\r
+        "MsmKey" = "8:_04C3E3EED44F45A1A078A1965AA178AB"\r
+        "OwnerKey" = "8:_UNDEFINED"\r
+        "MsmSig" = "8:_UNDEFINED"\r
+        }\r
+        "Entry"\r
+        {\r
+        "MsmKey" = "8:_15AC42538C334172B2F75B4BDB2FEFCD"\r
+        "OwnerKey" = "8:_UNDEFINED"\r
+        "MsmSig" = "8:_UNDEFINED"\r
+        }\r
+        "Entry"\r
+        {\r
+        "MsmKey" = "8:_1BA60275E3A699A2E11BCC53782E35B5"\r
+        "OwnerKey" = "8:_530D1DE28FA74B84BADDF0ED55FE6E54"\r
+        "MsmSig" = "8:_UNDEFINED"\r
+        }\r
+        "Entry"\r
+        {\r
+        "MsmKey" = "8:_389BEF302037A54E705A86AAE4426473"\r
+        "OwnerKey" = "8:_530D1DE28FA74B84BADDF0ED55FE6E54"\r
+        "MsmSig" = "8:_UNDEFINED"\r
+        }\r
+        "Entry"\r
+        {\r
+        "MsmKey" = "8:_530D1DE28FA74B84BADDF0ED55FE6E54"\r
+        "OwnerKey" = "8:_UNDEFINED"\r
+        "MsmSig" = "8:_UNDEFINED"\r
+        }\r
+        "Entry"\r
+        {\r
+        "MsmKey" = "8:_5F479A3A9B5545C396D4ABF26F03CE92"\r
+        "OwnerKey" = "8:_B183D15C2A8847E9A6909D3FA17981DA"\r
+        "MsmSig" = "8:_UNDEFINED"\r
+        }\r
+        "Entry"\r
+        {\r
+        "MsmKey" = "8:_B183D15C2A8847E9A6909D3FA17981DA"\r
+        "OwnerKey" = "8:_530D1DE28FA74B84BADDF0ED55FE6E54"\r
+        "MsmSig" = "8:_UNDEFINED"\r
+        }\r
+        "Entry"\r
+        {\r
+        "MsmKey" = "8:_D59D59B7E912443BB630C1DE8D551CB8"\r
+        "OwnerKey" = "8:_UNDEFINED"\r
+        "MsmSig" = "8:_UNDEFINED"\r
+        }\r
+        "Entry"\r
+        {\r
+        "MsmKey" = "8:_E80487B2027E270E5EEF83E40E891FEF"\r
+        "OwnerKey" = "8:_530D1DE28FA74B84BADDF0ED55FE6E54"\r
+        "MsmSig" = "8:_UNDEFINED"\r
+        }\r
+        "Entry"\r
+        {\r
+        "MsmKey" = "8:_F223148A88E84BF0A2C1022A71D825E4"\r
+        "OwnerKey" = "8:_UNDEFINED"\r
+        "MsmSig" = "8:_UNDEFINED"\r
+        }\r
+    }\r
+    "Configurations"\r
+    {\r
+        "Debug"\r
+        {\r
+        "DisplayName" = "8:Debug"\r
+        "IsDebugOnly" = "11:TRUE"\r
+        "IsReleaseOnly" = "11:FALSE"\r
+        "OutputFilename" = "8:Debug\\SetupE.msi"\r
+        "PackageFilesAs" = "3:2"\r
+        "PackageFileSize" = "3:-2147483648"\r
+        "CabType" = "3:1"\r
+        "Compression" = "3:2"\r
+        "SignOutput" = "11:FALSE"\r
+        "CertificateFile" = "8:"\r
+        "PrivateKeyFile" = "8:"\r
+        "TimeStampServer" = "8:"\r
+        "InstallerBootstrapper" = "3:2"\r
+        }\r
+        "Release"\r
+        {\r
+        "DisplayName" = "8:Release"\r
+        "IsDebugOnly" = "11:FALSE"\r
+        "IsReleaseOnly" = "11:TRUE"\r
+        "OutputFilename" = "8:Release\\SetupE.msi"\r
+        "PackageFilesAs" = "3:2"\r
+        "PackageFileSize" = "3:-2147483648"\r
+        "CabType" = "3:1"\r
+        "Compression" = "3:2"\r
+        "SignOutput" = "11:FALSE"\r
+        "CertificateFile" = "8:"\r
+        "PrivateKeyFile" = "8:"\r
+        "TimeStampServer" = "8:"\r
+        "InstallerBootstrapper" = "3:2"\r
+        }\r
+    }\r
+    "Deployable"\r
+    {\r
+        "CustomAction"\r
+        {\r
+        }\r
+        "DefaultFeature"\r
+        {\r
+        "Name" = "8:DefaultFeature"\r
+        "Title" = "8:"\r
+        "Description" = "8:"\r
+        }\r
+        "ExternalPersistence"\r
+        {\r
+            "LaunchCondition"\r
+            {\r
+            }\r
+        }\r
+        "File"\r
+        {\r
+            "{1FB2D0AE-D3B9-43D4-B9DD-F88EC61E35DE}:_005E1CBF08B1A911BD3A0A936DE505C9"\r
+            {\r
+            "SourcePath" = "8:IMM32.dll"\r
+            "TargetName" = "8:IMM32.dll"\r
+            "Tag" = "8:"\r
+            "Folder" = "8:_41D6731EB5D246C2B1DD0A0C519DBDE8"\r
+            "Condition" = "8:"\r
+            "Transitive" = "11:FALSE"\r
+            "Vital" = "11:TRUE"\r
+            "ReadOnly" = "11:FALSE"\r
+            "Hidden" = "11:FALSE"\r
+            "System" = "11:FALSE"\r
+            "Permanent" = "11:FALSE"\r
+            "SharedLegacy" = "11:FALSE"\r
+            "PackageAs" = "3:1"\r
+            "Register" = "3:1"\r
+            "Exclude" = "11:TRUE"\r
+            "IsDependency" = "11:TRUE"\r
+            "IsolateTo" = "8:"\r
+            }\r
+            "{1FB2D0AE-D3B9-43D4-B9DD-F88EC61E35DE}:_04C3E3EED44F45A1A078A1965AA178AB"\r
+            {\r
+            "SourcePath" = "8:..\\..\\..\\Src\\MsgRes\\TomboMsg\\en\\TomboMsg.txt"\r
+            "TargetName" = "8:TomboMsg.txt"\r
+            "Tag" = "8:"\r
+            "Folder" = "8:_41D6731EB5D246C2B1DD0A0C519DBDE8"\r
+            "Condition" = "8:"\r
+            "Transitive" = "11:FALSE"\r
+            "Vital" = "11:TRUE"\r
+            "ReadOnly" = "11:FALSE"\r
+            "Hidden" = "11:FALSE"\r
+            "System" = "11:FALSE"\r
+            "Permanent" = "11:FALSE"\r
+            "SharedLegacy" = "11:FALSE"\r
+            "PackageAs" = "3:1"\r
+            "Register" = "3:1"\r
+            "Exclude" = "11:FALSE"\r
+            "IsDependency" = "11:FALSE"\r
+            "IsolateTo" = "8:"\r
+            }\r
+            "{1FB2D0AE-D3B9-43D4-B9DD-F88EC61E35DE}:_15AC42538C334172B2F75B4BDB2FEFCD"\r
+            {\r
+            "SourcePath" = "8:..\\..\\..\\..\\Docs\\En\\COPYING-2_0.txt"\r
+            "TargetName" = "8:COPYING-2_0.txt"\r
+            "Tag" = "8:"\r
+            "Folder" = "8:_41D6731EB5D246C2B1DD0A0C519DBDE8"\r
+            "Condition" = "8:"\r
+            "Transitive" = "11:FALSE"\r
+            "Vital" = "11:TRUE"\r
+            "ReadOnly" = "11:FALSE"\r
+            "Hidden" = "11:FALSE"\r
+            "System" = "11:FALSE"\r
+            "Permanent" = "11:FALSE"\r
+            "SharedLegacy" = "11:FALSE"\r
+            "PackageAs" = "3:1"\r
+            "Register" = "3:1"\r
+            "Exclude" = "11:FALSE"\r
+            "IsDependency" = "11:FALSE"\r
+            "IsolateTo" = "8:"\r
+            }\r
+            "{1FB2D0AE-D3B9-43D4-B9DD-F88EC61E35DE}:_1BA60275E3A699A2E11BCC53782E35B5"\r
+            {\r
+            "SourcePath" = "8:LIBEXPATW.dll"\r
+            "TargetName" = "8:LIBEXPATW.dll"\r
+            "Tag" = "8:"\r
+            "Folder" = "8:_41D6731EB5D246C2B1DD0A0C519DBDE8"\r
+            "Condition" = "8:"\r
+            "Transitive" = "11:FALSE"\r
+            "Vital" = "11:TRUE"\r
+            "ReadOnly" = "11:FALSE"\r
+            "Hidden" = "11:FALSE"\r
+            "System" = "11:FALSE"\r
+            "Permanent" = "11:FALSE"\r
+            "SharedLegacy" = "11:FALSE"\r
+            "PackageAs" = "3:1"\r
+            "Register" = "3:1"\r
+            "Exclude" = "11:FALSE"\r
+            "IsDependency" = "11:TRUE"\r
+            "IsolateTo" = "8:"\r
+            }\r
+            "{1FB2D0AE-D3B9-43D4-B9DD-F88EC61E35DE}:_389BEF302037A54E705A86AAE4426473"\r
+            {\r
+            "SourcePath" = "8:oniguruma.dll"\r
+            "TargetName" = "8:oniguruma.dll"\r
+            "Tag" = "8:"\r
+            "Folder" = "8:_41D6731EB5D246C2B1DD0A0C519DBDE8"\r
+            "Condition" = "8:"\r
+            "Transitive" = "11:FALSE"\r
+            "Vital" = "11:TRUE"\r
+            "ReadOnly" = "11:FALSE"\r
+            "Hidden" = "11:FALSE"\r
+            "System" = "11:FALSE"\r
+            "Permanent" = "11:FALSE"\r
+            "SharedLegacy" = "11:FALSE"\r
+            "PackageAs" = "3:1"\r
+            "Register" = "3:1"\r
+            "Exclude" = "11:FALSE"\r
+            "IsDependency" = "11:TRUE"\r
+            "IsolateTo" = "8:"\r
+            }\r
+            "{1FB2D0AE-D3B9-43D4-B9DD-F88EC61E35DE}:_D59D59B7E912443BB630C1DE8D551CB8"\r
+            {\r
+            "SourcePath" = "8:..\\..\\RegErase\\Release\\RegErase.exe"\r
+            "TargetName" = "8:RegErase.exe"\r
+            "Tag" = "8:"\r
+            "Folder" = "8:_41D6731EB5D246C2B1DD0A0C519DBDE8"\r
+            "Condition" = "8:"\r
+            "Transitive" = "11:FALSE"\r
+            "Vital" = "11:TRUE"\r
+            "ReadOnly" = "11:FALSE"\r
+            "Hidden" = "11:FALSE"\r
+            "System" = "11:FALSE"\r
+            "Permanent" = "11:FALSE"\r
+            "SharedLegacy" = "11:FALSE"\r
+            "PackageAs" = "3:1"\r
+            "Register" = "3:1"\r
+            "Exclude" = "11:FALSE"\r
+            "IsDependency" = "11:FALSE"\r
+            "IsolateTo" = "8:"\r
+            }\r
+            "{1FB2D0AE-D3B9-43D4-B9DD-F88EC61E35DE}:_E80487B2027E270E5EEF83E40E891FEF"\r
+            {\r
+            "SourcePath" = "8:comdlg32.dll"\r
+            "TargetName" = "8:comdlg32.dll"\r
+            "Tag" = "8:"\r
+            "Folder" = "8:_41D6731EB5D246C2B1DD0A0C519DBDE8"\r
+            "Condition" = "8:"\r
+            "Transitive" = "11:FALSE"\r
+            "Vital" = "11:TRUE"\r
+            "ReadOnly" = "11:FALSE"\r
+            "Hidden" = "11:FALSE"\r
+            "System" = "11:FALSE"\r
+            "Permanent" = "11:FALSE"\r
+            "SharedLegacy" = "11:FALSE"\r
+            "PackageAs" = "3:1"\r
+            "Register" = "3:1"\r
+            "Exclude" = "11:TRUE"\r
+            "IsDependency" = "11:TRUE"\r
+            "IsolateTo" = "8:"\r
+            }\r
+            "{1FB2D0AE-D3B9-43D4-B9DD-F88EC61E35DE}:_F223148A88E84BF0A2C1022A71D825E4"\r
+            {\r
+            "SourcePath" = "8:..\\..\\..\\..\\Docs\\DocBooks\\UserGuide_en.chm"\r
+            "TargetName" = "8:UserGuide_en.chm"\r
+            "Tag" = "8:"\r
+            "Folder" = "8:_41D6731EB5D246C2B1DD0A0C519DBDE8"\r
+            "Condition" = "8:"\r
+            "Transitive" = "11:FALSE"\r
+            "Vital" = "11:TRUE"\r
+            "ReadOnly" = "11:FALSE"\r
+            "Hidden" = "11:FALSE"\r
+            "System" = "11:FALSE"\r
+            "Permanent" = "11:FALSE"\r
+            "SharedLegacy" = "11:FALSE"\r
+            "PackageAs" = "3:1"\r
+            "Register" = "3:1"\r
+            "Exclude" = "11:FALSE"\r
+            "IsDependency" = "11:FALSE"\r
+            "IsolateTo" = "8:"\r
+            }\r
+        }\r
+        "FileType"\r
+        {\r
+        }\r
+        "Folder"\r
+        {\r
+            "{3C67513D-01DD-4637-8A68-80971EB9504F}:_41D6731EB5D246C2B1DD0A0C519DBDE8"\r
+            {\r
+            "DefaultLocation" = "8:[ProgramFilesFolder][Manufacturer]\\[ProductName]"\r
+            "Name" = "8:#1925"\r
+            "AlwaysCreate" = "11:FALSE"\r
+            "Condition" = "8:"\r
+            "Transitive" = "11:FALSE"\r
+            "Property" = "8:TARGETDIR"\r
+                "Folders"\r
+                {\r
+                }\r
+            }\r
+            "{1525181F-901A-416C-8A58-119130FE478E}:_84F8B00DF4AD4319B605CA0A3AEBE3AD"\r
+            {\r
+            "Name" = "8:#1919"\r
+            "AlwaysCreate" = "11:FALSE"\r
+            "Condition" = "8:"\r
+            "Transitive" = "11:FALSE"\r
+            "Property" = "8:ProgramMenuFolder"\r
+                "Folders"\r
+                {\r
+                }\r
+            }\r
+            "{1525181F-901A-416C-8A58-119130FE478E}:_B6508F029DB34DCE96BDCF39427FFEC1"\r
+            {\r
+            "Name" = "8:#1916"\r
+            "AlwaysCreate" = "11:FALSE"\r
+            "Condition" = "8:"\r
+            "Transitive" = "11:FALSE"\r
+            "Property" = "8:DesktopFolder"\r
+                "Folders"\r
+                {\r
+                }\r
+            }\r
+        }\r
+        "LaunchCondition"\r
+        {\r
+        }\r
+        "Locator"\r
+        {\r
+        }\r
+        "MsiBootstrapper"\r
+        {\r
+        "LangId" = "3:1033"\r
+        }\r
+        "Product"\r
+        {\r
+        "Name" = "8:Microsoft Visual Studio"\r
+        "ProductName" = "8:TOMBO"\r
+        "ProductCode" = "8:{FE1AB840-137B-4EA7-8B06-5CF8FF0942F5}"\r
+        "PackageCode" = "8:{EB5D5461-0CE7-46AB-ADBD-C6098CE58556}"\r
+        "UpgradeCode" = "8:{4FFE313E-4F29-4D83-BED2-4EDF7F1B3F8A}"\r
+        "RestartWWWService" = "11:FALSE"\r
+        "RemovePreviousVersions" = "11:TRUE"\r
+        "DetectNewerInstalledVersion" = "11:TRUE"\r
+        "InstallAllUsers" = "11:FALSE"\r
+        "ProductVersion" = "8:2.0.0"\r
+        "Manufacturer" = "8:Personal"\r
+        "ARPHELPTELEPHONE" = "8:"\r
+        "ARPHELPLINK" = "8:"\r
+        "Title" = "8:TOMBO"\r
+        "Subject" = "8:"\r
+        "ARPCONTACT" = "8:Personal"\r
+        "Keywords" = "8:"\r
+        "ARPCOMMENTS" = "8:"\r
+        "ARPURLINFOABOUT" = "8:"\r
+        "ARPPRODUCTICON" = "8:"\r
+        "ARPIconIndex" = "3:0"\r
+        "SearchPath" = "8:"\r
+        "UseSystemSearchPath" = "11:TRUE"\r
+        "TargetPlatform" = "3:0"\r
+        "PreBuildEvent" = "8:"\r
+        "PostBuildEvent" = "8:"\r
+        "RunPostBuildEvent" = "3:0"\r
+        }\r
+        "Registry"\r
+        {\r
+            "HKLM"\r
+            {\r
+                "Keys"\r
+                {\r
+                    "{60EA8692-D2D5-43EB-80DC-7906BF13D6EF}:_4D6A5906A4EB49CD800009F82530A981"\r
+                    {\r
+                    "Name" = "8:Software"\r
+                    "Condition" = "8:"\r
+                    "AlwaysCreate" = "11:FALSE"\r
+                    "DeleteAtUninstall" = "11:FALSE"\r
+                    "Transitive" = "11:FALSE"\r
+                        "Keys"\r
+                        {\r
+                            "{60EA8692-D2D5-43EB-80DC-7906BF13D6EF}:_0CCCC8DA3C3B4402901B07DBF901BD4F"\r
+                            {\r
+                            "Name" = "8:[Manufacturer]"\r
+                            "Condition" = "8:"\r
+                            "AlwaysCreate" = "11:FALSE"\r
+                            "DeleteAtUninstall" = "11:FALSE"\r
+                            "Transitive" = "11:FALSE"\r
+                                "Keys"\r
+                                {\r
+                                }\r
+                                "Values"\r
+                                {\r
+                                }\r
+                            }\r
+                        }\r
+                        "Values"\r
+                        {\r
+                        }\r
+                    }\r
+                }\r
+            }\r
+            "HKCU"\r
+            {\r
+                "Keys"\r
+                {\r
+                    "{60EA8692-D2D5-43EB-80DC-7906BF13D6EF}:_9C7E669C16D844A4917282AA47586086"\r
+                    {\r
+                    "Name" = "8:Software"\r
+                    "Condition" = "8:"\r
+                    "AlwaysCreate" = "11:FALSE"\r
+                    "DeleteAtUninstall" = "11:FALSE"\r
+                    "Transitive" = "11:FALSE"\r
+                        "Keys"\r
+                        {\r
+                            "{60EA8692-D2D5-43EB-80DC-7906BF13D6EF}:_05582EF49E9D4D0DB3C0B4157F9C2147"\r
+                            {\r
+                            "Name" = "8:[Manufacturer]"\r
+                            "Condition" = "8:"\r
+                            "AlwaysCreate" = "11:FALSE"\r
+                            "DeleteAtUninstall" = "11:FALSE"\r
+                            "Transitive" = "11:FALSE"\r
+                                "Keys"\r
+                                {\r
+                                }\r
+                                "Values"\r
+                                {\r
+                                }\r
+                            }\r
+                        }\r
+                        "Values"\r
+                        {\r
+                        }\r
+                    }\r
+                }\r
+            }\r
+            "HKCR"\r
+            {\r
+                "Keys"\r
+                {\r
+                }\r
+            }\r
+            "HKU"\r
+            {\r
+                "Keys"\r
+                {\r
+                }\r
+            }\r
+            "HKPU"\r
+            {\r
+                "Keys"\r
+                {\r
+                }\r
+            }\r
+        }\r
+        "Sequences"\r
+        {\r
+        }\r
+        "Shortcut"\r
+        {\r
+            "{970C0BB2-C7D0-45D7-ABFA-7EC378858BC0}:_A2B5D7D314114908AAE44CDE16736878"\r
+            {\r
+            "Name" = "8:Tombo"\r
+            "Arguments" = "8:"\r
+            "Description" = "8:"\r
+            "ShowCmd" = "3:1"\r
+            "IconIndex" = "3:109"\r
+            "Transitive" = "11:FALSE"\r
+            "Target" = "8:"\r
+            "Folder" = "8:_B6508F029DB34DCE96BDCF39427FFEC1"\r
+            "WorkingFolder" = "8:_41D6731EB5D246C2B1DD0A0C519DBDE8"\r
+            "Icon" = "8:"\r
+            "Feature" = "8:"\r
+            }\r
+            "{970C0BB2-C7D0-45D7-ABFA-7EC378858BC0}:_EF8BB570131E47CCA11C977632C86BDA"\r
+            {\r
+            "Name" = "8:Tombo"\r
+            "Arguments" = "8:"\r
+            "Description" = "8:"\r
+            "ShowCmd" = "3:1"\r
+            "IconIndex" = "3:109"\r
+            "Transitive" = "11:FALSE"\r
+            "Target" = "8:"\r
+            "Folder" = "8:_84F8B00DF4AD4319B605CA0A3AEBE3AD"\r
+            "WorkingFolder" = "8:_41D6731EB5D246C2B1DD0A0C519DBDE8"\r
+            "Icon" = "8:"\r
+            "Feature" = "8:"\r
+            }\r
+        }\r
+        "UserInterface"\r
+        {\r
+            "{2479F3F5-0309-486D-8047-8187E2CE5BA0}:_0C555025AF9E4F51B1CE0C74197D0F8D"\r
+            {\r
+            "UseDynamicProperties" = "11:FALSE"\r
+            "IsDependency" = "11:FALSE"\r
+            "SourcePath" = "8:<VsdDialogDir>\\VsdUserInterface.wim"\r
+            }\r
+            "{DF760B10-853B-4699-99F2-AFF7185B4A62}:_316BA83B002643C4B414CC7EB677D21E"\r
+            {\r
+            "Name" = "8:#1900"\r
+            "Sequence" = "3:1"\r
+            "Attributes" = "3:1"\r
+                "Dialogs"\r
+                {\r
+                    "{688940B3-5CA9-4162-8DEE-2993FA9D8CBC}:_A1A29F1714574D2F94282BE8DB196992"\r
+                    {\r
+                    "Sequence" = "3:100"\r
+                    "DisplayName" = "8:ようこそ"\r
+                    "UseDynamicProperties" = "11:TRUE"\r
+                    "IsDependency" = "11:FALSE"\r
+                    "SourcePath" = "8:<VsdDialogDir>\\VsdWelcomeDlg.wid"\r
+                        "Properties"\r
+                        {\r
+                            "BannerBitmap"\r
+                            {\r
+                            "Name" = "8:BannerBitmap"\r
+                            "DisplayName" = "8:#1001"\r
+                            "Description" = "8:#1101"\r
+                            "Type" = "3:8"\r
+                            "ContextData" = "8:Bitmap"\r
+                            "Attributes" = "3:4"\r
+                            "Setting" = "3:1"\r
+                            "UsePlugInResources" = "11:TRUE"\r
+                            }\r
+                            "CopyrightWarning"\r
+                            {\r
+                            "Name" = "8:CopyrightWarning"\r
+                            "DisplayName" = "8:#1002"\r
+                            "Description" = "8:#1102"\r
+                            "Type" = "3:3"\r
+                            "ContextData" = "8:"\r
+                            "Attributes" = "3:0"\r
+                            "Setting" = "3:1"\r
+                            "Value" = "8:#1202"\r
+                            "DefaultValue" = "8:#1202"\r
+                            "UsePlugInResources" = "11:TRUE"\r
+                            }\r
+                            "Welcome"\r
+                            {\r
+                            "Name" = "8:Welcome"\r
+                            "DisplayName" = "8:#1003"\r
+                            "Description" = "8:#1103"\r
+                            "Type" = "3:3"\r
+                            "ContextData" = "8:"\r
+                            "Attributes" = "3:0"\r
+                            "Setting" = "3:1"\r
+                            "Value" = "8:#1203"\r
+                            "DefaultValue" = "8:#1203"\r
+                            "UsePlugInResources" = "11:TRUE"\r
+                            }\r
+                        }\r
+                    }\r
+                    "{688940B3-5CA9-4162-8DEE-2993FA9D8CBC}:_C39DB6236278466E891E520ECC2B3A2C"\r
+                    {\r
+                    "Sequence" = "3:300"\r
+                    "DisplayName" = "8:インストールの確認"\r
+                    "UseDynamicProperties" = "11:TRUE"\r
+                    "IsDependency" = "11:FALSE"\r
+                    "SourcePath" = "8:<VsdDialogDir>\\VsdConfirmDlg.wid"\r
+                        "Properties"\r
+                        {\r
+                            "BannerBitmap"\r
+                            {\r
+                            "Name" = "8:BannerBitmap"\r
+                            "DisplayName" = "8:#1001"\r
+                            "Description" = "8:#1101"\r
+                            "Type" = "3:8"\r
+                            "ContextData" = "8:Bitmap"\r
+                            "Attributes" = "3:4"\r
+                            "Setting" = "3:1"\r
+                            "UsePlugInResources" = "11:TRUE"\r
+                            }\r
+                        }\r
+                    }\r
+                    "{688940B3-5CA9-4162-8DEE-2993FA9D8CBC}:_F6ED4BE3030B427D802585B83404F80B"\r
+                    {\r
+                    "Sequence" = "3:200"\r
+                    "DisplayName" = "8:インストール フォルダ"\r
+                    "UseDynamicProperties" = "11:TRUE"\r
+                    "IsDependency" = "11:FALSE"\r
+                    "SourcePath" = "8:<VsdDialogDir>\\VsdFolderDlg.wid"\r
+                        "Properties"\r
+                        {\r
+                            "BannerBitmap"\r
+                            {\r
+                            "Name" = "8:BannerBitmap"\r
+                            "DisplayName" = "8:#1001"\r
+                            "Description" = "8:#1101"\r
+                            "Type" = "3:8"\r
+                            "ContextData" = "8:Bitmap"\r
+                            "Attributes" = "3:4"\r
+                            "Setting" = "3:1"\r
+                            "UsePlugInResources" = "11:TRUE"\r
+                            }\r
+                            "InstallAllUsersVisible"\r
+                            {\r
+                            "Name" = "8:InstallAllUsersVisible"\r
+                            "DisplayName" = "8:#1059"\r
+                            "Description" = "8:#1159"\r
+                            "Type" = "3:5"\r
+                            "ContextData" = "8:1;True=1;False=0"\r
+                            "Attributes" = "3:0"\r
+                            "Setting" = "3:0"\r
+                            "Value" = "3:1"\r
+                            "DefaultValue" = "3:1"\r
+                            "UsePlugInResources" = "11:TRUE"\r
+                            }\r
+                        }\r
+                    }\r
+                }\r
+            }\r
+            "{DF760B10-853B-4699-99F2-AFF7185B4A62}:_3183334811874730ABF75161603D9468"\r
+            {\r
+            "Name" = "8:#1901"\r
+            "Sequence" = "3:2"\r
+            "Attributes" = "3:2"\r
+                "Dialogs"\r
+                {\r
+                    "{688940B3-5CA9-4162-8DEE-2993FA9D8CBC}:_C33BDAD7CE6548998B7DEDED2EC289D5"\r
+                    {\r
+                    "Sequence" = "3:100"\r
+                    "DisplayName" = "8:進行状況"\r
+                    "UseDynamicProperties" = "11:TRUE"\r
+                    "IsDependency" = "11:FALSE"\r
+                    "SourcePath" = "8:<VsdDialogDir>\\VsdAdminProgressDlg.wid"\r
+                        "Properties"\r
+                        {\r
+                            "BannerBitmap"\r
+                            {\r
+                            "Name" = "8:BannerBitmap"\r
+                            "DisplayName" = "8:#1001"\r
+                            "Description" = "8:#1101"\r
+                            "Type" = "3:8"\r
+                            "ContextData" = "8:Bitmap"\r
+                            "Attributes" = "3:4"\r
+                            "Setting" = "3:1"\r
+                            "UsePlugInResources" = "11:TRUE"\r
+                            }\r
+                            "ShowProgress"\r
+                            {\r
+                            "Name" = "8:ShowProgress"\r
+                            "DisplayName" = "8:#1009"\r
+                            "Description" = "8:#1109"\r
+                            "Type" = "3:5"\r
+                            "ContextData" = "8:1;True=1;False=0"\r
+                            "Attributes" = "3:0"\r
+                            "Setting" = "3:0"\r
+                            "Value" = "3:1"\r
+                            "DefaultValue" = "3:1"\r
+                            "UsePlugInResources" = "11:TRUE"\r
+                            }\r
+                        }\r
+                    }\r
+                }\r
+            }\r
+            "{DF760B10-853B-4699-99F2-AFF7185B4A62}:_52E44DF4A51142BC829BFD73A10A4F54"\r
+            {\r
+            "Name" = "8:#1901"\r
+            "Sequence" = "3:1"\r
+            "Attributes" = "3:2"\r
+                "Dialogs"\r
+                {\r
+                    "{688940B3-5CA9-4162-8DEE-2993FA9D8CBC}:_A4B3A4C338F04492BEF3789CF2E031AD"\r
+                    {\r
+                    "Sequence" = "3:100"\r
+                    "DisplayName" = "8:進行状況"\r
+                    "UseDynamicProperties" = "11:TRUE"\r
+                    "IsDependency" = "11:FALSE"\r
+                    "SourcePath" = "8:<VsdDialogDir>\\VsdProgressDlg.wid"\r
+                        "Properties"\r
+                        {\r
+                            "BannerBitmap"\r
+                            {\r
+                            "Name" = "8:BannerBitmap"\r
+                            "DisplayName" = "8:#1001"\r
+                            "Description" = "8:#1101"\r
+                            "Type" = "3:8"\r
+                            "ContextData" = "8:Bitmap"\r
+                            "Attributes" = "3:4"\r
+                            "Setting" = "3:1"\r
+                            "UsePlugInResources" = "11:TRUE"\r
+                            }\r
+                            "ShowProgress"\r
+                            {\r
+                            "Name" = "8:ShowProgress"\r
+                            "DisplayName" = "8:#1009"\r
+                            "Description" = "8:#1109"\r
+                            "Type" = "3:5"\r
+                            "ContextData" = "8:1;True=1;False=0"\r
+                            "Attributes" = "3:0"\r
+                            "Setting" = "3:0"\r
+                            "Value" = "3:1"\r
+                            "DefaultValue" = "3:1"\r
+                            "UsePlugInResources" = "11:TRUE"\r
+                            }\r
+                        }\r
+                    }\r
+                }\r
+            }\r
+            "{DF760B10-853B-4699-99F2-AFF7185B4A62}:_7575A0860EAF40F384EFF8465D18EE07"\r
+            {\r
+            "Name" = "8:#1900"\r
+            "Sequence" = "3:2"\r
+            "Attributes" = "3:1"\r
+                "Dialogs"\r
+                {\r
+                    "{688940B3-5CA9-4162-8DEE-2993FA9D8CBC}:_049AC922F86F47BE8B212691C561D48F"\r
+                    {\r
+                    "Sequence" = "3:300"\r
+                    "DisplayName" = "8:インストールの確認"\r
+                    "UseDynamicProperties" = "11:TRUE"\r
+                    "IsDependency" = "11:FALSE"\r
+                    "SourcePath" = "8:<VsdDialogDir>\\VsdAdminConfirmDlg.wid"\r
+                        "Properties"\r
+                        {\r
+                            "BannerBitmap"\r
+                            {\r
+                            "Name" = "8:BannerBitmap"\r
+                            "DisplayName" = "8:#1001"\r
+                            "Description" = "8:#1101"\r
+                            "Type" = "3:8"\r
+                            "ContextData" = "8:Bitmap"\r
+                            "Attributes" = "3:4"\r
+                            "Setting" = "3:1"\r
+                            "UsePlugInResources" = "11:TRUE"\r
+                            }\r
+                        }\r
+                    }\r
+                    "{688940B3-5CA9-4162-8DEE-2993FA9D8CBC}:_4552CF6714D64671BDE12D8F84AFEEBC"\r
+                    {\r
+                    "Sequence" = "3:200"\r
+                    "DisplayName" = "8:インストール フォルダ"\r
+                    "UseDynamicProperties" = "11:TRUE"\r
+                    "IsDependency" = "11:FALSE"\r
+                    "SourcePath" = "8:<VsdDialogDir>\\VsdAdminFolderDlg.wid"\r
+                        "Properties"\r
+                        {\r
+                            "BannerBitmap"\r
+                            {\r
+                            "Name" = "8:BannerBitmap"\r
+                            "DisplayName" = "8:#1001"\r
+                            "Description" = "8:#1101"\r
+                            "Type" = "3:8"\r
+                            "ContextData" = "8:Bitmap"\r
+                            "Attributes" = "3:4"\r
+                            "Setting" = "3:1"\r
+                            "UsePlugInResources" = "11:TRUE"\r
+                            }\r
+                        }\r
+                    }\r
+                    "{688940B3-5CA9-4162-8DEE-2993FA9D8CBC}:_CDE00B7D1CEA42428FE205C721735F39"\r
+                    {\r
+                    "Sequence" = "3:100"\r
+                    "DisplayName" = "8:ようこそ"\r
+                    "UseDynamicProperties" = "11:TRUE"\r
+                    "IsDependency" = "11:FALSE"\r
+                    "SourcePath" = "8:<VsdDialogDir>\\VsdAdminWelcomeDlg.wid"\r
+                        "Properties"\r
+                        {\r
+                            "BannerBitmap"\r
+                            {\r
+                            "Name" = "8:BannerBitmap"\r
+                            "DisplayName" = "8:#1001"\r
+                            "Description" = "8:#1101"\r
+                            "Type" = "3:8"\r
+                            "ContextData" = "8:Bitmap"\r
+                            "Attributes" = "3:4"\r
+                            "Setting" = "3:1"\r
+                            "UsePlugInResources" = "11:TRUE"\r
+                            }\r
+                            "CopyrightWarning"\r
+                            {\r
+                            "Name" = "8:CopyrightWarning"\r
+                            "DisplayName" = "8:#1002"\r
+                            "Description" = "8:#1102"\r
+                            "Type" = "3:3"\r
+                            "ContextData" = "8:"\r
+                            "Attributes" = "3:0"\r
+                            "Setting" = "3:1"\r
+                            "Value" = "8:#1202"\r
+                            "DefaultValue" = "8:#1202"\r
+                            "UsePlugInResources" = "11:TRUE"\r
+                            }\r
+                            "Welcome"\r
+                            {\r
+                            "Name" = "8:Welcome"\r
+                            "DisplayName" = "8:#1003"\r
+                            "Description" = "8:#1103"\r
+                            "Type" = "3:3"\r
+                            "ContextData" = "8:"\r
+                            "Attributes" = "3:0"\r
+                            "Setting" = "3:1"\r
+                            "Value" = "8:#1203"\r
+                            "DefaultValue" = "8:#1203"\r
+                            "UsePlugInResources" = "11:TRUE"\r
+                            }\r
+                        }\r
+                    }\r
+                }\r
+            }\r
+            "{DF760B10-853B-4699-99F2-AFF7185B4A62}:_9A9A15398B98445EB300F38CB7109FF4"\r
+            {\r
+            "Name" = "8:#1902"\r
+            "Sequence" = "3:1"\r
+            "Attributes" = "3:3"\r
+                "Dialogs"\r
+                {\r
+                    "{688940B3-5CA9-4162-8DEE-2993FA9D8CBC}:_FDEB087E1B464C00A21E4FE482BDB089"\r
+                    {\r
+                    "Sequence" = "3:100"\r
+                    "DisplayName" = "8:完了"\r
+                    "UseDynamicProperties" = "11:TRUE"\r
+                    "IsDependency" = "11:FALSE"\r
+                    "SourcePath" = "8:<VsdDialogDir>\\VsdFinishedDlg.wid"\r
+                        "Properties"\r
+                        {\r
+                            "BannerBitmap"\r
+                            {\r
+                            "Name" = "8:BannerBitmap"\r
+                            "DisplayName" = "8:#1001"\r
+                            "Description" = "8:#1101"\r
+                            "Type" = "3:8"\r
+                            "ContextData" = "8:Bitmap"\r
+                            "Attributes" = "3:4"\r
+                            "Setting" = "3:1"\r
+                            "UsePlugInResources" = "11:TRUE"\r
+                            }\r
+                            "UpdateText"\r
+                            {\r
+                            "Name" = "8:UpdateText"\r
+                            "DisplayName" = "8:#1058"\r
+                            "Description" = "8:#1158"\r
+                            "Type" = "3:15"\r
+                            "ContextData" = "8:"\r
+                            "Attributes" = "3:0"\r
+                            "Setting" = "3:1"\r
+                            "Value" = "8:#1258"\r
+                            "DefaultValue" = "8:#1258"\r
+                            "UsePlugInResources" = "11:TRUE"\r
+                            }\r
+                        }\r
+                    }\r
+                }\r
+            }\r
+            "{DF760B10-853B-4699-99F2-AFF7185B4A62}:_BA3EB48BF1FE4AC2B6CEB82CCE7DF0B4"\r
+            {\r
+            "Name" = "8:#1902"\r
+            "Sequence" = "3:2"\r
+            "Attributes" = "3:3"\r
+                "Dialogs"\r
+                {\r
+                    "{688940B3-5CA9-4162-8DEE-2993FA9D8CBC}:_6FFA239C71C645F0BFAD583E747C2FC7"\r
+                    {\r
+                    "Sequence" = "3:100"\r
+                    "DisplayName" = "8:完了"\r
+                    "UseDynamicProperties" = "11:TRUE"\r
+                    "IsDependency" = "11:FALSE"\r
+                    "SourcePath" = "8:<VsdDialogDir>\\VsdAdminFinishedDlg.wid"\r
+                        "Properties"\r
+                        {\r
+                            "BannerBitmap"\r
+                            {\r
+                            "Name" = "8:BannerBitmap"\r
+                            "DisplayName" = "8:#1001"\r
+                            "Description" = "8:#1101"\r
+                            "Type" = "3:8"\r
+                            "ContextData" = "8:Bitmap"\r
+                            "Attributes" = "3:4"\r
+                            "Setting" = "3:1"\r
+                            "UsePlugInResources" = "11:TRUE"\r
+                            }\r
+                        }\r
+                    }\r
+                }\r
+            }\r
+            "{2479F3F5-0309-486D-8047-8187E2CE5BA0}:_BC4DAC50F815460D82440F22878E1B27"\r
+            {\r
+            "UseDynamicProperties" = "11:FALSE"\r
+            "IsDependency" = "11:FALSE"\r
+            "SourcePath" = "8:<VsdDialogDir>\\VsdBasicDialogs.wim"\r
+            }\r
+        }\r
+        "MergeModule"\r
+        {\r
+            "{CEE29DC0-9FBA-4B99-8D47-5BC643D9B626}:_5F479A3A9B5545C396D4ABF26F03CE92"\r
+            {\r
+            "UseDynamicProperties" = "11:TRUE"\r
+            "IsDependency" = "11:TRUE"\r
+            "SourcePath" = "8:policy_8_0_microsoft_vc80_crt_x86.msm"\r
+                "Properties"\r
+                {\r
+                }\r
+            "LanguageId" = "3:0"\r
+            "Exclude" = "11:FALSE"\r
+            "Folder" = "8:"\r
+            "Feature" = "8:"\r
+            "IsolateTo" = "8:"\r
+            }\r
+            "{CEE29DC0-9FBA-4B99-8D47-5BC643D9B626}:_B183D15C2A8847E9A6909D3FA17981DA"\r
+            {\r
+            "UseDynamicProperties" = "11:TRUE"\r
+            "IsDependency" = "11:TRUE"\r
+            "SourcePath" = "8:Microsoft_VC80_CRT_x86.msm"\r
+                "Properties"\r
+                {\r
+                }\r
+            "LanguageId" = "3:0"\r
+            "Exclude" = "11:FALSE"\r
+            "Folder" = "8:"\r
+            "Feature" = "8:"\r
+            "IsolateTo" = "8:"\r
+            }\r
+        }\r
+        "ProjectOutput"\r
+        {\r
+            "{5259A561-127C-4D43-A0A1-72F10C7B3BF8}:_530D1DE28FA74B84BADDF0ED55FE6E54"\r
+            {\r
+            "SourcePath" = "8:..\\release\\Tombo.exe"\r
+            "TargetName" = "8:"\r
+            "Tag" = "8:"\r
+            "Folder" = "8:_41D6731EB5D246C2B1DD0A0C519DBDE8"\r
+            "Condition" = "8:"\r
+            "Transitive" = "11:FALSE"\r
+            "Vital" = "11:TRUE"\r
+            "ReadOnly" = "11:FALSE"\r
+            "Hidden" = "11:FALSE"\r
+            "System" = "11:FALSE"\r
+            "Permanent" = "11:FALSE"\r
+            "SharedLegacy" = "11:FALSE"\r
+            "PackageAs" = "3:1"\r
+            "Register" = "3:1"\r
+            "Exclude" = "11:FALSE"\r
+            "IsDependency" = "11:FALSE"\r
+            "IsolateTo" = "8:"\r
+            "ProjectOutputGroupRegister" = "3:1"\r
+            "OutputConfiguration" = "8:Release|Win32"\r
+            "OutputGroupCanonicalName" = "8:Built"\r
+            "OutputProjectGuid" = "8:{BD1B7E25-9555-4F73-B3F9-4AD2C559F235}"\r
+            "ShowKeyOutput" = "11:TRUE"\r
+                "ExcludeFilters"\r
+                {\r
+                }\r
+            }\r
+        }\r
+        "VJSharpPlugin"\r
+        {\r
+        }\r
+    }\r
+}\r
diff --git a/Win32/Tombo/SetupJ/SetupJ.vdproj b/Win32/Tombo/SetupJ/SetupJ.vdproj
new file mode 100644 (file)
index 0000000..fc0af17
--- /dev/null
@@ -0,0 +1,1001 @@
+"DeployProject"\r
+{\r
+"VSVersion" = "3:800"\r
+"ProjectType" = "8:{978C614F-708E-4E1A-B201-565925725DBA}"\r
+"IsWebType" = "8:FALSE"\r
+"ProjectName" = "8:SetupJ"\r
+"LanguageId" = "3:1041"\r
+"CodePage" = "3:932"\r
+"UILanguageId" = "3:1041"\r
+"SccProjectName" = "8:"\r
+"SccLocalPath" = "8:"\r
+"SccAuxPath" = "8:"\r
+"SccProvider" = "8:"\r
+    "Hierarchy"\r
+    {\r
+        "Entry"\r
+        {\r
+        "MsmKey" = "8:_13802E505185E38F95CC6816DBA5A4B9"\r
+        "OwnerKey" = "8:_411795EFE46945BDA209099486C46D09"\r
+        "MsmSig" = "8:_UNDEFINED"\r
+        }\r
+        "Entry"\r
+        {\r
+        "MsmKey" = "8:_411795EFE46945BDA209099486C46D09"\r
+        "OwnerKey" = "8:_UNDEFINED"\r
+        "MsmSig" = "8:_UNDEFINED"\r
+        }\r
+        "Entry"\r
+        {\r
+        "MsmKey" = "8:_5BD61AD5ED1A4ADFA3A49043AD0B9C64"\r
+        "OwnerKey" = "8:_UNDEFINED"\r
+        "MsmSig" = "8:_UNDEFINED"\r
+        }\r
+        "Entry"\r
+        {\r
+        "MsmKey" = "8:_7248A6E3C118237C69E3A554ABBF0E03"\r
+        "OwnerKey" = "8:_411795EFE46945BDA209099486C46D09"\r
+        "MsmSig" = "8:_UNDEFINED"\r
+        }\r
+        "Entry"\r
+        {\r
+        "MsmKey" = "8:_7AD95228EEDB4523A54ACCD0C72A932F"\r
+        "OwnerKey" = "8:_UNDEFINED"\r
+        "MsmSig" = "8:_UNDEFINED"\r
+        }\r
+        "Entry"\r
+        {\r
+        "MsmKey" = "8:_7E76316A4749852F914E3513AE8E7B24"\r
+        "OwnerKey" = "8:_411795EFE46945BDA209099486C46D09"\r
+        "MsmSig" = "8:_UNDEFINED"\r
+        }\r
+        "Entry"\r
+        {\r
+        "MsmKey" = "8:_82A601B2FEC74C4BBEA7F2060594DDFC"\r
+        "OwnerKey" = "8:_UNDEFINED"\r
+        "MsmSig" = "8:_UNDEFINED"\r
+        }\r
+        "Entry"\r
+        {\r
+        "MsmKey" = "8:_D6C69C44027925E6DC71602FD1920014"\r
+        "OwnerKey" = "8:_411795EFE46945BDA209099486C46D09"\r
+        "MsmSig" = "8:_UNDEFINED"\r
+        }\r
+        "Entry"\r
+        {\r
+        "MsmKey" = "8:_DA61F68FC81B4F449D2BA5F345CF748F"\r
+        "OwnerKey" = "8:_ECD69084C045448BB273A54D9EFFAD30"\r
+        "MsmSig" = "8:_UNDEFINED"\r
+        }\r
+        "Entry"\r
+        {\r
+        "MsmKey" = "8:_E731E1006CE04E778FB0BACC7D6BFDBB"\r
+        "OwnerKey" = "8:_UNDEFINED"\r
+        "MsmSig" = "8:_UNDEFINED"\r
+        }\r
+        "Entry"\r
+        {\r
+        "MsmKey" = "8:_ECD69084C045448BB273A54D9EFFAD30"\r
+        "OwnerKey" = "8:_411795EFE46945BDA209099486C46D09"\r
+        "MsmSig" = "8:_UNDEFINED"\r
+        }\r
+    }\r
+    "Configurations"\r
+    {\r
+        "Debug"\r
+        {\r
+        "DisplayName" = "8:Debug"\r
+        "IsDebugOnly" = "11:TRUE"\r
+        "IsReleaseOnly" = "11:FALSE"\r
+        "OutputFilename" = "8:Debug\\SetupJ.msi"\r
+        "PackageFilesAs" = "3:2"\r
+        "PackageFileSize" = "3:-2147483648"\r
+        "CabType" = "3:1"\r
+        "Compression" = "3:2"\r
+        "SignOutput" = "11:FALSE"\r
+        "CertificateFile" = "8:"\r
+        "PrivateKeyFile" = "8:"\r
+        "TimeStampServer" = "8:"\r
+        "InstallerBootstrapper" = "3:2"\r
+        }\r
+        "Release"\r
+        {\r
+        "DisplayName" = "8:Release"\r
+        "IsDebugOnly" = "11:FALSE"\r
+        "IsReleaseOnly" = "11:TRUE"\r
+        "OutputFilename" = "8:Release\\TOMBO.msi"\r
+        "PackageFilesAs" = "3:2"\r
+        "PackageFileSize" = "3:-2147483648"\r
+        "CabType" = "3:1"\r
+        "Compression" = "3:2"\r
+        "SignOutput" = "11:FALSE"\r
+        "CertificateFile" = "8:"\r
+        "PrivateKeyFile" = "8:"\r
+        "TimeStampServer" = "8:"\r
+        "InstallerBootstrapper" = "3:2"\r
+        }\r
+    }\r
+    "Deployable"\r
+    {\r
+        "CustomAction"\r
+        {\r
+        }\r
+        "DefaultFeature"\r
+        {\r
+        "Name" = "8:DefaultFeature"\r
+        "Title" = "8:"\r
+        "Description" = "8:"\r
+        }\r
+        "ExternalPersistence"\r
+        {\r
+            "LaunchCondition"\r
+            {\r
+            }\r
+        }\r
+        "File"\r
+        {\r
+            "{1FB2D0AE-D3B9-43D4-B9DD-F88EC61E35DE}:_13802E505185E38F95CC6816DBA5A4B9"\r
+            {\r
+            "SourcePath" = "8:LIBEXPATW.dll"\r
+            "TargetName" = "8:LIBEXPATW.dll"\r
+            "Tag" = "8:"\r
+            "Folder" = "8:_03459EDA443B4546A6D825F9E1FD2981"\r
+            "Condition" = "8:"\r
+            "Transitive" = "11:FALSE"\r
+            "Vital" = "11:TRUE"\r
+            "ReadOnly" = "11:FALSE"\r
+            "Hidden" = "11:FALSE"\r
+            "System" = "11:FALSE"\r
+            "Permanent" = "11:FALSE"\r
+            "SharedLegacy" = "11:FALSE"\r
+            "PackageAs" = "3:1"\r
+            "Register" = "3:1"\r
+            "Exclude" = "11:FALSE"\r
+            "IsDependency" = "11:TRUE"\r
+            "IsolateTo" = "8:"\r
+            }\r
+            "{1FB2D0AE-D3B9-43D4-B9DD-F88EC61E35DE}:_5BD61AD5ED1A4ADFA3A49043AD0B9C64"\r
+            {\r
+            "SourcePath" = "8:..\\..\\..\\Src\\MsgRes\\TomboMsg\\jp\\TomboMsg.txt"\r
+            "TargetName" = "8:TomboMsg.txt"\r
+            "Tag" = "8:"\r
+            "Folder" = "8:_03459EDA443B4546A6D825F9E1FD2981"\r
+            "Condition" = "8:"\r
+            "Transitive" = "11:FALSE"\r
+            "Vital" = "11:TRUE"\r
+            "ReadOnly" = "11:FALSE"\r
+            "Hidden" = "11:FALSE"\r
+            "System" = "11:FALSE"\r
+            "Permanent" = "11:FALSE"\r
+            "SharedLegacy" = "11:FALSE"\r
+            "PackageAs" = "3:1"\r
+            "Register" = "3:1"\r
+            "Exclude" = "11:FALSE"\r
+            "IsDependency" = "11:FALSE"\r
+            "IsolateTo" = "8:"\r
+            }\r
+            "{1FB2D0AE-D3B9-43D4-B9DD-F88EC61E35DE}:_7248A6E3C118237C69E3A554ABBF0E03"\r
+            {\r
+            "SourcePath" = "8:IMM32.dll"\r
+            "TargetName" = "8:IMM32.dll"\r
+            "Tag" = "8:"\r
+            "Folder" = "8:_03459EDA443B4546A6D825F9E1FD2981"\r
+            "Condition" = "8:"\r
+            "Transitive" = "11:FALSE"\r
+            "Vital" = "11:TRUE"\r
+            "ReadOnly" = "11:FALSE"\r
+            "Hidden" = "11:FALSE"\r
+            "System" = "11:FALSE"\r
+            "Permanent" = "11:FALSE"\r
+            "SharedLegacy" = "11:FALSE"\r
+            "PackageAs" = "3:1"\r
+            "Register" = "3:1"\r
+            "Exclude" = "11:TRUE"\r
+            "IsDependency" = "11:TRUE"\r
+            "IsolateTo" = "8:"\r
+            }\r
+            "{1FB2D0AE-D3B9-43D4-B9DD-F88EC61E35DE}:_7AD95228EEDB4523A54ACCD0C72A932F"\r
+            {\r
+            "SourcePath" = "8:..\\..\\..\\..\\Docs\\DocBooks\\UserGuide_jp.chm"\r
+            "TargetName" = "8:UserGuide_jp.chm"\r
+            "Tag" = "8:"\r
+            "Folder" = "8:_03459EDA443B4546A6D825F9E1FD2981"\r
+            "Condition" = "8:"\r
+            "Transitive" = "11:FALSE"\r
+            "Vital" = "11:TRUE"\r
+            "ReadOnly" = "11:FALSE"\r
+            "Hidden" = "11:FALSE"\r
+            "System" = "11:FALSE"\r
+            "Permanent" = "11:FALSE"\r
+            "SharedLegacy" = "11:FALSE"\r
+            "PackageAs" = "3:1"\r
+            "Register" = "3:1"\r
+            "Exclude" = "11:FALSE"\r
+            "IsDependency" = "11:FALSE"\r
+            "IsolateTo" = "8:"\r
+            }\r
+            "{1FB2D0AE-D3B9-43D4-B9DD-F88EC61E35DE}:_7E76316A4749852F914E3513AE8E7B24"\r
+            {\r
+            "SourcePath" = "8:oniguruma.dll"\r
+            "TargetName" = "8:oniguruma.dll"\r
+            "Tag" = "8:"\r
+            "Folder" = "8:_03459EDA443B4546A6D825F9E1FD2981"\r
+            "Condition" = "8:"\r
+            "Transitive" = "11:FALSE"\r
+            "Vital" = "11:TRUE"\r
+            "ReadOnly" = "11:FALSE"\r
+            "Hidden" = "11:FALSE"\r
+            "System" = "11:FALSE"\r
+            "Permanent" = "11:FALSE"\r
+            "SharedLegacy" = "11:FALSE"\r
+            "PackageAs" = "3:1"\r
+            "Register" = "3:1"\r
+            "Exclude" = "11:FALSE"\r
+            "IsDependency" = "11:TRUE"\r
+            "IsolateTo" = "8:"\r
+            }\r
+            "{1FB2D0AE-D3B9-43D4-B9DD-F88EC61E35DE}:_82A601B2FEC74C4BBEA7F2060594DDFC"\r
+            {\r
+            "SourcePath" = "8:..\\..\\RegErase\\Release\\RegErase.exe"\r
+            "TargetName" = "8:RegErase.exe"\r
+            "Tag" = "8:"\r
+            "Folder" = "8:_03459EDA443B4546A6D825F9E1FD2981"\r
+            "Condition" = "8:"\r
+            "Transitive" = "11:FALSE"\r
+            "Vital" = "11:TRUE"\r
+            "ReadOnly" = "11:FALSE"\r
+            "Hidden" = "11:FALSE"\r
+            "System" = "11:FALSE"\r
+            "Permanent" = "11:FALSE"\r
+            "SharedLegacy" = "11:FALSE"\r
+            "PackageAs" = "3:1"\r
+            "Register" = "3:1"\r
+            "Exclude" = "11:FALSE"\r
+            "IsDependency" = "11:FALSE"\r
+            "IsolateTo" = "8:"\r
+            }\r
+            "{1FB2D0AE-D3B9-43D4-B9DD-F88EC61E35DE}:_D6C69C44027925E6DC71602FD1920014"\r
+            {\r
+            "SourcePath" = "8:comdlg32.dll"\r
+            "TargetName" = "8:comdlg32.dll"\r
+            "Tag" = "8:"\r
+            "Folder" = "8:_03459EDA443B4546A6D825F9E1FD2981"\r
+            "Condition" = "8:"\r
+            "Transitive" = "11:FALSE"\r
+            "Vital" = "11:TRUE"\r
+            "ReadOnly" = "11:FALSE"\r
+            "Hidden" = "11:FALSE"\r
+            "System" = "11:FALSE"\r
+            "Permanent" = "11:FALSE"\r
+            "SharedLegacy" = "11:FALSE"\r
+            "PackageAs" = "3:1"\r
+            "Register" = "3:1"\r
+            "Exclude" = "11:TRUE"\r
+            "IsDependency" = "11:TRUE"\r
+            "IsolateTo" = "8:"\r
+            }\r
+            "{1FB2D0AE-D3B9-43D4-B9DD-F88EC61E35DE}:_E731E1006CE04E778FB0BACC7D6BFDBB"\r
+            {\r
+            "SourcePath" = "8:..\\..\\..\\..\\Docs\\Jp\\COPYING-2_0.txt"\r
+            "TargetName" = "8:COPYING-2_0.txt"\r
+            "Tag" = "8:"\r
+            "Folder" = "8:_03459EDA443B4546A6D825F9E1FD2981"\r
+            "Condition" = "8:"\r
+            "Transitive" = "11:FALSE"\r
+            "Vital" = "11:TRUE"\r
+            "ReadOnly" = "11:FALSE"\r
+            "Hidden" = "11:FALSE"\r
+            "System" = "11:FALSE"\r
+            "Permanent" = "11:FALSE"\r
+            "SharedLegacy" = "11:FALSE"\r
+            "PackageAs" = "3:1"\r
+            "Register" = "3:1"\r
+            "Exclude" = "11:FALSE"\r
+            "IsDependency" = "11:FALSE"\r
+            "IsolateTo" = "8:"\r
+            }\r
+        }\r
+        "FileType"\r
+        {\r
+        }\r
+        "Folder"\r
+        {\r
+            "{3C67513D-01DD-4637-8A68-80971EB9504F}:_03459EDA443B4546A6D825F9E1FD2981"\r
+            {\r
+            "DefaultLocation" = "8:[ProgramFilesFolder]\\Tombo"\r
+            "Name" = "8:#1925"\r
+            "AlwaysCreate" = "11:FALSE"\r
+            "Condition" = "8:"\r
+            "Transitive" = "11:FALSE"\r
+            "Property" = "8:TARGETDIR"\r
+                "Folders"\r
+                {\r
+                }\r
+            }\r
+            "{1525181F-901A-416C-8A58-119130FE478E}:_5E667E515DAC4651B264C3A77D6AD2B0"\r
+            {\r
+            "Name" = "8:#1919"\r
+            "AlwaysCreate" = "11:FALSE"\r
+            "Condition" = "8:"\r
+            "Transitive" = "11:FALSE"\r
+            "Property" = "8:ProgramMenuFolder"\r
+                "Folders"\r
+                {\r
+                    "{9EF0B969-E518-4E46-987F-47570745A589}:_A682DA01AC0A4C95878E54A723CEE501"\r
+                    {\r
+                    "Name" = "8:Tombo"\r
+                    "AlwaysCreate" = "11:FALSE"\r
+                    "Condition" = "8:"\r
+                    "Transitive" = "11:FALSE"\r
+                    "Property" = "8:_EB80C66C18284B8493C95BE74FBB0820"\r
+                        "Folders"\r
+                        {\r
+                        }\r
+                    }\r
+                }\r
+            }\r
+            "{1525181F-901A-416C-8A58-119130FE478E}:_A212B9C8A85542E689CACAF70689D65C"\r
+            {\r
+            "Name" = "8:#1916"\r
+            "AlwaysCreate" = "11:FALSE"\r
+            "Condition" = "8:"\r
+            "Transitive" = "11:FALSE"\r
+            "Property" = "8:DesktopFolder"\r
+                "Folders"\r
+                {\r
+                }\r
+            }\r
+        }\r
+        "LaunchCondition"\r
+        {\r
+        }\r
+        "Locator"\r
+        {\r
+        }\r
+        "MsiBootstrapper"\r
+        {\r
+        "LangId" = "3:1041"\r
+        }\r
+        "Product"\r
+        {\r
+        "Name" = "8:Microsoft Visual Studio"\r
+        "ProductName" = "8:TOMBO"\r
+        "ProductCode" = "8:{9ACAF1E3-8761-4424-89F3-A22FBF4347EB}"\r
+        "PackageCode" = "8:{8ACD331E-0F2A-47EA-94B6-0F39CAAD4928}"\r
+        "UpgradeCode" = "8:{2D0CEE4F-147D-4EBE-AAAD-A8D128E32870}"\r
+        "RestartWWWService" = "11:FALSE"\r
+        "RemovePreviousVersions" = "11:TRUE"\r
+        "DetectNewerInstalledVersion" = "11:TRUE"\r
+        "InstallAllUsers" = "11:FALSE"\r
+        "ProductVersion" = "8:2.0.0"\r
+        "Manufacturer" = "8:Personal"\r
+        "ARPHELPTELEPHONE" = "8:"\r
+        "ARPHELPLINK" = "8:"\r
+        "Title" = "8:TOMBO"\r
+        "Subject" = "8:"\r
+        "ARPCONTACT" = "8:Personal"\r
+        "Keywords" = "8:"\r
+        "ARPCOMMENTS" = "8:"\r
+        "ARPURLINFOABOUT" = "8:"\r
+        "ARPPRODUCTICON" = "8:"\r
+        "ARPIconIndex" = "3:0"\r
+        "SearchPath" = "8:"\r
+        "UseSystemSearchPath" = "11:TRUE"\r
+        "TargetPlatform" = "3:0"\r
+        "PreBuildEvent" = "8:"\r
+        "PostBuildEvent" = "8:"\r
+        "RunPostBuildEvent" = "3:0"\r
+        }\r
+        "Registry"\r
+        {\r
+            "HKLM"\r
+            {\r
+                "Keys"\r
+                {\r
+                    "{60EA8692-D2D5-43EB-80DC-7906BF13D6EF}:_C7AD381680D3491785EBDF0451C06062"\r
+                    {\r
+                    "Name" = "8:Software"\r
+                    "Condition" = "8:"\r
+                    "AlwaysCreate" = "11:FALSE"\r
+                    "DeleteAtUninstall" = "11:FALSE"\r
+                    "Transitive" = "11:FALSE"\r
+                        "Keys"\r
+                        {\r
+                            "{60EA8692-D2D5-43EB-80DC-7906BF13D6EF}:_92126DAA6B0F42AAB402A77FFA85438C"\r
+                            {\r
+                            "Name" = "8:[Manufacturer]"\r
+                            "Condition" = "8:"\r
+                            "AlwaysCreate" = "11:FALSE"\r
+                            "DeleteAtUninstall" = "11:FALSE"\r
+                            "Transitive" = "11:FALSE"\r
+                                "Keys"\r
+                                {\r
+                                }\r
+                                "Values"\r
+                                {\r
+                                }\r
+                            }\r
+                        }\r
+                        "Values"\r
+                        {\r
+                        }\r
+                    }\r
+                }\r
+            }\r
+            "HKCU"\r
+            {\r
+                "Keys"\r
+                {\r
+                    "{60EA8692-D2D5-43EB-80DC-7906BF13D6EF}:_DF8C47CBC8CA4A85A65612954413DBCF"\r
+                    {\r
+                    "Name" = "8:Software"\r
+                    "Condition" = "8:"\r
+                    "AlwaysCreate" = "11:FALSE"\r
+                    "DeleteAtUninstall" = "11:FALSE"\r
+                    "Transitive" = "11:FALSE"\r
+                        "Keys"\r
+                        {\r
+                            "{60EA8692-D2D5-43EB-80DC-7906BF13D6EF}:_B7BCB721D145447693744E22C3F9F7CC"\r
+                            {\r
+                            "Name" = "8:[Manufacturer]"\r
+                            "Condition" = "8:"\r
+                            "AlwaysCreate" = "11:FALSE"\r
+                            "DeleteAtUninstall" = "11:FALSE"\r
+                            "Transitive" = "11:FALSE"\r
+                                "Keys"\r
+                                {\r
+                                }\r
+                                "Values"\r
+                                {\r
+                                }\r
+                            }\r
+                        }\r
+                        "Values"\r
+                        {\r
+                        }\r
+                    }\r
+                }\r
+            }\r
+            "HKCR"\r
+            {\r
+                "Keys"\r
+                {\r
+                }\r
+            }\r
+            "HKU"\r
+            {\r
+                "Keys"\r
+                {\r
+                }\r
+            }\r
+            "HKPU"\r
+            {\r
+                "Keys"\r
+                {\r
+                }\r
+            }\r
+        }\r
+        "Sequences"\r
+        {\r
+        }\r
+        "Shortcut"\r
+        {\r
+            "{970C0BB2-C7D0-45D7-ABFA-7EC378858BC0}:_75B300C408954A278BF003D51CB43455"\r
+            {\r
+            "Name" = "8:Tombo"\r
+            "Arguments" = "8:"\r
+            "Description" = "8:"\r
+            "ShowCmd" = "3:1"\r
+            "IconIndex" = "3:109"\r
+            "Transitive" = "11:FALSE"\r
+            "Target" = "8:_411795EFE46945BDA209099486C46D09"\r
+            "Folder" = "8:_A682DA01AC0A4C95878E54A723CEE501"\r
+            "WorkingFolder" = "8:_03459EDA443B4546A6D825F9E1FD2981"\r
+            "Icon" = "8:_411795EFE46945BDA209099486C46D09"\r
+            "Feature" = "8:"\r
+            }\r
+            "{970C0BB2-C7D0-45D7-ABFA-7EC378858BC0}:_B143BAC711C54596A48AF977B0C7875C"\r
+            {\r
+            "Name" = "8:ユーザガイド"\r
+            "Arguments" = "8:"\r
+            "Description" = "8:"\r
+            "ShowCmd" = "3:1"\r
+            "IconIndex" = "3:0"\r
+            "Transitive" = "11:FALSE"\r
+            "Target" = "8:_7AD95228EEDB4523A54ACCD0C72A932F"\r
+            "Folder" = "8:_A682DA01AC0A4C95878E54A723CEE501"\r
+            "WorkingFolder" = "8:_03459EDA443B4546A6D825F9E1FD2981"\r
+            "Icon" = "8:"\r
+            "Feature" = "8:"\r
+            }\r
+            "{970C0BB2-C7D0-45D7-ABFA-7EC378858BC0}:_D47DF05DA63F4817A380274292C56305"\r
+            {\r
+            "Name" = "8:Tombo"\r
+            "Arguments" = "8:"\r
+            "Description" = "8:"\r
+            "ShowCmd" = "3:1"\r
+            "IconIndex" = "3:109"\r
+            "Transitive" = "11:FALSE"\r
+            "Target" = "8:_411795EFE46945BDA209099486C46D09"\r
+            "Folder" = "8:_A212B9C8A85542E689CACAF70689D65C"\r
+            "WorkingFolder" = "8:_03459EDA443B4546A6D825F9E1FD2981"\r
+            "Icon" = "8:_411795EFE46945BDA209099486C46D09"\r
+            "Feature" = "8:"\r
+            }\r
+            "{970C0BB2-C7D0-45D7-ABFA-7EC378858BC0}:_D9FC0A738A7248EB89C1A1A923E9BEB8"\r
+            {\r
+            "Name" = "8:レジストリ削除ツール"\r
+            "Arguments" = "8:"\r
+            "Description" = "8:"\r
+            "ShowCmd" = "3:1"\r
+            "IconIndex" = "3:0"\r
+            "Transitive" = "11:FALSE"\r
+            "Target" = "8:_82A601B2FEC74C4BBEA7F2060594DDFC"\r
+            "Folder" = "8:_A682DA01AC0A4C95878E54A723CEE501"\r
+            "WorkingFolder" = "8:_03459EDA443B4546A6D825F9E1FD2981"\r
+            "Icon" = "8:"\r
+            "Feature" = "8:"\r
+            }\r
+        }\r
+        "UserInterface"\r
+        {\r
+            "{DF760B10-853B-4699-99F2-AFF7185B4A62}:_1C4D65A1899B4C59A529C4DF3F50819E"\r
+            {\r
+            "Name" = "8:#1902"\r
+            "Sequence" = "3:2"\r
+            "Attributes" = "3:3"\r
+                "Dialogs"\r
+                {\r
+                    "{688940B3-5CA9-4162-8DEE-2993FA9D8CBC}:_1F2D6160A58642DC879EDB2DEFD29C42"\r
+                    {\r
+                    "Sequence" = "3:100"\r
+                    "DisplayName" = "8:完了"\r
+                    "UseDynamicProperties" = "11:TRUE"\r
+                    "IsDependency" = "11:FALSE"\r
+                    "SourcePath" = "8:<VsdDialogDir>\\VsdAdminFinishedDlg.wid"\r
+                        "Properties"\r
+                        {\r
+                            "BannerBitmap"\r
+                            {\r
+                            "Name" = "8:BannerBitmap"\r
+                            "DisplayName" = "8:#1001"\r
+                            "Description" = "8:#1101"\r
+                            "Type" = "3:8"\r
+                            "ContextData" = "8:Bitmap"\r
+                            "Attributes" = "3:4"\r
+                            "Setting" = "3:1"\r
+                            "UsePlugInResources" = "11:TRUE"\r
+                            }\r
+                        }\r
+                    }\r
+                }\r
+            }\r
+            "{2479F3F5-0309-486D-8047-8187E2CE5BA0}:_1D3E01D3DB2641458B96CB83FCB3E688"\r
+            {\r
+            "UseDynamicProperties" = "11:FALSE"\r
+            "IsDependency" = "11:FALSE"\r
+            "SourcePath" = "8:<VsdDialogDir>\\VsdBasicDialogs.wim"\r
+            }\r
+            "{DF760B10-853B-4699-99F2-AFF7185B4A62}:_1F6792E099B84DA6B96694A1614DA62F"\r
+            {\r
+            "Name" = "8:#1900"\r
+            "Sequence" = "3:1"\r
+            "Attributes" = "3:1"\r
+                "Dialogs"\r
+                {\r
+                    "{688940B3-5CA9-4162-8DEE-2993FA9D8CBC}:_A2E9DC4396354F13A7590C60C012D817"\r
+                    {\r
+                    "Sequence" = "3:200"\r
+                    "DisplayName" = "8:インストール フォルダ"\r
+                    "UseDynamicProperties" = "11:TRUE"\r
+                    "IsDependency" = "11:FALSE"\r
+                    "SourcePath" = "8:<VsdDialogDir>\\VsdFolderDlg.wid"\r
+                        "Properties"\r
+                        {\r
+                            "BannerBitmap"\r
+                            {\r
+                            "Name" = "8:BannerBitmap"\r
+                            "DisplayName" = "8:#1001"\r
+                            "Description" = "8:#1101"\r
+                            "Type" = "3:8"\r
+                            "ContextData" = "8:Bitmap"\r
+                            "Attributes" = "3:4"\r
+                            "Setting" = "3:1"\r
+                            "UsePlugInResources" = "11:TRUE"\r
+                            }\r
+                            "InstallAllUsersVisible"\r
+                            {\r
+                            "Name" = "8:InstallAllUsersVisible"\r
+                            "DisplayName" = "8:#1059"\r
+                            "Description" = "8:#1159"\r
+                            "Type" = "3:5"\r
+                            "ContextData" = "8:1;True=1;False=0"\r
+                            "Attributes" = "3:0"\r
+                            "Setting" = "3:0"\r
+                            "Value" = "3:1"\r
+                            "DefaultValue" = "3:1"\r
+                            "UsePlugInResources" = "11:TRUE"\r
+                            }\r
+                        }\r
+                    }\r
+                    "{688940B3-5CA9-4162-8DEE-2993FA9D8CBC}:_CB9C5B4FF6034669ACF053E669F23B48"\r
+                    {\r
+                    "Sequence" = "3:100"\r
+                    "DisplayName" = "8:ようこそ"\r
+                    "UseDynamicProperties" = "11:TRUE"\r
+                    "IsDependency" = "11:FALSE"\r
+                    "SourcePath" = "8:<VsdDialogDir>\\VsdWelcomeDlg.wid"\r
+                        "Properties"\r
+                        {\r
+                            "BannerBitmap"\r
+                            {\r
+                            "Name" = "8:BannerBitmap"\r
+                            "DisplayName" = "8:#1001"\r
+                            "Description" = "8:#1101"\r
+                            "Type" = "3:8"\r
+                            "ContextData" = "8:Bitmap"\r
+                            "Attributes" = "3:4"\r
+                            "Setting" = "3:1"\r
+                            "UsePlugInResources" = "11:TRUE"\r
+                            }\r
+                            "CopyrightWarning"\r
+                            {\r
+                            "Name" = "8:CopyrightWarning"\r
+                            "DisplayName" = "8:#1002"\r
+                            "Description" = "8:#1102"\r
+                            "Type" = "3:3"\r
+                            "ContextData" = "8:"\r
+                            "Attributes" = "3:0"\r
+                            "Setting" = "3:1"\r
+                            "Value" = "8:#1202"\r
+                            "DefaultValue" = "8:#1202"\r
+                            "UsePlugInResources" = "11:TRUE"\r
+                            }\r
+                            "Welcome"\r
+                            {\r
+                            "Name" = "8:Welcome"\r
+                            "DisplayName" = "8:#1003"\r
+                            "Description" = "8:#1103"\r
+                            "Type" = "3:3"\r
+                            "ContextData" = "8:"\r
+                            "Attributes" = "3:0"\r
+                            "Setting" = "3:1"\r
+                            "Value" = "8:#1203"\r
+                            "DefaultValue" = "8:#1203"\r
+                            "UsePlugInResources" = "11:TRUE"\r
+                            }\r
+                        }\r
+                    }\r
+                    "{688940B3-5CA9-4162-8DEE-2993FA9D8CBC}:_FF06E981FC474CBB86A573E39DBE7564"\r
+                    {\r
+                    "Sequence" = "3:300"\r
+                    "DisplayName" = "8:インストールの確認"\r
+                    "UseDynamicProperties" = "11:TRUE"\r
+                    "IsDependency" = "11:FALSE"\r
+                    "SourcePath" = "8:<VsdDialogDir>\\VsdConfirmDlg.wid"\r
+                        "Properties"\r
+                        {\r
+                            "BannerBitmap"\r
+                            {\r
+                            "Name" = "8:BannerBitmap"\r
+                            "DisplayName" = "8:#1001"\r
+                            "Description" = "8:#1101"\r
+                            "Type" = "3:8"\r
+                            "ContextData" = "8:Bitmap"\r
+                            "Attributes" = "3:4"\r
+                            "Setting" = "3:1"\r
+                            "UsePlugInResources" = "11:TRUE"\r
+                            }\r
+                        }\r
+                    }\r
+                }\r
+            }\r
+            "{DF760B10-853B-4699-99F2-AFF7185B4A62}:_5EBE6C7C6ACE4825862EE25ED142ECC2"\r
+            {\r
+            "Name" = "8:#1901"\r
+            "Sequence" = "3:1"\r
+            "Attributes" = "3:2"\r
+                "Dialogs"\r
+                {\r
+                    "{688940B3-5CA9-4162-8DEE-2993FA9D8CBC}:_DC4849E2F0B14D788AA89484124E86FA"\r
+                    {\r
+                    "Sequence" = "3:100"\r
+                    "DisplayName" = "8:進行状況"\r
+                    "UseDynamicProperties" = "11:TRUE"\r
+                    "IsDependency" = "11:FALSE"\r
+                    "SourcePath" = "8:<VsdDialogDir>\\VsdProgressDlg.wid"\r
+                        "Properties"\r
+                        {\r
+                            "BannerBitmap"\r
+                            {\r
+                            "Name" = "8:BannerBitmap"\r
+                            "DisplayName" = "8:#1001"\r
+                            "Description" = "8:#1101"\r
+                            "Type" = "3:8"\r
+                            "ContextData" = "8:Bitmap"\r
+                            "Attributes" = "3:4"\r
+                            "Setting" = "3:1"\r
+                            "UsePlugInResources" = "11:TRUE"\r
+                            }\r
+                            "ShowProgress"\r
+                            {\r
+                            "Name" = "8:ShowProgress"\r
+                            "DisplayName" = "8:#1009"\r
+                            "Description" = "8:#1109"\r
+                            "Type" = "3:5"\r
+                            "ContextData" = "8:1;True=1;False=0"\r
+                            "Attributes" = "3:0"\r
+                            "Setting" = "3:0"\r
+                            "Value" = "3:1"\r
+                            "DefaultValue" = "3:1"\r
+                            "UsePlugInResources" = "11:TRUE"\r
+                            }\r
+                        }\r
+                    }\r
+                }\r
+            }\r
+            "{DF760B10-853B-4699-99F2-AFF7185B4A62}:_881F488BB72B4E75AF71FAA9AA199C8A"\r
+            {\r
+            "Name" = "8:#1901"\r
+            "Sequence" = "3:2"\r
+            "Attributes" = "3:2"\r
+                "Dialogs"\r
+                {\r
+                    "{688940B3-5CA9-4162-8DEE-2993FA9D8CBC}:_B3EA642E907343C38E52A9447A1828E2"\r
+                    {\r
+                    "Sequence" = "3:100"\r
+                    "DisplayName" = "8:進行状況"\r
+                    "UseDynamicProperties" = "11:TRUE"\r
+                    "IsDependency" = "11:FALSE"\r
+                    "SourcePath" = "8:<VsdDialogDir>\\VsdAdminProgressDlg.wid"\r
+                        "Properties"\r
+                        {\r
+                            "BannerBitmap"\r
+                            {\r
+                            "Name" = "8:BannerBitmap"\r
+                            "DisplayName" = "8:#1001"\r
+                            "Description" = "8:#1101"\r
+                            "Type" = "3:8"\r
+                            "ContextData" = "8:Bitmap"\r
+                            "Attributes" = "3:4"\r
+                            "Setting" = "3:1"\r
+                            "UsePlugInResources" = "11:TRUE"\r
+                            }\r
+                            "ShowProgress"\r
+                            {\r
+                            "Name" = "8:ShowProgress"\r
+                            "DisplayName" = "8:#1009"\r
+                            "Description" = "8:#1109"\r
+                            "Type" = "3:5"\r
+                            "ContextData" = "8:1;True=1;False=0"\r
+                            "Attributes" = "3:0"\r
+                            "Setting" = "3:0"\r
+                            "Value" = "3:1"\r
+                            "DefaultValue" = "3:1"\r
+                            "UsePlugInResources" = "11:TRUE"\r
+                            }\r
+                        }\r
+                    }\r
+                }\r
+            }\r
+            "{DF760B10-853B-4699-99F2-AFF7185B4A62}:_8D731B5E18DB45DDB11A0DE3E161962A"\r
+            {\r
+            "Name" = "8:#1902"\r
+            "Sequence" = "3:1"\r
+            "Attributes" = "3:3"\r
+                "Dialogs"\r
+                {\r
+                    "{688940B3-5CA9-4162-8DEE-2993FA9D8CBC}:_9160ECD093BD4C0ABB8D8B24CD727D28"\r
+                    {\r
+                    "Sequence" = "3:100"\r
+                    "DisplayName" = "8:完了"\r
+                    "UseDynamicProperties" = "11:TRUE"\r
+                    "IsDependency" = "11:FALSE"\r
+                    "SourcePath" = "8:<VsdDialogDir>\\VsdFinishedDlg.wid"\r
+                        "Properties"\r
+                        {\r
+                            "BannerBitmap"\r
+                            {\r
+                            "Name" = "8:BannerBitmap"\r
+                            "DisplayName" = "8:#1001"\r
+                            "Description" = "8:#1101"\r
+                            "Type" = "3:8"\r
+                            "ContextData" = "8:Bitmap"\r
+                            "Attributes" = "3:4"\r
+                            "Setting" = "3:1"\r
+                            "UsePlugInResources" = "11:TRUE"\r
+                            }\r
+                            "UpdateText"\r
+                            {\r
+                            "Name" = "8:UpdateText"\r
+                            "DisplayName" = "8:#1058"\r
+                            "Description" = "8:#1158"\r
+                            "Type" = "3:15"\r
+                            "ContextData" = "8:"\r
+                            "Attributes" = "3:0"\r
+                            "Setting" = "3:1"\r
+                            "Value" = "8:#1258"\r
+                            "DefaultValue" = "8:#1258"\r
+                            "UsePlugInResources" = "11:TRUE"\r
+                            }\r
+                        }\r
+                    }\r
+                }\r
+            }\r
+            "{2479F3F5-0309-486D-8047-8187E2CE5BA0}:_D3ADB7D27DE0484B831D6450D09E1D25"\r
+            {\r
+            "UseDynamicProperties" = "11:FALSE"\r
+            "IsDependency" = "11:FALSE"\r
+            "SourcePath" = "8:<VsdDialogDir>\\VsdUserInterface.wim"\r
+            }\r
+            "{DF760B10-853B-4699-99F2-AFF7185B4A62}:_F7B9C309E644427D99CF489918A6745C"\r
+            {\r
+            "Name" = "8:#1900"\r
+            "Sequence" = "3:2"\r
+            "Attributes" = "3:1"\r
+                "Dialogs"\r
+                {\r
+                    "{688940B3-5CA9-4162-8DEE-2993FA9D8CBC}:_44AA63E19AFE439492D1E403830087E2"\r
+                    {\r
+                    "Sequence" = "3:100"\r
+                    "DisplayName" = "8:ようこそ"\r
+                    "UseDynamicProperties" = "11:TRUE"\r
+                    "IsDependency" = "11:FALSE"\r
+                    "SourcePath" = "8:<VsdDialogDir>\\VsdAdminWelcomeDlg.wid"\r
+                        "Properties"\r
+                        {\r
+                            "BannerBitmap"\r
+                            {\r
+                            "Name" = "8:BannerBitmap"\r
+                            "DisplayName" = "8:#1001"\r
+                            "Description" = "8:#1101"\r
+                            "Type" = "3:8"\r
+                            "ContextData" = "8:Bitmap"\r
+                            "Attributes" = "3:4"\r
+                            "Setting" = "3:1"\r
+                            "UsePlugInResources" = "11:TRUE"\r
+                            }\r
+                            "CopyrightWarning"\r
+                            {\r
+                            "Name" = "8:CopyrightWarning"\r
+                            "DisplayName" = "8:#1002"\r
+                            "Description" = "8:#1102"\r
+                            "Type" = "3:3"\r
+                            "ContextData" = "8:"\r
+                            "Attributes" = "3:0"\r
+                            "Setting" = "3:1"\r
+                            "Value" = "8:#1202"\r
+                            "DefaultValue" = "8:#1202"\r
+                            "UsePlugInResources" = "11:TRUE"\r
+                            }\r
+                            "Welcome"\r
+                            {\r
+                            "Name" = "8:Welcome"\r
+                            "DisplayName" = "8:#1003"\r
+                            "Description" = "8:#1103"\r
+                            "Type" = "3:3"\r
+                            "ContextData" = "8:"\r
+                            "Attributes" = "3:0"\r
+                            "Setting" = "3:1"\r
+                            "Value" = "8:#1203"\r
+                            "DefaultValue" = "8:#1203"\r
+                            "UsePlugInResources" = "11:TRUE"\r
+                            }\r
+                        }\r
+                    }\r
+                    "{688940B3-5CA9-4162-8DEE-2993FA9D8CBC}:_992483B7BF024F698629ED0B1B535925"\r
+                    {\r
+                    "Sequence" = "3:200"\r
+                    "DisplayName" = "8:インストール フォルダ"\r
+                    "UseDynamicProperties" = "11:TRUE"\r
+                    "IsDependency" = "11:FALSE"\r
+                    "SourcePath" = "8:<VsdDialogDir>\\VsdAdminFolderDlg.wid"\r
+                        "Properties"\r
+                        {\r
+                            "BannerBitmap"\r
+                            {\r
+                            "Name" = "8:BannerBitmap"\r
+                            "DisplayName" = "8:#1001"\r
+                            "Description" = "8:#1101"\r
+                            "Type" = "3:8"\r
+                            "ContextData" = "8:Bitmap"\r
+                            "Attributes" = "3:4"\r
+                            "Setting" = "3:1"\r
+                            "UsePlugInResources" = "11:TRUE"\r
+                            }\r
+                        }\r
+                    }\r
+                    "{688940B3-5CA9-4162-8DEE-2993FA9D8CBC}:_A65EDAABCB234337900530CC5F9DE20D"\r
+                    {\r
+                    "Sequence" = "3:300"\r
+                    "DisplayName" = "8:インストールの確認"\r
+                    "UseDynamicProperties" = "11:TRUE"\r
+                    "IsDependency" = "11:FALSE"\r
+                    "SourcePath" = "8:<VsdDialogDir>\\VsdAdminConfirmDlg.wid"\r
+                        "Properties"\r
+                        {\r
+                            "BannerBitmap"\r
+                            {\r
+                            "Name" = "8:BannerBitmap"\r
+                            "DisplayName" = "8:#1001"\r
+                            "Description" = "8:#1101"\r
+                            "Type" = "3:8"\r
+                            "ContextData" = "8:Bitmap"\r
+                            "Attributes" = "3:4"\r
+                            "Setting" = "3:1"\r
+                            "UsePlugInResources" = "11:TRUE"\r
+                            }\r
+                        }\r
+                    }\r
+                }\r
+            }\r
+        }\r
+        "MergeModule"\r
+        {\r
+            "{CEE29DC0-9FBA-4B99-8D47-5BC643D9B626}:_DA61F68FC81B4F449D2BA5F345CF748F"\r
+            {\r
+            "UseDynamicProperties" = "11:TRUE"\r
+            "IsDependency" = "11:TRUE"\r
+            "SourcePath" = "8:policy_8_0_microsoft_vc80_crt_x86.msm"\r
+                "Properties"\r
+                {\r
+                }\r
+            "LanguageId" = "3:0"\r
+            "Exclude" = "11:FALSE"\r
+            "Folder" = "8:"\r
+            "Feature" = "8:"\r
+            "IsolateTo" = "8:"\r
+            }\r
+            "{CEE29DC0-9FBA-4B99-8D47-5BC643D9B626}:_ECD69084C045448BB273A54D9EFFAD30"\r
+            {\r
+            "UseDynamicProperties" = "11:TRUE"\r
+            "IsDependency" = "11:TRUE"\r
+            "SourcePath" = "8:Microsoft_VC80_CRT_x86.msm"\r
+                "Properties"\r
+                {\r
+                }\r
+            "LanguageId" = "3:0"\r
+            "Exclude" = "11:FALSE"\r
+            "Folder" = "8:"\r
+            "Feature" = "8:"\r
+            "IsolateTo" = "8:"\r
+            }\r
+        }\r
+        "ProjectOutput"\r
+        {\r
+            "{5259A561-127C-4D43-A0A1-72F10C7B3BF8}:_411795EFE46945BDA209099486C46D09"\r
+            {\r
+            "SourcePath" = "8:..\\release\\Tombo.exe"\r
+            "TargetName" = "8:"\r
+            "Tag" = "8:"\r
+            "Folder" = "8:_03459EDA443B4546A6D825F9E1FD2981"\r
+            "Condition" = "8:"\r
+            "Transitive" = "11:FALSE"\r
+            "Vital" = "11:TRUE"\r
+            "ReadOnly" = "11:FALSE"\r
+            "Hidden" = "11:FALSE"\r
+            "System" = "11:FALSE"\r
+            "Permanent" = "11:FALSE"\r
+            "SharedLegacy" = "11:FALSE"\r
+            "PackageAs" = "3:1"\r
+            "Register" = "3:1"\r
+            "Exclude" = "11:FALSE"\r
+            "IsDependency" = "11:FALSE"\r
+            "IsolateTo" = "8:"\r
+            "ProjectOutputGroupRegister" = "3:1"\r
+            "OutputConfiguration" = "8:Release|Win32"\r
+            "OutputGroupCanonicalName" = "8:Built"\r
+            "OutputProjectGuid" = "8:{BD1B7E25-9555-4F73-B3F9-4AD2C559F235}"\r
+            "ShowKeyOutput" = "11:TRUE"\r
+                "ExcludeFilters"\r
+                {\r
+                "ExcludeFilter" = "8:comdlg32.dll"\r
+                "ExcludeFilter" = "8:IMM32.dll"\r
+                }\r
+            }\r
+        }\r
+        "VJSharpPlugin"\r
+        {\r
+        }\r
+    }\r
+}\r
diff --git a/Win32/Tombo/Tombo.dsp b/Win32/Tombo/Tombo.dsp
new file mode 100644 (file)
index 0000000..f1d3ec7
--- /dev/null
@@ -0,0 +1,731 @@
+# Microsoft Developer Studio Project File - Name="Tombo" - Package Owner=<4>
+# Microsoft Developer Studio Generated Build File, Format Version 6.00
+# ** \95Ò\8fW\82µ\82È\82¢\82Å\82­\82¾\82³\82¢ **
+
+# TARGTYPE "Win32 (x86) Application" 0x0101
+
+CFG=Tombo - Win32 Debug
+!MESSAGE \82±\82ê\82Í\97L\8cø\82ÈÒ²¸Ì§²Ù\82Å\82Í\82 \82è\82Ü\82¹\82ñ\81\82±\82ÌÌßÛ¼Þª¸Ä\82ðËÞÙÄÞ\82·\82é\82½\82ß\82É\82Í NMAKE \82ð\8eg\97p\82µ\82Ä\82­\82¾\82³\82¢\81B
+!MESSAGE [Ò²¸Ì§²Ù\82Ì´¸½Îß°Ä] ºÏÝÄÞ\82ð\8eg\97p\82µ\82Ä\8eÀ\8ds\82µ\82Ä\82­\82¾\82³\82¢
+!MESSAGE 
+!MESSAGE NMAKE /f "Tombo.mak".
+!MESSAGE 
+!MESSAGE NMAKE \82Ì\8eÀ\8ds\8e\9e\82É\8d\\90¬\82ð\8ew\92è\82Å\82«\82Ü\82·
+!MESSAGE ºÏÝÄޠײÝ\8fã\82ÅϸÛ\82Ì\90Ý\92è\82ð\92è\8b`\82µ\82Ü\82·\81B\97á:
+!MESSAGE 
+!MESSAGE NMAKE /f "Tombo.mak" CFG="Tombo - Win32 Debug"
+!MESSAGE 
+!MESSAGE \91I\91ð\89Â\94\\82ÈËÞÙÄÞ Ó°ÄÞ:
+!MESSAGE 
+!MESSAGE "Tombo - Win32 Release" ("Win32 (x86) Application" \97p)
+!MESSAGE "Tombo - Win32 Debug" ("Win32 (x86) Application" \97p)
+!MESSAGE 
+
+# Begin Project
+# PROP AllowPerConfigDependencies 0
+# PROP Scc_ProjName ""$/Tombo/Win32/Tombo", OKAAAAAA"
+# PROP Scc_LocalPath "Desktop"
+CPP=cl.exe
+MTL=midl.exe
+RSC=rc.exe
+
+!IF  "$(CFG)" == "Tombo - Win32 Release"
+
+# PROP BASE Use_MFC 0
+# PROP BASE Use_Debug_Libraries 0
+# PROP BASE Output_Dir "Release"
+# PROP BASE Intermediate_Dir "Release"
+# PROP BASE Target_Dir ""
+# PROP Use_MFC 0
+# PROP Use_Debug_Libraries 0
+# PROP Output_Dir "Release"
+# PROP Intermediate_Dir "Release"
+# PROP Ignore_Export_Lib 0
+# PROP Target_Dir ""
+# ADD BASE CPP /nologo /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_WINDOWS" /D "_MBCS" /YX /FD /c
+# ADD CPP /nologo /W3 /GX /O2 /I "../../lib/" /I "../../Src" /I "../../oniguruma/" /I "../../Src/regex" /I "./res" /I "../../expat/include/" /I "../../Src/TomboLib" /I "../../Src/YAEdit" /I "." /D "NDEBUG" /D "TOMBO" /D "PLATFORM_WIN32" /D "WIN32" /D "_WINDOWS" /D "_MBCS" /YX /FD /c
+# ADD BASE MTL /nologo /D "NDEBUG" /mktyplib203 /win32
+# ADD MTL /nologo /D "NDEBUG" /mktyplib203 /win32
+# ADD BASE RSC /l 0x411 /d "NDEBUG"
+# ADD RSC /l 0x411 /d "NDEBUG"
+BSC32=bscmake.exe
+# ADD BASE BSC32 /nologo
+# ADD BSC32 /nologo
+LINK32=link.exe
+# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:windows /machine:I386
+# ADD LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib comctl32.lib imm32.lib /nologo /subsystem:windows /machine:I386 /nodefaultlib:"LIBCMT.LIB"
+
+!ELSEIF  "$(CFG)" == "Tombo - Win32 Debug"
+
+# PROP BASE Use_MFC 0
+# PROP BASE Use_Debug_Libraries 1
+# PROP BASE Output_Dir "Debug"
+# PROP BASE Intermediate_Dir "Debug"
+# PROP BASE Target_Dir ""
+# PROP Use_MFC 0
+# PROP Use_Debug_Libraries 1
+# PROP Output_Dir "Debug"
+# PROP Intermediate_Dir "Debug"
+# PROP Ignore_Export_Lib 0
+# PROP Target_Dir ""
+# ADD BASE CPP /nologo /W3 /Gm /GX /ZI /Od /D "WIN32" /D "_DEBUG" /D "_WINDOWS" /D "_MBCS" /YX /FD /GZ /c
+# ADD CPP /nologo /W3 /Gm /GX /ZI /Od /I "../../lib/" /I "../../Src" /I "../../oniguruma/" /I "../../Src/regex" /I "./res" /I "../../expat/include/" /I "../../Src/TomboLib" /I "../../Src/YAEdit" /I "." /D "_DEBUG" /D "TOMBO" /D "PLATFORM_WIN32" /D "WIN32" /D "_WINDOWS" /D "_MBCS" /YX /FD /GZ /c
+# ADD BASE MTL /nologo /D "_DEBUG" /mktyplib203 /win32
+# ADD MTL /nologo /D "_DEBUG" /mktyplib203 /win32
+# ADD BASE RSC /l 0x411 /d "_DEBUG"
+# ADD RSC /l 0x411 /d "_DEBUG"
+BSC32=bscmake.exe
+# ADD BASE BSC32 /nologo
+# ADD BSC32 /nologo
+LINK32=link.exe
+# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:windows /debug /machine:I386 /pdbtype:sept
+# ADD LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib comctl32.lib imm32.lib /nologo /subsystem:windows /debug /machine:I386 /nodefaultlib:"LIBCMT.LIB" /pdbtype:sept
+
+!ENDIF 
+
+# Begin Target
+
+# Name "Tombo - Win32 Release"
+# Name "Tombo - Win32 Debug"
+# Begin Group "Source Files"
+
+# PROP Default_Filter "cpp;c;cxx;rc;def;r;odl;idl;hpj;bat"
+# Begin Source File
+
+SOURCE=..\..\Src\AboutDialog.cpp
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\Src\gnupg\blowfish.c
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\Src\BookMark.cpp
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\Src\BookMarkDlg.cpp
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\Src\TomboLib\Clipboard.cpp
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\Src\Crypt.cpp
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\Src\CryptManager.cpp
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\Src\DetailsViewWndProc.cpp
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\Src\TomboLib\DialogTemplate.cpp
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\Src\TomboLib\DirectoryScanner.cpp
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\Src\DirList.cpp
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\Src\FileSelector.cpp
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\Src\FilterAddDlg.cpp
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\Src\FilterCtlDlg.cpp
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\Src\FilterDefDlg.cpp
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\Src\GrepDialog.cpp
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\Src\main.cpp
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\Src\MainFrame.cpp
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\Src\gnupg\md5.c
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\Src\MemoDetailsView.cpp
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\Src\MemoFolder.cpp
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\Src\MemoInfo.cpp
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\Src\MemoManager.cpp
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\Src\MemoNote.cpp
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\Src\MemoSelectView.cpp
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\Src\Message.cpp
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\Src\NewFolderDialog.cpp
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\Src\PasswordDialog.cpp
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\Src\PasswordManager.cpp
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\Src\PlatformLayer.cpp
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\Src\Property.cpp
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\Src\TomboLib\PropertyPage.cpp
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\Src\Repository.cpp
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\Src\RepositoryImpl.cpp
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\Src\SearchDlg.cpp
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\Src\SearchEngine.cpp
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\Src\SearchTree.cpp
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\Src\SelectViewWndProc.cpp
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\Src\TomboLib\SipControl.cpp
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\Src\StatusBar.cpp
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\Src\YAEdit\StringSplitter.cpp
+# End Source File
+# Begin Source File
+
+SOURCE=.\res\Tombo.rc
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\Src\TomboPropertyTab.cpp
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\Src\TomboURI.cpp
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\Src\TreeViewItem.cpp
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\Src\TSParser.cpp
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\Src\URIScanner.cpp
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\Src\regex\util.c
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\Src\TomboLib\VarBuffer.cpp
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\Src\VFManager.cpp
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\Src\VFStream.cpp
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\Src\Win32Platform.cpp
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\Src\YAEditor.cpp
+# End Source File
+# End Group
+# Begin Group "Header Files"
+
+# PROP Default_Filter "h;hpp;hxx;hm;inl"
+# Begin Source File
+
+SOURCE=..\..\Src\AboutDialog.h
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\Src\BookMark.h
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\Src\BookMarkDlg.h
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\Src\Chipher.h
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\Src\TomboLib\Clipboard.h
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\Src\Crypt.h
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\Src\CryptManager.h
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\Src\TomboLib\DialogTemplate.h
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\Src\TomboLib\DirectoryScanner.h
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\Src\DirList.h
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\expat\include\expat.h
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\Src\FileSelector.h
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\Src\FilterAddDlg.h
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\Src\FilterCtlDlg.h
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\Src\FilterDefDlg.h
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\Src\GrepDialog.h
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\Src\MainFrame.h
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\Src\MemoDetailsView.h
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\Src\MemoFolder.h
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\Src\MemoInfo.h
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\Src\MemoManager.h
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\Src\MemoNote.h
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\Src\MemoSelectView.h
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\Src\Message.h
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\Src\NewFolderDialog.h
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\oniguruma\oniguruma.h
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\Src\PasswordDialog.h
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\Src\PasswordManager.h
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\Src\PlatformLayer.h
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\Src\Property.h
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\Src\TomboLib\PropertyPage.h
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\Src\RegexUtil.h
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\Src\Repository.h
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\Src\RepositoryImpl.h
+# End Source File
+# Begin Source File
+
+SOURCE=.\res\resource.h
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\Src\SearchDlg.h
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\Src\SearchEngine.h
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\Src\SearchTree.h
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\Src\TomboLib\SipControl.h
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\Src\StatusBar.h
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\Src\YAEdit\StringSplitter.h
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\Src\Tombo.h
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\Src\TomboPropertyTab.h
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\Src\TomboURI.h
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\Src\TreeViewItem.h
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\Src\TSParser.h
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\Src\URIScanner.h
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\Src\VFManager.h
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\Src\VFStream.h
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\Src\Win32Platform.h
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\Src\YAEditor.h
+# End Source File
+# End Group
+# Begin Group "Resource Files"
+
+# PROP Default_Filter "ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe"
+# Begin Source File
+
+SOURCE=..\..\Src\image\draftimg.bmp
+# End Source File
+# Begin Source File
+
+SOURCE=.\draftimg.bmp
+# End Source File
+# Begin Source File
+
+SOURCE=.\res\draftimg.bmp
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\Src\image\memoimg.bmp
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\Src\memoimg.bmp
+# End Source File
+# Begin Source File
+
+SOURCE=.\memoimg.bmp
+# End Source File
+# Begin Source File
+
+SOURCE=.\res\memoimg.bmp
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\Src\image\Tombo.ICO
+# End Source File
+# Begin Source File
+
+SOURCE=.\res\Tombo.ICO
+# End Source File
+# Begin Source File
+
+SOURCE=.\resE\Tombo.ICO
+# End Source File
+# Begin Source File
+
+SOURCE=.\Tombo.ICO
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\Src\image\toolbar.bmp
+# End Source File
+# Begin Source File
+
+SOURCE=.\res\toolbar.bmp
+# End Source File
+# Begin Source File
+
+SOURCE=.\toolbar.bmp
+# End Source File
+# End Group
+# Begin Group "YAEdit"
+
+# PROP Default_Filter ""
+# Begin Source File
+
+SOURCE=..\..\Src\YAEdit\FontWidthCache.cpp
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\Src\YAEdit\FontWidthCache.h
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\Src\YAEdit\LineManager.cpp
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\Src\YAEdit\LineManager.h
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\Src\YAEdit\LineWrapper.cpp
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\Src\YAEdit\LineWrapper.h
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\Src\YAEdit\LineWrapperImpl.cpp
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\Src\YAEdit\LineWrapperImpl.h
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\Src\YAEdit\MemManager.cpp
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\Src\YAEdit\MemManager.h
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\Src\YAEdit\PhysicalLineManager.cpp
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\Src\YAEdit\PhysicalLineManager.h
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\Src\YAEdit\Region.cpp
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\Src\YAEdit\Region.h
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\Src\YAEdit\YAEdit.cpp
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\Src\YAEdit\YAEdit.h
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\Src\YAEdit\YAEditDoc.cpp
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\Src\YAEdit\YAEditDoc.h
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\Src\YAEdit\YAEditView.cpp
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\Src\YAEdit\YAEditView.h
+# End Source File
+# End Group
+# Begin Group "utils"
+
+# PROP Default_Filter ""
+# Begin Source File
+
+SOURCE=..\..\Src\TomboLib\AutoPtr.cpp
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\Src\TomboLib\AutoPtr.h
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\Src\TomboLib\File.cpp
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\Src\TomboLib\File.h
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\Src\TomboLib\FileInputStream.cpp
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\Src\TomboLib\FileInputStream.h
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\Src\TomboLib\List.cpp
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\Src\TomboLib\List.h
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\Src\TomboLib\Logger.cpp
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\Src\TomboLib\Logger.h
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\Src\TomboLib\TString.cpp
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\Src\TomboLib\TString.h
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\Src\TomboLib\Uniconv.cpp
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\Src\TomboLib\Uniconv.h
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\Src\TomboLib\VarBuffer.h
+# End Source File
+# End Group
+# Begin Source File
+
+SOURCE=..\..\expat\lib\Win32\libexpatw.lib
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\oniguruma\win32\oniguruma.lib
+# End Source File
+# End Target
+# End Project
diff --git a/Win32/Tombo/Tombo.dsw b/Win32/Tombo/Tombo.dsw
new file mode 100644 (file)
index 0000000..831f44b
--- /dev/null
@@ -0,0 +1,33 @@
+Microsoft Developer Studio Workspace File, Format Version 6.00
+# \8cx\8d\90\82±\82ÌÜ°¸½Íß°½ Ì§²Ù \82ð\95Ò\8fW\82Ü\82½\82Í\8dí\8f\9c\82µ\82È\82¢\82Å\82­\82¾\82³\82¢!
+
+###############################################################################
+
+Project: "Tombo"=.\Tombo.dsp - Package Owner=<4>
+
+Package=<5>
+{{{
+    begin source code control
+    "$/Tombo/Win32/Tombo", OKAAAAAA
+    .
+    end source code control
+}}}
+
+Package=<4>
+{{{
+}}}
+
+###############################################################################
+
+Global:
+
+Package=<5>
+{{{
+}}}
+
+Package=<3>
+{{{
+}}}
+
+###############################################################################
+
diff --git a/Win32/Tombo/Tombo.sln b/Win32/Tombo/Tombo.sln
new file mode 100644 (file)
index 0000000..fae9bd8
--- /dev/null
@@ -0,0 +1,20 @@
+\r
+Microsoft Visual Studio Solution File, Format Version 9.00\r
+# Visual Studio 2005\r
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "Tombo", "Tombo\Tombo.vcproj", "{BD1B7E25-9555-4F73-B3F9-4AD2C559F235}"\r
+EndProject\r
+Global\r
+       GlobalSection(SolutionConfigurationPlatforms) = preSolution\r
+               Debug|Win32 = Debug|Win32\r
+               Release|Win32 = Release|Win32\r
+       EndGlobalSection\r
+       GlobalSection(ProjectConfigurationPlatforms) = postSolution\r
+               {BD1B7E25-9555-4F73-B3F9-4AD2C559F235}.Debug|Win32.ActiveCfg = Debug|Win32\r
+               {BD1B7E25-9555-4F73-B3F9-4AD2C559F235}.Debug|Win32.Build.0 = Debug|Win32\r
+               {BD1B7E25-9555-4F73-B3F9-4AD2C559F235}.Release|Win32.ActiveCfg = Release|Win32\r
+               {BD1B7E25-9555-4F73-B3F9-4AD2C559F235}.Release|Win32.Build.0 = Release|Win32\r
+       EndGlobalSection\r
+       GlobalSection(SolutionProperties) = preSolution\r
+               HideSolutionNode = FALSE\r
+       EndGlobalSection\r
+EndGlobal\r
diff --git a/Win32/Tombo/Tombo.suo b/Win32/Tombo/Tombo.suo
new file mode 100644 (file)
index 0000000..ebcb947
Binary files /dev/null and b/Win32/Tombo/Tombo.suo differ
diff --git a/Win32/Tombo/Tombo/Tombo.vcproj b/Win32/Tombo/Tombo/Tombo.vcproj
new file mode 100644 (file)
index 0000000..07e28d6
--- /dev/null
@@ -0,0 +1,802 @@
+<?xml version="1.0" encoding="shift_jis"?>\r
+<VisualStudioProject\r
+       ProjectType="Visual C++"\r
+       Version="8.00"\r
+       Name="Tombo"\r
+       ProjectGUID="{BD1B7E25-9555-4F73-B3F9-4AD2C559F235}"\r
+       RootNamespace="Tombo"\r
+       Keyword="Win32Proj"\r
+       >\r
+       <Platforms>\r
+               <Platform\r
+                       Name="Win32"\r
+               />\r
+       </Platforms>\r
+       <ToolFiles>\r
+       </ToolFiles>\r
+       <Configurations>\r
+               <Configuration\r
+                       Name="Debug|Win32"\r
+                       OutputDirectory="$(SolutionDir)$(ConfigurationName)"\r
+                       IntermediateDirectory="$(ConfigurationName)"\r
+                       ConfigurationType="1"\r
+                       CharacterSet="1"\r
+                       >\r
+                       <Tool\r
+                               Name="VCPreBuildEventTool"\r
+                       />\r
+                       <Tool\r
+                               Name="VCCustomBuildTool"\r
+                       />\r
+                       <Tool\r
+                               Name="VCXMLDataGeneratorTool"\r
+                       />\r
+                       <Tool\r
+                               Name="VCWebServiceProxyGeneratorTool"\r
+                       />\r
+                       <Tool\r
+                               Name="VCMIDLTool"\r
+                       />\r
+                       <Tool\r
+                               Name="VCCLCompilerTool"\r
+                               UseUnicodeResponseFiles="false"\r
+                               Optimization="0"\r
+                               AdditionalIncludeDirectories="C:\work2\SF\Tombo\oniguruma;C:\work2\SF\Tombo\Src\YAEdit;C:\work2\SF\Tombo\expat\include;C:\work2\SF\Tombo\Win32\Tombo\res;C:\work2\SF\Tombo\Src\TomboLib;C:\work2\SF\Tombo\Src"\r
+                               PreprocessorDefinitions="WIN32;_DEBUG;_WINDOWS;TOMBO;PLATFORM_WIN32;MBCS;_CRT_SECURE_NO_DEPRECATE;$(NOINHERIT)"\r
+                               MinimalRebuild="true"\r
+                               BasicRuntimeChecks="3"\r
+                               RuntimeLibrary="3"\r
+                               UsePrecompiledHeader="0"\r
+                               WarningLevel="3"\r
+                               Detect64BitPortabilityProblems="false"\r
+                               DebugInformationFormat="4"\r
+                       />\r
+                       <Tool\r
+                               Name="VCManagedResourceCompilerTool"\r
+                       />\r
+                       <Tool\r
+                               Name="VCResourceCompilerTool"\r
+                       />\r
+                       <Tool\r
+                               Name="VCPreLinkEventTool"\r
+                       />\r
+                       <Tool\r
+                               Name="VCLinkerTool"\r
+                               AdditionalDependencies="comctl32.lib imm32.lib"\r
+                               LinkIncremental="2"\r
+                               GenerateDebugInformation="true"\r
+                               SubSystem="2"\r
+                               TargetMachine="1"\r
+                       />\r
+                       <Tool\r
+                               Name="VCALinkTool"\r
+                       />\r
+                       <Tool\r
+                               Name="VCManifestTool"\r
+                       />\r
+                       <Tool\r
+                               Name="VCXDCMakeTool"\r
+                       />\r
+                       <Tool\r
+                               Name="VCBscMakeTool"\r
+                       />\r
+                       <Tool\r
+                               Name="VCFxCopTool"\r
+                       />\r
+                       <Tool\r
+                               Name="VCAppVerifierTool"\r
+                       />\r
+                       <Tool\r
+                               Name="VCWebDeploymentTool"\r
+                       />\r
+                       <Tool\r
+                               Name="VCPostBuildEventTool"\r
+                       />\r
+               </Configuration>\r
+               <Configuration\r
+                       Name="Release|Win32"\r
+                       OutputDirectory="$(SolutionDir)$(ConfigurationName)"\r
+                       IntermediateDirectory="$(ConfigurationName)"\r
+                       ConfigurationType="1"\r
+                       CharacterSet="1"\r
+                       WholeProgramOptimization="1"\r
+                       >\r
+                       <Tool\r
+                               Name="VCPreBuildEventTool"\r
+                       />\r
+                       <Tool\r
+                               Name="VCCustomBuildTool"\r
+                       />\r
+                       <Tool\r
+                               Name="VCXMLDataGeneratorTool"\r
+                       />\r
+                       <Tool\r
+                               Name="VCWebServiceProxyGeneratorTool"\r
+                       />\r
+                       <Tool\r
+                               Name="VCMIDLTool"\r
+                       />\r
+                       <Tool\r
+                               Name="VCCLCompilerTool"\r
+                               AdditionalIncludeDirectories="C:\work2\SF\Tombo\oniguruma;C:\work2\SF\Tombo\Src\YAEdit;C:\work2\SF\Tombo\expat\include;C:\work2\SF\Tombo\Win32\Tombo\res;C:\work2\SF\Tombo\Src\TomboLib;C:\work2\SF\Tombo\Src"\r
+                               PreprocessorDefinitions="WIN32;NDEBUG;_WINDOWS;TOMBO;PLATFORM_WIN32;MBCS;$(NOINHERIT)"\r
+                               RuntimeLibrary="2"\r
+                               UsePrecompiledHeader="0"\r
+                               WarningLevel="3"\r
+                               Detect64BitPortabilityProblems="false"\r
+                               DebugInformationFormat="3"\r
+                       />\r
+                       <Tool\r
+                               Name="VCManagedResourceCompilerTool"\r
+                       />\r
+                       <Tool\r
+                               Name="VCResourceCompilerTool"\r
+                       />\r
+                       <Tool\r
+                               Name="VCPreLinkEventTool"\r
+                       />\r
+                       <Tool\r
+                               Name="VCLinkerTool"\r
+                               AdditionalDependencies="comctl32.lib imm32.lib"\r
+                               LinkIncremental="1"\r
+                               GenerateDebugInformation="true"\r
+                               SubSystem="2"\r
+                               OptimizeReferences="2"\r
+                               EnableCOMDATFolding="2"\r
+                               TargetMachine="1"\r
+                       />\r
+                       <Tool\r
+                               Name="VCALinkTool"\r
+                       />\r
+                       <Tool\r
+                               Name="VCManifestTool"\r
+                       />\r
+                       <Tool\r
+                               Name="VCXDCMakeTool"\r
+                       />\r
+                       <Tool\r
+                               Name="VCBscMakeTool"\r
+                       />\r
+                       <Tool\r
+                               Name="VCFxCopTool"\r
+                       />\r
+                       <Tool\r
+                               Name="VCAppVerifierTool"\r
+                       />\r
+                       <Tool\r
+                               Name="VCWebDeploymentTool"\r
+                       />\r
+                       <Tool\r
+                               Name="VCPostBuildEventTool"\r
+                       />\r
+               </Configuration>\r
+       </Configurations>\r
+       <References>\r
+       </References>\r
+       <Files>\r
+               <Filter\r
+                       Name="\83\\81[\83\83t\83@\83C\83\8b"\r
+                       Filter="cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx"\r
+                       UniqueIdentifier="{4FC737F1-C7A5-4376-A066-2A32D752A2FF}"\r
+                       >\r
+                       <File\r
+                               RelativePath="..\..\..\Src\AboutDialog.cpp"\r
+                               >\r
+                       </File>\r
+                       <File\r
+                               RelativePath="..\..\..\Src\AboutDialog.h"\r
+                               >\r
+                       </File>\r
+                       <File\r
+                               RelativePath="..\..\..\Src\TomboLib\AutoPtr.cpp"\r
+                               >\r
+                       </File>\r
+                       <File\r
+                               RelativePath="..\..\..\Src\TomboLib\AutoPtr.h"\r
+                               >\r
+                       </File>\r
+                       <File\r
+                               RelativePath="..\..\..\Src\GNUPG\bithelp.h"\r
+                               >\r
+                       </File>\r
+                       <File\r
+                               RelativePath="..\..\..\Src\GNUPG\blowfish.c"\r
+                               >\r
+                       </File>\r
+                       <File\r
+                               RelativePath="..\..\..\Src\BookMark.cpp"\r
+                               >\r
+                       </File>\r
+                       <File\r
+                               RelativePath="..\..\..\Src\BookMark.h"\r
+                               >\r
+                       </File>\r
+                       <File\r
+                               RelativePath="..\..\..\Src\BookMarkDlg.cpp"\r
+                               >\r
+                       </File>\r
+                       <File\r
+                               RelativePath="..\..\..\Src\BookMarkDlg.h"\r
+                               >\r
+                       </File>\r
+                       <File\r
+                               RelativePath="..\..\..\Src\Chipher.h"\r
+                               >\r
+                       </File>\r
+                       <File\r
+                               RelativePath="..\..\..\Src\TomboLib\Clipboard.cpp"\r
+                               >\r
+                       </File>\r
+                       <File\r
+                               RelativePath="..\..\..\Src\TomboLib\Clipboard.h"\r
+                               >\r
+                       </File>\r
+                       <File\r
+                               RelativePath="..\..\..\Src\Crypt.cpp"\r
+                               >\r
+                       </File>\r
+                       <File\r
+                               RelativePath="..\..\..\Src\Crypt.h"\r
+                               >\r
+                       </File>\r
+                       <File\r
+                               RelativePath="..\..\..\Src\CryptManager.cpp"\r
+                               >\r
+                       </File>\r
+                       <File\r
+                               RelativePath="..\..\..\Src\CryptManager.h"\r
+                               >\r
+                       </File>\r
+                       <File\r
+                               RelativePath="..\..\..\Src\regex\ctypeutil.c"\r
+                               >\r
+                       </File>\r
+                       <File\r
+                               RelativePath="..\..\..\Src\DetailsViewWndProc.cpp"\r
+                               >\r
+                       </File>\r
+                       <File\r
+                               RelativePath="..\..\..\Src\TomboLib\DialogTemplate.cpp"\r
+                               >\r
+                       </File>\r
+                       <File\r
+                               RelativePath="..\..\..\Src\TomboLib\DialogTemplate.h"\r
+                               >\r
+                       </File>\r
+                       <File\r
+                               RelativePath="..\..\..\Src\TomboLib\DirectoryScanner.cpp"\r
+                               >\r
+                       </File>\r
+                       <File\r
+                               RelativePath="..\..\..\Src\TomboLib\DirectoryScanner.h"\r
+                               >\r
+                       </File>\r
+                       <File\r
+                               RelativePath="..\..\..\Src\DirList.cpp"\r
+                               >\r
+                       </File>\r
+                       <File\r
+                               RelativePath="..\..\..\Src\DirList.h"\r
+                               >\r
+                       </File>\r
+                       <File\r
+                               RelativePath="..\..\..\Src\TomboLib\File.cpp"\r
+                               >\r
+                       </File>\r
+                       <File\r
+                               RelativePath="..\..\..\Src\TomboLib\File.h"\r
+                               >\r
+                       </File>\r
+                       <File\r
+                               RelativePath="..\..\..\Src\TomboLib\FileInputStream.cpp"\r
+                               >\r
+                       </File>\r
+                       <File\r
+                               RelativePath="..\..\..\Src\TomboLib\FileInputStream.h"\r
+                               >\r
+                       </File>\r
+                       <File\r
+                               RelativePath="..\..\..\Src\FileSelector.cpp"\r
+                               >\r
+                       </File>\r
+                       <File\r
+                               RelativePath="..\..\..\Src\FileSelector.h"\r
+                               >\r
+                       </File>\r
+                       <File\r
+                               RelativePath="..\..\..\Src\FilterAddDlg.cpp"\r
+                               >\r
+                       </File>\r
+                       <File\r
+                               RelativePath="..\..\..\Src\FilterAddDlg.h"\r
+                               >\r
+                       </File>\r
+                       <File\r
+                               RelativePath="..\..\..\Src\FilterCtlDlg.cpp"\r
+                               >\r
+                       </File>\r
+                       <File\r
+                               RelativePath="..\..\..\Src\FilterCtlDlg.h"\r
+                               >\r
+                       </File>\r
+                       <File\r
+                               RelativePath="..\..\..\Src\FilterDefDlg.cpp"\r
+                               >\r
+                       </File>\r
+                       <File\r
+                               RelativePath="..\..\..\Src\FilterDefDlg.h"\r
+                               >\r
+                       </File>\r
+                       <File\r
+                               RelativePath="..\..\..\Src\YAEdit\FontWidthCache.cpp"\r
+                               >\r
+                       </File>\r
+                       <File\r
+                               RelativePath="..\..\..\Src\YAEdit\FontWidthCache.h"\r
+                               >\r
+                       </File>\r
+                       <File\r
+                               RelativePath="..\..\..\Src\GrepDialog.cpp"\r
+                               >\r
+                       </File>\r
+                       <File\r
+                               RelativePath="..\..\..\Src\GrepDialog.h"\r
+                               >\r
+                       </File>\r
+                       <File\r
+                               RelativePath="..\..\..\Src\HPCPlatform.cpp"\r
+                               >\r
+                       </File>\r
+                       <File\r
+                               RelativePath="..\..\..\Src\HPCPlatform.h"\r
+                               >\r
+                       </File>\r
+                       <File\r
+                               RelativePath="..\..\..\Src\LagendaPlatform.cpp"\r
+                               >\r
+                       </File>\r
+                       <File\r
+                               RelativePath="..\..\..\Src\LagendaPlatform.h"\r
+                               >\r
+                       </File>\r
+                       <File\r
+                               RelativePath="..\..\..\Src\YAEdit\LineManager.cpp"\r
+                               >\r
+                       </File>\r
+                       <File\r
+                               RelativePath="..\..\..\Src\YAEdit\LineManager.h"\r
+                               >\r
+                       </File>\r
+                       <File\r
+                               RelativePath="..\..\..\Src\YAEdit\LineWrapper.cpp"\r
+                               >\r
+                       </File>\r
+                       <File\r
+                               RelativePath="..\..\..\Src\YAEdit\LineWrapper.h"\r
+                               >\r
+                       </File>\r
+                       <File\r
+                               RelativePath="..\..\..\Src\YAEdit\LineWrapperImpl.cpp"\r
+                               >\r
+                       </File>\r
+                       <File\r
+                               RelativePath="..\..\..\Src\YAEdit\LineWrapperImpl.h"\r
+                               >\r
+                       </File>\r
+                       <File\r
+                               RelativePath="..\..\..\Src\TomboLib\List.cpp"\r
+                               >\r
+                       </File>\r
+                       <File\r
+                               RelativePath="..\..\..\Src\TomboLib\List.h"\r
+                               >\r
+                       </File>\r
+                       <File\r
+                               RelativePath="..\..\..\Src\TomboLib\Logger.cpp"\r
+                               >\r
+                       </File>\r
+                       <File\r
+                               RelativePath="..\..\..\Src\TomboLib\Logger.h"\r
+                               >\r
+                       </File>\r
+                       <File\r
+                               RelativePath="..\..\..\Src\main.cpp"\r
+                               >\r
+                       </File>\r
+                       <File\r
+                               RelativePath="..\..\..\Src\MainFrame.cpp"\r
+                               >\r
+                       </File>\r
+                       <File\r
+                               RelativePath="..\..\..\Src\MainFrame.h"\r
+                               >\r
+                       </File>\r
+                       <File\r
+                               RelativePath="..\..\..\Src\GNUPG\md5.c"\r
+                               >\r
+                       </File>\r
+                       <File\r
+                               RelativePath="..\..\..\Src\YAEdit\MemManager.cpp"\r
+                               >\r
+                       </File>\r
+                       <File\r
+                               RelativePath="..\..\..\Src\YAEdit\MemManager.h"\r
+                               >\r
+                       </File>\r
+                       <File\r
+                               RelativePath="..\..\..\Src\MemoDetailsView.cpp"\r
+                               >\r
+                       </File>\r
+                       <File\r
+                               RelativePath="..\..\..\Src\MemoDetailsView.h"\r
+                               >\r
+                       </File>\r
+                       <File\r
+                               RelativePath="..\..\..\Src\MemoFolder.cpp"\r
+                               >\r
+                       </File>\r
+                       <File\r
+                               RelativePath="..\..\..\Src\MemoFolder.h"\r
+                               >\r
+                       </File>\r
+                       <File\r
+                               RelativePath="..\..\..\Src\MemoInfo.cpp"\r
+                               >\r
+                       </File>\r
+                       <File\r
+                               RelativePath="..\..\..\Src\MemoInfo.h"\r
+                               >\r
+                       </File>\r
+                       <File\r
+                               RelativePath="..\..\..\Src\MemoManager.cpp"\r
+                               >\r
+                       </File>\r
+                       <File\r
+                               RelativePath="..\..\..\Src\MemoManager.h"\r
+                               >\r
+                       </File>\r
+                       <File\r
+                               RelativePath="..\..\..\Src\MemoNote.cpp"\r
+                               >\r
+                       </File>\r
+                       <File\r
+                               RelativePath="..\..\..\Src\MemoNote.h"\r
+                               >\r
+                       </File>\r
+                       <File\r
+                               RelativePath="..\..\..\Src\MemoSelectView.cpp"\r
+                               >\r
+                       </File>\r
+                       <File\r
+                               RelativePath="..\..\..\Src\MemoSelectView.h"\r
+                               >\r
+                       </File>\r
+                       <File\r
+                               RelativePath="..\..\..\Src\Message.cpp"\r
+                               >\r
+                       </File>\r
+                       <File\r
+                               RelativePath="..\..\..\Src\Message.h"\r
+                               >\r
+                       </File>\r
+                       <File\r
+                               RelativePath="..\..\..\Src\NewFolderDialog.cpp"\r
+                               >\r
+                       </File>\r
+                       <File\r
+                               RelativePath="..\..\..\Src\NewFolderDialog.h"\r
+                               >\r
+                       </File>\r
+                       <File\r
+                               RelativePath="..\..\..\Src\PasswordDialog.cpp"\r
+                               >\r
+                       </File>\r
+                       <File\r
+                               RelativePath="..\..\..\Src\PasswordDialog.h"\r
+                               >\r
+                       </File>\r
+                       <File\r
+                               RelativePath="..\..\..\Src\PasswordManager.cpp"\r
+                               >\r
+                       </File>\r
+                       <File\r
+                               RelativePath="..\..\..\Src\PasswordManager.h"\r
+                               >\r
+                       </File>\r
+                       <File\r
+                               RelativePath="..\..\..\Src\YAEdit\PhysicalLineManager.cpp"\r
+                               >\r
+                       </File>\r
+                       <File\r
+                               RelativePath="..\..\..\Src\YAEdit\PhysicalLineManager.h"\r
+                               >\r
+                       </File>\r
+                       <File\r
+                               RelativePath="..\..\..\Src\PlatformLayer.cpp"\r
+                               >\r
+                       </File>\r
+                       <File\r
+                               RelativePath="..\..\..\Src\PlatformLayer.h"\r
+                               >\r
+                       </File>\r
+                       <File\r
+                               RelativePath="..\..\..\Src\PocketPCPlatform.cpp"\r
+                               >\r
+                       </File>\r
+                       <File\r
+                               RelativePath="..\..\..\Src\PocketPCPlatform.h"\r
+                               >\r
+                       </File>\r
+                       <File\r
+                               RelativePath="..\..\..\Src\Property.cpp"\r
+                               >\r
+                       </File>\r
+                       <File\r
+                               RelativePath="..\..\..\Src\Property.h"\r
+                               >\r
+                       </File>\r
+                       <File\r
+                               RelativePath="..\..\..\Src\TomboLib\PropertyPage.cpp"\r
+                               >\r
+                       </File>\r
+                       <File\r
+                               RelativePath="..\..\..\Src\TomboLib\PropertyPage.h"\r
+                               >\r
+                       </File>\r
+                       <File\r
+                               RelativePath="..\..\..\Src\PsPCPlatform.cpp"\r
+                               >\r
+                       </File>\r
+                       <File\r
+                               RelativePath="..\..\..\Src\PsPCPlatform.h"\r
+                               >\r
+                       </File>\r
+                       <File\r
+                               RelativePath="..\..\..\Src\RegexUtil.h"\r
+                               >\r
+                       </File>\r
+                       <File\r
+                               RelativePath="..\..\..\Src\YAEdit\Region.cpp"\r
+                               >\r
+                       </File>\r
+                       <File\r
+                               RelativePath="..\..\..\Src\YAEdit\Region.h"\r
+                               >\r
+                       </File>\r
+                       <File\r
+                               RelativePath="..\..\..\Src\Repository.cpp"\r
+                               >\r
+                       </File>\r
+                       <File\r
+                               RelativePath="..\..\..\Src\Repository.h"\r
+                               >\r
+                       </File>\r
+                       <File\r
+                               RelativePath="..\..\..\Src\RepositoryImpl.cpp"\r
+                               >\r
+                       </File>\r
+                       <File\r
+                               RelativePath="..\..\..\Src\RepositoryImpl.h"\r
+                               >\r
+                       </File>\r
+                       <File\r
+                               RelativePath="..\..\..\Src\SearchDlg.cpp"\r
+                               >\r
+                       </File>\r
+                       <File\r
+                               RelativePath="..\..\..\Src\SearchDlg.h"\r
+                               >\r
+                       </File>\r
+                       <File\r
+                               RelativePath="..\..\..\Src\SearchEngine.cpp"\r
+                               >\r
+                       </File>\r
+                       <File\r
+                               RelativePath="..\..\..\Src\SearchEngine.h"\r
+                               >\r
+                       </File>\r
+                       <File\r
+                               RelativePath="..\..\..\Src\SearchTree.cpp"\r
+                               >\r
+                       </File>\r
+                       <File\r
+                               RelativePath="..\..\..\Src\SearchTree.h"\r
+                               >\r
+                       </File>\r
+                       <File\r
+                               RelativePath="..\..\..\Src\SelectViewWndProc.cpp"\r
+                               >\r
+                       </File>\r
+                       <File\r
+                               RelativePath="..\..\..\Src\TomboLib\SipControl.cpp"\r
+                               >\r
+                       </File>\r
+                       <File\r
+                               RelativePath="..\..\..\Src\TomboLib\SipControl.h"\r
+                               >\r
+                       </File>\r
+                       <File\r
+                               RelativePath="..\..\..\Src\StatusBar.cpp"\r
+                               >\r
+                       </File>\r
+                       <File\r
+                               RelativePath="..\..\..\Src\StatusBar.h"\r
+                               >\r
+                       </File>\r
+                       <File\r
+                               RelativePath="..\..\..\Src\YAEdit\StringSplitter.cpp"\r
+                               >\r
+                       </File>\r
+                       <File\r
+                               RelativePath="..\..\..\Src\YAEdit\StringSplitter.h"\r
+                               >\r
+                       </File>\r
+                       <File\r
+                               RelativePath="..\..\..\Src\Tombo.h"\r
+                               >\r
+                       </File>\r
+                       <File\r
+                               RelativePath="..\..\..\Src\TomboPropertyTab.cpp"\r
+                               >\r
+                       </File>\r
+                       <File\r
+                               RelativePath="..\..\..\Src\TomboPropertyTab.h"\r
+                               >\r
+                       </File>\r
+                       <File\r
+                               RelativePath="..\..\..\Src\TomboURI.cpp"\r
+                               >\r
+                       </File>\r
+                       <File\r
+                               RelativePath="..\..\..\Src\TomboURI.h"\r
+                               >\r
+                       </File>\r
+                       <File\r
+                               RelativePath="..\..\..\Src\TreeViewItem.cpp"\r
+                               >\r
+                       </File>\r
+                       <File\r
+                               RelativePath="..\..\..\Src\TreeViewItem.h"\r
+                               >\r
+                       </File>\r
+                       <File\r
+                               RelativePath="..\..\..\Src\TSParser.cpp"\r
+                               >\r
+                       </File>\r
+                       <File\r
+                               RelativePath="..\..\..\Src\TSParser.h"\r
+                               >\r
+                       </File>\r
+                       <File\r
+                               RelativePath="..\..\..\Src\TomboLib\TString.cpp"\r
+                               >\r
+                       </File>\r
+                       <File\r
+                               RelativePath="..\..\..\Src\TomboLib\TString.h"\r
+                               >\r
+                       </File>\r
+                       <File\r
+                               RelativePath="..\..\..\Src\TomboLib\Uniconv.cpp"\r
+                               >\r
+                       </File>\r
+                       <File\r
+                               RelativePath="..\..\..\Src\TomboLib\Uniconv.h"\r
+                               >\r
+                       </File>\r
+                       <File\r
+                               RelativePath="..\..\..\Src\URIScanner.cpp"\r
+                               >\r
+                       </File>\r
+                       <File\r
+                               RelativePath="..\..\..\Src\URIScanner.h"\r
+                               >\r
+                       </File>\r
+                       <File\r
+                               RelativePath="..\..\..\Src\regex\util.c"\r
+                               >\r
+                       </File>\r
+                       <File\r
+                               RelativePath="..\..\..\Src\TomboLib\VarBuffer.cpp"\r
+                               >\r
+                       </File>\r
+                       <File\r
+                               RelativePath="..\..\..\Src\TomboLib\VarBuffer.h"\r
+                               >\r
+                       </File>\r
+                       <File\r
+                               RelativePath="..\..\..\Src\VFManager.cpp"\r
+                               >\r
+                       </File>\r
+                       <File\r
+                               RelativePath="..\..\..\Src\VFManager.h"\r
+                               >\r
+                       </File>\r
+                       <File\r
+                               RelativePath="..\..\..\Src\VFStream.cpp"\r
+                               >\r
+                       </File>\r
+                       <File\r
+                               RelativePath="..\..\..\Src\VFStream.h"\r
+                               >\r
+                       </File>\r
+                       <File\r
+                               RelativePath="..\..\..\Src\Win32Platform.cpp"\r
+                               >\r
+                       </File>\r
+                       <File\r
+                               RelativePath="..\..\..\Src\Win32Platform.h"\r
+                               >\r
+                       </File>\r
+                       <File\r
+                               RelativePath="..\..\..\Src\YAEdit\YAEdit.cpp"\r
+                               >\r
+                       </File>\r
+                       <File\r
+                               RelativePath="..\..\..\Src\YAEdit\YAEdit.h"\r
+                               >\r
+                       </File>\r
+                       <File\r
+                               RelativePath="..\..\..\Src\YAEdit\YAEditDoc.cpp"\r
+                               >\r
+                       </File>\r
+                       <File\r
+                               RelativePath="..\..\..\Src\YAEdit\YAEditDoc.h"\r
+                               >\r
+                       </File>\r
+                       <File\r
+                               RelativePath="..\..\..\Src\YAEditor.cpp"\r
+                               >\r
+                       </File>\r
+                       <File\r
+                               RelativePath="..\..\..\Src\YAEditor.h"\r
+                               >\r
+                       </File>\r
+                       <File\r
+                               RelativePath="..\..\..\Src\YAEdit\YAEditView.cpp"\r
+                               >\r
+                       </File>\r
+                       <File\r
+                               RelativePath="..\..\..\Src\YAEdit\YAEditView.h"\r
+                               >\r
+                       </File>\r
+               </Filter>\r
+               <Filter\r
+                       Name="\83w\83b\83_\81\83t\83@\83C\83\8b"\r
+                       Filter="h;hpp;hxx;hm;inl;inc;xsd"\r
+                       UniqueIdentifier="{93995380-89BD-4b04-88EB-625FBE52EBFB}"\r
+                       >\r
+                       <File\r
+                               RelativePath="..\..\..\Src\regex\config.h"\r
+                               >\r
+                       </File>\r
+                       <File\r
+                               RelativePath="..\..\..\Src\regex\ctypeutil.h"\r
+                               >\r
+                       </File>\r
+                       <File\r
+                               RelativePath="..\..\..\Src\regex\regex.h"\r
+                               >\r
+                       </File>\r
+               </Filter>\r
+               <Filter\r
+                       Name="\83\8a\83\\81[\83\83t\83@\83C\83\8b"\r
+                       Filter="rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav"\r
+                       UniqueIdentifier="{67DA6AB6-F800-4c08-8B7A-83BB121AAD01}"\r
+                       >\r
+                       <File\r
+                               RelativePath="..\res\Tombo.rc"\r
+                               >\r
+                       </File>\r
+               </Filter>\r
+               <File\r
+                       RelativePath="..\..\..\expat\lib\Win32\libexpatw.lib"\r
+                       >\r
+               </File>\r
+               <File\r
+                       RelativePath="..\..\..\oniguruma\win32\oniguruma.lib"\r
+                       >\r
+               </File>\r
+       </Files>\r
+       <Globals>\r
+       </Globals>\r
+</VisualStudioProject>\r
diff --git a/Win32/Tombo/res/Tombo.rc b/Win32/Tombo/res/Tombo.rc
new file mode 100644 (file)
index 0000000..a650ca2
--- /dev/null
@@ -0,0 +1,706 @@
+//Microsoft Developer Studio generated resource script.\r
+//\r
+#include "resource.h"\r
+\r
+#define APSTUDIO_READONLY_SYMBOLS\r
+/////////////////////////////////////////////////////////////////////////////\r
+//\r
+// Generated from the TEXTINCLUDE 2 resource.\r
+//\r
+#include "afxres.h"\r
+\r
+/////////////////////////////////////////////////////////////////////////////\r
+#undef APSTUDIO_READONLY_SYMBOLS\r
+\r
+/////////////////////////////////////////////////////////////////////////////\r
+// \93ú\96{\8cê resources\r
+\r
+#if !defined(AFX_RESOURCE_DLL) || defined(AFX_TARG_JPN)\r
+#ifdef _WIN32\r
+LANGUAGE LANG_JAPANESE, SUBLANG_DEFAULT\r
+#pragma code_page(932)\r
+#endif //_WIN32\r
+\r
+#ifdef APSTUDIO_INVOKED\r
+/////////////////////////////////////////////////////////////////////////////\r
+//\r
+// TEXTINCLUDE\r
+//\r
+\r
+1 TEXTINCLUDE DISCARDABLE \r
+BEGIN\r
+    "resource.h\0"\r
+END\r
+\r
+2 TEXTINCLUDE DISCARDABLE \r
+BEGIN\r
+    "#include ""afxres.h""\r\n"\r
+    "\0"\r
+END\r
+\r
+3 TEXTINCLUDE DISCARDABLE \r
+BEGIN\r
+    "\r\n"\r
+    "\0"\r
+END\r
+\r
+#endif    // APSTUDIO_INVOKED\r
+\r
+\r
+/////////////////////////////////////////////////////////////////////////////\r
+//\r
+// Bitmap\r
+//\r
+\r
+IDB_MEMOSELECT_IMAGES   BITMAP  DISCARDABLE     "../../../Src/image/memoimg.bmp"\r
+IDB_TOOLBAR             BITMAP  DISCARDABLE     "../../../Src/image/toolbar.bmp"\r
+IDB_ARTICLEBOX          BITMAP  DISCARDABLE     "../../../Src/image/draftimg.bmp"\r
+\r
+/////////////////////////////////////////////////////////////////////////////\r
+//\r
+// Dialog\r
+//\r
+\r
+IDD_PASSWORD DIALOG DISCARDABLE  0, 0, 110, 65\r
+STYLE DS_MODALFRAME | DS_SETFOREGROUND | DS_CENTER | WS_POPUP | WS_CAPTION\r
+CAPTION "Password"\r
+FONT 9, "Tahoma"\r
+BEGIN\r
+    EDITTEXT        IDC_PASS,5,5,100,12,ES_PASSWORD | ES_AUTOHSCROLL\r
+    EDITTEXT        IDC_PASS2,5,25,100,12,ES_PASSWORD | ES_AUTOHSCROLL\r
+    DEFPUSHBUTTON   "OK",IDOK,30,45,35,14\r
+    PUSHBUTTON      "CANCEL",IDCANCEL,70,45,35,14\r
+END\r
+\r
+IDD_ABOUTBOX DIALOG DISCARDABLE  0, 0, 249, 160\r
+STYLE DS_MODALFRAME | DS_CENTER | WS_POPUP | WS_CAPTION | WS_SYSMENU\r
+CAPTION "About Tombo"\r
+FONT 9, "Tahoma"\r
+BEGIN\r
+    DEFPUSHBUTTON   "OK",IDOK,195,140,50,14\r
+    ICON            IDI_TOMBO,IDC_STATIC,10,5,20,20\r
+    LTEXT           "Tombo Version 1.4",IDC_VERSIONINFO,40,10,195,10\r
+    EDITTEXT        IDC_COPYRIGHT,5,35,240,95,ES_MULTILINE | ES_AUTOVSCROLL | \r
+                    ES_AUTOHSCROLL | ES_READONLY | WS_VSCROLL | NOT \r
+                    WS_TABSTOP\r
+END\r
+\r
+IDD_PROPTAB_FOLDER DIALOG DISCARDABLE  0, 0, 131, 135\r
+STYLE WS_CHILD | WS_BORDER\r
+FONT 9, "Tahoma"\r
+BEGIN\r
+    LTEXT           "Memo folder:",IDC_PROPTAB_FOLDER_LABEL,5,5,72,10\r
+    PUSHBUTTON      "...",IDC_FOLDERSEL,110,20,15,10\r
+    LTEXT           "Folder to store Tombo Notes",IDC_PROPTAB_FOLDER_HELP1,\r
+                    10,40,110,15\r
+    CONTROL         "Sync file name and title",IDC_KEEPTITLE,"Button",\r
+                    BS_AUTOCHECKBOX | WS_TABSTOP,5,60,120,10\r
+    LTEXT           "Rename file name if headline changed.",\r
+                    IDC_PROPTAB_FOLDER_HELP2,10,75,115,20\r
+    COMBOBOX        IDC_TOPFOLDER,5,20,100,85,CBS_DROPDOWN | CBS_AUTOHSCROLL | \r
+                    WS_VSCROLL | WS_TABSTOP\r
+    CONTROL         "Open notes read-only mode",IDC_PROP_READONLY,"Button",\r
+                    BS_AUTOCHECKBOX | WS_TABSTOP,5,100,109,10\r
+END\r
+\r
+IDD_FILESELECT DIALOG DISCARDABLE  0, 0, 134, 89\r
+STYLE DS_MODALFRAME | DS_CENTER | WS_POPUP | WS_CAPTION | WS_SYSMENU\r
+CAPTION "Select File"\r
+FONT 9, "Tahoma"\r
+BEGIN\r
+    PUSHBUTTON      "OK",IDOK,55,70,35,15\r
+    PUSHBUTTON      "CANCEL",IDCANCEL,95,70,35,15\r
+    CONTROL         "Tree1",IDC_FILESELECT_TREE,"SysTreeView32",\r
+                    TVS_HASBUTTONS | TVS_HASLINES | TVS_LINESATROOT | \r
+                    WS_BORDER | WS_TABSTOP,5,0,125,65\r
+END\r
+\r
+IDD_PROPTAB_PASSWORD DIALOG DISCARDABLE  0, 0, 131, 121\r
+STYLE WS_CHILD | WS_BORDER\r
+FONT 9, "Tahoma"\r
+BEGIN\r
+    EDITTEXT        IDC_PASS1,5,15,90,12,ES_PASSWORD | ES_AUTOHSCROLL\r
+    EDITTEXT        IDC_PASS2,5,40,90,12,ES_PASSWORD | ES_AUTOHSCROLL\r
+    LTEXT           "Password:",IDC_STATIC,5,5,105,10\r
+    LTEXT           "ReEnter:",IDC_STATIC,5,30,75,10\r
+    EDITTEXT        IDC_PROP_PASSWORD_DESC,5,55,120,60,ES_MULTILINE | \r
+                    ES_AUTOVSCROLL | ES_READONLY | ES_WANTRETURN | \r
+                    WS_VSCROLL\r
+    PUSHBUTTON      "Option",IDC_PROP_SETPASS,100,37,25,15\r
+END\r
+\r
+IDD_NEWFOLDER DIALOG DISCARDABLE  0, 0, 103, 38\r
+STYLE DS_MODALFRAME | DS_CENTER | WS_POPUP | WS_CAPTION | WS_SYSMENU\r
+CAPTION "NewFolder"\r
+FONT 9, "Tahoma"\r
+BEGIN\r
+    EDITTEXT        IDC_NEWFOLDER_NAME,5,5,95,12,ES_AUTOHSCROLL\r
+    DEFPUSHBUTTON   "OK",IDOK,15,20,40,15\r
+    PUSHBUTTON      "Cancel",IDCANCEL,60,20,40,14\r
+END\r
+\r
+IDD_PROPTAB_PASS_TIMEOUT DIALOG DISCARDABLE  0, 0, 196, 125\r
+STYLE WS_CHILD | WS_BORDER\r
+FONT 9, "Tahoma"\r
+BEGIN\r
+    EDITTEXT        IDC_PASS_TIMEOUT,125,10,30,12,ES_AUTOHSCROLL\r
+    LTEXT           "Password timeout(min):",IDC_PROPTAB_PASS_TIMEOUT_LABEL,\r
+                    10,10,100,10\r
+    LTEXT           "Timeout length(1-60).",IDC_PROPTAB_PASS_TIMEOUT_HELP,10,\r
+                    25,130,20\r
+    CONTROL         "Use random filename",IDC_PASS_TIMEOUT_USE_SAFEFILE,\r
+                    "Button",BS_AUTOCHECKBOX | WS_TABSTOP,10,60,140,10\r
+    LTEXT           "Use random filename for crypted notes",\r
+                    IDC_PROPTAB_PASS_TIMEOUT_SAFEFILE_HELP,10,80,175,25\r
+END\r
+\r
+IDD_PROPTAB_FONT DIALOG DISCARDABLE  0, 0, 162, 126\r
+STYLE WS_CHILD\r
+FONT 9, "Tahoma"\r
+BEGIN\r
+    LTEXT           "Tree:",IDC_PROPTAB_FONT_TREE_LABEL,10,20,30,10\r
+    LTEXT           "Memo:",IDC_PROPTAB_FONT_EDIT_LABEL,10,70,30,10\r
+    COMBOBOX        IDC_FONT_SELECT_NAME,40,35,65,65,CBS_DROPDOWNLIST | \r
+                    CBS_SORT | WS_VSCROLL | WS_TABSTOP\r
+    COMBOBOX        IDC_FONT_DETAILS_NAME,40,85,65,65,CBS_DROPDOWNLIST | \r
+                    CBS_SORT | WS_VSCROLL | WS_TABSTOP\r
+    COMBOBOX        IDC_FONT_SELECT_SIZE,109,35,35,65,CBS_DROPDOWN | \r
+                    WS_VSCROLL | WS_TABSTOP\r
+    COMBOBOX        IDC_FONT_DETAILS_SIZE,109,85,35,65,CBS_DROPDOWN | \r
+                    WS_VSCROLL | WS_TABSTOP\r
+    CONTROL         "Use default",IDC_FONT_SELECT_USEDEFAULT,"Button",\r
+                    BS_AUTOCHECKBOX | WS_TABSTOP,50,20,105,10\r
+    CONTROL         "Use default",IDC_FONT_DETAILS_USEDEFAULT,"Button",\r
+                    BS_AUTOCHECKBOX | WS_TABSTOP,50,70,105,10\r
+    CONTROL         "Use cleartype font",IDC_FONT_SELECT_CLEARTYPE,"Button",\r
+                    BS_AUTOCHECKBOX | WS_TABSTOP,40,50,118,10\r
+    CONTROL         "Use cleartype font",IDC_FONT_DETAILS_CLEARTYPE,"Button",\r
+                    BS_AUTOCHECKBOX | WS_TABSTOP,40,105,118,10\r
+END\r
+\r
+IDD_PROPTAB_INSDATE DIALOG DISCARDABLE  0, 0, 156, 125\r
+STYLE WS_CHILD | WS_BORDER\r
+FONT 9, "Tahoma"\r
+BEGIN\r
+    LTEXT           "Date1:",IDC_PROPTAB_INSDATE_DATE1,5,5,35,10\r
+    LTEXT           "Date2:",IDC_PROPTAB_INSDATE_DATE2,5,20,35,10\r
+    EDITTEXT        IDC_PROP_DATEFORMAT1,50,5,90,12,ES_AUTOHSCROLL\r
+    EDITTEXT        IDC_PROP_DATEFORMAT2,50,20,90,12,ES_AUTOHSCROLL\r
+    EDITTEXT        IDC_DATEFORMAT_DESC,5,40,145,80,ES_MULTILINE | \r
+                    ES_AUTOHSCROLL | ES_READONLY | WS_VSCROLL | NOT \r
+                    WS_TABSTOP\r
+END\r
+\r
+IDD_PROPTAB_KEEPCARET DIALOG DISCARDABLE  0, 0, 172, 137\r
+STYLE WS_CHILD\r
+FONT 9, "Tahoma"\r
+BEGIN\r
+    CONTROL         "Keep Caret",IDC_PROP_KEEPCARET,"Button",BS_AUTOCHECKBOX | \r
+                    WS_TABSTOP,5,5,135,10\r
+    LTEXT           " ",IDC_PROPTAB_KEEPCARET_HELP1,25,20,135,15\r
+    LTEXT           "Tab stop:",IDC_PROPTAB_KEEPCARET_LABEL,5,40,40,10\r
+    EDITTEXT        IDC_PROP_TABSTOP,50,40,30,12,ES_AUTOHSCROLL\r
+    LTEXT           " ",IDC_PROPTAB_KEEPCARET_HELP2,85,40,80,15\r
+    CONTROL         "Show title",IDC_PROP_SWITCHTITLE,"Button",\r
+                    BS_AUTOCHECKBOX | WS_TABSTOP,5,60,130,10\r
+    LTEXT           "Show memo title to titlebar",\r
+                    IDC_PROPTAB_KEEPCARET_HELP3,20,75,130,15\r
+    CONTROL         "Disable save dialog",IDC_PROPTAB_DISABLESAVEDLG,"Button",\r
+                    BS_AUTOCHECKBOX | WS_TABSTOP,5,95,145,10\r
+END\r
+\r
+IDD_PROPTAB_SELECTMEMO DIALOG DISCARDABLE  0, 0, 192, 131\r
+STYLE WS_CHILD\r
+FONT 9, "Tahoma"\r
+BEGIN\r
+    CONTROL         "Open memo single click",IDC_PROP_SINGLECLICK,"Button",\r
+                    BS_AUTOCHECKBOX | WS_TABSTOP,11,10,140,10\r
+    LTEXT           " ",IDC_STATIC,16,26,169,20\r
+    CONTROL         "Toggle memo when cursor moved.",IDC_PROP_AUTOLOAD,\r
+                    "Button",BS_AUTOCHECKBOX | WS_TABSTOP,11,52,140,10\r
+    LTEXT           " ",IDC_STATIC,16,68,169,20\r
+END\r
+\r
+IDD_SEARCH DIALOG DISCARDABLE  0, 0, 187, 95\r
+STYLE DS_MODALFRAME | DS_CENTER | WS_POPUP | WS_CAPTION | WS_SYSMENU\r
+CAPTION "Search"\r
+FONT 9, "Tahoma"\r
+BEGIN\r
+    COMBOBOX        IDC_SEARCH_STRING,50,5,130,125,CBS_DROPDOWN | \r
+                    CBS_AUTOHSCROLL | WS_VSCROLL | WS_TABSTOP\r
+    DEFPUSHBUTTON   "OK",IDOK,75,75,50,14\r
+    PUSHBUTTON      "Cancel",IDCANCEL,130,75,50,14\r
+    LTEXT           "Search str:",IDC_SEARCH_FIND_LABEL,5,5,40,10\r
+    CONTROL         "Case sensitive",IDC_SEARCH_CASESENSITIVE,"Button",\r
+                    BS_AUTOCHECKBOX | WS_TABSTOP,10,30,105,10\r
+    CONTROL         "Include encrypted memo",IDC_SEARCH_ENCRYPTMEMO,"Button",\r
+                    BS_AUTOCHECKBOX | WS_TABSTOP,10,45,110,10\r
+    CONTROL         "Find to file name",IDC_FILENAMEONLY,"Button",\r
+                    BS_AUTOCHECKBOX | WS_TABSTOP,10,60,110,10\r
+    CONTROL         "Up",IDC_SEARCH_DIRECTION_UP,"Button",BS_AUTORADIOBUTTON,\r
+                    140,40,30,10\r
+    CONTROL         "Down",IDC_SEARCH_DIRECTION_DOWN,"Button",\r
+                    BS_AUTORADIOBUTTON,140,55,30,10\r
+    GROUPBOX        "Direction",IDC_SEARCH_DIRECT_LABEL,130,30,50,40\r
+END\r
+\r
+IDD_SEARCHING DIALOG DISCARDABLE  0, 0, 79, 82\r
+STYLE DS_MODALFRAME | DS_CENTER | WS_POPUP\r
+FONT 9, "Tahoma"\r
+BEGIN\r
+    PUSHBUTTON      "CANCEL",IDCANCEL,15,60,50,14\r
+    CTEXT           "Static",IDC_SEARCHMSG,7,30,65,8\r
+END\r
+\r
+IDD_GREPTAB_MAIN DIALOG DISCARDABLE  0, 0, 182, 111\r
+STYLE WS_CHILD\r
+FONT 9, "Tahoma"\r
+BEGIN\r
+    LTEXT           "Target Directory:",IDC_GREPTAB_MAIN_POSLABEL,10,10,50,8\r
+    LTEXT           "Static",IDC_GREPTAB_MAIN_STARTDIR,70,10,105,8\r
+    LTEXT           "Search String:",IDC_GREPTAB_MAIN_STRLABEL,10,25,50,8\r
+    COMBOBOX        IDC_GREPTAB_MAIN_SEARCHSTRING,65,25,110,90,CBS_DROPDOWN | \r
+                    WS_VSCROLL | WS_TABSTOP\r
+    CONTROL         "Case sensitive",IDC_GREPTAB_MAIN_CASESENSITIVE,"Button",\r
+                    BS_AUTOCHECKBOX | WS_TABSTOP,15,50,130,10\r
+    CONTROL         "Include encrypted memo",IDC_GREPTAB_MAIN_ENCRYPTNOTE,\r
+                    "Button",BS_AUTOCHECKBOX | WS_TABSTOP,15,65,135,10\r
+    CONTROL         "Find to file name",IDC_GREPTAB_MAIN_FILENAME,"Button",\r
+                    BS_AUTOCHECKBOX | WS_TABSTOP,15,80,135,10\r
+END\r
+\r
+IDD_GREPTAB_PERSIST DIALOG DISCARDABLE  0, 0, 181, 110\r
+STYLE WS_CHILD | WS_BORDER\r
+FONT 9, "Tahoma"\r
+BEGIN\r
+    LTEXT           "\95Û\91\96¼:",IDC_GREPTAB_PERSIST_LABEL,10,27,40,8\r
+    EDITTEXT        IDC_GREPTAB_PERSIST_NAME,60,25,95,14,ES_AUTOHSCROLL\r
+    CONTROL         "\95Û\91\82·\82é",IDC_PROPTAB_PERSIST_SELECTPERSIST,"Button",\r
+                    BS_AUTOCHECKBOX | WS_TABSTOP,5,5,55,10\r
+END\r
+\r
+IDD_FILTERCTL DIALOG DISCARDABLE  0, 0, 159, 120\r
+STYLE DS_MODALFRAME | DS_CENTER | WS_POPUP | WS_CAPTION | WS_SYSMENU\r
+CAPTION "Virtual folder settings"\r
+FONT 9, "Tahoma"\r
+BEGIN\r
+    DEFPUSHBUTTON   "OK",IDOK,50,100,50,14\r
+    PUSHBUTTON      "Cancel",IDCANCEL,105,100,45,14\r
+    CONTROL         "List1",IDC_FILTERCTL_LIST,"SysListView32",LVS_REPORT | \r
+                    LVS_SINGLESEL | LVS_SHOWSELALWAYS | LVS_EDITLABELS | \r
+                    WS_BORDER | WS_TABSTOP,25,5,90,90\r
+    PUSHBUTTON      "Up",IDC_FILTERCTL_UP,5,25,15,15\r
+    PUSHBUTTON      "Dn",IDC_FILTERCTL_DOWN,5,45,15,14\r
+    PUSHBUTTON      "New",IDC_FILTERCTL_NEW,125,25,25,14\r
+    CONTROL         "Save",IDC_FILTERCTL_KEEP,"Button",BS_AUTOCHECKBOX | \r
+                    WS_TABSTOP,125,10,30,10\r
+    PUSHBUTTON      "Del",IDC_FILTERCTL_DELETE,125,65,25,14\r
+    PUSHBUTTON      "Ren",IDC_FILTERCTL_RENAME,125,45,25,14\r
+END\r
+\r
+IDD_FILTERDEF_SRC DIALOG DISCARDABLE  0, 0, 156, 135\r
+STYLE WS_CHILD | WS_BORDER\r
+FONT 9, "Tahoma"\r
+BEGIN\r
+    EDITTEXT        IDC_FILTERDEF_SRC_PATH,7,25,145,14,ES_AUTOHSCROLL\r
+END\r
+\r
+IDD_FILTERDEF_FILTER DIALOG DISCARDABLE  0, 0, 196, 151\r
+STYLE WS_CHILD | WS_BORDER\r
+FONT 9, "Tahoma"\r
+BEGIN\r
+    CONTROL         "List1",IDC_FILTERDEF_FILTER_LIST,"SysListView32",\r
+                    LVS_REPORT | LVS_SINGLESEL | LVS_SHOWSELALWAYS | \r
+                    WS_BORDER | WS_TABSTOP,10,10,145,90\r
+    PUSHBUTTON      "Up",IDC_FILTERDEF_FILTER_UP,160,25,25,14\r
+    PUSHBUTTON      "Dn",IDC_FILTERDEF_FILTER_DOWN,160,45,25,14\r
+    PUSHBUTTON      "Find",IDC_FILTERDEF_FILTER_REGEX,5,110,35,14\r
+    PUSHBUTTON      "Num",IDC_FILTERDEF_FILTER_LIMIT,45,110,35,14\r
+    PUSHBUTTON      "Date",IDC_FILTERDEF_FILTER_TIMESTAMP,85,110,35,14\r
+    PUSHBUTTON      "Sort",IDC_FILTERDEF_FILTER_SORT,125,110,35,14\r
+    PUSHBUTTON      "Del",IDC_FILTERDEF_FILTER_DELETE,160,75,25,14\r
+END\r
+\r
+IDD_FILTERDEF_ADD_REGEX DIALOG DISCARDABLE  0, 0, 159, 119\r
+STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU\r
+CAPTION "Find filter"\r
+FONT 9, "Tahoma"\r
+BEGIN\r
+    DEFPUSHBUTTON   "OK",IDOK,45,100,50,14\r
+    PUSHBUTTON      "CANCEL",IDCANCEL,100,100,50,14\r
+    LTEXT           "Search str:",IDC_FILTERDEF_ADD_REGEX_LABEL,5,10,36,8\r
+    COMBOBOX        IDC_FILTERDEF_REGEX_SEARCHSTR,50,10,100,80,CBS_DROPDOWN | \r
+                    CBS_SORT | WS_VSCROLL | WS_TABSTOP\r
+    CONTROL         "Case sensitive",IDC_FILTERDEF_REGEX_CASESENSITIVE,\r
+                    "Button",BS_AUTOCHECKBOX | WS_TABSTOP,10,35,77,10\r
+    CONTROL         "Include encrypted memo",IDC_FILTERDEF_REGEX_CRYPTMEMO,\r
+                    "Button",BS_AUTOCHECKBOX | WS_TABSTOP,10,50,78,10\r
+    CONTROL         "Find to file name",IDC_FILTERDEF_REGEX_FILENAME,"Button",\r
+                    BS_AUTOCHECKBOX | WS_TABSTOP,10,65,85,10\r
+    CONTROL         "Invert match",IDC_FILTERDEF_REGEX_NEGATE,"Button",\r
+                    BS_AUTOCHECKBOX | WS_TABSTOP,10,80,83,10\r
+END\r
+\r
+IDD_FILTERDEF_ADD_LIMIT DIALOG DISCARDABLE  0, 0, 149, 74\r
+STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU\r
+CAPTION "Number filter"\r
+FONT 9, "Tahoma"\r
+BEGIN\r
+    DEFPUSHBUTTON   "OK",IDOK,35,50,50,14\r
+    PUSHBUTTON      "CANCEL",IDCANCEL,90,50,50,14\r
+    LTEXT           "Num Items:",IDC_FILTERDEF_ADD_LIMIT_ITEMS,5,15,70,8\r
+    EDITTEXT        IDC_FILTERDEF_LIMIT_NUMLIMIT,75,10,40,14,ES_AUTOHSCROLL\r
+END\r
+\r
+IDD_FILTERDEF_ADD_TIMESTAMP DIALOG DISCARDABLE  0, 0, 159, 93\r
+STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU\r
+CAPTION "Timestamp filter"\r
+FONT 9, "Tahoma"\r
+BEGIN\r
+    EDITTEXT        IDC_FILTERDEF_TS_DELTADAY,25,10,30,14,ES_AUTOHSCROLL\r
+    CONTROL         "Newer",IDC_FILTERDEF_TS_NEWER,"Button",\r
+                    BS_AUTORADIOBUTTON,35,35,46,10\r
+    CONTROL         "Older",IDC_FILTERDEF_TS_OLDER,"Button",\r
+                    BS_AUTORADIOBUTTON,35,50,41,10\r
+    DEFPUSHBUTTON   "OK",IDOK,45,75,50,14\r
+    PUSHBUTTON      "CANCEL",IDCANCEL,100,75,50,14\r
+    LTEXT           "days before",IDC_FILTERDEF_ADD_TIMESTAMP_BASEPOINT,60,\r
+                    15,55,8\r
+END\r
+\r
+IDD_FILTERDEF_ADD_SORT DIALOG DISCARDABLE  0, 0, 159, 93\r
+STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU\r
+CAPTION "Sort filter"\r
+FONT 9, "Tahoma"\r
+BEGIN\r
+    DEFPUSHBUTTON   "OK",IDOK,45,75,50,14\r
+    PUSHBUTTON      "CANCEL",IDCANCEL,100,75,50,14\r
+    COMBOBOX        IDC_FILTERDEF_SORT_TYPE,55,15,95,85,CBS_DROPDOWNLIST | \r
+                    WS_VSCROLL | WS_TABSTOP\r
+    LTEXT           "Sort Type:",IDC_FILTERDEF_ADD_SORT_LABEL,5,15,45,8\r
+END\r
+\r
+IDD_FILTERDEF_VIEWTYPE DIALOG DISCARDABLE  0, 0, 156, 130\r
+STYLE WS_CHILD | WS_BORDER\r
+FONT 9, "Tahoma"\r
+BEGIN\r
+    COMBOBOX        IDC_FILTERDEF_VIEW_TYPE,30,30,100,45,CBS_DROPDOWNLIST | \r
+                    CBS_SORT | WS_VSCROLL | WS_TABSTOP\r
+    LTEXT           " ",IDC_FILTERDEF_VIEWTYPE_LABEL,10,15,85,8\r
+END\r
+\r
+IDD_PROPTAB_DEFNOTE DIALOG DISCARDABLE  0, 0, 181, 140\r
+STYLE WS_CHILD | WS_BORDER\r
+FONT 9, "Tahoma"\r
+BEGIN\r
+    EDITTEXT        IDC_PROPTAB_DEFNOTE_PATH,5,50,170,12,ES_AUTOHSCROLL | \r
+                    ES_READONLY\r
+    PUSHBUTTON      "Use selected",IDC_PROPTAB_DEFNOTE_SETCURRENT,95,70,80,\r
+                    14\r
+    PUSHBUTTON      "Use blank",IDC_PROPTAB_DEFNOTE_SETBLANK,95,90,80,14\r
+    LTEXT           "Default note",IDC_PROPTAB_DEFNOTE_LABEL,5,35,170,8\r
+    CONTROL         "Open the note last opened",IDC_PROPTAB_DEFNOTE_USELAST,\r
+                    "Button",BS_AUTOCHECKBOX | WS_TABSTOP,5,10,160,10\r
+END\r
+\r
+IDD_BOOKMARK_EDIT DIALOG DISCARDABLE  0, 0, 194, 136\r
+STYLE DS_MODALFRAME | DS_CENTER | WS_POPUP | WS_CAPTION | WS_SYSMENU\r
+CAPTION "Edit bookmark"\r
+FONT 9, "Tahoma"\r
+BEGIN\r
+    DEFPUSHBUTTON   "OK",IDOK,80,115,50,14\r
+    PUSHBUTTON      "CANCEL",IDCANCEL,135,115,50,14\r
+    CONTROL         "List1",IDC_BMEDIT_LIST,"SysListView32",LVS_REPORT | \r
+                    WS_BORDER | WS_TABSTOP,25,5,165,105\r
+    PUSHBUTTON      "Delete",IDC_BMEDIT_DELETE,5,115,50,14\r
+    PUSHBUTTON      "Up",IDC_BMEDIT_UP,5,25,15,14\r
+    PUSHBUTTON      "Dn",IDC_BMEDIT_DOWN,5,45,15,14\r
+END\r
+\r
+IDD_PROPTAB_EXTAPP DIALOG DISCARDABLE  0, 0, 206, 136\r
+STYLE WS_CHILD | WS_BORDER\r
+FONT 9, "Tahoma"\r
+BEGIN\r
+    EDITTEXT        IDC_PROP_EXTAPP_PATH_EXTAPP1,10,35,120,12,ES_AUTOHSCROLL\r
+    LTEXT           "Application1",IDC_PROP_EXTAPP_TTL_EXTAPP1,5,20,65,8\r
+    EDITTEXT        IDC_PROP_EXTAPP_PATH_EXTAPP2,10,70,120,12,ES_AUTOHSCROLL\r
+    LTEXT           "Application2",IDC_PROP_EXTAPP_TTL_EXTAPP2,5,55,60,8\r
+    CONTROL         "Use file association",IDC_PROP_EXTAPP_USEASSOC,"Button",\r
+                    BS_AUTOCHECKBOX | WS_TABSTOP,5,5,90,10\r
+    EDITTEXT        IDC_PROP_EXTAPP_CAUTION,5,90,195,40,ES_MULTILINE | \r
+                    ES_AUTOVSCROLL | ES_READONLY | ES_WANTRETURN\r
+    PUSHBUTTON      "...",IDC_PROPTAB_EXTAPP_CHOOSE1,140,35,20,12\r
+    PUSHBUTTON      "...",IDC_PROPTAB_EXTAPP_CHOOSE2,140,70,20,12\r
+END\r
+\r
+IDD_PROPTAB_CODEPAGE DIALOG DISCARDABLE  0, 0, 187, 161\r
+STYLE WS_CHILD\r
+FONT 9, "\82l\82\82o\83S\83V\83b\83N"\r
+BEGIN\r
+    LTEXT           "Codepage:",IDC_PROPTAB_CODEPAGE_LABEL,5,10,115,9\r
+    COMBOBOX        IDC_PROPTAB_CODEPAGE_CODEPAGE,10,25,160,125,\r
+                    CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP\r
+    EDITTEXT        IDC_PROPTAB_CODEPAGE_NOTICE,10,55,160,95,ES_MULTILINE | \r
+                    ES_AUTOVSCROLL | ES_READONLY\r
+END\r
+\r
+\r
+/////////////////////////////////////////////////////////////////////////////\r
+//\r
+// DESIGNINFO\r
+//\r
+\r
+#ifdef APSTUDIO_INVOKED\r
+GUIDELINES DESIGNINFO DISCARDABLE \r
+BEGIN\r
+    IDD_PASSWORD, DIALOG\r
+    BEGIN\r
+        LEFTMARGIN, 7\r
+        RIGHTMARGIN, 103\r
+        TOPMARGIN, 7\r
+        BOTTOMMARGIN, 58\r
+    END\r
+\r
+    IDD_ABOUTBOX, DIALOG\r
+    BEGIN\r
+        LEFTMARGIN, 7\r
+        RIGHTMARGIN, 242\r
+        TOPMARGIN, 7\r
+        BOTTOMMARGIN, 153\r
+    END\r
+\r
+    IDD_PROPTAB_PASS_TIMEOUT, DIALOG\r
+    BEGIN\r
+        LEFTMARGIN, 7\r
+        RIGHTMARGIN, 189\r
+        TOPMARGIN, 7\r
+        BOTTOMMARGIN, 118\r
+    END\r
+\r
+    IDD_PROPTAB_FONT, DIALOG\r
+    BEGIN\r
+        LEFTMARGIN, 7\r
+        RIGHTMARGIN, 155\r
+        TOPMARGIN, 7\r
+        BOTTOMMARGIN, 119\r
+    END\r
+\r
+    IDD_PROPTAB_INSDATE, DIALOG\r
+    BEGIN\r
+        LEFTMARGIN, 7\r
+        RIGHTMARGIN, 149\r
+        TOPMARGIN, 7\r
+        BOTTOMMARGIN, 118\r
+    END\r
+\r
+    IDD_PROPTAB_KEEPCARET, DIALOG\r
+    BEGIN\r
+        LEFTMARGIN, 7\r
+        RIGHTMARGIN, 165\r
+        TOPMARGIN, 7\r
+        BOTTOMMARGIN, 130\r
+    END\r
+\r
+    IDD_PROPTAB_SELECTMEMO, DIALOG\r
+    BEGIN\r
+        LEFTMARGIN, 7\r
+        RIGHTMARGIN, 185\r
+        TOPMARGIN, 7\r
+        BOTTOMMARGIN, 124\r
+    END\r
+\r
+    IDD_SEARCH, DIALOG\r
+    BEGIN\r
+        LEFTMARGIN, 7\r
+        RIGHTMARGIN, 180\r
+        TOPMARGIN, 7\r
+        BOTTOMMARGIN, 88\r
+    END\r
+\r
+    IDD_SEARCHING, DIALOG\r
+    BEGIN\r
+        LEFTMARGIN, 7\r
+        RIGHTMARGIN, 72\r
+        TOPMARGIN, 7\r
+        BOTTOMMARGIN, 75\r
+    END\r
+\r
+    IDD_GREPTAB_MAIN, DIALOG\r
+    BEGIN\r
+        LEFTMARGIN, 7\r
+        RIGHTMARGIN, 175\r
+        TOPMARGIN, 7\r
+        BOTTOMMARGIN, 104\r
+    END\r
+\r
+    IDD_GREPTAB_PERSIST, DIALOG\r
+    BEGIN\r
+        LEFTMARGIN, 7\r
+        RIGHTMARGIN, 174\r
+        TOPMARGIN, 7\r
+        BOTTOMMARGIN, 103\r
+    END\r
+\r
+    IDD_FILTERCTL, DIALOG\r
+    BEGIN\r
+        LEFTMARGIN, 7\r
+        RIGHTMARGIN, 152\r
+        TOPMARGIN, 7\r
+        BOTTOMMARGIN, 113\r
+    END\r
+\r
+    IDD_FILTERDEF_SRC, DIALOG\r
+    BEGIN\r
+        LEFTMARGIN, 7\r
+        RIGHTMARGIN, 149\r
+        TOPMARGIN, 7\r
+        BOTTOMMARGIN, 128\r
+    END\r
+\r
+    IDD_FILTERDEF_FILTER, DIALOG\r
+    BEGIN\r
+        LEFTMARGIN, 7\r
+        RIGHTMARGIN, 189\r
+        TOPMARGIN, 7\r
+        BOTTOMMARGIN, 144\r
+    END\r
+\r
+    IDD_FILTERDEF_ADD_REGEX, DIALOG\r
+    BEGIN\r
+        LEFTMARGIN, 7\r
+        RIGHTMARGIN, 152\r
+        TOPMARGIN, 7\r
+        BOTTOMMARGIN, 112\r
+    END\r
+\r
+    IDD_FILTERDEF_ADD_LIMIT, DIALOG\r
+    BEGIN\r
+        LEFTMARGIN, 7\r
+        RIGHTMARGIN, 142\r
+        TOPMARGIN, 7\r
+        BOTTOMMARGIN, 67\r
+    END\r
+\r
+    IDD_FILTERDEF_ADD_TIMESTAMP, DIALOG\r
+    BEGIN\r
+        LEFTMARGIN, 7\r
+        RIGHTMARGIN, 152\r
+        TOPMARGIN, 7\r
+        BOTTOMMARGIN, 86\r
+    END\r
+\r
+    IDD_FILTERDEF_ADD_SORT, DIALOG\r
+    BEGIN\r
+        LEFTMARGIN, 7\r
+        RIGHTMARGIN, 152\r
+        TOPMARGIN, 7\r
+        BOTTOMMARGIN, 86\r
+    END\r
+\r
+    IDD_FILTERDEF_VIEWTYPE, DIALOG\r
+    BEGIN\r
+        LEFTMARGIN, 7\r
+        RIGHTMARGIN, 149\r
+        TOPMARGIN, 7\r
+        BOTTOMMARGIN, 123\r
+    END\r
+\r
+    IDD_PROPTAB_DEFNOTE, DIALOG\r
+    BEGIN\r
+        LEFTMARGIN, 7\r
+        RIGHTMARGIN, 174\r
+        TOPMARGIN, 7\r
+        BOTTOMMARGIN, 133\r
+    END\r
+\r
+    IDD_BOOKMARK_EDIT, DIALOG\r
+    BEGIN\r
+        LEFTMARGIN, 7\r
+        RIGHTMARGIN, 187\r
+        TOPMARGIN, 7\r
+        BOTTOMMARGIN, 129\r
+    END\r
+\r
+    IDD_PROPTAB_EXTAPP, DIALOG\r
+    BEGIN\r
+        LEFTMARGIN, 7\r
+        RIGHTMARGIN, 199\r
+        TOPMARGIN, 7\r
+        BOTTOMMARGIN, 129\r
+    END\r
+\r
+    IDD_PROPTAB_CODEPAGE, DIALOG\r
+    BEGIN\r
+        LEFTMARGIN, 7\r
+        RIGHTMARGIN, 180\r
+        TOPMARGIN, 7\r
+        BOTTOMMARGIN, 154\r
+    END\r
+END\r
+#endif    // APSTUDIO_INVOKED\r
+\r
+\r
+/////////////////////////////////////////////////////////////////////////////\r
+//\r
+// Icon\r
+//\r
+\r
+// Icon with lowest ID value placed first to ensure application icon\r
+// remains consistent on all systems.\r
+IDI_TOMBO               ICON    DISCARDABLE     "../../../Src/image/Tombo.ICO"\r
+\r
+/////////////////////////////////////////////////////////////////////////////\r
+//\r
+// Accelerator\r
+//\r
+\r
+IDR_ACCEL_SELECT ACCELERATORS DISCARDABLE \r
+BEGIN\r
+    "8",            IDM_SEARCH_PREV,        VIRTKEY, CONTROL, NOINVERT\r
+    "9",            IDM_SEARCH_NEXT,        VIRTKEY, CONTROL, NOINVERT\r
+    "A",            IDM_SELALL,             VIRTKEY, CONTROL, NOINVERT\r
+    "E",            IDM_ENCRYPT,            VIRTKEY, CONTROL, NOINVERT\r
+    "F",            IDM_SEARCH,             VIRTKEY, CONTROL, NOINVERT\r
+    "G",            IDM_GREP,               VIRTKEY, CONTROL, NOINVERT\r
+    "N",            IDM_NEWMEMO,            VIRTKEY, CONTROL, NOINVERT\r
+    "P",            IDM_DECRYPT,            VIRTKEY, CONTROL, NOINVERT\r
+    "Q",            IDM_EXIT,               VIRTKEY, CONTROL, NOINVERT\r
+    "S",            IDM_SAVE,               VIRTKEY, CONTROL, NOINVERT\r
+    VK_F2,          IDM_RENAME,             VIRTKEY, NOINVERT\r
+    VK_F3,          IDM_SEARCH_NEXT,        VIRTKEY, NOINVERT\r
+    VK_F3,          IDM_SEARCH_PREV,        VIRTKEY, SHIFT, NOINVERT\r
+END\r
+\r
+IDR_ACCEL_DETAIL ACCELERATORS DISCARDABLE \r
+BEGIN\r
+    "1",            IDM_INSDATE1,           VIRTKEY, CONTROL, NOINVERT\r
+    "2",            IDM_INSDATE2,           VIRTKEY, CONTROL, NOINVERT\r
+    "8",            IDM_SEARCH_PREV,        VIRTKEY, CONTROL, NOINVERT\r
+    "9",            IDM_SEARCH_NEXT,        VIRTKEY, CONTROL, NOINVERT\r
+    "F",            IDM_SEARCH,             VIRTKEY, CONTROL, NOINVERT\r
+    "N",            IDM_NEWMEMO,            VIRTKEY, CONTROL, NOINVERT\r
+    "Q",            IDM_EXIT,               VIRTKEY, CONTROL, NOINVERT\r
+    "S",            IDM_SAVE,               VIRTKEY, CONTROL, NOINVERT\r
+    VK_ESCAPE,      IDM_RETURNLIST,         VIRTKEY, NOINVERT\r
+    VK_ESCAPE,      IDM_RETURNLIST,         VIRTKEY, SHIFT, NOINVERT\r
+    VK_F2,          IDM_RENAME,             VIRTKEY, NOINVERT\r
+    VK_F3,          IDM_SEARCH_NEXT,        VIRTKEY, NOINVERT\r
+    VK_F3,          IDM_SEARCH_PREV,        VIRTKEY, SHIFT, NOINVERT\r
+    "Z",            IDM_UNDO,               VIRTKEY, CONTROL, NOINVERT\r
+END\r
+\r
+#endif    // \93ú\96{\8cê resources\r
+/////////////////////////////////////////////////////////////////////////////\r
+\r
+\r
+\r
+#ifndef APSTUDIO_INVOKED\r
+/////////////////////////////////////////////////////////////////////////////\r
+//\r
+// Generated from the TEXTINCLUDE 3 resource.\r
+//\r
+\r
+\r
+/////////////////////////////////////////////////////////////////////////////\r
+#endif    // not APSTUDIO_INVOKED\r
+\r
diff --git a/Win32/Tombo/res/resource.h b/Win32/Tombo/res/resource.h
new file mode 100644 (file)
index 0000000..195cd39
--- /dev/null
@@ -0,0 +1,235 @@
+//{{NO_DEPENDENCIES}}\r
+// Microsoft Developer Studio generated include file.\r
+// Used by Tombo.rc\r
+//\r
+#define IDS_PROPTAB_FOLDER              1\r
+#define IDS_PROPTAB_TITLE               2\r
+#define IDS_PROPTAB_PASSWORD            3\r
+#define IDS_PROPERTY_PASSWORD_DESC      4\r
+#define IDS_PROPTAB_PASS_TIMEOUT        5\r
+#define IDS_PROPTAB_FONT                6\r
+#define IDS_PROPTAB_DATE                7\r
+#define IDS_PROPTAB_KEEPCARET           8\r
+#define IDS_TIPS_NEWMEMO                9\r
+#define IDS_TIPS_SAVE                   10\r
+#define IDS_PROPTAB_SELECTMEMO          11\r
+#define IDS_GREPTAB_MAIN                12\r
+#define IDS_GREPTAB_PERSIST             13\r
+#define IDS_PROPTAB_DEFNOTE             14\r
+#define ID_MENU_MAIN                    101\r
+#define ID_CMDBAR_MAIN                  101\r
+#define IDR_MENU_MAIN                   101\r
+#define IDC_MEMOSELECTVIEW              102\r
+#define IDB_MEMOSELECT_IMAGES           102\r
+#define IDC_MEMODETAILSVIEW             103\r
+#define IDD_PASSWORD                    104\r
+#define ID_PASSWORDTIMER                104\r
+#define IDB_TOOLBAR                     105\r
+#define IDC_TOOLBAR                     105\r
+#define IDR_DUMMY                       106\r
+#define IDC_STATUS                      106\r
+#define IDD_ABOUTBOX                    107\r
+#define IDC_MEMODETAILSVIEW_NF          107\r
+#define IDM_EXTAPP1                     108\r
+#define IDI_TOMBO                       109\r
+#define IDM_ASSOC                       109\r
+#define IDB_ARTICLEBOX                  110\r
+#define IDM_EXTAPP2                     110\r
+#define IDD_PROPTAB                     111\r
+#define IDD_FILESELECT                  112\r
+#define IDM_SHOWREBAR                   112\r
+#define IDC_TOPFOLDER                   113\r
+#define IDC_FOLDERSEL                   114\r
+#define IDT_SELSCROLL                   114\r
+#define IDC_FILESELECT_TREE             115\r
+#define IDC_TOMBOEDIT                   115\r
+#define IDD_PROPTAB_FOLDER              116\r
+#define IDD_PROPTAB_PASSWORD            117\r
+#define IDC_PASS1                       118\r
+#define IDC_PASS2                       119\r
+#define IDD_NEWFOLDER                   120\r
+#define IDC_NEWFOLDER_NAME              121\r
+#define IDD_PROPTAB_PASS_TIMEOUT        122\r
+#define IDD_PROPTAB_FONT                124\r
+#define IDD_PROPTAB_INSDATE             125\r
+#define IDR_ACCEL_SELECT                127\r
+#define IDR_ACCEL_DETAIL                128\r
+#define IDD_PROPTAB_KEEPCARET           129\r
+#define IDD_PROPTAB_SELECTMEMO          130\r
+#define IDD_SEARCH                      132\r
+#define IDR_CONTEXTMENU                 133\r
+#define IDD_SEARCHING                   134\r
+#define IDD_GREPTAB_MAIN                135\r
+#define IDD_GREPTAB_PERSIST             136\r
+#define IDD_FILTERCTL                   137\r
+#define IDD_FILTERDEF_SRC               138\r
+#define IDD_FILTERDEF_FILTER            139\r
+#define IDD_FILTERDEF_ADD_REGEX         140\r
+#define IDD_FILTERDEF_ADD_LIMIT         141\r
+#define IDD_FILTERDEF_ADD_TIMESTAMP     142\r
+#define IDD_FILTERDEF_ADD_SORT          143\r
+#define IDD_FILTERDEF_VIEWTYPE          144\r
+#define IDD_PROPTAB_DEFNOTE             146\r
+#define IDD_BOOKMARK_EDIT               147\r
+#define IDD_PROPTAB_EXTAPP              148\r
+#define IDD_LANG_DLG                    149\r
+#define IDD_PROPTAB_CODEPAGE            150\r
+#define IDC_PASS                        1000\r
+#define IDC_PROP_PASSWORD_DESC          1001\r
+#define IDC_PASS_TIMEOUT                1002\r
+#define IDC_FONT_SELECT_NAME            1003\r
+#define IDC_FONT_DETAILS_NAME           1004\r
+#define IDC_FONT_SELECT_SIZE            1005\r
+#define IDC_FONT_DETAILS_SIZE           1006\r
+#define IDC_FONT_SELECT_USEDEFAULT      1007\r
+#define IDC_FONT_DETAILS_USEDEFAULT     1008\r
+#define IDC_PROP_DATEFORMAT1            1008\r
+#define IDC_PROP_DATEFORMAT2            1009\r
+#define IDC_PROP_SETPASS                1011\r
+#define IDC_PROP_KEEPCARET              1012\r
+#define IDC_PROP_SINGLECLICK            1013\r
+#define IDC_PROP_AUTOLOAD               1014\r
+#define IDC_PROP_TABSTOP                1015\r
+#define IDC_PROP_SWITCHTITLE            1016\r
+#define IDC_KEEPTITLE                   1017\r
+#define IDC_SEARCH_STRING               1019\r
+#define IDC_SEARCH_CASESENSITIVE        1020\r
+#define IDC_SEARCH_ENCRYPTMEMO          1021\r
+#define IDC_COPYRIGHT                   1022\r
+#define IDC_FILENAMEONLY                1023\r
+#define IDC_DATEFORMAT_DESC             1025\r
+#define IDC_VERSIONINFO                 1026\r
+#define IDC_SEARCH_DIRECTION_UP         1027\r
+#define IDC_SEARCH_DIRECTION_DOWN       1028\r
+#define IDC_SEARCHMSG                   1029\r
+#define IDC_GREPTAB_MAIN_STARTDIR       1030\r
+#define IDC_GREPTAB_MAIN_SEARCHSTRING   1031\r
+#define IDC_GREPTAB_MAIN_CASESENSITIVE  1032\r
+#define IDC_GREPTAB_MAIN_ENCRYPTNOTE    1033\r
+#define IDC_GREPTAB_MAIN_FILENAME       1034\r
+#define IDC_GREPTAB_PERSIST_NAME        1035\r
+#define IDC_PROPTAB_PERSIST_SELECTPERSIST 1036\r
+#define IDC_PROP_READONLY               1037\r
+#define IDC_FILTERCTL_LIST              1038\r
+#define IDC_FILTERCTL_UP                1039\r
+#define IDC_FILTERCTL_DOWN              1040\r
+#define IDC_FILTERCTL_NEW               1041\r
+#define IDC_FILTERCTL_KEEP              1042\r
+#define IDC_FILTERDEF_SRC_PATH          1043\r
+#define IDC_FILTERCTL_DELETE            1043\r
+#define IDC_FILTERDEF_FILTER_LIST       1044\r
+#define IDC_FILTERCTL_RENAME            1044\r
+#define IDC_FILTERDEF_FILTER_UP         1045\r
+#define IDC_FILTERDEF_FILTER_DOWN       1046\r
+#define IDC_FILTERDEF_FILTER_REGEX      1047\r
+#define IDC_FILTERDEF_FILTER_LIMIT      1048\r
+#define IDC_FILTERDEF_REGEX_SEARCHSTR   1048\r
+#define IDC_FILTERDEF_FILTER_TIMESTAMP  1049\r
+#define IDC_FILTERDEF_REGEX_CASESENSITIVE 1049\r
+#define IDC_FILTERDEF_FILTER_SORT       1050\r
+#define IDC_FILTERDEF_REGEX_CRYPTMEMO   1050\r
+#define IDC_FILTERDEF_REGEX_FILENAME    1051\r
+#define IDC_FILTERDEF_FILTER_DELETE     1051\r
+#define IDC_FILTERDEF_REGEX_NEGATE      1052\r
+#define IDC_FILTERDEF_LIMIT_NUMLIMIT    1054\r
+#define IDC_FILTERDEF_TS_DELTADAY       1055\r
+#define IDC_FILTERDEF_TS_OLDER          1056\r
+#define IDC_FILTERDEF_TS_NEWER          1057\r
+#define IDC_FILTERDEF_SORT_TYPE         1058\r
+#define IDC_FONT_SELECT_CLEARTYPE       1059\r
+#define IDC_FONT_DETAILS_CLEARTYPE      1060\r
+#define IDC_FILTERDEF_VIEW_TYPE         1060\r
+#define IDC_PROPTAB_DEFNOTE_PATH        1061\r
+#define IDC_PROPTAB_DEFNOTE_SETCURRENT  1062\r
+#define IDC_PROPTAB_DEFNOTE_SETBLANK    1063\r
+#define IDC_BMEDIT_LIST                 1063\r
+#define IDC_BMEDIT_DELETE               1064\r
+#define IDC_BMEDIT_UP                   1065\r
+#define IDC_BMEDIT_DOWN                 1066\r
+#define IDC_FILTERDEF_ADD_LIMIT_ITEMS   1067\r
+#define IDC_FILTERDEF_ADD_REGEX_LABEL   1068\r
+#define IDC_FILTERDEF_ADD_SORT_LABEL    1069\r
+#define IDC_FILTERDEF_ADD_TIMESTAMP_BASEPOINT 1070\r
+#define IDC_FILTERDEF_VIEWTYPE_LABEL    1071\r
+#define IDC_GREPTAB_MAIN_POSLABEL       1072\r
+#define IDC_GREPTAB_MAIN_STRLABEL       1073\r
+#define IDC_GREPTAB_PERSIST_LABEL       1074\r
+#define IDC_PROPTAB_DEFNOTE_LABEL       1075\r
+#define IDC_PROPTAB_FOLDER_LABEL        1076\r
+#define IDC_PROPTAB_FOLDER_HELP1        1077\r
+#define IDC_PROPTAB_FOLDER_HELP2        1078\r
+#define IDC_PROPTAB_FONT_TREE_LABEL     1079\r
+#define IDC_PROPTAB_FONT_EDIT_LABEL     1080\r
+#define IDC_PROPTAB_INSDATE_DATE1       1081\r
+#define IDC_PROPTAB_INSDATE_DATE2       1082\r
+#define IDC_PROPTAB_KEEPCARET_HELP1     1083\r
+#define IDC_PROPTAB_KEEPCARET_HELP2     1084\r
+#define IDC_PROPTAB_KEEPCARET_HELP3     1085\r
+#define IDC_PROPTAB_KEEPCARET_LABEL     1086\r
+#define IDC_PROPTAB_PASS_TIMEOUT_LABEL  1087\r
+#define IDC_PROPTAB_PASS_TIMEOUT_HELP   1088\r
+#define IDC_SEARCH_FIND_LABEL           1089\r
+#define IDC_SEARCH_DIRECT_LABEL         1090\r
+#define IDC_PROP_EXTAPP_PATH_EXTAPP1    1091\r
+#define IDC_PROP_EXTAPP_TTL_EXTAPP1     1092\r
+#define IDC_PROP_EXTAPP_PATH_EXTAPP2    1093\r
+#define IDC_PROP_EXTAPP_TTL_EXTAPP2     1094\r
+#define IDC_PROP_EXTAPP_USEASSOC        1095\r
+#define IDC_PROP_EXTAPP_CAUTION         1097\r
+#define IDC_PROPTAB_EXTAPP_CHOOSE1      1098\r
+#define IDC_PROPTAB_EXTAPP_CHOOSE2      1099\r
+#define IDC_LANG_LIST                   1099\r
+#define IDC_PROPTAB_DISABLESAVEDLG      1100\r
+#define IDC_PASS_TIMEOUT_USE_SAFEFILE   1101\r
+#define IDC_PROPTAB_PASS_TIMEOUT_SAFEFILE_HELP 1102\r
+#define IDC_PROPTAB_DEFNOTE_USELAST     1103\r
+#define IDC_PROPTAB_CODEPAGE_LABEL      1104\r
+#define IDC_PROPTAB_CODEPAGE_CODEPAGE   1105\r
+#define IDC_PROPTAB_CODEPAGE_NOTICE     1106\r
+#define IDM_EXIT                        40001\r
+#define IDM_NEWMEMO                     40002\r
+#define IDM_RETURNLIST                  40003\r
+#define IDM_DETAILSVIEW_CUT             40004\r
+#define IDM_CUT                         40004\r
+#define IDM_DETAILSVIEW_COPY            40005\r
+#define IDM_COPY                        40005\r
+#define IDM_DETAILSVIEW_PASTE           40006\r
+#define IDM_PASTE                       40006\r
+#define IDM_ENCRYPT                     40007\r
+#define IDM_DECRYPT                     40008\r
+#define IDM_ABOUT                       40009\r
+#define IDM_DELETEITEM                  40010\r
+#define IDM_PROPERTY                    40011\r
+#define IDM_ACTIONBUTTON                40012\r
+#define IDM_NEWFOLDER                   40013\r
+#define IDM_FORGETPASS                  40014\r
+#define IDM_SAVE                        40015\r
+#define IDM_INSDATE1                    40016\r
+#define IDM_INSDATE2                    40017\r
+#define IDM_SELALL                      40018\r
+#define IDM_DETAILS_HSCROLL             40020\r
+#define IDM_TOGGLEPANE                  40022\r
+#define IDM_SEARCH                      40023\r
+#define IDM_SEARCH_NEXT                 40024\r
+#define IDM_SEARCH_PREV                 40025\r
+#define IDM_RENAME                      40026\r
+#define IDM_TOGGLEREADONLY              40028\r
+#define IDM_UNDO                        40029\r
+#define IDM_SHOWSTATUSBAR               40030\r
+#define IDM_GREP                        40031\r
+#define IDM_TOPMOST                     40032\r
+#define IDM_VFOLDER_DEF                 40034\r
+#define IDM_TRACELINK                   40035\r
+#define IDM_BOOKMARK_ADD                40037\r
+#define IDM_BOOKMARK_CONFIG             40038\r
+\r
+// Next default values for new objects\r
+// \r
+#ifdef APSTUDIO_INVOKED\r
+#ifndef APSTUDIO_READONLY_SYMBOLS\r
+#define _APS_NEXT_RESOURCE_VALUE        151\r
+#define _APS_NEXT_COMMAND_VALUE         40039\r
+#define _APS_NEXT_CONTROL_VALUE         1107\r
+#define _APS_NEXT_SYMED_VALUE           116\r
+#endif\r
+#endif\r
diff --git a/WindowsMobile5PPC/Tombo/Tombo.sln b/WindowsMobile5PPC/Tombo/Tombo.sln
new file mode 100644 (file)
index 0000000..14507c0
--- /dev/null
@@ -0,0 +1,22 @@
+\r
+Microsoft Visual Studio Solution File, Format Version 9.00\r
+# Visual Studio 2005\r
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "Tombo", "Tombo\Tombo.vcproj", "{76A9052E-F103-4BED-AA59-FF2326589D44}"\r
+EndProject\r
+Global\r
+       GlobalSection(SolutionConfigurationPlatforms) = preSolution\r
+               Debug|Windows Mobile 5.0 Pocket PC SDK (ARMV4I) = Debug|Windows Mobile 5.0 Pocket PC SDK (ARMV4I)\r
+               Release|Windows Mobile 5.0 Pocket PC SDK (ARMV4I) = Release|Windows Mobile 5.0 Pocket PC SDK (ARMV4I)\r
+       EndGlobalSection\r
+       GlobalSection(ProjectConfigurationPlatforms) = postSolution\r
+               {76A9052E-F103-4BED-AA59-FF2326589D44}.Debug|Windows Mobile 5.0 Pocket PC SDK (ARMV4I).ActiveCfg = Debug|Windows Mobile 5.0 Pocket PC SDK (ARMV4I)\r
+               {76A9052E-F103-4BED-AA59-FF2326589D44}.Debug|Windows Mobile 5.0 Pocket PC SDK (ARMV4I).Build.0 = Debug|Windows Mobile 5.0 Pocket PC SDK (ARMV4I)\r
+               {76A9052E-F103-4BED-AA59-FF2326589D44}.Debug|Windows Mobile 5.0 Pocket PC SDK (ARMV4I).Deploy.0 = Debug|Windows Mobile 5.0 Pocket PC SDK (ARMV4I)\r
+               {76A9052E-F103-4BED-AA59-FF2326589D44}.Release|Windows Mobile 5.0 Pocket PC SDK (ARMV4I).ActiveCfg = Release|Windows Mobile 5.0 Pocket PC SDK (ARMV4I)\r
+               {76A9052E-F103-4BED-AA59-FF2326589D44}.Release|Windows Mobile 5.0 Pocket PC SDK (ARMV4I).Build.0 = Release|Windows Mobile 5.0 Pocket PC SDK (ARMV4I)\r
+               {76A9052E-F103-4BED-AA59-FF2326589D44}.Release|Windows Mobile 5.0 Pocket PC SDK (ARMV4I).Deploy.0 = Release|Windows Mobile 5.0 Pocket PC SDK (ARMV4I)\r
+       EndGlobalSection\r
+       GlobalSection(SolutionProperties) = preSolution\r
+               HideSolutionNode = FALSE\r
+       EndGlobalSection\r
+EndGlobal\r
diff --git a/WindowsMobile5PPC/Tombo/Tombo.suo b/WindowsMobile5PPC/Tombo/Tombo.suo
new file mode 100644 (file)
index 0000000..58b74cd
Binary files /dev/null and b/WindowsMobile5PPC/Tombo/Tombo.suo differ
diff --git a/WindowsMobile5PPC/Tombo/Tombo/Tombo.vcproj b/WindowsMobile5PPC/Tombo/Tombo/Tombo.vcproj
new file mode 100644 (file)
index 0000000..7f41100
--- /dev/null
@@ -0,0 +1,818 @@
+<?xml version="1.0" encoding="shift_jis"?>\r
+<VisualStudioProject\r
+       ProjectType="Visual C++"\r
+       Version="8.00"\r
+       Name="Tombo"\r
+       ProjectGUID="{76A9052E-F103-4BED-AA59-FF2326589D44}"\r
+       RootNamespace="Tombo"\r
+       Keyword="Win32Proj"\r
+       >\r
+       <Platforms>\r
+               <Platform\r
+                       Name="Windows Mobile 5.0 Pocket PC SDK (ARMV4I)"\r
+               />\r
+       </Platforms>\r
+       <ToolFiles>\r
+       </ToolFiles>\r
+       <Configurations>\r
+               <Configuration\r
+                       Name="Debug|Windows Mobile 5.0 Pocket PC SDK (ARMV4I)"\r
+                       OutputDirectory="$(PlatformName)\$(ConfigurationName)"\r
+                       IntermediateDirectory="$(PlatformName)\$(ConfigurationName)"\r
+                       ConfigurationType="1"\r
+                       CharacterSet="1"\r
+                       >\r
+                       <Tool\r
+                               Name="VCPreBuildEventTool"\r
+                       />\r
+                       <Tool\r
+                               Name="VCCustomBuildTool"\r
+                       />\r
+                       <Tool\r
+                               Name="VCXMLDataGeneratorTool"\r
+                       />\r
+                       <Tool\r
+                               Name="VCWebServiceProxyGeneratorTool"\r
+                       />\r
+                       <Tool\r
+                               Name="VCMIDLTool"\r
+                       />\r
+                       <Tool\r
+                               Name="VCCLCompilerTool"\r
+                               ExecutionBucket="7"\r
+                               Optimization="0"\r
+                               AdditionalIncludeDirectories="C:\work2\SF\Tombo\oniguruma;C:\work2\SF\Tombo\Src\YAEdit;C:\work2\SF\Tombo\expat\include;C:\work2\SF\Tombo\WindowsMobile5PPC\Tombo\res;C:\work2\SF\Tombo\Src\TomboLib;C:\work2\SF\Tombo\Src"\r
+                               PreprocessorDefinitions="_DEBUG;_WIN32_WCE=$(CEVER);UNDER_CE;$(PLATFORMDEFINES);WINCE;DEBUG;_WINDOWS;$(ARCHFAM);$(_ARCHFAM_);_UNICODE;UNICODE;TOMBO;PLATFORM_WM5;FOR_VGA"\r
+                               MinimalRebuild="true"\r
+                               RuntimeLibrary="1"\r
+                               UsePrecompiledHeader="0"\r
+                               WarningLevel="3"\r
+                               DebugInformationFormat="3"\r
+                       />\r
+                       <Tool\r
+                               Name="VCManagedResourceCompilerTool"\r
+                       />\r
+                       <Tool\r
+                               Name="VCResourceCompilerTool"\r
+                               PreprocessorDefinitions="_DEBUG;_WIN32_WCE=$(CEVER);UNDER_CE;$(PLATFORMDEFINES)"\r
+                               Culture="1041"\r
+                               AdditionalIncludeDirectories="$(IntDir)"\r
+                       />\r
+                       <Tool\r
+                               Name="VCPreLinkEventTool"\r
+                       />\r
+                       <Tool\r
+                               Name="VCLinkerTool"\r
+                               AdditionalOptions=" /subsystem:windowsce,5.01"\r
+                               AdditionalDependencies="aygshell.lib"\r
+                               OutputFile="$(OutDir)/Tombo.exe"\r
+                               LinkIncremental="2"\r
+                               DelayLoadDLLs="$(NOINHERIT)"\r
+                               GenerateDebugInformation="true"\r
+                               ProgramDatabaseFile="$(OutDir)/Tombo.pdb"\r
+                               SubSystem="0"\r
+                       />\r
+                       <Tool\r
+                               Name="VCALinkTool"\r
+                       />\r
+                       <Tool\r
+                               Name="VCXDCMakeTool"\r
+                       />\r
+                       <Tool\r
+                               Name="VCBscMakeTool"\r
+                       />\r
+                       <Tool\r
+                               Name="VCCodeSignTool"\r
+                       />\r
+                       <Tool\r
+                               Name="VCPostBuildEventTool"\r
+                       />\r
+                       <DeploymentTool\r
+                               ForceDirty="-1"\r
+                               RemoteDirectory=""\r
+                               RegisterOutput="0"\r
+                               AdditionalFiles=""\r
+                       />\r
+                       <DebuggerTool\r
+                       />\r
+               </Configuration>\r
+               <Configuration\r
+                       Name="Release|Windows Mobile 5.0 Pocket PC SDK (ARMV4I)"\r
+                       OutputDirectory="$(PlatformName)\$(ConfigurationName)"\r
+                       IntermediateDirectory="$(PlatformName)\$(ConfigurationName)"\r
+                       ConfigurationType="1"\r
+                       CharacterSet="1"\r
+                       >\r
+                       <Tool\r
+                               Name="VCPreBuildEventTool"\r
+                       />\r
+                       <Tool\r
+                               Name="VCCustomBuildTool"\r
+                       />\r
+                       <Tool\r
+                               Name="VCXMLDataGeneratorTool"\r
+                       />\r
+                       <Tool\r
+                               Name="VCWebServiceProxyGeneratorTool"\r
+                       />\r
+                       <Tool\r
+                               Name="VCMIDLTool"\r
+                       />\r
+                       <Tool\r
+                               Name="VCCLCompilerTool"\r
+                               ExecutionBucket="7"\r
+                               Optimization="2"\r
+                               AdditionalIncludeDirectories="C:\work2\SF\Tombo\oniguruma;C:\work2\SF\Tombo\Src\YAEdit;C:\work2\SF\Tombo\expat\include;C:\work2\SF\Tombo\WindowsMobile5PPC\Tombo\res;C:\work2\SF\Tombo\Src\TomboLib;C:\work2\SF\Tombo\Src"\r
+                               PreprocessorDefinitions="NDEBUG;_WIN32_WCE=$(CEVER);UNDER_CE;$(PLATFORMDEFINES);WINCE;_WINDOWS;$(ARCHFAM);$(_ARCHFAM_);_UNICODE;UNICODE;TOMBO;PLATFORM_WM5;FOR_VGA"\r
+                               RuntimeLibrary="0"\r
+                               UsePrecompiledHeader="0"\r
+                               WarningLevel="3"\r
+                               DebugInformationFormat="3"\r
+                       />\r
+                       <Tool\r
+                               Name="VCManagedResourceCompilerTool"\r
+                       />\r
+                       <Tool\r
+                               Name="VCResourceCompilerTool"\r
+                               PreprocessorDefinitions="NDEBUG;_WIN32_WCE=$(CEVER);UNDER_CE;$(PLATFORMDEFINES)"\r
+                               Culture="1041"\r
+                               AdditionalIncludeDirectories="$(IntDir)"\r
+                       />\r
+                       <Tool\r
+                               Name="VCPreLinkEventTool"\r
+                       />\r
+                       <Tool\r
+                               Name="VCLinkerTool"\r
+                               AdditionalOptions=" /subsystem:windowsce,5.01"\r
+                               AdditionalDependencies="aygshell.lib"\r
+                               OutputFile="$(OutDir)/Tombo.exe"\r
+                               LinkIncremental="1"\r
+                               DelayLoadDLLs="$(NOINHERIT)"\r
+                               GenerateDebugInformation="true"\r
+                               ProgramDatabaseFile="$(OutDir)/Tombo.pdb"\r
+                               SubSystem="0"\r
+                               OptimizeReferences="2"\r
+                               EnableCOMDATFolding="2"\r
+                       />\r
+                       <Tool\r
+                               Name="VCALinkTool"\r
+                       />\r
+                       <Tool\r
+                               Name="VCXDCMakeTool"\r
+                       />\r
+                       <Tool\r
+                               Name="VCBscMakeTool"\r
+                       />\r
+                       <Tool\r
+                               Name="VCCodeSignTool"\r
+                       />\r
+                       <Tool\r
+                               Name="VCPostBuildEventTool"\r
+                       />\r
+                       <DeploymentTool\r
+                               ForceDirty="-1"\r
+                               RemoteDirectory=""\r
+                               RegisterOutput="0"\r
+                               AdditionalFiles=""\r
+                       />\r
+                       <DebuggerTool\r
+                       />\r
+               </Configuration>\r
+       </Configurations>\r
+       <References>\r
+       </References>\r
+       <Files>\r
+               <Filter\r
+                       Name="\83\\81[\83\83t\83@\83C\83\8b"\r
+                       Filter="cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx"\r
+                       UniqueIdentifier="{4FC737F1-C7A5-4376-A066-2A32D752A2FF}"\r
+                       >\r
+                       <File\r
+                               RelativePath="..\..\..\Src\AboutDialog.cpp"\r
+                               >\r
+                       </File>\r
+                       <File\r
+                               RelativePath="..\..\..\Src\TomboLib\AutoPtr.cpp"\r
+                               >\r
+                       </File>\r
+                       <File\r
+                               RelativePath="..\..\..\Src\GNUPG\blowfish.c"\r
+                               >\r
+                       </File>\r
+                       <File\r
+                               RelativePath="..\..\..\Src\BookMark.cpp"\r
+                               >\r
+                       </File>\r
+                       <File\r
+                               RelativePath="..\..\..\Src\BookMarkDlg.cpp"\r
+                               >\r
+                       </File>\r
+                       <File\r
+                               RelativePath="..\..\..\Src\TomboLib\Clipboard.cpp"\r
+                               >\r
+                       </File>\r
+                       <File\r
+                               RelativePath="..\..\..\Src\Crypt.cpp"\r
+                               >\r
+                       </File>\r
+                       <File\r
+                               RelativePath="..\..\..\Src\CryptManager.cpp"\r
+                               >\r
+                       </File>\r
+                       <File\r
+                               RelativePath="..\..\..\Src\DetailsViewWndProc.cpp"\r
+                               >\r
+                       </File>\r
+                       <File\r
+                               RelativePath="..\..\..\Src\TomboLib\DialogTemplate.cpp"\r
+                               >\r
+                       </File>\r
+                       <File\r
+                               RelativePath="..\..\..\Src\TomboLib\DirectoryScanner.cpp"\r
+                               >\r
+                       </File>\r
+                       <File\r
+                               RelativePath="..\..\..\Src\DirList.cpp"\r
+                               >\r
+                       </File>\r
+                       <File\r
+                               RelativePath="..\..\..\Src\TomboLib\File.cpp"\r
+                               >\r
+                       </File>\r
+                       <File\r
+                               RelativePath="..\..\..\Src\TomboLib\FileInputStream.cpp"\r
+                               >\r
+                       </File>\r
+                       <File\r
+                               RelativePath="..\..\..\Src\FileSelector.cpp"\r
+                               >\r
+                       </File>\r
+                       <File\r
+                               RelativePath="..\..\..\Src\FilterAddDlg.cpp"\r
+                               >\r
+                       </File>\r
+                       <File\r
+                               RelativePath="..\..\..\Src\FilterCtlDlg.cpp"\r
+                               >\r
+                       </File>\r
+                       <File\r
+                               RelativePath="..\..\..\Src\FilterDefDlg.cpp"\r
+                               >\r
+                       </File>\r
+                       <File\r
+                               RelativePath="..\..\..\Src\YAEdit\FontWidthCache.cpp"\r
+                               >\r
+                       </File>\r
+                       <File\r
+                               RelativePath="..\..\..\Src\GrepDialog.cpp"\r
+                               >\r
+                       </File>\r
+                       <File\r
+                               RelativePath="..\..\..\Src\YAEdit\LineManager.cpp"\r
+                               >\r
+                       </File>\r
+                       <File\r
+                               RelativePath="..\..\..\Src\YAEdit\LineWrapper.cpp"\r
+                               >\r
+                       </File>\r
+                       <File\r
+                               RelativePath="..\..\..\Src\YAEdit\LineWrapperImpl.cpp"\r
+                               >\r
+                       </File>\r
+                       <File\r
+                               RelativePath="..\..\..\Src\TomboLib\List.cpp"\r
+                               >\r
+                       </File>\r
+                       <File\r
+                               RelativePath="..\..\..\Src\TomboLib\Logger.cpp"\r
+                               >\r
+                       </File>\r
+                       <File\r
+                               RelativePath="..\..\..\Src\main.cpp"\r
+                               >\r
+                       </File>\r
+                       <File\r
+                               RelativePath="..\..\..\Src\MainFrame.cpp"\r
+                               >\r
+                       </File>\r
+                       <File\r
+                               RelativePath="..\..\..\Src\GNUPG\md5.c"\r
+                               >\r
+                       </File>\r
+                       <File\r
+                               RelativePath="..\..\..\Src\YAEdit\MemManager.cpp"\r
+                               >\r
+                       </File>\r
+                       <File\r
+                               RelativePath="..\..\..\Src\MemoDetailsView.cpp"\r
+                               >\r
+                       </File>\r
+                       <File\r
+                               RelativePath="..\..\..\Src\MemoFolder.cpp"\r
+                               >\r
+                       </File>\r
+                       <File\r
+                               RelativePath="..\..\..\Src\MemoInfo.cpp"\r
+                               >\r
+                       </File>\r
+                       <File\r
+                               RelativePath="..\..\..\Src\MemoManager.cpp"\r
+                               >\r
+                       </File>\r
+                       <File\r
+                               RelativePath="..\..\..\Src\MemoNote.cpp"\r
+                               >\r
+                       </File>\r
+                       <File\r
+                               RelativePath="..\..\..\Src\MemoSelectView.cpp"\r
+                               >\r
+                       </File>\r
+                       <File\r
+                               RelativePath="..\..\..\Src\Message.cpp"\r
+                               >\r
+                       </File>\r
+                       <File\r
+                               RelativePath="..\..\..\Src\NewFolderDialog.cpp"\r
+                               >\r
+                       </File>\r
+                       <File\r
+                               RelativePath="..\..\..\Src\PasswordDialog.cpp"\r
+                               >\r
+                       </File>\r
+                       <File\r
+                               RelativePath="..\..\..\Src\PasswordManager.cpp"\r
+                               >\r
+                       </File>\r
+                       <File\r
+                               RelativePath="..\..\..\Src\YAEdit\PhysicalLineManager.cpp"\r
+                               >\r
+                       </File>\r
+                       <File\r
+                               RelativePath="..\..\..\Src\PlatformLayer.cpp"\r
+                               >\r
+                       </File>\r
+                       <File\r
+                               RelativePath="..\..\..\Src\Property.cpp"\r
+                               >\r
+                       </File>\r
+                       <File\r
+                               RelativePath="..\..\..\Src\TomboLib\PropertyPage.cpp"\r
+                               >\r
+                       </File>\r
+                       <File\r
+                               RelativePath="..\..\..\Src\PsPCPlatform.cpp"\r
+                               >\r
+                       </File>\r
+                       <File\r
+                               RelativePath="..\..\..\Src\YAEdit\Region.cpp"\r
+                               >\r
+                       </File>\r
+                       <File\r
+                               RelativePath="..\..\..\Src\Repository.cpp"\r
+                               >\r
+                       </File>\r
+                       <File\r
+                               RelativePath="..\..\..\Src\RepositoryImpl.cpp"\r
+                               >\r
+                       </File>\r
+                       <File\r
+                               RelativePath="..\..\..\Src\SearchDlg.cpp"\r
+                               >\r
+                       </File>\r
+                       <File\r
+                               RelativePath="..\..\..\Src\SearchEngine.cpp"\r
+                               >\r
+                       </File>\r
+                       <File\r
+                               RelativePath="..\..\..\Src\SearchTree.cpp"\r
+                               >\r
+                       </File>\r
+                       <File\r
+                               RelativePath="..\..\..\Src\SelectViewWndProc.cpp"\r
+                               >\r
+                       </File>\r
+                       <File\r
+                               RelativePath="..\..\..\Src\TomboLib\SipControl.cpp"\r
+                               >\r
+                       </File>\r
+                       <File\r
+                               RelativePath="..\..\..\Src\StatusBar.cpp"\r
+                               >\r
+                       </File>\r
+                       <File\r
+                               RelativePath="..\..\..\Src\YAEdit\StringSplitter.cpp"\r
+                               >\r
+                       </File>\r
+                       <File\r
+                               RelativePath="..\..\..\Src\TomboPropertyTab.cpp"\r
+                               >\r
+                       </File>\r
+                       <File\r
+                               RelativePath="..\..\..\Src\TomboURI.cpp"\r
+                               >\r
+                       </File>\r
+                       <File\r
+                               RelativePath="..\..\..\Src\TreeViewItem.cpp"\r
+                               >\r
+                       </File>\r
+                       <File\r
+                               RelativePath="..\..\..\Src\TSParser.cpp"\r
+                               >\r
+                       </File>\r
+                       <File\r
+                               RelativePath="..\..\..\Src\TomboLib\TString.cpp"\r
+                               >\r
+                       </File>\r
+                       <File\r
+                               RelativePath="..\..\..\Src\TomboLib\Uniconv.cpp"\r
+                               >\r
+                       </File>\r
+                       <File\r
+                               RelativePath="..\..\..\Src\URIScanner.cpp"\r
+                               >\r
+                       </File>\r
+                       <File\r
+                               RelativePath="..\..\..\Src\regex\util.c"\r
+                               >\r
+                       </File>\r
+                       <File\r
+                               RelativePath="..\..\..\Src\TomboLib\VarBuffer.cpp"\r
+                               >\r
+                       </File>\r
+                       <File\r
+                               RelativePath="..\..\..\Src\VFManager.cpp"\r
+                               >\r
+                       </File>\r
+                       <File\r
+                               RelativePath="..\..\..\Src\VFStream.cpp"\r
+                               >\r
+                       </File>\r
+                       <File\r
+                               RelativePath="..\..\..\Src\WM5Platform.cpp"\r
+                               >\r
+                       </File>\r
+                       <File\r
+                               RelativePath="..\..\..\Src\YAEdit\YAEdit.cpp"\r
+                               >\r
+                       </File>\r
+                       <File\r
+                               RelativePath="..\..\..\Src\YAEdit\YAEditDoc.cpp"\r
+                               >\r
+                       </File>\r
+                       <File\r
+                               RelativePath="..\..\..\Src\YAEditor.cpp"\r
+                               >\r
+                       </File>\r
+                       <File\r
+                               RelativePath="..\..\..\Src\YAEdit\YAEditView.cpp"\r
+                               >\r
+                       </File>\r
+               </Filter>\r
+               <Filter\r
+                       Name="\83w\83b\83_\81\83t\83@\83C\83\8b"\r
+                       Filter="h;hpp;hxx;hm;inl;inc;xsd"\r
+                       UniqueIdentifier="{93995380-89BD-4b04-88EB-625FBE52EBFB}"\r
+                       >\r
+                       <File\r
+                               RelativePath="..\..\..\Src\AboutDialog.h"\r
+                               >\r
+                       </File>\r
+                       <File\r
+                               RelativePath="..\..\..\Src\TomboLib\AutoPtr.h"\r
+                               >\r
+                       </File>\r
+                       <File\r
+                               RelativePath="..\..\..\Src\GNUPG\bithelp.h"\r
+                               >\r
+                       </File>\r
+                       <File\r
+                               RelativePath="..\..\..\Src\BookMark.h"\r
+                               >\r
+                       </File>\r
+                       <File\r
+                               RelativePath="..\..\..\Src\BookMarkDlg.h"\r
+                               >\r
+                       </File>\r
+                       <File\r
+                               RelativePath="..\..\..\Src\Chipher.h"\r
+                               >\r
+                       </File>\r
+                       <File\r
+                               RelativePath="..\..\..\Src\TomboLib\Clipboard.h"\r
+                               >\r
+                       </File>\r
+                       <File\r
+                               RelativePath="..\..\..\Src\regex\config.h"\r
+                               >\r
+                       </File>\r
+                       <File\r
+                               RelativePath="..\..\..\Src\Crypt.h"\r
+                               >\r
+                       </File>\r
+                       <File\r
+                               RelativePath="..\..\..\Src\CryptManager.h"\r
+                               >\r
+                       </File>\r
+                       <File\r
+                               RelativePath="..\..\..\Src\TomboLib\DialogTemplate.h"\r
+                               >\r
+                       </File>\r
+                       <File\r
+                               RelativePath="..\..\..\Src\TomboLib\DirectoryScanner.h"\r
+                               >\r
+                       </File>\r
+                       <File\r
+                               RelativePath="..\..\..\Src\DirList.h"\r
+                               >\r
+                       </File>\r
+                       <File\r
+                               RelativePath="..\..\..\Src\TomboLib\File.h"\r
+                               >\r
+                       </File>\r
+                       <File\r
+                               RelativePath="..\..\..\Src\TomboLib\FileInputStream.h"\r
+                               >\r
+                       </File>\r
+                       <File\r
+                               RelativePath="..\..\..\Src\FileSelector.h"\r
+                               >\r
+                       </File>\r
+                       <File\r
+                               RelativePath="..\..\..\Src\FilterAddDlg.h"\r
+                               >\r
+                       </File>\r
+                       <File\r
+                               RelativePath="..\..\..\Src\FilterCtlDlg.h"\r
+                               >\r
+                       </File>\r
+                       <File\r
+                               RelativePath="..\..\..\Src\FilterDefDlg.h"\r
+                               >\r
+                       </File>\r
+                       <File\r
+                               RelativePath="..\..\..\Src\YAEdit\FontWidthCache.h"\r
+                               >\r
+                       </File>\r
+                       <File\r
+                               RelativePath="..\..\..\Src\GrepDialog.h"\r
+                               >\r
+                       </File>\r
+                       <File\r
+                               RelativePath="..\..\..\Src\HPCPlatform.h"\r
+                               >\r
+                       </File>\r
+                       <File\r
+                               RelativePath="..\..\..\Src\TomboLib\HttpUtil.h"\r
+                               >\r
+                       </File>\r
+                       <File\r
+                               RelativePath="..\..\..\Src\LagendaPlatform.h"\r
+                               >\r
+                       </File>\r
+                       <File\r
+                               RelativePath="..\..\..\Src\YAEdit\LineManager.h"\r
+                               >\r
+                       </File>\r
+                       <File\r
+                               RelativePath="..\..\..\Src\YAEdit\LineWrapper.h"\r
+                               >\r
+                       </File>\r
+                       <File\r
+                               RelativePath="..\..\..\Src\YAEdit\LineWrapperImpl.h"\r
+                               >\r
+                       </File>\r
+                       <File\r
+                               RelativePath="..\..\..\Src\TomboLib\List.h"\r
+                               >\r
+                       </File>\r
+                       <File\r
+                               RelativePath="..\..\..\Src\TomboLib\Logger.h"\r
+                               >\r
+                       </File>\r
+                       <File\r
+                               RelativePath="..\..\..\Src\MainFrame.h"\r
+                               >\r
+                       </File>\r
+                       <File\r
+                               RelativePath="..\..\..\Src\YAEdit\MemManager.h"\r
+                               >\r
+                       </File>\r
+                       <File\r
+                               RelativePath="..\..\..\Src\MemoDetailsView.h"\r
+                               >\r
+                       </File>\r
+                       <File\r
+                               RelativePath="..\..\..\Src\MemoFolder.h"\r
+                               >\r
+                       </File>\r
+                       <File\r
+                               RelativePath="..\..\..\Src\MemoInfo.h"\r
+                               >\r
+                       </File>\r
+                       <File\r
+                               RelativePath="..\..\..\Src\MemoManager.h"\r
+                               >\r
+                       </File>\r
+                       <File\r
+                               RelativePath="..\..\..\Src\MemoNote.h"\r
+                               >\r
+                       </File>\r
+                       <File\r
+                               RelativePath="..\..\..\Src\MemoSelectView.h"\r
+                               >\r
+                       </File>\r
+                       <File\r
+                               RelativePath="..\..\..\Src\Message.h"\r
+                               >\r
+                       </File>\r
+                       <File\r
+                               RelativePath="..\..\..\Src\NewFolderDialog.h"\r
+                               >\r
+                       </File>\r
+                       <File\r
+                               RelativePath="..\..\..\Src\PasswordDialog.h"\r
+                               >\r
+                       </File>\r
+                       <File\r
+                               RelativePath="..\..\..\Src\PasswordManager.h"\r
+                               >\r
+                       </File>\r
+                       <File\r
+                               RelativePath="..\..\..\Src\YAEdit\PhysicalLineManager.h"\r
+                               >\r
+                       </File>\r
+                       <File\r
+                               RelativePath="..\..\..\Src\PlatformLayer.h"\r
+                               >\r
+                       </File>\r
+                       <File\r
+                               RelativePath="..\..\..\Src\Property.h"\r
+                               >\r
+                       </File>\r
+                       <File\r
+                               RelativePath="..\..\..\Src\TomboLib\PropertyPage.h"\r
+                               >\r
+                       </File>\r
+                       <File\r
+                               RelativePath="..\..\..\Src\PsPCPlatform.h"\r
+                               >\r
+                       </File>\r
+                       <File\r
+                               RelativePath="..\..\..\Src\RegexUtil.h"\r
+                               >\r
+                       </File>\r
+                       <File\r
+                               RelativePath="..\..\..\Src\YAEdit\Region.h"\r
+                               >\r
+                       </File>\r
+                       <File\r
+                               RelativePath="..\..\..\Src\Repository.h"\r
+                               >\r
+                       </File>\r
+                       <File\r
+                               RelativePath="..\..\..\Src\RepositoryImpl.h"\r
+                               >\r
+                       </File>\r
+                       <File\r
+                               RelativePath="..\res\resource.h"\r
+                               >\r
+                       </File>\r
+                       <File\r
+                               RelativePath="..\..\..\Src\SearchDlg.h"\r
+                               >\r
+                       </File>\r
+                       <File\r
+                               RelativePath="..\..\..\Src\SearchEngine.h"\r
+                               >\r
+                       </File>\r
+                       <File\r
+                               RelativePath="..\..\..\Src\SearchTree.h"\r
+                               >\r
+                       </File>\r
+                       <File\r
+                               RelativePath="..\..\..\Src\TomboLib\SipControl.h"\r
+                               >\r
+                       </File>\r
+                       <File\r
+                               RelativePath="..\..\..\Src\StatusBar.h"\r
+                               >\r
+                       </File>\r
+                       <File\r
+                               RelativePath="..\..\..\Src\YAEdit\StringSplitter.h"\r
+                               >\r
+                       </File>\r
+                       <File\r
+                               RelativePath="..\..\..\Src\Tombo.h"\r
+                               >\r
+                       </File>\r
+                       <File\r
+                               RelativePath="..\..\..\Src\TomboPropertyTab.h"\r
+                               >\r
+                       </File>\r
+                       <File\r
+                               RelativePath="..\..\..\Src\TomboURI.h"\r
+                               >\r
+                       </File>\r
+                       <File\r
+                               RelativePath="..\..\..\Src\TreeViewItem.h"\r
+                               >\r
+                       </File>\r
+                       <File\r
+                               RelativePath="..\..\..\Src\TSParser.h"\r
+                               >\r
+                       </File>\r
+                       <File\r
+                               RelativePath="..\..\..\Src\TomboLib\TString.h"\r
+                               >\r
+                       </File>\r
+                       <File\r
+                               RelativePath="..\..\..\Src\TomboLib\Uniconv.h"\r
+                               >\r
+                       </File>\r
+                       <File\r
+                               RelativePath="..\..\..\Src\URIScanner.h"\r
+                               >\r
+                       </File>\r
+                       <File\r
+                               RelativePath="..\..\..\Src\TomboLib\VarBuffer.h"\r
+                               >\r
+                       </File>\r
+                       <File\r
+                               RelativePath="..\..\..\Src\VFManager.h"\r
+                               >\r
+                       </File>\r
+                       <File\r
+                               RelativePath="..\..\..\Src\VFStream.h"\r
+                               >\r
+                       </File>\r
+                       <File\r
+                               RelativePath="..\..\..\Src\WM5Platform.h"\r
+                               >\r
+                       </File>\r
+                       <File\r
+                               RelativePath="..\..\..\Src\YAEdit\YAEdit.h"\r
+                               >\r
+                       </File>\r
+                       <File\r
+                               RelativePath="..\..\..\Src\YAEdit\YAEditDoc.h"\r
+                               >\r
+                       </File>\r
+                       <File\r
+                               RelativePath="..\..\..\Src\YAEditor.h"\r
+                               >\r
+                       </File>\r
+                       <File\r
+                               RelativePath="..\..\..\Src\YAEdit\YAEditView.h"\r
+                               >\r
+                       </File>\r
+               </Filter>\r
+               <Filter\r
+                       Name="\83\8a\83\\81[\83\83t\83@\83C\83\8b"\r
+                       Filter="rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav"\r
+                       UniqueIdentifier="{67DA6AB6-F800-4c08-8B7A-83BB121AAD01}"\r
+                       >\r
+                       <File\r
+                               RelativePath="..\..\..\Src\image\draftimg.bmp"\r
+                               >\r
+                       </File>\r
+                       <File\r
+                               RelativePath="..\..\..\Src\image\memoimg.bmp"\r
+                               >\r
+                       </File>\r
+                       <File\r
+                               RelativePath="..\..\..\Src\image\memoimg24.bmp"\r
+                               >\r
+                       </File>\r
+                       <File\r
+                               RelativePath="..\..\..\Src\image\Tombo.ICO"\r
+                               >\r
+                       </File>\r
+                       <File\r
+                               RelativePath="..\res\Tombo.rc"\r
+                               >\r
+                       </File>\r
+                       <File\r
+                               RelativePath="..\res\Tombo.rc2"\r
+                               >\r
+                       </File>\r
+                       <File\r
+                               RelativePath="..\..\..\Src\image\toolbar.bmp"\r
+                               >\r
+                       </File>\r
+                       <File\r
+                               RelativePath="..\..\..\Src\image\toolbarlarge.bmp"\r
+                               >\r
+                       </File>\r
+               </Filter>\r
+               <File\r
+                       RelativePath="..\..\..\expat\lib\ARMV4I\expatw.lib"\r
+                       >\r
+               </File>\r
+               <File\r
+                       RelativePath="..\..\..\oniguruma\armv4i\oniguruma.lib"\r
+                       >\r
+               </File>\r
+       </Files>\r
+       <Globals>\r
+       </Globals>\r
+</VisualStudioProject>\r
diff --git a/contrib/TomboCrypt/COMPILE b/contrib/TomboCrypt/COMPILE
new file mode 100644 (file)
index 0000000..042840f
--- /dev/null
@@ -0,0 +1 @@
+gcc -lstdc++ -DTOMBO -oTomboCrypt *.cpp *.c
\ No newline at end of file
diff --git a/contrib/TomboCrypt/Crypt.cpp b/contrib/TomboCrypt/Crypt.cpp
new file mode 100644 (file)
index 0000000..82fd165
--- /dev/null
@@ -0,0 +1,54 @@
+#include "wintypes.h"\r
+#include "Crypt.h"\r
+\r
+extern "C" {\r
+       void *BF_Init(byte *key, unsigned keylen);\r
+       void BF_Enc(void *handle, byte *chipher, byte *plain, int len);\r
+       void BF_Dec(void *handle, byte *plain, byte *chipher);\r
+       void BF_Free(void *handle);\r
+};\r
+\r
+\r
+Crypt::Crypt() : handle(NULL)\r
+{\r
+}\r
+\r
+Crypt::~Crypt()\r
+{\r
+       if (handle != NULL) {\r
+               BF_Free(handle);\r
+       }\r
+}\r
+\r
+BOOL Crypt::ResetStream(byte *key, unsigned int len)\r
+{\r
+       if (handle != NULL) {\r
+               BF_Free(handle);\r
+               handle = NULL;\r
+       }\r
+\r
+       handle = BF_Init(key, len);\r
+       if (handle == NULL) return FALSE;\r
+\r
+       return TRUE;\r
+}\r
+\r
+BOOL Crypt::Encrypt(byte *chipher, byte *plain, int len)\r
+{\r
+       if (handle == NULL) {\r
+               SetLastError(ERROR_INVALID_DATA);\r
+               return FALSE;\r
+       }\r
+       BF_Enc(handle, chipher, plain, len);\r
+       return TRUE;\r
+}\r
+\r
+BOOL Crypt::Decrypt(byte *plain, byte *chipher)\r
+{\r
+       if (handle == NULL) {\r
+               SetLastError(ERROR_INVALID_DATA);\r
+               return FALSE;\r
+       }\r
+       BF_Dec(handle, plain, chipher);\r
+       return TRUE;\r
+}\r
diff --git a/contrib/TomboCrypt/Crypt.h b/contrib/TomboCrypt/Crypt.h
new file mode 100644 (file)
index 0000000..d899669
--- /dev/null
@@ -0,0 +1,14 @@
+#ifndef CRYPT_H\r
+#define CRYPT_H\r
+\r
+class Crypt {\r
+       void *handle;\r
+public:\r
+       Crypt();\r
+       ~Crypt();\r
+\r
+       BOOL ResetStream(byte *key, unsigned int len);\r
+       BOOL Encrypt(byte *chipher, byte *plain, int len);\r
+       BOOL Decrypt(byte *plain, byte *chipher);\r
+};\r
+#endif\r
diff --git a/contrib/TomboCrypt/CryptManager.cpp b/contrib/TomboCrypt/CryptManager.cpp
new file mode 100644 (file)
index 0000000..45ccd4e
--- /dev/null
@@ -0,0 +1,304 @@
+\r
+#include <stdlib.h>\r
+#include <time.h>\r
+#include "wintypes.h"\r
+#include "CryptManager.h"\r
+#include "File.h"\r
+#include <string.h>\r
+\r
+// CryptManager\82É\82æ\82é\88Ã\8d\86\89»\83t\83@\83C\83\8b\82Ì\83t\83H\81[\83}\83b\83g\r
+// '*'\82Í\88Ã\8d\86\89»\82³\82ê\82½\83f\81[\83^\r
+// \r
+// 0-3  : BF01(4 bytes)\r
+// 4-7  : \83f\81[\83^\92·(\8aÜ\82Þ rand + md5sum)(4 bytes)\r
+// 8-15 :* random data(8 bytes)\r
+//16-31 :* \95½\95\82Ìmd5sum(16 bytes)\r
+//32-   :* data\r
+\r
+\r
+void WipeOutAndDelete(char *p, DWORD len);\r
+#ifdef _WIN32_WCE\r
+void WipeOutAndDelete(LPTSTR p, DWORD len);\r
+#endif\r
+\r
+BOOL CryptManager::Init(const char *pKey)\r
+{\r
+       //SYSTEMTIME st;\r
+       //GetSystemTime(&st);\r
+       //FILETIME ft;\r
+       //SystemTimeToFileTime(&st, &ft);\r
+       //srand(ft.dwLowDateTime);\r
+       srand((DWORD)time(NULL));\r
+\r
+       getMD5Sum(md5key, (byte*)pKey, (int) strlen(pKey));\r
+       return TRUE;\r
+}\r
+\r
+//////////////////////////////////////////////////\r
+// \83f\83X\83g\83\89\83N\83^\r
+//////////////////////////////////////////////////\r
+// \83Z\83L\83\85\83\8a\83e\83B\8fã\81A\95Û\8e\9d\82µ\82Ä\82¢\82½md5key\82ð\8fÁ\8b\8e\82·\82é\81B\r
+\r
+CryptManager::~CryptManager()\r
+{\r
+       for (DWORD i = 0; i < 16; i++) {\r
+               md5key[i] = 0;\r
+       }\r
+}\r
+\r
+//////////////////////////////////////////////////\r
+// \83f\81[\83^\82Ì\88Ã\8d\86\89»\r
+//////////////////////////////////////////////////\r
+\r
+BOOL CryptManager::Encrypt(LPBYTE pBuf, int len)\r
+{\r
+       if (len == 0) return FALSE;\r
+\r
+       if (!crypt.ResetStream(md5key, 16)) return FALSE;\r
+       BYTE buf[8];\r
+       LPBYTE p = pBuf;\r
+       int n = len;\r
+       int i;\r
+       while (n > 8) {\r
+               for (i = 0; i < 8; i++) {\r
+                       buf[i] = p[i];\r
+               }\r
+               crypt.Encrypt(p, buf, 8);\r
+               p += 8;\r
+               n -= 8;\r
+       }\r
+       if (n > 0) {\r
+               for (i = 0; i < n; i++) {\r
+                       buf[i] = p[i];\r
+               }\r
+               crypt.Encrypt(p, buf, n);\r
+       }\r
+\r
+       for (i = 0; i < 8; i++) buf[i] = 0;\r
+       return TRUE;\r
+}\r
+\r
+//////////////////////////////////////////////////\r
+// \83f\81[\83^\82Ì\95\9c\8d\86\r
+//////////////////////////////////////////////////\r
+\r
+BOOL CryptManager::Decrypt(LPBYTE pBuf, int len)\r
+{\r
+       if (len == 0) return FALSE;\r
+\r
+       if (!crypt.ResetStream(md5key, 16)) return FALSE;\r
+\r
+       BYTE buf[8];\r
+       LPBYTE p = pBuf;\r
+       int n = len;\r
+       int i;\r
+       while (n >= 8) {\r
+               for (i = 0; i < 8; i++) {\r
+                       buf[i] = p[i];\r
+               }\r
+               crypt.Decrypt(p, buf);\r
+               p += 8;\r
+               n -= 8;\r
+       }\r
+\r
+       for (i = 0; i < 8; i++) buf[i] = 0;\r
+       return TRUE;\r
+}\r
+\r
+//////////////////////////////////////////////////\r
+// \83f\81[\83^\82Ì\88Ã\8d\86\89»\82Æ\83t\83@\83C\83\8b\82Ö\82Ì\95Û\91\r
+//////////////////////////////////////////////////\r
+\r
+BOOL CryptManager::EncryptAndStore(const LPBYTE pData, int nSize, LPCTSTR pFileName)\r
+{\r
+       // \97Ì\88æ\8am\95Û\81E\88Ã\8d\86\89»\r
+\r
+       int i=0;\r
+       int len = ((nSize >> 3) + 1) * 8;\r
+       len += 24;\r
+\r
+       LPBYTE pBuf = new BYTE[len];\r
+       if (pBuf == NULL) {\r
+               FatalError(ERROR_NOT_ENOUGH_MEMORY, TEXT("CryptManager::EncryptAndStore memory allocation failed"));\r
+               return FALSE;\r
+       }\r
+\r
+       // \97\90\90\94\82Ì\96\84\82ß\8d\9e\82Ý\r
+       for (i = 0; i < 8; i++) {\r
+               pBuf[i] = (BYTE)(rand() & 0xFF);\r
+       }\r
+\r
+       // \95½\95\82ÌMD5SUM\82ð\8eæ\93¾\r
+       getMD5Sum(pBuf + 8, pData, nSize);\r
+\r
+       // \95½\95\82Ì\83R\83s\81[\r
+       LPBYTE p = pBuf + 24;\r
+       const BYTE *q = pData;\r
+       for (i = 0; i < nSize; i++) {\r
+               *p++ = *q++;\r
+       }\r
+\r
+       // \88Ã\8d\86\89»\r
+       if (!Encrypt(pBuf, nSize + 24)) {\r
+               for (i = 0; i < len; i++) pBuf[i] = 0;\r
+               WipeOutAndDelete((char*)pBuf, len);\r
+               \r
+               FatalError(0, TEXT("CryptManager::EncryptAndStore : Encrypt failed"));\r
+               return FALSE;\r
+       }\r
+\r
+       // \83t\83@\83C\83\8b\82Ö\82Ì\95Û\91\r
+       File outf;\r
+\r
+       if (!outf.Open(pFileName, true)) {\r
+               for (i = 0; i < len; i++) pBuf[i] = 0;\r
+               WipeOutAndDelete((char*)pBuf, len);\r
+\r
+               TCHAR buf[1024];\r
+               wsprintf(buf, TEXT("CryptManager::EncryptAndStore : Open File failed %s"), pFileName);\r
+               FatalError(0, buf);\r
+               return FALSE;\r
+       }\r
+       if (!outf.Write((LPBYTE)"BF01", 4) ||                           // \83o\81[\83W\83\87\83\93\83w\83b\83_\r
+               !outf.Write((const LPBYTE)&nSize, sizeof(nSize)) ||     // \95½\95\83f\81[\83^\92·\r
+               !outf.Write(pBuf, len)) {                                                       // \83f\81[\83^\r
+               TCHAR buf[1024];\r
+               wsprintf(buf, TEXT("CryptManager::EncryptAndStore write failed"));\r
+               FatalError(0, buf);\r
+       }\r
+       if (!outf.SetEOF()) return FALSE;\r
+       outf.Close();\r
+\r
+       WipeOutAndDelete((char*)pBuf, len);\r
+       return TRUE;\r
+}\r
+\r
+LPBYTE CryptManager::LoadAndDecrypt(LPDWORD pSize, LPCTSTR pFileName)\r
+{\r
+       File inf;\r
+       if (!inf.Open(pFileName, false)) {\r
+               return NULL;\r
+       }\r
+\r
+       DWORD nFileSize = inf.FileSize();\r
+       char version[5];\r
+       DWORD n;\r
+       DWORD nDataSize;\r
+\r
+       // \83o\81[\83W\83\87\83\93\83w\83b\83_\r
+       n = 4;\r
+       inf.Read((LPBYTE)version, &n);\r
+       version[4] = '\0';\r
+       if (strcmp(version, "BF01") != 0) {\r
+               SetLastError(ERROR_INVALID_DATA);\r
+               return NULL;\r
+       }\r
+\r
+       // \83f\81[\83^\92·\r
+       n = sizeof(nDataSize);\r
+       inf.Read((LPBYTE)&nDataSize, &n);\r
+\r
+       LPBYTE pBuf = new BYTE[nFileSize + 1];\r
+       n = nFileSize - 4 - sizeof(nDataSize);\r
+       inf.Read(pBuf, &n);\r
+       if (!Decrypt(pBuf, n)) {\r
+               WipeOutAndDelete((char*)pBuf, nFileSize + 1);\r
+               return NULL;\r
+       }\r
+\r
+       // \95\9c\8d\86\89»\95¶MD5SUM\82Ì\8eæ\93¾\r
+       BYTE decriptsum[16];\r
+       getMD5Sum(decriptsum, pBuf + 24, nDataSize);\r
+\r
+       // \90³\82µ\82­\95\9c\8d\86\89»\82Å\82«\82½\82©\82Ì\83`\83F\83b\83N\r
+       for (int i = 0; i < 16; i++) {\r
+               if (pBuf[8 + i] != decriptsum[i]) {\r
+                       WipeOutAndDelete((char*)pBuf, nFileSize + 1);\r
+                       FatalError(ERROR_INVALID_PASSWORD, "Invalid Password");\r
+                       return NULL;\r
+               }\r
+       }\r
+       pBuf[nDataSize + 24] = '\0';\r
+       *pSize = nDataSize;\r
+\r
+       // \97Ì\88æ\8dÄ\8am\95Û\r
+       // \97\90\90\94\83f\81[\83^\82ÆMD5SUM\82ð\82Ü\82Æ\82ß\82Ä\95\9c\8d\86\89»\82·\82é\82½\82ß\82É1\82Â\82Ì\83o\83b\83t\83@\82Å\8am\95Û\82µ\82½\82ª\81A\r
+       // delete\82ð\90³\82µ\82­\8ds\82¦\82é\82æ\82¤\82É\97Ì\88æ\82ð\8dÄ\8am\95Û\81A\83R\83s\81[\82µ\82Ä\95Ô\82·\r
+       LPBYTE pData = new BYTE[nDataSize + 1];\r
+       if (pData == NULL) {\r
+               WipeOutAndDelete((char*)pBuf, nFileSize + 1);\r
+               SetLastError(ERROR_NOT_ENOUGH_MEMORY);\r
+               return NULL;\r
+       }\r
+       memcpy(pData, pBuf + 24, nDataSize);\r
+       pData[nDataSize] = '\0';\r
+       WipeOutAndDelete((char*)pBuf, nFileSize + 1);\r
+       return pData;\r
+}\r
+\r
+LPBYTE CryptManager::LoadStdIn(LPDWORD pSize)\r
+{\r
+       size_t size = 0;\r
+       size_t blocksize = 32768;\r
+\r
+       LPBYTE data = new BYTE[blocksize];\r
+       LPBYTE buf = data;\r
+\r
+       // read until end of stdin\r
+       while(!feof(stdin))\r
+       {\r
+               // read the block\r
+               size_t readsize = fread(buf, 1, blocksize, stdin);\r
+               // adjust size\r
+               size +=readsize;\r
+               // check, if eof, and exit\r
+               if(readsize != blocksize)\r
+                       break;\r
+               // we need bigger block \r
+               LPBYTE newdata = new BYTE[size+blocksize];\r
+               memcpy(newdata, data, size);\r
+               memset(data, 0xcb, size);\r
+               delete[] data;\r
+               data = newdata;\r
+               buf = data+size;\r
+       }\r
+       *pSize = (DWORD) size;\r
+       return data;\r
+}\r
+\r
+\r
+void WipeOutAndDelete(LPTSTR p, DWORD len)\r
+{\r
+       for (DWORD i = 0; i < len; i++) p[i] = TEXT('\0');\r
+}\r
+\r
+\r
+void WipeOutAndDelete(LPTSTR p)\r
+{\r
+       if (p == NULL) return;\r
+\r
+       LPTSTR q = p;\r
+       while (*q) {\r
+               *q++ = TEXT('\0');\r
+       }\r
+       delete [] p;\r
+}\r
+\r
+#ifdef _WIN32_WCE\r
+void WipeOutAndDelete(char *p, DWORD len)\r
+{\r
+       for (DWORD i = 0; i < len; i++) p[i] = TEXT('\0');\r
+}\r
+\r
+void WipeOutAndDelete(char *p)\r
+{\r
+       if (p == NULL) return;\r
+\r
+       char *q = p;\r
+       while (*q) {\r
+               *q++ = TEXT('\0');\r
+       }\r
+       delete [] p;\r
+}\r
+#endif\r
+\r
diff --git a/contrib/TomboCrypt/CryptManager.h b/contrib/TomboCrypt/CryptManager.h
new file mode 100644 (file)
index 0000000..db816ae
--- /dev/null
@@ -0,0 +1,42 @@
+#ifndef CRYPTMANAGER_H\r
+#define CRYPTMANAGER_H\r
+\r
+#include "Crypt.h"\r
+\r
+class CryptManager {\r
+       Crypt crypt;\r
+       BYTE md5key[16];\r
+\r
+public:\r
+       ~CryptManager();\r
+\r
+       // \83p\83X\83\8f\81[\83h\82ð\8ew\92è\82·\82é\81B\r
+       BOOL Init(const char *pKey);\r
+\r
+       // pBuf\82É\95½\95\82ð\90Ý\92è\82µ\82Ä\8cÄ\82Ô\82±\82Æ\82ÅpBuf\82É\88Ã\8d\86\95\82ð\95Ô\82·\81B\r
+       BOOL Encrypt(LPBYTE pBuf, int len);\r
+\r
+       // pBuf\82É\88Ã\8d\86\95\82ð\90Ý\92è\82µ\82Ä\8cÄ\82Ô\82±\82Æ\82ÅpBuf\82É\95½\95\82ð\95Ô\82·\81B\r
+       // len\82Í8\82Ì\94{\90\94\82Å\82È\82¯\82ê\82Î\82È\82ç\82È\82¢\81B\r
+       BOOL Decrypt(LPBYTE pBuf, int len);\r
+\r
+       // \83e\83L\83X\83g\82ð\8eó\82¯\8eæ\82è\81A\88Ã\8d\86\89»\82µ\82Ä\83t\83@\83C\83\8b\82É\95Û\91\82·\82é\r
+       BOOL EncryptAndStore(const LPBYTE pData, int nSize, LPCTSTR pFileName);\r
+\r
+       // \88Ã\8d\86\89»\82³\82ê\82½\83t\83@\83C\83\8b\82ð\95\9c\8d\86\89»\82·\82é\81B*pSize\82É\82Í\96{\93\96\82Ì\83o\83C\83g\90\94\82ª\93ü\82é\81B\r
+       // \82Ü\82½\81A\96ß\82è\92l\82Ì\83f\81[\83^\97ñ\82Ì\8dÅ\8cã\82É\82ÍNULL\82ª\95t\89Á\82³\82ê\82Ä\82¢\82é\81B\r
+       // \96ß\82è\92l\82Ì\83o\83b\83t\83@\82Ínew\82³\82ê\82Ä\82¢\82é\82½\82ß\81A\82¢\82ç\82È\82­\82È\82Á\82½\92i\8aK\82Å\8cÄ\82Ñ\8fo\82µ\8c³\82ªdelete[]\82·\82é\95K\97v\82ª\82 \82é\81B\r
+       LPBYTE LoadAndDecrypt(LPDWORD pSize, LPCTSTR pFileName);\r
+\r
+       // read byte stream from std input\r
+       LPBYTE LoadStdIn(LPDWORD pSize);\r
+\r
+//     BOOL EncryptFile(LPCTSTR pSrc, LPCTSTR pDst);\r
+//     BOOL DecryptFile(LPCTSTR pSrc, LPCTSTR pDst);\r
+};\r
+\r
+extern "C" {\r
+       void getMD5Sum(byte *md5sum, byte *in, int len);\r
+};\r
+#endif\r
+\r
diff --git a/contrib/TomboCrypt/File.cpp b/contrib/TomboCrypt/File.cpp
new file mode 100644 (file)
index 0000000..b9c0f80
--- /dev/null
@@ -0,0 +1,90 @@
+#include "wintypes.h"\r
+#include "File.h"\r
+\r
+//////////////////////////////////////////////////////////////////////\r
+// dtor\r
+//////////////////////////////////////////////////////////////////////\r
+\r
+File::~File()\r
+{\r
+       Close();\r
+}\r
+\r
+//////////////////////////////////////////////////////////////////////\r
+// \83t\83@\83C\83\8b\83I\81[\83v\83\93\r
+//////////////////////////////////////////////////////////////////////\r
+\r
+BOOL File::Open(LPCTSTR pFileName, bool bWrite)\r
+{\r
+       hFile = fopen(pFileName, (bWrite ? "wb+" : "rb"));\r
+\r
+       if (hFile == NULL) return FALSE;\r
+\r
+       if (fseek(hFile, 0, SEEK_END) != 0) {\r
+               Close();\r
+               return FALSE;\r
+       }\r
+       nSize = ftell(hFile);\r
+\r
+       if (fseek(hFile, 0, SEEK_SET) != 0) {\r
+               Close();\r
+               return FALSE;\r
+       }\r
+       return TRUE;\r
+}\r
+\r
+//////////////////////////////////////////////////////////////////////\r
+// \83t\83@\83C\83\8b\83N\83\8d\81[\83Y\r
+//////////////////////////////////////////////////////////////////////\r
+\r
+void File::Close()\r
+{\r
+       if (hFile != NULL) {\r
+               fclose(hFile);\r
+               hFile = NULL;\r
+       }\r
+}\r
+\r
+//////////////////////////////////////////////////////////////////////\r
+// \83t\83@\83C\83\8b\83|\83C\83\93\83^\82Ì\83V\81[\83N\r
+//////////////////////////////////////////////////////////////////////\r
+\r
+\r
+//////////////////////////////////////////////////////////////////////\r
+// \8c»\8dÝ\82Ì\83t\83@\83C\83\8b\83|\83C\83\93\83^\82Ì\8eæ\93¾\r
+//////////////////////////////////////////////////////////////////////\r
+\r
+//////////////////////////////////////////////////////////////////////\r
+// \83t\83@\83C\83\8b\93Ç\82Ý\8d\9e\82Ý\r
+//////////////////////////////////////////////////////////////////////\r
+\r
+BOOL File::Read(LPBYTE pBuf, LPDWORD pSize)\r
+{\r
+       DWORD n = *pSize;\r
+       *pSize = (DWORD)fread(pBuf, 1, n, hFile);\r
+       if (n != *pSize) return FALSE;\r
+       return TRUE;\r
+}\r
+\r
+//////////////////////////////////////////////////////////////////////\r
+// \83t\83@\83C\83\8b\8f\91\82«\8d\9e\82Ý\r
+//////////////////////////////////////////////////////////////////////\r
+\r
+BOOL File::Write(const LPBYTE pBuf, DWORD nSize)\r
+{\r
+       DWORD n = nSize;\r
+       nSize = (DWORD)fwrite(pBuf, 1, n, hFile);\r
+       if (n != nSize) return FALSE;\r
+       return TRUE;\r
+}\r
+\r
+\r
+//////////////////////////////////////////////////////////////////////\r
+// Set EOF\r
+//////////////////////////////////////////////////////////////////////\r
+\r
+BOOL File::SetEOF()\r
+{\r
+       //return SetEndOfFile(hFile);\r
+       return TRUE;\r
+}\r
diff --git a/contrib/TomboCrypt/File.h b/contrib/TomboCrypt/File.h
new file mode 100644 (file)
index 0000000..fa3a157
--- /dev/null
@@ -0,0 +1,41 @@
+#ifndef FF_FILE_H\r
+#define FF_FILE_H\r
+\r
+#include <stdio.h>\r
+\r
+// WIN32 API\82Å\82Í64bit\82Ì\83t\83@\83C\83\8b\83T\83C\83Y\82ð\83T\83|\81[\83g\82µ\82Ä\82¢\82é\82ª\81A\r
+// \92Ê\8fí\82Ì\83A\83v\83\8a\83P\81[\83V\83\87\83\93\82Å\82Í32bit\82Å\8f\\95ª\82È\82Ì\82Å\83v\83\8d\83O\83\89\83\80\82Ì\8aÈ\97ª\89»\82Ì\82½\82ß\81A\r
+// \93à\95\94\82Å\82Í32bit\82Å\8f\88\97\9d\82·\82é\81B\r
+\r
+class File {\r
+protected:\r
+       FILE* hFile;\r
+       DWORD nSize;\r
+public:\r
+\r
+       // \83R\83\93\83X\83g\83\89\83N\83^&\83f\83X\83g\83\89\83N\83^\r
+       File() : hFile(NULL) {}\r
+       ~File();\r
+\r
+       //BOOL Open(LPCTSTR pFileName, DWORD nMode, DWORD nShareMode, DWORD nOpenMode);\r
+       BOOL Open(LPCTSTR pFileName, bool bWrite);\r
+\r
+       void Close();\r
+\r
+       // \83t\83@\83C\83\8b\83T\83C\83Y\82Ì\8eæ\93¾\r
+       DWORD FileSize() { return nSize; }\r
+\r
+       // \83t\83@\83C\83\8b\83|\83C\83\93\83^\82Ì\83V\81[\83N\r
+       //BOOL Seek(DWORD nPos);\r
+       // \8c»\8dÝ\82Ì\83t\83@\83C\83\8b\83|\83C\83\93\83^\82Ì\8eæ\93¾\r
+       //DWORD CurrentPos();\r
+\r
+       BOOL Read(LPBYTE pBuf, LPDWORD pSize);\r
+       BOOL Write(const LPBYTE pBuf, DWORD nSize);\r
+\r
+       //BOOL WriteUnicodeString(LPCWSTR p);\r
+\r
+       BOOL SetEOF();\r
+};\r
+\r
+#endif\r
diff --git a/contrib/TomboCrypt/Readme.txt b/contrib/TomboCrypt/Readme.txt
new file mode 100644 (file)
index 0000000..ddb4c5e
--- /dev/null
@@ -0,0 +1,8 @@
+TomboCrypt\r
+\r
+TomboCrypt is a simple command line utility, written by Michael Efimov.\r
+\r
+TomboCrypt can encrypt text from stdin into the file, or decrypt file into stdout. \r
+It works on Win32 and Linux.\r
+\r
+Add only Readme.txt by hirami, but this is Michael's work! \r
diff --git a/contrib/TomboCrypt/TomboCrypt.cpp b/contrib/TomboCrypt/TomboCrypt.cpp
new file mode 100644 (file)
index 0000000..9212a99
--- /dev/null
@@ -0,0 +1,55 @@
+// TomboEncoder.cpp : Defines the entry point for the console application.\r
+//\r
+\r
+#include "wintypes.h"\r
+#include <stdlib.h>\r
+#include <string.h>\r
+#include <string>\r
+#include "CryptManager.h"\r
+#include <iostream>\r
+\r
+void usage()\r
+{\r
+       fputs("TomboCrypt encrypts and decrypts files, created by Tombo\n", stderr);\r
+       fputs("     (http://tombo.sourceforge.jp/En/)\n", stderr);\r
+       fputs("Usage: TomboCrypt enc|dec <file> <password>", stderr);\r
+}\r
+\r
+int main(int argc, char* argv[])\r
+{\r
+       if(argc != 4)\r
+       {\r
+               usage();\r
+               return 0;\r
+       }\r
+\r
+       CryptManager cm;\r
+       cm.Init(argv[3]);\r
+\r
+       if(strcmp(argv[1], "enc") == 0)\r
+       {\r
+               // read data from stdin\r
+               LPBYTE data = 0;\r
+               DWORD size;\r
+               data = cm.LoadStdIn(&size);\r
+\r
+               // encode\r
+               cm.EncryptAndStore(data, size, argv[2]);\r
+       }\r
+       else\r
+       if(strcmp(argv[1], "dec") == 0)\r
+       {\r
+               // decode\r
+               LPBYTE data = 0;\r
+               DWORD size;\r
+               data = cm.LoadAndDecrypt(&size, argv[2]);\r
+               // write data to stdout\r
+               fwrite(data, size, 1, stdout);\r
+       }\r
+       else\r
+       {\r
+               usage();\r
+       }\r
+\r
+       return 0;\r
+}\r
diff --git a/contrib/TomboCrypt/TomboCrypt.sln b/contrib/TomboCrypt/TomboCrypt.sln
new file mode 100644 (file)
index 0000000..a6b9953
--- /dev/null
@@ -0,0 +1,21 @@
+Microsoft Visual Studio Solution File, Format Version 7.00\r
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "TomboCrypt", "TomboCrypt.vcproj", "{DA297F71-F981-4B09-B0F1-D50D14152F63}"\r
+EndProject\r
+Global\r
+       GlobalSection(SolutionConfiguration) = preSolution\r
+               ConfigName.0 = Debug\r
+               ConfigName.1 = Release\r
+       EndGlobalSection\r
+       GlobalSection(ProjectDependencies) = postSolution\r
+       EndGlobalSection\r
+       GlobalSection(ProjectConfiguration) = postSolution\r
+               {DA297F71-F981-4B09-B0F1-D50D14152F63}.Debug.ActiveCfg = Debug|Win32\r
+               {DA297F71-F981-4B09-B0F1-D50D14152F63}.Debug.Build.0 = Debug|Win32\r
+               {DA297F71-F981-4B09-B0F1-D50D14152F63}.Release.ActiveCfg = Release|Win32\r
+               {DA297F71-F981-4B09-B0F1-D50D14152F63}.Release.Build.0 = Release|Win32\r
+       EndGlobalSection\r
+       GlobalSection(ExtensibilityGlobals) = postSolution\r
+       EndGlobalSection\r
+       GlobalSection(ExtensibilityAddIns) = postSolution\r
+       EndGlobalSection\r
+EndGlobal\r
diff --git a/contrib/TomboCrypt/TomboCrypt.vcproj b/contrib/TomboCrypt/TomboCrypt.vcproj
new file mode 100644 (file)
index 0000000..bdb3763
--- /dev/null
@@ -0,0 +1,153 @@
+<?xml version="1.0" encoding = "windows-1251"?>\r
+<VisualStudioProject\r
+       ProjectType="Visual C++"\r
+       Version="7.00"\r
+       Name="TomboCrypt"\r
+       ProjectGUID="{DA297F71-F981-4B09-B0F1-D50D14152F63}"\r
+       Keyword="Win32Proj">\r
+       <Platforms>\r
+               <Platform\r
+                       Name="Win32"/>\r
+       </Platforms>\r
+       <Configurations>\r
+               <Configuration\r
+                       Name="Debug|Win32"\r
+                       OutputDirectory="Debug"\r
+                       IntermediateDirectory="Debug"\r
+                       ConfigurationType="1"\r
+                       CharacterSet="2">\r
+                       <Tool\r
+                               Name="VCCLCompilerTool"\r
+                               Optimization="0"\r
+                               PreprocessorDefinitions="WIN32;_DEBUG;_CONSOLE;TOMBO"\r
+                               MinimalRebuild="TRUE"\r
+                               BasicRuntimeChecks="3"\r
+                               RuntimeLibrary="5"\r
+                               UsePrecompiledHeader="0"\r
+                               WarningLevel="3"\r
+                               Detect64BitPortabilityProblems="TRUE"\r
+                               DebugInformationFormat="4"/>\r
+                       <Tool\r
+                               Name="VCCustomBuildTool"/>\r
+                       <Tool\r
+                               Name="VCLinkerTool"\r
+                               OutputFile="$(OutDir)/TomboCrypt.exe"\r
+                               LinkIncremental="2"\r
+                               GenerateDebugInformation="TRUE"\r
+                               ProgramDatabaseFile="$(OutDir)/TomboCrypt.pdb"\r
+                               SubSystem="1"\r
+                               TargetMachine="1"/>\r
+                       <Tool\r
+                               Name="VCMIDLTool"/>\r
+                       <Tool\r
+                               Name="VCPostBuildEventTool"/>\r
+                       <Tool\r
+                               Name="VCPreBuildEventTool"/>\r
+                       <Tool\r
+                               Name="VCPreLinkEventTool"/>\r
+                       <Tool\r
+                               Name="VCResourceCompilerTool"/>\r
+                       <Tool\r
+                               Name="VCWebServiceProxyGeneratorTool"/>\r
+                       <Tool\r
+                               Name="VCWebDeploymentTool"/>\r
+               </Configuration>\r
+               <Configuration\r
+                       Name="Release|Win32"\r
+                       OutputDirectory="Release"\r
+                       IntermediateDirectory="Release"\r
+                       ConfigurationType="1"\r
+                       CharacterSet="2">\r
+                       <Tool\r
+                               Name="VCCLCompilerTool"\r
+                               Optimization="2"\r
+                               InlineFunctionExpansion="1"\r
+                               OmitFramePointers="TRUE"\r
+                               PreprocessorDefinitions="WIN32;NDEBUG;_CONSOLE;TOMBO"\r
+                               StringPooling="TRUE"\r
+                               RuntimeLibrary="4"\r
+                               EnableFunctionLevelLinking="TRUE"\r
+                               UsePrecompiledHeader="0"\r
+                               WarningLevel="3"\r
+                               Detect64BitPortabilityProblems="TRUE"\r
+                               DebugInformationFormat="3"/>\r
+                       <Tool\r
+                               Name="VCCustomBuildTool"/>\r
+                       <Tool\r
+                               Name="VCLinkerTool"\r
+                               OutputFile="$(OutDir)/TomboCrypt.exe"\r
+                               LinkIncremental="1"\r
+                               GenerateDebugInformation="TRUE"\r
+                               SubSystem="1"\r
+                               OptimizeReferences="2"\r
+                               EnableCOMDATFolding="2"\r
+                               TargetMachine="1"/>\r
+                       <Tool\r
+                               Name="VCMIDLTool"/>\r
+                       <Tool\r
+                               Name="VCPostBuildEventTool"/>\r
+                       <Tool\r
+                               Name="VCPreBuildEventTool"/>\r
+                       <Tool\r
+                               Name="VCPreLinkEventTool"/>\r
+                       <Tool\r
+                               Name="VCResourceCompilerTool"/>\r
+                       <Tool\r
+                               Name="VCWebServiceProxyGeneratorTool"/>\r
+                       <Tool\r
+                               Name="VCWebDeploymentTool"/>\r
+               </Configuration>\r
+       </Configurations>\r
+       <Files>\r
+               <Filter\r
+                       Name="Source Files"\r
+                       Filter="cpp;c;cxx;def;odl;idl;hpj;bat;asm">\r
+                       <File\r
+                               RelativePath="Crypt.cpp">\r
+                       </File>\r
+                       <File\r
+                               RelativePath="CryptManager.cpp">\r
+                       </File>\r
+                       <File\r
+                               RelativePath="File.cpp">\r
+                       </File>\r
+                       <File\r
+                               RelativePath="TomboCrypt.cpp">\r
+                       </File>\r
+                       <File\r
+                               RelativePath="blowfish.c">\r
+                       </File>\r
+                       <File\r
+                               RelativePath="md5.c">\r
+                       </File>\r
+                       <File\r
+                               RelativePath="wintypes.h">\r
+                       </File>\r
+               </Filter>\r
+               <Filter\r
+                       Name="Header Files"\r
+                       Filter="h;hpp;hxx;hm;inl;inc">\r
+                       <File\r
+                               RelativePath="Crypt.h">\r
+                       </File>\r
+                       <File\r
+                               RelativePath="CryptManager.h">\r
+                       </File>\r
+                       <File\r
+                               RelativePath="File.h">\r
+                       </File>\r
+                       <File\r
+                               RelativePath="bithelp.h">\r
+                       </File>\r
+               </Filter>\r
+               <Filter\r
+                       Name="Resource Files"\r
+                       Filter="rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe">\r
+               </Filter>\r
+               <File\r
+                       RelativePath="ReadMe.txt">\r
+               </File>\r
+       </Files>\r
+       <Globals>\r
+       </Globals>\r
+</VisualStudioProject>\r
diff --git a/contrib/TomboCrypt/bithelp.h b/contrib/TomboCrypt/bithelp.h
new file mode 100644 (file)
index 0000000..98f474c
--- /dev/null
@@ -0,0 +1,41 @@
+/* bithelp.h  -  Some bit manipulation helpers\r
+ *     Copyright (C) 1999 Free Software Foundation, Inc.\r
+ *\r
+ * This file is part of GnuPG.\r
+ *\r
+ * GnuPG is free software; you can redistribute it and/or modify\r
+ * it under the terms of the GNU General Public License as published by\r
+ * the Free Software Foundation; either version 2 of the License, or\r
+ * (at your option) any later version.\r
+ *\r
+ * GnuPG is distributed in the hope that it will be useful,\r
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of\r
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\r
+ * GNU General Public License for more details.\r
+ *\r
+ * You should have received a copy of the GNU General Public License\r
+ * along with this program; if not, write to the Free Software\r
+ * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA\r
+ */\r
+#ifndef G10_BITHELP_H\r
+#define G10_BITHELP_H\r
+\r
+\r
+/****************\r
+ * Rotate a 32 bit integer by n bytes\r
+ */\r
+#if defined(__GNUC__) && defined(__i386__)\r
+static inline u32\r
+rol( u32 x, int n)\r
+{\r
+       __asm__("roll %%cl,%0"\r
+               :"=r" (x)\r
+               :"0" (x),"c" (n));\r
+       return x;\r
+}\r
+#else\r
+  #define rol(x,n) ( ((x) << (n)) | ((x) >> (32-(n))) )\r
+#endif\r
+\r
+\r
+#endif /*G10_BITHELP_H*/\r
diff --git a/contrib/TomboCrypt/blowfish.c b/contrib/TomboCrypt/blowfish.c
new file mode 100644 (file)
index 0000000..879d4d4
--- /dev/null
@@ -0,0 +1,731 @@
+/* blowfish.c  -  Blowfish encryption\r
+ *     Copyright (C) 1998 Free Software Foundation, Inc.\r
+ *\r
+ * For a description of the algorithm, see:\r
+ *   Bruce Schneier: Applied Cryptography. John Wiley & Sons, 1996.\r
+ *   ISBN 0-471-11709-9. Pages 336 ff.\r
+ *\r
+ * This file is part of GnuPG.\r
+ *\r
+ * GnuPG is free software; you can redistribute it and/or modify\r
+ * it under the terms of the GNU General Public License as published by\r
+ * the Free Software Foundation; either version 2 of the License, or\r
+ * (at your option) any later version.\r
+ *\r
+ * GnuPG is distributed in the hope that it will be useful,\r
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of\r
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\r
+ * GNU General Public License for more details.\r
+ *\r
+ * You should have received a copy of the GNU General Public License\r
+ * along with this program; if not, write to the Free Software\r
+ * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA\r
+ */\r
+\r
+/* Test values:\r
+ * key   "abcdefghijklmnopqrstuvwxyz";\r
+ * plain  "BLOWFISH"\r
+ * cipher 32 4E D0 FE F4 13 A2 03\r
+ *\r
+ */\r
+\r
+#ifndef TOMBO\r
+#include <config.h>\r
+#include <stdio.h>\r
+#include <stdlib.h>\r
+#include <string.h>\r
+#include <assert.h>\r
+#include "types.h"\r
+#include "errors.h"\r
+#include "blowfish.h"\r
+#include "dynload.h"\r
+#endif\r
+\r
+#ifdef TOMBO\r
+#include "wintypes.h"\r
+#include <string.h>\r
+#define u32 DWORD\r
+#define G10ERR_WEAK_KEY       43 /* NOTE: hardcoded into the cipher modules */\r
+#define G10ERR_SELFTEST_FAILED 50\r
+\r
+#endif\r
+\r
+\r
+#define CIPHER_ALGO_BLOWFISH    4  /* blowfish 128 bit key */\r
+\r
+#define BLOWFISH_BLOCKSIZE 8\r
+#define BLOWFISH_ROUNDS 16\r
+\r
+typedef struct {\r
+    u32 s0[256];\r
+    u32 s1[256];\r
+    u32 s2[256];\r
+    u32 s3[256];\r
+    u32 p[BLOWFISH_ROUNDS+2];\r
+} BLOWFISH_context;\r
+\r
+static int  bf_setkey( BLOWFISH_context *c, byte *key, unsigned keylen );\r
+static void encrypt_block( BLOWFISH_context *bc, byte *outbuf, byte *inbuf );\r
+static void decrypt_block( BLOWFISH_context *bc, byte *outbuf, byte *inbuf );\r
+\r
+\r
+/* precomputed S boxes */\r
+static const u32 ks0[256] = {\r
+    0xD1310BA6,0x98DFB5AC,0x2FFD72DB,0xD01ADFB7,0xB8E1AFED,0x6A267E96,\r
+    0xBA7C9045,0xF12C7F99,0x24A19947,0xB3916CF7,0x0801F2E2,0x858EFC16,\r
+    0x636920D8,0x71574E69,0xA458FEA3,0xF4933D7E,0x0D95748F,0x728EB658,\r
+    0x718BCD58,0x82154AEE,0x7B54A41D,0xC25A59B5,0x9C30D539,0x2AF26013,\r
+    0xC5D1B023,0x286085F0,0xCA417918,0xB8DB38EF,0x8E79DCB0,0x603A180E,\r
+    0x6C9E0E8B,0xB01E8A3E,0xD71577C1,0xBD314B27,0x78AF2FDA,0x55605C60,\r
+    0xE65525F3,0xAA55AB94,0x57489862,0x63E81440,0x55CA396A,0x2AAB10B6,\r
+    0xB4CC5C34,0x1141E8CE,0xA15486AF,0x7C72E993,0xB3EE1411,0x636FBC2A,\r
+    0x2BA9C55D,0x741831F6,0xCE5C3E16,0x9B87931E,0xAFD6BA33,0x6C24CF5C,\r
+    0x7A325381,0x28958677,0x3B8F4898,0x6B4BB9AF,0xC4BFE81B,0x66282193,\r
+    0x61D809CC,0xFB21A991,0x487CAC60,0x5DEC8032,0xEF845D5D,0xE98575B1,\r
+    0xDC262302,0xEB651B88,0x23893E81,0xD396ACC5,0x0F6D6FF3,0x83F44239,\r
+    0x2E0B4482,0xA4842004,0x69C8F04A,0x9E1F9B5E,0x21C66842,0xF6E96C9A,\r
+    0x670C9C61,0xABD388F0,0x6A51A0D2,0xD8542F68,0x960FA728,0xAB5133A3,\r
+    0x6EEF0B6C,0x137A3BE4,0xBA3BF050,0x7EFB2A98,0xA1F1651D,0x39AF0176,\r
+    0x66CA593E,0x82430E88,0x8CEE8619,0x456F9FB4,0x7D84A5C3,0x3B8B5EBE,\r
+    0xE06F75D8,0x85C12073,0x401A449F,0x56C16AA6,0x4ED3AA62,0x363F7706,\r
+    0x1BFEDF72,0x429B023D,0x37D0D724,0xD00A1248,0xDB0FEAD3,0x49F1C09B,\r
+    0x075372C9,0x80991B7B,0x25D479D8,0xF6E8DEF7,0xE3FE501A,0xB6794C3B,\r
+    0x976CE0BD,0x04C006BA,0xC1A94FB6,0x409F60C4,0x5E5C9EC2,0x196A2463,\r
+    0x68FB6FAF,0x3E6C53B5,0x1339B2EB,0x3B52EC6F,0x6DFC511F,0x9B30952C,\r
+    0xCC814544,0xAF5EBD09,0xBEE3D004,0xDE334AFD,0x660F2807,0x192E4BB3,\r
+    0xC0CBA857,0x45C8740F,0xD20B5F39,0xB9D3FBDB,0x5579C0BD,0x1A60320A,\r
+    0xD6A100C6,0x402C7279,0x679F25FE,0xFB1FA3CC,0x8EA5E9F8,0xDB3222F8,\r
+    0x3C7516DF,0xFD616B15,0x2F501EC8,0xAD0552AB,0x323DB5FA,0xFD238760,\r
+    0x53317B48,0x3E00DF82,0x9E5C57BB,0xCA6F8CA0,0x1A87562E,0xDF1769DB,\r
+    0xD542A8F6,0x287EFFC3,0xAC6732C6,0x8C4F5573,0x695B27B0,0xBBCA58C8,\r
+    0xE1FFA35D,0xB8F011A0,0x10FA3D98,0xFD2183B8,0x4AFCB56C,0x2DD1D35B,\r
+    0x9A53E479,0xB6F84565,0xD28E49BC,0x4BFB9790,0xE1DDF2DA,0xA4CB7E33,\r
+    0x62FB1341,0xCEE4C6E8,0xEF20CADA,0x36774C01,0xD07E9EFE,0x2BF11FB4,\r
+    0x95DBDA4D,0xAE909198,0xEAAD8E71,0x6B93D5A0,0xD08ED1D0,0xAFC725E0,\r
+    0x8E3C5B2F,0x8E7594B7,0x8FF6E2FB,0xF2122B64,0x8888B812,0x900DF01C,\r
+    0x4FAD5EA0,0x688FC31C,0xD1CFF191,0xB3A8C1AD,0x2F2F2218,0xBE0E1777,\r
+    0xEA752DFE,0x8B021FA1,0xE5A0CC0F,0xB56F74E8,0x18ACF3D6,0xCE89E299,\r
+    0xB4A84FE0,0xFD13E0B7,0x7CC43B81,0xD2ADA8D9,0x165FA266,0x80957705,\r
+    0x93CC7314,0x211A1477,0xE6AD2065,0x77B5FA86,0xC75442F5,0xFB9D35CF,\r
+    0xEBCDAF0C,0x7B3E89A0,0xD6411BD3,0xAE1E7E49,0x00250E2D,0x2071B35E,\r
+    0x226800BB,0x57B8E0AF,0x2464369B,0xF009B91E,0x5563911D,0x59DFA6AA,\r
+    0x78C14389,0xD95A537F,0x207D5BA2,0x02E5B9C5,0x83260376,0x6295CFA9,\r
+    0x11C81968,0x4E734A41,0xB3472DCA,0x7B14A94A,0x1B510052,0x9A532915,\r
+    0xD60F573F,0xBC9BC6E4,0x2B60A476,0x81E67400,0x08BA6FB5,0x571BE91F,\r
+    0xF296EC6B,0x2A0DD915,0xB6636521,0xE7B9F9B6,0xFF34052E,0xC5855664,\r
+    0x53B02D5D,0xA99F8FA1,0x08BA4799,0x6E85076A };\r
+\r
+static const u32 ks1[256] = {\r
+    0x4B7A70E9,0xB5B32944,0xDB75092E,0xC4192623,0xAD6EA6B0,0x49A7DF7D,\r
+    0x9CEE60B8,0x8FEDB266,0xECAA8C71,0x699A17FF,0x5664526C,0xC2B19EE1,\r
+    0x193602A5,0x75094C29,0xA0591340,0xE4183A3E,0x3F54989A,0x5B429D65,\r
+    0x6B8FE4D6,0x99F73FD6,0xA1D29C07,0xEFE830F5,0x4D2D38E6,0xF0255DC1,\r
+    0x4CDD2086,0x8470EB26,0x6382E9C6,0x021ECC5E,0x09686B3F,0x3EBAEFC9,\r
+    0x3C971814,0x6B6A70A1,0x687F3584,0x52A0E286,0xB79C5305,0xAA500737,\r
+    0x3E07841C,0x7FDEAE5C,0x8E7D44EC,0x5716F2B8,0xB03ADA37,0xF0500C0D,\r
+    0xF01C1F04,0x0200B3FF,0xAE0CF51A,0x3CB574B2,0x25837A58,0xDC0921BD,\r
+    0xD19113F9,0x7CA92FF6,0x94324773,0x22F54701,0x3AE5E581,0x37C2DADC,\r
+    0xC8B57634,0x9AF3DDA7,0xA9446146,0x0FD0030E,0xECC8C73E,0xA4751E41,\r
+    0xE238CD99,0x3BEA0E2F,0x3280BBA1,0x183EB331,0x4E548B38,0x4F6DB908,\r
+    0x6F420D03,0xF60A04BF,0x2CB81290,0x24977C79,0x5679B072,0xBCAF89AF,\r
+    0xDE9A771F,0xD9930810,0xB38BAE12,0xDCCF3F2E,0x5512721F,0x2E6B7124,\r
+    0x501ADDE6,0x9F84CD87,0x7A584718,0x7408DA17,0xBC9F9ABC,0xE94B7D8C,\r
+    0xEC7AEC3A,0xDB851DFA,0x63094366,0xC464C3D2,0xEF1C1847,0x3215D908,\r
+    0xDD433B37,0x24C2BA16,0x12A14D43,0x2A65C451,0x50940002,0x133AE4DD,\r
+    0x71DFF89E,0x10314E55,0x81AC77D6,0x5F11199B,0x043556F1,0xD7A3C76B,\r
+    0x3C11183B,0x5924A509,0xF28FE6ED,0x97F1FBFA,0x9EBABF2C,0x1E153C6E,\r
+    0x86E34570,0xEAE96FB1,0x860E5E0A,0x5A3E2AB3,0x771FE71C,0x4E3D06FA,\r
+    0x2965DCB9,0x99E71D0F,0x803E89D6,0x5266C825,0x2E4CC978,0x9C10B36A,\r
+    0xC6150EBA,0x94E2EA78,0xA5FC3C53,0x1E0A2DF4,0xF2F74EA7,0x361D2B3D,\r
+    0x1939260F,0x19C27960,0x5223A708,0xF71312B6,0xEBADFE6E,0xEAC31F66,\r
+    0xE3BC4595,0xA67BC883,0xB17F37D1,0x018CFF28,0xC332DDEF,0xBE6C5AA5,\r
+    0x65582185,0x68AB9802,0xEECEA50F,0xDB2F953B,0x2AEF7DAD,0x5B6E2F84,\r
+    0x1521B628,0x29076170,0xECDD4775,0x619F1510,0x13CCA830,0xEB61BD96,\r
+    0x0334FE1E,0xAA0363CF,0xB5735C90,0x4C70A239,0xD59E9E0B,0xCBAADE14,\r
+    0xEECC86BC,0x60622CA7,0x9CAB5CAB,0xB2F3846E,0x648B1EAF,0x19BDF0CA,\r
+    0xA02369B9,0x655ABB50,0x40685A32,0x3C2AB4B3,0x319EE9D5,0xC021B8F7,\r
+    0x9B540B19,0x875FA099,0x95F7997E,0x623D7DA8,0xF837889A,0x97E32D77,\r
+    0x11ED935F,0x16681281,0x0E358829,0xC7E61FD6,0x96DEDFA1,0x7858BA99,\r
+    0x57F584A5,0x1B227263,0x9B83C3FF,0x1AC24696,0xCDB30AEB,0x532E3054,\r
+    0x8FD948E4,0x6DBC3128,0x58EBF2EF,0x34C6FFEA,0xFE28ED61,0xEE7C3C73,\r
+    0x5D4A14D9,0xE864B7E3,0x42105D14,0x203E13E0,0x45EEE2B6,0xA3AAABEA,\r
+    0xDB6C4F15,0xFACB4FD0,0xC742F442,0xEF6ABBB5,0x654F3B1D,0x41CD2105,\r
+    0xD81E799E,0x86854DC7,0xE44B476A,0x3D816250,0xCF62A1F2,0x5B8D2646,\r
+    0xFC8883A0,0xC1C7B6A3,0x7F1524C3,0x69CB7492,0x47848A0B,0x5692B285,\r
+    0x095BBF00,0xAD19489D,0x1462B174,0x23820E00,0x58428D2A,0x0C55F5EA,\r
+    0x1DADF43E,0x233F7061,0x3372F092,0x8D937E41,0xD65FECF1,0x6C223BDB,\r
+    0x7CDE3759,0xCBEE7460,0x4085F2A7,0xCE77326E,0xA6078084,0x19F8509E,\r
+    0xE8EFD855,0x61D99735,0xA969A7AA,0xC50C06C2,0x5A04ABFC,0x800BCADC,\r
+    0x9E447A2E,0xC3453484,0xFDD56705,0x0E1E9EC9,0xDB73DBD3,0x105588CD,\r
+    0x675FDA79,0xE3674340,0xC5C43465,0x713E38D8,0x3D28F89E,0xF16DFF20,\r
+    0x153E21E7,0x8FB03D4A,0xE6E39F2B,0xDB83ADF7 };\r
+\r
+static const u32 ks2[256] = {\r
+    0xE93D5A68,0x948140F7,0xF64C261C,0x94692934,0x411520F7,0x7602D4F7,\r
+    0xBCF46B2E,0xD4A20068,0xD4082471,0x3320F46A,0x43B7D4B7,0x500061AF,\r
+    0x1E39F62E,0x97244546,0x14214F74,0xBF8B8840,0x4D95FC1D,0x96B591AF,\r
+    0x70F4DDD3,0x66A02F45,0xBFBC09EC,0x03BD9785,0x7FAC6DD0,0x31CB8504,\r
+    0x96EB27B3,0x55FD3941,0xDA2547E6,0xABCA0A9A,0x28507825,0x530429F4,\r
+    0x0A2C86DA,0xE9B66DFB,0x68DC1462,0xD7486900,0x680EC0A4,0x27A18DEE,\r
+    0x4F3FFEA2,0xE887AD8C,0xB58CE006,0x7AF4D6B6,0xAACE1E7C,0xD3375FEC,\r
+    0xCE78A399,0x406B2A42,0x20FE9E35,0xD9F385B9,0xEE39D7AB,0x3B124E8B,\r
+    0x1DC9FAF7,0x4B6D1856,0x26A36631,0xEAE397B2,0x3A6EFA74,0xDD5B4332,\r
+    0x6841E7F7,0xCA7820FB,0xFB0AF54E,0xD8FEB397,0x454056AC,0xBA489527,\r
+    0x55533A3A,0x20838D87,0xFE6BA9B7,0xD096954B,0x55A867BC,0xA1159A58,\r
+    0xCCA92963,0x99E1DB33,0xA62A4A56,0x3F3125F9,0x5EF47E1C,0x9029317C,\r
+    0xFDF8E802,0x04272F70,0x80BB155C,0x05282CE3,0x95C11548,0xE4C66D22,\r
+    0x48C1133F,0xC70F86DC,0x07F9C9EE,0x41041F0F,0x404779A4,0x5D886E17,\r
+    0x325F51EB,0xD59BC0D1,0xF2BCC18F,0x41113564,0x257B7834,0x602A9C60,\r
+    0xDFF8E8A3,0x1F636C1B,0x0E12B4C2,0x02E1329E,0xAF664FD1,0xCAD18115,\r
+    0x6B2395E0,0x333E92E1,0x3B240B62,0xEEBEB922,0x85B2A20E,0xE6BA0D99,\r
+    0xDE720C8C,0x2DA2F728,0xD0127845,0x95B794FD,0x647D0862,0xE7CCF5F0,\r
+    0x5449A36F,0x877D48FA,0xC39DFD27,0xF33E8D1E,0x0A476341,0x992EFF74,\r
+    0x3A6F6EAB,0xF4F8FD37,0xA812DC60,0xA1EBDDF8,0x991BE14C,0xDB6E6B0D,\r
+    0xC67B5510,0x6D672C37,0x2765D43B,0xDCD0E804,0xF1290DC7,0xCC00FFA3,\r
+    0xB5390F92,0x690FED0B,0x667B9FFB,0xCEDB7D9C,0xA091CF0B,0xD9155EA3,\r
+    0xBB132F88,0x515BAD24,0x7B9479BF,0x763BD6EB,0x37392EB3,0xCC115979,\r
+    0x8026E297,0xF42E312D,0x6842ADA7,0xC66A2B3B,0x12754CCC,0x782EF11C,\r
+    0x6A124237,0xB79251E7,0x06A1BBE6,0x4BFB6350,0x1A6B1018,0x11CAEDFA,\r
+    0x3D25BDD8,0xE2E1C3C9,0x44421659,0x0A121386,0xD90CEC6E,0xD5ABEA2A,\r
+    0x64AF674E,0xDA86A85F,0xBEBFE988,0x64E4C3FE,0x9DBC8057,0xF0F7C086,\r
+    0x60787BF8,0x6003604D,0xD1FD8346,0xF6381FB0,0x7745AE04,0xD736FCCC,\r
+    0x83426B33,0xF01EAB71,0xB0804187,0x3C005E5F,0x77A057BE,0xBDE8AE24,\r
+    0x55464299,0xBF582E61,0x4E58F48F,0xF2DDFDA2,0xF474EF38,0x8789BDC2,\r
+    0x5366F9C3,0xC8B38E74,0xB475F255,0x46FCD9B9,0x7AEB2661,0x8B1DDF84,\r
+    0x846A0E79,0x915F95E2,0x466E598E,0x20B45770,0x8CD55591,0xC902DE4C,\r
+    0xB90BACE1,0xBB8205D0,0x11A86248,0x7574A99E,0xB77F19B6,0xE0A9DC09,\r
+    0x662D09A1,0xC4324633,0xE85A1F02,0x09F0BE8C,0x4A99A025,0x1D6EFE10,\r
+    0x1AB93D1D,0x0BA5A4DF,0xA186F20F,0x2868F169,0xDCB7DA83,0x573906FE,\r
+    0xA1E2CE9B,0x4FCD7F52,0x50115E01,0xA70683FA,0xA002B5C4,0x0DE6D027,\r
+    0x9AF88C27,0x773F8641,0xC3604C06,0x61A806B5,0xF0177A28,0xC0F586E0,\r
+    0x006058AA,0x30DC7D62,0x11E69ED7,0x2338EA63,0x53C2DD94,0xC2C21634,\r
+    0xBBCBEE56,0x90BCB6DE,0xEBFC7DA1,0xCE591D76,0x6F05E409,0x4B7C0188,\r
+    0x39720A3D,0x7C927C24,0x86E3725F,0x724D9DB9,0x1AC15BB4,0xD39EB8FC,\r
+    0xED545578,0x08FCA5B5,0xD83D7CD3,0x4DAD0FC4,0x1E50EF5E,0xB161E6F8,\r
+    0xA28514D9,0x6C51133C,0x6FD5C7E7,0x56E14EC4,0x362ABFCE,0xDDC6C837,\r
+    0xD79A3234,0x92638212,0x670EFA8E,0x406000E0 };\r
+\r
+static const u32 ks3[256] = {\r
+    0x3A39CE37,0xD3FAF5CF,0xABC27737,0x5AC52D1B,0x5CB0679E,0x4FA33742,\r
+    0xD3822740,0x99BC9BBE,0xD5118E9D,0xBF0F7315,0xD62D1C7E,0xC700C47B,\r
+    0xB78C1B6B,0x21A19045,0xB26EB1BE,0x6A366EB4,0x5748AB2F,0xBC946E79,\r
+    0xC6A376D2,0x6549C2C8,0x530FF8EE,0x468DDE7D,0xD5730A1D,0x4CD04DC6,\r
+    0x2939BBDB,0xA9BA4650,0xAC9526E8,0xBE5EE304,0xA1FAD5F0,0x6A2D519A,\r
+    0x63EF8CE2,0x9A86EE22,0xC089C2B8,0x43242EF6,0xA51E03AA,0x9CF2D0A4,\r
+    0x83C061BA,0x9BE96A4D,0x8FE51550,0xBA645BD6,0x2826A2F9,0xA73A3AE1,\r
+    0x4BA99586,0xEF5562E9,0xC72FEFD3,0xF752F7DA,0x3F046F69,0x77FA0A59,\r
+    0x80E4A915,0x87B08601,0x9B09E6AD,0x3B3EE593,0xE990FD5A,0x9E34D797,\r
+    0x2CF0B7D9,0x022B8B51,0x96D5AC3A,0x017DA67D,0xD1CF3ED6,0x7C7D2D28,\r
+    0x1F9F25CF,0xADF2B89B,0x5AD6B472,0x5A88F54C,0xE029AC71,0xE019A5E6,\r
+    0x47B0ACFD,0xED93FA9B,0xE8D3C48D,0x283B57CC,0xF8D56629,0x79132E28,\r
+    0x785F0191,0xED756055,0xF7960E44,0xE3D35E8C,0x15056DD4,0x88F46DBA,\r
+    0x03A16125,0x0564F0BD,0xC3EB9E15,0x3C9057A2,0x97271AEC,0xA93A072A,\r
+    0x1B3F6D9B,0x1E6321F5,0xF59C66FB,0x26DCF319,0x7533D928,0xB155FDF5,\r
+    0x03563482,0x8ABA3CBB,0x28517711,0xC20AD9F8,0xABCC5167,0xCCAD925F,\r
+    0x4DE81751,0x3830DC8E,0x379D5862,0x9320F991,0xEA7A90C2,0xFB3E7BCE,\r
+    0x5121CE64,0x774FBE32,0xA8B6E37E,0xC3293D46,0x48DE5369,0x6413E680,\r
+    0xA2AE0810,0xDD6DB224,0x69852DFD,0x09072166,0xB39A460A,0x6445C0DD,\r
+    0x586CDECF,0x1C20C8AE,0x5BBEF7DD,0x1B588D40,0xCCD2017F,0x6BB4E3BB,\r
+    0xDDA26A7E,0x3A59FF45,0x3E350A44,0xBCB4CDD5,0x72EACEA8,0xFA6484BB,\r
+    0x8D6612AE,0xBF3C6F47,0xD29BE463,0x542F5D9E,0xAEC2771B,0xF64E6370,\r
+    0x740E0D8D,0xE75B1357,0xF8721671,0xAF537D5D,0x4040CB08,0x4EB4E2CC,\r
+    0x34D2466A,0x0115AF84,0xE1B00428,0x95983A1D,0x06B89FB4,0xCE6EA048,\r
+    0x6F3F3B82,0x3520AB82,0x011A1D4B,0x277227F8,0x611560B1,0xE7933FDC,\r
+    0xBB3A792B,0x344525BD,0xA08839E1,0x51CE794B,0x2F32C9B7,0xA01FBAC9,\r
+    0xE01CC87E,0xBCC7D1F6,0xCF0111C3,0xA1E8AAC7,0x1A908749,0xD44FBD9A,\r
+    0xD0DADECB,0xD50ADA38,0x0339C32A,0xC6913667,0x8DF9317C,0xE0B12B4F,\r
+    0xF79E59B7,0x43F5BB3A,0xF2D519FF,0x27D9459C,0xBF97222C,0x15E6FC2A,\r
+    0x0F91FC71,0x9B941525,0xFAE59361,0xCEB69CEB,0xC2A86459,0x12BAA8D1,\r
+    0xB6C1075E,0xE3056A0C,0x10D25065,0xCB03A442,0xE0EC6E0E,0x1698DB3B,\r
+    0x4C98A0BE,0x3278E964,0x9F1F9532,0xE0D392DF,0xD3A0342B,0x8971F21E,\r
+    0x1B0A7441,0x4BA3348C,0xC5BE7120,0xC37632D8,0xDF359F8D,0x9B992F2E,\r
+    0xE60B6F47,0x0FE3F11D,0xE54CDA54,0x1EDAD891,0xCE6279CF,0xCD3E7E6F,\r
+    0x1618B166,0xFD2C1D05,0x848FD2C5,0xF6FB2299,0xF523F357,0xA6327623,\r
+    0x93A83531,0x56CCCD02,0xACF08162,0x5A75EBB5,0x6E163697,0x88D273CC,\r
+    0xDE966292,0x81B949D0,0x4C50901B,0x71C65614,0xE6C6C7BD,0x327A140A,\r
+    0x45E1D006,0xC3F27B9A,0xC9AA53FD,0x62A80F00,0xBB25BFE2,0x35BDD2F6,\r
+    0x71126905,0xB2040222,0xB6CBCF7C,0xCD769C2B,0x53113EC0,0x1640E3D3,\r
+    0x38ABBD60,0x2547ADF0,0xBA38209C,0xF746CE76,0x77AFA1C5,0x20756060,\r
+    0x85CBFE4E,0x8AE88DD8,0x7AAAF9B0,0x4CF9AA7E,0x1948C25C,0x02FB8A8C,\r
+    0x01C36AE4,0xD6EBE1F9,0x90D4F869,0xA65CDEA0,0x3F09252D,0xC208E69F,\r
+    0xB74E6132,0xCE77E25B,0x578FDFE3,0x3AC372E6 };\r
+\r
+static const u32 ps[BLOWFISH_ROUNDS+2] = {\r
+    0x243F6A88,0x85A308D3,0x13198A2E,0x03707344,0xA4093822,0x299F31D0,\r
+    0x082EFA98,0xEC4E6C89,0x452821E6,0x38D01377,0xBE5466CF,0x34E90C6C,\r
+    0xC0AC29B7,0xC97C50DD,0x3F84D5B5,0xB5470917,0x9216D5D9,0x8979FB1B };\r
+\r
+\r
+\r
+#if BLOWFISH_ROUNDS != 16\r
+static inline u32\r
+function_F( BLOWFISH_context *bc, u32 x )\r
+{\r
+    u16 a, b, c, d;\r
+\r
+  #ifdef BIG_ENDIAN_HOST\r
+    a = ((byte*)&x)[0];\r
+    b = ((byte*)&x)[1];\r
+    c = ((byte*)&x)[2];\r
+    d = ((byte*)&x)[3];\r
+  #else\r
+    a = ((byte*)&x)[3];\r
+    b = ((byte*)&x)[2];\r
+    c = ((byte*)&x)[1];\r
+    d = ((byte*)&x)[0];\r
+  #endif\r
+\r
+    return ((bc->s0[a] + bc->s1[b]) ^ bc->s2[c] ) + bc->s3[d];\r
+}\r
+#endif\r
+\r
+#ifdef BIG_ENDIAN_HOST\r
+  #define F(x) ((( s0[((byte*)&x)[0]] + s1[((byte*)&x)[1]])     \\r
+                  ^ s2[((byte*)&x)[2]]) + s3[((byte*)&x)[3]] )\r
+#else\r
+  #define F(x) ((( s0[((byte*)&x)[3]] + s1[((byte*)&x)[2]])     \\r
+                  ^ s2[((byte*)&x)[1]]) + s3[((byte*)&x)[0]] )\r
+#endif\r
+#define R(l,r,i)  do { l ^= p[i]; r ^= F(l); } while(0)\r
+\r
+\r
+static void\r
+encrypt(  BLOWFISH_context *bc, u32 *ret_xl, u32 *ret_xr )\r
+{\r
+  #if BLOWFISH_ROUNDS == 16\r
+    u32 xl, xr, *s0, *s1, *s2, *s3, *p;\r
+\r
+    xl = *ret_xl;\r
+    xr = *ret_xr;\r
+    p = bc->p;\r
+    s0 = bc->s0;\r
+    s1 = bc->s1;\r
+    s2 = bc->s2;\r
+    s3 = bc->s3;\r
+\r
+    R( xl, xr, 0);\r
+    R( xr, xl, 1);\r
+    R( xl, xr, 2);\r
+    R( xr, xl, 3);\r
+    R( xl, xr, 4);\r
+    R( xr, xl, 5);\r
+    R( xl, xr, 6);\r
+    R( xr, xl, 7);\r
+    R( xl, xr, 8);\r
+    R( xr, xl, 9);\r
+    R( xl, xr, 10);\r
+    R( xr, xl, 11);\r
+    R( xl, xr, 12);\r
+    R( xr, xl, 13);\r
+    R( xl, xr, 14);\r
+    R( xr, xl, 15);\r
+\r
+    xl ^= p[BLOWFISH_ROUNDS];\r
+    xr ^= p[BLOWFISH_ROUNDS+1];\r
+\r
+    *ret_xl = xr;\r
+    *ret_xr = xl;\r
+\r
+  #else\r
+    u32 xl, xr, temp, *p;\r
+    int i;\r
+\r
+    xl = *ret_xl;\r
+    xr = *ret_xr;\r
+    p = bc->p;\r
+\r
+    for(i=0; i < BLOWFISH_ROUNDS; i++ ) {\r
+       xl ^= p[i];\r
+       xr ^= function_F(bc, xl);\r
+       temp = xl;\r
+       xl = xr;\r
+       xr = temp;\r
+    }\r
+    temp = xl;\r
+    xl = xr;\r
+    xr = temp;\r
+\r
+    xr ^= p[BLOWFISH_ROUNDS];\r
+    xl ^= p[BLOWFISH_ROUNDS+1];\r
+\r
+    *ret_xl = xl;\r
+    *ret_xr = xr;\r
+  #endif\r
+}\r
+\r
+\r
+static void\r
+decrypt(  BLOWFISH_context *bc, u32 *ret_xl, u32 *ret_xr )\r
+{\r
+  #if BLOWFISH_ROUNDS == 16\r
+    u32 xl, xr, *s0, *s1, *s2, *s3, *p;\r
+\r
+    xl = *ret_xl;\r
+    xr = *ret_xr;\r
+    p = bc->p;\r
+    s0 = bc->s0;\r
+    s1 = bc->s1;\r
+    s2 = bc->s2;\r
+    s3 = bc->s3;\r
+\r
+    R( xl, xr, 17);\r
+    R( xr, xl, 16);\r
+    R( xl, xr, 15);\r
+    R( xr, xl, 14);\r
+    R( xl, xr, 13);\r
+    R( xr, xl, 12);\r
+    R( xl, xr, 11);\r
+    R( xr, xl, 10);\r
+    R( xl, xr, 9);\r
+    R( xr, xl, 8);\r
+    R( xl, xr, 7);\r
+    R( xr, xl, 6);\r
+    R( xl, xr, 5);\r
+    R( xr, xl, 4);\r
+    R( xl, xr, 3);\r
+    R( xr, xl, 2);\r
+\r
+    xl ^= p[1];\r
+    xr ^= p[0];\r
+\r
+    *ret_xl = xr;\r
+    *ret_xr = xl;\r
+\r
+  #else\r
+    u32 xl, xr, temp, *p;\r
+    int i;\r
+\r
+    xl = *ret_xl;\r
+    xr = *ret_xr;\r
+    p = bc->p;\r
+\r
+    for(i=BLOWFISH_ROUNDS+1; i > 1; i-- ) {\r
+       xl ^= p[i];\r
+       xr ^= function_F(bc, xl);\r
+       temp = xl;\r
+       xl = xr;\r
+       xr = temp;\r
+    }\r
+\r
+    temp = xl;\r
+    xl = xr;\r
+    xr = temp;\r
+\r
+    xr ^= p[1];\r
+    xl ^= p[0];\r
+\r
+    *ret_xl = xl;\r
+    *ret_xr = xr;\r
+  #endif\r
+}\r
+\r
+#undef F\r
+#undef R\r
+\r
+static void\r
+encrypt_block( BLOWFISH_context *bc, byte *outbuf, byte *inbuf )\r
+{\r
+    u32 d1, d2;\r
+\r
+    d1 = inbuf[0] << 24 | inbuf[1] << 16 | inbuf[2] << 8 | inbuf[3];\r
+    d2 = inbuf[4] << 24 | inbuf[5] << 16 | inbuf[6] << 8 | inbuf[7];\r
+    encrypt( bc, &d1, &d2 );\r
+    outbuf[0] = (d1 >> 24) & 0xff;\r
+    outbuf[1] = (d1 >> 16) & 0xff;\r
+    outbuf[2] = (d1 >> 8) & 0xff;\r
+    outbuf[3] =  d1       & 0xff;\r
+    outbuf[4] = (d2 >> 24) & 0xff;\r
+    outbuf[5] = (d2 >> 16) & 0xff;\r
+    outbuf[6] = (d2 >> 8) & 0xff;\r
+    outbuf[7] =  d2       & 0xff;\r
+}\r
+\r
+\r
+static void\r
+decrypt_block( BLOWFISH_context *bc, byte *outbuf, byte *inbuf )\r
+{\r
+    u32 d1, d2;\r
+\r
+    d1 = inbuf[0] << 24 | inbuf[1] << 16 | inbuf[2] << 8 | inbuf[3];\r
+    d2 = inbuf[4] << 24 | inbuf[5] << 16 | inbuf[6] << 8 | inbuf[7];\r
+    decrypt( bc, &d1, &d2 );\r
+    outbuf[0] = (d1 >> 24) & 0xff;\r
+    outbuf[1] = (d1 >> 16) & 0xff;\r
+    outbuf[2] = (d1 >> 8) & 0xff;\r
+    outbuf[3] =  d1       & 0xff;\r
+    outbuf[4] = (d2 >> 24) & 0xff;\r
+    outbuf[5] = (d2 >> 16) & 0xff;\r
+    outbuf[6] = (d2 >> 8) & 0xff;\r
+    outbuf[7] =  d2       & 0xff;\r
+}\r
+\r
+\r
+static const char*\r
+selftest(void)\r
+{\r
+    BLOWFISH_context c;\r
+    byte plain[] = "BLOWFISH";\r
+    byte buffer[8];\r
+    byte plain3[] = { 0xFE, 0xDC, 0xBA, 0x98, 0x76, 0x54, 0x32, 0x10 };\r
+    byte key3[] = { 0x41, 0x79, 0x6E, 0xA0, 0x52, 0x61, 0x6E, 0xE4 };\r
+    byte cipher3[] = { 0xE1, 0x13, 0xF4, 0x10, 0x2C, 0xFC, 0xCE, 0x43 };\r
+\r
+    bf_setkey( &c, "abcdefghijklmnopqrstuvwxyz", 26 );\r
+    encrypt_block( &c, buffer, plain );\r
+    if( memcmp( buffer, "\x32\x4E\xD0\xFE\xF4\x13\xA2\x03", 8 ) )\r
+       return "Blowfish selftest failed (1).";\r
+    decrypt_block( &c, buffer, buffer );\r
+    if( memcmp( buffer, plain, 8 ) )\r
+       return "Blowfish selftest failed (2).";\r
+\r
+    bf_setkey( &c, key3, 8 );\r
+    encrypt_block( &c, buffer, plain3 );\r
+    if( memcmp( buffer, cipher3, 8 ) )\r
+       return "Blowfish selftest failed (3).";\r
+    decrypt_block( &c, buffer, buffer );\r
+    if( memcmp( buffer, plain3, 8 ) )\r
+       return "Blowfish selftest failed (4).";\r
+    return NULL;\r
+}\r
+\r
+\r
+\r
+static int\r
+bf_setkey( BLOWFISH_context *c, byte *key, unsigned keylen )\r
+{\r
+    int i, j;\r
+    u32 data, datal, datar;\r
+    static int initialized;\r
+    static const char *selftest_failed;\r
+\r
+    if( !initialized ) {\r
+       initialized = 1;\r
+       selftest_failed = selftest();\r
+#ifndef TOMBO\r
+       if( selftest_failed )\r
+           fprintf(stderr,"%s\n", selftest_failed ); \r
+#endif\r
+    }\r
+    if( selftest_failed )\r
+       return G10ERR_SELFTEST_FAILED;\r
+\r
+    for(i=0; i < BLOWFISH_ROUNDS+2; i++ )\r
+       c->p[i] = ps[i];\r
+    for(i=0; i < 256; i++ ) {\r
+       c->s0[i] = ks0[i];\r
+       c->s1[i] = ks1[i];\r
+       c->s2[i] = ks2[i];\r
+       c->s3[i] = ks3[i];\r
+    }\r
+\r
+    for(i=j=0; i < BLOWFISH_ROUNDS+2; i++ ) {\r
+      #ifdef BIG_ENDIAN_HOST\r
+       ((byte*)&data)[0] = key[j];\r
+       ((byte*)&data)[1] = key[(j+1)%keylen];\r
+       ((byte*)&data)[2] = key[(j+2)%keylen];\r
+       ((byte*)&data)[3] = key[(j+3)%keylen];\r
+      #else\r
+       ((byte*)&data)[3] = key[j];\r
+       ((byte*)&data)[2] = key[(j+1)%keylen];\r
+       ((byte*)&data)[1] = key[(j+2)%keylen];\r
+       ((byte*)&data)[0] = key[(j+3)%keylen];\r
+      #endif\r
+       c->p[i] ^= data;\r
+       j = (j+4) % keylen;\r
+    }\r
+\r
+    datal = datar = 0;\r
+    for(i=0; i < BLOWFISH_ROUNDS+2; i += 2 ) {\r
+       encrypt( c, &datal, &datar );\r
+       c->p[i]   = datal;\r
+       c->p[i+1] = datar;\r
+    }\r
+    for(i=0; i < 256; i += 2 ) {\r
+       encrypt( c, &datal, &datar );\r
+       c->s0[i]   = datal;\r
+       c->s0[i+1] = datar;\r
+    }\r
+    for(i=0; i < 256; i += 2 ) {\r
+       encrypt( c, &datal, &datar );\r
+       c->s1[i]   = datal;\r
+       c->s1[i+1] = datar;\r
+    }\r
+    for(i=0; i < 256; i += 2 ) {\r
+       encrypt( c, &datal, &datar );\r
+       c->s2[i]   = datal;\r
+       c->s2[i+1] = datar;\r
+    }\r
+    for(i=0; i < 256; i += 2 ) {\r
+       encrypt( c, &datal, &datar );\r
+       c->s3[i]   = datal;\r
+       c->s3[i+1] = datar;\r
+    }\r
+\r
+\r
+    /* Check for weak key.  A weak key is a key in which a value in */\r
+    /* the P-array (here c) occurs more than once per table.       */\r
+    for(i=0; i < 255; i++ ) {\r
+       for( j=i+1; j < 256; j++) {\r
+           if( (c->s0[i] == c->s0[j]) || (c->s1[i] == c->s1[j]) ||\r
+               (c->s2[i] == c->s2[j]) || (c->s3[i] == c->s3[j]) )\r
+               return G10ERR_WEAK_KEY;\r
+       }\r
+    }\r
+\r
+    return 0;\r
+}\r
+\r
+\r
+/****************\r
+ * Return some information about the algorithm.  We need algo here to\r
+ * distinguish different flavors of the algorithm.\r
+ * Returns: A pointer to string describing the algorithm or NULL if\r
+ *         the ALGO is invalid.\r
+ */\r
+const char *\r
+blowfish_get_info( int algo, size_t *keylen,\r
+                  size_t *blocksize, size_t *contextsize,\r
+                  int  (**r_setkey)( void *c, byte *key, unsigned keylen ),\r
+                  void (**r_encrypt)( void *c, byte *outbuf, byte *inbuf ),\r
+                  void (**r_decrypt)( void *c, byte *outbuf, byte *inbuf )\r
+                )\r
+{\r
+    *keylen = 128;\r
+    *blocksize = BLOWFISH_BLOCKSIZE;\r
+    *contextsize = sizeof(BLOWFISH_context);\r
+    *(int  (**)(BLOWFISH_context*, byte*, unsigned))r_setkey\r
+                                                       = bf_setkey;\r
+    *(void (**)(BLOWFISH_context*, byte*, byte*))r_encrypt\r
+                                                       = encrypt_block;\r
+    *(void (**)(BLOWFISH_context*, byte*, byte*))r_decrypt\r
+                                                       = decrypt_block;\r
+\r
+    if( algo == CIPHER_ALGO_BLOWFISH )\r
+       return "BLOWFISH";\r
+    return NULL;\r
+}\r
+\r
+#ifdef TOMBO\r
+\r
+typedef struct browfish_cbc {\r
+       byte buf[BLOWFISH_BLOCKSIZE];\r
+       BLOWFISH_context ctx;\r
+} BLOWFISH_CBC;\r
\r
+void *BF_Init(byte *key, unsigned keylen)\r
+{\r
+       char *IV = "BLOWFISH";\r
+       int i;\r
+\r
+       //BLOWFISH_CBC *ctx = (BLOWFISH_CBC*)LocalAlloc(LMEM_FIXED, sizeof(BLOWFISH_CBC));\r
+       BLOWFISH_CBC *ctx = (BLOWFISH_CBC*)malloc(sizeof(BLOWFISH_CBC));\r
+\r
+       if (ctx == NULL) return NULL;\r
+\r
+       for (i = 0; i < BLOWFISH_BLOCKSIZE; i++) {\r
+               ctx->buf[i] = IV[i];\r
+       }\r
+       bf_setkey(&(ctx->ctx), key, keylen);\r
+\r
+       return ctx;\r
+}\r
+\r
+void BF_Enc(void *handle, byte *chipher, byte *plain, int len)\r
+{\r
+       byte buf[8];\r
+       int j;\r
+\r
+       BLOWFISH_CBC *ctx = (BLOWFISH_CBC*)handle;\r
+\r
+       for (j = 0; j < 8; j++) {\r
+               if (j < len) {\r
+                       buf[j] = ctx->buf[j] ^ plain[j];\r
+               } else {\r
+                       buf[j] = ctx->buf[j];\r
+               }\r
+       }\r
+       encrypt_block(&(ctx->ctx), chipher, buf);\r
+       for (j = 0; j < 8; j++) {\r
+               ctx->buf[j] = chipher[j];\r
+       }\r
+}\r
+\r
+void BF_Dec(void *handle, byte *plain, byte *chipher)\r
+{\r
+       int j;\r
+       byte buf[8];\r
+       BLOWFISH_CBC *ctx = (BLOWFISH_CBC*)handle;\r
+\r
+       decrypt_block(&(ctx->ctx), buf, chipher);\r
+       for (j = 0; j < 8; j++) {\r
+               plain[j] = buf[j] ^ ctx->buf[j];\r
+       }\r
+       for (j = 0; j < 8; j++) {\r
+               ctx->buf[j] = chipher[j];\r
+       }\r
+}\r
+\r
+void BF_Free(void *handle)\r
+{\r
+       BLOWFISH_CBC *ctx = (BLOWFISH_CBC*)handle;\r
+       free(ctx);\r
+}\r
+\r
+const char *CheckBlowFish()\r
+{\r
+       return selftest();\r
+}\r
+\r
+#ifdef COMMENT\r
+\r
+void BlowFishTest()\r
+{\r
+       char *key = "HELLO WORLD";\r
+       char *plainData = "Good News for WindowsCE Users!";\r
+       BLOWFISH_CBC ctx;\r
+\r
+       int i;\r
+\r
+       int l;\r
+\r
+       byte chipher[1024];\r
+       char plain[1024];\r
+\r
+       byte *cp;\r
+       char *pp;\r
+\r
+       cp = chipher;\r
+       pp = plain;\r
+\r
+       for (i = 0; i < 1024; i++) {chipher[i] = plain[i] = 0; }\r
+\r
+       // Encrypt\r
+       l = strlen(plainData);\r
+       cp = chipher;\r
+       pp = plainData;\r
+       if (l > 0) {\r
+               BF_Init(&ctx, (byte*)key, strlen(key));\r
+               while(l > 8) {\r
+                       BF_Enc(&ctx, cp, (byte*)pp, 8);\r
+                       cp += 8;\r
+                       pp += 8;\r
+                       l -= 8;\r
+               }\r
+               BF_Enc(&ctx, cp, (byte*)pp, l);\r
+       }\r
+       \r
+\r
+       BF_Init(&ctx, (byte*)key, strlen(key));\r
+       BF_Dec(&ctx, plain     , chipher     );\r
+       BF_Dec(&ctx, plain +  8, chipher +  8);\r
+       BF_Dec(&ctx, plain + 16, chipher + 16);\r
+       BF_Dec(&ctx, plain + 24, chipher + 24);\r
+\r
+\r
+       Sleep(1);\r
+}\r
+\r
+#endif\r
+\r
+#endif\r
+\r
diff --git a/contrib/TomboCrypt/md5.c b/contrib/TomboCrypt/md5.c
new file mode 100644 (file)
index 0000000..c6b52fb
--- /dev/null
@@ -0,0 +1,438 @@
+/* md5.c - MD5 Message-Digest Algorithm\r
+ *     Copyright (C) 1995, 1996, 1998, 1999 Free Software Foundation, Inc.\r
+ *\r
+ * according to the definition of MD5 in RFC 1321 from April 1992.\r
+ * NOTE: This is *not* the same file as the one from glibc.\r
+ *\r
+ * This program is free software; you can redistribute it and/or modify it\r
+ * under the terms of the GNU General Public License as published by the\r
+ * Free Software Foundation; either version 2, or (at your option) any\r
+ * later version.\r
+ *\r
+ * This program is distributed in the hope that it will be useful,\r
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of\r
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\r
+ * GNU General Public License for more details.\r
+ *\r
+ * You should have received a copy of the GNU General Public License\r
+ * along with this program; if not, write to the Free Software Foundation,\r
+ * Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.\r
+ */\r
+/* Written by Ulrich Drepper <drepper@gnu.ai.mit.edu>, 1995.  */\r
+/* heavily modified for GnuPG by <werner.koch@guug.de> */\r
+\r
+/* Test values:\r
+ * ""                  D4 1D 8C D9 8F 00 B2 04  E9 80 09 98 EC F8 42 7E\r
+ * "a"                 0C C1 75 B9 C0 F1 B6 A8  31 C3 99 E2 69 77 26 61\r
+ * "abc                90 01 50 98 3C D2 4F B0  D6 96 3F 7D 28 E1 7F 72\r
+ * "message digest"    F9 6B 69 7D 7C B7 93 8D  52 5A 2F 31 AA F1 61 D0\r
+ */\r
+\r
+#ifndef TOMBO\r
+#include <config.h>\r
+\r
+#include <stdio.h>\r
+#include <stdlib.h>\r
+#include <string.h>\r
+#include <assert.h>\r
+#include "util.h"\r
+#include "memory.h"\r
+#include "dynload.h"\r
+#endif\r
+\r
+#ifdef TOMBO\r
+#include "wintypes.h"\r
+#include <string.h>\r
+#define u32 DWORD\r
+#define DIM(v) (sizeof(v)/sizeof((v)[0]))\r
+#endif\r
+\r
+#include "bithelp.h"\r
+\r
+\r
+typedef struct {\r
+    u32 A,B,C,D;         /* chaining variables */\r
+    u32  nblocks;\r
+    byte buf[64];\r
+    int  count;\r
+} MD5_CONTEXT;\r
+\r
+\r
+static void\r
+md5_init( MD5_CONTEXT *ctx )\r
+{\r
+    ctx->A = 0x67452301;\r
+    ctx->B = 0xefcdab89;\r
+    ctx->C = 0x98badcfe;\r
+    ctx->D = 0x10325476;\r
+\r
+    ctx->nblocks = 0;\r
+    ctx->count = 0;\r
+}\r
+\r
+\r
+\r
+\r
+/* These are the four functions used in the four steps of the MD5 algorithm\r
+   and defined in the RFC 1321.  The first function is a little bit optimized\r
+   (as found in Colin Plumbs public domain implementation).  */\r
+/* #define FF(b, c, d) ((b & c) | (~b & d)) */\r
+#define FF(b, c, d) (d ^ (b & (c ^ d)))\r
+#define FG(b, c, d) FF (d, b, c)\r
+#define FH(b, c, d) (b ^ c ^ d)\r
+#define FI(b, c, d) (c ^ (b | ~d))\r
+\r
+\r
+/****************\r
+ * transform n*64 bytes\r
+ */\r
+static void\r
+/*transform( MD5_CONTEXT *ctx, const void *buffer, size_t len )*/\r
+transform( MD5_CONTEXT *ctx, byte *data )\r
+{\r
+    u32 correct_words[16];\r
+    u32 A = ctx->A;\r
+    u32 B = ctx->B;\r
+    u32 C = ctx->C;\r
+    u32 D = ctx->D;\r
+    u32 *cwp = correct_words;\r
+\r
+  #ifdef BIG_ENDIAN_HOST\r
+    { int i;\r
+      byte *p2, *p1;\r
+      for(i=0, p1=data, p2=(byte*)correct_words; i < 16; i++, p2 += 4 ) {\r
+       p2[3] = *p1++;\r
+       p2[2] = *p1++;\r
+       p2[1] = *p1++;\r
+       p2[0] = *p1++;\r
+      }\r
+    }\r
+  #else\r
+    memcpy( correct_words, data, 64 );\r
+  #endif\r
+\r
+\r
+#define OP(a, b, c, d, s, T)                                       \\r
+  do                                                               \\r
+    {                                                              \\r
+      a += FF (b, c, d) + (*cwp++) + T;            \\r
+      a = rol(a, s);                                               \\r
+      a += b;                                                      \\r
+    }                                                              \\r
+  while (0)\r
+\r
+    /* Before we start, one word about the strange constants.\r
+       They are defined in RFC 1321 as\r
+\r
+       T[i] = (int) (4294967296.0 * fabs (sin (i))), i=1..64\r
+     */\r
+\r
+    /* Round 1.  */\r
+    OP (A, B, C, D,  7, 0xd76aa478);\r
+    OP (D, A, B, C, 12, 0xe8c7b756);\r
+    OP (C, D, A, B, 17, 0x242070db);\r
+    OP (B, C, D, A, 22, 0xc1bdceee);\r
+    OP (A, B, C, D,  7, 0xf57c0faf);\r
+    OP (D, A, B, C, 12, 0x4787c62a);\r
+    OP (C, D, A, B, 17, 0xa8304613);\r
+    OP (B, C, D, A, 22, 0xfd469501);\r
+    OP (A, B, C, D,  7, 0x698098d8);\r
+    OP (D, A, B, C, 12, 0x8b44f7af);\r
+    OP (C, D, A, B, 17, 0xffff5bb1);\r
+    OP (B, C, D, A, 22, 0x895cd7be);\r
+    OP (A, B, C, D,  7, 0x6b901122);\r
+    OP (D, A, B, C, 12, 0xfd987193);\r
+    OP (C, D, A, B, 17, 0xa679438e);\r
+    OP (B, C, D, A, 22, 0x49b40821);\r
+\r
+#undef OP\r
+#define OP(f, a, b, c, d, k, s, T)  \\r
+    do                                                               \\r
+      {                                                              \\r
+       a += f (b, c, d) + correct_words[k] + T;                      \\r
+       a = rol(a, s);                                                \\r
+       a += b;                                                       \\r
+      }                                                              \\r
+    while (0)\r
+\r
+    /* Round 2.  */\r
+    OP (FG, A, B, C, D,  1,  5, 0xf61e2562);\r
+    OP (FG, D, A, B, C,  6,  9, 0xc040b340);\r
+    OP (FG, C, D, A, B, 11, 14, 0x265e5a51);\r
+    OP (FG, B, C, D, A,  0, 20, 0xe9b6c7aa);\r
+    OP (FG, A, B, C, D,  5,  5, 0xd62f105d);\r
+    OP (FG, D, A, B, C, 10,  9, 0x02441453);\r
+    OP (FG, C, D, A, B, 15, 14, 0xd8a1e681);\r
+    OP (FG, B, C, D, A,  4, 20, 0xe7d3fbc8);\r
+    OP (FG, A, B, C, D,  9,  5, 0x21e1cde6);\r
+    OP (FG, D, A, B, C, 14,  9, 0xc33707d6);\r
+    OP (FG, C, D, A, B,  3, 14, 0xf4d50d87);\r
+    OP (FG, B, C, D, A,  8, 20, 0x455a14ed);\r
+    OP (FG, A, B, C, D, 13,  5, 0xa9e3e905);\r
+    OP (FG, D, A, B, C,  2,  9, 0xfcefa3f8);\r
+    OP (FG, C, D, A, B,  7, 14, 0x676f02d9);\r
+    OP (FG, B, C, D, A, 12, 20, 0x8d2a4c8a);\r
+\r
+    /* Round 3.  */\r
+    OP (FH, A, B, C, D,  5,  4, 0xfffa3942);\r
+    OP (FH, D, A, B, C,  8, 11, 0x8771f681);\r
+    OP (FH, C, D, A, B, 11, 16, 0x6d9d6122);\r
+    OP (FH, B, C, D, A, 14, 23, 0xfde5380c);\r
+    OP (FH, A, B, C, D,  1,  4, 0xa4beea44);\r
+    OP (FH, D, A, B, C,  4, 11, 0x4bdecfa9);\r
+    OP (FH, C, D, A, B,  7, 16, 0xf6bb4b60);\r
+    OP (FH, B, C, D, A, 10, 23, 0xbebfbc70);\r
+    OP (FH, A, B, C, D, 13,  4, 0x289b7ec6);\r
+    OP (FH, D, A, B, C,  0, 11, 0xeaa127fa);\r
+    OP (FH, C, D, A, B,  3, 16, 0xd4ef3085);\r
+    OP (FH, B, C, D, A,  6, 23, 0x04881d05);\r
+    OP (FH, A, B, C, D,  9,  4, 0xd9d4d039);\r
+    OP (FH, D, A, B, C, 12, 11, 0xe6db99e5);\r
+    OP (FH, C, D, A, B, 15, 16, 0x1fa27cf8);\r
+    OP (FH, B, C, D, A,  2, 23, 0xc4ac5665);\r
+\r
+    /* Round 4.  */\r
+    OP (FI, A, B, C, D,  0,  6, 0xf4292244);\r
+    OP (FI, D, A, B, C,  7, 10, 0x432aff97);\r
+    OP (FI, C, D, A, B, 14, 15, 0xab9423a7);\r
+    OP (FI, B, C, D, A,  5, 21, 0xfc93a039);\r
+    OP (FI, A, B, C, D, 12,  6, 0x655b59c3);\r
+    OP (FI, D, A, B, C,  3, 10, 0x8f0ccc92);\r
+    OP (FI, C, D, A, B, 10, 15, 0xffeff47d);\r
+    OP (FI, B, C, D, A,  1, 21, 0x85845dd1);\r
+    OP (FI, A, B, C, D,  8,  6, 0x6fa87e4f);\r
+    OP (FI, D, A, B, C, 15, 10, 0xfe2ce6e0);\r
+    OP (FI, C, D, A, B,  6, 15, 0xa3014314);\r
+    OP (FI, B, C, D, A, 13, 21, 0x4e0811a1);\r
+    OP (FI, A, B, C, D,  4,  6, 0xf7537e82);\r
+    OP (FI, D, A, B, C, 11, 10, 0xbd3af235);\r
+    OP (FI, C, D, A, B,  2, 15, 0x2ad7d2bb);\r
+    OP (FI, B, C, D, A,  9, 21, 0xeb86d391);\r
+\r
+    /* Put checksum in context given as argument.  */\r
+    ctx->A += A;\r
+    ctx->B += B;\r
+    ctx->C += C;\r
+    ctx->D += D;\r
+}\r
+\r
+\r
+\r
+/* The routine updates the message-digest context to\r
+ * account for the presence of each of the characters inBuf[0..inLen-1]\r
+ * in the message whose digest is being computed.\r
+ */\r
+static void\r
+md5_write( MD5_CONTEXT *hd, byte *inbuf, size_t inlen)\r
+{\r
+    if( hd->count == 64 ) { /* flush the buffer */\r
+       transform( hd, hd->buf );\r
+       hd->count = 0;\r
+       hd->nblocks++;\r
+    }\r
+    if( !inbuf )\r
+       return;\r
+    if( hd->count ) {\r
+       for( ; inlen && hd->count < 64; inlen-- )\r
+           hd->buf[hd->count++] = *inbuf++;\r
+       md5_write( hd, NULL, 0 );\r
+       if( !inlen )\r
+           return;\r
+    }\r
+\r
+    while( inlen >= 64 ) {\r
+       transform( hd, inbuf );\r
+       hd->count = 0;\r
+       hd->nblocks++;\r
+       inlen -= 64;\r
+       inbuf += 64;\r
+    }\r
+    for( ; inlen && hd->count < 64; inlen-- )\r
+       hd->buf[hd->count++] = *inbuf++;\r
+\r
+}\r
+\r
+\r
+\r
+/* The routine final terminates the message-digest computation and\r
+ * ends with the desired message digest in mdContext->digest[0...15].\r
+ * The handle is prepared for a new MD5 cycle.\r
+ * Returns 16 bytes representing the digest.\r
+ */\r
+\r
+static void\r
+md5_final( MD5_CONTEXT *hd )\r
+{\r
+    u32 t, msb, lsb;\r
+    byte *p;\r
+\r
+    md5_write(hd, NULL, 0); /* flush */;\r
+\r
+    msb = 0;\r
+    t = hd->nblocks;\r
+    if( (lsb = t << 6) < t ) /* multiply by 64 to make a byte count */\r
+       msb++;\r
+    msb += t >> 26;\r
+    t = lsb;\r
+    if( (lsb = t + hd->count) < t ) /* add the count */\r
+       msb++;\r
+    t = lsb;\r
+    if( (lsb = t << 3) < t ) /* multiply by 8 to make a bit count */\r
+       msb++;\r
+    msb += t >> 29;\r
+\r
+    if( hd->count < 56 ) { /* enough room */\r
+       hd->buf[hd->count++] = 0x80; /* pad */\r
+       while( hd->count < 56 )\r
+           hd->buf[hd->count++] = 0;  /* pad */\r
+    }\r
+    else { /* need one extra block */\r
+       hd->buf[hd->count++] = 0x80; /* pad character */\r
+       while( hd->count < 64 )\r
+           hd->buf[hd->count++] = 0;\r
+       md5_write(hd, NULL, 0);  /* flush */;\r
+       memset(hd->buf, 0, 56 ); /* fill next block with zeroes */\r
+    }\r
+    /* append the 64 bit count */\r
+    hd->buf[56] = lsb     ;\r
+    hd->buf[57] = lsb >>  8;\r
+    hd->buf[58] = lsb >> 16;\r
+    hd->buf[59] = lsb >> 24;\r
+    hd->buf[60] = msb     ;\r
+    hd->buf[61] = msb >>  8;\r
+    hd->buf[62] = msb >> 16;\r
+    hd->buf[63] = msb >> 24;\r
+    transform( hd, hd->buf );\r
+\r
+    p = hd->buf;\r
+  #ifdef BIG_ENDIAN_HOST\r
+    #define X(a) do { *p++ = hd->##a     ; *p++ = hd->##a >> 8;      \\r
+                     *p++ = hd->##a >> 16; *p++ = hd->##a >> 24; } while(0)\r
+  #else /* little endian */\r
+    /*#define X(a) do { *(u32*)p = hd->##a ; p += 4; } while(0)*/\r
+    /* Unixware's cpp doesn't like the above construct so we do it his way:\r
+     * (reported by Allan Clark) */\r
+    #define X(a) do { *(u32*)p = (*hd).a ; p += 4; } while(0)\r
+  #endif\r
+    X(A);\r
+    X(B);\r
+    X(C);\r
+    X(D);\r
+  #undef X\r
+\r
+}\r
+\r
+static byte *\r
+md5_read( MD5_CONTEXT *hd )\r
+{\r
+    return hd->buf;\r
+}\r
+\r
+/****************\r
+ * Return some information about the algorithm.  We need algo here to\r
+ * distinguish different flavors of the algorithm.\r
+ * Returns: A pointer to string describing the algorithm or NULL if\r
+ *         the ALGO is invalid.\r
+ */\r
+static const char *\r
+md5_get_info( int algo, size_t *contextsize,\r
+              byte **r_asnoid, int *r_asnlen, int *r_mdlen,\r
+              void (**r_init)( void *c ),\r
+              void (**r_write)( void *c, byte *buf, size_t nbytes ),\r
+              void (**r_final)( void *c ),\r
+              byte *(**r_read)( void *c )\r
+            )\r
+{\r
+    static byte asn[18] = /* Object ID is 1.2.840.113549.2.5 */\r
+                   { 0x30, 0x20, 0x30, 0x0c, 0x06, 0x08, 0x2a, 0x86,0x48,\r
+                     0x86, 0xf7, 0x0d, 0x02, 0x05, 0x05, 0x00, 0x04, 0x10 };\r
+\r
+    if( algo != 1 )\r
+       return NULL;\r
+\r
+    *contextsize = sizeof(MD5_CONTEXT);\r
+    *r_asnoid = asn;\r
+    *r_asnlen = DIM(asn);\r
+    *r_mdlen = 16;\r
+    *(void  (**)(MD5_CONTEXT *))r_init                = md5_init;\r
+    *(void  (**)(MD5_CONTEXT *, byte*, size_t))r_write = md5_write;\r
+    *(void  (**)(MD5_CONTEXT *))r_final               = md5_final;\r
+    *(byte *(**)(MD5_CONTEXT *))r_read                = md5_read;\r
+\r
+    return "MD5";\r
+}\r
+\r
+\r
+#ifndef IS_MODULE\r
+static\r
+#endif\r
+const char * const gnupgext_version = "MD5 ($Revision: 1.1 $)";\r
+\r
+static struct {\r
+    int class;\r
+    int version;\r
+    int  value;\r
+    void (*func)(void);\r
+} func_table[] = {\r
+    { 10, 1, 0, (void(*)(void))md5_get_info },\r
+    { 11, 1, 1 },\r
+};\r
+\r
+\r
+#ifndef IS_MODULE\r
+static\r
+#endif\r
+void *\r
+gnupgext_enum_func( int what, int *sequence, int *class, int *vers )\r
+{\r
+    void *ret;\r
+    int i = *sequence;\r
+\r
+    do {\r
+       if( i >= DIM(func_table) || i < 0 )\r
+           return NULL;\r
+       *class = func_table[i].class;\r
+       *vers  = func_table[i].version;\r
+       switch( *class ) {\r
+         case 11: case 21: case 31: ret = &func_table[i].value; break;\r
+         default:                   ret = func_table[i].func; break;\r
+       }\r
+       i++;\r
+    } while( what && what != *class );\r
+\r
+    *sequence = i;\r
+    return ret;\r
+}\r
+\r
+\r
+\r
+#ifndef TOMBO\r
+#ifndef IS_MODULE\r
+void\r
+md5_constructor(void)\r
+{\r
+    register_internal_cipher_extension( gnupgext_version, gnupgext_enum_func );\r
+}\r
+#endif\r
+#endif\r
+\r
+#ifdef TOMBO\r
+\r
+void getMD5Sum(byte *md5sum, byte *in, int len)\r
+{\r
+       MD5_CONTEXT cxt;\r
+       int i;\r
+\r
+       md5_init(&cxt);\r
+       md5_write(&cxt, in, len);\r
+       md5_final(&cxt);\r
+\r
+       for (i = 0; i < 16; i++) {\r
+               md5sum[i] = cxt.buf[i];\r
+       }\r
+}\r
+\r
+#endif\r
+\r
+\r
+/* end of file */\r
diff --git a/contrib/TomboCrypt/test.chi b/contrib/TomboCrypt/test.chi
new file mode 100644 (file)
index 0000000..38c28e9
Binary files /dev/null and b/contrib/TomboCrypt/test.chi differ
diff --git a/contrib/TomboCrypt/test1.chi b/contrib/TomboCrypt/test1.chi
new file mode 100644 (file)
index 0000000..f806a6c
Binary files /dev/null and b/contrib/TomboCrypt/test1.chi differ
diff --git a/contrib/TomboCrypt/test2.chi b/contrib/TomboCrypt/test2.chi
new file mode 100644 (file)
index 0000000..bffc3c2
Binary files /dev/null and b/contrib/TomboCrypt/test2.chi differ
diff --git a/contrib/TomboCrypt/wintypes.h b/contrib/TomboCrypt/wintypes.h
new file mode 100644 (file)
index 0000000..9ef4c1b
--- /dev/null
@@ -0,0 +1,51 @@
+#include <stdio.h>\r
+#include <stdlib.h>\r
+\r
+typedef unsigned long       DWORD;\r
+typedef int                 BOOL;\r
+typedef unsigned char       BYTE;\r
+typedef unsigned char       byte;\r
+typedef unsigned short      WORD;\r
+typedef float               FLOAT;\r
+typedef FLOAT               *PFLOAT;\r
+typedef BOOL             *LPBOOL;\r
+typedef BYTE            *PBYTE;\r
+typedef BYTE             *LPBYTE;\r
+typedef int             *PINT;\r
+typedef int              *LPINT;\r
+typedef WORD            *PWORD;\r
+typedef WORD             *LPWORD;\r
+typedef long             *LPLONG;\r
+typedef DWORD           *PDWORD;\r
+typedef DWORD            *LPDWORD;\r
+typedef void             *LPVOID;\r
+\r
+typedef char TCHAR;\r
+typedef TCHAR* LPTSTR;\r
+typedef const TCHAR* LPCTSTR;\r
+typedef void* HANDLE;\r
+\r
+#define wsprintf sprintf\r
+\r
+#ifndef NULL\r
+       #define NULL 0L\r
+#endif\r
+#define FALSE 0\r
+#define TRUE 1\r
+\r
+#define TEXT(c) (c)\r
+\r
+#define ERROR_INVALID_DATA 101\r
+#define ERROR_NOT_ENOUGH_MEMORY 102\r
+#define ERROR_INVALID_PASSWORD 103\r
+\r
+static void SetLastError(DWORD dwErrCode)\r
+{\r
+       (dwErrCode);\r
+}\r
+\r
+static void FatalError(int errCode, LPCTSTR msg)\r
+{\r
+       fprintf(stderr, msg);\r
+       exit(errCode);\r
+}\r
diff --git a/etc/TOMBO_vfolder.dtd b/etc/TOMBO_vfolder.dtd
new file mode 100644 (file)
index 0000000..7efcb71
--- /dev/null
@@ -0,0 +1,17 @@
+<!ELEMENT folders (vfolder*) >\r
+\r
+<!ELEMENT src     EMPTY      >\r
+<!ATTLIST src\r
+          folder        CDATA #REQUIRED\r
+          checkencrypt  CDATA #IMPLIED>\r
+\r
+<!ELEMENT grep    (grep|src) >\r
+<!ATTLIST grep\r
+          pattern       CDATA #REQUIRED\r
+          not           CDATA #IMPLIED\r
+          casesensitive CDATA #IMPLIED\r
+          filenameonly  CDATA #IMPLIED>\r
+\r
+<!ELEMENT vfolder (grep|src) >\r
+<!ATTLIST vfolder\r
+          name          CDATA #REQUIRED>\r
diff --git a/etc/mkbuild.pl b/etc/mkbuild.pl
new file mode 100644 (file)
index 0000000..616f731
--- /dev/null
@@ -0,0 +1,222 @@
+#\r
+# TOMBO Build program for ActivePerl(Win32)\r
+\r
+$version = "Tombo_2_0b4";\r
+\r
+##########################################################################\r
+# Tool definition\r
+##########################################################################\r
+\r
+use File::Glob ':glob';\r
+use File::Path;\r
+use File::Copy;\r
+#use File::DosGlob 'glob';\r
+\r
+$zippg = "\"C:\\Program Files\\mzp\\mzp.exe\"";\r
+\r
+##########################################################################\r
+# File definition\r
+##########################################################################\r
+\r
+$buildroot = "C:\\work2\\SF\\TOMBO";\r
+$docroot = "C:\\work2\\SF\\Docs";\r
+$builddir  = "C:\\temp\\Tombo-Rel";\r
+\r
+@docsJP = (\r
+       ["", "$docroot\\Jp\\COPYING-2_0.txt"],\r
+       ["", "$docroot\\Jp\\Readme.txt"],\r
+       ["", "$docroot\\DocBooks\\UserGuide_jp.chm"],\r
+       ["", "$buildroot\\etc\\vfolder.xml"],\r
+       ["", "$buildroot\\etc\\TOMBO_vfolder.dtd"],\r
+);\r
+\r
+@docsEN = (\r
+       ["", "$docroot\\En\\COPYING-2_0.txt"],\r
+       ["", "$docroot\\En\\Readme.txt"],\r
+       ["", "$docroot\\DocBooks\\UserGuide_en.chm"],\r
+       ["", "$buildroot\\etc\\vfolder.xml"],\r
+       ["", "$buildroot\\etc\\TOMBO_vfolder.dtd"],\r
+);\r
+\r
+@bin_ce_all_jp = (\r
+       ["Bin\\HPCPro\\ARM", "$buildroot\\HpcPro\\Tombo\\ARMRel\\Tombo.exe"],\r
+       ["Bin\\HPCPro\\ARM", "$buildroot\\Src\\MsgRes\\TomboMsg\\jp\\TomboMsg.txt"],\r
+       ["Bin\\HPCPro\\ARM", "$buildroot\\oniguruma\\arm\\oniguruma.dll"],\r
+       ["Bin\\HPCPro\\ARM", "$buildroot\\HpcPro\\RegErase\\ARMRel\\RegErase.exe"],\r
+\r
+       ["Bin\\HPCPro\\MIPS", "$buildroot\\HpcPro\\Tombo\\MIPSRel\\Tombo.exe"],\r
+       ["Bin\\HPCPro\\MIPS", "$buildroot\\Src\\MsgRes\\TomboMsg\\jp\\TomboMsg.txt"],\r
+       ["Bin\\HPCPro\\MIPS", "$buildroot\\oniguruma\\mips\\oniguruma.dll"],\r
+       ["Bin\\HPCPro\\MIPS", "$buildroot\\HpcPro\\RegErase\\MIPSRel\\RegErase.exe"],\r
+\r
+       ["Bin\\HPCPro\\SH3", "$buildroot\\HpcPro\\Tombo\\SH3Rel\\Tombo.exe"],\r
+       ["Bin\\HPCPro\\SH3", "$buildroot\\Src\\MsgRes\\TomboMsg\\jp\\TomboMsg.txt"],\r
+       ["Bin\\HPCPro\\SH3", "$buildroot\\oniguruma\\sh3\\oniguruma.dll"],\r
+       ["Bin\\HPCPro\\SH3", "$buildroot\\HpcPro\\RegErase\\SH3Rel\\RegErase.exe"],\r
+\r
+       ["Bin\\HPCPro\\SH4", "$buildroot\\HpcPro\\Tombo\\SH4Rel\\Tombo.exe"],\r
+       ["Bin\\HPCPro\\SH4", "$buildroot\\Src\\MsgRes\\TomboMsg\\jp\\TomboMsg.txt"],\r
+       ["Bin\\HPCPro\\SH4", "$buildroot\\oniguruma\\sh4\\oniguruma.dll"],\r
+       ["Bin\\HPCPro\\SH4", "$buildroot\\HpcPro\\RegErase\\SH4Rel\\RegErase.exe"],\r
+\r
+       ["Bin\\PocketPC\\MIPS", "$buildroot\\PocketPC\\CabWiz\\Tombo.mips.CAB"],\r
+\r
+       ["Bin\\PocketPC\\SH3", "$buildroot\\PocketPC\\CabWiz\\Tombo.sh3.CAB"],\r
+\r
+       ["Bin\\PocketPC\\ARM", "$buildroot\\PocketPC\\CabWiz\\Tombo.arm.CAB"],\r
+       ["Bin\\PocketPC\\ARM", "$buildroot\\PocketPC\\CabWiz\\TomboVGA_jp.arm.CAB"],\r
+\r
+       \r
+       ["Bin\\WindowsMobile5", "$buildroot\\WindowsMobile5PPC\\CabWiz\\Tombo_jp.arm.CAB"],\r
+\r
+       ["Bin\\BE500", "$buildroot\\BE300\\Tombo\\MIPSRel\\Tombo.exe"],\r
+       ["Bin\\BE500", "$buildroot\\Src\\MsgRes\\TomboMsg\\jp\\TomboMsg.txt"],\r
+       ["Bin\\BE500", "$buildroot\\oniguruma\\mips\\oniguruma.dll"],\r
+       ["Bin\\BE500", "$buildroot\\HpcPro\\RegErase\\MIPSRel\\RegErase.exe"],\r
+\r
+       @docsJP\r
+\r
+);\r
+\r
+@bin_pktpc_arm_jp = (\r
+       ["", "$buildroot\\PocketPC\\CabWiz\\Tombo.arm.CAB"],\r
+       ["", "$buildroot\\PocketPC\\CabWiz\\TomboVGA_jp.arm.CAB"],\r
+\r
+       @docsJP\r
+\r
+);\r
+\r
+@bin_wm5_arm_jp = (\r
+       ["", "$buildroot\\WindowsMobile5PPC\\CabWiz\\Tombo_jp.arm.CAB"],\r
+       @docsJP\r
+);\r
+\r
+@bin_win32_jp = (\r
+       ["", "C:\\temp\\TomboSetupJ\\*.*"],\r
+       ["Files", "C:\\temp\\TomboSetupJ\\Files\\*.*"],\r
+       ["", "$docroot\\Jp\\Readme.txt"],\r
+);\r
+\r
+@bin_ce_all_en = (\r
+       ["Bin\\HPCPro\\ARM", "$buildroot\\HpcPro\\Tombo\\ARMRel\\Tombo.exe"],\r
+       ["Bin\\HPCPro\\ARM", "$buildroot\\Src\\MsgRes\\TomboMsg\\en\\TomboMsg.txt"],\r
+       ["Bin\\HPCPro\\ARM", "$buildroot\\oniguruma\\arm\\oniguruma.dll"],\r
+       ["Bin\\HPCPro\\ARM", "$buildroot\\HpcPro\\RegErase\\ARMRel\\RegErase.exe"],\r
+\r
+       ["Bin\\HPCPro\\MIPS", "$buildroot\\HpcPro\\Tombo\\MIPSRel\\Tombo.exe"],\r
+       ["Bin\\HPCPro\\MIPS", "$buildroot\\Src\\MsgRes\\TomboMsg\\en\\TomboMsg.txt"],\r
+       ["Bin\\HPCPro\\MIPS", "$buildroot\\oniguruma\\mips\\oniguruma.dll"],\r
+       ["Bin\\HPCPro\\MIPS", "$buildroot\\HpcPro\\RegErase\\MIPSRel\\RegErase.exe"],\r
+\r
+       ["Bin\\HPCPro\\SH3", "$buildroot\\HpcPro\\Tombo\\SH3Rel\\Tombo.exe"],\r
+       ["Bin\\HPCPro\\SH3", "$buildroot\\Src\\MsgRes\\TomboMsg\\en\\TomboMsg.txt"],\r
+       ["Bin\\HPCPro\\SH3", "$buildroot\\oniguruma\\sh3\\oniguruma.dll"],\r
+       ["Bin\\HPCPro\\SH3", "$buildroot\\HpcPro\\RegErase\\SH3Rel\\RegErase.exe"],\r
+\r
+       ["Bin\\HPCPro\\SH4", "$buildroot\\HpcPro\\Tombo\\SH4Rel\\Tombo.exe"],\r
+       ["Bin\\HPCPro\\SH4", "$buildroot\\Src\\MsgRes\\TomboMsg\\en\\TomboMsg.txt"],\r
+       ["Bin\\HPCPro\\SH4", "$buildroot\\oniguruma\\sh4\\oniguruma.dll"],\r
+       ["Bin\\HPCPro\\SH4", "$buildroot\\HpcPro\\RegErase\\SH4Rel\\RegErase.exe"],\r
+\r
+       ["Bin\\PocketPC\\MIPS", "$buildroot\\PocketPC\\CabWiz\\TomboE.mips.CAB"],\r
+\r
+       ["Bin\\PocketPC\\SH3", "$buildroot\\PocketPC\\CabWiz\\TomboE.sh3.CAB"],\r
+\r
+       ["Bin\\PocketPC\\ARM", "$buildroot\\PocketPC\\CabWiz\\TomboE.arm.CAB"],\r
+       ["Bin\\PocketPC\\ARM", "$buildroot\\PocketPC\\CabWiz\\TomboVGA_en.arm.CAB"],\r
+\r
+       ["Bin\\WindowsMobile5", "$buildroot\\WindowsMobile5PPC\\CabWiz\\Tombo_en.arm.CAB"],\r
+\r
+       ["Bin\\BE300", "$buildroot\\BE300\\Tombo\\MIPSRel\\Tombo.exe"],\r
+       ["Bin\\BE300", "$buildroot\\Src\\MsgRes\\TomboMsg\\en\\TomboMsg.txt"],\r
+       ["Bin\\BE300", "$buildroot\\oniguruma\\mips\\oniguruma.dll"],\r
+       ["Bin\\BE300", "$buildroot\\HpcPro\\RegErase\\MIPSRel\\RegErase.exe"],\r
+\r
+       @docsEN\r
+);\r
+\r
+@bin_pktpc_arm_en = (\r
+       ["", "$buildroot\\PocketPC\\CabWiz\\TomboE.arm.CAB"],\r
+       ["", "$buildroot\\PocketPC\\CabWiz\\TomboVGA_en.arm.CAB"],\r
+\r
+       @docsEN\r
+);\r
+\r
+@bin_wm5_arm_en = (\r
+       ["", "$buildroot\\WindowsMobile5PPC\\CabWiz\\Tombo_en.arm.CAB"],\r
+       @docsEN\r
+);\r
+\r
+@bin_win32_en = (\r
+       ["", "C:\\temp\\TomboSetupE\\*.*"],\r
+       ["Files", "C:\\temp\\TomboSetupE\\Files\\*.*"],\r
+       ["", "$docroot\\En\\Readme.txt"],\r
+#      ["", "$buildroot\\Win32\\Tombo\\Release\\Tombo.exe"],\r
+#      ["", "$buildroot\\Src\\MsgRes\\TomboMsg\\en\\TomboMsg.txt"],\r
+#      ["", "$buildroot\\oniguruma\\win32\\oniguruma.dll"],\r
+#      ["", "$buildroot\\Win32\\RegErase\\Release\\RegErase.exe"],\r
+#      ["", "$buildroot\\expat\\lib\\Win32\\libexpatw.dll"],\r
+\r
+       @docsEN\r
+);\r
+\r
+##########################################################################\r
+# Program section\r
+##########################################################################\r
+\r
+@archlist = (\r
+       [\@bin_ce_all_jp, "CE-JP", "_ce_all_jp"],\r
+       [\@bin_ce_all_en, "CE-EN", "_ce_all_en"],\r
+       [\@bin_win32_jp, "Win32-JP", "_desktop_jp"],\r
+       [\@bin_win32_en, "Win32-EN", "_desktop_en"],\r
+\r
+       [\@bin_pktpc_arm_jp,"PKTPC-ARM-JP", "_pktpc_arm_jp"],\r
+       [\@bin_pktpc_arm_en,"PKTPC-ARM-EN", "_pktpc_arm_en"],\r
+\r
+       [\@bin_wm5_arm_jp, "WM5-ARM-JP", "_wm5_jp"],\r
+       [\@bin_wm5_arm_en, "WM5-ARM-EN", "_wm5_en"],\r
+\r
+#      [\@bin_sig3, "SIG3", "_sig3"],\r
+\r
+);\r
+\r
+foreach $arch (@archlist) {\r
+       my ($al, $dl, $suffix) = @{$arch};\r
+       &cpfile ("$builddir\\$version\\$dl\\$version", $al);\r
+       &zipfile("$builddir\\$version\\$dl", $suffix, $version);\r
+}\r
+\r
+exit 0;\r
+\r
+##########################################################################\r
+# Subroutines\r
+##########################################################################\r
+\r
+sub cpfile {\r
+       my ($buildto, $list) = @_;\r
+       my ($i, $num);\r
+\r
+       $num = 0;\r
+\r
+       foreach $i (@{$list}) {\r
+               ($dst, $src) = @{$i};\r
+\r
+               # Create directory if not exist.\r
+               mkpath("$buildto\\$dst") || die "mkdir $buildto\\$dst : $!" unless (-d "$buildto\\$dst");\r
+\r
+               # Check file existance and copy it.\r
+               foreach $f (bsd_glob($src)) {\r
+                       die "$f not exist!" unless (-f "$f");\r
+                       print "$f -> $buildto\\$dst\n";\r
+                       copy("$f", "$buildto\\$dst\\") || die "$f : $!";\r
+                       $num++;\r
+               }\r
+       }\r
+       print "Copy $num files.\n";\r
+}\r
+\r
+sub zipfile {\r
+       my ($dir, $suffix, $target) = @_;\r
+       chdir($dir);\r
+       system("$zippg -r ..\\$version$suffix.zip $version");\r
+}\r
diff --git a/etc/vfolder.xml b/etc/vfolder.xml
new file mode 100644 (file)
index 0000000..fbf6e92
--- /dev/null
@@ -0,0 +1,30 @@
+<?xml version='1.0' encoding='UTF-8'?>\r
+<!DOCTYPE folders SYSTEM "TOMBO_vfolder.dtd">\r
+<!-- \r
+Sample file of virtual folder. \r
+Place this file as same folder as Tombo.exe, you may be happy ;-)\r
+\r
+In current version, encoding is allowed only UTF-8 or UTF-16.\r
+-->\r
+\r
+<folders>\r
+  <vfolder name='High priority'>\r
+    <grep pattern='Ass:' not='True'>\r
+      <grep pattern='Pri: H'>\r
+        <src folder="\Todo"/>\r
+      </grep>\r
+    </grep>\r
+  </vfolder>\r
+  <vfolder name='Mid priority'>\r
+    <grep pattern='Ass:' not='True'>\r
+      <grep pattern='Pri: [Mm]'>\r
+        <src folder="\Todo"/>\r
+      </grep>\r
+    </grep>\r
+  </vfolder>\r
+  <vfolder name='Assigned'>\r
+    <grep pattern='Ass: (.*)' >\r
+      <src folder="\Todo"/>\r
+    </grep>\r
+  </vfolder>\r
+</folders>\r
diff --git a/expat/ReadMe.txt b/expat/ReadMe.txt
new file mode 100644 (file)
index 0000000..632fc12
--- /dev/null
@@ -0,0 +1,5 @@
+The files under this folder are part of expat.\r
+\r
+You can get expat from http://www.libexpat.org/ and \r
+please follow a license of Expat when redistributing it.\r
+\r
diff --git a/expat/include/expat.h b/expat/include/expat.h
new file mode 100644 (file)
index 0000000..4bf0338
--- /dev/null
@@ -0,0 +1,926 @@
+/* Copyright (c) 1998, 1999, 2000 Thai Open Source Software Center Ltd\r
+   See the file COPYING for copying permission.\r
+*/\r
+\r
+#ifndef XmlParse_INCLUDED\r
+#define XmlParse_INCLUDED 1\r
+\r
+#ifdef __VMS\r
+/*      0        1         2         3      0        1         2         3\r
+        1234567890123456789012345678901     1234567890123456789012345678901 */\r
+#define XML_SetProcessingInstructionHandler XML_SetProcessingInstrHandler\r
+#define XML_SetUnparsedEntityDeclHandler    XML_SetUnparsedEntDeclHandler\r
+#define XML_SetStartNamespaceDeclHandler    XML_SetStartNamespcDeclHandler\r
+#define XML_SetExternalEntityRefHandlerArg  XML_SetExternalEntRefHandlerArg\r
+#endif\r
+\r
+#include <stdlib.h>\r
+\r
+#ifndef XMLPARSEAPI\r
+#if defined(_MSC_EXTENSIONS) && !defined(__BEOS__) && !defined(__CYGWIN__)\r
+#ifdef XML_STATIC\r
+#define XMLPARSEAPI(type) type __cdecl\r
+#else\r
+#define XMLPARSEAPI(type) __declspec(dllimport) type __cdecl\r
+#endif\r
+#else\r
+#define XMLPARSEAPI(type) type\r
+#endif\r
+#endif  /* not defined XMLPARSEAPI */\r
+\r
+#ifdef __cplusplus\r
+extern "C" {\r
+#endif\r
+\r
+#ifdef XML_UNICODE_WCHAR_T\r
+#define XML_UNICODE\r
+#endif\r
+\r
+struct XML_ParserStruct;\r
+typedef struct XML_ParserStruct *XML_Parser;\r
+\r
+#ifdef XML_UNICODE     /* Information is UTF-16 encoded. */\r
+#ifdef XML_UNICODE_WCHAR_T\r
+typedef wchar_t XML_Char;\r
+typedef wchar_t XML_LChar;\r
+#else\r
+typedef unsigned short XML_Char;\r
+typedef char XML_LChar;\r
+#endif /* XML_UNICODE_WCHAR_T */\r
+#else                  /* Information is UTF-8 encoded. */\r
+typedef char XML_Char;\r
+typedef char XML_LChar;\r
+#endif /* XML_UNICODE */\r
+\r
+/* Should this be defined using stdbool.h when C99 is available? */\r
+typedef unsigned char XML_Bool;\r
+#define XML_TRUE   ((XML_Bool) 1)\r
+#define XML_FALSE  ((XML_Bool) 0)\r
+\r
+enum XML_Error {\r
+  XML_ERROR_NONE,\r
+  XML_ERROR_NO_MEMORY,\r
+  XML_ERROR_SYNTAX,\r
+  XML_ERROR_NO_ELEMENTS,\r
+  XML_ERROR_INVALID_TOKEN,\r
+  XML_ERROR_UNCLOSED_TOKEN,\r
+  XML_ERROR_PARTIAL_CHAR,\r
+  XML_ERROR_TAG_MISMATCH,\r
+  XML_ERROR_DUPLICATE_ATTRIBUTE,\r
+  XML_ERROR_JUNK_AFTER_DOC_ELEMENT,\r
+  XML_ERROR_PARAM_ENTITY_REF,\r
+  XML_ERROR_UNDEFINED_ENTITY,\r
+  XML_ERROR_RECURSIVE_ENTITY_REF,\r
+  XML_ERROR_ASYNC_ENTITY,\r
+  XML_ERROR_BAD_CHAR_REF,\r
+  XML_ERROR_BINARY_ENTITY_REF,\r
+  XML_ERROR_ATTRIBUTE_EXTERNAL_ENTITY_REF,\r
+  XML_ERROR_MISPLACED_XML_PI,\r
+  XML_ERROR_UNKNOWN_ENCODING,\r
+  XML_ERROR_INCORRECT_ENCODING,\r
+  XML_ERROR_UNCLOSED_CDATA_SECTION,\r
+  XML_ERROR_EXTERNAL_ENTITY_HANDLING,\r
+  XML_ERROR_NOT_STANDALONE,\r
+  XML_ERROR_UNEXPECTED_STATE,\r
+  XML_ERROR_ENTITY_DECLARED_IN_PE,\r
+  XML_ERROR_FEATURE_REQUIRES_XML_DTD,\r
+  XML_ERROR_CANT_CHANGE_FEATURE_ONCE_PARSING\r
+};\r
+\r
+enum XML_Content_Type {\r
+  XML_CTYPE_EMPTY = 1,\r
+  XML_CTYPE_ANY,\r
+  XML_CTYPE_MIXED,\r
+  XML_CTYPE_NAME,\r
+  XML_CTYPE_CHOICE,\r
+  XML_CTYPE_SEQ\r
+};\r
+\r
+enum XML_Content_Quant {\r
+  XML_CQUANT_NONE,\r
+  XML_CQUANT_OPT,\r
+  XML_CQUANT_REP,\r
+  XML_CQUANT_PLUS\r
+};\r
+\r
+/* If type == XML_CTYPE_EMPTY or XML_CTYPE_ANY, then quant will be\r
+   XML_CQUANT_NONE, and the other fields will be zero or NULL.\r
+   If type == XML_CTYPE_MIXED, then quant will be NONE or REP and\r
+   numchildren will contain number of elements that may be mixed in\r
+   and children point to an array of XML_Content cells that will be\r
+   all of XML_CTYPE_NAME type with no quantification.\r
+\r
+   If type == XML_CTYPE_NAME, then the name points to the name, and\r
+   the numchildren field will be zero and children will be NULL. The\r
+   quant fields indicates any quantifiers placed on the name.\r
+\r
+   CHOICE and SEQ will have name NULL, the number of children in\r
+   numchildren and children will point, recursively, to an array\r
+   of XML_Content cells.\r
+\r
+   The EMPTY, ANY, and MIXED types will only occur at top level.\r
+*/\r
+\r
+typedef struct XML_cp XML_Content;\r
+\r
+struct XML_cp {\r
+  enum XML_Content_Type         type;\r
+  enum XML_Content_Quant        quant;\r
+  XML_Char *                    name;\r
+  unsigned int                  numchildren;\r
+  XML_Content *                 children;\r
+};\r
+\r
+\r
+/* This is called for an element declaration. See above for\r
+   description of the model argument. It's the caller's responsibility\r
+   to free model when finished with it.\r
+*/\r
+typedef void (*XML_ElementDeclHandler) (void *userData,\r
+                                        const XML_Char *name,\r
+                                        XML_Content *model);\r
+\r
+XMLPARSEAPI(void)\r
+XML_SetElementDeclHandler(XML_Parser parser,\r
+                          XML_ElementDeclHandler eldecl);\r
+\r
+/* The Attlist declaration handler is called for *each* attribute. So\r
+   a single Attlist declaration with multiple attributes declared will\r
+   generate multiple calls to this handler. The "default" parameter\r
+   may be NULL in the case of the "#IMPLIED" or "#REQUIRED"\r
+   keyword. The "isrequired" parameter will be true and the default\r
+   value will be NULL in the case of "#REQUIRED". If "isrequired" is\r
+   true and default is non-NULL, then this is a "#FIXED" default.\r
+*/\r
+typedef void (*XML_AttlistDeclHandler) (void           *userData,\r
+                                        const XML_Char *elname,\r
+                                        const XML_Char *attname,\r
+                                        const XML_Char *att_type,\r
+                                        const XML_Char *dflt,\r
+                                        int             isrequired);\r
+\r
+XMLPARSEAPI(void)\r
+XML_SetAttlistDeclHandler(XML_Parser parser,\r
+                          XML_AttlistDeclHandler attdecl);\r
+\r
+/* The XML declaration handler is called for *both* XML declarations\r
+   and text declarations. The way to distinguish is that the version\r
+   parameter will be NULL for text declarations. The encoding\r
+   parameter may be NULL for XML declarations. The standalone\r
+   parameter will be -1, 0, or 1 indicating respectively that there\r
+   was no standalone parameter in the declaration, that it was given\r
+   as no, or that it was given as yes.\r
+*/\r
+typedef void (*XML_XmlDeclHandler) (void                *userData,\r
+                                    const XML_Char      *version,\r
+                                    const XML_Char      *encoding,\r
+                                    int                  standalone);\r
+\r
+XMLPARSEAPI(void)\r
+XML_SetXmlDeclHandler(XML_Parser parser,\r
+                      XML_XmlDeclHandler xmldecl);\r
+\r
+\r
+typedef struct {\r
+  void *(*malloc_fcn)(size_t size);\r
+  void *(*realloc_fcn)(void *ptr, size_t size);\r
+  void (*free_fcn)(void *ptr);\r
+} XML_Memory_Handling_Suite;\r
+\r
+/* Constructs a new parser; encoding is the encoding specified by the\r
+   external protocol or NULL if there is none specified.\r
+*/\r
+XMLPARSEAPI(XML_Parser)\r
+XML_ParserCreate(const XML_Char *encoding);\r
+\r
+/* Constructs a new parser and namespace processor.  Element type\r
+   names and attribute names that belong to a namespace will be\r
+   expanded; unprefixed attribute names are never expanded; unprefixed\r
+   element type names are expanded only if there is a default\r
+   namespace. The expanded name is the concatenation of the namespace\r
+   URI, the namespace separator character, and the local part of the\r
+   name.  If the namespace separator is '\0' then the namespace URI\r
+   and the local part will be concatenated without any separator.\r
+   When a namespace is not declared, the name and prefix will be\r
+   passed through without expansion.\r
+*/\r
+XMLPARSEAPI(XML_Parser)\r
+XML_ParserCreateNS(const XML_Char *encoding, XML_Char namespaceSeparator);\r
+\r
+\r
+/* Constructs a new parser using the memory management suite referred to\r
+   by memsuite. If memsuite is NULL, then use the standard library memory\r
+   suite. If namespaceSeparator is non-NULL it creates a parser with\r
+   namespace processing as described above. The character pointed at\r
+   will serve as the namespace separator.\r
+\r
+   All further memory operations used for the created parser will come from\r
+   the given suite.\r
+*/\r
+XMLPARSEAPI(XML_Parser)\r
+XML_ParserCreate_MM(const XML_Char *encoding,\r
+                    const XML_Memory_Handling_Suite *memsuite,\r
+                    const XML_Char *namespaceSeparator);\r
+\r
+/* Prepare a parser object to be re-used.  This is particularly\r
+   valuable when memory allocation overhead is disproportionatly high,\r
+   such as when a large number of small documnents need to be parsed.\r
+   All handlers are cleared from the parser, except for the\r
+   unknownEncodingHandler. The parser's external state is re-initialized\r
+   except for the values of ns and ns_triplets.\r
+\r
+   Added in Expat 1.95.3.\r
+*/\r
+XMLPARSEAPI(XML_Bool)\r
+XML_ParserReset(XML_Parser parser, const XML_Char *encoding);\r
+\r
+/* atts is array of name/value pairs, terminated by 0;\r
+   names and values are 0 terminated.\r
+*/\r
+typedef void (*XML_StartElementHandler)(void *userData,\r
+                                        const XML_Char *name,\r
+                                        const XML_Char **atts);\r
+\r
+typedef void (*XML_EndElementHandler)(void *userData,\r
+                                      const XML_Char *name);\r
+\r
+\r
+/* s is not 0 terminated. */\r
+typedef void (*XML_CharacterDataHandler)(void *userData,\r
+                                         const XML_Char *s,\r
+                                         int len);\r
+\r
+/* target and data are 0 terminated */\r
+typedef void (*XML_ProcessingInstructionHandler)(void *userData,\r
+                                                 const XML_Char *target,\r
+                                                 const XML_Char *data);\r
+\r
+/* data is 0 terminated */\r
+typedef void (*XML_CommentHandler)(void *userData, const XML_Char *data);\r
+\r
+typedef void (*XML_StartCdataSectionHandler)(void *userData);\r
+typedef void (*XML_EndCdataSectionHandler)(void *userData);\r
+\r
+/* This is called for any characters in the XML document for which\r
+   there is no applicable handler.  This includes both characters that\r
+   are part of markup which is of a kind that is not reported\r
+   (comments, markup declarations), or characters that are part of a\r
+   construct which could be reported but for which no handler has been\r
+   supplied. The characters are passed exactly as they were in the XML\r
+   document except that they will be encoded in UTF-8 or UTF-16.\r
+   Line boundaries are not normalized. Note that a byte order mark\r
+   character is not passed to the default handler. There are no\r
+   guarantees about how characters are divided between calls to the\r
+   default handler: for example, a comment might be split between\r
+   multiple calls.\r
+*/\r
+typedef void (*XML_DefaultHandler)(void *userData,\r
+                                   const XML_Char *s,\r
+                                   int len);\r
+\r
+/* This is called for the start of the DOCTYPE declaration, before\r
+   any DTD or internal subset is parsed.\r
+*/\r
+typedef void (*XML_StartDoctypeDeclHandler)(void *userData,\r
+                                            const XML_Char *doctypeName,\r
+                                            const XML_Char *sysid,\r
+                                            const XML_Char *pubid,\r
+                                            int has_internal_subset);\r
+\r
+/* This is called for the start of the DOCTYPE declaration when the\r
+   closing > is encountered, but after processing any external\r
+   subset.\r
+*/\r
+typedef void (*XML_EndDoctypeDeclHandler)(void *userData);\r
+\r
+/* This is called for entity declarations. The is_parameter_entity\r
+   argument will be non-zero if the entity is a parameter entity, zero\r
+   otherwise.\r
+\r
+   For internal entities (<!ENTITY foo "bar">), value will\r
+   be non-NULL and systemId, publicID, and notationName will be NULL.\r
+   The value string is NOT nul-terminated; the length is provided in\r
+   the value_length argument. Since it is legal to have zero-length\r
+   values, do not use this argument to test for internal entities.\r
+\r
+   For external entities, value will be NULL and systemId will be\r
+   non-NULL. The publicId argument will be NULL unless a public\r
+   identifier was provided. The notationName argument will have a\r
+   non-NULL value only for unparsed entity declarations.\r
+\r
+   Note that is_parameter_entity can't be changed to XML_Bool, since\r
+   that would break binary compatibility.\r
+*/\r
+typedef void (*XML_EntityDeclHandler) (void *userData,\r
+                                       const XML_Char *entityName,\r
+                                       int is_parameter_entity,\r
+                                       const XML_Char *value,\r
+                                       int value_length,\r
+                                       const XML_Char *base,\r
+                                       const XML_Char *systemId,\r
+                                       const XML_Char *publicId,\r
+                                       const XML_Char *notationName);\r
+\r
+XMLPARSEAPI(void)\r
+XML_SetEntityDeclHandler(XML_Parser parser,\r
+                         XML_EntityDeclHandler handler);\r
+\r
+/* OBSOLETE -- OBSOLETE -- OBSOLETE\r
+   This handler has been superceded by the EntityDeclHandler above.\r
+   It is provided here for backward compatibility.\r
+\r
+   This is called for a declaration of an unparsed (NDATA) entity.\r
+   The base argument is whatever was set by XML_SetBase. The\r
+   entityName, systemId and notationName arguments will never be\r
+   NULL. The other arguments may be.\r
+*/\r
+typedef void (*XML_UnparsedEntityDeclHandler)(void *userData,\r
+                                              const XML_Char *entityName,\r
+                                              const XML_Char *base,\r
+                                              const XML_Char *systemId,\r
+                                              const XML_Char *publicId,\r
+                                              const XML_Char *notationName);\r
+\r
+/* This is called for a declaration of notation.  The base argument is\r
+   whatever was set by XML_SetBase. The notationName will never be\r
+   NULL.  The other arguments can be.\r
+*/\r
+typedef void (*XML_NotationDeclHandler)(void *userData,\r
+                                        const XML_Char *notationName,\r
+                                        const XML_Char *base,\r
+                                        const XML_Char *systemId,\r
+                                        const XML_Char *publicId);\r
+\r
+/* When namespace processing is enabled, these are called once for\r
+   each namespace declaration. The call to the start and end element\r
+   handlers occur between the calls to the start and end namespace\r
+   declaration handlers. For an xmlns attribute, prefix will be\r
+   NULL.  For an xmlns="" attribute, uri will be NULL.\r
+*/\r
+typedef void (*XML_StartNamespaceDeclHandler)(void *userData,\r
+                                              const XML_Char *prefix,\r
+                                              const XML_Char *uri);\r
+\r
+typedef void (*XML_EndNamespaceDeclHandler)(void *userData,\r
+                                            const XML_Char *prefix);\r
+\r
+/* This is called if the document is not standalone, that is, it has an\r
+   external subset or a reference to a parameter entity, but does not\r
+   have standalone="yes". If this handler returns XML_STATUS_ERROR,\r
+   then processing will not continue, and the parser will return a\r
+   XML_ERROR_NOT_STANDALONE error.\r
+   If parameter entity parsing is enabled, then in addition to the\r
+   conditions above this handler will only be called if the referenced\r
+   entity was actually read.\r
+*/\r
+typedef int (*XML_NotStandaloneHandler)(void *userData);\r
+\r
+/* This is called for a reference to an external parsed general\r
+   entity.  The referenced entity is not automatically parsed.  The\r
+   application can parse it immediately or later using\r
+   XML_ExternalEntityParserCreate.\r
+\r
+   The parser argument is the parser parsing the entity containing the\r
+   reference; it can be passed as the parser argument to\r
+   XML_ExternalEntityParserCreate.  The systemId argument is the\r
+   system identifier as specified in the entity declaration; it will\r
+   not be NULL.\r
+\r
+   The base argument is the system identifier that should be used as\r
+   the base for resolving systemId if systemId was relative; this is\r
+   set by XML_SetBase; it may be NULL.\r
+\r
+   The publicId argument is the public identifier as specified in the\r
+   entity declaration, or NULL if none was specified; the whitespace\r
+   in the public identifier will have been normalized as required by\r
+   the XML spec.\r
+\r
+   The context argument specifies the parsing context in the format\r
+   expected by the context argument to XML_ExternalEntityParserCreate;\r
+   context is valid only until the handler returns, so if the\r
+   referenced entity is to be parsed later, it must be copied.\r
+   context is NULL only when the entity is a parameter entity.\r
+\r
+   The handler should return XML_STATUS_ERROR if processing should not\r
+   continue because of a fatal error in the handling of the external\r
+   entity.  In this case the calling parser will return an\r
+   XML_ERROR_EXTERNAL_ENTITY_HANDLING error.\r
+\r
+   Note that unlike other handlers the first argument is the parser,\r
+   not userData.\r
+*/\r
+typedef int (*XML_ExternalEntityRefHandler)(XML_Parser parser,\r
+                                            const XML_Char *context,\r
+                                            const XML_Char *base,\r
+                                            const XML_Char *systemId,\r
+                                            const XML_Char *publicId);\r
+\r
+/* This is called in two situations:\r
+   1) An entity reference is encountered for which no declaration\r
+      has been read *and* this is not an error.\r
+   2) An internal entity reference is read, but not expanded, because\r
+      XML_SetDefaultHandler has been called.\r
+   Note: skipped parameter entities in declarations and skipped general\r
+         entities in attribute values cannot be reported, because\r
+         the event would be out of sync with the reporting of the\r
+         declarations or attribute values\r
+*/\r
+typedef void (*XML_SkippedEntityHandler)(void *userData,\r
+                                         const XML_Char *entityName,\r
+                                         int is_parameter_entity);\r
+\r
+/* This structure is filled in by the XML_UnknownEncodingHandler to\r
+   provide information to the parser about encodings that are unknown\r
+   to the parser.\r
+\r
+   The map[b] member gives information about byte sequences whose\r
+   first byte is b.\r
+\r
+   If map[b] is c where c is >= 0, then b by itself encodes the\r
+   Unicode scalar value c.\r
+\r
+   If map[b] is -1, then the byte sequence is malformed.\r
+\r
+   If map[b] is -n, where n >= 2, then b is the first byte of an\r
+   n-byte sequence that encodes a single Unicode scalar value.\r
+\r
+   The data member will be passed as the first argument to the convert\r
+   function.\r
+\r
+   The convert function is used to convert multibyte sequences; s will\r
+   point to a n-byte sequence where map[(unsigned char)*s] == -n.  The\r
+   convert function must return the Unicode scalar value represented\r
+   by this byte sequence or -1 if the byte sequence is malformed.\r
+\r
+   The convert function may be NULL if the encoding is a single-byte\r
+   encoding, that is if map[b] >= -1 for all bytes b.\r
+\r
+   When the parser is finished with the encoding, then if release is\r
+   not NULL, it will call release passing it the data member; once\r
+   release has been called, the convert function will not be called\r
+   again.\r
+\r
+   Expat places certain restrictions on the encodings that are supported\r
+   using this mechanism.\r
+\r
+   1. Every ASCII character that can appear in a well-formed XML document,\r
+      other than the characters\r
+\r
+      $@\^`{}~\r
+\r
+      must be represented by a single byte, and that byte must be the\r
+      same byte that represents that character in ASCII.\r
+\r
+   2. No character may require more than 4 bytes to encode.\r
+\r
+   3. All characters encoded must have Unicode scalar values <=\r
+      0xFFFF, (i.e., characters that would be encoded by surrogates in\r
+      UTF-16 are  not allowed).  Note that this restriction doesn't\r
+      apply to the built-in support for UTF-8 and UTF-16.\r
+\r
+   4. No Unicode character may be encoded by more than one distinct\r
+      sequence of bytes.\r
+*/\r
+typedef struct {\r
+  int map[256];\r
+  void *data;\r
+  int (*convert)(void *data, const char *s);\r
+  void (*release)(void *data);\r
+} XML_Encoding;\r
+\r
+/* This is called for an encoding that is unknown to the parser.\r
+\r
+   The encodingHandlerData argument is that which was passed as the\r
+   second argument to XML_SetUnknownEncodingHandler.\r
+\r
+   The name argument gives the name of the encoding as specified in\r
+   the encoding declaration.\r
+\r
+   If the callback can provide information about the encoding, it must\r
+   fill in the XML_Encoding structure, and return XML_STATUS_OK.\r
+   Otherwise it must return XML_STATUS_ERROR.\r
+\r
+   If info does not describe a suitable encoding, then the parser will\r
+   return an XML_UNKNOWN_ENCODING error.\r
+*/\r
+typedef int (*XML_UnknownEncodingHandler)(void *encodingHandlerData,\r
+                                          const XML_Char *name,\r
+                                          XML_Encoding *info);\r
+\r
+XMLPARSEAPI(void)\r
+XML_SetElementHandler(XML_Parser parser,\r
+                      XML_StartElementHandler start,\r
+                      XML_EndElementHandler end);\r
+\r
+XMLPARSEAPI(void)\r
+XML_SetStartElementHandler(XML_Parser, XML_StartElementHandler);\r
+\r
+XMLPARSEAPI(void)\r
+XML_SetEndElementHandler(XML_Parser, XML_EndElementHandler);\r
+\r
+XMLPARSEAPI(void)\r
+XML_SetCharacterDataHandler(XML_Parser parser,\r
+                            XML_CharacterDataHandler handler);\r
+\r
+XMLPARSEAPI(void)\r
+XML_SetProcessingInstructionHandler(XML_Parser parser,\r
+                                    XML_ProcessingInstructionHandler handler);\r
+XMLPARSEAPI(void)\r
+XML_SetCommentHandler(XML_Parser parser,\r
+                      XML_CommentHandler handler);\r
+\r
+XMLPARSEAPI(void)\r
+XML_SetCdataSectionHandler(XML_Parser parser,\r
+                           XML_StartCdataSectionHandler start,\r
+                           XML_EndCdataSectionHandler end);\r
+\r
+XMLPARSEAPI(void)\r
+XML_SetStartCdataSectionHandler(XML_Parser parser,\r
+                                XML_StartCdataSectionHandler start);\r
+\r
+XMLPARSEAPI(void)\r
+XML_SetEndCdataSectionHandler(XML_Parser parser,\r
+                              XML_EndCdataSectionHandler end);\r
+\r
+/* This sets the default handler and also inhibits expansion of\r
+   internal entities. These entity references will be passed to the\r
+   default handler, or to the skipped entity handler, if one is set.\r
+*/\r
+XMLPARSEAPI(void)\r
+XML_SetDefaultHandler(XML_Parser parser,\r
+                      XML_DefaultHandler handler);\r
+\r
+/* This sets the default handler but does not inhibit expansion of\r
+   internal entities.  The entity reference will not be passed to the\r
+   default handler.\r
+*/\r
+XMLPARSEAPI(void)\r
+XML_SetDefaultHandlerExpand(XML_Parser parser,\r
+                            XML_DefaultHandler handler);\r
+\r
+XMLPARSEAPI(void)\r
+XML_SetDoctypeDeclHandler(XML_Parser parser,\r
+                          XML_StartDoctypeDeclHandler start,\r
+                          XML_EndDoctypeDeclHandler end);\r
+\r
+XMLPARSEAPI(void)\r
+XML_SetStartDoctypeDeclHandler(XML_Parser parser,\r
+                               XML_StartDoctypeDeclHandler start);\r
+\r
+XMLPARSEAPI(void)\r
+XML_SetEndDoctypeDeclHandler(XML_Parser parser,\r
+                             XML_EndDoctypeDeclHandler end);\r
+\r
+XMLPARSEAPI(void)\r
+XML_SetUnparsedEntityDeclHandler(XML_Parser parser,\r
+                                 XML_UnparsedEntityDeclHandler handler);\r
+\r
+XMLPARSEAPI(void)\r
+XML_SetNotationDeclHandler(XML_Parser parser,\r
+                           XML_NotationDeclHandler handler);\r
+\r
+XMLPARSEAPI(void)\r
+XML_SetNamespaceDeclHandler(XML_Parser parser,\r
+                            XML_StartNamespaceDeclHandler start,\r
+                            XML_EndNamespaceDeclHandler end);\r
+\r
+XMLPARSEAPI(void)\r
+XML_SetStartNamespaceDeclHandler(XML_Parser parser,\r
+                                 XML_StartNamespaceDeclHandler start);\r
+\r
+XMLPARSEAPI(void)\r
+XML_SetEndNamespaceDeclHandler(XML_Parser parser,\r
+                               XML_EndNamespaceDeclHandler end);\r
+\r
+XMLPARSEAPI(void)\r
+XML_SetNotStandaloneHandler(XML_Parser parser,\r
+                            XML_NotStandaloneHandler handler);\r
+\r
+XMLPARSEAPI(void)\r
+XML_SetExternalEntityRefHandler(XML_Parser parser,\r
+                                XML_ExternalEntityRefHandler handler);\r
+\r
+/* If a non-NULL value for arg is specified here, then it will be\r
+   passed as the first argument to the external entity ref handler\r
+   instead of the parser object.\r
+*/\r
+XMLPARSEAPI(void)\r
+XML_SetExternalEntityRefHandlerArg(XML_Parser, void *arg);\r
+\r
+XMLPARSEAPI(void)\r
+XML_SetSkippedEntityHandler(XML_Parser parser,\r
+                            XML_SkippedEntityHandler handler);\r
+\r
+XMLPARSEAPI(void)\r
+XML_SetUnknownEncodingHandler(XML_Parser parser,\r
+                              XML_UnknownEncodingHandler handler,\r
+                              void *encodingHandlerData);\r
+\r
+/* This can be called within a handler for a start element, end\r
+   element, processing instruction or character data.  It causes the\r
+   corresponding markup to be passed to the default handler.\r
+*/\r
+XMLPARSEAPI(void)\r
+XML_DefaultCurrent(XML_Parser parser);\r
+\r
+/* If do_nst is non-zero, and namespace processing is in effect, and\r
+   a name has a prefix (i.e. an explicit namespace qualifier) then\r
+   that name is returned as a triplet in a single string separated by\r
+   the separator character specified when the parser was created: URI\r
+   + sep + local_name + sep + prefix.\r
+\r
+   If do_nst is zero, then namespace information is returned in the\r
+   default manner (URI + sep + local_name) whether or not the name\r
+   has a prefix.\r
+\r
+   Note: Calling XML_SetReturnNSTriplet after XML_Parse or\r
+     XML_ParseBuffer has no effect.\r
+*/\r
+\r
+XMLPARSEAPI(void)\r
+XML_SetReturnNSTriplet(XML_Parser parser, int do_nst);\r
+\r
+/* This value is passed as the userData argument to callbacks. */\r
+XMLPARSEAPI(void)\r
+XML_SetUserData(XML_Parser parser, void *userData);\r
+\r
+/* Returns the last value set by XML_SetUserData or NULL. */\r
+#define XML_GetUserData(parser) (*(void **)(parser))\r
+\r
+/* This is equivalent to supplying an encoding argument to\r
+   XML_ParserCreate. On success XML_SetEncoding returns non-zero,\r
+   zero otherwise.\r
+   Note: Calling XML_SetEncoding after XML_Parse or XML_ParseBuffer\r
+     has no effect and returns XML_STATUS_ERROR.\r
+*/\r
+XMLPARSEAPI(enum XML_Status)\r
+XML_SetEncoding(XML_Parser parser, const XML_Char *encoding);\r
+\r
+/* If this function is called, then the parser will be passed as the\r
+   first argument to callbacks instead of userData.  The userData will\r
+   still be accessible using XML_GetUserData.\r
+*/\r
+XMLPARSEAPI(void)\r
+XML_UseParserAsHandlerArg(XML_Parser parser);\r
+\r
+/* If useDTD == XML_TRUE is passed to this function, then the parser\r
+   will assume that there is an external subset, even if none is\r
+   specified in the document. In such a case the parser will call the\r
+   externalEntityRefHandler with a value of NULL for the systemId\r
+   argument (the publicId and context arguments will be NULL as well).\r
+   Note: If this function is called, then this must be done before\r
+     the first call to XML_Parse or XML_ParseBuffer, since it will\r
+     have no effect after that.  Returns\r
+     XML_ERROR_CANT_CHANGE_FEATURE_ONCE_PARSING.\r
+   Note: If the document does not have a DOCTYPE declaration at all,\r
+     then startDoctypeDeclHandler and endDoctypeDeclHandler will not\r
+     be called, despite an external subset being parsed.\r
+   Note: If XML_DTD is not defined when Expat is compiled, returns\r
+     XML_ERROR_FEATURE_REQUIRES_XML_DTD.\r
+*/\r
+XMLPARSEAPI(enum XML_Error)\r
+XML_UseForeignDTD(XML_Parser parser, XML_Bool useDTD);\r
+\r
+\r
+/* Sets the base to be used for resolving relative URIs in system\r
+   identifiers in declarations.  Resolving relative identifiers is\r
+   left to the application: this value will be passed through as the\r
+   base argument to the XML_ExternalEntityRefHandler,\r
+   XML_NotationDeclHandler and XML_UnparsedEntityDeclHandler. The base\r
+   argument will be copied.  Returns XML_STATUS_ERROR if out of memory,\r
+   XML_STATUS_OK otherwise.\r
+*/\r
+XMLPARSEAPI(enum XML_Status)\r
+XML_SetBase(XML_Parser parser, const XML_Char *base);\r
+\r
+XMLPARSEAPI(const XML_Char *)\r
+XML_GetBase(XML_Parser parser);\r
+\r
+/* Returns the number of the attribute/value pairs passed in last call\r
+   to the XML_StartElementHandler that were specified in the start-tag\r
+   rather than defaulted. Each attribute/value pair counts as 2; thus\r
+   this correspondds to an index into the atts array passed to the\r
+   XML_StartElementHandler.\r
+*/\r
+XMLPARSEAPI(int)\r
+XML_GetSpecifiedAttributeCount(XML_Parser parser);\r
+\r
+/* Returns the index of the ID attribute passed in the last call to\r
+   XML_StartElementHandler, or -1 if there is no ID attribute.  Each\r
+   attribute/value pair counts as 2; thus this correspondds to an\r
+   index into the atts array passed to the XML_StartElementHandler.\r
+*/\r
+XMLPARSEAPI(int)\r
+XML_GetIdAttributeIndex(XML_Parser parser);\r
+\r
+/* Parses some input. Returns XML_STATUS_ERROR if a fatal error is\r
+   detected.  The last call to XML_Parse must have isFinal true; len\r
+   may be zero for this call (or any other).\r
+\r
+   The XML_Status enum gives the possible return values for the\r
+   XML_Parse and XML_ParseBuffer functions.  Though the return values\r
+   for these functions has always been described as a Boolean value,\r
+   the implementation, at least for the 1.95.x series, has always\r
+   returned exactly one of these values.  The preprocessor #defines\r
+   are included so this stanza can be added to code that still needs\r
+   to support older versions of Expat 1.95.x:\r
+\r
+   #ifndef XML_STATUS_OK\r
+   #define XML_STATUS_OK    1\r
+   #define XML_STATUS_ERROR 0\r
+   #endif\r
+\r
+   Otherwise, the #define hackery is quite ugly and would have been dropped.\r
+*/\r
+enum XML_Status {\r
+  XML_STATUS_ERROR = 0,\r
+#define XML_STATUS_ERROR XML_STATUS_ERROR\r
+  XML_STATUS_OK = 1\r
+#define XML_STATUS_OK XML_STATUS_OK\r
+};\r
+\r
+XMLPARSEAPI(enum XML_Status)\r
+XML_Parse(XML_Parser parser, const char *s, int len, int isFinal);\r
+\r
+XMLPARSEAPI(void *)\r
+XML_GetBuffer(XML_Parser parser, int len);\r
+\r
+XMLPARSEAPI(enum XML_Status)\r
+XML_ParseBuffer(XML_Parser parser, int len, int isFinal);\r
+\r
+/* Creates an XML_Parser object that can parse an external general\r
+   entity; context is a '\0'-terminated string specifying the parse\r
+   context; encoding is a '\0'-terminated string giving the name of\r
+   the externally specified encoding, or NULL if there is no\r
+   externally specified encoding.  The context string consists of a\r
+   sequence of tokens separated by formfeeds (\f); a token consisting\r
+   of a name specifies that the general entity of the name is open; a\r
+   token of the form prefix=uri specifies the namespace for a\r
+   particular prefix; a token of the form =uri specifies the default\r
+   namespace.  This can be called at any point after the first call to\r
+   an ExternalEntityRefHandler so longer as the parser has not yet\r
+   been freed.  The new parser is completely independent and may\r
+   safely be used in a separate thread.  The handlers and userData are\r
+   initialized from the parser argument.  Returns NULL if out of memory.\r
+   Otherwise returns a new XML_Parser object.\r
+*/\r
+XMLPARSEAPI(XML_Parser)\r
+XML_ExternalEntityParserCreate(XML_Parser parser,\r
+                               const XML_Char *context,\r
+                               const XML_Char *encoding);\r
+\r
+enum XML_ParamEntityParsing {\r
+  XML_PARAM_ENTITY_PARSING_NEVER,\r
+  XML_PARAM_ENTITY_PARSING_UNLESS_STANDALONE,\r
+  XML_PARAM_ENTITY_PARSING_ALWAYS\r
+};\r
+\r
+/* Controls parsing of parameter entities (including the external DTD\r
+   subset). If parsing of parameter entities is enabled, then\r
+   references to external parameter entities (including the external\r
+   DTD subset) will be passed to the handler set with\r
+   XML_SetExternalEntityRefHandler.  The context passed will be 0.\r
+\r
+   Unlike external general entities, external parameter entities can\r
+   only be parsed synchronously.  If the external parameter entity is\r
+   to be parsed, it must be parsed during the call to the external\r
+   entity ref handler: the complete sequence of\r
+   XML_ExternalEntityParserCreate, XML_Parse/XML_ParseBuffer and\r
+   XML_ParserFree calls must be made during this call.  After\r
+   XML_ExternalEntityParserCreate has been called to create the parser\r
+   for the external parameter entity (context must be 0 for this\r
+   call), it is illegal to make any calls on the old parser until\r
+   XML_ParserFree has been called on the newly created parser.\r
+   If the library has been compiled without support for parameter\r
+   entity parsing (ie without XML_DTD being defined), then\r
+   XML_SetParamEntityParsing will return 0 if parsing of parameter\r
+   entities is requested; otherwise it will return non-zero.\r
+   Note: If XML_SetParamEntityParsing is called after XML_Parse or\r
+      XML_ParseBuffer, then it has no effect and will always return 0.\r
+*/\r
+XMLPARSEAPI(int)\r
+XML_SetParamEntityParsing(XML_Parser parser,\r
+                          enum XML_ParamEntityParsing parsing);\r
+\r
+/* If XML_Parse or XML_ParseBuffer have returned XML_STATUS_ERROR, then\r
+   XML_GetErrorCode returns information about the error.\r
+*/\r
+XMLPARSEAPI(enum XML_Error)\r
+XML_GetErrorCode(XML_Parser parser);\r
+\r
+/* These functions return information about the current parse\r
+   location.  They may be called from any callback called to report\r
+   some parse event; in this case the location is the location of\r
+   the first of the sequence of characters that generated the event. \r
+   \r
+   They may also be called after returning from a call to XML_Parse\r
+   or XML_ParseBuffer.  If the return value is XML_STATUS_ERROR then\r
+   the location is the location of the character at which the error\r
+   was detected; otherwise the location is the location of the last\r
+   parse event, as described above.\r
+*/\r
+XMLPARSEAPI(int) XML_GetCurrentLineNumber(XML_Parser parser);\r
+XMLPARSEAPI(int) XML_GetCurrentColumnNumber(XML_Parser parser);\r
+XMLPARSEAPI(long) XML_GetCurrentByteIndex(XML_Parser parser);\r
+\r
+/* Return the number of bytes in the current event.\r
+   Returns 0 if the event is in an internal entity.\r
+*/\r
+XMLPARSEAPI(int)\r
+XML_GetCurrentByteCount(XML_Parser parser);\r
+\r
+/* If XML_CONTEXT_BYTES is defined, returns the input buffer, sets\r
+   the integer pointed to by offset to the offset within this buffer\r
+   of the current parse position, and sets the integer pointed to by size\r
+   to the size of this buffer (the number of input bytes). Otherwise\r
+   returns a NULL pointer. Also returns a NULL pointer if a parse isn't\r
+   active.\r
+\r
+   NOTE: The character pointer returned should not be used outside\r
+   the handler that makes the call.\r
+*/\r
+XMLPARSEAPI(const char *)\r
+XML_GetInputContext(XML_Parser parser,\r
+                    int *offset,\r
+                    int *size);\r
+\r
+/* For backwards compatibility with previous versions. */\r
+#define XML_GetErrorLineNumber   XML_GetCurrentLineNumber\r
+#define XML_GetErrorColumnNumber XML_GetCurrentColumnNumber\r
+#define XML_GetErrorByteIndex    XML_GetCurrentByteIndex\r
+\r
+/* Frees the content model passed to the element declaration handler */\r
+XMLPARSEAPI(void)\r
+XML_FreeContentModel(XML_Parser parser, XML_Content *model);\r
+\r
+/* Exposing the memory handling functions used in Expat */\r
+XMLPARSEAPI(void *)\r
+XML_MemMalloc(XML_Parser parser, size_t size);\r
+\r
+XMLPARSEAPI(void *)\r
+XML_MemRealloc(XML_Parser parser, void *ptr, size_t size);\r
+\r
+XMLPARSEAPI(void)\r
+XML_MemFree(XML_Parser parser, void *ptr);\r
+\r
+/* Frees memory used by the parser. */\r
+XMLPARSEAPI(void)\r
+XML_ParserFree(XML_Parser parser);\r
+\r
+/* Returns a string describing the error. */\r
+XMLPARSEAPI(const XML_LChar *)\r
+XML_ErrorString(enum XML_Error code);\r
+\r
+/* Return a string containing the version number of this expat */\r
+XMLPARSEAPI(const XML_LChar *)\r
+XML_ExpatVersion(void);\r
+\r
+typedef struct {\r
+  int major;\r
+  int minor;\r
+  int micro;\r
+} XML_Expat_Version;\r
+\r
+/* Return an XML_Expat_Version structure containing numeric version\r
+   number information for this version of expat.\r
+*/\r
+XMLPARSEAPI(XML_Expat_Version)\r
+XML_ExpatVersionInfo(void);\r
+\r
+/* Added in Expat 1.95.5. */\r
+enum XML_FeatureEnum {\r
+  XML_FEATURE_END = 0,\r
+  XML_FEATURE_UNICODE,\r
+  XML_FEATURE_UNICODE_WCHAR_T,\r
+  XML_FEATURE_DTD,\r
+  XML_FEATURE_CONTEXT_BYTES,\r
+  XML_FEATURE_MIN_SIZE,\r
+  XML_FEATURE_SIZEOF_XML_CHAR,\r
+  XML_FEATURE_SIZEOF_XML_LCHAR\r
+  /* Additional features must be added to the end of this enum. */\r
+};\r
+\r
+typedef struct {\r
+  enum XML_FeatureEnum  feature;\r
+  const XML_LChar       *name;\r
+  long int              value;\r
+} XML_Feature;\r
+\r
+XMLPARSEAPI(const XML_Feature *)\r
+XML_GetFeatureList(void);\r
+\r
+\r
+/* Expat follows the GNU/Linux convention of odd number minor version for\r
+   beta/development releases and even number minor version for stable\r
+   releases. Micro is bumped with each release, and set to 0 with each\r
+   change to major or minor version.\r
+*/\r
+#define XML_MAJOR_VERSION 1\r
+#define XML_MINOR_VERSION 95\r
+#define XML_MICRO_VERSION 6\r
+\r
+#ifdef __cplusplus\r
+}\r
+#endif\r
+\r
+#endif /* not XmlParse_INCLUDED */\r
diff --git a/expat/lib/ARM/libexpatw.lib b/expat/lib/ARM/libexpatw.lib
new file mode 100644 (file)
index 0000000..d359f8b
Binary files /dev/null and b/expat/lib/ARM/libexpatw.lib differ
diff --git a/expat/lib/ARMV4I/expatw.lib b/expat/lib/ARMV4I/expatw.lib
new file mode 100644 (file)
index 0000000..9fc44ec
Binary files /dev/null and b/expat/lib/ARMV4I/expatw.lib differ
diff --git a/expat/lib/MIPS/libexpatw.lib b/expat/lib/MIPS/libexpatw.lib
new file mode 100644 (file)
index 0000000..2daaa14
Binary files /dev/null and b/expat/lib/MIPS/libexpatw.lib differ
diff --git a/expat/lib/SH3/libexpatw.lib b/expat/lib/SH3/libexpatw.lib
new file mode 100644 (file)
index 0000000..87eac1c
Binary files /dev/null and b/expat/lib/SH3/libexpatw.lib differ
diff --git a/expat/lib/SH4/libexpatw.lib b/expat/lib/SH4/libexpatw.lib
new file mode 100644 (file)
index 0000000..5271270
Binary files /dev/null and b/expat/lib/SH4/libexpatw.lib differ
diff --git a/expat/lib/Win32/libexpatw.dll b/expat/lib/Win32/libexpatw.dll
new file mode 100644 (file)
index 0000000..9aaa5a8
Binary files /dev/null and b/expat/lib/Win32/libexpatw.dll differ
diff --git a/expat/lib/Win32/libexpatw.lib b/expat/lib/Win32/libexpatw.lib
new file mode 100644 (file)
index 0000000..37df703
Binary files /dev/null and b/expat/lib/Win32/libexpatw.lib differ
diff --git a/oniguruma/COPYING b/oniguruma/COPYING
new file mode 100644 (file)
index 0000000..6d91b1a
--- /dev/null
@@ -0,0 +1,32 @@
+Oniguruma LICENSE\r
+-----------------\r
+\r
+When this software is partly used or it is distributed with Ruby, \r
+this of Ruby follows the license of Ruby.\r
+It follows the BSD license in the case of the one except for it.\r
+\r
+/*-\r
+ * Copyright (c) 2002-2005  K.Kosako  <sndgk393 AT ybb DOT ne DOT jp>\r
+ * All rights reserved.\r
+ *\r
+ * Redistribution and use in source and binary forms, with or without\r
+ * modification, are permitted provided that the following conditions\r
+ * are met:\r
+ * 1. Redistributions of source code must retain the above copyright\r
+ *    notice, this list of conditions and the following disclaimer.\r
+ * 2. Redistributions in binary form must reproduce the above copyright\r
+ *    notice, this list of conditions and the following disclaimer in the\r
+ *    documentation and/or other materials provided with the distribution.\r
+ *\r
+ * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND\r
+ * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE\r
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE\r
+ * ARE DISCLAIMED.  IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE\r
+ * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL\r
+ * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS\r
+ * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)\r
+ * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT\r
+ * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY\r
+ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF\r
+ * SUCH DAMAGE.\r
+ */\r
diff --git a/oniguruma/Readme.txt b/oniguruma/Readme.txt
new file mode 100644 (file)
index 0000000..7d0424d
--- /dev/null
@@ -0,0 +1,7 @@
+Under this forlder (oniguruma/) is the result thing by K.Kosako and \r
+distribution is followed under Oniguruma LICENSE. \r
+\r
+You can get full distribution of oniguruma from below:\r
+       http://www.geocities.jp/kosako3/oniguruma/\r
+\r
+                                                                                                       hirami\r
diff --git a/oniguruma/arm/oniguruma.dll b/oniguruma/arm/oniguruma.dll
new file mode 100644 (file)
index 0000000..ed367fb
Binary files /dev/null and b/oniguruma/arm/oniguruma.dll differ
diff --git a/oniguruma/arm/oniguruma.lib b/oniguruma/arm/oniguruma.lib
new file mode 100644 (file)
index 0000000..037fb54
Binary files /dev/null and b/oniguruma/arm/oniguruma.lib differ
diff --git a/oniguruma/armv4i/oniguruma.dll b/oniguruma/armv4i/oniguruma.dll
new file mode 100644 (file)
index 0000000..c6bd634
Binary files /dev/null and b/oniguruma/armv4i/oniguruma.dll differ
diff --git a/oniguruma/armv4i/oniguruma.lib b/oniguruma/armv4i/oniguruma.lib
new file mode 100644 (file)
index 0000000..ab4c071
Binary files /dev/null and b/oniguruma/armv4i/oniguruma.lib differ
diff --git a/oniguruma/mips/oniguruma.dll b/oniguruma/mips/oniguruma.dll
new file mode 100644 (file)
index 0000000..f462137
Binary files /dev/null and b/oniguruma/mips/oniguruma.dll differ
diff --git a/oniguruma/mips/oniguruma.lib b/oniguruma/mips/oniguruma.lib
new file mode 100644 (file)
index 0000000..e009c13
Binary files /dev/null and b/oniguruma/mips/oniguruma.lib differ
diff --git a/oniguruma/oniguruma.h b/oniguruma/oniguruma.h
new file mode 100644 (file)
index 0000000..cd9a6c2
--- /dev/null
@@ -0,0 +1,891 @@
+#ifndef ONIGURUMA_H\r
+#define ONIGURUMA_H\r
+/**********************************************************************\r
+  oniguruma.h - Oniguruma (regular expression library)\r
+**********************************************************************/\r
+/*-\r
+ * Copyright (c) 2002-2005  K.Kosako  <sndgk393 AT ybb DOT ne DOT jp>\r
+ * All rights reserved.\r
+ *\r
+ * Redistribution and use in source and binary forms, with or without\r
+ * modification, are permitted provided that the following conditions\r
+ * are met:\r
+ * 1. Redistributions of source code must retain the above copyright\r
+ *    notice, this list of conditions and the following disclaimer.\r
+ * 2. Redistributions in binary form must reproduce the above copyright\r
+ *    notice, this list of conditions and the following disclaimer in the\r
+ *    documentation and/or other materials provided with the distribution.\r
+ *\r
+ * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND\r
+ * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE\r
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE\r
+ * ARE DISCLAIMED.  IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE\r
+ * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL\r
+ * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS\r
+ * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)\r
+ * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT\r
+ * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY\r
+ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF\r
+ * SUCH DAMAGE.\r
+ */\r
+\r
+#ifdef __cplusplus\r
+extern "C" {\r
+#endif\r
+\r
+#define ONIGURUMA\r
+#define ONIGURUMA_VERSION_MAJOR   3\r
+#define ONIGURUMA_VERSION_MINOR   9\r
+#define ONIGURUMA_VERSION_TEENY   1\r
+\r
+#ifdef __cplusplus\r
+# ifndef  HAVE_PROTOTYPES\r
+#  define HAVE_PROTOTYPES 1\r
+# endif\r
+# ifndef  HAVE_STDARG_PROTOTYPES\r
+#  define HAVE_STDARG_PROTOTYPES 1\r
+# endif\r
+#endif\r
+\r
+#ifndef P_\r
+#if defined(__STDC__) || defined(_WIN32)\r
+# define P_(args) args\r
+#else\r
+# define P_(args) ()\r
+#endif\r
+#endif\r
+\r
+#ifndef PV_\r
+#ifdef HAVE_STDARG_PROTOTYPES\r
+# define PV_(args) args\r
+#else\r
+# define PV_(args) ()\r
+#endif\r
+#endif\r
+\r
+#ifndef ONIG_EXTERN\r
+#if defined(_WIN32) && !defined(__GNUC__)\r
+#if defined(EXPORT) || defined(RUBY_EXPORT)\r
+#define ONIG_EXTERN   extern __declspec(dllexport)\r
+#else\r
+#define ONIG_EXTERN   extern __declspec(dllimport)\r
+#endif\r
+#endif\r
+#endif\r
+\r
+#ifndef ONIG_EXTERN\r
+#define ONIG_EXTERN   extern\r
+#endif\r
+\r
+/* PART: character encoding */\r
+\r
+#ifndef ONIG_ESCAPE_UCHAR_COLLISION\r
+#define UChar OnigUChar\r
+#endif\r
+\r
+typedef unsigned char  OnigUChar;\r
+typedef unsigned long  OnigCodePoint;\r
+typedef unsigned int   OnigDistance;\r
+\r
+#define ONIG_INFINITE_DISTANCE  ~((OnigDistance )0)\r
+\r
+/* ambiguous match flag */\r
+typedef unsigned int OnigAmbigType;\r
+\r
+ONIG_EXTERN OnigAmbigType OnigDefaultAmbigFlag;\r
+\r
+#define ONIGENC_AMBIGUOUS_MATCH_NONE                   0\r
+#define ONIGENC_AMBIGUOUS_MATCH_ASCII_CASE            (1<<0)\r
+#define ONIGENC_AMBIGUOUS_MATCH_NONASCII_CASE         (1<<1)\r
+/* #define ONIGENC_AMBIGUOUS_MATCH_ACCENT             (1<<2) */\r
+/* #define ONIGENC_AMBIGUOUS_MATCH_HIRAGANA_KATAKANA  (1<<3) */\r
+/* #define ONIGENC_AMBIGUOUS_MATCH_KATAKANA_WIDTH     (1<<4) */\r
+\r
+#define ONIGENC_AMBIGUOUS_MATCH_LIMIT                 (1<<1)\r
+#define ONIGENC_AMBIGUOUS_MATCH_COMPOUND              (1<<30)\r
+\r
+#define ONIGENC_AMBIGUOUS_MATCH_FULL \\r
+  ( ONIGENC_AMBIGUOUS_MATCH_ASCII_CASE | \\r
+    ONIGENC_AMBIGUOUS_MATCH_NONASCII_CASE | \\r
+    ONIGENC_AMBIGUOUS_MATCH_COMPOUND )\r
+#define ONIGENC_AMBIGUOUS_MATCH_DEFAULT  OnigDefaultAmbigFlag\r
+\r
+\r
+#define ONIGENC_MAX_COMP_AMBIG_CODE_LEN       3\r
+#define ONIGENC_MAX_COMP_AMBIG_CODE_ITEM_NUM  4\r
+\r
+/* code range */\r
+#define ONIGENC_CODE_RANGE_NUM(range)     ((int )range[0])\r
+#define ONIGENC_CODE_RANGE_FROM(range,i)  range[((i)*2) + 1]\r
+#define ONIGENC_CODE_RANGE_TO(range,i)    range[((i)*2) + 2]\r
+\r
+typedef struct {\r
+  int len;\r
+  OnigCodePoint code[ONIGENC_MAX_COMP_AMBIG_CODE_LEN];\r
+} OnigCompAmbigCodeItem;\r
+\r
+typedef struct {\r
+  int n;\r
+  OnigCodePoint code;\r
+  OnigCompAmbigCodeItem items[ONIGENC_MAX_COMP_AMBIG_CODE_ITEM_NUM];\r
+} OnigCompAmbigCodes;\r
+\r
+typedef struct {\r
+  OnigCodePoint from;\r
+  OnigCodePoint to;\r
+} OnigPairAmbigCodes;\r
+\r
+typedef struct {\r
+  OnigCodePoint esc;\r
+  OnigCodePoint anychar;\r
+  OnigCodePoint anytime;\r
+  OnigCodePoint zero_or_one_time;\r
+  OnigCodePoint one_or_more_time;\r
+  OnigCodePoint anychar_anytime;\r
+} OnigMetaCharTableType;\r
+\r
+\r
+#if defined(RUBY_PLATFORM) && defined(M17N_H)\r
+\r
+#define ONIG_RUBY_M17N\r
+typedef m17n_encoding*        OnigEncoding;\r
+\r
+#else\r
+\r
+typedef struct {\r
+  int    (*mbc_enc_len)(const OnigUChar* p);\r
+  const char*   name;\r
+  int           max_enc_len;\r
+  int           min_enc_len;\r
+  OnigAmbigType support_ambig_flag;\r
+  OnigMetaCharTableType meta_char_table;\r
+  int    (*is_mbc_newline)(const OnigUChar* p, const OnigUChar* end);\r
+  OnigCodePoint (*mbc_to_code)(const OnigUChar* p, const OnigUChar* end);\r
+  int    (*code_to_mbclen)(OnigCodePoint code);\r
+  int    (*code_to_mbc)(OnigCodePoint code, OnigUChar *buf);\r
+  int    (*mbc_to_normalize)(OnigAmbigType flag, const OnigUChar** pp, const OnigUChar* end, OnigUChar* to);\r
+  int    (*is_mbc_ambiguous)(OnigAmbigType flag, const OnigUChar** pp, const OnigUChar* end);\r
+  int    (*get_all_pair_ambig_codes)(OnigAmbigType flag, const OnigPairAmbigCodes** acs);\r
+  int    (*get_all_comp_ambig_codes)(OnigAmbigType flag, const OnigCompAmbigCodes** acs);\r
+  int    (*is_code_ctype)(OnigCodePoint code, unsigned int ctype);\r
+  int    (*get_ctype_code_range)(int ctype, const OnigCodePoint* sb_range[], const OnigCodePoint* mb_range[]);\r
+  OnigUChar* (*left_adjust_char_head)(const OnigUChar* start, const OnigUChar* p);\r
+  int    (*is_allowed_reverse_match)(const OnigUChar* p, const OnigUChar* end);\r
+} OnigEncodingType;\r
+\r
+typedef OnigEncodingType* OnigEncoding;\r
+\r
+ONIG_EXTERN OnigEncodingType OnigEncodingASCII;\r
+ONIG_EXTERN OnigEncodingType OnigEncodingISO_8859_1;\r
+ONIG_EXTERN OnigEncodingType OnigEncodingISO_8859_2;\r
+ONIG_EXTERN OnigEncodingType OnigEncodingISO_8859_3;\r
+ONIG_EXTERN OnigEncodingType OnigEncodingISO_8859_4;\r
+ONIG_EXTERN OnigEncodingType OnigEncodingISO_8859_5;\r
+ONIG_EXTERN OnigEncodingType OnigEncodingISO_8859_6;\r
+ONIG_EXTERN OnigEncodingType OnigEncodingISO_8859_7;\r
+ONIG_EXTERN OnigEncodingType OnigEncodingISO_8859_8;\r
+ONIG_EXTERN OnigEncodingType OnigEncodingISO_8859_9;\r
+ONIG_EXTERN OnigEncodingType OnigEncodingISO_8859_10;\r
+ONIG_EXTERN OnigEncodingType OnigEncodingISO_8859_11;\r
+ONIG_EXTERN OnigEncodingType OnigEncodingISO_8859_13;\r
+ONIG_EXTERN OnigEncodingType OnigEncodingISO_8859_14;\r
+ONIG_EXTERN OnigEncodingType OnigEncodingISO_8859_15;\r
+ONIG_EXTERN OnigEncodingType OnigEncodingISO_8859_16;\r
+ONIG_EXTERN OnigEncodingType OnigEncodingUTF8;\r
+ONIG_EXTERN OnigEncodingType OnigEncodingUTF16_BE;\r
+ONIG_EXTERN OnigEncodingType OnigEncodingUTF16_LE;\r
+ONIG_EXTERN OnigEncodingType OnigEncodingUTF32_BE;\r
+ONIG_EXTERN OnigEncodingType OnigEncodingUTF32_LE;\r
+ONIG_EXTERN OnigEncodingType OnigEncodingEUC_JP;\r
+ONIG_EXTERN OnigEncodingType OnigEncodingEUC_TW;\r
+ONIG_EXTERN OnigEncodingType OnigEncodingEUC_KR;\r
+ONIG_EXTERN OnigEncodingType OnigEncodingEUC_CN;\r
+ONIG_EXTERN OnigEncodingType OnigEncodingSJIS;\r
+ONIG_EXTERN OnigEncodingType OnigEncodingKOI8;\r
+ONIG_EXTERN OnigEncodingType OnigEncodingKOI8_R;\r
+ONIG_EXTERN OnigEncodingType OnigEncodingBIG5;\r
+ONIG_EXTERN OnigEncodingType OnigEncodingGB18030;\r
+\r
+#define ONIG_ENCODING_ASCII        (&OnigEncodingASCII)\r
+#define ONIG_ENCODING_ISO_8859_1   (&OnigEncodingISO_8859_1)\r
+#define ONIG_ENCODING_ISO_8859_2   (&OnigEncodingISO_8859_2)\r
+#define ONIG_ENCODING_ISO_8859_3   (&OnigEncodingISO_8859_3)\r
+#define ONIG_ENCODING_ISO_8859_4   (&OnigEncodingISO_8859_4)\r
+#define ONIG_ENCODING_ISO_8859_5   (&OnigEncodingISO_8859_5)\r
+#define ONIG_ENCODING_ISO_8859_6   (&OnigEncodingISO_8859_6)\r
+#define ONIG_ENCODING_ISO_8859_7   (&OnigEncodingISO_8859_7)\r
+#define ONIG_ENCODING_ISO_8859_8   (&OnigEncodingISO_8859_8)\r
+#define ONIG_ENCODING_ISO_8859_9   (&OnigEncodingISO_8859_9)\r
+#define ONIG_ENCODING_ISO_8859_10  (&OnigEncodingISO_8859_10)\r
+#define ONIG_ENCODING_ISO_8859_11  (&OnigEncodingISO_8859_11)\r
+#define ONIG_ENCODING_ISO_8859_13  (&OnigEncodingISO_8859_13)\r
+#define ONIG_ENCODING_ISO_8859_14  (&OnigEncodingISO_8859_14)\r
+#define ONIG_ENCODING_ISO_8859_15  (&OnigEncodingISO_8859_15)\r
+#define ONIG_ENCODING_ISO_8859_16  (&OnigEncodingISO_8859_16)\r
+#define ONIG_ENCODING_UTF8         (&OnigEncodingUTF8)\r
+#define ONIG_ENCODING_UTF16_BE     (&OnigEncodingUTF16_BE)\r
+#define ONIG_ENCODING_UTF16_LE     (&OnigEncodingUTF16_LE)\r
+#define ONIG_ENCODING_UTF32_BE     (&OnigEncodingUTF32_BE)\r
+#define ONIG_ENCODING_UTF32_LE     (&OnigEncodingUTF32_LE)\r
+#define ONIG_ENCODING_EUC_JP       (&OnigEncodingEUC_JP)\r
+#define ONIG_ENCODING_EUC_TW       (&OnigEncodingEUC_TW)\r
+#define ONIG_ENCODING_EUC_KR       (&OnigEncodingEUC_KR)\r
+#define ONIG_ENCODING_EUC_CN       (&OnigEncodingEUC_CN)\r
+#define ONIG_ENCODING_SJIS         (&OnigEncodingSJIS)\r
+#define ONIG_ENCODING_KOI8         (&OnigEncodingKOI8)\r
+#define ONIG_ENCODING_KOI8_R       (&OnigEncodingKOI8_R)\r
+#define ONIG_ENCODING_BIG5         (&OnigEncodingBIG5)\r
+#define ONIG_ENCODING_GB18030      (&OnigEncodingGB18030)\r
+\r
+#endif /* else RUBY && M17N */\r
+\r
+#define ONIG_ENCODING_UNDEF    ((OnigEncoding )0)\r
+\r
+\r
+/* work size */\r
+#define ONIGENC_CODE_TO_MBC_MAXLEN      7\r
+#define ONIGENC_MBC_NORMALIZE_MAXLEN    ONIGENC_CODE_TO_MBC_MAXLEN\r
+\r
+/* character types */\r
+#define ONIGENC_CTYPE_NEWLINE  (1<< 0)\r
+#define ONIGENC_CTYPE_ALPHA    (1<< 1)\r
+#define ONIGENC_CTYPE_BLANK    (1<< 2)\r
+#define ONIGENC_CTYPE_CNTRL    (1<< 3)\r
+#define ONIGENC_CTYPE_DIGIT    (1<< 4)\r
+#define ONIGENC_CTYPE_GRAPH    (1<< 5)\r
+#define ONIGENC_CTYPE_LOWER    (1<< 6)\r
+#define ONIGENC_CTYPE_PRINT    (1<< 7)\r
+#define ONIGENC_CTYPE_PUNCT    (1<< 8)\r
+#define ONIGENC_CTYPE_SPACE    (1<< 9)\r
+#define ONIGENC_CTYPE_UPPER    (1<<10)\r
+#define ONIGENC_CTYPE_XDIGIT   (1<<11)\r
+#define ONIGENC_CTYPE_WORD     (1<<12)\r
+#define ONIGENC_CTYPE_ASCII    (1<<13)\r
+#define ONIGENC_CTYPE_ALNUM    (ONIGENC_CTYPE_ALPHA | ONIGENC_CTYPE_DIGIT)\r
+\r
+#define enc_len(enc,p)                ONIGENC_MBC_ENC_LEN(enc, p)\r
+\r
+#define ONIGENC_IS_UNDEF(enc)          ((enc) == ONIG_ENCODING_UNDEF)\r
+#define ONIGENC_IS_SINGLEBYTE(enc)     (ONIGENC_MBC_MAXLEN(enc) == 1)\r
+#define ONIGENC_IS_MBC_HEAD(enc,p)     (ONIGENC_MBC_ENC_LEN(enc,p) != 1)\r
+#define ONIGENC_IS_MBC_ASCII(p)           (*(p)   < 128)\r
+#define ONIGENC_IS_CODE_ASCII(code)       ((code) < 128)\r
+#define ONIGENC_IS_CODE_SB_WORD(enc,code) \\r
+  (ONIGENC_IS_CODE_ASCII(code) && ONIGENC_IS_CODE_WORD(enc,code))\r
+#define ONIGENC_IS_MBC_WORD(enc,s,end) \\r
+   ONIGENC_IS_CODE_WORD(enc,ONIGENC_MBC_TO_CODE(enc,s,end))\r
+\r
+\r
+#ifdef ONIG_RUBY_M17N\r
+\r
+#include <ctype.h> /* for isblank(), isgraph() */\r
+\r
+#define ONIGENC_MBC_TO_NORMALIZE(enc,flag,pp,end,buf) \\r
+        onigenc_mbc_to_normalize(enc,flag,pp,end,buf)\r
+#define ONIGENC_IS_MBC_AMBIGUOUS(enc,flag,pp,end) \\r
+        onigenc_is_mbc_ambiguous(enc,flag,pp,end)\r
+\r
+#define ONIGENC_SUPPORT_AMBIG_FLAG(enc)     ONIGENC_AMBIGUOUS_MATCH_ASCII_CASE\r
+#define ONIGENC_IS_ALLOWED_REVERSE_MATCH(enc,s,end) \\r
+        onigenc_is_allowed_reverse_match(enc, s, end)\r
+#define ONIGENC_LEFT_ADJUST_CHAR_HEAD(enc,start,s) \\r
+        onigenc_get_left_adjust_char_head(enc, start, s)\r
+#define ONIGENC_GET_ALL_PAIR_AMBIG_CODES(enc, ambig_flag, acs)    0\r
+#define ONIGENC_GET_ALL_COMP_AMBIG_CODES(enc, ambig_flag, acs)    0\r
+#define ONIGENC_GET_CTYPE_CODE_RANGE(enc,ctype,sbr,mbr) \\r
+        ONIG_NO_SUPPORT_CONFIG\r
+#define ONIGENC_MBC_ENC_LEN(enc,p)            m17n_mbclen(enc,(int )(*p))\r
+#define ONIGENC_MBC_MAXLEN(enc)               m17n_mbmaxlen(enc)\r
+#define ONIGENC_MBC_MAXLEN_DIST(enc) \\r
+    (ONIGENC_MBC_MAXLEN(enc) > 0 ? ONIGENC_MBC_MAXLEN(enc) \\r
+                                 : ONIG_INFINITE_DISTANCE)\r
+#define ONIGENC_MBC_MINLEN(enc)            1\r
+#define ONIGENC_MBC_TO_CODE(enc,p,e)       m17n_codepoint((enc),(p),(e))\r
+#define ONIGENC_CODE_TO_MBCLEN(enc,code)   m17n_codelen((enc),(code))\r
+#define ONIGENC_CODE_TO_MBC(enc,code,buf)  onigenc_code_to_mbc(enc, code, buf)\r
+\r
+#if 0     /* !! not supported !! */\r
+#define ONIGENC_IS_MBC_NEWLINE(enc,p,end)\r
+#define ONIGENC_STEP_BACK(enc,start,s,n)\r
+#endif\r
+\r
+#define ONIGENC_IS_CODE_CTYPE(enc,code,ctype) \\r
+        onigenc_is_code_ctype(enc,code,ctype)\r
+\r
+#ifdef isblank\r
+# define ONIGENC_IS_CODE_BLANK(enc,code) isblank((int )code)\r
+#else\r
+# define ONIGENC_IS_CODE_BLANK(enc,code) ((code) == ' ' || (code) == '\t')\r
+#endif\r
+#ifdef isgraph\r
+# define ONIGENC_IS_CODE_GRAPH(enc,code) isgraph((int )code)\r
+#else\r
+# define ONIGENC_IS_CODE_GRAPH(enc,code) \\r
+  (isprint((int )code) && !isspace((int )code))\r
+#endif\r
+\r
+#define ONIGENC_IS_CODE_PRINT(enc,code)     m17n_isprint(enc,code)\r
+#define ONIGENC_IS_CODE_ALNUM(enc,code)     m17n_isalnum(enc,code)\r
+#define ONIGENC_IS_CODE_ALPHA(enc,code)     m17n_isalpha(enc,code)\r
+#define ONIGENC_IS_CODE_LOWER(enc,code)     m17n_islower(enc,code)\r
+#define ONIGENC_IS_CODE_UPPER(enc,code)     m17n_isupper(enc,code)\r
+#define ONIGENC_IS_CODE_CNTRL(enc,code)     m17n_iscntrl(enc,code)\r
+#define ONIGENC_IS_CODE_PUNCT(enc,code)     m17n_ispunct(enc,code)\r
+#define ONIGENC_IS_CODE_SPACE(enc,code)     m17n_isspace(enc,code)\r
+#define ONIGENC_IS_CODE_DIGIT(enc,code)     m17n_isdigit(enc,code)\r
+#define ONIGENC_IS_CODE_XDIGIT(enc,code)    m17n_isxdigit(enc,code)\r
+#define ONIGENC_IS_CODE_WORD(enc,code)      m17n_iswchar(enc,code)\r
+\r
+ONIG_EXTERN\r
+int onigenc_is_code_ctype P_((OnigEncoding enc, OnigCodePoint code, int ctype));\r
+ONIG_EXTERN\r
+int onigenc_code_to_mbc P_((OnigEncoding enc, OnigCodePoint code, OnigUChar *buf));\r
+ONIG_EXTERN\r
+int onigenc_mbc_to_normalize P_((OnigEncoding enc, OnigAmbigType flag, const OnigUChar** pp, const OnigUChar* end, OnigUChar* buf));\r
+ONIG_EXTERN\r
+int onigenc_is_mbc_ambiguous P_((OnigEncoding enc, OnigAmbigType flag, const OnigUChar** pp, const OnigUChar* end));\r
+ONIG_EXTERN\r
+int onigenc_is_allowed_reverse_match P_((OnigEncoding enc, const OnigUChar* s, const OnigUChar* end));\r
+\r
+#else  /* ONIG_RUBY_M17N */\r
+\r
+#define ONIGENC_NAME(enc)                      ((enc)->name)\r
+\r
+#define ONIGENC_MBC_TO_NORMALIZE(enc,flag,pp,end,buf) \\r
+  (enc)->mbc_to_normalize(flag,(const OnigUChar** )pp,end,buf)\r
+#define ONIGENC_IS_MBC_AMBIGUOUS(enc,flag,pp,end) \\r
+  (enc)->is_mbc_ambiguous(flag,(const OnigUChar** )pp,end)\r
+#define ONIGENC_SUPPORT_AMBIG_FLAG(enc)        ((enc)->support_ambig_flag)\r
+#define ONIGENC_IS_ALLOWED_REVERSE_MATCH(enc,s,end) \\r
+        (enc)->is_allowed_reverse_match(s,end)\r
+#define ONIGENC_LEFT_ADJUST_CHAR_HEAD(enc,start,s) \\r
+        (enc)->left_adjust_char_head(start, s)\r
+#define ONIGENC_GET_ALL_PAIR_AMBIG_CODES(enc,ambig_flag,acs) \\r
+        (enc)->get_all_pair_ambig_codes(ambig_flag,acs)\r
+#define ONIGENC_GET_ALL_COMP_AMBIG_CODES(enc,ambig_flag,acs) \\r
+        (enc)->get_all_comp_ambig_codes(ambig_flag,acs)\r
+#define ONIGENC_STEP_BACK(enc,start,s,n) \\r
+        onigenc_step_back((enc),(start),(s),(n))\r
+\r
+#define ONIGENC_MBC_ENC_LEN(enc,p)             (enc)->mbc_enc_len(p)\r
+#define ONIGENC_MBC_MAXLEN(enc)               ((enc)->max_enc_len)\r
+#define ONIGENC_MBC_MAXLEN_DIST(enc)           ONIGENC_MBC_MAXLEN(enc)\r
+#define ONIGENC_MBC_MINLEN(enc)               ((enc)->min_enc_len)\r
+#define ONIGENC_IS_MBC_NEWLINE(enc,p,end)      (enc)->is_mbc_newline((p),(end))\r
+#define ONIGENC_MBC_TO_CODE(enc,p,end)         (enc)->mbc_to_code((p),(end))\r
+#define ONIGENC_CODE_TO_MBCLEN(enc,code)       (enc)->code_to_mbclen(code)\r
+#define ONIGENC_CODE_TO_MBC(enc,code,buf)      (enc)->code_to_mbc(code,buf)\r
+\r
+#define ONIGENC_IS_CODE_CTYPE(enc,code,ctype)  (enc)->is_code_ctype(code,ctype)\r
+\r
+#define ONIGENC_IS_CODE_NEWLINE(enc,code) \\r
+        ONIGENC_IS_CODE_CTYPE(enc,code,ONIGENC_CTYPE_NEWLINE)\r
+#define ONIGENC_IS_CODE_GRAPH(enc,code) \\r
+        ONIGENC_IS_CODE_CTYPE(enc,code,ONIGENC_CTYPE_GRAPH)\r
+#define ONIGENC_IS_CODE_PRINT(enc,code) \\r
+        ONIGENC_IS_CODE_CTYPE(enc,code,ONIGENC_CTYPE_PRINT)\r
+#define ONIGENC_IS_CODE_ALNUM(enc,code) \\r
+        ONIGENC_IS_CODE_CTYPE(enc,code,ONIGENC_CTYPE_ALNUM)\r
+#define ONIGENC_IS_CODE_ALPHA(enc,code) \\r
+        ONIGENC_IS_CODE_CTYPE(enc,code,ONIGENC_CTYPE_ALPHA)\r
+#define ONIGENC_IS_CODE_LOWER(enc,code) \\r
+        ONIGENC_IS_CODE_CTYPE(enc,code,ONIGENC_CTYPE_LOWER)\r
+#define ONIGENC_IS_CODE_UPPER(enc,code) \\r
+        ONIGENC_IS_CODE_CTYPE(enc,code,ONIGENC_CTYPE_UPPER)\r
+#define ONIGENC_IS_CODE_CNTRL(enc,code) \\r
+        ONIGENC_IS_CODE_CTYPE(enc,code,ONIGENC_CTYPE_CNTRL)\r
+#define ONIGENC_IS_CODE_PUNCT(enc,code) \\r
+        ONIGENC_IS_CODE_CTYPE(enc,code,ONIGENC_CTYPE_PUNCT)\r
+#define ONIGENC_IS_CODE_SPACE(enc,code) \\r
+        ONIGENC_IS_CODE_CTYPE(enc,code,ONIGENC_CTYPE_SPACE)\r
+#define ONIGENC_IS_CODE_BLANK(enc,code) \\r
+        ONIGENC_IS_CODE_CTYPE(enc,code,ONIGENC_CTYPE_BLANK)\r
+#define ONIGENC_IS_CODE_DIGIT(enc,code) \\r
+        ONIGENC_IS_CODE_CTYPE(enc,code,ONIGENC_CTYPE_DIGIT)\r
+#define ONIGENC_IS_CODE_XDIGIT(enc,code) \\r
+        ONIGENC_IS_CODE_CTYPE(enc,code,ONIGENC_CTYPE_XDIGIT)\r
+#define ONIGENC_IS_CODE_WORD(enc,code) \\r
+        ONIGENC_IS_CODE_CTYPE(enc,code,ONIGENC_CTYPE_WORD)\r
+\r
+#define ONIGENC_GET_CTYPE_CODE_RANGE(enc,ctype,sbr,mbr) \\r
+        (enc)->get_ctype_code_range(ctype,sbr,mbr)\r
+\r
+ONIG_EXTERN\r
+OnigUChar* onigenc_step_back P_((OnigEncoding enc, const OnigUChar* start, const OnigUChar* s, int n));\r
+\r
+#endif /* is not ONIG_RUBY_M17N */\r
+\r
+\r
+/* encoding API */\r
+ONIG_EXTERN\r
+int onigenc_init P_(());\r
+ONIG_EXTERN\r
+int onigenc_set_default_encoding P_((OnigEncoding enc));\r
+ONIG_EXTERN\r
+OnigEncoding onigenc_get_default_encoding P_(());\r
+ONIG_EXTERN\r
+void  onigenc_set_default_caseconv_table P_((const OnigUChar* table));\r
+ONIG_EXTERN\r
+OnigUChar* onigenc_get_right_adjust_char_head_with_prev P_((OnigEncoding enc, const OnigUChar* start, const OnigUChar* s, const OnigUChar** prev));\r
+ONIG_EXTERN\r
+OnigUChar* onigenc_get_prev_char_head P_((OnigEncoding enc, const OnigUChar* start, const OnigUChar* s));\r
+ONIG_EXTERN\r
+OnigUChar* onigenc_get_left_adjust_char_head P_((OnigEncoding enc, const OnigUChar* start, const OnigUChar* s));\r
+ONIG_EXTERN\r
+OnigUChar* onigenc_get_right_adjust_char_head P_((OnigEncoding enc, const OnigUChar* start, const OnigUChar* s));\r
+ONIG_EXTERN\r
+int onigenc_strlen P_((OnigEncoding enc, const OnigUChar* p, const OnigUChar* end));\r
+ONIG_EXTERN\r
+int onigenc_strlen_null P_((OnigEncoding enc, const OnigUChar* p));\r
+ONIG_EXTERN\r
+int onigenc_str_bytelen_null P_((OnigEncoding enc, const OnigUChar* p));\r
+\r
+\r
+\r
+/* PART: regular expression */\r
+\r
+/* config parameters */\r
+#define ONIG_NREGION                          10\r
+#define ONIG_MAX_BACKREF_NUM                1000\r
+#define ONIG_MAX_REPEAT_NUM               100000\r
+#define ONIG_MAX_MULTI_BYTE_RANGES_NUM      1000\r
+/* constants */\r
+#define ONIG_MAX_ERROR_MESSAGE_LEN            90\r
+\r
+typedef unsigned int        OnigOptionType;\r
+\r
+#define ONIG_OPTION_DEFAULT            ONIG_OPTION_NONE\r
+\r
+/* options */\r
+#define ONIG_OPTION_NONE                 0\r
+#define ONIG_OPTION_IGNORECASE           1L\r
+#define ONIG_OPTION_EXTEND               (ONIG_OPTION_IGNORECASE         << 1)\r
+#define ONIG_OPTION_MULTILINE            (ONIG_OPTION_EXTEND             << 1)\r
+#define ONIG_OPTION_SINGLELINE           (ONIG_OPTION_MULTILINE          << 1)\r
+#define ONIG_OPTION_FIND_LONGEST         (ONIG_OPTION_SINGLELINE         << 1)\r
+#define ONIG_OPTION_FIND_NOT_EMPTY       (ONIG_OPTION_FIND_LONGEST       << 1)\r
+#define ONIG_OPTION_NEGATE_SINGLELINE    (ONIG_OPTION_FIND_NOT_EMPTY     << 1)\r
+#define ONIG_OPTION_DONT_CAPTURE_GROUP   (ONIG_OPTION_NEGATE_SINGLELINE  << 1)\r
+#define ONIG_OPTION_CAPTURE_GROUP        (ONIG_OPTION_DONT_CAPTURE_GROUP << 1)\r
+/* options (search time) */\r
+#define ONIG_OPTION_NOTBOL               (ONIG_OPTION_CAPTURE_GROUP << 1)\r
+#define ONIG_OPTION_NOTEOL               (ONIG_OPTION_NOTBOL << 1)\r
+#define ONIG_OPTION_POSIX_REGION         (ONIG_OPTION_NOTEOL << 1)\r
+#define ONIG_OPTION_MAXBIT               ONIG_OPTION_POSIX_REGION  /* limit */\r
+\r
+#define ONIG_OPTION_ON(options,regopt)      ((options) |= (regopt))\r
+#define ONIG_OPTION_OFF(options,regopt)     ((options) &= ~(regopt))\r
+#define ONIG_IS_OPTION_ON(options,option)   ((options) & (option))\r
+\r
+/* syntax */\r
+typedef struct {\r
+  unsigned int  op;\r
+  unsigned int  op2;\r
+  unsigned int  behavior;\r
+  OnigOptionType options;    /* default option */\r
+} OnigSyntaxType;\r
+\r
+ONIG_EXTERN OnigSyntaxType OnigSyntaxASIS;\r
+ONIG_EXTERN OnigSyntaxType OnigSyntaxPosixBasic;\r
+ONIG_EXTERN OnigSyntaxType OnigSyntaxPosixExtended;\r
+ONIG_EXTERN OnigSyntaxType OnigSyntaxEmacs;\r
+ONIG_EXTERN OnigSyntaxType OnigSyntaxGrep;\r
+ONIG_EXTERN OnigSyntaxType OnigSyntaxGnuRegex;\r
+ONIG_EXTERN OnigSyntaxType OnigSyntaxJava;\r
+ONIG_EXTERN OnigSyntaxType OnigSyntaxPerl;\r
+ONIG_EXTERN OnigSyntaxType OnigSyntaxPerl_NG;\r
+ONIG_EXTERN OnigSyntaxType OnigSyntaxRuby;\r
+\r
+/* predefined syntaxes (see regsyntax.c) */\r
+#define ONIG_SYNTAX_ASIS               (&OnigSyntaxASIS)\r
+#define ONIG_SYNTAX_POSIX_BASIC        (&OnigSyntaxPosixBasic)\r
+#define ONIG_SYNTAX_POSIX_EXTENDED     (&OnigSyntaxPosixExtended)\r
+#define ONIG_SYNTAX_EMACS              (&OnigSyntaxEmacs)\r
+#define ONIG_SYNTAX_GREP               (&OnigSyntaxGrep)\r
+#define ONIG_SYNTAX_GNU_REGEX          (&OnigSyntaxGnuRegex)\r
+#define ONIG_SYNTAX_JAVA               (&OnigSyntaxJava)\r
+#define ONIG_SYNTAX_PERL               (&OnigSyntaxPerl)\r
+#define ONIG_SYNTAX_PERL_NG            (&OnigSyntaxPerl_NG)\r
+#define ONIG_SYNTAX_RUBY               (&OnigSyntaxRuby)\r
+\r
+/* default syntax */\r
+ONIG_EXTERN OnigSyntaxType*   OnigDefaultSyntax;\r
+#define ONIG_SYNTAX_DEFAULT   OnigDefaultSyntax\r
+\r
+/* syntax (operators) */\r
+#define ONIG_SYN_OP_VARIABLE_META_CHARACTERS    (1<<0)\r
+#define ONIG_SYN_OP_DOT_ANYCHAR                 (1<<1)   /* . */\r
+#define ONIG_SYN_OP_ASTERISK_ZERO_INF           (1<<2)   /* * */\r
+#define ONIG_SYN_OP_ESC_ASTERISK_ZERO_INF       (1<<3)\r
+#define ONIG_SYN_OP_PLUS_ONE_INF                (1<<4)   /* + */\r
+#define ONIG_SYN_OP_ESC_PLUS_ONE_INF            (1<<5)\r
+#define ONIG_SYN_OP_QMARK_ZERO_ONE              (1<<6)   /* ? */\r
+#define ONIG_SYN_OP_ESC_QMARK_ZERO_ONE          (1<<7)\r
+#define ONIG_SYN_OP_BRACE_INTERVAL              (1<<8)   /* {lower,upper} */\r
+#define ONIG_SYN_OP_ESC_BRACE_INTERVAL          (1<<9)   /* \{lower,upper\} */\r
+#define ONIG_SYN_OP_VBAR_ALT                    (1<<10)   /* | */\r
+#define ONIG_SYN_OP_ESC_VBAR_ALT                (1<<11)  /* \| */\r
+#define ONIG_SYN_OP_LPAREN_SUBEXP               (1<<12)  /* (...)   */\r
+#define ONIG_SYN_OP_ESC_LPAREN_SUBEXP           (1<<13)  /* \(...\) */\r
+#define ONIG_SYN_OP_ESC_AZ_BUF_ANCHOR           (1<<14)  /* \A, \Z, \z */\r
+#define ONIG_SYN_OP_ESC_CAPITAL_G_BEGIN_ANCHOR  (1<<15)  /* \G     */\r
+#define ONIG_SYN_OP_DECIMAL_BACKREF             (1<<16)  /* \num   */\r
+#define ONIG_SYN_OP_BRACKET_CC                  (1<<17)  /* [...]  */\r
+#define ONIG_SYN_OP_ESC_W_WORD                  (1<<18)  /* \w, \W */\r
+#define ONIG_SYN_OP_ESC_LTGT_WORD_BEGIN_END     (1<<19)  /* \<. \> */\r
+#define ONIG_SYN_OP_ESC_B_WORD_BOUND            (1<<20)  /* \b, \B */\r
+#define ONIG_SYN_OP_ESC_S_WHITE_SPACE           (1<<21)  /* \s, \S */\r
+#define ONIG_SYN_OP_ESC_D_DIGIT                 (1<<22)  /* \d, \D */\r
+#define ONIG_SYN_OP_LINE_ANCHOR                 (1<<23)  /* ^, $   */\r
+#define ONIG_SYN_OP_POSIX_BRACKET               (1<<24)  /* [:xxxx:] */\r
+#define ONIG_SYN_OP_QMARK_NON_GREEDY            (1<<25)  /* ??,*?,+?,{n,m}? */\r
+#define ONIG_SYN_OP_ESC_CONTROL_CHARS           (1<<26)  /* \n,\r,\t,\a ... */\r
+#define ONIG_SYN_OP_ESC_C_CONTROL               (1<<27)  /* \cx  */\r
+#define ONIG_SYN_OP_ESC_OCTAL3                  (1<<28)  /* \OOO */\r
+#define ONIG_SYN_OP_ESC_X_HEX2                  (1<<29)  /* \xHH */\r
+#define ONIG_SYN_OP_ESC_X_BRACE_HEX8            (1<<30)  /* \x{7HHHHHHH} */\r
+\r
+#define ONIG_SYN_OP2_ESC_CAPITAL_Q_QUOTE        (1<<0)   /* \Q...\E */\r
+#define ONIG_SYN_OP2_QMARK_GROUP_EFFECT         (1<<1)   /* (?...) */\r
+#define ONIG_SYN_OP2_OPTION_PERL                (1<<2)   /* (?imsx),(?-imsx) */\r
+#define ONIG_SYN_OP2_OPTION_RUBY                (1<<3)   /* (?imx), (?-imx)  */\r
+#define ONIG_SYN_OP2_PLUS_POSSESSIVE_REPEAT     (1<<4)   /* ?+,*+,++ */\r
+#define ONIG_SYN_OP2_PLUS_POSSESSIVE_INTERVAL   (1<<5)   /* {n,m}+   */\r
+#define ONIG_SYN_OP2_CCLASS_SET_OP              (1<<6)   /* [...&&..[..]..] */\r
+#define ONIG_SYN_OP2_QMARK_LT_NAMED_GROUP       (1<<7)   /* (?<name>...) */\r
+#define ONIG_SYN_OP2_ESC_K_NAMED_BACKREF        (1<<8)   /* \k<name> */\r
+#define ONIG_SYN_OP2_ESC_G_SUBEXP_CALL          (1<<9)   /* \g<name>, \g<n> */\r
+#define ONIG_SYN_OP2_ATMARK_CAPTURE_HISTORY     (1<<10)  /* (?@..),(?@<x>..) */\r
+#define ONIG_SYN_OP2_ESC_CAPITAL_C_BAR_CONTROL  (1<<11)  /* \C-x */\r
+#define ONIG_SYN_OP2_ESC_CAPITAL_M_BAR_META     (1<<12)  /* \M-x */\r
+#define ONIG_SYN_OP2_ESC_V_VTAB                 (1<<13)  /* \v as VTAB */\r
+#define ONIG_SYN_OP2_ESC_U_HEX4                 (1<<14)  /* \uHHHH */\r
+#define ONIG_SYN_OP2_ESC_GNU_BUF_ANCHOR         (1<<15)  /* \`, \' */\r
+#define ONIG_SYN_OP2_ESC_P_BRACE_CHAR_PROPERTY  (1<<16)  /* \p{...}, \P{...} */\r
+#define ONIG_SYN_OP2_ESC_P_BRACE_CIRCUMFLEX_NOT (1<<17)  /* \p{^..}, \P{^..} */\r
+#define ONIG_SYN_OP2_CHAR_PROPERTY_PREFIX_IS    (1<<18)  /* \p{IsXDigit} */\r
+#define ONIG_SYN_OP2_ESC_H_XDIGIT               (1<<19)  /* \h, \H */\r
+#define ONIG_SYN_OP2_INEFFECTIVE_ESCAPE         (1<<20)  /* \ */\r
+\r
+/* syntax (behavior) */\r
+#define ONIG_SYN_CONTEXT_INDEP_ANCHORS           (1<<31) /* not implemented */\r
+#define ONIG_SYN_CONTEXT_INDEP_REPEAT_OPS        (1<<0)  /* ?, *, +, {n,m} */\r
+#define ONIG_SYN_CONTEXT_INVALID_REPEAT_OPS      (1<<1)  /* error or ignore */\r
+#define ONIG_SYN_ALLOW_UNMATCHED_CLOSE_SUBEXP    (1<<2)  /* ...)... */\r
+#define ONIG_SYN_ALLOW_INVALID_INTERVAL          (1<<3)  /* {??? */\r
+#define ONIG_SYN_ALLOW_INTERVAL_LOW_ABBREV       (1<<4)  /* {,n} => {0,n} */\r
+#define ONIG_SYN_STRICT_CHECK_BACKREF            (1<<5)  /* /(\1)/,/\1()/ ..*/\r
+#define ONIG_SYN_DIFFERENT_LEN_ALT_LOOK_BEHIND   (1<<6)  /* (?<=a|bc) */\r
+#define ONIG_SYN_CAPTURE_ONLY_NAMED_GROUP        (1<<7)  /* see doc/RE */\r
+#define ONIG_SYN_ALLOW_MULTIPLEX_DEFINITION_NAME (1<<8)  /* (?<x>)(?<x>) */\r
+#define ONIG_SYN_FIXED_INTERVAL_IS_GREEDY_ONLY   (1<<9)  /* a{n}?=(?:a{n})? */\r
+\r
+/* syntax (behavior) in char class [...] */\r
+#define ONIG_SYN_NOT_NEWLINE_IN_NEGATIVE_CC      (1<<20) /* [^...] */\r
+#define ONIG_SYN_BACKSLASH_ESCAPE_IN_CC          (1<<21) /* [..\w..] etc.. */\r
+#define ONIG_SYN_ALLOW_EMPTY_RANGE_IN_CC         (1<<22)\r
+#define ONIG_SYN_ALLOW_DOUBLE_RANGE_OP_IN_CC     (1<<23) /* [0-9-a]=[0-9\-a] */\r
+/* syntax (behavior) warning */\r
+#define ONIG_SYN_WARN_CC_OP_NOT_ESCAPED          (1<<24) /* [,-,] */\r
+#define ONIG_SYN_WARN_REDUNDANT_NESTED_REPEAT    (1<<25) /* (?:a*)+ */\r
+\r
+/* meta character specifiers (onig_set_meta_char()) */\r
+#define ONIG_META_CHAR_ESCAPE               0\r
+#define ONIG_META_CHAR_ANYCHAR              1\r
+#define ONIG_META_CHAR_ANYTIME              2\r
+#define ONIG_META_CHAR_ZERO_OR_ONE_TIME     3\r
+#define ONIG_META_CHAR_ONE_OR_MORE_TIME     4\r
+#define ONIG_META_CHAR_ANYCHAR_ANYTIME      5\r
+\r
+#define ONIG_INEFFECTIVE_META_CHAR          0\r
+\r
+/* error codes */\r
+#define ONIG_IS_PATTERN_ERROR(ecode)   ((ecode) <= -100 && (ecode) > -1000)\r
+/* normal return */\r
+#define ONIG_NORMAL                                            0\r
+#define ONIG_MISMATCH                                         -1\r
+#define ONIG_NO_SUPPORT_CONFIG                                -2\r
+\r
+/* internal error */\r
+#define ONIGERR_MEMORY                                         -5\r
+#define ONIGERR_TYPE_BUG                                       -6\r
+#define ONIGERR_PARSER_BUG                                    -11\r
+#define ONIGERR_STACK_BUG                                     -12\r
+#define ONIGERR_UNDEFINED_BYTECODE                            -13\r
+#define ONIGERR_UNEXPECTED_BYTECODE                           -14\r
+#define ONIGERR_MATCH_STACK_LIMIT_OVER                        -15\r
+#define ONIGERR_DEFAULT_ENCODING_IS_NOT_SETTED                -21\r
+#define ONIGERR_SPECIFIED_ENCODING_CANT_CONVERT_TO_WIDE_CHAR  -22\r
+/* general error */\r
+#define ONIGERR_INVALID_ARGUMENT                              -30 \r
+/* syntax error */\r
+#define ONIGERR_END_PATTERN_AT_LEFT_BRACE                    -100\r
+#define ONIGERR_END_PATTERN_AT_LEFT_BRACKET                  -101\r
+#define ONIGERR_EMPTY_CHAR_CLASS                             -102\r
+#define ONIGERR_PREMATURE_END_OF_CHAR_CLASS                  -103\r
+#define ONIGERR_END_PATTERN_AT_ESCAPE                        -104\r
+#define ONIGERR_END_PATTERN_AT_META                          -105\r
+#define ONIGERR_END_PATTERN_AT_CONTROL                       -106\r
+#define ONIGERR_META_CODE_SYNTAX                             -108\r
+#define ONIGERR_CONTROL_CODE_SYNTAX                          -109\r
+#define ONIGERR_CHAR_CLASS_VALUE_AT_END_OF_RANGE             -110\r
+#define ONIGERR_CHAR_CLASS_VALUE_AT_START_OF_RANGE           -111\r
+#define ONIGERR_UNMATCHED_RANGE_SPECIFIER_IN_CHAR_CLASS      -112\r
+#define ONIGERR_TARGET_OF_REPEAT_OPERATOR_NOT_SPECIFIED      -113\r
+#define ONIGERR_TARGET_OF_REPEAT_OPERATOR_INVALID            -114\r
+#define ONIGERR_NESTED_REPEAT_OPERATOR                       -115\r
+#define ONIGERR_UNMATCHED_CLOSE_PARENTHESIS                  -116\r
+#define ONIGERR_END_PATTERN_WITH_UNMATCHED_PARENTHESIS       -117\r
+#define ONIGERR_END_PATTERN_IN_GROUP                         -118\r
+#define ONIGERR_UNDEFINED_GROUP_OPTION                       -119\r
+#define ONIGERR_INVALID_POSIX_BRACKET_TYPE                   -121\r
+#define ONIGERR_INVALID_LOOK_BEHIND_PATTERN                  -122\r
+#define ONIGERR_INVALID_REPEAT_RANGE_PATTERN                 -123\r
+/* values error (syntax error) */\r
+#define ONIGERR_TOO_BIG_NUMBER                               -200\r
+#define ONIGERR_TOO_BIG_NUMBER_FOR_REPEAT_RANGE              -201\r
+#define ONIGERR_UPPER_SMALLER_THAN_LOWER_IN_REPEAT_RANGE     -202\r
+#define ONIGERR_EMPTY_RANGE_IN_CHAR_CLASS                    -203\r
+#define ONIGERR_MISMATCH_CODE_LENGTH_IN_CLASS_RANGE          -204\r
+#define ONIGERR_TOO_MANY_MULTI_BYTE_RANGES                   -205\r
+#define ONIGERR_TOO_SHORT_MULTI_BYTE_STRING                  -206\r
+#define ONIGERR_TOO_BIG_BACKREF_NUMBER                       -207\r
+#define ONIGERR_INVALID_BACKREF                              -208\r
+#define ONIGERR_NUMBERED_BACKREF_OR_CALL_NOT_ALLOWED         -209\r
+#define ONIGERR_TOO_LONG_WIDE_CHAR_VALUE                     -212\r
+#define ONIGERR_EMPTY_GROUP_NAME                             -214\r
+#define ONIGERR_INVALID_GROUP_NAME                           -215\r
+#define ONIGERR_INVALID_CHAR_IN_GROUP_NAME                   -216\r
+#define ONIGERR_UNDEFINED_NAME_REFERENCE                     -217\r
+#define ONIGERR_UNDEFINED_GROUP_REFERENCE                    -218\r
+#define ONIGERR_MULTIPLEX_DEFINED_NAME                       -219\r
+#define ONIGERR_MULTIPLEX_DEFINITION_NAME_CALL               -220\r
+#define ONIGERR_NEVER_ENDING_RECURSION                       -221\r
+#define ONIGERR_GROUP_NUMBER_OVER_FOR_CAPTURE_HISTORY        -222\r
+#define ONIGERR_INVALID_CHAR_PROPERTY_NAME                   -223\r
+#define ONIGERR_INVALID_WIDE_CHAR_VALUE                      -400\r
+#define ONIGERR_TOO_BIG_WIDE_CHAR_VALUE                      -401\r
+#define ONIGERR_NOT_SUPPORTED_ENCODING_COMBINATION           -402\r
+\r
+/* errors related to thread */\r
+#define ONIGERR_OVER_THREAD_PASS_LIMIT_COUNT                -1001\r
+\r
+\r
+/* must be smaller than BIT_STATUS_BITS_NUM (unsigned int * 8) */\r
+#define ONIG_MAX_CAPTURE_HISTORY_GROUP   31\r
+#define ONIG_IS_CAPTURE_HISTORY_GROUP(r, i) \\r
+  ((i) <= ONIG_MAX_CAPTURE_HISTORY_GROUP && (r)->list && (r)->list[i])\r
+\r
+typedef struct OnigCaptureTreeNodeStruct {\r
+  int group;   /* group number */\r
+  int beg;\r
+  int end;\r
+  int allocated;\r
+  int num_childs;\r
+  struct OnigCaptureTreeNodeStruct** childs;\r
+} OnigCaptureTreeNode;\r
+\r
+/* match result region type */\r
+struct re_registers {\r
+  int  allocated;\r
+  int  num_regs;\r
+  int* beg;\r
+  int* end;\r
+  /* extended */\r
+  OnigCaptureTreeNode* history_root;  /* capture history tree root */\r
+};\r
+\r
+/* capture tree traverse */\r
+#define ONIG_TRAVERSE_CALLBACK_AT_FIRST   1\r
+#define ONIG_TRAVERSE_CALLBACK_AT_LAST    2\r
+#define ONIG_TRAVERSE_CALLBACK_AT_BOTH \\r
+  ( ONIG_TRAVERSE_CALLBACK_AT_FIRST | ONIG_TRAVERSE_CALLBACK_AT_LAST )\r
+\r
+\r
+#define ONIG_REGION_NOTPOS            -1\r
+\r
+typedef struct re_registers   OnigRegion;\r
+\r
+typedef struct {\r
+  OnigUChar* par;\r
+  OnigUChar* par_end;\r
+} OnigErrorInfo;\r
+\r
+typedef struct {\r
+  int lower;\r
+  int upper;\r
+} OnigRepeatRange;\r
+\r
+typedef void (*OnigWarnFunc) P_((const char* s));\r
+extern void onig_null_warn P_((const char* s));\r
+#define ONIG_NULL_WARN       onig_null_warn\r
+\r
+#define ONIG_CHAR_TABLE_SIZE   256\r
+\r
+/* regex_t state */\r
+#define ONIG_STATE_NORMAL              0\r
+#define ONIG_STATE_SEARCHING           1\r
+#define ONIG_STATE_COMPILING          -1\r
+#define ONIG_STATE_MODIFY             -2\r
+\r
+#define ONIG_STATE(reg) \\r
+  ((reg)->state > 0 ? ONIG_STATE_SEARCHING : (reg)->state)\r
+\r
+typedef struct re_pattern_buffer {\r
+  /* common members of BBuf(bytes-buffer) */\r
+  unsigned char* p;         /* compiled pattern */\r
+  unsigned int used;        /* used space for p */\r
+  unsigned int alloc;       /* allocated space for p */\r
+\r
+  int state;                     /* normal, searching, compiling */\r
+  int num_mem;                   /* used memory(...) num counted from 1 */\r
+  int num_repeat;                /* OP_REPEAT/OP_REPEAT_NG id-counter */\r
+  int num_null_check;            /* OP_NULL_CHECK_START/END id counter */\r
+  int num_call;                  /* number of subexp call */\r
+  unsigned int capture_history;  /* (?@...) flag (1-31) */\r
+  unsigned int bt_mem_start;     /* need backtrack flag */\r
+  unsigned int bt_mem_end;       /* need backtrack flag */\r
+  int stack_pop_level;\r
+  int repeat_range_alloc;\r
+  OnigRepeatRange* repeat_range;\r
+\r
+  OnigEncoding  enc;\r
+  OnigOptionType    options;\r
+  OnigSyntaxType*   syntax;\r
+  OnigAmbigType     ambig_flag;\r
+  void*             name_table;\r
+\r
+  /* optimization info (string search, char-map and anchors) */\r
+  int            optimize;          /* optimize flag */\r
+  int            threshold_len;     /* search str-length for apply optimize */\r
+  int            anchor;            /* BEGIN_BUF, BEGIN_POS, (SEMI_)END_BUF */\r
+  OnigDistance   anchor_dmin;       /* (SEMI_)END_BUF anchor distance */\r
+  OnigDistance   anchor_dmax;       /* (SEMI_)END_BUF anchor distance */\r
+  int            sub_anchor;        /* start-anchor for exact or map */\r
+  unsigned char *exact;\r
+  unsigned char *exact_end;\r
+  unsigned char  map[ONIG_CHAR_TABLE_SIZE]; /* used as BM skip or char-map */\r
+  int           *int_map;                   /* BM skip for exact_len > 255 */\r
+  int           *int_map_backward;          /* BM skip for backward search */\r
+  OnigDistance   dmin;                      /* min-distance of exact or map */\r
+  OnigDistance   dmax;                      /* max-distance of exact or map */\r
+\r
+  /* regex_t link chain */\r
+  struct re_pattern_buffer* chain;  /* escape compile-conflict */\r
+} regex_t;\r
+\r
+\r
+typedef struct {\r
+  int             num_of_elements;\r
+  OnigEncoding    pattern_enc;\r
+  OnigEncoding    target_enc;\r
+  OnigSyntaxType* syntax;\r
+  OnigOptionType  option;\r
+  OnigAmbigType   ambig_flag;\r
+} OnigCompileInfo;\r
+\r
+/* Oniguruma Native API */\r
+ONIG_EXTERN\r
+int onig_init P_((void));\r
+ONIG_EXTERN\r
+int onig_error_code_to_str PV_((OnigUChar* s, int err_code, ...));\r
+ONIG_EXTERN\r
+void onig_set_warn_func P_((OnigWarnFunc f));\r
+ONIG_EXTERN\r
+void onig_set_verb_warn_func P_((OnigWarnFunc f));\r
+ONIG_EXTERN\r
+int onig_new P_((regex_t**, const OnigUChar* pattern, const OnigUChar* pattern_end, OnigOptionType option, OnigEncoding enc, OnigSyntaxType* syntax, OnigErrorInfo* einfo));\r
+ONIG_EXTERN\r
+int onig_new_deluxe P_((regex_t** reg, const OnigUChar* pattern, const OnigUChar* pattern_end, OnigCompileInfo* ci, OnigErrorInfo* einfo));\r
+ONIG_EXTERN\r
+void onig_free P_((regex_t*));\r
+ONIG_EXTERN\r
+int onig_recompile P_((regex_t*, const OnigUChar* pattern, const OnigUChar* pattern_end, OnigOptionType option, OnigEncoding enc, OnigSyntaxType* syntax, OnigErrorInfo* einfo));\r
+ONIG_EXTERN\r
+int onig_recompile_deluxe P_((regex_t* reg, const OnigUChar* pattern, const OnigUChar* pattern_end, OnigCompileInfo* ci, OnigErrorInfo* einfo));\r
+ONIG_EXTERN\r
+int onig_search P_((regex_t*, const OnigUChar* str, const OnigUChar* end, const OnigUChar* start, const OnigUChar* range, OnigRegion* region, OnigOptionType option));\r
+ONIG_EXTERN\r
+int onig_match P_((regex_t*, const OnigUChar* str, const OnigUChar* end, const OnigUChar* at, OnigRegion* region, OnigOptionType option));\r
+ONIG_EXTERN\r
+OnigRegion* onig_region_new P_((void));\r
+ONIG_EXTERN\r
+void onig_region_init P_((OnigRegion* region));\r
+ONIG_EXTERN\r
+void onig_region_free P_((OnigRegion* region, int free_self));\r
+ONIG_EXTERN\r
+void onig_region_copy P_((OnigRegion* to, OnigRegion* from));\r
+ONIG_EXTERN\r
+void onig_region_clear P_((OnigRegion* region));\r
+ONIG_EXTERN\r
+int onig_region_resize P_((OnigRegion* region, int n));\r
+ONIG_EXTERN\r
+int onig_region_set P_((OnigRegion* region, int at, int beg, int end));\r
+ONIG_EXTERN\r
+int onig_name_to_group_numbers P_((regex_t* reg, const OnigUChar* name, const OnigUChar* name_end, int** nums));\r
+ONIG_EXTERN\r
+int onig_name_to_backref_number P_((regex_t* reg, const OnigUChar* name, const OnigUChar* name_end, OnigRegion *region));\r
+ONIG_EXTERN\r
+int onig_foreach_name P_((regex_t* reg, int (*func)(const OnigUChar*, const OnigUChar*,int,int*,regex_t*,void*), void* arg));\r
+ONIG_EXTERN\r
+int onig_number_of_names P_((regex_t* reg));\r
+ONIG_EXTERN\r
+int onig_number_of_captures P_((regex_t* reg));\r
+ONIG_EXTERN\r
+int onig_number_of_capture_histories P_((regex_t* reg));\r
+ONIG_EXTERN\r
+OnigCaptureTreeNode* onig_get_capture_tree P_((OnigRegion* region));\r
+ONIG_EXTERN\r
+int onig_capture_tree_traverse P_((OnigRegion* region, int at, int(*callback_func)(int,int,int,int,int,void*), void* arg));\r
+ONIG_EXTERN\r
+OnigEncoding onig_get_encoding P_((regex_t* reg));\r
+ONIG_EXTERN\r
+OnigOptionType onig_get_options P_((regex_t* reg));\r
+ONIG_EXTERN\r
+OnigAmbigType onig_get_ambig_flag P_((regex_t* reg));\r
+ONIG_EXTERN\r
+OnigSyntaxType* onig_get_syntax P_((regex_t* reg));\r
+ONIG_EXTERN\r
+int onig_set_default_syntax P_((OnigSyntaxType* syntax));\r
+ONIG_EXTERN\r
+void onig_copy_syntax P_((OnigSyntaxType* to, OnigSyntaxType* from));\r
+ONIG_EXTERN\r
+unsigned int onig_get_syntax_op P_((OnigSyntaxType* syntax));\r
+ONIG_EXTERN\r
+unsigned int onig_get_syntax_op2 P_((OnigSyntaxType* syntax));\r
+ONIG_EXTERN\r
+unsigned int onig_get_syntax_behavior P_((OnigSyntaxType* syntax));\r
+ONIG_EXTERN\r
+OnigOptionType onig_get_syntax_options P_((OnigSyntaxType* syntax));\r
+ONIG_EXTERN\r
+void onig_set_syntax_op P_((OnigSyntaxType* syntax, unsigned int op));\r
+ONIG_EXTERN\r
+void onig_set_syntax_op2 P_((OnigSyntaxType* syntax, unsigned int op2));\r
+ONIG_EXTERN\r
+void onig_set_syntax_behavior P_((OnigSyntaxType* syntax, unsigned int behavior));\r
+ONIG_EXTERN\r
+void onig_set_syntax_options P_((OnigSyntaxType* syntax, OnigOptionType options));\r
+ONIG_EXTERN\r
+int onig_set_meta_char P_((OnigEncoding enc, unsigned int what, OnigCodePoint code));\r
+ONIG_EXTERN\r
+void onig_copy_encoding P_((OnigEncoding to, OnigEncoding from));\r
+ONIG_EXTERN\r
+OnigAmbigType onig_get_default_ambig_flag P_(());\r
+ONIG_EXTERN\r
+int onig_set_default_ambig_flag P_((OnigAmbigType ambig_flag));\r
+ONIG_EXTERN\r
+unsigned int onig_get_match_stack_limit_size P_((void));\r
+ONIG_EXTERN\r
+int onig_set_match_stack_limit_size P_((unsigned int size));\r
+ONIG_EXTERN\r
+int onig_end P_((void));\r
+ONIG_EXTERN\r
+const char* onig_version P_((void));\r
+ONIG_EXTERN\r
+const char* onig_copyright P_((void));\r
+\r
+#ifdef __cplusplus\r
+}\r
+#endif\r
+\r
+#endif /* ONIGURUMA_H */\r
diff --git a/oniguruma/sh3/oniguruma.dll b/oniguruma/sh3/oniguruma.dll
new file mode 100644 (file)
index 0000000..6c43d14
Binary files /dev/null and b/oniguruma/sh3/oniguruma.dll differ
diff --git a/oniguruma/sh3/oniguruma.lib b/oniguruma/sh3/oniguruma.lib
new file mode 100644 (file)
index 0000000..8558e47
Binary files /dev/null and b/oniguruma/sh3/oniguruma.lib differ
diff --git a/oniguruma/sh4/oniguruma.dll b/oniguruma/sh4/oniguruma.dll
new file mode 100644 (file)
index 0000000..0a1eb0e
Binary files /dev/null and b/oniguruma/sh4/oniguruma.dll differ
diff --git a/oniguruma/sh4/oniguruma.lib b/oniguruma/sh4/oniguruma.lib
new file mode 100644 (file)
index 0000000..2566d7b
Binary files /dev/null and b/oniguruma/sh4/oniguruma.lib differ
diff --git a/oniguruma/win32/oniguruma.dll b/oniguruma/win32/oniguruma.dll
new file mode 100644 (file)
index 0000000..6246922
Binary files /dev/null and b/oniguruma/win32/oniguruma.dll differ
diff --git a/oniguruma/win32/oniguruma.lib b/oniguruma/win32/oniguruma.lib
new file mode 100644 (file)
index 0000000..7bb7b45
Binary files /dev/null and b/oniguruma/win32/oniguruma.lib differ