diff --git a/.clang-format b/.clang-format new file mode 100644 index 000000000..8d49e4e82 --- /dev/null +++ b/.clang-format @@ -0,0 +1,25 @@ +# clang format setting for Tera Term +# +# - この設定に従わなくてもokです +# - どのようなインデントにするかの参考に使用してください +# - diffが取れなくなるので従来からあるファイルに一気に適応しないでください +# (実験段階です) +# - Visual Studio 2017からclang-formatをIDEから利用できます +# - 次の方法でclang-formatの使用を変更できます +# - [ツール]/[オプション] → +# [テキスト エディタ―]/[C/C++]/[書式設定]/[clang-formatサポート] +# +BasedOnStyle: Google +ColumnLimit: 120 +UseTab: Always +IndentWidth: 4 +TabWidth: 4 +AllowShortIfStatementsOnASingleLine: false +AllowShortFunctionsOnASingleLine: None +BreakBeforeBraces: Custom +BraceWrapping: + AfterFunction: 'true' + BeforeElse: 'true' + AfterClass: 'true' +SortIncludes: false +AccessModifierOffset: -4 diff --git a/.editorconfig b/.editorconfig new file mode 100644 index 000000000..4507f4a3e --- /dev/null +++ b/.editorconfig @@ -0,0 +1,74 @@ +root = true + +[*] +indent_style = tab +indent_size = 4 + +[*.{cpp,c,h,cc}] +indent_style = tab +indent_size = 4 +end_of_line = crlf +charset = cp932 +trim_trailing_whitespace = true +insert_final_newline = true + +[*.html] +end_of_line = crlf +charset = cp932 +indent_style = space +indent_size = 2 + +[*.md] +end_of_line = crlf +charset = utf-8-bom +indent_style = space + +[*.pl] +end_of_line = lf +charset = utf-8 +indent_style = tab +indent_size = 4 +trim_trailing_whitespace = true + +[*.txt] +end_of_line = crlf +charset = cp932 +indent_style = tab +indent_size = 4 + +[*.asm] +end_of_line = crlf +charset = utf8 +indent_style = space +indent_size = 4 +trim_trailing_whitespace = true +insert_final_newline = true + +[{CMakeLists.txt,*.cmake}] +end_of_line = crlf +charset = utf-8-bom +indent_style = space +indent_size = 2 +trim_trailing_whitespace = true +insert_final_newline = true + +[*.bat] +charset = cp932 +end_of_line = crlf +indent_style = space +indent_size = 4 + +[{*.iss,*.iss.in}] +end_of_line = crlf +charset = utf-8-bom +indent_style = space +indent_size = 2 +trim_trailing_whitespace = true +insert_final_newline = true + +[*.ini] +end_of_line = crlf + +[*.sh] +end_of_line = lf +charset = utf-8 diff --git a/.gitignore b/.gitignore new file mode 100644 index 000000000..266bf1842 --- /dev/null +++ b/.gitignore @@ -0,0 +1,16 @@ +build*/ +*~ +/libs/* +*.obj +**/Debug/ +**/Release/ +**/.vs/ +*.aps +/GTAGS +/GPATH +/GRTAGS +*.ncb +*.suo +*.user +*.map +/gtags.files diff --git a/CMakeLists.txt b/CMakeLists.txt new file mode 100644 index 000000000..758046079 --- /dev/null +++ b/CMakeLists.txt @@ -0,0 +1,244 @@ + +cmake_minimum_required(VERSION 3.11) + +project(teraterm_all) + +if(MSVC) + if((NOT DEFINED CMAKE_GENERATOR_PLATFORM) OR (CMAKE_GENERATOR_PLATFORM STREQUAL "")) + set(CMAKE_GENERATOR_PLATFORM "win32") + #set(CMAKE_GENERATOR_PLATFORM ${CMAKE_VS_PLATFORM_TOOLSET_HOST_ARCHITECTURE}) + endif() +endif() + +set(SUPPORT_OLD_WINDOWS_DEFAULT OFF) +set(BMP_ICO_DEFAULT OFF) +if(MSVC AND (MSVC_VERSION LESS_EQUAL 1400)) + # Visual Studio 2005 (1400=VS2005) + set(SUPPORT_OLD_WINDOWS_DEFAULT ON) + set(BMP_ICO_DEFAULT ON) +endif() +if(CMAKE_HOST_UNIX AND (NOT DEFINED CMAKE_TOOLCHAIN_FILE)) + message(FATAL_ERROR "add option -DCMAKE_TOOLCHAIN_FILE=${CMAKE_CURRENT_LIST_DIR}/mingw.toolchain.cmake") +endif() + +option(SUPPORT_OLD_WINDOWS "windows 95 support" ${SUPPORT_OLD_WINDOWS_DEFAULT}) +option(BMP_ICO "icon(*.ico) file include only bmp(not png)" ${BMP_ICO_DEFAULT}) +option(ENABLE_TTXSAMPLES "TTXSamples" ON) +option(MORE_WARNING "stronger warning" OFF) +option(TTXSSH "ttxssh" ON) +option(DYNAMIC_CODE_ANALYSIS "Dynamic code analysis" OFF) + +set_property(GLOBAL PROPERTY USE_FOLDERS ON) +get_property(IS_MULTI_CONFIG GLOBAL PROPERTY GENERATOR_IS_MULTI_CONFIG) + +set(CMAKE_CONFIGURATION_TYPES "Debug;Release") +set(CMAKE_RUNTIME_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}) +set(CMAKE_LIBRARY_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}) + +# 出力フォルダ +if("${CMAKE_GENERATOR}" MATCHES "Visual Studio") + if(${CMAKE_VERSION} VERSION_GREATER_EQUAL "3.12.0") + set(BINARY_DIR "${CMAKE_BINARY_DIR}/$") + else() + # 3.11のときはとりあえず debug ビルドと仮定する + set(BINARY_DIR "${CMAKE_BINARY_DIR}/debug") + endif() +else() + set(BINARY_DIR "${CMAKE_BINARY_DIR}") +endif() + +#set(_WIN32_WINNT "0x0a00") # 0x0a00=_WIN32_WINNT_WIN10 +#set(_WIN32_WINNT "0x0501") # Tera Term がビルドできる最小値 +if(MSVC AND (MSVC_VERSION LESS_EQUAL 1500)) + # Visual Studio 2005, 2008 (1500=VS2008) + set(_WIN32_WINNT "0x0501") + if(1) + set(TTXSSH OFF) + else() + # この組み合わせはlibputtyがビルドできないので今のところ実現しない + set(TTXSSH ON) + set(TTXSSH_LIBRESSL OFF) + set(TTXSSH_OPENSSL3 ON) + endif() +endif() +if(${BMP_ICO}) + # cmake 3.11でRC_FLAGSが反映されない?,C_FLAGSも設定するとok + # bmp形式icoについて teraterm/teraterm/common/ico/ico_scripts/readme.md 参照 + set(CMAKE_RC_FLAGS "${CMAKE_RC_FLAGS} /DBMP_ICO") + set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} /DBMP_ICO") + set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} /DBMP_ICO") +endif() + +if(MSVC) + # https://www.leeholmes.com/blog/2017/02/27/differences-between-visual-studio-2012-2013-and-2015/ + if(_WIN32_WINNT) + set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} /D_WIN32_WINNT=${_WIN32_WINNT}") + set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} /D_WIN32_WINNT=${_WIN32_WINNT}") + endif() + string(REPLACE "/MD" "/MT" CMAKE_C_FLAGS_DEBUG ${CMAKE_C_FLAGS_DEBUG}) + string(REPLACE "/MD" "/MT" CMAKE_C_FLAGS_RELEASE ${CMAKE_C_FLAGS_RELEASE}) + string(REPLACE "/MD" "/MT" CMAKE_CXX_FLAGS_DEBUG ${CMAKE_CXX_FLAGS_DEBUG}) + string(REPLACE "/MD" "/MT" CMAKE_CXX_FLAGS_RELEASE ${CMAKE_CXX_FLAGS_RELEASE}) + if (MORE_WARNING) + set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} /W4") + set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} /W4") + if(${MSVC_VERSION} GREATER_EQUAL 1910) # Visual Studio 2017以上の時 + set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} /analyze") + set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} /analyze") + endif() + else() + set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} /D_CRT_SECURE_NO_DEPRECATE") + set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} /D_CRT_SECURE_NO_DEPRECATE") + set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} /W3") + set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} /W3") + endif() + set(CMAKE_C_FLAGS_RELEASE "${CMAKE_C_FLAGS_RELEASE} /GF /Gy /Zi") + set(CMAKE_CXX_FLAGS_RELEASE "${CMAKE_CXX_FLAGS_RELEASE} /GF /Gy /Zi") + set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} /MP") + set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} /MP") + if(${MSVC_VERSION} GREATER_EQUAL 1910) + # Visual Studio 2017以上の時 + set(CMAKE_C_FLAGS_DEBUG "${CMAKE_C_FLAGS_DEBUG} /ZI") + set(CMAKE_CXX_FLAGS_DEBUG "${CMAKE_CXX_FLAGS_DEBUG} /ZI") + set(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} /SAFESEH:NO") + set(CMAKE_SHARED_LINKER_FLAGS "${CMAKE_SHARED_LINKER_FLAGS} /SAFESEH:NO") + endif() + if(DYNAMIC_CODE_ANALYSIS) + if(${MSVC_VERSION} GREATER_EQUAL 1920) + # Visual Studio 2019以上の時 + set(CMAKE_C_FLAGS_DEBUG "${CMAKE_C_FLAGS_DEBUG} /fsanitize=address") + set(CMAKE_CXX_FLAGS_DEBUG "${CMAKE_CXX_FLAGS_DEBUG} /fsanitize=address") + set(CMAKE_C_FLAGS_RELEASE "${CMAKE_C_FLAGS_RELEASE} /fsanitize=address") + set(CMAKE_CXX_FLAGS_RELEASE "${CMAKE_CXX_FLAGS_RELEASE} /fsanitize=address") + endif() + endif() +elseif(MINGW) + if(_WIN32_WINNT) + set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -D_WIN32_WINNT=${_WIN32_WINNT}") + set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -D_WIN32_WINNT=${_WIN32_WINNT}") + endif() + set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -D__USE_MINGW_ANSI_STDIO=0") + set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -D__USE_MINGW_ANSI_STDIO=0") + if (NOT MORE_WARNING) + set(CMAKE_C_CXX_WARNING_FLAGS "-Wall -Wextra -Wno-unused-parameter -Wno-sign-compare") + set(CMAKE_C_WARNING_FLAGS "${CMAKE_C_CXX_WARNING_FLAGS} -Wno-pointer-sign -Wno-incompatible-pointer-types") + endif() + set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} ${CMAKE_C_WARNING_FLAGS} -static -ffunction-sections -fdata-sections ${C_ONLY_FLAGS}") + set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${CMAKE_C_CXX_WARNING_FLAGS} -static -ffunction-sections -fdata-sections") + set(CMAKE_C_FLAGS_DEBUG "${CMAKE_C_FLAGS_DEBUG} -D_DEBUG") + set(CMAKE_CXX_FLAGS_DEBUG "${CMAKE_CXX_FLAGS_DEBUG} -D_DEBUG") + if (CMAKE_C_COMPILER_ID STREQUAL "GNU") + set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -static-libgcc -static-libstdc++") + set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -static-libgcc -static-libstdc++") + endif() + set(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} -static-libgcc") + set(CMAKE_SHARED_LINKER_FLAGS "${CMAKE_SHARED_LINKER_FLAGS} -static-libgcc") + set(CMAKE_EXE_LINKER_FLAGS_RELEASE "${CMAKE_EXE_LINKER_FLAGS_RELEASE} -s -Wl,--gc-sections") + set(CMAKE_SHARED_LINKER_FLAGS_RELEASE "${CMAKE_SHARED_LINKER_FLAGS_RELEASE} -s -Wl,--gc-sections") +endif() + +if(SUPPORT_OLD_WINDOWS) + message("SUPPORT_OLD_WINDOWS=ON") +endif() + +### tool +# perl +include(${CMAKE_CURRENT_LIST_DIR}/buildtools/checkperl.cmake) +message("perl=${PERL}") + +# svn / git-svn +if(EXISTS "${CMAKE_SOURCE_DIR}/.git") + # git (git-svn) + find_package(Git) + message("git=${GIT_EXECUTABLE}") +elseif(EXISTS "${CMAKE_SOURCE_DIR}/.svn") + # svn + find_package(Subversion) + message("svn=${Subversion_SVN_EXECUTABLE}") +endif() + +if(NOT $ENV{USER}) + set(USER $ENV{USER}) +elseif(NOT $ENV{USERNAME}) + set(USER $ENV{USERNAME}) +else() + set(USER "NONAME") +endif() + +# ソースツリー内に生成ファイルが存在していたら削除する +if(EXISTS "${CMAKE_SOURCE_DIR}/teraterm/ttpdlg/svnversion.h") + file(REMOVE "${CMAKE_SOURCE_DIR}/teraterm/ttpdlg/svnversion.h") +endif() +if(EXISTS "${CMAKE_SOURCE_DIR}/teraterm/common/svnversion.h") + file(REMOVE "${CMAKE_SOURCE_DIR}/teraterm/common/svnversion.h") +endif() + +if((NOT EXISTS "${CMAKE_BINARY_DIR}/build_config.cmake") OR + (NOT EXISTS "${CMAKE_BINARY_DIR}/teraterm/common/svnversion.h") OR + (NOT EXISTS "${CMAKE_SOURCE_DIR}/buildtools/svnrev/sourcetreeinfo.bat")) + file(MAKE_DIRECTORY ${CMAKE_BINARY_DIR}/teraterm/common) + execute_process( + COMMAND ${CMAKE_COMMAND} -DPERL=${PERL} -DSOURCE_DIR=${CMAKE_SOURCE_DIR} -DBINARY_DIR=${CMAKE_BINARY_DIR} -DGIT_EXECUTABLE=${GIT_EXECUTABLE} -DSVN_EXECUTABLE=${Subversion_SVN_EXECUTABLE} -P svnrev.cmake + WORKING_DIRECTORY ${CMAKE_SOURCE_DIR}/buildtools/svnrev + RESULT_VARIABLE rv + ) + if(NOT rv STREQUAL "0") + message(FATAL_ERROR "execute error ${PERL}") + endif() +endif() +include(${CMAKE_BINARY_DIR}/build_config.cmake) + +if(DEFINED GITVERSION) + message("git hash=\"${GITVERSION}\"") + set(REVISION_TIME_USER "${DATE}_${TIME}-${GITVERSION}-${USER}") +elseif(DEFINED SVNVERSION) + message("svn revision=\"${SVNVERSION}\"") + set(REVISION_TIME_USER "r${SVNVERSION}-${DATE}_${TIME}-${USER}") +else() + set(REVISION_TIME_USER "${DATE}_${TIME}-unknown-${USER}") +endif() +if(NOT DEFINED SNAPSHOT_DIR) + set(SNAPSHOT_DIR "teraterm-${VERSION}-${REVISION_TIME_USER}") +endif() +set(CMAKE_INSTALL_PREFIX "${PROJECT_BINARY_DIR}/${SNAPSHOT_DIR}") +if(NOT DEFINED SETUP_EXE) + # not need ".exe" + if(RELEASE) + set(SETUP_EXE "teraterm-${VERSION}") + else() + set(SETUP_EXE "teraterm-${VERSION}-${REVISION_TIME_USER}") + endif() +endif() +if(NOT DEFINED SETUP_ZIP) + if(RELEASE) + set(SETUP_ZIP "teraterm-${VERSION}.zip") + else() + set(SETUP_ZIP "teraterm-${VERSION}-${REVISION_TIME_USER}.zip") + endif() +endif() + +### subdirectories +add_subdirectory(teraterm) +add_subdirectory(ttpmenu) +add_subdirectory(TTProxy) +if(TTXSSH) + add_subdirectory(ttssh2) +endif(TTXSSH) +add_subdirectory(TTXKanjiMenu) +if(${ENABLE_TTXSAMPLES}) + add_subdirectory(TTXSamples) +endif() +add_subdirectory(installer) +add_subdirectory(doc) +add_subdirectory(doc_internal) +add_subdirectory(tools) +if(EXISTS ${CMAKE_CURRENT_LIST_DIR}/TTXAdditional/CMakeLists.txt) + add_subdirectory(TTXAdditional) +endif() +add_subdirectory(cygwin) + +### create buildinfo.txt +configure_file( + buildinfo.txt.in + buildinfo.txt + @ONLY) diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md new file mode 100644 index 000000000..7c182113b --- /dev/null +++ b/CONTRIBUTING.md @@ -0,0 +1,38 @@ +# CONTRIBUTING + +開発を手伝っていただければとても助かります。 + +- ドキュメント、lngファイルの不備の指摘、修正、英訳(翻訳)など +- 動作の不具合の指摘、修正 +- 不具合などのレポート(Issue)の対応 + - 他の困っている方をサポートする、不具合の再現チェックなど + +次のドキュメントを参考にしてください。 +- [連絡先,各種情報へリンク](https://teratermproject.github.io/manual/5/ja/about/contacts.html) + +## プログラム、ドキュメントの修正 + +GitHubを使用しています。 +修正を送る(Pull Request(PR)を送る)手順は次のようになります。 +参考にしてください。 + +- GitHub上でTera TermリポジトリをForkして自分のリモートリポジトリを作成する +- 自分のリモートリポジトリをローカルにcloneする +- プログラムの修正の場合、Tera Termのビルド + - [ビルド手順](https://teratermproject.github.io/manual/5/ja/reference/develop-build.html#build-quick) を参照ください +- ブランチを作成して修正 +- ローカルの修正を自分のリモートリポジトリにpush + - 修正したソースツリーがGitHubに置いてあれば、[AppVeyorでビルド](https://raw.githubusercontent.com/TeraTermProject/teraterm/main/ci_scripts/appveyor.md)することもできます +- Pull Requestを送る + +Issueで問題を指摘して、解決のためのPRをいただいてもいいですし、 +PRを直接いただいてもokです。 + +修正にドキュメント(マニュアル(日/英)、修正履歴)が含まれていると +main へのマージがスムーズに進みやすいです。 + +修正はプルリクエストのレビューを使って +内容の確認や追加の修正をお願いすることがあります。 + +GitHub よりもカジュアルに使える Discord があります。 +[wiki](https://github.com/TeraTermProject/teraterm/wiki/Discord)を参照ください。 diff --git a/LICENSE.md b/LICENSE.md new file mode 100644 index 000000000..f3e991241 --- /dev/null +++ b/LICENSE.md @@ -0,0 +1,4 @@ +see copyright page + [ja](https://teratermproject.github.io/manual/5/ja/about/copyright.html) + [en](https://teratermproject.github.io/manual/5/en/about/copyright.html) + diff --git a/README.md b/README.md new file mode 100644 index 000000000..f6d003fd2 --- /dev/null +++ b/README.md @@ -0,0 +1,5 @@ +# Tera Term + +Tera Term is a free software terminal emulator + +[URLs](https://github.com/TeraTermProject/teraterm/wiki/Urls) diff --git a/TTProxy/CMakeLists.txt b/TTProxy/CMakeLists.txt new file mode 100644 index 000000000..92e751bef --- /dev/null +++ b/TTProxy/CMakeLists.txt @@ -0,0 +1,140 @@ +set(PACKAGE_NAME "TTXProxy") + +project(${PACKAGE_NAME}) + +add_library( + ${PACKAGE_NAME} SHARED + Hooker.h + Logger.h + ProxyWSockHook.h + resource.h + StdAfx.cpp + StdAfx.h + TTProxy.cpp + TTProxy.h + TTProxy.rc + TTX.def + ) + +if(SUPPORT_OLD_WINDOWS) + if(MSVC) + target_sources( + ${PACKAGE_NAME} + PRIVATE + ../../teraterm/common/compat_w95_vs2005.c + ) + endif() + if(MINGW) + target_sources( + ${PACKAGE_NAME} + PRIVATE + ../../teraterm/libmingw/tlssup.c + ) + target_link_libraries( + ${PACKAGE_NAME} + PRIVATE + -Wl,--whole-archive + mingw_msvcrt + -Wl,--no-whole-archive + ) + endif() +endif(SUPPORT_OLD_WINDOWS) + +target_sources( + ${PACKAGE_NAME} + PRIVATE + ../teraterm/common/ttlib.h + ../teraterm/common/i18n.h + ../teraterm/common/ttplugin.h + ../teraterm/common/tttypes.h + ../teraterm/common/tt-version.h + ../teraterm/common/codeconv.h + ../teraterm/common/dlglib.h + ../teraterm/teraterm/ttdialog.h + ../teraterm/teraterm/ttfileio.h + ../teraterm/teraterm/ttsetup.h + ../teraterm/teraterm/ttwsk.h + ) + +source_group( + "common" + REGULAR_EXPRESSION + "teraterm\/common\/") + +target_sources( + ${PACKAGE_NAME} + PRIVATE + YCL/include/YCL/Array.h + YCL/include/YCL/ComboBoxCtrl.h + YCL/include/YCL/Dialog.h + YCL/include/YCL/DynamicLinkLibrary.h + YCL/include/YCL/EditBoxCtrl.h + YCL/include/YCL/Enumeration.h + YCL/include/YCL/FileVersion.h + YCL/include/YCL/HASHCODE.h + YCL/include/YCL/Hashtable.h + YCL/include/YCL/IniFile.h + YCL/include/YCL/Integer.h + YCL/include/YCL/Object.h + YCL/include/YCL/Pointer.h + YCL/include/YCL/Resource.h + YCL/include/YCL/String.h + YCL/include/YCL/StringBuffer.h + YCL/include/YCL/StringUtil.h + YCL/include/YCL/ValueCtrl.h + YCL/include/YCL/Vector.h + YCL/include/YCL/WString.h + YCL/include/YCL/WStringBuffer.h + YCL/include/YCL/Window.h + YCL/include/YCL/common.h + ) + +source_group( + "YCL" + REGULAR_EXPRESSION + "YCL\/include\/") + +set_target_properties( + ${PACKAGE_NAME} + PROPERTIES + PREFIX "" + RUNTIME_OUTPUT_DIRECTORY "${CMAKE_BINARY_DIR}/" + ) + +target_include_directories( + ${PACKAGE_NAME} + PRIVATE + ../teraterm/teraterm + YCL/include + . + ) + +target_link_libraries( + ${PACKAGE_NAME} + PRIVATE + common_static + ttpcmn + ) + +if(SUPPORT_OLD_WINDOWS) + target_link_libraries( + ${PACKAGE_NAME} + PRIVATE + layer_for_unicode + ) +endif(SUPPORT_OLD_WINDOWS) + +target_link_libraries( + ${PACKAGE_NAME} + PRIVATE + ws2_32 + version + gdi32 + comdlg32 + ) + +install( + TARGETS ${PACKAGE_NAME} + RUNTIME + DESTINATION . + ) diff --git a/TTProxy/Logger.h b/TTProxy/Logger.h index 8c3ab811c..707f2eb4d 100644 --- a/TTProxy/Logger.h +++ b/TTProxy/Logger.h @@ -7,6 +7,7 @@ using namespace yebisuya; class Logger { private: HANDLE logfile; + WString folder_; Logger():logfile(INVALID_HANDLE_VALUE) { } public: @@ -78,14 +79,25 @@ class Logger { } public: - static void open(String filename) { + static void open(WString filename) { close(); - if (filename != NULL) { - HANDLE logfile = ::CreateFile(filename, GENERIC_WRITE, FILE_SHARE_READ, NULL, OPEN_ALWAYS, FILE_ATTRIBUTE_NORMAL, NULL); - if (logfile != INVALID_HANDLE_VALUE) { - ::SetFilePointer(logfile, 0, NULL, FILE_END); - instance().logfile = logfile; - } + + if (filename == NULL) { + return; + } + + WString full_filename; + if (IsRelativePathW(filename)) { + full_filename = instance().folder_ + L"\\" + filename; + } + else { + full_filename = filename; + } + + HANDLE logfile = ::CreateFileW(full_filename, GENERIC_WRITE, FILE_SHARE_READ, NULL, OPEN_ALWAYS, FILE_ATTRIBUTE_NORMAL, NULL); + if (logfile != INVALID_HANDLE_VALUE) { + ::SetFilePointer(logfile, 0, NULL, FILE_END); + instance().logfile = logfile; } } static void close() { @@ -100,6 +112,9 @@ class Logger { static void log(const char* label, const unsigned char* data, int size) { instance().debuglog_binary(label, data, size); } + static void set_folder(const WString &folder) { + instance().folder_ = folder; + } }; #endif//_YEBISOCKS_LOGGER_H_ diff --git a/TTProxy/ProxyWSockHook.h b/TTProxy/ProxyWSockHook.h index 280388915..3cd721d77 100644 --- a/TTProxy/ProxyWSockHook.h +++ b/TTProxy/ProxyWSockHook.h @@ -13,38 +13,35 @@ using namespace yebisuya; #include "resource.h" #include "Hooker.h" #include "Logger.h" -#include "SSLSocket.h" #include "ttlib.h" #include "i18n.h" -extern char UILanguageFile[MAX_PATH]; +extern wchar_t *UILanguageFileW; -void UTIL_get_lang_msg(PCHAR key, PCHAR buf, int buf_len, PCHAR def) +void UTIL_get_lang_msg(const char *key, PCHAR buf, int buf_len, const char *def) { - GetI18nStr("TTProxy", key, buf, buf_len, def, UILanguageFile); + wchar_t *b; + wchar_t *defW = ToWcharA(def); + GetI18nStrWW("TTProxy", key, defW, UILanguageFileW, &b); + free(defW); + WideCharToACP_t(b, buf, buf_len); + free(b); } -int UTIL_get_lang_font(PCHAR key, HWND dlg, PLOGFONT logfont, HFONT *font) +void UTIL_get_lang_msgW(const char *key, wchar_t *buf, int buf_len, const wchar_t *def) { - if (GetI18nLogfont("TTProxy", key, logfont, - GetDeviceCaps(GetDC(dlg),LOGPIXELSY), - UILanguageFile) == FALSE) { - return FALSE; - } - - if ((*font = CreateFontIndirect(logfont)) == NULL) { - return FALSE; - } - - return TRUE; + wchar_t *b; + GetI18nStrWW("TTProxy", key, def, UILanguageFileW, &b); + wcscpy_s(buf, buf_len, b); + free(b); } class ProxyWSockHook { public: class MessageShower { public: - virtual void showMessage(const char* message)const = NULL; + virtual void showMessage(const char* message)const = 0; }; private: struct DUMMYHOSTENT { @@ -87,8 +84,8 @@ class ProxyWSockHook { event = 0; } } - operator int()const { - return window == NULL && message == 0 && event == 0 ? 0 : (int) window; + operator HWND() const { + return window == NULL && message == 0 && event == 0 ? 0 : window; } }; Hashtable table; @@ -174,12 +171,7 @@ class ProxyWSockHook { } *dst = '\0'; const PROXY_TYPE_TABLE* table = proxy_type_table(); - bool ssl_enabled = SSLSocket::isEnabled(); while (table->name != NULL) { - if (!ssl_enabled && strstr(table->name, "ssl") != NULL) { - table++; - continue; - } if (strcmp(buffer, table->name) == 0) return table->type; table++; @@ -633,12 +625,14 @@ class ProxyWSockHook { HANDLE getTask(ConnectionInfo* info) { if (info == NULL) return NULL; - return (HANDLE) -info->addr.S_un.S_un_b.s_b4; + // s_b4̃}CiX̒lnhƂĎgp + return (HANDLE)(intptr_t)-info->addr.S_un.S_un_b.s_b4; } ConnectionInfo* get(HANDLE task) { - if ((DWORD) task >= 0) + // nh͐lƂă}CiX̒l̂͂ + if ((intptr_t) task >= 0) return NULL; - return get((int) -((long) task) - 1); + return get((int) -((intptr_t) task) - 1); } ConnectionInfo* get(in_addr addr) { if (addr.S_un.S_un_b.s_b1 != 0 || addr.S_un.S_un_b.s_b2 != 0 || addr.S_un.S_un_b.s_b3 != 0) @@ -730,125 +724,62 @@ class ProxyWSockHook { Window conn; Window erro; Window log; - HFONT DlgFont; protected: - virtual bool dispatch(int message, int wParam, long lParam) { + virtual bool dispatch(UINT message, WPARAM wParam, LPARAM lParam) { if (message == WM_COMMAND && wParam == MAKEWPARAM(IDC_REFER, BN_CLICKED)) { - char buffer[1024]; - char uimsg[MAX_UIMSG]; - OPENFILENAME ofn = { - sizeof ofn, - *this, - }; + wchar_t buffer[1024]; + wchar_t uimsg[MAX_UIMSG]; + OPENFILENAMEW ofn = {}; + ofn.lStructSize = get_OPENFILENAME_SIZEW(); + ofn.hwndOwner = *this; ofn.lpstrFile = buffer; - ofn.nMaxFile = countof(buffer); + ofn.nMaxFile = _countof(buffer); ofn.Flags = OFN_LONGNAMES | OFN_NONETWORKBUTTON | OFN_PATHMUSTEXIST | OFN_NOREADONLYRETURN | OFN_HIDEREADONLY; - UTIL_get_lang_msg("MSG_LOGFILE_SELECT", uimsg, sizeof(uimsg), - "Select Logfile"); + UTIL_get_lang_msgW("MSG_LOGFILE_SELECT", uimsg, _countof(uimsg), + L"Select Logfile"); ofn.lpstrTitle = uimsg; if (logfile != NULL) { - strcpy_s(buffer, sizeof buffer, logfile); + wcscpy_s(buffer, _countof(buffer), logfile); }else{ buffer[0] = '\0'; } - if (::GetSaveFileName(&ofn)) { + if (::GetSaveFileNameW(&ofn)) { if (buffer[0] != '\0') { logfile = buffer; }else{ logfile = NULL; } - log.SetWindowText(buffer); + log.SetWindowTextW(buffer); } return true; } return Dialog::dispatch(message, wParam, lParam); } virtual bool onInitDialog() { - char uimsg[MAX_UIMSG], uitmp[MAX_UIMSG]; - LOGFONT logfont; - HFONT font; + const static DlgTextInfo text_info[] = { + { 0, "DLG_OTHER_TITLE" }, + { IDC_GRP_COMMON, "DLG_OTHER_COMMON" }, + { IDC_TIMEOUT_LABEL, "DLG_OTHER_TIMEOUT" }, + { IDC_TIMEOUT_SECONDS, "DLG_OTHER_SECOND" }, + { IDC_LOGFILE_LABEL, "DLG_OTHER_LOG" }, + { IDC_REFER, "DLG_OTHER_REFER" }, + { IDC_GRP_SOCKS, "DLG_OTHER_SOCKS" }, + { IDC_RESOLVE_LABEL, "DLG_OTHER_RESOLV" }, + { IDC_GRP_TELNET, "DLG_OTHER_TELNET" }, + { IDC_HOSTNAME_LABEL, "DLG_OTHER_HOST" }, + { IDC_USERNAME_LABEL, "DLG_OTHER_USER" }, + { IDC_PASSWORD_LABEL, "DLG_OTHER_PASS" }, + { IDC_CONNECTED_LABEL, "DLG_OTHER_CONNECT" }, + { IDC_ERROR_LABEL, "DLG_OTHER_ERROR" }, +// { IDOK, "BTN_OK" }, +// { IDCANCEL, "BTN_CANCEL" }, + }; + char uimsg[MAX_UIMSG]; Dialog::onInitDialog(); - font = (HFONT)SendMessage(WM_GETFONT, 0, 0); - GetObject(font, sizeof(LOGFONT), &logfont); - if (UTIL_get_lang_font("DLG_TAHOMA_FONT", HWND(), &logfont, &DlgFont)) { - SendDlgItemMessage(IDC_GRP_COMMON, WM_SETFONT, (WPARAM)DlgFont, MAKELPARAM(TRUE,0)); - SendDlgItemMessage(IDC_TIMEOUT_LABEL, WM_SETFONT, (WPARAM)DlgFont, MAKELPARAM(TRUE,0)); - SendDlgItemMessage(IDC_TIMEOUT, WM_SETFONT, (WPARAM)DlgFont, MAKELPARAM(TRUE,0)); - SendDlgItemMessage(IDC_TIMEOUT_SECONDS, WM_SETFONT, (WPARAM)DlgFont, MAKELPARAM(TRUE,0)); - SendDlgItemMessage(IDC_LOGFILE_LABEL, WM_SETFONT, (WPARAM)DlgFont, MAKELPARAM(TRUE,0)); - SendDlgItemMessage(IDC_LOGFILE, WM_SETFONT, (WPARAM)DlgFont, MAKELPARAM(TRUE,0)); - SendDlgItemMessage(IDC_REFER, WM_SETFONT, (WPARAM)DlgFont, MAKELPARAM(TRUE,0)); - SendDlgItemMessage(IDC_GRP_SOCKS, WM_SETFONT, (WPARAM)DlgFont, MAKELPARAM(TRUE,0)); - SendDlgItemMessage(IDC_RESOLVE_LABEL, WM_SETFONT, (WPARAM)DlgFont, MAKELPARAM(TRUE,0)); - SendDlgItemMessage(CBS_DROPDOWNLIST, WM_SETFONT, (WPARAM)DlgFont, MAKELPARAM(TRUE,0)); - SendDlgItemMessage(IDC_GRP_TELNET, WM_SETFONT, (WPARAM)DlgFont, MAKELPARAM(TRUE,0)); - SendDlgItemMessage(IDC_HOSTNAME_LABEL, WM_SETFONT, (WPARAM)DlgFont, MAKELPARAM(TRUE,0)); - SendDlgItemMessage(IDC_HOSTNAME, WM_SETFONT, (WPARAM)DlgFont, MAKELPARAM(TRUE,0)); - SendDlgItemMessage(IDC_USERNAME_LABEL, WM_SETFONT, (WPARAM)DlgFont, MAKELPARAM(TRUE,0)); - SendDlgItemMessage(IDC_USERNAME, WM_SETFONT, (WPARAM)DlgFont, MAKELPARAM(TRUE,0)); - SendDlgItemMessage(IDC_PASSWORD_LABEL, WM_SETFONT, (WPARAM)DlgFont, MAKELPARAM(TRUE,0)); - SendDlgItemMessage(IDC_PASSWORD, WM_SETFONT, (WPARAM)DlgFont, MAKELPARAM(TRUE,0)); - SendDlgItemMessage(IDC_CONNECTED_LABEL, WM_SETFONT, (WPARAM)DlgFont, MAKELPARAM(TRUE,0)); - SendDlgItemMessage(IDC_CONNECTED, WM_SETFONT, (WPARAM)DlgFont, MAKELPARAM(TRUE,0)); - SendDlgItemMessage(IDC_ERROR_LABEL, WM_SETFONT, (WPARAM)DlgFont, MAKELPARAM(TRUE,0)); - SendDlgItemMessage(IDC_ERROR, WM_SETFONT, (WPARAM)DlgFont, MAKELPARAM(TRUE,0)); - SendDlgItemMessage(IDOK, WM_SETFONT, (WPARAM)DlgFont, MAKELPARAM(TRUE,0)); - SendDlgItemMessage(IDCANCEL, WM_SETFONT, (WPARAM)DlgFont, MAKELPARAM(TRUE,0)); - } - else { - DlgFont = NULL; - } - - GetWindowText(uitmp, sizeof(uitmp)); - UTIL_get_lang_msg("DLG_OTHER_TITLE", uimsg, sizeof(uimsg), uitmp); - SetWindowText(uimsg); - GetDlgItemText(IDC_GRP_COMMON, uitmp, sizeof(uitmp)); - UTIL_get_lang_msg("DLG_OTHER_COMMON", uimsg, sizeof(uimsg), uitmp); - SetDlgItemText(IDC_GRP_COMMON, uimsg); - GetDlgItemText(IDC_TIMEOUT_LABEL, uitmp, sizeof(uitmp)); - UTIL_get_lang_msg("DLG_OTHER_TIMEOUT", uimsg, sizeof(uimsg), uitmp); - SetDlgItemText(IDC_TIMEOUT_LABEL, uimsg); - GetDlgItemText(IDC_TIMEOUT_SECONDS, uitmp, sizeof(uitmp)); - UTIL_get_lang_msg("DLG_OTHER_SECOND", uimsg, sizeof(uimsg), uitmp); - SetDlgItemText(IDC_TIMEOUT_SECONDS, uimsg); - GetDlgItemText(IDC_LOGFILE_LABEL, uitmp, sizeof(uitmp)); - UTIL_get_lang_msg("DLG_OTHER_LOG", uimsg, sizeof(uimsg), uitmp); - SetDlgItemText(IDC_LOGFILE_LABEL, uimsg); - GetDlgItemText(IDC_REFER, uitmp, sizeof(uitmp)); - UTIL_get_lang_msg("DLG_OTHER_REFER", uimsg, sizeof(uimsg), uitmp); - SetDlgItemText(IDC_REFER, uimsg); - GetDlgItemText(IDC_GRP_SOCKS, uitmp, sizeof(uitmp)); - UTIL_get_lang_msg("DLG_OTHER_SOCKS", uimsg, sizeof(uimsg), uitmp); - SetDlgItemText(IDC_GRP_SOCKS, uimsg); - GetDlgItemText(IDC_RESOLVE_LABEL, uitmp, sizeof(uitmp)); - UTIL_get_lang_msg("DLG_OTHER_RESOLV", uimsg, sizeof(uimsg), uitmp); - SetDlgItemText(IDC_RESOLVE_LABEL, uimsg); - GetDlgItemText(IDC_GRP_TELNET, uitmp, sizeof(uitmp)); - UTIL_get_lang_msg("DLG_OTHER_TELNET", uimsg, sizeof(uimsg), uitmp); - SetDlgItemText(IDC_GRP_TELNET, uimsg); - GetDlgItemText(IDC_HOSTNAME_LABEL, uitmp, sizeof(uitmp)); - UTIL_get_lang_msg("DLG_OTHER_HOST", uimsg, sizeof(uimsg), uitmp); - SetDlgItemText(IDC_HOSTNAME_LABEL, uimsg); - GetDlgItemText(IDC_USERNAME_LABEL, uitmp, sizeof(uitmp)); - UTIL_get_lang_msg("DLG_OTHER_USER", uimsg, sizeof(uimsg), uitmp); - SetDlgItemText(IDC_USERNAME_LABEL, uimsg); - GetDlgItemText(IDC_PASSWORD_LABEL, uitmp, sizeof(uitmp)); - UTIL_get_lang_msg("DLG_OTHER_PASS", uimsg, sizeof(uimsg), uitmp); - SetDlgItemText(IDC_PASSWORD_LABEL, uimsg); - GetDlgItemText(IDC_CONNECTED_LABEL, uitmp, sizeof(uitmp)); - UTIL_get_lang_msg("DLG_OTHER_CONNECT", uimsg, sizeof(uimsg), uitmp); - SetDlgItemText(IDC_CONNECTED_LABEL, uimsg); - GetDlgItemText(IDC_ERROR_LABEL, uitmp, sizeof(uitmp)); - UTIL_get_lang_msg("DLG_OTHER_ERROR", uimsg, sizeof(uimsg), uitmp); - SetDlgItemText(IDC_ERROR_LABEL, uimsg); - GetDlgItemText(IDOK, uitmp, sizeof(uitmp)); - UTIL_get_lang_msg("BTN_OK", uimsg, sizeof(uimsg), uitmp); - SetDlgItemText(IDOK, uimsg); - GetDlgItemText(IDCANCEL, uitmp, sizeof(uitmp)); - UTIL_get_lang_msg("BTN_CANCEL", uimsg, sizeof(uimsg), uitmp); - SetDlgItemText(IDCANCEL, uimsg); + HWND hWnd = HWND(*this); + SetI18nDlgStrsW(hWnd, "TTProxy", text_info, _countof(text_info), UILanguageFileW); host = GetDlgItem(IDC_HOSTNAME); user = GetDlgItem(IDC_USERNAME); @@ -875,7 +806,9 @@ class ProxyWSockHook { erro.SetWindowText(ErrorMessage); if (logfile != NULL) - log.SetWindowText(logfile); + log.SetWindowTextW(logfile); + + CenterWindow((HWND)*this, GetParent()); return true; } @@ -902,21 +835,15 @@ class ProxyWSockHook { ConnectedMessage = conn.GetWindowText(); ErrorMessage = erro.GetWindowText(); - logfile = log.GetWindowTextLength() > 0 ? log.GetWindowText() : NULL; + logfile = log.GetWindowTextLengthW() > 0 ? log.GetWindowTextW() : NULL; - if (DlgFont != NULL) { - DeleteObject(DlgFont); - } Dialog::onOK(); } virtual void onCancel() { - if (DlgFont != NULL) { - DeleteObject(DlgFont); - } Dialog::onCancel(); } public: - String logfile; + WString logfile; int timeout; int resolve; @@ -941,9 +868,8 @@ class ProxyWSockHook { EditBoxCtrl user; EditBoxCtrl pass; bool lock; - HFONT DlgFont; protected: - virtual bool dispatch(int message, int wParam, long lParam) { + virtual bool dispatch(UINT message, WPARAM wParam, LPARAM lParam) { if (message == WM_COMMAND) { switch (wParam) { case MAKEWPARAM(IDC_OPTIONS, BN_CLICKED): @@ -962,65 +888,24 @@ class ProxyWSockHook { return Dialog::dispatch(message, wParam, lParam); } virtual bool onInitDialog() { - char uimsg[MAX_UIMSG], uitmp[MAX_UIMSG]; - LOGFONT logfont; - HFONT font; + char uimsg[MAX_UIMSG]; Dialog::onInitDialog(); - font = (HFONT)SendMessage(WM_GETFONT, 0, 0); - GetObject(font, sizeof(LOGFONT), &logfont); - if (UTIL_get_lang_font("DLG_TAHOMA_FONT", HWND(), &logfont, &DlgFont)) { - SendDlgItemMessage(IDC_URL_LABEL, WM_SETFONT, (WPARAM)DlgFont, MAKELPARAM(TRUE,0)); - SendDlgItemMessage(IDC_URL, WM_SETFONT, (WPARAM)DlgFont, MAKELPARAM(TRUE,0)); - SendDlgItemMessage(IDC_TYPE_LEBEL, WM_SETFONT, (WPARAM)DlgFont, MAKELPARAM(TRUE,0)); - SendDlgItemMessage(IDC_TYPE, WM_SETFONT, (WPARAM)DlgFont, MAKELPARAM(TRUE,0)); - SendDlgItemMessage(IDC_HOSTNAME_LABEL, WM_SETFONT, (WPARAM)DlgFont, MAKELPARAM(TRUE,0)); - SendDlgItemMessage(IDC_HOSTNAME, WM_SETFONT, (WPARAM)DlgFont, MAKELPARAM(TRUE,0)); - SendDlgItemMessage(IDC_PORT_LABEL, WM_SETFONT, (WPARAM)DlgFont, MAKELPARAM(TRUE,0)); - SendDlgItemMessage(IDC_PORT, WM_SETFONT, (WPARAM)DlgFont, MAKELPARAM(TRUE,0)); - SendDlgItemMessage(IDC_USERNAME_LABEL, WM_SETFONT, (WPARAM)DlgFont, MAKELPARAM(TRUE,0)); - SendDlgItemMessage(IDC_USERNAME, WM_SETFONT, (WPARAM)DlgFont, MAKELPARAM(TRUE,0)); - SendDlgItemMessage(IDC_PASSWORD_LABEL, WM_SETFONT, (WPARAM)DlgFont, MAKELPARAM(TRUE,0)); - SendDlgItemMessage(IDC_PASSWORD, WM_SETFONT, (WPARAM)DlgFont, MAKELPARAM(TRUE,0)); - SendDlgItemMessage(IDC_OPTIONS, WM_SETFONT, (WPARAM)DlgFont, MAKELPARAM(TRUE,0)); - SendDlgItemMessage(IDOK, WM_SETFONT, (WPARAM)DlgFont, MAKELPARAM(TRUE,0)); - SendDlgItemMessage(IDCANCEL, WM_SETFONT, (WPARAM)DlgFont, MAKELPARAM(TRUE,0)); - } - else { - DlgFont = NULL; - } - - GetWindowText(uitmp, sizeof(uitmp)); - UTIL_get_lang_msg("DLG_SETUP_TITLE", uimsg, sizeof(uimsg), uitmp); - SetWindowText(uimsg); - GetDlgItemText(IDC_URL_LABEL, uitmp, sizeof(uitmp)); - UTIL_get_lang_msg("DLG_SETUP_URL", uimsg, sizeof(uimsg), uitmp); - SetDlgItemText(IDC_URL_LABEL, uimsg); - GetDlgItemText(IDC_TYPE_LEBEL, uitmp, sizeof(uitmp)); - UTIL_get_lang_msg("DLG_SETUP_TYPE", uimsg, sizeof(uimsg), uitmp); - SetDlgItemText(IDC_TYPE_LEBEL, uimsg); - GetDlgItemText(IDC_HOSTNAME_LABEL, uitmp, sizeof(uitmp)); - UTIL_get_lang_msg("DLG_SETUP_HOST", uimsg, sizeof(uimsg), uitmp); - SetDlgItemText(IDC_HOSTNAME_LABEL, uimsg); - GetDlgItemText(IDC_PORT_LABEL, uitmp, sizeof(uitmp)); - UTIL_get_lang_msg("DLG_SETUP_PORT", uimsg, sizeof(uimsg), uitmp); - SetDlgItemText(IDC_PORT_LABEL, uimsg); - GetDlgItemText(IDC_USERNAME_LABEL, uitmp, sizeof(uitmp)); - UTIL_get_lang_msg("DLG_SETUP_USER", uimsg, sizeof(uimsg), uitmp); - SetDlgItemText(IDC_USERNAME_LABEL, uimsg); - GetDlgItemText(IDC_PASSWORD_LABEL, uitmp, sizeof(uitmp)); - UTIL_get_lang_msg("DLG_SETUP_PASS", uimsg, sizeof(uimsg), uitmp); - SetDlgItemText(IDC_PASSWORD_LABEL, uimsg); - GetDlgItemText(IDC_OPTIONS, uitmp, sizeof(uitmp)); - UTIL_get_lang_msg("DLG_SETUP_OTHER", uimsg, sizeof(uimsg), uitmp); - SetDlgItemText(IDC_OPTIONS, uimsg); - GetDlgItemText(IDOK, uitmp, sizeof(uitmp)); - UTIL_get_lang_msg("BTN_OK", uimsg, sizeof(uimsg), uitmp); - SetDlgItemText(IDOK, uimsg); - GetDlgItemText(IDCANCEL, uitmp, sizeof(uitmp)); - UTIL_get_lang_msg("BTN_CANCEL", uimsg, sizeof(uimsg), uitmp); - SetDlgItemText(IDCANCEL, uimsg); + const static DlgTextInfo text_info[] = { + { 0, "DLG_SETUP_TITLE" }, + { IDC_URL_LABEL, "DLG_SETUP_URL" }, + { IDC_TYPE_LEBEL, "DLG_SETUP_TYPE" }, + { IDC_HOSTNAME_LABEL, "DLG_SETUP_HOST" }, + { IDC_PORT_LABEL, "DLG_SETUP_PORT" }, + { IDC_USERNAME_LABEL, "DLG_SETUP_USER" }, + { IDC_PASSWORD_LABEL, "DLG_SETUP_PASS" }, + { IDC_OPTIONS, "DLG_SETUP_OTHER" }, +// { IDOK, "BTN_OK" }, +// { IDCANCEL, "BTN_CANCEL" }, + }; + HWND hWnd = HWND(*this); + SetI18nDlgStrsW(hWnd, "TTProxy", text_info, _countof(text_info), UILanguageFileW); url <<= GetDlgItem(IDC_URL); type <<= GetDlgItem(IDC_TYPE); @@ -1036,13 +921,6 @@ class ProxyWSockHook { type.addString("TELNET"); type.addString("SOCKS4"); type.addString("SOCKS5"); - if (SSLSocket::isEnabled()) { - type.addString("SSL"); - type.addString("HTTP+SSL"); - type.addString("TELNET+SSL"); - type.addString("SOCKS4+SSL"); - type.addString("SOCKS5+SSL"); - } type.setCurSel(proxy.type); if (proxy.type != ProxyInfo::TYPE_NONE && proxy.type != ProxyInfo::TYPE_SSL) { @@ -1063,6 +941,7 @@ class ProxyWSockHook { } lock = false; onChanged(0); + CenterWindow((HWND)*this, GetParent()); return true; } virtual void onOK() { @@ -1081,15 +960,9 @@ class ProxyWSockHook { return; } } - if (DlgFont != NULL) { - DeleteObject(DlgFont); - } Dialog::onOK(); } virtual void onCancel() { - if (DlgFont != NULL) { - DeleteObject(DlgFont); - } Dialog::onCancel(); } void onOptions() { @@ -1194,59 +1067,45 @@ class ProxyWSockHook { class AboutDialog : public Dialog { private: - HFONT DlgFont; virtual bool onInitDialog() { - String buf; - char *buf2; + wchar_t buf[MAX_UIMSG]; + wchar_t *buf2; const char *ver; - int n, a, b, c, d, len; - char uimsg[MAX_UIMSG], uimsg2[MAX_UIMSG], uimsg3[MAX_UIMSG]; - LOGFONT logfont; - HFONT font; - - font = (HFONT)SendMessage(WM_GETFONT, 0, 0); - GetObject(font, sizeof(LOGFONT), &logfont); - if (UTIL_get_lang_font("DLG_TAHOMA_FONT", HWND(), &logfont, &DlgFont)) { - SendDlgItemMessage(IDC_VERSION, WM_SETFONT, (WPARAM)DlgFont, MAKELPARAM(TRUE,0)); - SendDlgItemMessage(IDOK, WM_SETFONT, (WPARAM)DlgFont, MAKELPARAM(TRUE,0)); - } - else { - DlgFont = NULL; - } - - GetWindowText(uimsg2, sizeof(uimsg2)); - UTIL_get_lang_msg("DLG_ABOUT_TITLE", uimsg, sizeof(uimsg), uimsg2); - SetWindowText(uimsg); - - UTIL_get_lang_msg("DLG_ABOUT_EXTENSION", uimsg, sizeof(uimsg), - "Tera Term proxy extension"); - UTIL_get_lang_msg("DLG_ABOUT_YEBISUYA", uimsg2, sizeof(uimsg2), - "YebisuyaHompo"); - UTIL_get_lang_msg("DLG_ABOUT_HOMEPAGE", uimsg3, sizeof(uimsg3), - "TTProxy home page"); - buf = GetDlgItemText(IDC_VERSION); - len = buf.length() + 50; - buf2 = (char *)_alloca(len); + int n, a, b, c, d; + size_t len; + wchar_t uimsg[MAX_UIMSG], uimsg2[MAX_UIMSG], uimsg3[MAX_UIMSG]; + HWND hWnd = (HWND)*this; + + const static DlgTextInfo text_info[] = { + { 0, "DLG_ABOUT_TITLE" }, + { IDOK, "BTN_OK" }, + }; + SetI18nDlgStrsW(hWnd, "TTProxy", text_info, _countof(text_info), UILanguageFileW); + + UTIL_get_lang_msgW("DLG_ABOUT_EXTENSION", uimsg, _countof(uimsg), + L"Tera Term proxy extension"); + UTIL_get_lang_msgW("DLG_ABOUT_YEBISUYA", uimsg2, _countof(uimsg2), + L"YebisuyaHompo"); + UTIL_get_lang_msgW("DLG_ABOUT_HOMEPAGE", uimsg3, _countof(uimsg3), + L"TTProxy home page"); + GetDlgItemTextW(hWnd, IDC_VERSION, buf, _countof(buf)); + len = wcslen(buf) + 50; + buf2 = (wchar_t *)_alloca(sizeof(wchar_t) * len); if (buf2 == NULL) { return true; } ver = FileVersion::getOwnVersion().getFileVersion(); n = sscanf_s(ver, "%d, %d, %d, %d", &a, &b, &c, &d); if (n == 4) { - sprintf_s(buf2, len, buf, uimsg, a, b, c, d, uimsg2, uimsg3); + _snwprintf_s(buf2, len, _TRUNCATE, buf, uimsg, a, b, c, d, uimsg2, uimsg3); } - SetDlgItemText(IDC_VERSION, (n == 4) ? buf2 : buf); + SetDlgItemTextW(hWnd, IDC_VERSION, (n == 4) ? buf2 : buf); - GetDlgItemText(IDOK, uimsg, sizeof(uimsg)); - UTIL_get_lang_msg("BTN_OK", uimsg, sizeof(uimsg),"OK"); - SetDlgItemText(IDOK, uimsg); + CenterWindow(hWnd, GetParent()); return true; } virtual void onOK() { - if (DlgFont != NULL) { - DeleteObject(DlgFont); - } Dialog::onOK(); } public : @@ -1293,24 +1152,42 @@ class ProxyWSockHook { return _sendToSocket(s, (const unsigned char*) buf, len); } - int recieveFromSocketTimeout(SOCKET s, unsigned char* buffer, int size, int timeout) { + /* + * SOCKST[of[^M + * + * return: + * 1ȏ Mf[^(byte)Bsize菬ꍇB + * -1 SOCKET_ERROR + */ + int recieveFromSocketTimeout(SOCKET s, unsigned char* buffer, int size, int timeout) { int ready = 0; + int ret; + while (!ready) { struct timeval tv = {timeout, 0}; fd_set fd; + int n; + FD_ZERO(&fd); FD_SET(s, &fd); - switch (select((int) (s + 1), &fd, NULL, NULL, timeout > 0 ? &tv : NULL)) { + n = select((int)(s + 1), &fd, NULL, NULL, timeout > 0 ? &tv : NULL); + switch (n) { case SOCKET_ERROR: return SOCKET_ERROR; case 0: - return 0; + // M^CAEg̏ꍇɂG[ƂB + return SOCKET_ERROR; default: ready = FD_ISSET(s, &fd); break; } } - return ORIG_recv(s, (char*) buffer, size, 0); + + // SOCKST[oؒfꂽꍇArecv()0Ԃ߁AG[ƂB + ret = ORIG_recv(s, (char*) buffer, size, 0); + if (ret == 0) + ret = SOCKET_ERROR; + return (ret); } int recieveFromSocket(SOCKET s, unsigned char* buffer, int size) { @@ -1359,7 +1236,7 @@ class ProxyWSockHook { if (WSAGetLastError() != WSAEWOULDBLOCK) { return SOCKET_ERROR; } - // no break + /* FALLTHROUGH */ // no break case 0: end = dst; /* end of stream */ break; @@ -1389,9 +1266,9 @@ class ProxyWSockHook { static const char base64_table[] = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/"; char buf[1024]; int status_code; - if (sendToSocketFormat(s, strchr(realhost,':')?"CONNECT [%s]:%d HTTP/1.1\r\n":"CONNECT %s:%d HTTP/1.1\r\n", realhost, realport) == SOCKET_ERROR) + if (sendToSocketFormat(s, strchr((const char *)realhost,':')?"CONNECT [%s]:%d HTTP/1.1\r\n":"CONNECT %s:%d HTTP/1.1\r\n", (const char *)realhost, realport) == SOCKET_ERROR) return SOCKET_ERROR; - if (sendToSocketFormat(s, strchr(realhost,':')?"Host: [%s]:%d\r\n":"Host: %s:%d\r\n", realhost, realport) == SOCKET_ERROR) + if (sendToSocketFormat(s, strchr((const char *)realhost,':')?"Host: [%s]:%d\r\n":"Host: %s:%d\r\n", (const char *)realhost, realport) == SOCKET_ERROR) return SOCKET_ERROR; if (proxy.user != NULL) { int userlen = strlen(proxy.user); @@ -1407,7 +1284,7 @@ class ProxyWSockHook { strcpy_s(auth, authlen + 1, proxy.user); auth[userlen] = ':'; strcpy_s(auth + userlen + 1, passlen + 1, proxy.pass); - + /* make base64 string */ while (*src != '\0') { data = (data << 8) | *src++; @@ -1422,7 +1299,7 @@ class ProxyWSockHook { *dst++ = base64_table[0x3F & (data << (6 - bits))]; encodedlen--; } - while (encodedlen-- > 0) { + while (encodedlen-- > 0) { *dst++ = '='; } *dst = '\0'; @@ -1441,7 +1318,9 @@ class ProxyWSockHook { } } while (strcmp(buf,"\r\n") != 0); if (status_code != 200) { - char uimsg[MAX_UIMSG]; + char uimsg[MAX_UIMSG] = {0}; + char tmp[MAX_UIMSG + 32]; + switch (status_code) { case 401: case 407: @@ -1452,8 +1331,13 @@ class ProxyWSockHook { case 405: case 406: case 403: - UTIL_get_lang_msg("MSG_PROXY_BAD_REQUEST", uimsg, sizeof(uimsg), + // YȂXe[^XR[hꍇAsȓeuimsg[] + // MessageBoxɕ\CB + default: + UTIL_get_lang_msg("MSG_PROXY_BAD_REQUEST", tmp, sizeof(tmp), "Proxy prevent this connection!"); + _snprintf_s(uimsg, sizeof(uimsg), _TRUNCATE, "%s(HTTP: status code %d)", + tmp, status_code); break; } return setError(s, uimsg); @@ -1539,9 +1423,9 @@ class ProxyWSockHook { ptr += len; /* send it and get answer */ - if (sendToSocket(s, buf, ptr - buf) == SOCKET_ERROR) + if (sendToSocket(s, buf, ptr - buf) == SOCKET_ERROR) return SOCKET_ERROR; - if (recieveFromSocket(s, buf, 2) == SOCKET_ERROR) + if (recieveFromSocket(s, buf, 2) == SOCKET_ERROR) return SOCKET_ERROR; /* check status */ @@ -1606,10 +1490,37 @@ class ProxyWSockHook { return SOCKET_ERROR; if (recieveFromSocket(s, buf, 4) == SOCKET_ERROR) return SOCKET_ERROR; + /* SOCKSNGXgɑ΂郊vC + + buf[0] VER protocol version: X'05' + buf[1] REP Reply field: + o X'00' succeeded + o X'01' general SOCKS server failure + o X'02' connection not allowed by ruleset + o X'03' Network unreachable + o X'04' Host unreachable + o X'05' Connection refused + o X'06' TTL expired + o X'07' Command not supported + o X'08' Address type not supported + o X'09' to X'FF' unassigned + buf[2] RSV RESERVED: X'00' + buf[3] ATYP address type of following address + o IP V4 address: X'01' + o DOMAINNAME: X'03' + o IP V6 address: X'04' + buf[4:N] BND.ADDR server bound address + buf[N+1] BND.PORT server bound port in network octet order + */ if (buf[0] != SOCKS5_VERSION || buf[1] != SOCKS5_REP_SUCCEEDED) { /* check reply code */ - UTIL_get_lang_msg("MSG_PROXY_BAD_REQUEST", uimsg, sizeof(uimsg), + char tmp[MAX_UIMSG + 32]; + + UTIL_get_lang_msg("MSG_PROXY_BAD_REQUEST", uimsg, sizeof(uimsg), "Proxy prevent this connection!"); - return setError(s, uimsg); + // vCNjLăbZ[W\B + _snprintf_s(tmp, sizeof(tmp), _TRUNCATE, "%s(SOCKS5:VER %u REP %u ATYP %u)", + uimsg, buf[0], buf[1], buf[3]); + return setError(s, tmp); } // buf[2] is reserved switch (buf[3]) { /* case by ATYP */ @@ -1648,7 +1559,7 @@ class ProxyWSockHook { int begin_relay_socks4(ProxyInfo& proxy, String realhost, unsigned short realport, SOCKET s) { unsigned char buf[256], *ptr; - /* make connect request packet + /* make connect request packet protocol v4: VN:1, CD:1, PORT:2, ADDR:4, USER:n, NULL:1 protocol v4a: @@ -1705,6 +1616,19 @@ class ProxyWSockHook { if (recieveFromSocket(s, buf, 8) == SOCKET_ERROR) { return SOCKET_ERROR; } + /* SOCKS4̕ԓpPbg + + buf[0] VN 0 + buf[1] CD + 90 request granted + 91 request rejected or failed + 92 request rejected becasue SOCKS server cannot connect to + identd on the client + 93 request rejected because the client program and identd + report different user-ids + buf[2:3] DSTPORT |[gԍ + buf[4:7] DSTIP IPAhX + */ char uimsg[MAX_UIMSG]; uimsg[0] = NULL; if (buf[0] != 0) { @@ -1718,9 +1642,13 @@ class ProxyWSockHook { "Proxy prevent this connection!"); } if (uimsg[0] != NULL) { - return setError(s, uimsg); + char tmp[MAX_UIMSG + 32]; + + // SOCKS̕ԓpPbgVNCDNjLăbZ[W\B + _snprintf_s(tmp, sizeof(tmp), _TRUNCATE, "%s(SOCKS4:VN %u CD %u)", uimsg, buf[0], buf[1]); + return setError(s, tmp); } - + /* Conguraturation, connected via SOCKS4 server! */ return 0; } @@ -1732,15 +1660,15 @@ class ProxyWSockHook { while (!err) { switch (wait_for_prompt(s, prompt_table, countof(prompt_table), 10)) { case 0: /* Hostname prompt */ - if (sendToSocketFormat(s, strchr(realhost,':')?"[%s]:%d\n":"%s:%d\n", realhost, realport) == SOCKET_ERROR) + if (sendToSocketFormat(s, strchr((const char *)realhost,':')?"[%s]:%d\n":"%s:%d\n", (const char *)realhost, realport) == SOCKET_ERROR) return SOCKET_ERROR; break; case 1: /* Username prompt */ - if (sendToSocketFormat(s, "%s\n", proxy.user) == SOCKET_ERROR) + if (sendToSocketFormat(s, "%s\n", (const char *)proxy.user) == SOCKET_ERROR) return SOCKET_ERROR; break; case 2: /* Password prompt */ - if (sendToSocketFormat(s, "%s\n", proxy.pass) == SOCKET_ERROR) + if (sendToSocketFormat(s, "%s\n", (const char *)proxy.pass) == SOCKET_ERROR) return SOCKET_ERROR; break; case 3: /* Established message */ @@ -1880,7 +1808,12 @@ private: \ if (select((int) (s + 1), &ifd, &ofd, &efd, timeout > 0 ? &tv : NULL) == SOCKET_ERROR) return SOCKET_ERROR; if (FD_ISSET(s, &efd)) { - WSASetLastError(WSAECONNREFUSED); + // Proxy serverւconnectsꍇAӐ}I WSAECONNREFUSED G[ + // Zbĝ߂B + // Proxy serverzXgƂĐݒ肳ĂāAƒfAX^bN‹̏ꍇA + // Tera TermłIPv6/IPv4tH[obNҒʂɓĂȂB + // ܂AProxy serverɂ܂ڑłȂꍇAConnection refused_CAO + // 3A\ƂɂȂĂB return SOCKET_ERROR; } }else{ @@ -1891,184 +1824,18 @@ private: \ result = 0; break; case ProxyInfo::TYPE_HTTP: - case ProxyInfo::TYPE_HTTP_SSL: result = begin_relay_http(info->proxy, info->realhost, info->realport, s); break; case ProxyInfo::TYPE_TELNET: - case ProxyInfo::TYPE_TELNET_SSL: result = begin_relay_telnet(info->proxy, info->realhost, info->realport, s); break; case ProxyInfo::TYPE_SOCKS4: - case ProxyInfo::TYPE_SOCKS4_SSL: result = begin_relay_socks4(info->proxy, info->realhost, info->realport, s); break; case ProxyInfo::TYPE_SOCKS5: - case ProxyInfo::TYPE_SOCKS5_SSL: result = begin_relay_socks5(info->proxy, info->realhost, info->realport, s); break; } - if (result == 0) { - if (info->proxy.type == ProxyInfo::TYPE_SSL - || info->proxy.type == ProxyInfo::TYPE_HTTP_SSL - || info->proxy.type == ProxyInfo::TYPE_TELNET_SSL - || info->proxy.type == ProxyInfo::TYPE_SOCKS4_SSL - || info->proxy.type == ProxyInfo::TYPE_SOCKS5_SSL) { - if (!SSLSocket::isEnabled()) { - WSASetLastError(WSAECONNREFUSED); - return SOCKET_ERROR; - } - SSLSocket* ssl = new SSLSocket(); - if (!ssl->connect(s, info->realhost)) { - shutdown(s, SD_BOTH); - int error_code = ssl->get_verify_result(); - char uimsg[MAX_UIMSG]; - delete ssl; - switch (error_code) { - case IDS_UNABLE_TO_GET_ISSUER_CERT: - UTIL_get_lang_msg("MSG_UNABLE_TO_GET_ISSUER_CERT", uimsg, sizeof(uimsg), - "Unable to get Issuer Certificate"); - break; - case IDS_UNABLE_TO_GET_CRL: - UTIL_get_lang_msg("MSG_UNABLE_TO_GET_CRL", uimsg, sizeof(uimsg), - "Unable to get Certificate CRL"); - break; - case IDS_UNABLE_TO_DECRYPT_CERT_SIGNATURE: - UTIL_get_lang_msg("MSG_UNABLE_TO_DECRYPT_CERT_SIGNATURE", uimsg, sizeof(uimsg), - "Unable to decrypt Certificate's Signature"); - break; - case IDS_UNABLE_TO_DECRYPT_CRL_SIGNATURE: - UTIL_get_lang_msg("MSG_UNABLE_TO_DECRYPT_CRL_SIGNATURE", uimsg, sizeof(uimsg), - "Unable to decrypt CRL's Signature"); - break; - case IDS_UNABLE_TO_DECODE_ISSUER_PUBLIC_KEY: - UTIL_get_lang_msg("MSG_UNABLE_TO_DECODE_ISSUER_PUBLIC_KEY", uimsg, sizeof(uimsg), - "Unable to decode Issuer Public Key"); - break; - case IDS_CERT_SIGNATURE_FAILURE: - UTIL_get_lang_msg("MSG_CERT_SIGNATURE_FAILURE", uimsg, sizeof(uimsg), - "Certificate Signature failure"); - break; - case IDS_CRL_SIGNATURE_FAILURE: - UTIL_get_lang_msg("MSG_CRL_SIGNATURE_FAILURE", uimsg, sizeof(uimsg), - "CRL Signature failure"); - break; - case IDS_CERT_NOT_YET_VALID: - UTIL_get_lang_msg("MSG_CERT_NOT_YET_VALID", uimsg, sizeof(uimsg), - "Certificate is not yet valid"); - break; - case IDS_CERT_HAS_EXPIRED: - UTIL_get_lang_msg("MSG_CERT_HAS_EXPIRED", uimsg, sizeof(uimsg), - "Certificate has expired"); - break; - case IDS_CRL_NOT_YET_VALID: - UTIL_get_lang_msg("MSG_CRL_NOT_YET_VALID", uimsg, sizeof(uimsg), - "CRL is not yet valid"); - break; - case IDS_CRL_HAS_EXPIRED: - UTIL_get_lang_msg("MSG_CRL_HAS_EXPIRED", uimsg, sizeof(uimsg), - "CRL has expired"); - break; - case IDS_ERROR_IN_CERT_NOT_BEFORE_FIELD: - UTIL_get_lang_msg("MSG_ERROR_IN_CERT_NOT_BEFORE_FIELD", uimsg, sizeof(uimsg), - "Format error in Certificate's notBefore field"); - break; - case IDS_ERROR_IN_CERT_NOT_AFTER_FIELD: - UTIL_get_lang_msg("MSG_ERROR_IN_CERT_NOT_AFTER_FIELD", uimsg, sizeof(uimsg), - "Format error in Certificate's notAfter field"); - break; - case IDS_ERROR_IN_CRL_LAST_UPDATE_FIELD: - UTIL_get_lang_msg("MSG_ERROR_IN_CRL_LAST_UPDATE_FIELD", uimsg, sizeof(uimsg), - "Format error in CRL's lastUpdate field"); - break; - case IDS_ERROR_IN_CRL_NEXT_UPDATE_FIELD: - UTIL_get_lang_msg("MSG_ERROR_IN_CRL_NEXT_UPDATE_FIELD", uimsg, sizeof(uimsg), - "Format error in CRL's nextUpdate field"); - break; - case IDS_OUT_OF_MEM: - UTIL_get_lang_msg("MSG_OUT_OF_MEM", uimsg, sizeof(uimsg), - "Out of memory"); - break; - case IDS_DEPTH_ZERO_SELF_SIGNED_CERT: - UTIL_get_lang_msg("MSG_DEPTH_ZERO_SELF_SIGNED_CERT", uimsg, sizeof(uimsg), - "Self-signed Certificate"); - break; - case IDS_SELF_SIGNED_CERT_IN_CHAIN: - UTIL_get_lang_msg("MSG_SELF_SIGNED_CERT_IN_CHAIN", uimsg, sizeof(uimsg), - "Self-signed Certificate found in Certificate chain"); - break; - case IDS_UNABLE_TO_GET_ISSUER_CERT_LOCALLY: - UTIL_get_lang_msg("MSG_UNABLE_TO_GET_ISSUER_CERT_LOCALLY", uimsg, sizeof(uimsg), - "Unable to get Local Issuer Certificate"); - break; - case IDS_UNABLE_TO_VERIFY_LEAF_SIGNATURE: - UTIL_get_lang_msg("MSG_UNABLE_TO_VERIFY_LEAF_SIGNATURE", uimsg, sizeof(uimsg), - "Unable to verify the first Certificate"); - break; - case IDS_CERT_CHAIN_TOO_LONG: - UTIL_get_lang_msg("MSG_CERT_CHAIN_TOO_LONG", uimsg, sizeof(uimsg), - "Certificate chain too long"); - break; - case IDS_CERT_REVOKED: - UTIL_get_lang_msg("MSG_CERT_REVOKED", uimsg, sizeof(uimsg), - "Certificate revoked"); - break; - case IDS_INVALID_CA: - UTIL_get_lang_msg("MSG_INVALID_CA", uimsg, sizeof(uimsg), - "Invalid CA Certificate"); - break; - case IDS_PATH_LENGTH_EXCEEDED: - UTIL_get_lang_msg("MSG_PATH_LENGTH_EXCEEDED", uimsg, sizeof(uimsg), - "Path length constraint exceeded"); - break; - case IDS_INVALID_PURPOSE: - UTIL_get_lang_msg("MSG_INVALID_PURPOSE", uimsg, sizeof(uimsg), - "Unsupported Certificate purpose"); - break; - case IDS_CERT_UNTRUSTED: - UTIL_get_lang_msg("MSG_CERT_UNTRUSTED", uimsg, sizeof(uimsg), - "Certificate not trusted"); - break; - case IDS_CERT_REJECTED: - UTIL_get_lang_msg("MSG_CERT_REJECTED", uimsg, sizeof(uimsg), - "Certificate rejected"); - break; - case IDS_SUBJECT_ISSUER_MISMATCH: - UTIL_get_lang_msg("MSG_SUBJECT_ISSUER_MISMATCH", uimsg, sizeof(uimsg), - "Subject Issuer mismatch"); - break; - case IDS_AKID_SKID_MISMATCH: - UTIL_get_lang_msg("MSG_AKID_SKID_MISMATCH", uimsg, sizeof(uimsg), - "Authority and Subject Key Identifier mismatch"); - break; - case IDS_AKID_ISSUER_SERIAL_MISMATCH: - UTIL_get_lang_msg("MSG_AKID_ISSUER_SERIAL_MISMATCH", uimsg, sizeof(uimsg), - "Authority and Issuer Serial Number mismatch"); - break; - case IDS_KEYUSAGE_NO_CERTSIGN: - UTIL_get_lang_msg("MSG_KEYUSAGE_NO_CERTSIGN", uimsg, sizeof(uimsg), - "Key usage does not include Certificate signing"); - break; - case IDS_APPLICATION_VERIFICATION: - UTIL_get_lang_msg("MSG_APPLICATION_VERIFICATION", uimsg, sizeof(uimsg), - "Application verification failure"); - break; - case IDS_UNMATCH_COMMON_NAME: - UTIL_get_lang_msg("MSG_UNMATCH_COMMON_NAME", uimsg, sizeof(uimsg), - "Unmatch Common Name"); - break; - case IDS_UNABLE_TO_GET_COMMON_NAME: - UTIL_get_lang_msg("MSG_UNABLE_TO_GET_COMMON_NAME", uimsg, sizeof(uimsg), - "Unable to get Common Name"); - break; - default: - uimsg[0] = NULL; - break; - } - return setError(s, uimsg); - } - sslmap.put(s,ssl); - } - } return result; } @@ -2078,16 +1845,6 @@ private: \ if (info->proxy.type == ProxyInfo::TYPE_NONE_FORCE) { hostname = info->realhost; }else{ - if (info->proxy.type == ProxyInfo::TYPE_SSL - || info->proxy.type == ProxyInfo::TYPE_HTTP_SSL - || info->proxy.type == ProxyInfo::TYPE_TELNET_SSL - || info->proxy.type == ProxyInfo::TYPE_SOCKS4_SSL - || info->proxy.type == ProxyInfo::TYPE_SOCKS5_SSL) { - if (!SSLSocket::isEnabled()) { - ::WSASetLastError(WSAHOST_NOT_FOUND); - return NULL; - } - } if (info->buffer == NULL) { int bufferLength = sizeof (DUMMYHOSTENT) + strlen(info->realhost); info->buffer = new char[bufferLength]; @@ -2104,16 +1861,6 @@ private: \ if (info == NULL || info->proxy.type == ProxyInfo::TYPE_NONE_FORCE) { return ORIG_WSAAsyncGetHostByName(window, message, hostname, buffer, bufferLength); } - if (info->proxy.type == ProxyInfo::TYPE_SSL - || info->proxy.type == ProxyInfo::TYPE_HTTP_SSL - || info->proxy.type == ProxyInfo::TYPE_TELNET_SSL - || info->proxy.type == ProxyInfo::TYPE_SOCKS4_SSL - || info->proxy.type == ProxyInfo::TYPE_SOCKS5_SSL) { - if (!SSLSocket::isEnabled()) { - ::WSASetLastError(WSAHOST_NOT_FOUND); - return NULL; - } - } HANDLE handle = connectioninfolist.getTask(info); int len = sizeof (DUMMYHOSTENT) + strlen(hostname); if (bufferLength < len) { @@ -2131,16 +1878,6 @@ private: \ if (info == NULL || info->proxy.type == ProxyInfo::TYPE_NONE_FORCE) { return ORIG_WSAAsyncGetAddrInfo(window, message, hostname, portname, hints, res); } - if (info->proxy.type == ProxyInfo::TYPE_SSL - || info->proxy.type == ProxyInfo::TYPE_HTTP_SSL - || info->proxy.type == ProxyInfo::TYPE_TELNET_SSL - || info->proxy.type == ProxyInfo::TYPE_SOCKS4_SSL - || info->proxy.type == ProxyInfo::TYPE_SOCKS5_SSL) { - if (!SSLSocket::isEnabled()) { - ::WSASetLastError(WSAHOST_NOT_FOUND); - return NULL; - } - } HANDLE handle = connectioninfolist.getTask(info); int bufferLength = sizeof (DUMMYHOSTENT) + strlen(hostname) + 1; info->buffer = new char[bufferLength]; @@ -2179,34 +1916,22 @@ private: \ } DECLARE_HOOKAPI(int, send, (SOCKET s, const char* buf, int len, int flags), (s, buf, len, flags)) { - SSLSocket* ssl = sslmap.get(s); - if (ssl != NULL) - return ssl->write(buf, len); return ORIG_send(s, buf, len, flags); } DECLARE_HOOKAPI(int, sendto, (SOCKET s, const char* buf, int len, int flags, const struct sockaddr* to, int tolen), (s, buf, len, flags, to, tolen)) { return ORIG_sendto(s, buf, len, flags, to, tolen); } DECLARE_HOOKAPI(int, recv, (SOCKET s, char* buf, int len, int flags), (s, buf, len, flags)) { - SSLSocket* ssl = sslmap.get(s); - if (ssl != NULL) - return ssl->read(buf, len); return ORIG_recv(s, buf, len, flags); } DECLARE_HOOKAPI(int, recvfrom, (SOCKET s, char* buf, int len, int flags, struct sockaddr* from, int* fromlen), (s, buf, len, flags, from, fromlen)) { return ORIG_recvfrom(s, buf, len, flags, from, fromlen); } DECLARE_HOOKAPI(int, closesocket, (SOCKET s), (s)) { - SSLSocket* ssl = sslmap.get(s); - if (ssl != NULL) { - ssl->close(); - sslmap.remove(s); - delete ssl; - } return ORIG_closesocket(s); } - String logfile; + WString logfile; int timeout; enum SocksResolve { RESOLVE_AUTO, @@ -2216,7 +1941,6 @@ private: \ String prompt_table[5]; ProxyInfo defaultProxy; ConnectionInfoList connectioninfolist; - Hashtable sslmap; MessageShower* shower; HWND owner; HMODULE resource_module; @@ -2278,7 +2002,7 @@ private: \ prompt_table[3] = ini.getString("TelnetConnectedMessage", "-- Connected to "); prompt_table[4] = ini.getString("TelnetErrorMessage", "!!!!!!!!"); - logfile = ini.getString("DebugLog"); + logfile = ini.getStringW(L"DebugLog"); Logger::open(logfile); } void _save(IniFile& ini) { @@ -2329,7 +2053,7 @@ private: \ ini.setString("TelnetConnectedMessage", prompt_table[3]); ini.setString("TelnetErrorMessage", prompt_table[4]); - ini.setString("DebugLog", logfile); + ini.setString(L"DebugLog", logfile); } public: static void setOwner(HWND owner) { @@ -2408,7 +2132,7 @@ private: \ static String generateURL() { return instance().defaultProxy.generateURL(); } - static String parseURL(const char* url, BOOL prefix) { + static String parseURL(const char* url, BOOL prefix) { ProxyInfo proxy; String realhost = ProxyInfo::parse(url, proxy); if (realhost != NULL) { diff --git a/TTProxy/SSLLIB.h b/TTProxy/SSLLIB.h index c719db7ec..9d91bbc2d 100644 --- a/TTProxy/SSLLIB.h +++ b/TTProxy/SSLLIB.h @@ -1,11 +1,16 @@ #ifndef _SSLLIB_h_ #define _SSLLIB_h_ +#ifdef OPENSSL_VERSION_MAJOR +// OpenSSL 3.0.0łOPENSSL_VERSION_MAJOR, OPENSSL_VERSION_MINOR, +// OPENSSL_VERSION_PATCH ftHgŒ`B +#else #define OPENSSL_VERSION_MAJOR (OPENSSL_VERSION_NUMBER & 0xf0000000L) >> 28 #define OPENSSL_VERSION_MINOR (OPENSSL_VERSION_NUMBER & 0x0ff00000L) >> 20 #define OPENSSL_VERSION_FIX (OPENSSL_VERSION_NUMBER & 0x000ff000L) >> 12 #define OPENSSL_VERSION_PATCH (OPENSSL_VERSION_NUMBER & 0x00000ff0L) >> 4 #define OPENSSL_VERSION_STATUS (OPENSSL_VERSION_NUMBER & 0x0000000fL) +#endif #define DECLARE_MODULE_API(module, rettype, apiname, arglist, args) \ rettype apiname arglist { \ @@ -61,7 +66,6 @@ DECLARE_SSLEAY32_API(int, SSL_connect, (SSL *ssl), (ssl)) DECLARE_SSLEAY32_API_v(SSL_free, (SSL *ssl), (ssl)) DECLARE_SSLEAY32_API(int, SSL_get_error, (const SSL *s,int ret_code), (s,ret_code)) DECLARE_SSLEAY32_API(X509 *, SSL_get_peer_certificate, (const SSL *s), (s)) -DECLARE_SSLEAY32_API_v(SSL_load_error_strings, (void ), ()) DECLARE_SSLEAY32_API(SSL *, SSL_new, (SSL_CTX *ctx), (ctx)) DECLARE_SSLEAY32_API(int, SSL_read, (SSL *ssl,void *buf,int num), (ssl, buf, num)) DECLARE_SSLEAY32_API(int, SSL_set_fd, (SSL *s, int fd), (s, fd)) @@ -74,6 +78,6 @@ DECLARE_SSLEAY32_API(const SSL_METHOD *, SSLv23_client_method, (void), ()) #endif DECLARE_SSLEAY32_API(int, SSL_CTX_load_verify_locations, (SSL_CTX *ctx, const char *CAfile, const char *CApath), (ctx, CAfile, CApath)) DECLARE_SSLEAY32_API(long, SSL_get_verify_result, (const SSL *ssl), (ssl)) -DECLARE_SSLEAY32_API(int, SSL_library_init, (void), ()) +DECLARE_SSLEAY32_API(int, OPENSSL_init_ssl, (uint64_t opts, const OPENSSL_INIT_SETTINGS *settings), (opts, settings)) #endif//_SSLLIB_h_ \ No newline at end of file diff --git a/TTProxy/SSLSocket.h b/TTProxy/SSLSocket.h index 050e5d20a..35213e7b0 100644 --- a/TTProxy/SSLSocket.h +++ b/TTProxy/SSLSocket.h @@ -54,8 +54,12 @@ class SSLSocket { private: SSLContext():ctx(NULL) { - SSL_library_init(); - SSL_load_error_strings(); + // SSL_library_init֐OpenSSL 1.1.0deprecatedƂȂA + // OPENSSL_init_ssl֐ɒuB + OPENSSL_init_ssl(0, NULL); + + // SSL_load_error_strings֐OpenSSL 1.1.0deprecatedƂȂA + // ĂяosvƂȂ߁A폜B ctx = SSL_CTX_new(SSLv23_client_method()); SSL_CTX_set_mode(ctx, SSL_MODE_AUTO_RETRY | SSL_MODE_ACCEPT_MOVING_WRITE_BUFFER); } diff --git a/TTProxy/StdAfx.cpp b/TTProxy/StdAfx.cpp index 3840f5c52..dc591adee 100644 --- a/TTProxy/StdAfx.cpp +++ b/TTProxy/StdAfx.cpp @@ -2,7 +2,7 @@ // ttx.pch vRpCσwb_[ // stdafx.obj vRpCσ^Cv -#include "stdafx.h" +#include "StdAfx.h" // TODO: STDAFX.H Ɋ܂܂ĂāÃt@CɋLqĂȂ // wb_[t@CljĂB diff --git a/TTProxy/StdAfx.h b/TTProxy/StdAfx.h index 89e56ff6f..f56a4d958 100644 --- a/TTProxy/StdAfx.h +++ b/TTProxy/StdAfx.h @@ -6,9 +6,7 @@ #if !defined(AFX_STDAFX_H__B24257E3_70C7_482E_8DB9_1A5C4AE8B2F6__INCLUDED_) #define AFX_STDAFX_H__B24257E3_70C7_482E_8DB9_1A5C4AE8B2F6__INCLUDED_ -#if _MSC_VER > 1000 #pragma once -#endif // _MSC_VER > 1000 #define _WINSOCKAPI_ @@ -24,13 +22,8 @@ // ̈ʒuɃwb_[}Ă #include - -#include -#include -#include -#include -#include -#include +#include +#include #include #include diff --git a/TTProxy/TTProxy.cpp b/TTProxy/TTProxy.cpp index e6b160e92..16c399447 100644 --- a/TTProxy/TTProxy.cpp +++ b/TTProxy/TTProxy.cpp @@ -1,14 +1,12 @@ // ttx.cpp : DLL AvP[Vp̃Gg |Cg`܂B // -#include "stdafx.h" +#include "StdAfx.h" #include "resource.h" #include "TTProxy.h" -#include "compat_w95.h" - static HINSTANCE myInstance = NULL; namespace yebisuya { @@ -17,7 +15,8 @@ namespace yebisuya { } } -BOOL WINAPI DllMain(HINSTANCE instance, DWORD reason, LPVOID reserved) { +extern "C" __declspec(dllexport) BOOL WINAPI DllMain(HINSTANCE instance, DWORD reason, LPVOID reserved) { + (void)reserved; switch (reason) { case DLL_PROCESS_ATTACH: myInstance = instance; @@ -28,7 +27,9 @@ BOOL WINAPI DllMain(HINSTANCE instance, DWORD reason, LPVOID reserved) { return TTProxy::getInstance().threadAttach(); case DLL_THREAD_DETACH: return TTProxy::getInstance().threadDetach(); + default: + TTXBind(0, NULL); // dummy TODO gpō폜Ȃ悤ɂ + break; } return FALSE; } - diff --git a/TTProxy/TTProxy.dsp b/TTProxy/TTProxy.dsp deleted file mode 100644 index b25fe758f..000000000 --- a/TTProxy/TTProxy.dsp +++ /dev/null @@ -1,271 +0,0 @@ -# Microsoft Developer Studio Project File - Name="TTProxy" - Package Owner=<4> -# Microsoft Developer Studio Generated Build File, Format Version 6.00 -# ** ҏWȂł ** - -# TARGTYPE "Win32 (x86) Dynamic-Link Library" 0x0102 - -CFG=TTProxy - Win32 Debug -!MESSAGE ͗LҲ̧قł͂܂B ۼުĂނ邽߂ɂ NMAKE gpĂB -!MESSAGE [Ҳ̧ق̴߰] ނgpĎsĂ -!MESSAGE -!MESSAGE NMAKE /f "TTProxy.mak". -!MESSAGE -!MESSAGE NMAKE ̎sɍ\wł܂ -!MESSAGE ײݏϸۂ̐ݒ`܂B: -!MESSAGE -!MESSAGE NMAKE /f "TTProxy.mak" CFG="TTProxy - Win32 Debug" -!MESSAGE -!MESSAGE I”\ Ӱ: -!MESSAGE -!MESSAGE "TTProxy - Win32 Release" ("Win32 (x86) Dynamic-Link Library" p) -!MESSAGE "TTProxy - Win32 Debug" ("Win32 (x86) Dynamic-Link Library" p) -!MESSAGE - -# Begin Project -# PROP AllowPerConfigDependencies 0 -# PROP Scc_ProjName "" -# PROP Scc_LocalPath "" -CPP=cl.exe -MTL=midl.exe -RSC=rc.exe - -!IF "$(CFG)" == "TTProxy - 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 "." -# PROP Intermediate_Dir "Release" -# PROP Ignore_Export_Lib 1 -# PROP Target_Dir "" -# ADD BASE CPP /nologo /MT /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_WINDOWS" /D "_MBCS" /D "_USRDLL" /D "TTX_EXPORTS" /YX /FD /c -# ADD CPP /nologo /MT /W3 /O2 /I "../teraterm/source/teraterm" /I "../teraterm/source/common" /I "YCL/include" /I "../openssl/inc32" /D "WIN32" /D "NDEBUG" /D "_WINDOWS" /D "_MBCS" /D "_USRDLL" /D "TTX_EXPORTS" /Yu"stdafx.h" /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 /nologo /dll /machine:I386 -# ADD LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib wsock32.lib /nologo /dll /map /machine:I386 /def:".\TTX.def" /out:"TTXProxy.dll" /implib:"Release/TTXProxy.lib" -# SUBTRACT LINK32 /pdb:none - -!ELSEIF "$(CFG)" == "TTProxy - 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 1 -# PROP Target_Dir "" -# ADD BASE CPP /nologo /MTd /W3 /Gm /GX /ZI /Od /D "WIN32" /D "_DEBUG" /D "_WINDOWS" /D "_MBCS" /D "_USRDLL" /D "TTX_EXPORTS" /YX /FD /GZ /c -# ADD CPP /nologo /MTd /W3 /Gm /ZI /Od /I "../teraterm/source/teraterm" /I "../teraterm/source/common" /I "YCL/include" /I "../openssl/inc32" /D "WIN32" /D "_DEBUG" /D "_WINDOWS" /D "_MBCS" /D "_USRDLL" /D "TTX_EXPORTS" /Yu"stdafx.h" /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 /nologo /dll /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 wsock32.lib /nologo /dll /debug /machine:I386 /out:"Debug/TTXProxy.dll" /pdbtype:sept - -!ENDIF - -# Begin Target - -# Name "TTProxy - Win32 Release" -# Name "TTProxy - Win32 Debug" -# Begin Group "Source Files" - -# PROP Default_Filter "cpp;c;cxx;rc;def;r;odl;idl;hpj;bat" -# Begin Source File - -SOURCE=.\StdAfx.cpp -# ADD CPP /Yc"stdafx.h" -# End Source File -# Begin Source File - -SOURCE=.\TTProxy.cpp -# End Source File -# Begin Source File - -SOURCE=.\TTProxy.rc -# End Source File -# Begin Source File - -SOURCE=.\TTX.def - -!IF "$(CFG)" == "TTProxy - Win32 Release" - -# PROP Exclude_From_Build 1 - -!ELSEIF "$(CFG)" == "TTProxy - Win32 Debug" - -!ENDIF - -# End Source File -# End Group -# Begin Group "Header Files" - -# PROP Default_Filter "h;hpp;hxx;hm;inl" -# Begin Source File - -SOURCE=.\Hooker.h -# End Source File -# Begin Source File - -SOURCE=.\Logger.h -# End Source File -# Begin Source File - -SOURCE=.\ProxyWSockHook.h -# End Source File -# Begin Source File - -SOURCE=.\SSLSocket.h -# End Source File -# Begin Source File - -SOURCE=.\StdAfx.h -# End Source File -# Begin Source File - -SOURCE=.\TTProxy.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" -# End Group -# Begin Group "YCL" - -# PROP Default_Filter "" -# Begin Source File - -SOURCE=.\YCL\include\YCL\Array.h -# End Source File -# Begin Source File - -SOURCE=.\YCL\include\YCL\ComboBoxCtrl.h -# End Source File -# Begin Source File - -SOURCE=.\YCL\include\YCL\common.h -# End Source File -# Begin Source File - -SOURCE=.\YCL\include\YCL\Dialog.h -# End Source File -# Begin Source File - -SOURCE=.\YCL\include\YCL\DynamicLinkLibrary.h -# End Source File -# Begin Source File - -SOURCE=.\YCL\include\YCL\EditBoxCtrl.h -# End Source File -# Begin Source File - -SOURCE=.\YCL\include\YCL\Enumeration.h -# End Source File -# Begin Source File - -SOURCE=.\YCL\include\YCL\FileVersion.h -# End Source File -# Begin Source File - -SOURCE=.\YCL\include\YCL\HASHCODE.h -# End Source File -# Begin Source File - -SOURCE=.\YCL\include\YCL\Hashtable.h -# End Source File -# Begin Source File - -SOURCE=.\YCL\include\YCL\IniFile.h -# End Source File -# Begin Source File - -SOURCE=.\YCL\include\YCL\Integer.h -# End Source File -# Begin Source File - -SOURCE=.\YCL\include\YCL\libc.cpp -# PROP Exclude_From_Build 1 -# End Source File -# Begin Source File - -SOURCE=.\YCL\include\YCL\Object.h -# End Source File -# Begin Source File - -SOURCE=.\YCL\include\YCL\Pointer.h -# End Source File -# Begin Source File - -SOURCE=.\YCL\include\YCL\Resource.h -# End Source File -# Begin Source File - -SOURCE=.\YCL\include\YCL\StringBuffer.h -# End Source File -# Begin Source File - -SOURCE=.\YCL\include\YCL\StringUtil.h -# End Source File -# Begin Source File - -SOURCE=.\YCL\include\YCL\ValueCtrl.h -# End Source File -# Begin Source File - -SOURCE=.\YCL\include\YCL\Vector.h -# End Source File -# Begin Source File - -SOURCE=.\YCL\include\YCL\Window.h -# End Source File -# End Group -# Begin Group "TeraTermPro" - -# PROP Default_Filter "" -# Begin Source File - -SOURCE=..\ttsrcp23\source\common\teraterm.h -# End Source File -# Begin Source File - -SOURCE=..\ttsrcp23\source\teraterm\ttdialog.h -# End Source File -# Begin Source File - -SOURCE=..\ttsrcp23\source\common\ttplugin.h -# End Source File -# Begin Source File - -SOURCE=..\ttsrcp23\source\teraterm\ttsetup.h -# End Source File -# Begin Source File - -SOURCE=..\ttsrcp23\source\common\tttypes.h -# End Source File -# Begin Source File - -SOURCE=..\ttsrcp23\source\teraterm\ttwsk.h -# End Source File -# End Group -# End Target -# End Project diff --git a/TTProxy/TTProxy.dsw b/TTProxy/TTProxy.dsw deleted file mode 100644 index 5ed38a50f..000000000 --- a/TTProxy/TTProxy.dsw +++ /dev/null @@ -1,29 +0,0 @@ -Microsoft Developer Studio Workspace File, Format Version 6.00 -# x: ܰ߰ ̧ ҏW܂͍폜Ȃł! - -############################################################################### - -Project: "TTProxy"="TTProxy.dsp" - Package Owner=<4> - -Package=<5> -{{{ -}}} - -Package=<4> -{{{ -}}} - -############################################################################### - -Global: - -Package=<5> -{{{ -}}} - -Package=<3> -{{{ -}}} - -############################################################################### - diff --git a/TTProxy/TTProxy.h b/TTProxy/TTProxy.h index bf35f4c61..55b07a962 100644 --- a/TTProxy/TTProxy.h +++ b/TTProxy/TTProxy.h @@ -1,14 +1,16 @@ #ifndef _YEBISOCKS_TTX_H_ #define _YEBISOCKS_TTX_H_ +#include "codeconv.h" + #include using namespace yebisuya; #include "ProxyWSockHook.h" -extern BOOL PASCAL TTXBind(WORD Version, TTXExports* exports); +extern "C" __declspec(dllexport) BOOL WINAPI TTXBind(WORD Version, TTXExports* exports); -char UILanguageFile[MAX_PATH]; +wchar_t *UILanguageFileW; class TTProxy : public DynamicLinkLibrary { enum { @@ -48,7 +50,7 @@ class TTProxy : public DynamicLinkLibrary { static void add_error_message(const char* message) { if (getInstance().error_message != NULL) { - StringBuffer buffer = getInstance().error_message; + StringBuffer buffer = (const TCHAR *)getInstance().error_message; buffer.append("\n\n"); buffer.append(message); getInstance().error_message = buffer.toString(); @@ -57,12 +59,12 @@ class TTProxy : public DynamicLinkLibrary { } ::PostMessage(getInstance().cv->HWin, WM_COMMAND, ID_ASYNCMESSAGEBOX, 0); } - static void read_options(const char* filename) { + static void read_options(const wchar_t* filename) { IniFile inifile(filename, "TTProxy"); ProxyWSockHook::load(inifile); getInstance().initialized = true; } - static void write_options(const char* filename) { + static void write_options(const wchar_t* filename) { IniFile inifile(filename, "TTProxy"); ProxyWSockHook::save(inifile); } @@ -87,21 +89,21 @@ class TTProxy : public DynamicLinkLibrary { return buffer.toString(); } - static void PASCAL TTXReadINIFile(PCHAR fileName, PTTSet ts) { + static void PASCAL TTXReadINIFile(const wchar_t *fileName, PTTSet ts) { getInstance().ORIG_ReadIniFile(fileName, ts); read_options(fileName); } - static void PASCAL TTXWriteINIFile(PCHAR fileName, PTTSet ts) { + static void PASCAL TTXWriteINIFile(const wchar_t *fileName, PTTSet ts) { getInstance().ORIG_WriteIniFile(fileName, ts); write_options(fileName); } - static void PASCAL TTXParseParam(PCHAR param, PTTSet ts, PCHAR DDETopic) { - int param_len=strlen(param); - char option[1024]; + static void PASCAL TTXParseParam(wchar_t *param, PTTSet ts, PCHAR DDETopic) { + size_t param_len = wcslen(param); + wchar_t option[1024]; int opt_len = sizeof(option); int action; - PCHAR start, cur, next; + wchar_t *start, *cur, *next; memset(&option, '\0', opt_len); @@ -115,17 +117,22 @@ class TTProxy : public DynamicLinkLibrary { if ((option[0] == '-' || option[0] == '/')) { if ((option[1] == 'F' || option[1] == 'f') && option[2] == '=') { - read_options(get_teraterm_dir_relative_name(option + 3)); + char *optA = ToCharW(option + 3); + String f = get_teraterm_dir_relative_name(optA); + free(optA); + wchar_t *fW = ToWcharA(f); + read_options(fW); + free(fW); } } switch (action) { case OPTION_CLEAR: - memset(cur, ' ', next-cur); + wmemset(cur, ' ', next-cur); break; case OPTION_REPLACE: - memset(cur, ' ', next-cur); - memcpy(cur+1, option, strlen(option)); + wmemset(cur, ' ', next-cur); + wmemcpy(cur+1, option, wcslen(option)); break; } @@ -138,22 +145,26 @@ class TTProxy : public DynamicLinkLibrary { action = OPTION_NONE; if ((option[0] == '-' || option[0] == '/')) { - if (strlen(option + 1) >= 6 && option[6] == '=') { + if (wcslen(option + 1) >= 6 && option[6] == '=') { option[6] = '\0'; - if (_stricmp(option + 1, "proxy") == 0) { - ProxyWSockHook::parseURL(option + 7, TRUE); + if (_wcsicmp(option + 1, L"proxy") == 0) { + char *url = ToCharW(option + 7); + ProxyWSockHook::parseURL(url, TRUE); + free(url); action = OPTION_CLEAR; }else{ option[6] = '='; } } - else if (_stricmp(option+1, "noproxy") == 0) { + else if (_wcsicmp(option+1, L"noproxy") == 0) { // -noproxy -proxy=none:// ̕ʖ ProxyWSockHook::parseURL("none://", TRUE); action = OPTION_CLEAR; } }else{ - String realhost = ProxyWSockHook::parseURL(option, FALSE); + char *url = ToCharW(option); + String realhost = ProxyWSockHook::parseURL(url, FALSE); + free(url); if (realhost != NULL) { getInstance().realhost = realhost; if (realhost.indexOf("://") == -1) { @@ -169,11 +180,11 @@ class TTProxy : public DynamicLinkLibrary { switch (action) { case OPTION_CLEAR: - memset(cur, ' ', next-cur); + wmemset(cur, ' ', next-cur); break; case OPTION_REPLACE: - memset(cur, ' ', next-cur); - memcpy(cur+1, option, strlen(option)); + wmemset(cur, ' ', next-cur); + wmemcpy(cur+1, option, wcslen(option)); break; } @@ -187,17 +198,13 @@ class TTProxy : public DynamicLinkLibrary { } static void copy_UILanguageFile() { - strncpy_s(UILanguageFile, sizeof(UILanguageFile), - getInstance().ts->UILanguageFile, _TRUNCATE); + UILanguageFileW = getInstance().ts->UILanguageFileW; } - static BOOL CALLBACK EnumProc(HMODULE, const char*, const char*, WORD langid, LONG lParam) { - *((WORD*) lParam) = langid; - return FALSE; - } static void PASCAL TTXInit(PTTSet ts, PComVar cv) { getInstance().ts = ts; getInstance().cv = cv; + Logger::set_folder(ts->LogDirW); ProxyWSockHook::setMessageShower(&getInstance().shower); } @@ -214,7 +221,7 @@ class TTProxy : public DynamicLinkLibrary { static void PASCAL TTXOpenTCP(TTXSockHooks* hooks) { if (!getInstance().initialized) { - read_options(getInstance().ts->SetupFName); + read_options(getInstance().ts->SetupFNameW); } (FARPROC&) *hooks->Pconnect = ProxyWSockHook::hook_connect((FARPROC) *hooks->Pconnect); (FARPROC&) *hooks->PWSAAsyncGetHostByName = ProxyWSockHook::hook_WSAAsyncGetHostByName((FARPROC) *hooks->PWSAAsyncGetHostByName); @@ -235,24 +242,30 @@ class TTProxy : public DynamicLinkLibrary { } static void PASCAL TTXModifyMenu(HMENU menu) { - char uimsg[MAX_UIMSG]; - copy_UILanguageFile(); - /* inserts before ID_HELP_ABOUT */ - UTIL_get_lang_msg("MENU_ABOUT", uimsg, sizeof(uimsg), "About TT&Proxy..."); - InsertMenu(menu, 50990, MF_BYCOMMAND | MF_ENABLED, ID_ABOUTMENU, uimsg); - /* inserts before ID_SETUP_TCPIP */ - UTIL_get_lang_msg("MENU_SETUP", uimsg, sizeof(uimsg), "&Proxy..."); - InsertMenu(menu, 50360, MF_BYCOMMAND | MF_ENABLED, ID_PROXYSETUPMENU, uimsg); + const UINT ID_HELP_ABOUT = 50990; + const UINT ID_SETUP_TCPIP = 50360; + InsertMenu(menu, ID_HELP_ABOUT, MF_BYCOMMAND | MF_ENABLED, ID_ABOUTMENU, "About TT&Proxy..."); + InsertMenu(menu, ID_SETUP_TCPIP, MF_BYCOMMAND | MF_ENABLED, ID_PROXYSETUPMENU, "&Proxy..."); + + static const DlgTextInfo MenuTextInfo[] = { + { ID_ABOUTMENU, "MENU_ABOUT" }, + { ID_PROXYSETUPMENU, "MENU_SETUP" }, + }; + SetI18nMenuStrsW(menu, "TTProxy", MenuTextInfo, _countof(MenuTextInfo), getInstance().ts->UILanguageFileW); } static int PASCAL TTXProcessCommand(HWND hWin, WORD cmd) { switch (cmd) { case ID_ABOUTMENU: copy_UILanguageFile(); + SetDialogFont(getInstance().ts->DialogFontNameW, getInstance().ts->DialogFontPoint, getInstance().ts->DialogFontCharSet, + getInstance().ts->UILanguageFileW, "TTProxy", "DLG_TAHOMA_FONT"); ProxyWSockHook::aboutDialog(hWin); return 1; case ID_PROXYSETUPMENU: copy_UILanguageFile(); + SetDialogFont(getInstance().ts->DialogFontNameW, getInstance().ts->DialogFontPoint, getInstance().ts->DialogFontCharSet, + getInstance().ts->UILanguageFileW, "TTProxy", "DLG_TAHOMA_FONT"); ProxyWSockHook::setupDialog(hWin); return 1; case ID_ASYNCMESSAGEBOX: @@ -272,13 +285,16 @@ class TTProxy : public DynamicLinkLibrary { } } - static void PASCAL TTXSetCommandLine(PCHAR cmd, int cmdlen, PGetHNRec rec) { - String url = ProxyWSockHook::generateURL(); + static void PASCAL TTXSetCommandLine(wchar_t *cmd, int cmdlen, PGetHNRec rec) { + String urlA = ProxyWSockHook::generateURL(); + wchar_t *urlW = ToWcharA(urlA); + WString url = urlW; + free(urlW); if (url != NULL) { - if (strlen(cmd) + 8 + url.length() >= (unsigned) cmdlen) + if (wcslen(cmd) + 8 + url.length() >= (unsigned) cmdlen) return; - strcat_s(cmd, cmdlen, " -proxy="); - strcat_s(cmd, cmdlen, url); + wcscat_s(cmd, cmdlen, L" -proxy="); + wcscat_s(cmd, cmdlen, url); } } diff --git a/TTProxy/TTProxy.rc b/TTProxy/TTProxy.rc index 8367f4413..4c9252096 100644 --- a/TTProxy/TTProxy.rc +++ b/TTProxy/TTProxy.rc @@ -7,7 +7,7 @@ // // Generated from the TEXTINCLUDE 2 resource. // -#include +//#include #include #include #include @@ -82,8 +82,8 @@ END // VS_VERSION_INFO VERSIONINFO - FILEVERSION 1,0,0,24 - PRODUCTVERSION 1,0,0,24 + FILEVERSION 1,0,0,26 + PRODUCTVERSION 1,0,0,26 FILEFLAGSMASK 0x3fL #ifdef _DEBUG FILEFLAGS 0x1L @@ -101,12 +101,12 @@ BEGIN VALUE "Comments", "vLVoRł̒ʐMT|[gvOCB" VALUE "CompanyName", "gq{, TeraTerm Project" VALUE "FileDescription", "vLVvOC" - VALUE "FileVersion", "1, 0, 0, 24" + VALUE "FileVersion", "1, 0, 0, 26" VALUE "InternalName", "TTProxy" - VALUE "LegalCopyright", "Copyright (C) 2003-2006 gq{, (C) 2004-2016 TeraTerm Project" + VALUE "LegalCopyright", "Copyright (C) 2003-2006 gq{, (C) 2004-2024 TeraTerm Project" VALUE "OriginalFilename", "TTXProxy.dll" VALUE "ProductName", "gq{܃vLVvOCW" - VALUE "ProductVersion", "1, 0, 0, 24" + VALUE "ProductVersion", "1, 0, 0, 26" END END BLOCK "VarFileInfo" @@ -134,8 +134,8 @@ LANGUAGE LANG_ENGLISH, SUBLANG_ENGLISH_US // VS_VERSION_INFO VERSIONINFO - FILEVERSION 1,0,0,24 - PRODUCTVERSION 1,0,0,24 + FILEVERSION 1,0,0,26 + PRODUCTVERSION 1,0,0,26 FILEFLAGSMASK 0x3fL #ifdef _DEBUG FILEFLAGS 0x1L @@ -153,12 +153,12 @@ BEGIN VALUE "Comments", "Plug-in that supports communication by way of proxy" VALUE "CompanyName", "Yebisuya Hompo, TeraTerm Project" VALUE "FileDescription", "Proxy plug-in" - VALUE "FileVersion", "1, 0, 0, 24" + VALUE "FileVersion", "1, 0, 0, 26" VALUE "InternalName", "TTProxy" - VALUE "LegalCopyright", "Copyright (C) 2003-2006 Yebisuya Hompo, (C) 2004-2016 TeraTerm Project" + VALUE "LegalCopyright", "Copyright (C) 2003-2006 Yebisuya Hompo, (C) 2004-2024 TeraTerm Project" VALUE "OriginalFilename", "TTXProxy.dll" VALUE "ProductName", "Proxy plug-in collection of Yebisuya Hompo" - VALUE "ProductVersion", "1, 0, 0, 24" + VALUE "ProductVersion", "1, 0, 0, 26" END END BLOCK "VarFileInfo" @@ -231,7 +231,7 @@ STYLE DS_SETFONT | DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU CAPTION "About TTProxy" FONT 8, "Tahoma", 0, 0, 0x0 BEGIN - LTEXT "TTProxy\n%s, %d.%d.%d.%d\nCopyright (C) 2003-2006 %s\n%s: http://yebisuya.dip.jp/Software/TTProxy/\n(C) 2006-2015 TeraTerm Project\nTeraTerm Project: https://ttssh2.osdn.jp/",IDC_VERSION,7,7,212,52 + LTEXT "TTProxy\n%s, %d.%d.%d.%d\nCopyright (C) 2003-2006 %s\n%s: http://yebisuya.dip.jp/Software/TTProxy/\n(C) 2006-2024 TeraTerm Project\nTeraTerm Project: https://teratermproject.github.io/",IDC_VERSION,7,7,212,52 DEFPUSHBUTTON "OK",IDOK,82,63,50,14 END diff --git a/TTProxy/TTProxy.sln b/TTProxy/TTProxy.sln deleted file mode 100644 index eccf6b4ea..000000000 --- a/TTProxy/TTProxy.sln +++ /dev/null @@ -1,20 +0,0 @@ - -Microsoft Visual Studio Solution File, Format Version 9.00 -# Visual Studio 2005 -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "TTProxy", "TTProxy.vcproj", "{C4DE5FDF-DB00-4C73-9D4F-359BFCA3F2FB}" -EndProject -Global - GlobalSection(SolutionConfigurationPlatforms) = preSolution - Debug|Win32 = Debug|Win32 - Release|Win32 = Release|Win32 - EndGlobalSection - GlobalSection(ProjectConfigurationPlatforms) = postSolution - {C4DE5FDF-DB00-4C73-9D4F-359BFCA3F2FB}.Debug|Win32.ActiveCfg = Debug|Win32 - {C4DE5FDF-DB00-4C73-9D4F-359BFCA3F2FB}.Debug|Win32.Build.0 = Debug|Win32 - {C4DE5FDF-DB00-4C73-9D4F-359BFCA3F2FB}.Release|Win32.ActiveCfg = Release|Win32 - {C4DE5FDF-DB00-4C73-9D4F-359BFCA3F2FB}.Release|Win32.Build.0 = Release|Win32 - EndGlobalSection - GlobalSection(SolutionProperties) = preSolution - HideSolutionNode = FALSE - EndGlobalSection -EndGlobal diff --git a/TTProxy/TTProxy.v10.sln b/TTProxy/TTProxy.v10.sln deleted file mode 100644 index 1b5da9eb3..000000000 --- a/TTProxy/TTProxy.v10.sln +++ /dev/null @@ -1,20 +0,0 @@ - -Microsoft Visual Studio Solution File, Format Version 11.00 -# Visual Studio 2010 -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "TTProxy", "TTProxy.v10.vcxproj", "{C4DE5FDF-DB00-4C73-9D4F-359BFCA3F2FB}" -EndProject -Global - GlobalSection(SolutionConfigurationPlatforms) = preSolution - Debug|Win32 = Debug|Win32 - Release|Win32 = Release|Win32 - EndGlobalSection - GlobalSection(ProjectConfigurationPlatforms) = postSolution - {C4DE5FDF-DB00-4C73-9D4F-359BFCA3F2FB}.Debug|Win32.ActiveCfg = Debug|Win32 - {C4DE5FDF-DB00-4C73-9D4F-359BFCA3F2FB}.Debug|Win32.Build.0 = Debug|Win32 - {C4DE5FDF-DB00-4C73-9D4F-359BFCA3F2FB}.Release|Win32.ActiveCfg = Release|Win32 - {C4DE5FDF-DB00-4C73-9D4F-359BFCA3F2FB}.Release|Win32.Build.0 = Release|Win32 - EndGlobalSection - GlobalSection(SolutionProperties) = preSolution - HideSolutionNode = FALSE - EndGlobalSection -EndGlobal diff --git a/TTProxy/TTProxy.v10.vcxproj b/TTProxy/TTProxy.v10.vcxproj deleted file mode 100644 index e52afad71..000000000 --- a/TTProxy/TTProxy.v10.vcxproj +++ /dev/null @@ -1,200 +0,0 @@ - - - - - Debug - Win32 - - - Release - Win32 - - - - {C4DE5FDF-DB00-4C73-9D4F-359BFCA3F2FB} - TTProxy - TTProxy - - - - DynamicLibrary - false - MultiByte - - - DynamicLibrary - false - MultiByte - - - - - - - - - - - - - <_ProjectFileVersion>10.0.40219.1 - $(SolutionDir)$(Configuration)\ - $(Configuration)\ - true - false - $(SolutionDir)$(Configuration)\ - $(Configuration)\ - true - true - TTXProxy - TTXProxy - - - - NDEBUG;%(PreprocessorDefinitions) - true - true - Win32 - $(OutDir)$(ProjectName).tlb - - - - - MaxSpeed - OnlyExplicitInline - $(SolutionDir)..\teraterm\teraterm;$(SolutionDir)..\teraterm\common;YCL\include;$(SolutionDir)..\libs\openssl\inc32;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;_USRDLL;TTX_EXPORTS;%(PreprocessorDefinitions) - true - MultiThreaded - true - Use - stdafx.h - Level3 - true - - - NDEBUG;%(PreprocessorDefinitions) - 0x0411 - - - ws2_32.lib;ttpcmn.lib;%(AdditionalDependencies) - true - $(SolutionDir)..\teraterm\$(Configuration);%(AdditionalLibraryDirectories) - TTX.def - true - true - $(OutDir)$(ProjectName).lib - MachineX86 - - - true - - - - - _DEBUG;%(PreprocessorDefinitions) - true - true - Win32 - $(OutDir)$(ProjectName).tlb - - - - - Disabled - $(SolutionDir)..\teraterm\teraterm;$(SolutionDir)..\teraterm\common;YCL\include;$(SolutionDir)..\libs\openssl\inc32;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;_USRDLL;TTX_EXPORTS;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebug - Use - stdafx.h - Level3 - true - EditAndContinue - - - _DEBUG;%(PreprocessorDefinitions) - 0x0411 - - - ws2_32.lib;ttpcmn.lib;%(AdditionalDependencies) - true - $(SolutionDir)..\teraterm\$(Configuration);%(AdditionalLibraryDirectories) - TTX.def - true - $(OutDir)$(ProjectName).lib - MachineX86 - - - true - - - - - %(AdditionalIncludeDirectories) - %(PreprocessorDefinitions) - Create - %(AdditionalIncludeDirectories) - %(PreprocessorDefinitions) - Create - - - %(AdditionalIncludeDirectories) - %(PreprocessorDefinitions) - %(AdditionalIncludeDirectories) - %(PreprocessorDefinitions) - - - true - %(AdditionalIncludeDirectories) - %(PreprocessorDefinitions) - true - %(AdditionalIncludeDirectories) - %(PreprocessorDefinitions) - - - - - %(PreprocessorDefinitions) - %(PreprocessorDefinitions) - - - - - true - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/TTProxy/TTProxy.v10.vcxproj.filters b/TTProxy/TTProxy.v10.vcxproj.filters deleted file mode 100644 index 642c3e3e2..000000000 --- a/TTProxy/TTProxy.v10.vcxproj.filters +++ /dev/null @@ -1,124 +0,0 @@ - - - - - {eb3d1ba1-167a-4e37-a4e9-3e9fc2c2525b} - cpp;c;cxx;rc;def;r;odl;idl;hpj;bat - - - {796fc23d-119a-4f71-8589-f8cecb6dedab} - h;hpp;hxx;hm;inl - - - {acf36d21-cda5-488d-b619-f009676dce0e} - - - {c983f4ff-e528-4f87-88bb-4c1ec664c6ca} - ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe - - - - - Source Files - - - Source Files - - - YCL - - - - - Source Files - - - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - YCL - - - YCL - - - YCL - - - YCL - - - YCL - - - YCL - - - YCL - - - YCL - - - YCL - - - YCL - - - YCL - - - YCL - - - YCL - - - YCL - - - YCL - - - YCL - - - YCL - - - YCL - - - YCL - - - YCL - - - - - Source Files - - - \ No newline at end of file diff --git a/TTProxy/TTProxy.v11.sln b/TTProxy/TTProxy.v11.sln deleted file mode 100644 index 7eebe8ce2..000000000 --- a/TTProxy/TTProxy.v11.sln +++ /dev/null @@ -1,20 +0,0 @@ - -Microsoft Visual Studio Solution File, Format Version 12.00 -# Visual Studio 2012 -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "TTProxy", "TTProxy.v11.vcxproj", "{C4DE5FDF-DB00-4C73-9D4F-359BFCA3F2FB}" -EndProject -Global - GlobalSection(SolutionConfigurationPlatforms) = preSolution - Debug|Win32 = Debug|Win32 - Release|Win32 = Release|Win32 - EndGlobalSection - GlobalSection(ProjectConfigurationPlatforms) = postSolution - {C4DE5FDF-DB00-4C73-9D4F-359BFCA3F2FB}.Debug|Win32.ActiveCfg = Debug|Win32 - {C4DE5FDF-DB00-4C73-9D4F-359BFCA3F2FB}.Debug|Win32.Build.0 = Debug|Win32 - {C4DE5FDF-DB00-4C73-9D4F-359BFCA3F2FB}.Release|Win32.ActiveCfg = Release|Win32 - {C4DE5FDF-DB00-4C73-9D4F-359BFCA3F2FB}.Release|Win32.Build.0 = Release|Win32 - EndGlobalSection - GlobalSection(SolutionProperties) = preSolution - HideSolutionNode = FALSE - EndGlobalSection -EndGlobal diff --git a/TTProxy/TTProxy.v11.vcxproj b/TTProxy/TTProxy.v11.vcxproj deleted file mode 100644 index a5231a4a8..000000000 --- a/TTProxy/TTProxy.v11.vcxproj +++ /dev/null @@ -1,189 +0,0 @@ - - - - - Debug - Win32 - - - Release - Win32 - - - - {C4DE5FDF-DB00-4C73-9D4F-359BFCA3F2FB} - TTProxy - TTProxy - - - - DynamicLibrary - v110 - false - MultiByte - - - DynamicLibrary - v110 - false - MultiByte - - - - - - - - - - - - - <_ProjectFileVersion>11.0.61030.0 - - - $(SolutionDir)$(Configuration)\ - $(Configuration)\ - true - false - TTXProxy - - - $(SolutionDir)$(Configuration)\ - $(Configuration)\ - true - true - TTXProxy - - - - NDEBUG;%(PreprocessorDefinitions) - true - true - Win32 - $(OutDir)$(ProjectName).tlb - - - - MaxSpeed - OnlyExplicitInline - $(SolutionDir)..\teraterm\teraterm;$(SolutionDir)..\teraterm\common;YCL\include;$(SolutionDir)..\libs\openssl\inc32;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;_USRDLL;TTX_EXPORTS;%(PreprocessorDefinitions) - true - MultiThreaded - true - Use - stdafx.h - Level3 - true - - - NDEBUG;%(PreprocessorDefinitions) - 0x0411 - - - ws2_32.lib;ttpcmn.lib;%(AdditionalDependencies) - true - $(SolutionDir)..\teraterm\$(Configuration);%(AdditionalLibraryDirectories) - TTX.def - true - true - $(OutDir)$(ProjectName).lib - MachineX86 - false - - - true - - - - - _DEBUG;%(PreprocessorDefinitions) - true - true - Win32 - $(OutDir)$(ProjectName).tlb - - - - Disabled - $(SolutionDir)..\teraterm\teraterm;$(SolutionDir)..\teraterm\common;YCL\include;$(SolutionDir)..\libs\openssl\inc32;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;_USRDLL;TTX_EXPORTS;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebug - Use - stdafx.h - Level3 - true - EditAndContinue - - - _DEBUG;%(PreprocessorDefinitions) - 0x0411 - - - ws2_32.lib;ttpcmn.lib;%(AdditionalDependencies) - true - $(SolutionDir)..\teraterm\$(Configuration);%(AdditionalLibraryDirectories) - TTX.def - true - $(OutDir)$(ProjectName).lib - MachineX86 - - - true - - - - - Create - Create - - - - true - true - - - - - - - - true - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/TTProxy/TTProxy.v11.vcxproj.filters b/TTProxy/TTProxy.v11.vcxproj.filters deleted file mode 100644 index 2cc748041..000000000 --- a/TTProxy/TTProxy.v11.vcxproj.filters +++ /dev/null @@ -1,124 +0,0 @@ - - - - - {1b90c168-f7cc-4195-919d-007e4ce2a840} - cpp;c;cxx;rc;def;r;odl;idl;hpj;bat - - - {d0142784-6652-4fe6-b5f4-103d3c767fcb} - h;hpp;hxx;hm;inl - - - {93443f29-327f-4f25-8c93-d33831fdc195} - - - {f683a0a4-95af-45b2-a84f-93c58380e084} - ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe - - - - - Source Files - - - Source Files - - - YCL - - - - - Source Files - - - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - YCL - - - YCL - - - YCL - - - YCL - - - YCL - - - YCL - - - YCL - - - YCL - - - YCL - - - YCL - - - YCL - - - YCL - - - YCL - - - YCL - - - YCL - - - YCL - - - YCL - - - YCL - - - YCL - - - YCL - - - - - Source Files - - - \ No newline at end of file diff --git a/TTProxy/TTProxy.v12.sln b/TTProxy/TTProxy.v12.sln deleted file mode 100644 index cf26f5858..000000000 --- a/TTProxy/TTProxy.v12.sln +++ /dev/null @@ -1,22 +0,0 @@ - -Microsoft Visual Studio Solution File, Format Version 12.00 -# Visual Studio 2013 -VisualStudioVersion = 12.0.31101.0 -MinimumVisualStudioVersion = 10.0.40219.1 -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "TTProxy", "TTProxy.v12.vcxproj", "{C4DE5FDF-DB00-4C73-9D4F-359BFCA3F2FB}" -EndProject -Global - GlobalSection(SolutionConfigurationPlatforms) = preSolution - Debug|Win32 = Debug|Win32 - Release|Win32 = Release|Win32 - EndGlobalSection - GlobalSection(ProjectConfigurationPlatforms) = postSolution - {C4DE5FDF-DB00-4C73-9D4F-359BFCA3F2FB}.Debug|Win32.ActiveCfg = Debug|Win32 - {C4DE5FDF-DB00-4C73-9D4F-359BFCA3F2FB}.Debug|Win32.Build.0 = Debug|Win32 - {C4DE5FDF-DB00-4C73-9D4F-359BFCA3F2FB}.Release|Win32.ActiveCfg = Release|Win32 - {C4DE5FDF-DB00-4C73-9D4F-359BFCA3F2FB}.Release|Win32.Build.0 = Release|Win32 - EndGlobalSection - GlobalSection(SolutionProperties) = preSolution - HideSolutionNode = FALSE - EndGlobalSection -EndGlobal diff --git a/TTProxy/TTProxy.v12.vcxproj b/TTProxy/TTProxy.v12.vcxproj deleted file mode 100644 index 5a0fcc055..000000000 --- a/TTProxy/TTProxy.v12.vcxproj +++ /dev/null @@ -1,189 +0,0 @@ - - - - - Debug - Win32 - - - Release - Win32 - - - - {C4DE5FDF-DB00-4C73-9D4F-359BFCA3F2FB} - TTProxy - TTProxy - - - - DynamicLibrary - v120 - false - MultiByte - - - DynamicLibrary - v120 - false - MultiByte - - - - - - - - - - - - - <_ProjectFileVersion>12.0.30501.0 - - - $(SolutionDir)$(Configuration)\ - $(Configuration)\ - true - false - TTXProxy - - - $(SolutionDir)$(Configuration)\ - $(Configuration)\ - true - true - TTXProxy - - - - NDEBUG;%(PreprocessorDefinitions) - true - true - Win32 - $(OutDir)$(ProjectName).tlb - - - - MaxSpeed - OnlyExplicitInline - $(SolutionDir)..\teraterm\teraterm;$(SolutionDir)..\teraterm\common;YCL\include;$(SolutionDir)..\libs\openssl\inc32;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;_USRDLL;TTX_EXPORTS;%(PreprocessorDefinitions) - true - MultiThreaded - true - Use - stdafx.h - Level3 - true - - - NDEBUG;%(PreprocessorDefinitions) - 0x0411 - - - ws2_32.lib;ttpcmn.lib;%(AdditionalDependencies) - true - $(SolutionDir)..\teraterm\$(Configuration);%(AdditionalLibraryDirectories) - TTX.def - true - true - $(OutDir)$(ProjectName).lib - MachineX86 - false - - - true - - - - - _DEBUG;%(PreprocessorDefinitions) - true - true - Win32 - $(OutDir)$(ProjectName).tlb - - - - Disabled - $(SolutionDir)..\teraterm\teraterm;$(SolutionDir)..\teraterm\common;YCL\include;$(SolutionDir)..\libs\openssl\inc32;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;_USRDLL;TTX_EXPORTS;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebug - Use - stdafx.h - Level3 - true - EditAndContinue - - - _DEBUG;%(PreprocessorDefinitions) - 0x0411 - - - ws2_32.lib;ttpcmn.lib;%(AdditionalDependencies) - true - $(SolutionDir)..\teraterm\$(Configuration);%(AdditionalLibraryDirectories) - TTX.def - true - $(OutDir)$(ProjectName).lib - MachineX86 - - - true - - - - - Create - Create - - - - true - true - - - - - - - - true - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/TTProxy/TTProxy.v12.vcxproj.filters b/TTProxy/TTProxy.v12.vcxproj.filters deleted file mode 100644 index 5c528c93f..000000000 --- a/TTProxy/TTProxy.v12.vcxproj.filters +++ /dev/null @@ -1,124 +0,0 @@ - - - - - {3cd46c63-801a-45aa-88e0-52572525db2d} - cpp;c;cxx;rc;def;r;odl;idl;hpj;bat - - - {2a7e6b97-89c1-4fe1-abf6-cdd5617422b1} - h;hpp;hxx;hm;inl - - - {076290f0-a284-406f-9e4c-8425b4904132} - - - {f6ee589e-87d8-4a70-b138-b10962385824} - ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe - - - - - Source Files - - - Source Files - - - YCL - - - - - Source Files - - - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - YCL - - - YCL - - - YCL - - - YCL - - - YCL - - - YCL - - - YCL - - - YCL - - - YCL - - - YCL - - - YCL - - - YCL - - - YCL - - - YCL - - - YCL - - - YCL - - - YCL - - - YCL - - - YCL - - - YCL - - - - - Source Files - - - \ No newline at end of file diff --git a/TTProxy/TTProxy.v14.sln b/TTProxy/TTProxy.v14.sln deleted file mode 100644 index 5e3b21122..000000000 --- a/TTProxy/TTProxy.v14.sln +++ /dev/null @@ -1,22 +0,0 @@ - -Microsoft Visual Studio Solution File, Format Version 12.00 -# Visual Studio 14 -VisualStudioVersion = 14.0.23107.0 -MinimumVisualStudioVersion = 10.0.40219.1 -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "TTProxy", "TTProxy.v14.vcxproj", "{C4DE5FDF-DB00-4C73-9D4F-359BFCA3F2FB}" -EndProject -Global - GlobalSection(SolutionConfigurationPlatforms) = preSolution - Debug|Win32 = Debug|Win32 - Release|Win32 = Release|Win32 - EndGlobalSection - GlobalSection(ProjectConfigurationPlatforms) = postSolution - {C4DE5FDF-DB00-4C73-9D4F-359BFCA3F2FB}.Debug|Win32.ActiveCfg = Debug|Win32 - {C4DE5FDF-DB00-4C73-9D4F-359BFCA3F2FB}.Debug|Win32.Build.0 = Debug|Win32 - {C4DE5FDF-DB00-4C73-9D4F-359BFCA3F2FB}.Release|Win32.ActiveCfg = Release|Win32 - {C4DE5FDF-DB00-4C73-9D4F-359BFCA3F2FB}.Release|Win32.Build.0 = Release|Win32 - EndGlobalSection - GlobalSection(SolutionProperties) = preSolution - HideSolutionNode = FALSE - EndGlobalSection -EndGlobal diff --git a/TTProxy/TTProxy.v14.vcxproj b/TTProxy/TTProxy.v14.vcxproj deleted file mode 100644 index a3ea52a26..000000000 --- a/TTProxy/TTProxy.v14.vcxproj +++ /dev/null @@ -1,189 +0,0 @@ - - - - - Debug - Win32 - - - Release - Win32 - - - - {C4DE5FDF-DB00-4C73-9D4F-359BFCA3F2FB} - TTProxy - TTProxy - - - - DynamicLibrary - v140 - false - MultiByte - - - DynamicLibrary - v140 - false - MultiByte - - - - - - - - - - - - - <_ProjectFileVersion>12.0.30501.0 - - - $(SolutionDir)$(Configuration)\ - $(Configuration)\ - true - false - TTXProxy - - - $(SolutionDir)$(Configuration)\ - $(Configuration)\ - true - true - TTXProxy - - - - NDEBUG;%(PreprocessorDefinitions) - true - true - Win32 - $(OutDir)$(ProjectName).tlb - - - - MaxSpeed - OnlyExplicitInline - $(SolutionDir)..\teraterm\teraterm;$(SolutionDir)..\teraterm\common;YCL\include;$(SolutionDir)..\libs\openssl\inc32;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;_USRDLL;TTX_EXPORTS;%(PreprocessorDefinitions) - true - MultiThreaded - true - Use - stdafx.h - Level3 - true - - - NDEBUG;%(PreprocessorDefinitions) - 0x0411 - - - ws2_32.lib;ttpcmn.lib;%(AdditionalDependencies) - true - $(SolutionDir)..\teraterm\$(Configuration);%(AdditionalLibraryDirectories) - TTX.def - true - true - $(OutDir)$(ProjectName).lib - MachineX86 - - - true - - - - - _DEBUG;%(PreprocessorDefinitions) - true - true - Win32 - $(OutDir)$(ProjectName).tlb - - - - Disabled - $(SolutionDir)..\teraterm\teraterm;$(SolutionDir)..\teraterm\common;YCL\include;$(SolutionDir)..\libs\openssl\inc32;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;_USRDLL;TTX_EXPORTS;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebug - Use - stdafx.h - Level3 - true - EditAndContinue - - - _DEBUG;%(PreprocessorDefinitions) - 0x0411 - - - ws2_32.lib;ttpcmn.lib;%(AdditionalDependencies) - true - $(SolutionDir)..\teraterm\$(Configuration);%(AdditionalLibraryDirectories) - TTX.def - true - $(OutDir)$(ProjectName).lib - MachineX86 - false - - - true - - - - - Create - Create - - - - true - true - - - - - - - - true - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/TTProxy/TTProxy.v14.vcxproj.filters b/TTProxy/TTProxy.v14.vcxproj.filters deleted file mode 100644 index 5c528c93f..000000000 --- a/TTProxy/TTProxy.v14.vcxproj.filters +++ /dev/null @@ -1,124 +0,0 @@ - - - - - {3cd46c63-801a-45aa-88e0-52572525db2d} - cpp;c;cxx;rc;def;r;odl;idl;hpj;bat - - - {2a7e6b97-89c1-4fe1-abf6-cdd5617422b1} - h;hpp;hxx;hm;inl - - - {076290f0-a284-406f-9e4c-8425b4904132} - - - {f6ee589e-87d8-4a70-b138-b10962385824} - ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe - - - - - Source Files - - - Source Files - - - YCL - - - - - Source Files - - - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - YCL - - - YCL - - - YCL - - - YCL - - - YCL - - - YCL - - - YCL - - - YCL - - - YCL - - - YCL - - - YCL - - - YCL - - - YCL - - - YCL - - - YCL - - - YCL - - - YCL - - - YCL - - - YCL - - - YCL - - - - - Source Files - - - \ No newline at end of file diff --git a/TTProxy/TTProxy.v15.sln b/TTProxy/TTProxy.v15.sln deleted file mode 100644 index 92e549569..000000000 --- a/TTProxy/TTProxy.v15.sln +++ /dev/null @@ -1,22 +0,0 @@ - -Microsoft Visual Studio Solution File, Format Version 12.00 -# Visual Studio 15 -VisualStudioVersion = 15.0.26228.4 -MinimumVisualStudioVersion = 10.0.40219.1 -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "TTProxy", "TTProxy.v15.vcxproj", "{C4DE5FDF-DB00-4C73-9D4F-359BFCA3F2FB}" -EndProject -Global - GlobalSection(SolutionConfigurationPlatforms) = preSolution - Debug|Win32 = Debug|Win32 - Release|Win32 = Release|Win32 - EndGlobalSection - GlobalSection(ProjectConfigurationPlatforms) = postSolution - {C4DE5FDF-DB00-4C73-9D4F-359BFCA3F2FB}.Debug|Win32.ActiveCfg = Debug|Win32 - {C4DE5FDF-DB00-4C73-9D4F-359BFCA3F2FB}.Debug|Win32.Build.0 = Debug|Win32 - {C4DE5FDF-DB00-4C73-9D4F-359BFCA3F2FB}.Release|Win32.ActiveCfg = Release|Win32 - {C4DE5FDF-DB00-4C73-9D4F-359BFCA3F2FB}.Release|Win32.Build.0 = Release|Win32 - EndGlobalSection - GlobalSection(SolutionProperties) = preSolution - HideSolutionNode = FALSE - EndGlobalSection -EndGlobal diff --git a/TTProxy/TTProxy.v15.vcxproj b/TTProxy/TTProxy.v15.vcxproj deleted file mode 100644 index 859be7f5c..000000000 --- a/TTProxy/TTProxy.v15.vcxproj +++ /dev/null @@ -1,189 +0,0 @@ - - - - - Debug - Win32 - - - Release - Win32 - - - - {C4DE5FDF-DB00-4C73-9D4F-359BFCA3F2FB} - TTProxy - TTProxy - - - - DynamicLibrary - v141 - false - MultiByte - - - DynamicLibrary - v141 - false - MultiByte - - - - - - - - - - - - - <_ProjectFileVersion>12.0.30501.0 - - - $(SolutionDir)$(Configuration)\ - $(Configuration)\ - true - false - TTXProxy - - - $(SolutionDir)$(Configuration)\ - $(Configuration)\ - true - true - TTXProxy - - - - NDEBUG;%(PreprocessorDefinitions) - true - true - Win32 - $(OutDir)$(ProjectName).tlb - - - - MaxSpeed - OnlyExplicitInline - $(SolutionDir)..\teraterm\teraterm;$(SolutionDir)..\teraterm\common;YCL\include;$(SolutionDir)..\libs\openssl\inc32;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;_USRDLL;TTX_EXPORTS;%(PreprocessorDefinitions) - true - MultiThreaded - true - Use - stdafx.h - Level3 - true - - - NDEBUG;%(PreprocessorDefinitions) - 0x0411 - - - ws2_32.lib;ttpcmn.lib;%(AdditionalDependencies) - true - $(SolutionDir)..\teraterm\$(Configuration);%(AdditionalLibraryDirectories) - TTX.def - true - true - $(OutDir)$(ProjectName).lib - MachineX86 - - - true - - - - - _DEBUG;%(PreprocessorDefinitions) - true - true - Win32 - $(OutDir)$(ProjectName).tlb - - - - Disabled - $(SolutionDir)..\teraterm\teraterm;$(SolutionDir)..\teraterm\common;YCL\include;$(SolutionDir)..\libs\openssl\inc32;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;_USRDLL;TTX_EXPORTS;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebug - Use - stdafx.h - Level3 - true - EditAndContinue - - - _DEBUG;%(PreprocessorDefinitions) - 0x0411 - - - ws2_32.lib;ttpcmn.lib;%(AdditionalDependencies) - true - $(SolutionDir)..\teraterm\$(Configuration);%(AdditionalLibraryDirectories) - TTX.def - true - $(OutDir)$(ProjectName).lib - MachineX86 - false - - - true - - - - - Create - Create - - - - true - true - - - - - - - - true - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/TTProxy/TTProxy.v15.vcxproj.filters b/TTProxy/TTProxy.v15.vcxproj.filters deleted file mode 100644 index 5c528c93f..000000000 --- a/TTProxy/TTProxy.v15.vcxproj.filters +++ /dev/null @@ -1,124 +0,0 @@ - - - - - {3cd46c63-801a-45aa-88e0-52572525db2d} - cpp;c;cxx;rc;def;r;odl;idl;hpj;bat - - - {2a7e6b97-89c1-4fe1-abf6-cdd5617422b1} - h;hpp;hxx;hm;inl - - - {076290f0-a284-406f-9e4c-8425b4904132} - - - {f6ee589e-87d8-4a70-b138-b10962385824} - ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe - - - - - Source Files - - - Source Files - - - YCL - - - - - Source Files - - - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - YCL - - - YCL - - - YCL - - - YCL - - - YCL - - - YCL - - - YCL - - - YCL - - - YCL - - - YCL - - - YCL - - - YCL - - - YCL - - - YCL - - - YCL - - - YCL - - - YCL - - - YCL - - - YCL - - - YCL - - - - - Source Files - - - \ No newline at end of file diff --git a/TTProxy/TTProxy.v16.sln b/TTProxy/TTProxy.v16.sln new file mode 100644 index 000000000..d6cda702b --- /dev/null +++ b/TTProxy/TTProxy.v16.sln @@ -0,0 +1,25 @@ + +Microsoft Visual Studio Solution File, Format Version 12.00 +# Visual Studio Version 16 +VisualStudioVersion = 16.0.28803.156 +MinimumVisualStudioVersion = 10.0.40219.1 +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "TTProxy", "TTProxy.v16.vcxproj", "{C4DE5FDF-DB00-4C73-9D4F-359BFCA3F2FB}" +EndProject +Global + GlobalSection(SolutionConfigurationPlatforms) = preSolution + Debug|Win32 = Debug|Win32 + Release|Win32 = Release|Win32 + EndGlobalSection + GlobalSection(ProjectConfigurationPlatforms) = postSolution + {C4DE5FDF-DB00-4C73-9D4F-359BFCA3F2FB}.Debug|Win32.ActiveCfg = Debug|Win32 + {C4DE5FDF-DB00-4C73-9D4F-359BFCA3F2FB}.Debug|Win32.Build.0 = Debug|Win32 + {C4DE5FDF-DB00-4C73-9D4F-359BFCA3F2FB}.Release|Win32.ActiveCfg = Release|Win32 + {C4DE5FDF-DB00-4C73-9D4F-359BFCA3F2FB}.Release|Win32.Build.0 = Release|Win32 + EndGlobalSection + GlobalSection(SolutionProperties) = preSolution + HideSolutionNode = FALSE + EndGlobalSection + GlobalSection(ExtensibilityGlobals) = postSolution + SolutionGuid = {A4DEB4C3-85FB-401C-BEFD-469E0A10C041} + EndGlobalSection +EndGlobal diff --git a/TTProxy/TTProxy.v16.vcxproj b/TTProxy/TTProxy.v16.vcxproj new file mode 100644 index 000000000..ab848a9e2 --- /dev/null +++ b/TTProxy/TTProxy.v16.vcxproj @@ -0,0 +1,187 @@ + + + + + Debug + Win32 + + + Release + Win32 + + + + {C4DE5FDF-DB00-4C73-9D4F-359BFCA3F2FB} + TTProxy + TTProxy + 10.0 + + + + DynamicLibrary + v142 + false + MultiByte + + + DynamicLibrary + v142 + false + MultiByte + + + + + + + + + + + + + <_ProjectFileVersion>12.0.30501.0 + + + $(SolutionDir)$(Configuration)\ + $(Configuration)\ + true + false + TTXProxy + + + $(SolutionDir)$(Configuration)\ + $(Configuration)\ + true + true + TTXProxy + + + + NDEBUG;%(PreprocessorDefinitions) + true + true + Win32 + $(OutDir)$(ProjectName).tlb + + + + MaxSpeed + OnlyExplicitInline + $(SolutionDir)..\teraterm\teraterm;$(SolutionDir)..\teraterm\common;YCL\include;%(AdditionalIncludeDirectories) + WIN32;NDEBUG;_WINDOWS;_USRDLL;TTX_EXPORTS;%(PreprocessorDefinitions) + true + MultiThreaded + true + Use + stdafx.h + Level3 + true + /D_CRT_SECURE_NO_DEPRECATE %(AdditionalOptions) + + + NDEBUG;%(PreprocessorDefinitions) + 0x0411 + + + common_static.lib;ws2_32.lib;ttpcmn.lib;version.lib;%(AdditionalDependencies) + true + $(SolutionDir)..\teraterm\$(Configuration);%(AdditionalLibraryDirectories) + TTX.def + true + true + $(OutDir)$(ProjectName).lib + MachineX86 + + + true + + + + + _DEBUG;%(PreprocessorDefinitions) + true + true + Win32 + $(OutDir)$(ProjectName).tlb + + + + Disabled + $(SolutionDir)..\teraterm\teraterm;$(SolutionDir)..\teraterm\common;YCL\include;%(AdditionalIncludeDirectories) + WIN32;_DEBUG;_WINDOWS;_USRDLL;TTX_EXPORTS;%(PreprocessorDefinitions) + false + EnableFastChecks + MultiThreadedDebug + Use + stdafx.h + Level3 + true + EditAndContinue + /D_CRT_SECURE_NO_DEPRECATE %(AdditionalOptions) + + + _DEBUG;%(PreprocessorDefinitions) + 0x0411 + + + common_static.lib;ws2_32.lib;ttpcmn.lib;version.lib;%(AdditionalDependencies) + true + $(SolutionDir)..\teraterm\$(Configuration);%(AdditionalLibraryDirectories) + TTX.def + true + $(OutDir)$(ProjectName).lib + MachineX86 + false + + + true + + + + + Create + Create + + + + + + + + + true + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/TTProxy/TTProxy.v16.vcxproj.filters b/TTProxy/TTProxy.v16.vcxproj.filters new file mode 100644 index 000000000..db27c396b --- /dev/null +++ b/TTProxy/TTProxy.v16.vcxproj.filters @@ -0,0 +1,118 @@ + + + + + {3cd46c63-801a-45aa-88e0-52572525db2d} + cpp;c;cxx;rc;def;r;odl;idl;hpj;bat + + + {2a7e6b97-89c1-4fe1-abf6-cdd5617422b1} + h;hpp;hxx;hm;inl + + + {076290f0-a284-406f-9e4c-8425b4904132} + + + {f6ee589e-87d8-4a70-b138-b10962385824} + ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe + + + + + Source Files + + + Source Files + + + + + Source Files + + + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + YCL + + + YCL + + + YCL + + + YCL + + + YCL + + + YCL + + + YCL + + + YCL + + + YCL + + + YCL + + + YCL + + + YCL + + + YCL + + + YCL + + + YCL + + + YCL + + + YCL + + + YCL + + + YCL + + + YCL + + + + + Source Files + + + \ No newline at end of file diff --git a/TTProxy/TTProxy.v17.sln b/TTProxy/TTProxy.v17.sln new file mode 100644 index 000000000..79ed491b2 --- /dev/null +++ b/TTProxy/TTProxy.v17.sln @@ -0,0 +1,23 @@ + +Microsoft Visual Studio Solution File, Format Version 12.00 +# Visual Studio Version 17 +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "TTProxy", "TTProxy.v17.vcxproj", "{C4DE5FDF-DB00-4C73-9D4F-359BFCA3F2FB}" +EndProject +Global + GlobalSection(SolutionConfigurationPlatforms) = preSolution + Debug|Win32 = Debug|Win32 + Release|Win32 = Release|Win32 + EndGlobalSection + GlobalSection(ProjectConfigurationPlatforms) = postSolution + {C4DE5FDF-DB00-4C73-9D4F-359BFCA3F2FB}.Debug|Win32.ActiveCfg = Debug|Win32 + {C4DE5FDF-DB00-4C73-9D4F-359BFCA3F2FB}.Debug|Win32.Build.0 = Debug|Win32 + {C4DE5FDF-DB00-4C73-9D4F-359BFCA3F2FB}.Release|Win32.ActiveCfg = Release|Win32 + {C4DE5FDF-DB00-4C73-9D4F-359BFCA3F2FB}.Release|Win32.Build.0 = Release|Win32 + EndGlobalSection + GlobalSection(SolutionProperties) = preSolution + HideSolutionNode = FALSE + EndGlobalSection + GlobalSection(ExtensibilityGlobals) = postSolution + SolutionGuid = {A4DEB4C3-85FB-401C-BEFD-469E0A10C041} + EndGlobalSection +EndGlobal diff --git a/TTProxy/TTProxy.v17.vcxproj b/TTProxy/TTProxy.v17.vcxproj new file mode 100644 index 000000000..7218f4058 --- /dev/null +++ b/TTProxy/TTProxy.v17.vcxproj @@ -0,0 +1,187 @@ + + + + + Debug + Win32 + + + Release + Win32 + + + + {C4DE5FDF-DB00-4C73-9D4F-359BFCA3F2FB} + TTProxy + TTProxy + 10.0 + + + + DynamicLibrary + v143 + false + MultiByte + + + DynamicLibrary + v143 + false + MultiByte + + + + + + + + + + + + + <_ProjectFileVersion>12.0.30501.0 + + + $(SolutionDir)$(Configuration)\ + $(Configuration)\ + true + false + TTXProxy + + + $(SolutionDir)$(Configuration)\ + $(Configuration)\ + true + true + TTXProxy + + + + NDEBUG;%(PreprocessorDefinitions) + true + true + Win32 + $(OutDir)$(ProjectName).tlb + + + + MaxSpeed + OnlyExplicitInline + $(SolutionDir)..\teraterm\teraterm;$(SolutionDir)..\teraterm\common;YCL\include;%(AdditionalIncludeDirectories) + WIN32;NDEBUG;_WINDOWS;_USRDLL;TTX_EXPORTS;%(PreprocessorDefinitions) + true + MultiThreaded + true + Use + stdafx.h + Level3 + true + /D_CRT_SECURE_NO_DEPRECATE %(AdditionalOptions) + + + NDEBUG;%(PreprocessorDefinitions) + 0x0411 + + + common_static.lib;ws2_32.lib;ttpcmn.lib;version.lib;%(AdditionalDependencies) + true + $(SolutionDir)..\teraterm\$(Configuration);%(AdditionalLibraryDirectories) + TTX.def + true + true + $(OutDir)$(ProjectName).lib + MachineX86 + + + true + + + + + _DEBUG;%(PreprocessorDefinitions) + true + true + Win32 + $(OutDir)$(ProjectName).tlb + + + + Disabled + $(SolutionDir)..\teraterm\teraterm;$(SolutionDir)..\teraterm\common;YCL\include;%(AdditionalIncludeDirectories) + WIN32;_DEBUG;_WINDOWS;_USRDLL;TTX_EXPORTS;%(PreprocessorDefinitions) + false + EnableFastChecks + MultiThreadedDebug + Use + stdafx.h + Level3 + true + EditAndContinue + /D_CRT_SECURE_NO_DEPRECATE %(AdditionalOptions) + + + _DEBUG;%(PreprocessorDefinitions) + 0x0411 + + + common_static.lib;ws2_32.lib;ttpcmn.lib;version.lib;%(AdditionalDependencies) + true + $(SolutionDir)..\teraterm\$(Configuration);%(AdditionalLibraryDirectories) + TTX.def + true + $(OutDir)$(ProjectName).lib + MachineX86 + false + + + true + + + + + Create + Create + + + + + + + + + true + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/TTProxy/TTProxy.v17.vcxproj.filters b/TTProxy/TTProxy.v17.vcxproj.filters new file mode 100644 index 000000000..db27c396b --- /dev/null +++ b/TTProxy/TTProxy.v17.vcxproj.filters @@ -0,0 +1,118 @@ + + + + + {3cd46c63-801a-45aa-88e0-52572525db2d} + cpp;c;cxx;rc;def;r;odl;idl;hpj;bat + + + {2a7e6b97-89c1-4fe1-abf6-cdd5617422b1} + h;hpp;hxx;hm;inl + + + {076290f0-a284-406f-9e4c-8425b4904132} + + + {f6ee589e-87d8-4a70-b138-b10962385824} + ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe + + + + + Source Files + + + Source Files + + + + + Source Files + + + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + YCL + + + YCL + + + YCL + + + YCL + + + YCL + + + YCL + + + YCL + + + YCL + + + YCL + + + YCL + + + YCL + + + YCL + + + YCL + + + YCL + + + YCL + + + YCL + + + YCL + + + YCL + + + YCL + + + YCL + + + + + Source Files + + + \ No newline at end of file diff --git a/TTProxy/TTProxy.v9.sln b/TTProxy/TTProxy.v9.sln deleted file mode 100644 index 518207e5f..000000000 --- a/TTProxy/TTProxy.v9.sln +++ /dev/null @@ -1,20 +0,0 @@ - -Microsoft Visual Studio Solution File, Format Version 10.00 -# Visual Studio 2008 -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "TTProxy", "TTProxy.v9.vcproj", "{C4DE5FDF-DB00-4C73-9D4F-359BFCA3F2FB}" -EndProject -Global - GlobalSection(SolutionConfigurationPlatforms) = preSolution - Debug|Win32 = Debug|Win32 - Release|Win32 = Release|Win32 - EndGlobalSection - GlobalSection(ProjectConfigurationPlatforms) = postSolution - {C4DE5FDF-DB00-4C73-9D4F-359BFCA3F2FB}.Debug|Win32.ActiveCfg = Debug|Win32 - {C4DE5FDF-DB00-4C73-9D4F-359BFCA3F2FB}.Debug|Win32.Build.0 = Debug|Win32 - {C4DE5FDF-DB00-4C73-9D4F-359BFCA3F2FB}.Release|Win32.ActiveCfg = Release|Win32 - {C4DE5FDF-DB00-4C73-9D4F-359BFCA3F2FB}.Release|Win32.Build.0 = Release|Win32 - EndGlobalSection - GlobalSection(SolutionProperties) = preSolution - HideSolutionNode = FALSE - EndGlobalSection -EndGlobal diff --git a/TTProxy/TTProxy.v9.vcproj b/TTProxy/TTProxy.v9.vcproj deleted file mode 100644 index 6f74e12da..000000000 --- a/TTProxy/TTProxy.v9.vcproj +++ /dev/null @@ -1,441 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/TTProxy/TTProxy.vcproj b/TTProxy/TTProxy.vcproj deleted file mode 100644 index 9a990b34f..000000000 --- a/TTProxy/TTProxy.vcproj +++ /dev/null @@ -1,442 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/TTProxy/YCL/include/YCL/Array.h b/TTProxy/YCL/include/YCL/Array.h index 8ffd34cb3..c4da8f55f 100644 --- a/TTProxy/YCL/include/YCL/Array.h +++ b/TTProxy/YCL/include/YCL/Array.h @@ -5,9 +5,7 @@ #ifndef _YCL_ARRAY_H_ #define _YCL_ARRAY_H_ -#if _MSC_VER >= 1000 #pragma once -#endif // _MSC_VER >= 1000 #include @@ -53,17 +51,21 @@ class Array : public Object { array[i] = source[i]; } } +#if 0 void copyFrom(Array* source) { copy(source->array[i]); } +#endif void copyTo(TYPE distination[])const { for (int i = 0; i < length; i++) { distination[i] = array[i]; } } +#if 0 void copyTo(Array* distination)const { copyTo(distination->array[i]); } +#endif }; } diff --git a/TTProxy/YCL/include/YCL/ComboBoxCtrl.h b/TTProxy/YCL/include/YCL/ComboBoxCtrl.h index 07c82d339..b16b8b558 100644 --- a/TTProxy/YCL/include/YCL/ComboBoxCtrl.h +++ b/TTProxy/YCL/include/YCL/ComboBoxCtrl.h @@ -5,9 +5,7 @@ #ifndef _YCL_COMBOBOXCTRL_H_ #define _YCL_COMBOBOXCTRL_H_ -#if _MSC_VER >= 1000 #pragma once -#endif // _MSC_VER >= 1000 #include diff --git a/TTProxy/YCL/include/YCL/Dialog.h b/TTProxy/YCL/include/YCL/Dialog.h index a07ebaf13..7e837bed8 100644 --- a/TTProxy/YCL/include/YCL/Dialog.h +++ b/TTProxy/YCL/include/YCL/Dialog.h @@ -5,43 +5,35 @@ #ifndef _YCL_DIALOG_H_ #define _YCL_DIALOG_H_ -#if _MSC_VER >= 1000 #pragma once -#endif // _MSC_VER >= 1000 #include #include -#include + +#include "dlglib.h" namespace yebisuya { class Dialog : virtual public Window { protected: - typedef Hashtable Map; - static Map& getMap() { - static Map map; - return map; - } static Dialog* prepareOpen(Dialog* next) { static Dialog* initializeing = NULL; Dialog* prev = initializeing; initializeing = next; return prev; } - static BOOL CALLBACK DialogProc(HWND dialog, UINT message, WPARAM wParam, LPARAM lParam) { - Map& map = getMap(); - Dialog* target = map.get(dialog); + static INT_PTR CALLBACK DialogProc(HWND dialog, UINT message, WPARAM wParam, LPARAM lParam) { + Dialog* target = (Dialog *)::GetWindowLongPtr(dialog, GWLP_USERDATA); if (target == NULL) { target = prepareOpen(NULL); if (target != NULL) { *target <<= dialog; - map.put(dialog, target); + ::SetWindowLongPtr(dialog, GWLP_USERDATA, (LONG_PTR)target); } } BOOL result = target != NULL ? target->dispatch(message, wParam, lParam) : FALSE; if (message == WM_NCDESTROY) { - map.remove(dialog); if (target != NULL) *target <<= NULL; } @@ -51,7 +43,7 @@ class Dialog : virtual public Window { || message == WM_CTLCOLORLISTBOX || message == WM_CTLCOLORSCROLLBAR || message == WM_CTLCOLORSTATIC)) { - result = (BOOL) ::GetWindowLong(dialog, DWL_MSGRESULT); + result = (BOOL) ::GetWindowLongPtr(dialog, DWLP_MSGRESULT); } return result; } @@ -85,7 +77,7 @@ class Dialog : virtual public Window { } void setResult(LRESULT result) { - SetWindowLong(DWL_MSGRESULT, result); + SetWindowLongPtr(DWLP_MSGRESULT, result); } int getDefID()const { return LOWORD(SendMessage(DM_GETDEFID)); @@ -104,15 +96,19 @@ class Dialog : virtual public Window { } - int open(int resourceId, HWND owner = NULL) { + INT_PTR open(int resourceId, HWND owner = NULL) { return open(GetInstanceHandle(), resourceId, owner); } - int open(HINSTANCE instance, int resourceId, HWND owner = NULL) { + INT_PTR open(HINSTANCE instance, int resourceId, HWND owner = NULL) { YCLVERIFY(prepareOpen(this) == NULL, "Another dialog has been opening yet."); +#if 0 return ::DialogBoxParam(instance, MAKEINTRESOURCE(resourceId), owner, DialogProc, NULL); +#else + return TTDialogBoxParam(instance, MAKEINTRESOURCE(resourceId), owner, DialogProc, NULL); +#endif } protected: - virtual bool dispatch(int message, int wparam, long lparam) { + virtual bool dispatch(UINT message, WPARAM wparam, LPARAM lparam) { switch (message) { case WM_INITDIALOG: return onInitDialog(); diff --git a/TTProxy/YCL/include/YCL/DynamicLinkLibrary.h b/TTProxy/YCL/include/YCL/DynamicLinkLibrary.h index c6c959849..9926993e4 100644 --- a/TTProxy/YCL/include/YCL/DynamicLinkLibrary.h +++ b/TTProxy/YCL/include/YCL/DynamicLinkLibrary.h @@ -5,9 +5,7 @@ #ifndef _YCL_DYNAMICLINKLIBRARY_H_ #define _YCL_DYNAMICLINKLIBRARY_H_ -#if _MSC_VER >= 1000 #pragma once -#endif // _MSC_VER >= 1000 namespace yebisuya { diff --git a/TTProxy/YCL/include/YCL/EditBoxCtrl.h b/TTProxy/YCL/include/YCL/EditBoxCtrl.h index a65e4557a..f5aaefcd7 100644 --- a/TTProxy/YCL/include/YCL/EditBoxCtrl.h +++ b/TTProxy/YCL/include/YCL/EditBoxCtrl.h @@ -5,9 +5,7 @@ #ifndef _YCL_EDITBOXCTRL_H_ #define _YCL_EDITBOXCTRL_H_ -#if _MSC_VER >= 1000 #pragma once -#endif // _MSC_VER >= 1000 #include diff --git a/TTProxy/YCL/include/YCL/Enumeration.h b/TTProxy/YCL/include/YCL/Enumeration.h index 362354bfd..22534938f 100644 --- a/TTProxy/YCL/include/YCL/Enumeration.h +++ b/TTProxy/YCL/include/YCL/Enumeration.h @@ -5,9 +5,7 @@ #ifndef _YCL_ENUMERATION_H_ #define _YCL_ENUMERATION_H_ -#if _MSC_VER >= 1000 #pragma once -#endif // _MSC_VER >= 1000 #include diff --git a/TTProxy/YCL/include/YCL/FileVersion.h b/TTProxy/YCL/include/YCL/FileVersion.h index b1ef433cf..6ab2c2f4c 100644 --- a/TTProxy/YCL/include/YCL/FileVersion.h +++ b/TTProxy/YCL/include/YCL/FileVersion.h @@ -5,14 +5,10 @@ #ifndef _YCL_FILEVERSION_H_ #define _YCL_FILEVERSION_H_ -#if _MSC_VER >= 1000 #pragma once -#endif // _MSC_VER >= 1000 #include -#pragma comment(lib, "version.lib") - namespace yebisuya { class FileVersion { diff --git a/TTProxy/YCL/include/YCL/HASHCODE.h b/TTProxy/YCL/include/YCL/HASHCODE.h index d91dc05a6..f8e0299f8 100644 --- a/TTProxy/YCL/include/YCL/HASHCODE.h +++ b/TTProxy/YCL/include/YCL/HASHCODE.h @@ -4,9 +4,7 @@ #ifndef _YCL_HASHCODE_H_ #define _YCL_HASHCODE_H_ -#if _MSC_VER >= 1000 #pragma once -#endif // _MSC_VER >= 1000 namespace yebisuya { @@ -25,7 +23,11 @@ class HASHCODE { } HASHCODE(const HASHCODE& code):value(code.value) { } - HASHCODE(void* value):value((int) value) { + HASHCODE(const void* value):value((int)(uintptr_t) value) { + } + HASHCODE(const FARPROC value) :value((int)(uintptr_t)value) { + } + HASHCODE(SOCKET value) :value((int)(uintptr_t)value) { } HASHCODE(int value):value(value) { } diff --git a/TTProxy/YCL/include/YCL/Hashtable.h b/TTProxy/YCL/include/YCL/Hashtable.h index 17b03c3fd..d617fa4da 100644 --- a/TTProxy/YCL/include/YCL/Hashtable.h +++ b/TTProxy/YCL/include/YCL/Hashtable.h @@ -5,9 +5,7 @@ #ifndef _YCL_HASHTABLE_H_ #define _YCL_HASHTABLE_H_ -#if _MSC_VER >= 1000 #pragma once -#endif // _MSC_VER >= 1000 #include diff --git a/TTProxy/YCL/include/YCL/IniFile.h b/TTProxy/YCL/include/YCL/IniFile.h index 3f31ef57b..11d7c79f9 100644 --- a/TTProxy/YCL/include/YCL/IniFile.h +++ b/TTProxy/YCL/include/YCL/IniFile.h @@ -5,9 +5,7 @@ #ifndef _YCL_INIFILE_H_ #define _YCL_INIFILE_H_ -#if _MSC_VER >= 1000 #pragma once -#endif // _MSC_VER >= 1000 #include @@ -18,6 +16,11 @@ #include #include #include +#include + +#include "inifile_com.h" +#include "asprintf.h" +#include "codeconv.h" namespace yebisuya { @@ -43,7 +46,7 @@ class IniFile { Vector list; mutable int index; public: - EnumKeyNames(const char* filename, const char* section):index(0) { + EnumKeyNames(const wchar_t* filename, const char* section):index(0) { Hashtable table; int section_len = strlen(section); char* buffer; @@ -87,7 +90,7 @@ class IniFile { char* buffer; mutable char* p; public: - EnumValueNames(const char* filename, const char* section) { + EnumValueNames(const wchar_t* filename, const char* section) { size_t size = 256; while ((buffer = getValueNames(filename, section, size)) == NULL) size += 256; @@ -140,28 +143,28 @@ class IniFile { return ((IniFile*) ini)->deleteValue(name); } }; - static char* getSectionNames(const char* filename, size_t size) { + static char* getSectionNames(const wchar_t* filename, size_t size) { char* buffer = new char[size]; - if (::GetPrivateProfileSectionNames(buffer, size, filename) < size - 2) + if (::GetPrivateProfileSectionNamesAFileW(buffer, size, filename) < size - 2) return buffer; delete[] buffer; return NULL; } - static char* getValueNames(const char* filename, const char* section, size_t size) { + static char* getValueNames(const wchar_t* filename, const char* section, size_t size) { static const char null = '\0'; char* buffer = new char[size]; - if (::GetPrivateProfileString(section, NULL, &null, buffer, size, filename) < size - 2) + if (GetPrivateProfileStringAFileW(section, NULL, &null, buffer, size, filename) < size - 2) return buffer; delete[] buffer; return NULL; } - static String getString(const char* filename, const char* section, const char* name, bool& exists, size_t size) { + static String getString(const wchar_t* filename, const char* section, const char* name, bool& exists, size_t size) { char* buffer = (char*) alloca(size); - size_t len = ::GetPrivateProfileString(section, name, INVALID(), buffer, size, filename); + size_t len = GetPrivateProfileStringAFileW(section, name, INVALID(), buffer, size, filename); if (len < size - 2) { // s܂񂾕init@C͎擾łȂ̂Ŏ擾sƂ if (buffer[0] == '\n') { - exists = false; + exists = false; return NULL; } // GXP[vWJ @@ -170,13 +173,30 @@ class IniFile { exists = true; return NULL; } + static WString getStringW(const wchar_t* filename, const char* section, const wchar_t* name, bool& exists, size_t size) { + wchar_t* buffer = (wchar_t*) alloca(sizeof(wchar_t) * size); + wchar_t* sectionW = ToWcharA(section); + size_t len = GetPrivateProfileStringW(sectionW, name, L"\n:", buffer, size, filename); + free(sectionW); + if (len < size - 2) { + // s܂񂾕init@C͎擾łȂ̂Ŏ擾sƂ + if (buffer[0] == '\n') { + exists = false; + return NULL; + } + // GXP[vWJ + return StringUtil::unescapeW(buffer); + } + exists = true; + return NULL; + } static String generateSectionName(const char* parentSection, const char* subkeyName) { StringBuffer buffer = parentSection; buffer.append('\\'); buffer.append(subkeyName); return buffer.toString(); } - static bool deleteAllSubsection(const char* filename, const char* section, const char* subkey) { + static bool deleteAllSubsection(const wchar_t* filename, const char* section, const char* subkey) { String keyname = generateSectionName(section, subkey); int keyname_len = keyname.length(); @@ -189,7 +209,7 @@ class IniFile { while (*name != '\0') { if (strncmp(name, keyname, keyname_len) == 0) { if (name[keyname_len] == '\0' || name[keyname_len] == '\\') { - if (!::WritePrivateProfileString(name, NULL, NULL, filename)) { + if (!WritePrivateProfileStringAFileW(name, NULL, NULL, filename)) { succeeded = false; break; } @@ -202,12 +222,12 @@ class IniFile { return succeeded; } - String filename; + WString filename; String section; public: IniFile() { } - IniFile(String filename, String section):filename(filename), section(section) { + IniFile(WString filename, String section):filename(filename), section(section) { } IniFile(const IniFile& parent, const char* subkeyName):filename(parent.filename), section(generateSectionName(parent.section, subkeyName)) { } @@ -216,7 +236,7 @@ class IniFile { return filename != NULL && section != NULL; } long getInteger(const char* name, long defaultValue = 0)const { - return filename != NULL && section != NULL ? ::GetPrivateProfileInt(section, name, defaultValue, filename) : defaultValue; + return filename != NULL && section != NULL ? ::GetPrivateProfileIntAFileW(section, name, defaultValue, filename) : defaultValue; } String getString(const char* name)const { return getString(name, NULL); @@ -233,6 +253,21 @@ class IniFile { } return defaultValue; } + WString getStringW(const wchar_t* name)const { + return getStringW(name, NULL); + } + WString getStringW(const wchar_t* name, WString defaultValue)const { + if (filename != NULL && section != NULL && name != NULL) { + size_t size = 256; + WString string; + bool exists; + while ((string = getStringW(filename, section, name, exists, size)) == NULL && exists) + size += 256; + if (string != NULL) + return string; + } + return defaultValue; + } bool getBoolean(const char* name, bool defaultValue = false)const { String string = getString(name); if (string != NULL) { @@ -258,17 +293,36 @@ class IniFile { buffer.append('"'); value = buffer.toString(); } - return ::WritePrivateProfileString(section, name, value, filename) != FALSE; + return ::WritePrivateProfileStringAFileW(section, name, value, filename) != FALSE; } return false; } + bool setString(const wchar_t* name, WString value) { + if (filename == NULL || section == NULL || name == NULL) { + return false; + } + + // NULLłȂ΃GXP[vĂ""Ŋ + if (value != NULL) { + WStringBuffer buffer; + buffer.append('"'); + if (!StringUtil::escapeW(buffer, value)) + buffer.append(value); + buffer.append('"'); + value = buffer.toString(); + } + wchar_t *sectionW = ToWcharA(section); + BOOL r = ::WritePrivateProfileStringW(sectionW, name, value, filename); + free(sectionW); + return r != FALSE; + } bool setBoolean(const char* name, bool value) { return setString(name, value ? YES() : NO()); } bool existsValue(const char* name) { char buffer[3]; - ::GetPrivateProfileString(section, name, INVALID(), buffer, countof(buffer), filename); + ::GetPrivateProfileStringAFileW(section, name, INVALID(), buffer, countof(buffer), filename); return buffer[0] != '\n'; } bool deleteKey(const char* name) { @@ -276,10 +330,10 @@ class IniFile { } bool deleteValue(const char* name) { return filename != NULL && section != NULL && name != NULL - && ::WritePrivateProfileString(section, name, NULL, filename) != FALSE; + && ::WritePrivateProfileStringAFileW(section, name, NULL, filename) != FALSE; } - bool open(String filename, String section) { + bool open(WString filename, String section) { close(); this->filename = filename; this->section = section; diff --git a/TTProxy/YCL/include/YCL/Integer.h b/TTProxy/YCL/include/YCL/Integer.h index b2ee5f158..a774d87c1 100644 --- a/TTProxy/YCL/include/YCL/Integer.h +++ b/TTProxy/YCL/include/YCL/Integer.h @@ -5,9 +5,7 @@ #ifndef _YCL_INTEGER_H_ #define _YCL_INTEGER_H_ -#if _MSC_VER >= 1000 #pragma once -#endif // _MSC_VER >= 1000 #include diff --git a/TTProxy/YCL/include/YCL/Object.h b/TTProxy/YCL/include/YCL/Object.h index d32a64cf2..a166cf1dc 100644 --- a/TTProxy/YCL/include/YCL/Object.h +++ b/TTProxy/YCL/include/YCL/Object.h @@ -5,9 +5,7 @@ #ifndef _YCL_OBJECT_H_ #define _YCL_OBJECT_H_ -#if _MSC_VER >= 1000 #pragma once -#endif // _MSC_VER >= 1000 namespace yebisuya { diff --git a/TTProxy/YCL/include/YCL/Pointer.h b/TTProxy/YCL/include/YCL/Pointer.h index dd5cc138d..55fe29e21 100644 --- a/TTProxy/YCL/include/YCL/Pointer.h +++ b/TTProxy/YCL/include/YCL/Pointer.h @@ -2,9 +2,7 @@ * $Id: Pointer.h,v 1.4 2007-08-18 08:52:18 maya Exp $ */ -#if _MSC_VER >= 1000 #pragma once -#endif // _MSC_VER >= 1000 #ifndef _YCL_POINTER_H_ #define _YCL_POINTER_H_ diff --git a/TTProxy/YCL/include/YCL/Resource.h b/TTProxy/YCL/include/YCL/Resource.h index 2c6a7e2e7..13bcd408e 100644 --- a/TTProxy/YCL/include/YCL/Resource.h +++ b/TTProxy/YCL/include/YCL/Resource.h @@ -5,9 +5,7 @@ #ifndef _YCL_RESOURCE_H_ #define _YCL_RESOURCE_H_ -#if _MSC_VER >= 1000 #pragma once -#endif // _MSC_VER >= 1000 #include diff --git a/TTProxy/YCL/include/YCL/String.h b/TTProxy/YCL/include/YCL/String.h index 43148c00f..79d652b04 100644 --- a/TTProxy/YCL/include/YCL/String.h +++ b/TTProxy/YCL/include/YCL/String.h @@ -5,9 +5,7 @@ #ifndef _YCL_STRING_H_ #define _YCL_STRING_H_ -#if _MSC_VER >= 1000 #pragma once -#endif // _MSC_VER >= 1000 #include @@ -234,7 +232,7 @@ class String { // chr TB // Ԓl: // ̌‚CfbNXB‚Ȃ-1B - int indexOf(char chr)const { + size_t indexOf(char chr)const { return indexOf(chr, 0); } // w̕ǂ̈ʒuɂ邩ẅʒuTB @@ -243,10 +241,8 @@ class String { // from Tn߂ʒuB // Ԓl: // ̌‚CfbNXB‚Ȃ-1B - int indexOf(char chr, size_t from)const { - if (from < 0) - from = 0; - else if (from >= length()) + size_t indexOf(char chr, size_t from)const { + if (from >= length()) return -1; const char* found = strchr(string + from, chr); if (found == NULL) @@ -258,7 +254,7 @@ class String { // str TB // Ԓl: // ̌‚CfbNXB‚Ȃ-1B - int indexOf(const char* str)const { + size_t indexOf(const char* str)const { return indexOf(str, 0); } // w̕񂪂ǂ̈ʒuɂ邩ẅʒuTB @@ -268,10 +264,8 @@ class String { // Ԓl: // ̌‚CfbNXB‚Ȃ-1B // - int indexOf(const char* str, size_t from)const { - if (from < 0) - from = 0; - else if (from >= length()) + size_t indexOf(const char* str, size_t from)const { + if (from >= length()) return -1; const char* found = strstr(string + from, str); if (found == NULL) @@ -287,7 +281,7 @@ class String { // chr TB // Ԓl: // ̌‚CfbNXB‚Ȃ-1B - int lastIndexOf(char chr)const { + size_t lastIndexOf(char chr)const { return lastIndexOf(chr, (size_t) -1); } // w̕ẅʒuOōŌɌ‚ʒu擾B @@ -296,7 +290,7 @@ class String { // from Tn߂ʒuB // Ԓl: // ̌‚CfbNXB‚Ȃ-1B - int lastIndexOf(char chr, size_t from)const { + size_t lastIndexOf(char chr, size_t from)const { size_t len = length(); if (from > len - 1) from = len - 1; @@ -317,7 +311,7 @@ class String { // str TB // Ԓl: // ̌‚CfbNXB‚Ȃ-1B - int lastIndexOf(const char* str)const { + size_t lastIndexOf(const char* str)const { return lastIndexOf(str, (size_t) -1); } // w̕񂪎ẅʒuOōŌɌ‚ʒu擾B @@ -326,7 +320,7 @@ class String { // from Tn߂ʒuB // Ԓl: // ̌‚CfbNXB‚Ȃ-1B - int lastIndexOf(const char* str, size_t from)const { + size_t lastIndexOf(const char* str, size_t from)const { size_t len = length(); size_t str_len = strlen(str); if (from > len - str_len) @@ -362,7 +356,7 @@ class String { // Ԓl: // ẅʒuɂ镶B char charAt(size_t index)const { - return index >= 0 && index < length() ? string[index] : '\0'; + return index < length() ? string[index] : '\0'; } // w̕w̕ɒu܂B // : diff --git a/TTProxy/YCL/include/YCL/StringBuffer.h b/TTProxy/YCL/include/YCL/StringBuffer.h index bb3b68e02..3c8495b72 100644 --- a/TTProxy/YCL/include/YCL/StringBuffer.h +++ b/TTProxy/YCL/include/YCL/StringBuffer.h @@ -5,9 +5,7 @@ #ifndef _YCL_STRINGBUFFER_H_ #define _YCL_STRINGBUFFER_H_ -#if _MSC_VER >= 1000 #pragma once -#endif // _MSC_VER >= 1000 #include @@ -45,7 +43,9 @@ class StringBuffer { }else{ buffer = new char[bufferSize]; } - memcpy(buffer, source, validLength); + if (source != NULL) { + memcpy(buffer, source, validLength); + } memset(buffer + validLength, '\0', bufferSize - validLength); } public: @@ -112,7 +112,7 @@ class StringBuffer { // Ԓl: // ẅʒu̕B char charAt(size_t index)const { - return index >= 0 && index < validLength ? buffer[index] : '\0'; + return index < validLength ? buffer[index] : '\0'; } // ẅʒu̕擾B // : @@ -120,9 +120,7 @@ class StringBuffer { // Ԓl: // ẅʒu̎̕QƁB char& charAt(size_t index) { - if (index < 0) { - index = 0; - }else if (index >= validLength) { + if (index >= validLength) { ensureCapacity(validLength + 1); index = validLength++; } @@ -180,8 +178,6 @@ class StringBuffer { // Ԓl: // 폜ʁB StringBuffer& remove(size_t start, size_t end) { - if (start <= 0) - start = 0; if (start < end) { if (end < validLength){ memcpy(buffer + start, buffer + end, validLength - end); @@ -200,8 +196,6 @@ class StringBuffer { // Ԓl: // uʁB StringBuffer& replace(size_t start, size_t end, const char* source) { - if (start < 0) - start = 0; if (end > validLength) end = validLength; if (start < end) { @@ -219,8 +213,6 @@ class StringBuffer { // Ԓl: // ẅʒu̕B String substring(size_t index)const { - if (index < 0) - index = 0; return String(buffer + index, validLength - index); } // ẅʒu̕擾B @@ -230,8 +222,6 @@ class StringBuffer { // Ԓl: // ẅʒu̕B String substring(size_t start, size_t end)const { - if (start < 0) - start = 0; if (end > validLength) end = validLength; return String(buffer + start, end - start); @@ -262,9 +252,7 @@ class StringBuffer { // Ԓl: // }ʁB StringBuffer& insert(size_t index, const char* source, size_t length) { - if (index < 0) - index = 0; - else if (index >= validLength) + if (index >= validLength) index = validLength; size_t oldLength = validLength; ensureCapacity(validLength + length); diff --git a/TTProxy/YCL/include/YCL/StringUtil.h b/TTProxy/YCL/include/YCL/StringUtil.h index b31344bba..45725e6fc 100644 --- a/TTProxy/YCL/include/YCL/StringUtil.h +++ b/TTProxy/YCL/include/YCL/StringUtil.h @@ -5,20 +5,19 @@ #ifndef _YCL_STRINGUTIL_H_ #define _YCL_STRINGUTIL_H_ -#if _MSC_VER >= 1000 #pragma once -#endif // _MSC_VER >= 1000 #include #include #include +#include namespace yebisuya { class StringUtil { private: - static int hexadecimal(char c) { + static int hexadecimal(wchar_t c) { if ('0' <= c && c <= '9') { return c - '0'; }else if ('A' <= c && c <= 'F') { @@ -29,9 +28,15 @@ class StringUtil { return -1; } } - static int octet(char c) { + static int hexadecimal(char c) { + return hexadecimal((wchar_t)c); + } + static int octet(wchar_t c) { return '0' <= c && c <= '7' ? c - '0' : -1; } + static int octet(char c) { + return octet((wchar_t)c); + } static const char* ESCAPE_CHARS() { static const char string[] = "abfnrtv"; return string; @@ -46,7 +51,7 @@ class StringUtil { return NULL; return escape(string, 0, string.length()); } - static String escape(String string, int offset, int length) { + static String escape(String string, int offset, size_t length) { if (string == NULL) return NULL; StringBuffer buffer; @@ -57,7 +62,7 @@ class StringUtil { return false; return escape(buffer, string, 0, string.length()); } - static bool escape(StringBuffer& buffer, String string, int offset, int length) { + static bool escape(StringBuffer& buffer, String string, size_t offset, size_t length) { if (string == NULL) return false; const char* start = string; @@ -66,7 +71,7 @@ class StringUtil { const char* end = start + length; while (p < end && *p != '\0') { char ch = *p; - if ('\0' < ch && ch < ' ' || ch == '\'' || ch == '"' || ch == '?' || ch == '\\') { + if (('\0' < ch && ch < ' ') || ch == '\'' || ch == '"' || ch == '?' || ch == '\\') { bool useOctet; if (ch < ' ') { useOctet = true; @@ -107,6 +112,70 @@ class StringUtil { return true; } + static WString escapeW(WString string) { + if (string == NULL) + return NULL; + return escapeW(string, 0, string.length()); + } + static WString escapeW(WString string, size_t offset, size_t length) { + if (string == NULL) + return NULL; + WStringBuffer buffer; + return escapeW(buffer, string, offset, length) ? buffer.toString() : string; + } + static bool escapeW(WStringBuffer& buffer, WString string) { + if (string == NULL) + return false; + return escapeW(buffer, string, 0, string.length()); + } + static bool escapeW(WStringBuffer& buffer, WString string, size_t offset, size_t length) { + if (string == NULL) + return false; + const wchar_t* start = string; + start += offset; + const wchar_t* p = start; + const wchar_t* end = start + length; + while (p < end && *p != '\0') { + wchar_t ch = *p; + if (('\0' < ch && ch < ' ') || ch == '\'' || ch == '"' || ch == '?' || ch == '\\') { + bool useOctet; + if (ch < ' ') { + useOctet = true; + for (int index = 0; CONTROL_CHARS()[index] != '\0'; index++) { + if (ch == CONTROL_CHARS()[index]) { + ch = ESCAPE_CHARS()[index]; + useOctet = false; + break; + } + } + }else{ + useOctet = false; + } + if (p > start) { + buffer.append(start, p - start); + } + buffer.append('\\'); + if (useOctet) { + int octet = 6; + while (octet >= 0) { + buffer.append((char) ('0' + ((ch >> octet) & 0x07))); + octet -= 3; + } + }else{ + buffer.append(ch); + } + start = ++p; + }else{ + p++; + } + } + if (start == (const wchar_t*) string) { + return false; + } + buffer.append(start); + return true; + } + static String unescape(String string) { if (string == NULL) return NULL; @@ -200,6 +269,97 @@ class StringUtil { buffer.append(start); return true; } + + static WString unescapeW(WString string) { + if (string == NULL) + return NULL; + return unescapeW(string, 0, string.length()); + } + static WString unescapeW(WString string, int offset, int length) { + if (string == NULL) + return NULL; + WStringBuffer buffer; + return unescapeW(buffer, string) ? buffer.toString() : string; + } + static bool unescapeW(WStringBuffer& buffer, WString string) { + if (string == NULL) + return false; + return unescapeW(buffer, string, 0, string.length()); + } + static bool unescapeW(WStringBuffer& buffer, WString string, size_t offset, size_t length) { + if (string == NULL) + return false; + const wchar_t* start = string; + start += offset; + const wchar_t* p = start; + const wchar_t* end = start + length; + while (p < end && *p != '\0') { + if (*p == '\\') { + if (p > start) { + buffer.append(start, p - start); + start = p; + } + wchar_t ch = '\0'; + switch (*++p) { + case '\'': + case '"': + case '\\': + case '?': + ch = *p++; + break; + case 'x': + case 'X': + { + int ch1 = hexadecimal(*++p); + if (ch1 != -1) { + int ch2 = hexadecimal(*++p); + if (ch2 != -1) { + p++; + ch = (char) (ch1 << 4 | ch2); + }else{ + ch = (char) ch1; + } + } + } + break; + case '0': case '1': case '2': case '3': + case '4': case '5': case '6': case '7': + { + ch = octet(*p); + int d = octet(*++p); + if (d != -1) { + ch = (ch << 3 | d); + d = octet(*++p); + if (d != -1) { + ch = (ch << 3 | d); + p++; + } + } + } + break; + default: + for (int index = 0; ESCAPE_CHARS()[index] != '\0'; index++) { + if (*p == ESCAPE_CHARS()[index]) { + ch = CONTROL_CHARS()[index]; + p++; + break; + } + } + } + if (ch != '\0') { + buffer.append(ch); + start = p; + } + }else{ + p++; + } + } + if (start == (const wchar_t*) string) { + return false; + } + buffer.append(start); + return true; + } }; } diff --git a/TTProxy/YCL/include/YCL/ValueCtrl.h b/TTProxy/YCL/include/YCL/ValueCtrl.h index 78fa9f05c..74bcda820 100644 --- a/TTProxy/YCL/include/YCL/ValueCtrl.h +++ b/TTProxy/YCL/include/YCL/ValueCtrl.h @@ -5,9 +5,7 @@ #ifndef _YCL_VALUECTRL_H_ #define _YCL_VALUECTRL_H_ -#if _MSC_VER >= 1000 #pragma once -#endif // _MSC_VER >= 1000 namespace yebisuya { diff --git a/TTProxy/YCL/include/YCL/Vector.h b/TTProxy/YCL/include/YCL/Vector.h index 72b2c2dbe..1d3dbbd73 100644 --- a/TTProxy/YCL/include/YCL/Vector.h +++ b/TTProxy/YCL/include/YCL/Vector.h @@ -5,9 +5,7 @@ #ifndef _YCL_VECTOR_H_ #define _YCL_VECTOR_H_ -#if _MSC_VER >= 1000 #pragma once -#endif // _MSC_VER >= 1000 #include diff --git a/TTProxy/YCL/include/YCL/WString.h b/TTProxy/YCL/include/YCL/WString.h new file mode 100644 index 000000000..54c6c9b07 --- /dev/null +++ b/TTProxy/YCL/include/YCL/WString.h @@ -0,0 +1,686 @@ +/* + * Copyright (C) 2021- TeraTerm Project + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * 3. The name of the author may not be used to endorse or promote products + * derived from this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE AUTHORS ``AS IS'' AND ANY EXPRESS OR + * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES + * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. + * IN NO EVENT SHALL THE AUTHORS BE LIABLE FOR ANY DIRECT, INDIRECT, + * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT + * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, + * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY + * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF + * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */ + +/* String.h ɍ쐬 */ + +#ifndef _YCL_WSTRING_H_ +#define _YCL_WSTRING_H_ + +#pragma once + +#include + +#include +#include + +namespace yebisuya { + +// ̊ǗEsNXB +class WString { +private: + // i[obt@B + // ̑Oɂ͎QƃJE^A + // j̍ۂɂ͂ύXB + const wchar_t* string; + + // utilities + // i[obt@쐬B + // ƎQƃJE^̗̈̕mۂB + // QƃJE^0ɂȂĂB + // : + // length ̒B + // Ԓl: + // 쐬obt@̕񕔂̃AhXB + static wchar_t* createBuffer(size_t length) { + size_t* count = (size_t*) new unsigned char[sizeof (size_t) + sizeof (wchar_t) * (length + 1)]; + *count = 0; + return (wchar_t*) (count + 1); + } + // i[obt@쐬B + // : + // source i[镶B + // Ԓl: + // 쐬obt@̕񕔂̃AhXB + static const wchar_t* create(const wchar_t* source) { + return source != NULL ? create(source, wcslen(source)) : NULL; + } + // i[obt@쐬B + // : + // source i[镶B + // length ̒B + // Ԓl: + // 쐬obt@̕񕔂̃AhXB + static const wchar_t* create(const wchar_t* source, size_t length) { + if (source != NULL) { + wchar_t* buffer = createBuffer(length); + wmemcpy(buffer, source, length); + buffer[length] = '\0'; + return buffer; + } + return NULL; + } + // ‚̕Ai[obt@쐬B + // : + // str1 A镶(O)B + // str2 A镶()B + // Ԓl: + // 쐬obt@̕񕔂̃AhXB + static const wchar_t* concat(const wchar_t* str1, const wchar_t* str2) { + size_t len1 = wcslen(str1); + size_t len2 = wcslen(str2); + wchar_t* buffer = createBuffer(len1 + len2); + wmemcpy(buffer, str1, len1); + wmemcpy(buffer + len1, str2, len2); + buffer[len1 + len2] = '\0'; + return buffer; + } + // private methods + // QƃJE^炵A0ɂȂobt@jB + void release() { + if (string != NULL) { + size_t* count = (size_t*) string - 1; + if (--*count == 0) + delete[] (unsigned char*) count; + } + } + // QƃJE^𑝂₷B + void add() { + if (string != NULL) { + size_t* count = (size_t*) string - 1; + ++*count; + } + } + // ʂ̃obt@ƒuB + // ̃obt@̎QƃJE^炵A + // Vobt@̎QƃJE^𑝂₷B + // : + // source uVobt@B + void set(const wchar_t* source) { + if (string != source) { + release(); + string = source; + add(); + } + } +public: + // constructor + // ftHgRXgN^B + // NULLĂ̂ŁÂ܂܂ŕ񑀍삷ƃANZXᔽɂȂ̂ŒӁB + WString():string(NULL) { + } + // ̕w肷RXgN^B + // : + // source ̕B + WString(const wchar_t* source):string(NULL) { + set(create(source)); + } + // ̕𒷂tŎw肷RXgN^B + // : + // source ̕B + // length ̒B + WString(const wchar_t* source, size_t length):string(NULL) { + set(create(source, length)); + } + // Rs[RXgN^B + // : + // source ̕B + WString(const WString& source):string(NULL) { + set(source.string); + } + // ‚̕ARXgN^B + // : + // str1 OɂȂ镶B + // str2 ɂȂ镶B + WString(const wchar_t* str1, const wchar_t* str2):string(NULL) { + set(concat(str1, str2)); + } + // ‚̕ARXgN^B + // : + // str1 OɂȂ镶B + // str2 ɂȂ镶B + WString(const WString& str1, const wchar_t* str2):string(NULL) { + set(*str2 != '\0' ? concat(str1.string, str2) : str1.string); + } + // destructor + // fXgN^B + // h邱Ƃ͍lĂȂ̂ʼnz֐ɂ͂ȂB + ~WString() { + release(); + } + // public methods + // ̌̕Ɏw̕AB + // : + // source A镶B + // Ԓl: + // AꂽB + WString concat(const wchar_t* source)const { + return WString(*this, source); + } + // Ƃ̔rsB + // NULLƂrłB + // : + // str r镶B + // Ԓl: + // 0Astr̕傫ΕAΐB + int compareTo(const wchar_t* str)const { + if (str == NULL) + return string == NULL ? 0 : 1; + else if (string == NULL) + return -1; + return wcscmp(string, str); + } + // Ƃ̔r啶̋ʂȂōsB + // NULLƂrłB + // : + // str r镶B + // Ԓl: + // 0Astr̕傫ΕAΐB + int compareToIgnoreCase(const wchar_t* str)const { + if (str == NULL) + return string == NULL ? 0 : 1; + else if (string == NULL) + return -1; + return _wcsicmp(string, str); + } + // Ƃ̔rsB + // NULLƂrłB + // : + // str r镶B + // Ԓl: + // ΐ^B + bool equals(const wchar_t* str)const { + return compareTo(str) == 0; + } + // Ƃ̔r啶̋ʂȂōsB + // NULLƂrłB + // : + // str r镶B + // Ԓl: + // ΐ^B + bool equalsIgnoreCase(const wchar_t* str)const { + return compareToIgnoreCase(str) == 0; + } + // w肳ꂽŎn܂Ă邩ǂ𔻒肷B + // : + // str r镶B + // Ԓl: + // w肳ꂽŎn܂Ăΐ^B + bool startsWith(const wchar_t* str)const { + return startsWith(str, 0); + } + // ẅʒuw肳ꂽŎn܂Ă邩ǂ𔻒肷B + // : + // str r镶B + // Ԓl: + // w肳ꂽŎn܂Ăΐ^B + bool startsWith(const wchar_t* str, int offset)const { + return wcsncmp(string, str, wcslen(str)) == 0; + } + // w肳ꂽŏIĂ邩ǂ𔻒肷B + // : + // str r镶B + // Ԓl: + // w肳ꂽŏIĂΐ^B + // + bool endsWith(const wchar_t* str)const { + size_t str_length = wcslen(str); + size_t string_length = length(); + if (string_length < str_length) + return false; + return wcscmp(string + string_length - str_length, str) == 0; + } + // w̕ǂ̈ʒuɂ邩TB + // : + // chr TB + // Ԓl: + // ̌‚CfbNXB‚Ȃ-1B + int indexOf(char chr)const { + return indexOf(chr, 0); + } + // w̕ǂ̈ʒuɂ邩ẅʒuTB + // : + // chr TB + // from Tn߂ʒuB + // Ԓl: + // ̌‚CfbNXB‚Ȃ-1B + int indexOf(wchar_t chr, size_t from)const { + if (from >= length()) + return -1; + const wchar_t* found = wcschr(string + from, chr); + if (found == NULL) + return -1; + return found - string; + } + // w̕񂪂ǂ̈ʒuɂ邩TB + // : + // str TB + // Ԓl: + // ̌‚CfbNXB‚Ȃ-1B + int indexOf(const wchar_t* str)const { + return indexOf(str, 0); + } + // w̕񂪂ǂ̈ʒuɂ邩ẅʒuTB + // : + // str TB + // from Tn߂ʒuB + // Ԓl: + // ̌‚CfbNXB‚Ȃ-1B + // + int indexOf(const wchar_t* str, size_t from)const { + if (from >= length()) + return -1; + const wchar_t* found = wcsstr(string + from, str); + if (found == NULL) + return -1; + return found - string; + } + // ̒ԂB + size_t length()const { + return wcslen(string); + } + // w̕ŌɌ‚ʒu擾B + // : + // chr TB + // Ԓl: + // ̌‚CfbNXB‚Ȃ-1B + int lastIndexOf(char chr)const { + return lastIndexOf(chr, (size_t) -1); + } + // w̕ẅʒuOōŌɌ‚ʒu擾B + // : + // chr TB + // from Tn߂ʒuB + // Ԓl: + // ̌‚CfbNXB‚Ȃ-1B + int lastIndexOf(wchar_t chr, size_t from)const { + size_t len = length(); + if (from > len - 1) + from = len - 1; + const wchar_t* s = string; + const wchar_t* end = string + from; + const wchar_t* found = NULL; + while (*s != '0' && s <= end) { + if (*s == chr) + found = s; + s++; + } + return found != NULL ? found - string : -1; + } + // w̕񂪍ŌɌ‚ʒu擾B + // : + // str TB + // Ԓl: + // ̌‚CfbNXB‚Ȃ-1B + int lastIndexOf(const wchar_t* str)const { + return lastIndexOf(str, (size_t) -1); + } + // w̕񂪎ẅʒuOōŌɌ‚ʒu擾B + // : + // str TB + // from Tn߂ʒuB + // Ԓl: + // ̌‚CfbNXB‚Ȃ-1B + int lastIndexOf(const wchar_t* str, size_t from)const { + size_t len = length(); + size_t str_len = wcslen(str); + if (from > len - str_len) + from = len - str_len; + const wchar_t* s = string + from; + while (s >= string) { + if (wcsncmp(s, str, str_len) == 0) + return s - string; + s--; + } + return -1; + } + // ̈ꕔoB + // : + // start o̐擪̈ʒuB + // Ԓl: + // ̈ꕔB + WString substring(int start)const { + return WString(string + start); + } + // ̈ꕔoB + // : + // start o̐擪̈ʒuB + // end ǒ̈ʒuB + // Ԓl: + // ̈ꕔB + WString substring(int start, int end)const { + return WString(string + start, end - start); + } + // ẅʒuɂ镶oB + // : + // index öʒuB + // Ԓl: + // ẅʒuɂ镶B + char charAt(size_t index)const { + return index < length() ? string[index] : '\0'; + } + // w̕w̕ɒu܂B + // : + // oldChr ̕B + // newChr u镶B + // Ԓl: + // u̕B + WString replace(char oldChr, char newChr)const { + WString result(string); + char* s = (char*) result.string; + while (*s != '\0'){ + if (WString::isLeadByte(*s)) + s++; + else if (*s == oldChr) + *s = newChr; + s++; + } + return result; + } + // 񒆂̑啶ɕϊB + // Ԓl: + // ϊ̕B + WString toLowerCase()const { + WString result(string); + char* s = (char*) result.string; + while (*s != '\0'){ + if (WString::isLeadByte(*s)) + s++; + else if ('A' <= *s && *s <= 'Z') + *s += 'a' - 'A'; + s++; + } + return result; + } + // 񒆂̏啶ɕϊB + // Ԓl: + // ϊ̕B + WString toUpperCase()const { + WString result(string); + char* s = (char*) result.string; + while (*s != '\0'){ + if (WString::isLeadByte(*s)) + s++; + else if ('a' <= *s && *s <= 'z') + *s += 'A' - 'a'; + s++; + } + return result; + } + // ̑Ő󔒕폜B + // Ԓl: + // 폜̕B + WString trim()const { + const wchar_t* s = string; + while (*s != '\0' && (unsigned char) *s <= ' ') + s++; + const wchar_t* start = s; + s = string + length(); + while (s > start && (*s != '\0' && (unsigned char) *s <= ' ')) + s--; + return WString(start, s - start); + } + + // operators + + // const char*ւ̃LXgZq + // Ԓl: + // ւ̃AhXB + operator const wchar_t*()const { + return string; + } + // charẑ悤Ɉ߂[]ZqB + // : + // index 擾镶̃CfbNXB + // Ԓl: + // w̃CfbNXɂ镶B + char operator[](size_t index)const { + return charAt(index); + } + // A邽߂+ZqB + // : + // source A镶B + // Ԓl: + // AB + WString operator+(const wchar_t* source)const { + return WString(string, source); + } + // A邽߂+ZqB + // : + // source A镶B + // Ԓl: + // AB + WString operator+(const WString& source)const { + return *string != '\0' ? WString(string, source.string) : source; + } + // A邽߂+ZqB + // : + // str1 A镶(O)B + // str2 A镶()B + // Ԓl: + // AB + friend WString operator+(const wchar_t* str1, const WString& str2) { + return *str1 != '\0' ? WString(str1, str2.string) : str2; + } + // ZqB + // : + // source 镶B + // Ԓl: + // ʁB + WString& operator=(const wchar_t* source) { + set(create(source)); + return *this; + } + // ZqB + // : + // source 镶B + // Ԓl: + // ʁB + WString& operator=(const WString& source) { + set(source.string); + return *this; + } + // Aʂ鉉ZqB + // : + // source A镶B + // Ԓl: + // AʁB + WString& operator+=(const wchar_t* source) { + if (*source != '\0') + set(concat(string, source)); + return *this; + } + // rZqB + // : + // str rΏۂ̕B + // Ԓl: + // str̕ΐ^B + bool operator==(const WString& str)const { + return compareTo(str.string) == 0; + } + // rZqB + // : + // str rΏۂ̕B + // Ԓl: + // str̕ΐ^B + bool operator==(const wchar_t* str)const { + return compareTo(str) == 0; + } + // rZqB + // : + // str1 r镶B + // str2 r镶B + // Ԓl: + // str1str2̕ΐ^B + friend bool operator==(const wchar_t* str1, const WString& str2) { + return str2.compareTo(str1) == 0; + } + // rZqB + // : + // str rΏۂ̕B + // Ԓl: + // str̕Ȃΐ^B + bool operator!=(const WString& str)const { + return compareTo(str) != 0; + } + // rZqB + // : + // str rΏۂ̕B + // Ԓl: + // str̕Ȃΐ^B + bool operator!=(const wchar_t* str)const { + return compareTo(str) != 0; + } + // rZqB + // : + // str1 r镶B + // str2 r镶B + // Ԓl: + // str1str2̕Ȃΐ^B + friend bool operator!=(const wchar_t* str1, const WString& str2) { + return str2.compareTo(str1) != 0; + } + // rZqB + // : + // str rΏۂ̕B + // Ԓl: + // str̕傫ΐ^B + bool operator<(const WString& str)const { + return compareTo(str) < 0; + } + // rZqB + // : + // str rΏۂ̕B + // Ԓl: + // str̕傫ΐ^B + bool operator<(const wchar_t* str)const { + return compareTo(str) < 0; + } + // rZqB + // : + // str1 r镶B + // str2 r镶B + // Ԓl: + // str1str2̕傫ΐ^B + friend bool operator<(const wchar_t* str1, const WString& str2) { + return str2.compareTo(str1) > 0; + } + // rZqB + // : + // str rΏۂ̕B + // Ԓl: + // str̕傫ΐ^B + bool operator<=(const WString& str)const { + return compareTo(str) <= 0; + } + // rZqB + // : + // str rΏۂ̕B + // Ԓl: + // str̕傫ΐ^B + bool operator<=(const wchar_t* str)const { + return compareTo(str) <= 0; + } + // rZqB + // : + // str1 r镶B + // str2 r镶B + // Ԓl: + // str1str2̕傫ΐ^B + friend bool operator<=(const wchar_t* str1, const WString& str2) { + return str2.compareTo(str1) >= 0; + } + // rZqB + // : + // str rΏۂ̕B + // Ԓl: + // str̕ΐ^B + bool operator>(const WString& str)const { + return compareTo(str) > 0; + } + // rZqB + // : + // str rΏۂ̕B + // Ԓl: + // str̕ΐ^B + bool operator>(const wchar_t* str)const { + return compareTo(str) > 0; + } + // rZqB + // : + // str1 r镶B + // str2 r镶B + // Ԓl: + // str1str2̕ΐ^B + friend bool operator>(const wchar_t* str1, const WString& str2) { + return str2.compareTo(str1) < 0; + } + // rZqB + // : + // str rΏۂ̕B + // Ԓl: + // str̕ΐ^B + bool operator>=(const WString& str)const { + return compareTo(str) >= 0; + } + // rZqB + // : + // str rΏۂ̕B + // Ԓl: + // str̕ΐ^B + bool operator>=(const wchar_t* str)const { + return compareTo(str) >= 0; + } + // rZqB + // : + // str1 r镶B + // str2 r镶B + // Ԓl: + // str1str2̕ΐ^B + friend bool operator>=(const wchar_t* str1, const WString& str2) { + return str2.compareTo(str1) <= 0; + } + + // public utilities + + // 2oCg̍ŏ1oCgǂ𔻒肷B + // : + // 肷oCgB + // Ԓl: + // 2oCg̍ŏ1oCgłΐ^B + static bool isLeadByte(char ch) { + #ifdef _INC_WINDOWS + return ::IsDBCSLeadByte(ch) != 0; + #else + return (ch & 0x80) != 0; + #endif + } +}; + +} + +#endif//_YCL_WSTRING_H_ diff --git a/TTProxy/YCL/include/YCL/WStringBuffer.h b/TTProxy/YCL/include/YCL/WStringBuffer.h new file mode 100644 index 000000000..f2a2845fa --- /dev/null +++ b/TTProxy/YCL/include/YCL/WStringBuffer.h @@ -0,0 +1,397 @@ +/* + * Copyright (C) 2021- TeraTerm Project + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * 3. The name of the author may not be used to endorse or promote products + * derived from this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE AUTHORS ``AS IS'' AND ANY EXPRESS OR + * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES + * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. + * IN NO EVENT SHALL THE AUTHORS BE LIABLE FOR ANY DIRECT, INDIRECT, + * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT + * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, + * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY + * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF + * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */ + +/* StringBuffer.h ɍ쐬 */ + +#ifndef _YCL_WSTRINGBUFFER_H_ +#define _YCL_WSTRINGBUFFER_H_ + +#pragma once + +#include + +#include + +#include + +namespace yebisuya { + +// •ϒ̕߂̃NXB +class WStringBuffer { +private: + // i[obt@B + wchar_t* buffer; + // ݗLȕ̒B + size_t validLength; + // obt@̑傫B + size_t bufferSize; + enum { + // obt@LۂɎgpTCYB + INIT_CAPACITY = 16, + }; + // obt@B + // : + // source B + // length ̒B + // capacity obt@̏TCYB + void init(const wchar_t* source, size_t length, size_t capacity) { + if ((capacity != 0 || length != 0) && capacity < length + INIT_CAPACITY) + capacity = length + INIT_CAPACITY; + validLength = length; + bufferSize = capacity; + if (bufferSize == 0) { + buffer = NULL; + }else{ + buffer = new wchar_t[bufferSize]; + } + if (source != NULL) { + memcpy(buffer, source, validLength); + } + memset(buffer + validLength, '\0', bufferSize - validLength); + } +public: + // ftHgRXgN^B + WStringBuffer() { + init(NULL, 0, 0); + } + // obt@̏TCYw肷RXgN^B + // : + // capacity obt@̏TCYB + WStringBuffer(size_t capacity) { + init(NULL, 0, capacity); + } + // obt@̏w肷RXgN^B + // : + // source B + WStringBuffer(const wchar_t* source) { + init(source, wcslen(source), 0); + } + // Rs[RXgN^B + // : + // source B + WStringBuffer(const WStringBuffer& source) { + init(source.buffer, source.validLength, source.bufferSize); + } + // fXgN^B + ~WStringBuffer() { + delete[] buffer; + } + + // ݗLȕ̒擾B + // Ԓl: + // Lȕ̒B + size_t length()const { + return validLength; + } + // obt@̃TCY擾B + // Ԓl: + // obt@̃TCYB + size_t capacity()const { + return bufferSize; + } + // obt@̃TCYw̒܂悤ɒ߂B + // : + // newLength ߂钷B + void ensureCapacity(size_t newLength) { + if (bufferSize < newLength) { + wchar_t* oldBuffer = buffer; + init(oldBuffer, validLength, newLength + INIT_CAPACITY); + delete[] oldBuffer; + } + } + // Lȕ񒷂ύXB + // : + // newLength V񒷁B + void setLength(size_t newLength) { + if (validLength < newLength) + ensureCapacity(newLength); + validLength = newLength; + } + // ẅʒu̕擾B + // : + // index ̈ʒuB + // Ԓl: + // ẅʒu̕B + char charAt(size_t index)const { + return index < validLength ? buffer[index] : '\0'; + } + // ẅʒu̕擾B + // : + // index ̈ʒuB + // Ԓl: + // ẅʒu̎̕QƁB + wchar_t& charAt(size_t index) { + if (index >= validLength) { + ensureCapacity(validLength + 1); + index = validLength++; + } + return buffer[index]; + } + // ẅʒu̕ύXB + // : + // index ύX镶̈ʒuB + // chr ύX镶B + void setCharAt(int index, char chr) { + charAt(index) = chr; + } + // ljB + // : + // chr lj镶B + // Ԓl: + // ljʁB + WStringBuffer& append(wchar_t chr) { + charAt(validLength) = chr; + return *this; + } + // ljB + // : + // source lj镶B + // Ԓl: + // ljʁB + WStringBuffer& append(const wchar_t* source) { + return append(source, wcslen(source)); + } + // ljB + // : + // source lj镶B + // length lj镶̒B + // Ԓl: + // ljʁB + WStringBuffer& append(const wchar_t* source, size_t length) { + size_t oldLength = validLength; + ensureCapacity(validLength + length); + memcpy(buffer + oldLength, source, length); + validLength += length; + return *this; + } + // ẅʒu̕폜B + // : + // start 폜ʒuB + // Ԓl: + // 폜ʁB + WStringBuffer& remove(size_t index) { + return remove(index, index + 1); + } + // ẅʒu̕폜B + // : + // start 폜擪ʒuB + // end 폜ÏʒuB + // Ԓl: + // 폜ʁB + WStringBuffer& remove(size_t start, size_t end) { + if (start < end) { + if (end < validLength){ + memcpy(buffer + start, buffer + end, validLength - end); + validLength -= end - start; + }else{ + validLength = start; + } + } + return *this; + } + // ẅʒu̕uB + // : + // start u擪ʒuB + // end uÏʒuB + // source u镶B + // Ԓl: + // uʁB + WStringBuffer& replace(size_t start, size_t end, const char* source) { + if (end > validLength) + end = validLength; + if (start < end) { + size_t length = strlen(source); + size_t oldLength = validLength; + ensureCapacity(validLength += length - (end - start)); + memcpy(buffer + start + length, buffer + end, oldLength - end); + memcpy(buffer + start, source, length); + } + return *this; + } + // ẅʒu̕擾B + // : + // start 擾镶̐擪ʒuB + // Ԓl: + // ẅʒu̕B + WString substring(size_t index)const { + return WString(buffer + index, validLength - index); + } + // ẅʒu̕擾B + // : + // start 擾镶̐擪ʒuB + // end 擾镶̏ÏʒuB + // Ԓl: + // ẅʒu̕B + WString substring(size_t start, size_t end)const { + if (end > validLength) + end = validLength; + return WString(buffer + start, end - start); + } + // ẅʒuɕ}B + // : + // index }ʒuB + // source }镶B + // Ԓl: + // }ʁB + WStringBuffer& insert(size_t index, char chr) { + return insert(index, &chr, 1); + } + // ẅʒuɕ}B + // : + // index }ʒuB + // source }镶B + // Ԓl: + // }ʁB + WStringBuffer& insert(size_t index, const char* source) { + return insert(index, source, strlen(source)); + } + // ẅʒuɕ}B + // : + // index }ʒuB + // source }镶B + // length ̒B + // Ԓl: + // }ʁB + WStringBuffer& insert(size_t index, const char* source, size_t length) { + if (index >= validLength) + index = validLength; + size_t oldLength = validLength; + ensureCapacity(validLength + length); + char* temp = (char*) alloca(oldLength - index); + memcpy(temp, buffer + index, oldLength - index); + memcpy(buffer + index, source, length); + memcpy(buffer + index + length, temp, oldLength - index); + validLength += length; + return *this; + } +#if 0 + // 𔽓]B + // Ԓl: + // ]ʁB + WStringBuffer& reverse() { + char* temporary = (char*) alloca(sizeof (char) * validLength); + char* dst = temporary + validLength; + wchar_t* src = buffer; + while (temporary < dst) { + if (String::isLeadByte(*src)) { + char pre = *src++; + *--dst = *src++; + *--dst = pre; + }else{ + *--dst = *src++; + } + } + memcpy(buffer, temporary, validLength); + return *this; + } +#endif + // 擾B + // Ԓl: + // ݐݒ肳Ă镶B + WString toString()const { + return WString(buffer, validLength); + } + + // ꕶ̕ɕύXB + // : + // ύXꕶB + // Ԓl: + // ύXʁB + WStringBuffer& set(char chr) { + ensureCapacity(1); + buffer[0] = chr; + validLength = 1; + return *this; + } + // w̕ɕύXB + // : + // source ύX镶B + // Ԓl: + // ύXʁB + WStringBuffer& set(const char* source) { + size_t length = strlen(source); + ensureCapacity(validLength = length); + memcpy(buffer, source, length); + return *this; + } + + // char*ɕϊLXgZqB + // obt@̃AhX擾B + // Ԓl: + // obt@̃AhXB + operator wchar_t*() { + return buffer; + } + // StringɕϊLXgZqB + // 擾B + // Ԓl: + // ݐݒ肳Ă镶B + operator WString()const { + return toString(); + } + // ZqB + // ꕶ̕ɕύXB + // : + // ch ύXꕶB + // Ԓl: + // ʁB + WStringBuffer& operator=(char ch) { + return set(ch); + } + // ZqB + // w̕ɕύXB + // : + // source ύX镶B + // Ԓl: + // ʁB + WStringBuffer& operator=(const char* source) { + return set(source); + } + // AZqB + // ljB + // : + // ch lj镶B + // Ԓl: + // ʁB + WStringBuffer& operator+=(char ch) { + return append(ch); + } + // AZqB + // ljB + // : + // source lj镶B + // Ԓl: + // ʁB + WStringBuffer& operator+=(const wchar_t* source) { + return append(source); + } +}; + +} + +#endif//_YCL_WSTRINGBUFFER_H_ diff --git a/TTProxy/YCL/include/YCL/Window.h b/TTProxy/YCL/include/YCL/Window.h index 4560fd719..3d3a9bcdc 100644 --- a/TTProxy/YCL/include/YCL/Window.h +++ b/TTProxy/YCL/include/YCL/Window.h @@ -5,13 +5,12 @@ #ifndef _YCL_WINDOWS_H_ #define _YCL_WINDOWS_H_ -#if _MSC_VER >= 1000 #pragma once -#endif // _MSC_VER >= 1000 #include #include +#include namespace yebisuya { @@ -30,31 +29,46 @@ class Window { return window; } - long GetWindowLong(int index)const { - return ::GetWindowLong(window, index); + LONG_PTR GetWindowLongPtr(int index)const { + return ::GetWindowLongPtr(window, index); } - long SetWindowLong(int index, long data) { - return ::SetWindowLong(window, index, data); + LONG_PTR SetWindowLongPtr(int index, LONG_PTR data) { + return ::SetWindowLongPtr(window, index, data); } int GetWindowTextLength()const { return ::GetWindowTextLength(window); } + int GetWindowTextLengthW()const { + return ::GetWindowTextLengthW(window); + } int GetWindowText(char* buffer, int size)const { return ::GetWindowText(window, buffer, size); } + int GetWindowTextW(wchar_t* buffer, int size)const { + return ::GetWindowTextW(window, buffer, size); + } String GetWindowText()const { int length = GetWindowTextLength(); char* buffer = (char*) alloca(length + 1); GetWindowText(buffer, length + 1); return buffer; } + WString GetWindowTextW()const { + int length = GetWindowTextLengthW(); + wchar_t* buffer = (wchar_t*) alloca(sizeof(wchar_t) * (length + 1)); + GetWindowTextW(buffer, length + 1); + return buffer; + } bool SetWindowText(const char* text) { return ::SetWindowText(window, text) != FALSE; } - long SendMessage(int message, int wparam = 0, long lparam = 0)const { + bool SetWindowTextW(const wchar_t* text) { + return ::SetWindowTextW(window, text) != FALSE; + } + LRESULT SendMessage(UINT message, WPARAM wparam = 0, LPARAM lparam = 0)const { return ::SendMessage(window, message, wparam, lparam); } - long PostMessage(int message, int wparam = 0, long lparam = 0)const { + LRESULT PostMessage(UINT message, WPARAM wparam = 0, LPARAM lparam = 0)const { return ::PostMessage(window, message, wparam, lparam); } HWND GetParent()const { @@ -63,10 +77,10 @@ class Window { bool EnableWindow(bool enabled) { return ::EnableWindow(window, enabled) != FALSE; } - long DefWindowProc(int message, int wparam, long lparam) { + LRESULT DefWindowProc(int message, int wparam, long lparam) { return ::DefWindowProc(window, message, wparam, lparam); } - long CallWindowProc(WNDPROC proc, int message, int wParam, long lParam) { + LRESULT CallWindowProc(WNDPROC proc, int message, int wParam, long lParam) { return ::CallWindowProc(proc, window, message, wParam, lParam); } bool ShowWindow(int command) { @@ -90,7 +104,7 @@ class Window { bool IsZoomed()const { return ::IsZoomed(window) != FALSE; } - int SetTimer(int id, int elapse, TIMERPROC timerProc = NULL) { + UINT_PTR SetTimer(int id, int elapse, TIMERPROC timerProc = NULL) { return ::SetTimer(window, id, elapse, timerProc); } bool KillTimer(int id) { @@ -236,11 +250,11 @@ class Window { } return MessageBox(message, top.GetWindowText(), type); } - long GetClassLong(int index)const { - return ::GetClassLong(window, index); + ULONG_PTR GetClassLongPtr(int index)const { + return ::GetClassLongPtr(window, index); } - long SetClassLong(int index, long data) { - return ::SetClassLong(window, index, data); + ULONG_PTR SetClassLongPtr(int index, LONG_PTR data) { + return ::SetClassLongPtr(window, index, data); } bool create(long exStyle, const char* classname, const char* title, long style, const RECT& rect, HWND parent, HMENU menu, void* param = NULL) { @@ -266,29 +280,29 @@ class Window { HICON setIcon(HICON icon, bool large) { return (HICON) SendMessage(WM_SETICON, large, (LPARAM) icon); } - long getStyle()const { - return GetWindowLong(GWL_STYLE); + LONG_PTR getStyle()const { + return GetWindowLongPtr(GWL_STYLE); } - long getExStyle()const { - return GetWindowLong(GWL_EXSTYLE); + LONG_PTR getExStyle()const { + return GetWindowLongPtr(GWL_EXSTYLE); } - long setStyle(long style) { - return SetWindowLong(GWL_STYLE, style); + LONG_PTR setStyle(LONG_PTR style) { + return SetWindowLongPtr(GWL_STYLE, style); } - long setExStyle(long exStyle) { - return SetWindowLong(GWL_EXSTYLE, exStyle); + LONG_PTR setExStyle(LONG_PTR exStyle) { + return SetWindowLongPtr(GWL_EXSTYLE, exStyle); } WNDPROC getWndProc()const { - return (WNDPROC) GetWindowLong(GWL_WNDPROC); + return (WNDPROC) GetWindowLongPtr(GWLP_WNDPROC); } WNDPROC setWndProc(WNDPROC proc) { - return (WNDPROC) SetWindowLong(GWL_WNDPROC, (long) proc); + return (WNDPROC) SetWindowLongPtr(GWLP_WNDPROC, (LONG_PTR) proc); } HWND getOwner()const { - return (HWND) GetWindowLong(GWL_HWNDPARENT); + return (HWND) GetWindowLongPtr(GWLP_HWNDPARENT); } HWND setOwner(HWND owner) { - return (HWND) SetWindowLong(GWL_HWNDPARENT, (long) owner); + return (HWND) SetWindowLongPtr(GWLP_HWNDPARENT, (LONG_PTR) owner); } HWND getChildWindow()const { return GetWindow(GW_CHILD); @@ -312,7 +326,7 @@ class Window { #define WS_EX_LAYERED 0x80000 #endif void setAlpha(BYTE alpha) { - long exStyle = getExStyle(); + LONG_PTR exStyle = getExStyle(); if ((exStyle & WS_EX_LAYERED) == 0) setExStyle(exStyle | WS_EX_LAYERED); SetLayeredWindowAttributes(alpha, 2); @@ -322,41 +336,40 @@ class Window { return rect; } ATOM getClassAtom()const { - return (ATOM) GetClassLong(GCW_ATOM); + return (ATOM) GetClassLongPtr(GCW_ATOM); } - long getClassExtra()const { - return GetClassLong(GCL_CBCLSEXTRA); + LONG_PTR getClassExtra()const { + return GetClassLongPtr(GCL_CBCLSEXTRA); } - long getWindowExtra()const { - return GetClassLong(GCL_CBWNDEXTRA); + LONG_PTR getWindowExtra()const { + return GetClassLongPtr(GCL_CBWNDEXTRA); } HBRUSH getBackgroundBrush()const { - return (HBRUSH) GetClassLong(GCL_HBRBACKGROUND); + return (HBRUSH) GetClassLongPtr(GCLP_HBRBACKGROUND); } HCURSOR getClassCursor()const { - return (HCURSOR) GetClassLong(GCL_HCURSOR); + return (HCURSOR) GetClassLongPtr(GCLP_HCURSOR); } HICON getClassIcon()const { - return (HICON) GetClassLong(GCL_HICON); + return (HICON) GetClassLongPtr(GCLP_HICON); } HICON getClassSmallIcon()const { - return (HICON) GetClassLong(GCL_HICONSM); + return (HICON) GetClassLongPtr(GCLP_HICONSM); } HINSTANCE getClassInstance()const { - return (HINSTANCE) GetClassLong(GCL_HMODULE); + return (HINSTANCE) GetClassLongPtr(GCLP_HMODULE); } - int getMenuResourceId()const { - return GetClassLong(GCL_MENUNAME); + LONG_PTR getMenuResourceId()const { + return GetClassLongPtr(GCLP_MENUNAME); } - int getClassStyle()const { - return GetClassLong(GCL_STYLE); + LONG_PTR getClassStyle()const { + return GetClassLongPtr(GCL_STYLE); } WNDPROC getClassWindowProc()const { - return (WNDPROC) GetClassLong(GCL_WNDPROC); + return (WNDPROC) GetClassLongPtr(GCLP_WNDPROC); } }; -#pragma comment(lib, "user32.lib") } #endif//_YCL_WINDOWS_H_ diff --git a/TTProxy/YCL/include/YCL/common.h b/TTProxy/YCL/include/YCL/common.h index c29f8ce35..cbe1b8fdc 100644 --- a/TTProxy/YCL/include/YCL/common.h +++ b/TTProxy/YCL/include/YCL/common.h @@ -5,9 +5,7 @@ #ifndef _YCL_COMMON_H_ #define _YCL_COMMON_H_ -#if _MSC_VER >= 1000 #pragma once -#endif // _MSC_VER >= 1000 #ifndef STRICT #define STRICT @@ -16,6 +14,7 @@ #include #include #include +#include #ifndef countof #define countof(a) (sizeof (a) / sizeof (a)[0]) @@ -72,24 +71,13 @@ inline bool YclAssert(bool condition, const char* message) { return false; } -#define YCLASSERT(condition, message) if (YclAssert(condition, message)) {__asm { int 3 }} -#define YCLVERIFY(condition, message) if (YclAssert(condition, message)) {__asm { int 3 }} +#define YCLASSERT(condition, message) if (YclAssert(condition, message)) {__debugbreak();} +#define YCLVERIFY(condition, message) if (YclAssert(condition, message)) {__debugbreak();} -#ifdef __cplusplus -extern "C" { -#endif//__cplusplus -void* _malloc_dbg(size_t length, const char* filename, int lineno); -void* _realloc_dbg(void* pointer, size_t length, const char* filename, int lineno); -void* _calloc_dbg(size_t num, size_t size, const char* filename, int lineno); -void _free_dbg(void* pointer, const char* filename, int lineno); -#ifdef __cplusplus -} -#endif//__cplusplus - -#define malloc(l) _malloc_dbg((l), __FILE__, __LINE__) -#define realloc(p, l) _realloc_dbg((p), (l), __FILE__, __LINE__) -#define calloc(c, s) _calloc_dbg((c), (s), __FILE__, __LINE__) -#define free(p) _free_dbg((p), __FILE__, __LINE__) +#define malloc(l) _malloc_dbg((l), _NORMAL_BLOCK, __FILE__, __LINE__) +#define realloc(p, l) _realloc_dbg((p), (l), _NORMAL_BLOCK, __FILE__, __LINE__) +#define calloc(c, s) _calloc_dbg((c), (s), _NORMAL_BLOCK, __FILE__, __LINE__) +#define free(p) _free_dbg((p), _NORMAL_BLOCK) //} #else diff --git a/TTXAdditional/CMakeLists_sample.txt b/TTXAdditional/CMakeLists_sample.txt new file mode 100644 index 000000000..6b88a270e --- /dev/null +++ b/TTXAdditional/CMakeLists_sample.txt @@ -0,0 +1,51 @@ +set(PACKAGE_NAME "TTXtest2") + +project(${PACKAGE_NAME}) + +add_library( + ${PACKAGE_NAME} SHARED + ../TTXSamples/ttxtest/ttxtest.c + ) + +if(SUPPORT_OLD_WINDOWS) + target_link_libraries( + ${PACKAGE_NAME} + PRIVATE + layer_for_unicode + ) + if(MSVC) + target_sources( + ${PACKAGE_NAME} + PRIVATE + ../teraterm/common/compat_w95_vs2005.c + ) + endif() + if(MINGW) + target_sources( + ${PACKAGE_NAME} + PRIVATE + ../teraterm/libmingw/tlssup.c + ) + endif() +endif(SUPPORT_OLD_WINDOWS) + +set_target_properties( + ${PACKAGE_NAME} + PROPERTIES + PREFIX "" + RUNTIME_OUTPUT_DIRECTORY "${CMAKE_BINARY_DIR}/" + ) + +target_include_directories( + ${PACKAGE_NAME} + PRIVATE + ../teraterm/teraterm + ) + +target_link_libraries( + ${PACKAGE_NAME} + PRIVATE + common_static + ) + +set_target_properties(${PACKAGE_NAME} PROPERTIES FOLDER TTXAdditional) diff --git a/TTXAdditional/REAME.md b/TTXAdditional/REAME.md new file mode 100644 index 000000000..c63f8e8c6 --- /dev/null +++ b/TTXAdditional/REAME.md @@ -0,0 +1,4 @@ +# 追加プラグインフォルダ + +- cmakeビルドでのみ有効 +- このフォルダに CMakeLists.txt を置くと自動的にビルドされる diff --git a/TTXKanjiMenu/CMakeLists.txt b/TTXKanjiMenu/CMakeLists.txt new file mode 100644 index 000000000..4cc9faea0 --- /dev/null +++ b/TTXKanjiMenu/CMakeLists.txt @@ -0,0 +1,61 @@ +set(PACKAGE_NAME "ttxkanjimenu") + +project(${PACKAGE_NAME}) + +add_library( + ${PACKAGE_NAME} SHARED + resource.h + ttxkanjimenu.c + ttxkanjimenu.rc + ) + +if(SUPPORT_OLD_WINDOWS) + target_link_libraries( + ${PACKAGE_NAME} + PRIVATE + layer_for_unicode + ) + if(MSVC) + target_sources( + ${PACKAGE_NAME} + PRIVATE + ../../teraterm/common/compat_w95_vs2005.c + ) + endif() + if(MINGW) + target_link_libraries( + ${PACKAGE_NAME} + PRIVATE + -Wl,--whole-archive + mingw_msvcrt + mingw_dll_tls + -Wl,--no-whole-archive + ) + endif() +endif(SUPPORT_OLD_WINDOWS) + +set_target_properties( + ${PACKAGE_NAME} + PROPERTIES + PREFIX "" + RUNTIME_OUTPUT_DIRECTORY "${CMAKE_BINARY_DIR}/" + ) + +target_include_directories( + ${PACKAGE_NAME} + PRIVATE + ../teraterm/teraterm + ) + +target_link_libraries( + ${PACKAGE_NAME} + PRIVATE + ttpcmn + common_static + ) + +install( + TARGETS ${PACKAGE_NAME} + RUNTIME + DESTINATION . + ) diff --git a/TTXKanjiMenu/ttxkanjimenu.c b/TTXKanjiMenu/ttxkanjimenu.c index 85a25a5d2..49c038410 100644 --- a/TTXKanjiMenu/ttxkanjimenu.c +++ b/TTXKanjiMenu/ttxkanjimenu.c @@ -1,44 +1,88 @@ /* * TTX KanjiMenu Plugin * Copyright (C) 2007 Sunao HARA (naoh@nagoya-u.jp) - * (C) 2007-2009 TeraTerm Project + * (C) 2007- TeraTerm Project */ //// ORIGINAL SOURCE CODE: ttxtest.c /* Tera Term extension mechanism Robert O'Callahan (roc+tt@cs.cmu.edu) - + Tera Term by Takashi Teranishi (teranishi@rikaxp.riken.go.jp) */ +#include +#include +#include +#include + #include "teraterm.h" #include "tttypes.h" +#include "tttypes_charset.h" #include "ttplugin.h" #include "tt_res.h" #include "i18n.h" - -#include -#include -#include - -#include "compat_w95.h" +#include "inifile_com.h" #define IniSection "TTXKanjiMenu" #define ORDER 5000 -#define UpdateRecvMenu(val) \ - CheckMenuRadioItem(pvar->hmEncode, \ - ID_MI_KANJIRECV + IdSJIS, \ - ID_MI_KANJIRECV + ((pvar->ts->Language==IdJapanese)?IdUTF8m:IdUTF8), \ - ID_MI_KANJIRECV + (val), \ - MF_BYCOMMAND) -#define UpdateSendMenu(val) \ - CheckMenuRadioItem(pvar->hmEncode, \ - ID_MI_KANJISEND + IdSJIS, \ - ID_MI_KANJISEND + IdUTF8, \ - ID_MI_KANJISEND + (val), \ - MF_BYCOMMAND) +#define ID_MI_KANJIRECV 54010 // M/ +#define ID_MI_KANJISEND 54110 // M +#define ID_MI_USEONESETTING 54200 // Use one setting + +// j[ږ̏ +typedef struct { + UINT id; // j[ID + ULONG_PTR data; // f[^ + const wchar_t *default_text; // eLXg + const char *key; // L[ +} MenuInfo; + +// ʊR[h ({) +static const MenuInfo MenuNameRecvJ[] = { + { ID_MI_KANJIRECV + 0, IdSJIS, L"Recv: &Shift_JIS", "MENU_RECV_SJIS" }, + { ID_MI_KANJIRECV + 1, IdEUC, L"Recv: &EUC-JP", "MENU_RECV_EUCJP" }, + { ID_MI_KANJIRECV + 2, IdJIS, L"Recv: &JIS", "MENU_RECV_JIS" }, + { ID_MI_KANJIRECV + 3, IdUTF8, L"Recv: &UTF-8", "MENU_RECV_UTF8" }, + { 0, 0, NULL, NULL }, + { ID_MI_KANJISEND + 0, IdSJIS, L"Send: S&hift_JIS", "MENU_SEND_SJIS" }, + { ID_MI_KANJISEND + 1, IdEUC, L"Send: EU&C-JP", "MENU_SEND_EUCJP" }, + { ID_MI_KANJISEND + 2, IdJIS, L"Send: J&IS", "MENU_SEND_JIS" }, + { ID_MI_KANJISEND + 3, IdUTF8, L"Send: U&TF-8", "MENU_SEND_UTF8" }, + { 0, 0, NULL, NULL }, + { ID_MI_USEONESETTING, 0, L"Use &one setting", "MENU_USE_ONE_SETTING" }, +}; + +// 󓯊R[h ({) +static const MenuInfo MenuNameOneJ[] = { + { ID_MI_KANJIRECV + 0, IdSJIS, L"Recv/Send: &Shift_JIS", "MENU_SJIS" }, + { ID_MI_KANJIRECV + 1, IdEUC, L"Recv/Send: &EUC-JP", "MENU_EUCJP" }, + { ID_MI_KANJIRECV + 2, IdJIS, L"Recv/Send: &JIS", "MENU_JIS" }, + { ID_MI_KANJIRECV + 3, IdUTF8, L"Recv/Send: &UTF-8", "MENU_UTF8" }, + { 0, 0, NULL, NULL }, + { ID_MI_USEONESETTING, 0, L"Use &one setting", "MENU_USE_ONE_SETTING" }, +}; + +// ʊR[h (؍) +static const MenuInfo MenuNameRecvK[] = { + { ID_MI_KANJIRECV + 0, IdKoreanCP949, L"Recv: &KS5601", "MENU_RECV_KS5601" }, + { ID_MI_KANJIRECV + 1, IdUTF8, L"Recv: &UTF-8", "MENU_RECV_UTF8" }, + { 0, 0, NULL, NULL }, + { ID_MI_KANJISEND + 0, IdKoreanCP949, L"Send: K&S5601", "MENU_SEND_KS5601" }, + { ID_MI_KANJISEND + 1, IdUTF8, L"Send: U&TF-8", "MENU_SEND_UTF8" }, + { 0, 0, NULL, NULL }, + { ID_MI_USEONESETTING, 0, L"Use &one setting", "MENU_USE_ONE_SETTING" }, +}; + +// 󓯊R[h (؍) +static const MenuInfo MenuNameOneK[] = { + { ID_MI_KANJIRECV + 0, IdKoreanCP949, L"Recv/Send: &KS5601", "MENU_KS5601" }, + { ID_MI_KANJIRECV + 1, IdUTF8, L"Recv/Send: &UTF-8", "MENU_UTF8" }, + { 0, 0, NULL, NULL }, + { ID_MI_USEONESETTING, 0, L"Use &one setting", "MENU_USE_ONE_SETTING" }, +}; static HANDLE hInst; /* Instance handle of TTX*.DLL */ @@ -51,6 +95,8 @@ typedef struct { PWriteIniFile origWriteIniFile; BOOL UseOneSetting; BOOL NeedResetCharSet; + const MenuInfo *menu_info_ptr; + size_t menu_info_count; } TInstVar; static TInstVar *pvar; @@ -58,8 +104,120 @@ static TInstVar *pvar; /* WIN32 allows multiple instances of a DLL */ static TInstVar InstVar; +/** + * j[쐬 + */ +static void CreateMenuInfo(HMENU hMenu, const MenuInfo *infos, size_t count, + const wchar_t *UILanguageFile, const char *section) +{ + size_t i; + for (i = 0; i < count; i++) { + const MenuInfo *p = &infos[i]; + + if (p->id != 0) { + const char *key = p->key; + const wchar_t *def_text = p->default_text; + + wchar_t *uimsg; + GetI18nStrWW(section, key, def_text, UILanguageFile, &uimsg); + + MENUITEMINFOW mi = {0}; + mi.cbSize = sizeof(mi); + mi.fMask = MIIM_ID | MIIM_TYPE | MIIM_DATA; + mi.fType = MFT_STRING; + mi.wID = p->id; + mi.dwTypeData = uimsg; + mi.dwItemData = p->data; + InsertMenuItemW(hMenu, ID_HELPMENU, FALSE, &mi); + free(uimsg); + } + else { + AppendMenuA(hMenu, MF_SEPARATOR, 0, NULL); + } + } +} + +/** + * hMenũj[ڂׂč폜 + */ +static void DeleteMenus(HMENU hMenu) +{ + // counťj[폜Ƃׂď + size_t i; + for (i = 0; i < 100; i++) { + // ԏ̍ڂ폜 + BOOL r = DeleteMenu(hMenu, 0, MF_BYPOSITION); + if (r == FALSE) { + // s = ׂĂ̍ڂ폜 + return; + } + } +} + +static void CheckMenu(HMENU hMenu, const MenuInfo *info_ptr, size_t info_count, BOOL send, int code) +{ + int start = 0; + int end = 0; + size_t i; + + for (i = 0; i < info_count; i++) { + const MenuInfo *p = &info_ptr[i]; + const int id = p->id; + if ((send == FALSE && (ID_MI_KANJIRECV <= id && id < ID_MI_KANJISEND)) || + (send == TRUE && (ID_MI_KANJISEND <= id && id < ID_MI_USEONESETTING))) { + start = p->id; + break; + } + } + + i = info_count; + do { + i--; + const MenuInfo *p = &info_ptr[i]; + const int id = p->id; + if ((send == FALSE && (ID_MI_KANJIRECV <= id && id < ID_MI_KANJISEND)) || + (send == TRUE && (ID_MI_KANJISEND <= id && id < ID_MI_USEONESETTING))) { + end = p->id; + break; + } + } while (i > 0); + + int target_id = 0; + for (i = 0; i < info_count; i++) { + const MenuInfo *p = &info_ptr[i]; + const int id = p->id; + if ((send == FALSE && (ID_MI_KANJIRECV <= id && id < ID_MI_KANJISEND)) || + (send == TRUE && (ID_MI_KANJISEND <= id && id < ID_MI_USEONESETTING))) { + if (p->data == code) { + target_id = id; + break; + } + } + } + + CheckMenuRadioItem(hMenu, start, end, target_id, MF_BYCOMMAND); +} + +/** + * M/̃`FbN + */ +static int UpdateRecvMenu(int val) +{ + CheckMenu(pvar->hmEncode, pvar->menu_info_ptr, pvar->menu_info_count, FALSE, val); + return 1; +} + +/** + * M̃`FbN + */ +static int UpdateSendMenu(int val) +{ + CheckMenu(pvar->hmEncode, pvar->menu_info_ptr, pvar->menu_info_count, TRUE, val); + return 1; +} + /* - * This function is called when Tera Term starts up. + * */ static void PASCAL TTXInit(PTTSet ts, PComVar cv) { pvar->ts = ts; @@ -70,6 +228,11 @@ static void PASCAL TTXInit(PTTSet ts, PComVar cv) { pvar->NeedResetCharSet = FALSE; } +/* + * [ݒ_CAÕtbN֐1: UseOneSetting p + * + * MƎM̊R[hݒ肪ɂȂ悤ɒB + */ static BOOL PASCAL TTXKanjiMenuSetupTerminal(HWND parent, PTTSet ts) { WORD orgRecvCode, orgSendCode; BOOL ret; @@ -82,76 +245,92 @@ static BOOL PASCAL TTXKanjiMenuSetupTerminal(HWND parent, PTTSet ts) { if (ret) { if (orgRecvCode == pvar->ts->KanjiCode && orgSendCode != pvar->ts->KanjiCodeSend) { // MR[ĥݕύXꍇ͑MR[hɍ킹 - // AM:UTF-8 && M:UTF-8m ̏ꍇ͑ΏۊO - if (pvar->ts->KanjiCodeSend != IdUTF8 || pvar->ts->KanjiCode != IdUTF8m) { - pvar->ts->KanjiCode = pvar->ts->KanjiCodeSend; - } + pvar->ts->KanjiCode = pvar->ts->KanjiCodeSend; } else { // ȊO͎MR[hɍ킹 - if (pvar->ts->KanjiCode == IdUTF8m) { - pvar->ts->KanjiCodeSend = IdUTF8; - } - else { - pvar->ts->KanjiCodeSend = pvar->ts->KanjiCode; - } + pvar->ts->KanjiCodeSend = pvar->ts->KanjiCode; } } return ret; } +/* + * [ݒ_CAÕtbN֐2: ԃZbgp + * + * [ݒ_CAOtbNAݒ_CAOJ TRUE Ԃɂ + * ݒ_CAOďǒ㏈݂̂𗘗pB + */ static BOOL PASCAL ResetCharSet(HWND parent, PTTSet ts) { + (void)parent; + (void)ts; pvar->NeedResetCharSet = FALSE; return TRUE; } static void PASCAL TTXGetUIHooks(TTXUIHooks *hooks) { if (pvar->NeedResetCharSet) { + // ԃZbgׂ̈ɌĂяoꂽꍇ *hooks->SetupTerminal = ResetCharSet; } else if (pvar->UseOneSetting && (pvar->ts->Language == IdJapanese || pvar->ts->Language == IdKorean)) { + // UseOneSetting TRUE ̎͒[ݒ_CAǑ㏈ׂ̈ɃtbN pvar->origSetupTermDlg = *hooks->SetupTerminal; *hooks->SetupTerminal = TTXKanjiMenuSetupTerminal; } } -static void PASCAL TTXKanjiMenuReadIniFile(PCHAR fn, PTTSet ts) { +/* + * R[h֘A̓Ԃ̃Zbg + * TTXTera Term̓Ԃ𒼐ڂȂׁA[ݒ_CAǑ㏈𗘗pB + */ +static void CallResetCharSet(HWND hWin){ + pvar->NeedResetCharSet = TRUE; + SendMessage(hWin, WM_COMMAND, MAKELONG(ID_SETUP_TERMINAL, 0), 0); +} + +/* + * ݒ̓ǂݍ + */ +static void PASCAL TTXKanjiMenuReadIniFile(const wchar_t *fn, PTTSet ts) { char buff[20]; /* Call original ReadIniFile */ pvar->origReadIniFile(fn, ts); - GetPrivateProfileString(IniSection, "UseOneSetting", "on", buff, sizeof(buff), fn); + GetPrivateProfileStringAFileW(IniSection, "UseOneSetting", "on", buff, sizeof(buff), fn); if (_stricmp(buff, "off") == 0) { pvar->UseOneSetting = FALSE; } else { pvar->UseOneSetting = TRUE; - if (pvar->ts->Language == IdJapanese) { - if (pvar->ts->KanjiCode == IdUTF8m) { - pvar->ts->KanjiCodeSend = IdUTF8; - } - else { - pvar->ts->KanjiCodeSend = pvar->ts->KanjiCode; - } - } - else if (pvar->ts->Language == IdKorean) { + // UseOneSetting on ̏ꍇ́AMݒ肪ɂȂ悤ɒ + switch (pvar->ts->Language){ + case IdJapanese: + case IdKorean: pvar->ts->KanjiCodeSend = pvar->ts->KanjiCode; + break; } } return; } -static void PASCAL TTXKanjiMenuWriteIniFile(PCHAR fn, PTTSet ts) { +/* + * ݒ̕ۑ + */ +static void PASCAL TTXKanjiMenuWriteIniFile(const wchar_t *fn, PTTSet ts) { /* Call original WriteIniFile */ pvar->origWriteIniFile(fn, ts); - WritePrivateProfileString(IniSection, "UseOneSetting", pvar->UseOneSetting?"on":"off", fn); + WritePrivateProfileStringAFileW(IniSection, "UseOneSetting", pvar->UseOneSetting?"on":"off", fn); return; } +/* + * ݒ̓ǂݏtbN + */ static void PASCAL TTXGetSetupHooks(TTXSetupHooks *hooks) { pvar->origReadIniFile = *hooks->ReadIniFile; *hooks->ReadIniFile = TTXKanjiMenuReadIniFile; @@ -159,288 +338,164 @@ static void PASCAL TTXGetSetupHooks(TTXSetupHooks *hooks) { *hooks->WriteIniFile = TTXKanjiMenuWriteIniFile; } -// #define ID_MI_KANJIMASK 0xFF00 -#define ID_MI_KANJIRECV 54009 -#define ID_MI_KANJISEND 54109 -#define ID_MI_USEONESETTING 54200 - -static void PASCAL InsertSendKcodeMenu(HMENU menu) { - UINT flag = MF_BYPOSITION | MF_STRING | MF_CHECKED; - - if (pvar->ts->Language == IdJapanese) { - InsertMenu(menu, 5, MF_BYPOSITION | MF_SEPARATOR, 0, NULL); - - GetI18nStr(IniSection, "MENU_SEND_SJIS", pvar->ts->UIMsg, sizeof(pvar->ts->UIMsg), - "Send: S&hift_JIS", pvar->ts->UILanguageFile); - InsertMenu(menu, 6, flag, ID_MI_KANJISEND+IdSJIS, pvar->ts->UIMsg); - GetI18nStr(IniSection, "MENU_SEND_EUCJP", pvar->ts->UIMsg, sizeof(pvar->ts->UIMsg), - "Send: EU&C-JP", pvar->ts->UILanguageFile); - InsertMenu(menu, 7, flag, ID_MI_KANJISEND+IdEUC, pvar->ts->UIMsg); - GetI18nStr(IniSection, "MENU_SEND_JIS", pvar->ts->UIMsg, sizeof(pvar->ts->UIMsg), - "Send: J&IS", pvar->ts->UILanguageFile); - InsertMenu(menu, 8, flag, ID_MI_KANJISEND+IdJIS, pvar->ts->UIMsg); - GetI18nStr(IniSection, "MENU_SEND_UTF8", pvar->ts->UIMsg, sizeof(pvar->ts->UIMsg), - "Send: U&TF-8", pvar->ts->UILanguageFile); - InsertMenu(menu, 9, flag, ID_MI_KANJISEND+IdUTF8, pvar->ts->UIMsg); - } - else { // IdKorean - InsertMenu(menu, 2, MF_BYPOSITION | MF_SEPARATOR, 0, NULL); - - GetI18nStr(IniSection, "MENU_SEND_KS5601", pvar->ts->UIMsg, sizeof(pvar->ts->UIMsg), - "Send: K&S5601", pvar->ts->UILanguageFile); - InsertMenu(menu, 3, flag, ID_MI_KANJISEND+IdSJIS, pvar->ts->UIMsg); - - GetI18nStr(IniSection, "MENU_SEND_UTF8", pvar->ts->UIMsg, sizeof(pvar->ts->UIMsg), - "Send: U&TF-8", pvar->ts->UILanguageFile); - InsertMenu(menu, 4, flag, ID_MI_KANJISEND+IdUTF8, pvar->ts->UIMsg); - } -} - -static void PASCAL DeleteSendKcodeMenu(HMENU menu) { - if (pvar->ts->Language == IdJapanese) { - DeleteMenu(menu, 5, MF_BYPOSITION); - DeleteMenu(menu, 5, MF_BYPOSITION); - DeleteMenu(menu, 5, MF_BYPOSITION); - DeleteMenu(menu, 5, MF_BYPOSITION); - DeleteMenu(menu, 5, MF_BYPOSITION); - } - else { // IdKorean - DeleteMenu(menu, 3, MF_BYPOSITION); - DeleteMenu(menu, 3, MF_BYPOSITION); - DeleteMenu(menu, 3, MF_BYPOSITION); - } -} - -static void PASCAL UpdateRecvMenuCaption(HMENU menu, BOOL UseOneSetting) { - if (UseOneSetting) { - if (pvar->ts->Language == IdJapanese) { - GetI18nStr(IniSection, "MENU_SJIS", pvar->ts->UIMsg, sizeof(pvar->ts->UIMsg), - "Recv/Send: &Shift_JIS", pvar->ts->UILanguageFile); - ModifyMenu(menu, ID_MI_KANJIRECV+IdSJIS, MF_BYCOMMAND, ID_MI_KANJIRECV+IdSJIS, - pvar->ts->UIMsg); - GetI18nStr(IniSection, "MENU_EUCJP", pvar->ts->UIMsg, sizeof(pvar->ts->UIMsg), - "Recv/Send: &EUC-JP", pvar->ts->UILanguageFile); - ModifyMenu(menu, ID_MI_KANJIRECV+IdEUC, MF_BYCOMMAND, ID_MI_KANJIRECV+IdEUC, - pvar->ts->UIMsg); - GetI18nStr(IniSection, "MENU_JIS", pvar->ts->UIMsg, sizeof(pvar->ts->UIMsg), - "Recv/Send: &JIS", pvar->ts->UILanguageFile); - ModifyMenu(menu, ID_MI_KANJIRECV+IdJIS, MF_BYCOMMAND, ID_MI_KANJIRECV+IdJIS, - pvar->ts->UIMsg); - GetI18nStr(IniSection, "MENU_UTF8", pvar->ts->UIMsg, sizeof(pvar->ts->UIMsg), - "Recv/Send: &UTF-8", pvar->ts->UILanguageFile); - ModifyMenu(menu, ID_MI_KANJIRECV+IdUTF8, MF_BYCOMMAND, ID_MI_KANJIRECV+IdUTF8, - pvar->ts->UIMsg); - GetI18nStr(IniSection, "MENU_UTF8m", pvar->ts->UIMsg, sizeof(pvar->ts->UIMsg), - "Recv: UTF-8&m/Send: UTF-8", pvar->ts->UILanguageFile); - ModifyMenu(menu, ID_MI_KANJIRECV+IdUTF8m, MF_BYCOMMAND, ID_MI_KANJIRECV+IdUTF8m, - pvar->ts->UIMsg); +/* + * j[ڂ̍XV + * + * ȉ̓‚ɂ‚ăj[ڂXVB + * 1. UseOneSetting ̐ݒɊÂāAMpj[ڂMp/Mp̐؂ւs + * 2. j[ڂ̍ۉs + * + * ʏ 1 Őݒ肵ږ 2 ŏ㏑XV邪Alng t@Cݒ肳ĂȂA + * ܂ lng t@CɃj[ږ܂܂ĂȂꍇւ̑ΉƂ 1 sĂB + */ +static void UpdateMenu(HMENU menu, BOOL UseOneSetting) +{ + const MenuInfo *menu_info_ptr; + size_t menu_info_count; + + switch (pvar->ts->Language) { + case IdJapanese: + if (UseOneSetting) { + menu_info_ptr = MenuNameOneJ; + menu_info_count = _countof(MenuNameOneJ); } - else { // IdKorean - GetI18nStr(IniSection, "MENU_KS5601", pvar->ts->UIMsg, sizeof(pvar->ts->UIMsg), - "Recv/Send: &KS5601", pvar->ts->UILanguageFile); - ModifyMenu(menu, ID_MI_KANJIRECV+IdSJIS, MF_BYCOMMAND, ID_MI_KANJIRECV+IdSJIS, - pvar->ts->UIMsg); - GetI18nStr(IniSection, "MENU_UTF8", pvar->ts->UIMsg, sizeof(pvar->ts->UIMsg), - "Recv/Send: &UTF-8", pvar->ts->UILanguageFile); - ModifyMenu(menu, ID_MI_KANJIRECV+IdUTF8, MF_BYCOMMAND, ID_MI_KANJIRECV+IdUTF8, - pvar->ts->UIMsg); + else { + menu_info_ptr = MenuNameRecvJ; + menu_info_count = _countof(MenuNameRecvJ); } - } - else { - if (pvar->ts->Language == IdJapanese) { - GetI18nStr(IniSection, "MENU_RECV_SJIS", pvar->ts->UIMsg, sizeof(pvar->ts->UIMsg), - "Recv: &Shift_JIS", pvar->ts->UILanguageFile); - ModifyMenu(menu, ID_MI_KANJIRECV+IdSJIS, MF_BYCOMMAND, ID_MI_KANJIRECV+IdSJIS, - pvar->ts->UIMsg); - GetI18nStr(IniSection, "MENU_RECV_EUCJP", pvar->ts->UIMsg, sizeof(pvar->ts->UIMsg), - "Recv: &EUC-JP", pvar->ts->UILanguageFile); - ModifyMenu(menu, ID_MI_KANJIRECV+IdEUC, MF_BYCOMMAND, ID_MI_KANJIRECV+IdEUC, - pvar->ts->UIMsg); - GetI18nStr(IniSection, "MENU_RECV_JIS", pvar->ts->UIMsg, sizeof(pvar->ts->UIMsg), - "Recv: &JIS", pvar->ts->UILanguageFile); - ModifyMenu(menu, ID_MI_KANJIRECV+IdJIS, MF_BYCOMMAND, ID_MI_KANJIRECV+IdJIS, - pvar->ts->UIMsg); - GetI18nStr(IniSection, "MENU_RECV_UTF8", pvar->ts->UIMsg, sizeof(pvar->ts->UIMsg), - "Recv: &UTF-8", pvar->ts->UILanguageFile); - ModifyMenu(menu, ID_MI_KANJIRECV+IdUTF8, MF_BYCOMMAND, ID_MI_KANJIRECV+IdUTF8, - pvar->ts->UIMsg); - GetI18nStr(IniSection, "MENU_RECV_UTF8m", pvar->ts->UIMsg, sizeof(pvar->ts->UIMsg), - "Recv: UTF-8&m", pvar->ts->UILanguageFile); - ModifyMenu(menu, ID_MI_KANJIRECV+IdUTF8m, MF_BYCOMMAND, ID_MI_KANJIRECV+IdUTF8m, - pvar->ts->UIMsg); + break; + case IdKorean: + if (UseOneSetting) { + menu_info_ptr = MenuNameOneK; + menu_info_count = _countof(MenuNameOneK); } - else { // IdKorean - GetI18nStr(IniSection, "MENU_RECV_KS5601", pvar->ts->UIMsg, sizeof(pvar->ts->UIMsg), - "Recv: &KS5601", pvar->ts->UILanguageFile); - ModifyMenu(menu, ID_MI_KANJIRECV+IdSJIS, MF_BYCOMMAND, ID_MI_KANJIRECV+IdSJIS, - pvar->ts->UIMsg); - GetI18nStr(IniSection, "MENU_RECV_UTF8", pvar->ts->UIMsg, sizeof(pvar->ts->UIMsg), - "Recv: &UTF-8", pvar->ts->UILanguageFile); - ModifyMenu(menu, ID_MI_KANJIRECV+IdUTF8, MF_BYCOMMAND, ID_MI_KANJIRECV+IdUTF8, - pvar->ts->UIMsg); + else { + menu_info_ptr = MenuNameRecvK; + menu_info_count = _countof(MenuNameRecvK); } + break; + default: + assert(FALSE); + return; } + + pvar->menu_info_ptr = menu_info_ptr; + pvar->menu_info_count = menu_info_count; + + CreateMenuInfo(menu, menu_info_ptr, menu_info_count, pvar->ts->UILanguageFileW, IniSection); } /* * This function is called when Tera Term creates a new menu. */ -static void PASCAL TTXModifyMenu(HMENU menu) { - UINT flag = MF_ENABLED; - - // ꂪ{̂Ƃ̂݃j[ɒlj悤ɂB (2007.7.14 maya) +static void PASCAL TTXModifyMenu(HMENU menu) +{ + MENUITEMINFOW mi = {0}; + wchar_t *uimsg; + // ꂪ{܂͊؍̎̂݃j[ɒlj if (pvar->ts->Language != IdJapanese && pvar->ts->Language != IdKorean) { return; } - { - MENUITEMINFO mi; - - pvar->hmEncode = CreateMenu(); + pvar->hmEncode = CreateMenu(); - // Windows 95 Ńj[\Ȃ̂Ńo[W`FbN (2009.2.18 maya) - if (IsWindows2000OrLater()) { - memset(&mi, 0, sizeof(MENUITEMINFO)); - mi.cbSize = sizeof(MENUITEMINFO); - } - else { - memset(&mi, 0, sizeof(MENUITEMINFO)-sizeof(HBITMAP)); - mi.cbSize = sizeof(MENUITEMINFO)-sizeof(HBITMAP); - } - mi.fMask = MIIM_TYPE | MIIM_SUBMENU; - mi.fType = MFT_STRING; - mi.hSubMenu = pvar->hmEncode; - if (pvar->ts->Language == IdJapanese) { - GetI18nStr(IniSection, "MENU_KANJI", pvar->ts->UIMsg, sizeof(pvar->ts->UIMsg), - "&KanjiCode", pvar->ts->UILanguageFile); - } - else { // IdKorean - GetI18nStr(IniSection, "MENU_KANJI_K", pvar->ts->UIMsg, sizeof(pvar->ts->UIMsg), - "Coding(&K)", pvar->ts->UILanguageFile); - } - mi.dwTypeData = pvar->ts->UIMsg; - InsertMenuItem(menu, ID_HELPMENU, FALSE, &mi); - - flag = MF_STRING|MF_CHECKED; - if (pvar->ts->Language == IdJapanese) { - GetI18nStr(IniSection, "MENU_RECV_SJIS", pvar->ts->UIMsg, sizeof(pvar->ts->UIMsg), - "Recv: &Shift_JIS", pvar->ts->UILanguageFile); - AppendMenu(pvar->hmEncode, flag, ID_MI_KANJIRECV+IdSJIS, pvar->ts->UIMsg); - GetI18nStr(IniSection, "MENU_RECV_EUCJP", pvar->ts->UIMsg, sizeof(pvar->ts->UIMsg), - "Recv: &EUC-JP", pvar->ts->UILanguageFile); - AppendMenu(pvar->hmEncode, flag, ID_MI_KANJIRECV+IdEUC, pvar->ts->UIMsg); - GetI18nStr(IniSection, "MENU_RECV_JIS", pvar->ts->UIMsg, sizeof(pvar->ts->UIMsg), - "Recv: &JIS", pvar->ts->UILanguageFile); - AppendMenu(pvar->hmEncode, flag, ID_MI_KANJIRECV+IdJIS, pvar->ts->UIMsg); - GetI18nStr(IniSection, "MENU_RECV_UTF8", pvar->ts->UIMsg, sizeof(pvar->ts->UIMsg), - "Recv: &UTF-8", pvar->ts->UILanguageFile); - AppendMenu(pvar->hmEncode, flag, ID_MI_KANJIRECV+IdUTF8, pvar->ts->UIMsg); - GetI18nStr(IniSection, "MENU_RECV_UTF8m", pvar->ts->UIMsg, sizeof(pvar->ts->UIMsg), - "Recv: UTF-8&m", pvar->ts->UILanguageFile); - AppendMenu(pvar->hmEncode, flag, ID_MI_KANJIRECV+IdUTF8m, pvar->ts->UIMsg); - } - else { // IdKorean - GetI18nStr(IniSection, "MENU_RECV_KS5601", pvar->ts->UIMsg, sizeof(pvar->ts->UIMsg), - "Recv: &KS5601", pvar->ts->UILanguageFile); - AppendMenu(pvar->hmEncode, flag, ID_MI_KANJIRECV+IdSJIS, pvar->ts->UIMsg); - GetI18nStr(IniSection, "MENU_RECV_UTF8", pvar->ts->UIMsg, sizeof(pvar->ts->UIMsg), - "Recv: &UTF-8", pvar->ts->UILanguageFile); - AppendMenu(pvar->hmEncode, flag, ID_MI_KANJIRECV+IdUTF8, pvar->ts->UIMsg); - } + if (pvar->ts->Language == IdJapanese) { + GetI18nStrWW(IniSection, "MENU_KANJI", L"&KanjiCode", pvar->ts->UILanguageFileW, &uimsg); + } + else { // IdKorean + GetI18nStrWW(IniSection, "MENU_KANJI_K", L"Coding(&K)", pvar->ts->UILanguageFileW, &uimsg); + } - if (!pvar->UseOneSetting) { - InsertSendKcodeMenu(pvar->hmEncode); - } - else { - UpdateRecvMenuCaption(pvar->hmEncode, pvar->UseOneSetting); - } + // TODO + // Windows 9x ł ANSI APIg悤ɂ + mi.cbSize = sizeof(mi); + mi.fMask = MIIM_TYPE | MIIM_SUBMENU; + mi.fType = MFT_STRING; + mi.hSubMenu = pvar->hmEncode; + mi.dwTypeData = uimsg; + InsertMenuItemW(menu, ID_HELPMENU, FALSE, &mi); + free(uimsg); + + UpdateMenu(pvar->hmEncode, pvar->UseOneSetting); +} - AppendMenu(pvar->hmEncode, MF_SEPARATOR, 0, NULL); - GetI18nStr(IniSection, "MENU_USE_ONE_SETTING", pvar->ts->UIMsg, sizeof(pvar->ts->UIMsg), - "Use &one setting", pvar->ts->UILanguageFile); - AppendMenu(pvar->hmEncode, flag, ID_MI_USEONESETTING , pvar->ts->UIMsg); +/* + * WIj[/`FbNj[̏Ԃݒɍ킹čXVB + */ +static void PASCAL TTXModifyPopupMenu(HMENU menu) { + // j[ĂяoꂽAŐV̐ݒɍXVB(2007.5.25 yutaka) + if (menu == pvar->hmEncode) { + (void)menu; UpdateRecvMenu(pvar->ts->KanjiCode); if (!pvar->UseOneSetting) { UpdateSendMenu(pvar->ts->KanjiCodeSend); } - CheckMenuItem(pvar->hmEncode, ID_MI_USEONESETTING, MF_BYCOMMAND | (pvar->UseOneSetting)?MF_CHECKED:0); } } - -/* - * This function is called when Tera Term pops up a submenu menu. - */ -static void PASCAL TTXModifyPopupMenu(HMENU menu) { - // j[ĂяoꂽAŐV̐ݒɍXVB(2007.5.25 yutaka) - UpdateRecvMenu(pvar->ts->KanjiCode); - if (!pvar->UseOneSetting) { - UpdateSendMenu(pvar->ts->KanjiCodeSend); +static const MenuInfo *SearchMenuItem(const MenuInfo *menu_info_ptr, size_t menu_info_count, UINT cmd_id) +{ + size_t i; + for (i = 0; i < menu_info_count; i++) { + if (menu_info_ptr->id == cmd_id) { + return menu_info_ptr; + } + menu_info_ptr++; } - CheckMenuItem(pvar->hmEncode, ID_MI_USEONESETTING, MF_BYCOMMAND | (pvar->UseOneSetting)?MF_CHECKED:0); + return NULL; } - /* * This function is called when Tera Term receives a command message. */ static int PASCAL TTXProcessCommand(HWND hWin, WORD cmd) { WORD val; - if ((cmd > ID_MI_KANJIRECV) && (cmd <= ID_MI_KANJIRECV+IdUTF8m)) { - // ͈̓`FbNlj - // TTProxỹo[W_CAOJƁAYnhĂ΂A듮삵Ă̂CB - // (2007.7.13 yutaka) - val = cmd - ID_MI_KANJIRECV; - pvar->cv->KanjiCodeEcho = pvar->ts->KanjiCode = val; - if (pvar->UseOneSetting) { - if (val == IdUTF8m) { - val = IdUTF8; - } - pvar->cv->KanjiCodeSend = pvar->ts->KanjiCodeSend = val; + if ((cmd >= ID_MI_KANJIRECV) && (cmd < ID_MI_USEONESETTING)) { + /* + * ^Cgo[orj[o[Bă|bvAbvj[ŕ\ĂƂ + * ̊֐R[ꂽƂAj DestroyMenu() ĂB + * ̊֐ł GetMenuItemInfoW() gȂ + */ + const MenuInfo *menu_info_ptr = SearchMenuItem(pvar->menu_info_ptr, pvar->menu_info_count, cmd); + if (menu_info_ptr == NULL) { + // mȂR}h? + assert(FALSE); + return 0; } - pvar->NeedResetCharSet = TRUE; - SendMessage(hWin, WM_COMMAND, MAKELONG(ID_SETUP_TERMINAL, 0), 0); - return UpdateRecvMenu(pvar->ts->KanjiCode)?1:0; - } - else if ((cmd > ID_MI_KANJISEND) && (cmd <= ID_MI_KANJISEND+IdUTF8)) { - val = cmd - ID_MI_KANJISEND; - pvar->cv->KanjiCodeSend = pvar->ts->KanjiCodeSend = val; - if (pvar->UseOneSetting) { - pvar->cv->KanjiCodeEcho = pvar->ts->KanjiCode = val; - pvar->NeedResetCharSet = TRUE; - SendMessage(hWin, WM_COMMAND, MAKELONG(ID_SETUP_TERMINAL, 0), 0); - return UpdateRecvMenu(pvar->ts->KanjiCode)?1:0; + val = (WORD)menu_info_ptr->data; + if (cmd < ID_MI_KANJISEND) { + if (pvar->UseOneSetting) { + // R[h + pvar->cv->KanjiCodeEcho = pvar->ts->KanjiCode = val; + pvar->cv->KanjiCodeSend = pvar->ts->KanjiCodeSend = val; + } + else { + // MR[h + pvar->cv->KanjiCodeEcho = pvar->ts->KanjiCode = val; + } } else { - pvar->NeedResetCharSet = TRUE; - SendMessage(hWin, WM_COMMAND, MAKELONG(ID_SETUP_TERMINAL, 0), 0); - return UpdateSendMenu(pvar->ts->KanjiCodeSend)?1:0; + // MR[h + pvar->cv->KanjiCodeSend = pvar->ts->KanjiCodeSend = val; } + CallResetCharSet(hWin); + return UpdateRecvMenu(pvar->ts->KanjiCode)?1:0; } else if (cmd == ID_MI_USEONESETTING) { if (pvar->UseOneSetting) { pvar->UseOneSetting = FALSE; - InsertSendKcodeMenu(pvar->hmEncode); - CheckMenuItem(pvar->hmEncode, ID_MI_USEONESETTING, MF_BYCOMMAND); } else { pvar->UseOneSetting = TRUE; - if (pvar->ts->KanjiCode == IdUTF8m) { - val = IdUTF8; - } - else { - val = pvar->ts->KanjiCode; - } + val = pvar->ts->KanjiCode; pvar->cv->KanjiCodeSend = pvar->ts->KanjiCodeSend = val; - - DeleteSendKcodeMenu(pvar->hmEncode); - CheckMenuItem(pvar->hmEncode, ID_MI_USEONESETTING, MF_BYCOMMAND | MF_CHECKED); } - UpdateRecvMenuCaption(pvar->hmEncode, pvar->UseOneSetting); + DeleteMenus(pvar->hmEncode); + UpdateMenu(pvar->hmEncode, pvar->UseOneSetting); return 1; } @@ -473,13 +528,16 @@ static TTXExports Exports = { TTXModifyPopupMenu, TTXProcessCommand, NULL, // TTXEnd, - NULL // TTXSetCommandLine + NULL, // TTXSetCommandLine + NULL, // TTXOpenFile + NULL, // TTXCloseFile }; BOOL __declspec(dllexport) PASCAL TTXBind(WORD Version, TTXExports *exports) { int size = sizeof(Exports) - sizeof(exports->size); /* do version checking if necessary */ /* if (Version!=TTVERSION) return FALSE; */ + (void)Version; if (size > exports->size) { size = exports->size; @@ -490,10 +548,11 @@ BOOL __declspec(dllexport) PASCAL TTXBind(WORD Version, TTXExports *exports) { return TRUE; } -BOOL WINAPI DllMain(HANDLE hInstance, +BOOL WINAPI DllMain(HANDLE hInstance, ULONG ul_reason_for_call, LPVOID lpReserved) { + (void)lpReserved; switch( ul_reason_for_call ) { case DLL_THREAD_ATTACH: /* do thread initialization */ @@ -503,7 +562,6 @@ BOOL WINAPI DllMain(HANDLE hInstance, break; case DLL_PROCESS_ATTACH: /* do process initialization */ - DoCover_IsDebuggerPresent(); hInst = hInstance; pvar = &InstVar; break; @@ -513,3 +571,5 @@ BOOL WINAPI DllMain(HANDLE hInstance, } return TRUE; } + +/* vim: set ts=4 sw=4 ff=dos : */ diff --git a/TTXKanjiMenu/ttxkanjimenu.rc b/TTXKanjiMenu/ttxkanjimenu.rc index 304d3f439..a1c92032b 100644 --- a/TTXKanjiMenu/ttxkanjimenu.rc +++ b/TTXKanjiMenu/ttxkanjimenu.rc @@ -7,7 +7,7 @@ // // Generated from the TEXTINCLUDE 2 resource. // -#include "afxres.h" +#include ///////////////////////////////////////////////////////////////////////////// #undef APSTUDIO_READONLY_SYMBOLS @@ -53,8 +53,8 @@ END // VS_VERSION_INFO VERSIONINFO - FILEVERSION 0,1,7,0 - PRODUCTVERSION 0,1,7,0 + FILEVERSION 0,1,9,0 + PRODUCTVERSION 0,1,9,0 FILEFLAGSMASK 0x17L #ifdef _DEBUG FILEFLAGS 0x1L @@ -70,12 +70,12 @@ BEGIN BLOCK "041104b0" BEGIN VALUE "FileDescription", "TTX KanjiMenu Plug-in" - VALUE "FileVersion", "0, 1, 7, 0" + VALUE "FileVersion", "0, 1, 9, 0" VALUE "InternalName", "ttxkanjimenu" - VALUE "LegalCopyright", "Copyright (C) 2007 Sunao HARA, (C) 2007-2016 TeraTerm Project" + VALUE "LegalCopyright", "Copyright (C) 2007 Sunao HARA, (C) 2007-2024 TeraTerm Project" VALUE "OriginalFilename", "ttxkanjimenu.dll" VALUE "ProductName", "TTX KanjiMenu Plug-in" - VALUE "ProductVersion", "0, 1, 7, 0" + VALUE "ProductVersion", "0, 1, 9, 0" END END BLOCK "VarFileInfo" diff --git a/TTXKanjiMenu/ttxkanjimenu.sln b/TTXKanjiMenu/ttxkanjimenu.sln deleted file mode 100644 index 183a89511..000000000 --- a/TTXKanjiMenu/ttxkanjimenu.sln +++ /dev/null @@ -1,20 +0,0 @@ - -Microsoft Visual Studio Solution File, Format Version 9.00 -# Visual Studio 2005 -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "ttxkanjimenu", "ttxkanjimenu.vcproj", "{DCCE3462-94BD-49E8-8DC9-4EEAC23C04B7}" -EndProject -Global - GlobalSection(SolutionConfigurationPlatforms) = preSolution - Debug|Win32 = Debug|Win32 - Release|Win32 = Release|Win32 - EndGlobalSection - GlobalSection(ProjectConfigurationPlatforms) = postSolution - {DCCE3462-94BD-49E8-8DC9-4EEAC23C04B7}.Debug|Win32.ActiveCfg = Debug|Win32 - {DCCE3462-94BD-49E8-8DC9-4EEAC23C04B7}.Debug|Win32.Build.0 = Debug|Win32 - {DCCE3462-94BD-49E8-8DC9-4EEAC23C04B7}.Release|Win32.ActiveCfg = Release|Win32 - {DCCE3462-94BD-49E8-8DC9-4EEAC23C04B7}.Release|Win32.Build.0 = Release|Win32 - EndGlobalSection - GlobalSection(SolutionProperties) = preSolution - HideSolutionNode = FALSE - EndGlobalSection -EndGlobal diff --git a/TTXKanjiMenu/ttxkanjimenu.v10.sln b/TTXKanjiMenu/ttxkanjimenu.v10.sln deleted file mode 100644 index 396a4c60e..000000000 --- a/TTXKanjiMenu/ttxkanjimenu.v10.sln +++ /dev/null @@ -1,20 +0,0 @@ - -Microsoft Visual Studio Solution File, Format Version 11.00 -# Visual Studio 2010 -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "ttxkanjimenu", "ttxkanjimenu.v10.vcxproj", "{DCCE3462-94BD-49E8-8DC9-4EEAC23C04B7}" -EndProject -Global - GlobalSection(SolutionConfigurationPlatforms) = preSolution - Debug|Win32 = Debug|Win32 - Release|Win32 = Release|Win32 - EndGlobalSection - GlobalSection(ProjectConfigurationPlatforms) = postSolution - {DCCE3462-94BD-49E8-8DC9-4EEAC23C04B7}.Debug|Win32.ActiveCfg = Debug|Win32 - {DCCE3462-94BD-49E8-8DC9-4EEAC23C04B7}.Debug|Win32.Build.0 = Debug|Win32 - {DCCE3462-94BD-49E8-8DC9-4EEAC23C04B7}.Release|Win32.ActiveCfg = Release|Win32 - {DCCE3462-94BD-49E8-8DC9-4EEAC23C04B7}.Release|Win32.Build.0 = Release|Win32 - EndGlobalSection - GlobalSection(SolutionProperties) = preSolution - HideSolutionNode = FALSE - EndGlobalSection -EndGlobal diff --git a/TTXKanjiMenu/ttxkanjimenu.v10.vcxproj b/TTXKanjiMenu/ttxkanjimenu.v10.vcxproj deleted file mode 100644 index 0deb4953d..000000000 --- a/TTXKanjiMenu/ttxkanjimenu.v10.vcxproj +++ /dev/null @@ -1,99 +0,0 @@ - - - - - Debug - Win32 - - - Release - Win32 - - - - {DCCE3462-94BD-49E8-8DC9-4EEAC23C04B7} - ttxkanjimenu - Win32Proj - ttxkanjimenu - - - - DynamicLibrary - MultiByte - true - - - DynamicLibrary - MultiByte - - - - - - - - - - - - - <_ProjectFileVersion>10.0.40219.1 - $(SolutionDir)$(Configuration)\ - $(Configuration)\ - true - $(SolutionDir)$(Configuration)\ - $(Configuration)\ - false - - - - Disabled - $(SolutionDir)..\teraterm\common;$(SolutionDir)..\teraterm\teraterm;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;_USRDLL;TTXENCODE_EXPORTS;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebug - - - Level3 - EditAndContinue - - - $(SolutionDir)..\teraterm\$(Configuration)\ttpcmn.lib;%(AdditionalDependencies) - true - Windows - MachineX86 - - - - - $(SolutionDir)..\teraterm\common;$(SolutionDir)..\teraterm\teraterm;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;_USRDLL;TTXENCODE_EXPORTS;%(PreprocessorDefinitions) - MultiThreaded - - - Level3 - ProgramDatabase - - - $(SolutionDir)..\teraterm\$(Configuration)\ttpcmn.lib;%(AdditionalDependencies) - true - Windows - true - true - MachineX86 - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/TTXKanjiMenu/ttxkanjimenu.v11.sln b/TTXKanjiMenu/ttxkanjimenu.v11.sln deleted file mode 100644 index 3f02cafc6..000000000 --- a/TTXKanjiMenu/ttxkanjimenu.v11.sln +++ /dev/null @@ -1,20 +0,0 @@ - -Microsoft Visual Studio Solution File, Format Version 12.00 -# Visual Studio 2012 -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "ttxkanjimenu", "ttxkanjimenu.v11.vcxproj", "{DCCE3462-94BD-49E8-8DC9-4EEAC23C04B7}" -EndProject -Global - GlobalSection(SolutionConfigurationPlatforms) = preSolution - Debug|Win32 = Debug|Win32 - Release|Win32 = Release|Win32 - EndGlobalSection - GlobalSection(ProjectConfigurationPlatforms) = postSolution - {DCCE3462-94BD-49E8-8DC9-4EEAC23C04B7}.Debug|Win32.ActiveCfg = Debug|Win32 - {DCCE3462-94BD-49E8-8DC9-4EEAC23C04B7}.Debug|Win32.Build.0 = Debug|Win32 - {DCCE3462-94BD-49E8-8DC9-4EEAC23C04B7}.Release|Win32.ActiveCfg = Release|Win32 - {DCCE3462-94BD-49E8-8DC9-4EEAC23C04B7}.Release|Win32.Build.0 = Release|Win32 - EndGlobalSection - GlobalSection(SolutionProperties) = preSolution - HideSolutionNode = FALSE - EndGlobalSection -EndGlobal diff --git a/TTXKanjiMenu/ttxkanjimenu.v11.vcxproj b/TTXKanjiMenu/ttxkanjimenu.v11.vcxproj deleted file mode 100644 index 718db194d..000000000 --- a/TTXKanjiMenu/ttxkanjimenu.v11.vcxproj +++ /dev/null @@ -1,104 +0,0 @@ - - - - - Debug - Win32 - - - Release - Win32 - - - - {DCCE3462-94BD-49E8-8DC9-4EEAC23C04B7} - ttxkanjimenu - Win32Proj - ttxkanjimenu - - - - DynamicLibrary - v110 - MultiByte - true - - - DynamicLibrary - v110 - MultiByte - - - - - - - - - - - - - <_ProjectFileVersion>11.0.61030.0 - - - $(SolutionDir)$(Configuration)\ - $(Configuration)\ - true - - - $(SolutionDir)$(Configuration)\ - $(Configuration)\ - false - - - - Disabled - $(SolutionDir)..\teraterm\common;$(SolutionDir)..\teraterm\teraterm;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;_USRDLL;TTXENCODE_EXPORTS;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebug - - Level3 - EditAndContinue - - - $(SolutionDir)..\teraterm\$(Configuration)\ttpcmn.lib;%(AdditionalDependencies) - true - Windows - MachineX86 - false - - - - - $(SolutionDir)..\teraterm\common;$(SolutionDir)..\teraterm\teraterm;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;_USRDLL;TTXENCODE_EXPORTS;%(PreprocessorDefinitions) - MultiThreaded - - Level3 - ProgramDatabase - - - $(SolutionDir)..\teraterm\$(Configuration)\ttpcmn.lib;%(AdditionalDependencies) - true - Windows - true - true - MachineX86 - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/TTXKanjiMenu/ttxkanjimenu.v12.sln b/TTXKanjiMenu/ttxkanjimenu.v12.sln deleted file mode 100644 index 7589d1513..000000000 --- a/TTXKanjiMenu/ttxkanjimenu.v12.sln +++ /dev/null @@ -1,22 +0,0 @@ - -Microsoft Visual Studio Solution File, Format Version 12.00 -# Visual Studio 2013 -VisualStudioVersion = 12.0.31101.0 -MinimumVisualStudioVersion = 10.0.40219.1 -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "ttxkanjimenu", "ttxkanjimenu.v12.vcxproj", "{DCCE3462-94BD-49E8-8DC9-4EEAC23C04B7}" -EndProject -Global - GlobalSection(SolutionConfigurationPlatforms) = preSolution - Debug|Win32 = Debug|Win32 - Release|Win32 = Release|Win32 - EndGlobalSection - GlobalSection(ProjectConfigurationPlatforms) = postSolution - {DCCE3462-94BD-49E8-8DC9-4EEAC23C04B7}.Debug|Win32.ActiveCfg = Debug|Win32 - {DCCE3462-94BD-49E8-8DC9-4EEAC23C04B7}.Debug|Win32.Build.0 = Debug|Win32 - {DCCE3462-94BD-49E8-8DC9-4EEAC23C04B7}.Release|Win32.ActiveCfg = Release|Win32 - {DCCE3462-94BD-49E8-8DC9-4EEAC23C04B7}.Release|Win32.Build.0 = Release|Win32 - EndGlobalSection - GlobalSection(SolutionProperties) = preSolution - HideSolutionNode = FALSE - EndGlobalSection -EndGlobal diff --git a/TTXKanjiMenu/ttxkanjimenu.v12.vcxproj b/TTXKanjiMenu/ttxkanjimenu.v12.vcxproj deleted file mode 100644 index d63145d6b..000000000 --- a/TTXKanjiMenu/ttxkanjimenu.v12.vcxproj +++ /dev/null @@ -1,104 +0,0 @@ - - - - - Debug - Win32 - - - Release - Win32 - - - - {DCCE3462-94BD-49E8-8DC9-4EEAC23C04B7} - ttxkanjimenu - Win32Proj - ttxkanjimenu - - - - DynamicLibrary - v120 - MultiByte - true - - - DynamicLibrary - v120 - MultiByte - - - - - - - - - - - - - <_ProjectFileVersion>12.0.30501.0 - - - $(SolutionDir)$(Configuration)\ - $(Configuration)\ - true - - - $(SolutionDir)$(Configuration)\ - $(Configuration)\ - false - - - - Disabled - $(SolutionDir)..\teraterm\common;$(SolutionDir)..\teraterm\teraterm;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;_USRDLL;TTXENCODE_EXPORTS;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebug - - Level3 - EditAndContinue - - - $(SolutionDir)..\teraterm\$(Configuration)\ttpcmn.lib;%(AdditionalDependencies) - true - Windows - MachineX86 - false - - - - - $(SolutionDir)..\teraterm\common;$(SolutionDir)..\teraterm\teraterm;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;_USRDLL;TTXENCODE_EXPORTS;%(PreprocessorDefinitions) - MultiThreaded - - Level3 - ProgramDatabase - - - $(SolutionDir)..\teraterm\$(Configuration)\ttpcmn.lib;%(AdditionalDependencies) - true - Windows - true - true - MachineX86 - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/TTXKanjiMenu/ttxkanjimenu.v12.vcxproj.filters b/TTXKanjiMenu/ttxkanjimenu.v12.vcxproj.filters deleted file mode 100644 index b451939e9..000000000 --- a/TTXKanjiMenu/ttxkanjimenu.v12.vcxproj.filters +++ /dev/null @@ -1,32 +0,0 @@ - - - - - {4FC737F1-C7A5-4376-A066-2A32D752A2FF} - cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx - - - {93995380-89BD-4b04-88EB-625FBE52EBFB} - h;hpp;hxx;hm;inl;inc;xsd - - - {67DA6AB6-F800-4c08-8B7A-83BB121AAD01} - rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav - - - - - Source Files - - - - - Header Files - - - - - Resource Files - - - \ No newline at end of file diff --git a/TTXKanjiMenu/ttxkanjimenu.v14.sln b/TTXKanjiMenu/ttxkanjimenu.v14.sln deleted file mode 100644 index b0d6f42a9..000000000 --- a/TTXKanjiMenu/ttxkanjimenu.v14.sln +++ /dev/null @@ -1,22 +0,0 @@ - -Microsoft Visual Studio Solution File, Format Version 12.00 -# Visual Studio 14 -VisualStudioVersion = 14.0.23107.0 -MinimumVisualStudioVersion = 10.0.40219.1 -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "ttxkanjimenu", "ttxkanjimenu.v14.vcxproj", "{DCCE3462-94BD-49E8-8DC9-4EEAC23C04B7}" -EndProject -Global - GlobalSection(SolutionConfigurationPlatforms) = preSolution - Debug|Win32 = Debug|Win32 - Release|Win32 = Release|Win32 - EndGlobalSection - GlobalSection(ProjectConfigurationPlatforms) = postSolution - {DCCE3462-94BD-49E8-8DC9-4EEAC23C04B7}.Debug|Win32.ActiveCfg = Debug|Win32 - {DCCE3462-94BD-49E8-8DC9-4EEAC23C04B7}.Debug|Win32.Build.0 = Debug|Win32 - {DCCE3462-94BD-49E8-8DC9-4EEAC23C04B7}.Release|Win32.ActiveCfg = Release|Win32 - {DCCE3462-94BD-49E8-8DC9-4EEAC23C04B7}.Release|Win32.Build.0 = Release|Win32 - EndGlobalSection - GlobalSection(SolutionProperties) = preSolution - HideSolutionNode = FALSE - EndGlobalSection -EndGlobal diff --git a/TTXKanjiMenu/ttxkanjimenu.v14.vcxproj b/TTXKanjiMenu/ttxkanjimenu.v14.vcxproj deleted file mode 100644 index 3559576c1..000000000 --- a/TTXKanjiMenu/ttxkanjimenu.v14.vcxproj +++ /dev/null @@ -1,104 +0,0 @@ - - - - - Debug - Win32 - - - Release - Win32 - - - - {DCCE3462-94BD-49E8-8DC9-4EEAC23C04B7} - ttxkanjimenu - Win32Proj - ttxkanjimenu - - - - DynamicLibrary - v140 - MultiByte - true - - - DynamicLibrary - v140 - MultiByte - - - - - - - - - - - - - <_ProjectFileVersion>12.0.30501.0 - - - $(SolutionDir)$(Configuration)\ - $(Configuration)\ - true - - - $(SolutionDir)$(Configuration)\ - $(Configuration)\ - false - - - - Disabled - $(SolutionDir)..\teraterm\common;$(SolutionDir)..\teraterm\teraterm;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;_USRDLL;TTXENCODE_EXPORTS;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebug - - Level3 - EditAndContinue - - - $(SolutionDir)..\teraterm\$(Configuration)\ttpcmn.lib;%(AdditionalDependencies) - true - Windows - MachineX86 - false - - - - - $(SolutionDir)..\teraterm\common;$(SolutionDir)..\teraterm\teraterm;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;_USRDLL;TTXENCODE_EXPORTS;%(PreprocessorDefinitions) - MultiThreaded - - Level3 - ProgramDatabase - - - $(SolutionDir)..\teraterm\$(Configuration)\ttpcmn.lib;%(AdditionalDependencies) - true - Windows - true - true - MachineX86 - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/TTXKanjiMenu/ttxkanjimenu.v14.vcxproj.filters b/TTXKanjiMenu/ttxkanjimenu.v14.vcxproj.filters deleted file mode 100644 index b451939e9..000000000 --- a/TTXKanjiMenu/ttxkanjimenu.v14.vcxproj.filters +++ /dev/null @@ -1,32 +0,0 @@ - - - - - {4FC737F1-C7A5-4376-A066-2A32D752A2FF} - cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx - - - {93995380-89BD-4b04-88EB-625FBE52EBFB} - h;hpp;hxx;hm;inl;inc;xsd - - - {67DA6AB6-F800-4c08-8B7A-83BB121AAD01} - rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav - - - - - Source Files - - - - - Header Files - - - - - Resource Files - - - \ No newline at end of file diff --git a/TTXKanjiMenu/ttxkanjimenu.v15.sln b/TTXKanjiMenu/ttxkanjimenu.v15.sln deleted file mode 100644 index 2b214bcb2..000000000 --- a/TTXKanjiMenu/ttxkanjimenu.v15.sln +++ /dev/null @@ -1,22 +0,0 @@ - -Microsoft Visual Studio Solution File, Format Version 12.00 -# Visual Studio 15 -VisualStudioVersion = 15.0.26228.4 -MinimumVisualStudioVersion = 10.0.40219.1 -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "ttxkanjimenu", "ttxkanjimenu.v15.vcxproj", "{DCCE3462-94BD-49E8-8DC9-4EEAC23C04B7}" -EndProject -Global - GlobalSection(SolutionConfigurationPlatforms) = preSolution - Debug|Win32 = Debug|Win32 - Release|Win32 = Release|Win32 - EndGlobalSection - GlobalSection(ProjectConfigurationPlatforms) = postSolution - {DCCE3462-94BD-49E8-8DC9-4EEAC23C04B7}.Debug|Win32.ActiveCfg = Debug|Win32 - {DCCE3462-94BD-49E8-8DC9-4EEAC23C04B7}.Debug|Win32.Build.0 = Debug|Win32 - {DCCE3462-94BD-49E8-8DC9-4EEAC23C04B7}.Release|Win32.ActiveCfg = Release|Win32 - {DCCE3462-94BD-49E8-8DC9-4EEAC23C04B7}.Release|Win32.Build.0 = Release|Win32 - EndGlobalSection - GlobalSection(SolutionProperties) = preSolution - HideSolutionNode = FALSE - EndGlobalSection -EndGlobal diff --git a/TTXKanjiMenu/ttxkanjimenu.v15.vcxproj b/TTXKanjiMenu/ttxkanjimenu.v15.vcxproj deleted file mode 100644 index 49883befe..000000000 --- a/TTXKanjiMenu/ttxkanjimenu.v15.vcxproj +++ /dev/null @@ -1,104 +0,0 @@ - - - - - Debug - Win32 - - - Release - Win32 - - - - {DCCE3462-94BD-49E8-8DC9-4EEAC23C04B7} - ttxkanjimenu - Win32Proj - ttxkanjimenu - - - - DynamicLibrary - v141 - MultiByte - true - - - DynamicLibrary - v141 - MultiByte - - - - - - - - - - - - - <_ProjectFileVersion>12.0.30501.0 - - - $(SolutionDir)$(Configuration)\ - $(Configuration)\ - true - - - $(SolutionDir)$(Configuration)\ - $(Configuration)\ - false - - - - Disabled - $(SolutionDir)..\teraterm\common;$(SolutionDir)..\teraterm\teraterm;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;_USRDLL;TTXENCODE_EXPORTS;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebug - - Level3 - EditAndContinue - - - $(SolutionDir)..\teraterm\$(Configuration)\ttpcmn.lib;%(AdditionalDependencies) - true - Windows - MachineX86 - false - - - - - $(SolutionDir)..\teraterm\common;$(SolutionDir)..\teraterm\teraterm;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;_USRDLL;TTXENCODE_EXPORTS;%(PreprocessorDefinitions) - MultiThreaded - - Level3 - ProgramDatabase - - - $(SolutionDir)..\teraterm\$(Configuration)\ttpcmn.lib;%(AdditionalDependencies) - true - Windows - true - true - MachineX86 - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/TTXKanjiMenu/ttxkanjimenu.v15.vcxproj.filters b/TTXKanjiMenu/ttxkanjimenu.v15.vcxproj.filters deleted file mode 100644 index b451939e9..000000000 --- a/TTXKanjiMenu/ttxkanjimenu.v15.vcxproj.filters +++ /dev/null @@ -1,32 +0,0 @@ - - - - - {4FC737F1-C7A5-4376-A066-2A32D752A2FF} - cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx - - - {93995380-89BD-4b04-88EB-625FBE52EBFB} - h;hpp;hxx;hm;inl;inc;xsd - - - {67DA6AB6-F800-4c08-8B7A-83BB121AAD01} - rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav - - - - - Source Files - - - - - Header Files - - - - - Resource Files - - - \ No newline at end of file diff --git a/TTXKanjiMenu/ttxkanjimenu.v16.sln b/TTXKanjiMenu/ttxkanjimenu.v16.sln new file mode 100644 index 000000000..b7b471975 --- /dev/null +++ b/TTXKanjiMenu/ttxkanjimenu.v16.sln @@ -0,0 +1,22 @@ + +Microsoft Visual Studio Solution File, Format Version 12.00 +# Visual Studio Version 16 +VisualStudioVersion = 16.0.28803.156 +MinimumVisualStudioVersion = 10.0.40219.1 +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "ttxkanjimenu", "ttxkanjimenu.v16.vcxproj", "{DCCE3462-94BD-49E8-8DC9-4EEAC23C04B7}" +EndProject +Global + GlobalSection(SolutionConfigurationPlatforms) = preSolution + Debug|Win32 = Debug|Win32 + Release|Win32 = Release|Win32 + EndGlobalSection + GlobalSection(ProjectConfigurationPlatforms) = postSolution + {DCCE3462-94BD-49E8-8DC9-4EEAC23C04B7}.Debug|Win32.ActiveCfg = Debug|Win32 + {DCCE3462-94BD-49E8-8DC9-4EEAC23C04B7}.Debug|Win32.Build.0 = Debug|Win32 + {DCCE3462-94BD-49E8-8DC9-4EEAC23C04B7}.Release|Win32.ActiveCfg = Release|Win32 + {DCCE3462-94BD-49E8-8DC9-4EEAC23C04B7}.Release|Win32.Build.0 = Release|Win32 + EndGlobalSection + GlobalSection(SolutionProperties) = preSolution + HideSolutionNode = FALSE + EndGlobalSection +EndGlobal diff --git a/TTXKanjiMenu/ttxkanjimenu.v16.vcxproj b/TTXKanjiMenu/ttxkanjimenu.v16.vcxproj new file mode 100644 index 000000000..4aaed3472 --- /dev/null +++ b/TTXKanjiMenu/ttxkanjimenu.v16.vcxproj @@ -0,0 +1,105 @@ + + + + + Debug + Win32 + + + Release + Win32 + + + + {DCCE3462-94BD-49E8-8DC9-4EEAC23C04B7} + ttxkanjimenu + Win32Proj + ttxkanjimenu + 10.0 + + + + DynamicLibrary + v142 + MultiByte + true + + + DynamicLibrary + v142 + MultiByte + + + + + + + + + + + + + <_ProjectFileVersion>12.0.30501.0 + + + $(SolutionDir)$(Configuration)\ + $(Configuration)\ + true + + + $(SolutionDir)$(Configuration)\ + $(Configuration)\ + false + + + + Disabled + $(SolutionDir)..\teraterm\common;$(SolutionDir)..\teraterm\teraterm;%(AdditionalIncludeDirectories) + WIN32;_DEBUG;_WINDOWS;_USRDLL;TTXENCODE_EXPORTS;%(PreprocessorDefinitions) + false + EnableFastChecks + MultiThreadedDebug + + Level3 + EditAndContinue + + + $(SolutionDir)..\teraterm\$(Configuration)\common_static.lib;$(SolutionDir)..\teraterm\$(Configuration)\ttpcmn.lib;%(AdditionalDependencies) + true + Windows + MachineX86 + false + + + + + $(SolutionDir)..\teraterm\common;$(SolutionDir)..\teraterm\teraterm;%(AdditionalIncludeDirectories) + WIN32;NDEBUG;_WINDOWS;_USRDLL;TTXENCODE_EXPORTS;%(PreprocessorDefinitions) + MultiThreaded + + Level3 + ProgramDatabase + + + $(SolutionDir)..\teraterm\$(Configuration)\common_static.lib;$(SolutionDir)..\teraterm\$(Configuration)\ttpcmn.lib;%(AdditionalDependencies) + true + Windows + true + true + MachineX86 + + + + + + + + + + + + + + + diff --git a/TTXKanjiMenu/ttxkanjimenu.v10.vcxproj.filters b/TTXKanjiMenu/ttxkanjimenu.v16.vcxproj.filters similarity index 100% rename from TTXKanjiMenu/ttxkanjimenu.v10.vcxproj.filters rename to TTXKanjiMenu/ttxkanjimenu.v16.vcxproj.filters diff --git a/TTXKanjiMenu/ttxkanjimenu.v17.sln b/TTXKanjiMenu/ttxkanjimenu.v17.sln new file mode 100644 index 000000000..64ad70842 --- /dev/null +++ b/TTXKanjiMenu/ttxkanjimenu.v17.sln @@ -0,0 +1,20 @@ + +Microsoft Visual Studio Solution File, Format Version 12.00 +# Visual Studio Version 17 +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "ttxkanjimenu", "ttxkanjimenu.v17.vcxproj", "{DCCE3462-94BD-49E8-8DC9-4EEAC23C04B7}" +EndProject +Global + GlobalSection(SolutionConfigurationPlatforms) = preSolution + Debug|Win32 = Debug|Win32 + Release|Win32 = Release|Win32 + EndGlobalSection + GlobalSection(ProjectConfigurationPlatforms) = postSolution + {DCCE3462-94BD-49E8-8DC9-4EEAC23C04B7}.Debug|Win32.ActiveCfg = Debug|Win32 + {DCCE3462-94BD-49E8-8DC9-4EEAC23C04B7}.Debug|Win32.Build.0 = Debug|Win32 + {DCCE3462-94BD-49E8-8DC9-4EEAC23C04B7}.Release|Win32.ActiveCfg = Release|Win32 + {DCCE3462-94BD-49E8-8DC9-4EEAC23C04B7}.Release|Win32.Build.0 = Release|Win32 + EndGlobalSection + GlobalSection(SolutionProperties) = preSolution + HideSolutionNode = FALSE + EndGlobalSection +EndGlobal diff --git a/TTXKanjiMenu/ttxkanjimenu.v17.vcxproj b/TTXKanjiMenu/ttxkanjimenu.v17.vcxproj new file mode 100644 index 000000000..bd2f984a7 --- /dev/null +++ b/TTXKanjiMenu/ttxkanjimenu.v17.vcxproj @@ -0,0 +1,105 @@ + + + + + Debug + Win32 + + + Release + Win32 + + + + {DCCE3462-94BD-49E8-8DC9-4EEAC23C04B7} + ttxkanjimenu + Win32Proj + ttxkanjimenu + 10.0 + + + + DynamicLibrary + v143 + MultiByte + true + + + DynamicLibrary + v143 + MultiByte + + + + + + + + + + + + + <_ProjectFileVersion>12.0.30501.0 + + + $(SolutionDir)$(Configuration)\ + $(Configuration)\ + true + + + $(SolutionDir)$(Configuration)\ + $(Configuration)\ + false + + + + Disabled + $(SolutionDir)..\teraterm\common;$(SolutionDir)..\teraterm\teraterm;%(AdditionalIncludeDirectories) + WIN32;_DEBUG;_WINDOWS;_USRDLL;TTXENCODE_EXPORTS;%(PreprocessorDefinitions) + false + EnableFastChecks + MultiThreadedDebug + + Level3 + EditAndContinue + + + $(SolutionDir)..\teraterm\$(Configuration)\common_static.lib;$(SolutionDir)..\teraterm\$(Configuration)\ttpcmn.lib;%(AdditionalDependencies) + true + Windows + MachineX86 + false + + + + + $(SolutionDir)..\teraterm\common;$(SolutionDir)..\teraterm\teraterm;%(AdditionalIncludeDirectories) + WIN32;NDEBUG;_WINDOWS;_USRDLL;TTXENCODE_EXPORTS;%(PreprocessorDefinitions) + MultiThreaded + + Level3 + ProgramDatabase + + + $(SolutionDir)..\teraterm\$(Configuration)\common_static.lib;$(SolutionDir)..\teraterm\$(Configuration)\ttpcmn.lib;%(AdditionalDependencies) + true + Windows + true + true + MachineX86 + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/TTXKanjiMenu/ttxkanjimenu.v11.vcxproj.filters b/TTXKanjiMenu/ttxkanjimenu.v17.vcxproj.filters similarity index 100% rename from TTXKanjiMenu/ttxkanjimenu.v11.vcxproj.filters rename to TTXKanjiMenu/ttxkanjimenu.v17.vcxproj.filters diff --git a/TTXKanjiMenu/ttxkanjimenu.v9.sln b/TTXKanjiMenu/ttxkanjimenu.v9.sln deleted file mode 100644 index 323341f9f..000000000 --- a/TTXKanjiMenu/ttxkanjimenu.v9.sln +++ /dev/null @@ -1,20 +0,0 @@ - -Microsoft Visual Studio Solution File, Format Version 10.00 -# Visual Studio 2008 -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "ttxkanjimenu", "ttxkanjimenu.v9.vcproj", "{DCCE3462-94BD-49E8-8DC9-4EEAC23C04B7}" -EndProject -Global - GlobalSection(SolutionConfigurationPlatforms) = preSolution - Debug|Win32 = Debug|Win32 - Release|Win32 = Release|Win32 - EndGlobalSection - GlobalSection(ProjectConfigurationPlatforms) = postSolution - {DCCE3462-94BD-49E8-8DC9-4EEAC23C04B7}.Debug|Win32.ActiveCfg = Debug|Win32 - {DCCE3462-94BD-49E8-8DC9-4EEAC23C04B7}.Debug|Win32.Build.0 = Debug|Win32 - {DCCE3462-94BD-49E8-8DC9-4EEAC23C04B7}.Release|Win32.ActiveCfg = Release|Win32 - {DCCE3462-94BD-49E8-8DC9-4EEAC23C04B7}.Release|Win32.Build.0 = Release|Win32 - EndGlobalSection - GlobalSection(SolutionProperties) = preSolution - HideSolutionNode = FALSE - EndGlobalSection -EndGlobal diff --git a/TTXKanjiMenu/ttxkanjimenu.v9.vcproj b/TTXKanjiMenu/ttxkanjimenu.v9.vcproj deleted file mode 100644 index d4474794f..000000000 --- a/TTXKanjiMenu/ttxkanjimenu.v9.vcproj +++ /dev/null @@ -1,208 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/TTXKanjiMenu/ttxkanjimenu.vcproj b/TTXKanjiMenu/ttxkanjimenu.vcproj deleted file mode 100644 index 6ece12aaf..000000000 --- a/TTXKanjiMenu/ttxkanjimenu.vcproj +++ /dev/null @@ -1,209 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/TTXSamples/CMakeLists.txt b/TTXSamples/CMakeLists.txt new file mode 100644 index 000000000..11cc20039 --- /dev/null +++ b/TTXSamples/CMakeLists.txt @@ -0,0 +1,49 @@ + +add_subdirectory(TTXAdditionalTitle) +set_target_properties(TTXAdditionalTitle PROPERTIES FOLDER TTXSamples) + +add_subdirectory(TTXAlwaysOnTop) +set_target_properties(TTXAlwaysOnTop PROPERTIES FOLDER TTXSamples) + +add_subdirectory(TTXCallSysMenu) +set_target_properties(TTXCallSysMenu PROPERTIES FOLDER TTXSamples) + +add_subdirectory(TTXCommandLineOpt) +set_target_properties(TTXCommandLineOpt PROPERTIES FOLDER TTXSamples) + +add_subdirectory(TTXCopyIniFile) +set_target_properties(TTXCopyIniFile PROPERTIES FOLDER TTXSamples) + +add_subdirectory(TTXFixedWinSize) +set_target_properties(TTXFixedWinSize PROPERTIES FOLDER TTXSamples) + +add_subdirectory(TTXKcodeChange) +set_target_properties(TTXKcodeChange PROPERTIES FOLDER TTXSamples) + +add_subdirectory(TTXOutputBuffering) +set_target_properties(TTXOutputBuffering PROPERTIES FOLDER TTXSamples) + +add_subdirectory(TTXRecurringCommand) +set_target_properties(TTXRecurringCommand PROPERTIES FOLDER TTXSamples) + +add_subdirectory(TTXResizeMenu) +set_target_properties(TTXResizeMenu PROPERTIES FOLDER TTXSamples) + +add_subdirectory(TTXResizeWin) +set_target_properties(TTXResizeWin PROPERTIES FOLDER TTXSamples) + +add_subdirectory(TTXShowCommandLine) +set_target_properties(TTXShowCommandLine PROPERTIES FOLDER TTXSamples) + +add_subdirectory(ttxtest) +set_target_properties(TTXtest PROPERTIES FOLDER TTXSamples) + +add_subdirectory(TTXttyrec) +set_target_properties(TTXttyrec PROPERTIES FOLDER TTXSamples) +set_target_properties(TTXttyplay PROPERTIES FOLDER TTXSamples) + +add_subdirectory(TTXViewMode) +set_target_properties(TTXViewMode PROPERTIES FOLDER TTXSamples) + +add_subdirectory(TTXCheckUpdate) +set_target_properties(TTXCheckUpdate PROPERTIES FOLDER TTXSamples) diff --git a/TTXSamples/TTXAdditionalTitle/CMakeLists.txt b/TTXSamples/TTXAdditionalTitle/CMakeLists.txt new file mode 100644 index 000000000..bdce5ff0a --- /dev/null +++ b/TTXSamples/TTXAdditionalTitle/CMakeLists.txt @@ -0,0 +1,55 @@ +set(PACKAGE_NAME "TTXAdditionalTitle") + +project(${PACKAGE_NAME}) + +add_library( + ${PACKAGE_NAME} SHARED + TTXAdditionalTitle.c + ReadMe.txt + ReadMe-ja.txt + ) + +if(SUPPORT_OLD_WINDOWS) + target_link_libraries( + ${PACKAGE_NAME} + PRIVATE + layer_for_unicode + ) + if(MSVC) + target_sources( + ${PACKAGE_NAME} + PRIVATE + ../../teraterm/common/compat_w95_vs2005.c + ) + endif() + if(MINGW) + target_link_libraries( + ${PACKAGE_NAME} + PRIVATE + -Wl,--whole-archive + mingw_msvcrt + mingw_dll_tls + -Wl,--no-whole-archive + ) + endif() +endif(SUPPORT_OLD_WINDOWS) + +set_target_properties( + ${PACKAGE_NAME} + PROPERTIES + PREFIX "" + RUNTIME_OUTPUT_DIRECTORY "${CMAKE_BINARY_DIR}/" + ) + +target_include_directories( + ${PACKAGE_NAME} + PRIVATE + ../../teraterm/teraterm + ) + +target_link_libraries( + ${PACKAGE_NAME} + PRIVATE + ttpcmn + common_static + ) diff --git a/TTXSamples/TTXAdditionalTitle/TTXAdditionalTitle.c b/TTXSamples/TTXAdditionalTitle/TTXAdditionalTitle.c index b476f1844..2cc255af1 100644 --- a/TTXSamples/TTXAdditionalTitle/TTXAdditionalTitle.c +++ b/TTXSamples/TTXAdditionalTitle/TTXAdditionalTitle.c @@ -4,13 +4,14 @@ #include #include "teraterm.h" #include "tttypes.h" +#include "tttypes_charset.h" #include "ttplugin.h" #include "tt_res.h" #include #include -#include "compat_w95.h" +#include "inifile_com.h" #define ORDER 4800 // #define ID_MENUITEM 37000 @@ -242,15 +243,15 @@ static void PASCAL TTXGetUIHooks(TTXUIHooks *hooks) { return; } -static void PASCAL TTXReadIniFile(PCHAR fn, PTTSet ts) { +static void PASCAL TTXReadIniFile(const wchar_t *fn, PTTSet ts) { char buff[sizeof(pvar->ts->Title)]; (pvar->origReadIniFile)(fn, ts); - GetPrivateProfileString(INISECTION, "AdditionalTitle", "", pvar->add_title, sizeof(pvar->add_title), fn); + GetPrivateProfileStringAFileW(INISECTION, "AdditionalTitle", "", pvar->add_title, sizeof(pvar->add_title), fn); strncpy_s(pvar->orig_title, sizeof(pvar->orig_title), pvar->ts->Title, _TRUNCATE); - GetPrivateProfileString(INISECTION, "AddMode", "off", buff, sizeof(buff), fn); + GetPrivateProfileStringAFileW(INISECTION, "AddMode", "off", buff, sizeof(buff), fn); if (_stricmp(buff, "top") == 0) { pvar->add_mode = ADD_TOP; pvar->ts->AcceptTitleChangeRequest = FALSE; @@ -266,36 +267,36 @@ static void PASCAL TTXReadIniFile(PCHAR fn, PTTSet ts) { } } -static void PASCAL TTXWriteIniFile(PCHAR fn, PTTSet ts) { +static void PASCAL TTXWriteIniFile(const wchar_t *fn, PTTSet ts) { strncpy_s(pvar->ts->Title, sizeof(pvar->ts->Title), pvar->orig_title, _TRUNCATE); (pvar->origWriteIniFile)(fn, ts); SetTitleStr(pvar->orig_title, FALSE); - WritePrivateProfileString(INISECTION, "AdditionalTitle", pvar->add_title, fn); + WritePrivateProfileStringAFileW(INISECTION, "AdditionalTitle", pvar->add_title, fn); switch (pvar->add_mode) { case ADD_NONE: - WritePrivateProfileString(INISECTION, "AddMode", "off", fn); + WritePrivateProfileStringAFileW(INISECTION, "AddMode", "off", fn); break; case ADD_TOP: - WritePrivateProfileString(INISECTION, "AddMode", "top", fn); + WritePrivateProfileStringAFileW(INISECTION, "AddMode", "top", fn); break; case ADD_BOTTOM: - WritePrivateProfileString(INISECTION, "AddMode", "bottom", fn); + WritePrivateProfileStringAFileW(INISECTION, "AddMode", "bottom", fn); break; default: ; // not reached } } -static void PASCAL TTXParseParam(PCHAR Param, PTTSet ts, PCHAR DDETopic) { - char buff[1024]; - PCHAR next; +static void PASCAL TTXParseParam(wchar_t *Param, PTTSet ts, PCHAR DDETopic) { + wchar_t buff[1024]; + wchar_t *next; pvar->origParseParam(Param, ts, DDETopic); next = Param; while (next = GetParam(buff, sizeof(buff), next)) { - if (_strnicmp(buff, "/W=", 3) == 0) { + if (_wcsnicmp(buff, L"/W=", 3) == 0) { strncpy_s(pvar->orig_title, sizeof(pvar->orig_title), pvar->ts->Title, _TRUNCATE); SetTitleStr(pvar->orig_title, FALSE); break; @@ -365,7 +366,6 @@ BOOL WINAPI DllMain(HANDLE hInstance, break; case DLL_PROCESS_ATTACH: /* do process initialization */ - DoCover_IsDebuggerPresent(); hInst = hInstance; pvar = &InstVar; break; diff --git a/TTXSamples/TTXAdditionalTitle/TTXAdditionalTitle.v10.vcxproj b/TTXSamples/TTXAdditionalTitle/TTXAdditionalTitle.v10.vcxproj deleted file mode 100644 index 14b4362f8..000000000 --- a/TTXSamples/TTXAdditionalTitle/TTXAdditionalTitle.v10.vcxproj +++ /dev/null @@ -1,97 +0,0 @@ - - - - - Debug - Win32 - - - Release - Win32 - - - - {0ECAF69B-08B4-414A-B822-BE8459E463D8} - TTXAdditionalTitle - Win32Proj - TTXAdditionalTitle - - - - DynamicLibrary - NotSet - true - - - DynamicLibrary - NotSet - - - - - - - - - - - - - <_ProjectFileVersion>10.0.40219.1 - $(SolutionDir)$(Configuration)\ - $(Configuration)\ - true - $(SolutionDir)$(Configuration)\ - $(Configuration)\ - false - - - - Disabled - $(SolutionDir)..\teraterm\common;$(SolutionDir)..\teraterm\teraterm;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;_USRDLL;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebug - - - Level3 - EditAndContinue - - - $(SolutionDir)..\teraterm\$(Configuration)\ttpcmn.lib;%(AdditionalDependencies) - true - Windows - MachineX86 - - - - - $(SolutionDir)..\teraterm\common;$(SolutionDir)..\teraterm\teraterm;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;_USRDLL;%(PreprocessorDefinitions) - MultiThreaded - - - Level3 - ProgramDatabase - - - $(SolutionDir)..\teraterm\$(Configuration)\ttpcmn.lib;%(AdditionalDependencies) - true - Windows - true - true - MachineX86 - - - - - - - - - - - - - \ No newline at end of file diff --git a/TTXSamples/TTXAdditionalTitle/TTXAdditionalTitle.v10.vcxproj.filters b/TTXSamples/TTXAdditionalTitle/TTXAdditionalTitle.v10.vcxproj.filters deleted file mode 100644 index 3007c173c..000000000 --- a/TTXSamples/TTXAdditionalTitle/TTXAdditionalTitle.v10.vcxproj.filters +++ /dev/null @@ -1,25 +0,0 @@ - - - - - {4FC737F1-C7A5-4376-A066-2A32D752A2FF} - cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx - - - {67bc40e8-36d4-43c2-859a-062da945178a} - - - - - Source Files - - - - - ReadMe - - - ReadMe - - - \ No newline at end of file diff --git a/TTXSamples/TTXAdditionalTitle/TTXAdditionalTitle.v11.vcxproj b/TTXSamples/TTXAdditionalTitle/TTXAdditionalTitle.v11.vcxproj deleted file mode 100644 index 10add3995..000000000 --- a/TTXSamples/TTXAdditionalTitle/TTXAdditionalTitle.v11.vcxproj +++ /dev/null @@ -1,102 +0,0 @@ - - - - - Debug - Win32 - - - Release - Win32 - - - - {0ECAF69B-08B4-414A-B822-BE8459E463D8} - TTXAdditionalTitle - Win32Proj - TTXAdditionalTitle - - - - DynamicLibrary - v110 - NotSet - true - - - DynamicLibrary - v110 - NotSet - - - - - - - - - - - - - <_ProjectFileVersion>11.0.61030.0 - - - $(SolutionDir)$(Configuration)\ - $(Configuration)\ - true - - - $(SolutionDir)$(Configuration)\ - $(Configuration)\ - false - - - - Disabled - $(SolutionDir)..\teraterm\common;$(SolutionDir)..\teraterm\teraterm;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;_USRDLL;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebug - - Level3 - EditAndContinue - - - $(SolutionDir)..\teraterm\$(Configuration)\ttpcmn.lib;%(AdditionalDependencies) - true - Windows - MachineX86 - false - - - - - $(SolutionDir)..\teraterm\common;$(SolutionDir)..\teraterm\teraterm;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;_USRDLL;%(PreprocessorDefinitions) - MultiThreaded - - Level3 - ProgramDatabase - - - $(SolutionDir)..\teraterm\$(Configuration)\ttpcmn.lib;%(AdditionalDependencies) - true - Windows - true - true - MachineX86 - - - - - - - - - - - - - \ No newline at end of file diff --git a/TTXSamples/TTXAdditionalTitle/TTXAdditionalTitle.v11.vcxproj.filters b/TTXSamples/TTXAdditionalTitle/TTXAdditionalTitle.v11.vcxproj.filters deleted file mode 100644 index f0b5e390b..000000000 --- a/TTXSamples/TTXAdditionalTitle/TTXAdditionalTitle.v11.vcxproj.filters +++ /dev/null @@ -1,25 +0,0 @@ - - - - - {4FC737F1-C7A5-4376-A066-2A32D752A2FF} - cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx - - - {f3e71c40-136f-4314-8fe4-0724b6206447} - - - - - Source Files - - - - - ReadMe - - - ReadMe - - - \ No newline at end of file diff --git a/TTXSamples/TTXAdditionalTitle/TTXAdditionalTitle.v12.vcxproj b/TTXSamples/TTXAdditionalTitle/TTXAdditionalTitle.v12.vcxproj deleted file mode 100644 index 80594cd61..000000000 --- a/TTXSamples/TTXAdditionalTitle/TTXAdditionalTitle.v12.vcxproj +++ /dev/null @@ -1,102 +0,0 @@ - - - - - Debug - Win32 - - - Release - Win32 - - - - {0ECAF69B-08B4-414A-B822-BE8459E463D8} - TTXAdditionalTitle - Win32Proj - TTXAdditionalTitle - - - - DynamicLibrary - v120 - NotSet - true - - - DynamicLibrary - v120 - NotSet - - - - - - - - - - - - - <_ProjectFileVersion>12.0.30501.0 - - - $(SolutionDir)$(Configuration)\ - $(Configuration)\ - true - - - $(SolutionDir)$(Configuration)\ - $(Configuration)\ - false - - - - Disabled - $(SolutionDir)..\teraterm\common;$(SolutionDir)..\teraterm\teraterm;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;_USRDLL;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebug - - Level3 - EditAndContinue - - - $(SolutionDir)..\teraterm\$(Configuration)\ttpcmn.lib;%(AdditionalDependencies) - true - Windows - MachineX86 - false - - - - - $(SolutionDir)..\teraterm\common;$(SolutionDir)..\teraterm\teraterm;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;_USRDLL;%(PreprocessorDefinitions) - MultiThreaded - - Level3 - ProgramDatabase - - - $(SolutionDir)..\teraterm\$(Configuration)\ttpcmn.lib;%(AdditionalDependencies) - true - Windows - true - true - MachineX86 - - - - - - - - - - - - - \ No newline at end of file diff --git a/TTXSamples/TTXAdditionalTitle/TTXAdditionalTitle.v14.vcxproj b/TTXSamples/TTXAdditionalTitle/TTXAdditionalTitle.v14.vcxproj deleted file mode 100644 index 1770ece6f..000000000 --- a/TTXSamples/TTXAdditionalTitle/TTXAdditionalTitle.v14.vcxproj +++ /dev/null @@ -1,102 +0,0 @@ - - - - - Debug - Win32 - - - Release - Win32 - - - - {0ECAF69B-08B4-414A-B822-BE8459E463D8} - TTXAdditionalTitle - Win32Proj - TTXAdditionalTitle - - - - DynamicLibrary - v140 - NotSet - true - - - DynamicLibrary - v140 - NotSet - - - - - - - - - - - - - <_ProjectFileVersion>12.0.30501.0 - - - $(SolutionDir)$(Configuration)\ - $(Configuration)\ - true - - - $(SolutionDir)$(Configuration)\ - $(Configuration)\ - false - - - - Disabled - $(SolutionDir)..\teraterm\common;$(SolutionDir)..\teraterm\teraterm;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;_USRDLL;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebug - - Level3 - EditAndContinue - - - $(SolutionDir)..\teraterm\$(Configuration)\ttpcmn.lib;%(AdditionalDependencies) - true - Windows - MachineX86 - false - - - - - $(SolutionDir)..\teraterm\common;$(SolutionDir)..\teraterm\teraterm;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;_USRDLL;%(PreprocessorDefinitions) - MultiThreaded - - Level3 - ProgramDatabase - - - $(SolutionDir)..\teraterm\$(Configuration)\ttpcmn.lib;%(AdditionalDependencies) - true - Windows - true - true - MachineX86 - - - - - - - - - - - - - \ No newline at end of file diff --git a/TTXSamples/TTXAdditionalTitle/TTXAdditionalTitle.v15.vcxproj b/TTXSamples/TTXAdditionalTitle/TTXAdditionalTitle.v15.vcxproj deleted file mode 100644 index ab667a49f..000000000 --- a/TTXSamples/TTXAdditionalTitle/TTXAdditionalTitle.v15.vcxproj +++ /dev/null @@ -1,102 +0,0 @@ - - - - - Debug - Win32 - - - Release - Win32 - - - - {0ECAF69B-08B4-414A-B822-BE8459E463D8} - TTXAdditionalTitle - Win32Proj - TTXAdditionalTitle - - - - DynamicLibrary - v141 - NotSet - true - - - DynamicLibrary - v141 - NotSet - - - - - - - - - - - - - <_ProjectFileVersion>12.0.30501.0 - - - $(SolutionDir)$(Configuration)\ - $(Configuration)\ - true - - - $(SolutionDir)$(Configuration)\ - $(Configuration)\ - false - - - - Disabled - $(SolutionDir)..\teraterm\common;$(SolutionDir)..\teraterm\teraterm;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;_USRDLL;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebug - - Level3 - EditAndContinue - - - $(SolutionDir)..\teraterm\$(Configuration)\ttpcmn.lib;%(AdditionalDependencies) - true - Windows - MachineX86 - false - - - - - $(SolutionDir)..\teraterm\common;$(SolutionDir)..\teraterm\teraterm;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;_USRDLL;%(PreprocessorDefinitions) - MultiThreaded - - Level3 - ProgramDatabase - - - $(SolutionDir)..\teraterm\$(Configuration)\ttpcmn.lib;%(AdditionalDependencies) - true - Windows - true - true - MachineX86 - - - - - - - - - - - - - \ No newline at end of file diff --git a/TTXSamples/TTXAdditionalTitle/TTXAdditionalTitle.v15.vcxproj.filters b/TTXSamples/TTXAdditionalTitle/TTXAdditionalTitle.v15.vcxproj.filters deleted file mode 100644 index 304bb9383..000000000 --- a/TTXSamples/TTXAdditionalTitle/TTXAdditionalTitle.v15.vcxproj.filters +++ /dev/null @@ -1,25 +0,0 @@ - - - - - {4FC737F1-C7A5-4376-A066-2A32D752A2FF} - cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx - - - {49a19dbf-c584-4494-be1f-8dbe6fdb5357} - - - - - Source Files - - - - - ReadMe - - - ReadMe - - - \ No newline at end of file diff --git a/TTXSamples/TTXAdditionalTitle/TTXAdditionalTitle.v16.vcxproj b/TTXSamples/TTXAdditionalTitle/TTXAdditionalTitle.v16.vcxproj new file mode 100644 index 000000000..40a063e61 --- /dev/null +++ b/TTXSamples/TTXAdditionalTitle/TTXAdditionalTitle.v16.vcxproj @@ -0,0 +1,103 @@ + + + + + Debug + Win32 + + + Release + Win32 + + + + {0ECAF69B-08B4-414A-B822-BE8459E463D8} + TTXAdditionalTitle + Win32Proj + TTXAdditionalTitle + 10.0 + + + + DynamicLibrary + v142 + NotSet + true + + + DynamicLibrary + v142 + NotSet + + + + + + + + + + + + + <_ProjectFileVersion>12.0.30501.0 + + + $(SolutionDir)$(Configuration)\ + $(Configuration)\ + true + + + $(SolutionDir)$(Configuration)\ + $(Configuration)\ + false + + + + Disabled + $(SolutionDir)..\teraterm\common;$(SolutionDir)..\teraterm\teraterm;%(AdditionalIncludeDirectories) + WIN32;_DEBUG;_WINDOWS;_USRDLL;%(PreprocessorDefinitions) + false + EnableFastChecks + MultiThreadedDebug + + Level3 + EditAndContinue + + + $(SolutionDir)..\teraterm\$(Configuration)\common_static.lib;$(SolutionDir)..\teraterm\$(Configuration)\ttpcmn.lib;%(AdditionalDependencies) + true + Windows + MachineX86 + false + + + + + $(SolutionDir)..\teraterm\common;$(SolutionDir)..\teraterm\teraterm;%(AdditionalIncludeDirectories) + WIN32;NDEBUG;_WINDOWS;_USRDLL;%(PreprocessorDefinitions) + MultiThreaded + + Level3 + ProgramDatabase + + + $(SolutionDir)..\teraterm\$(Configuration)\common_static.lib;$(SolutionDir)..\teraterm\$(Configuration)\ttpcmn.lib;%(AdditionalDependencies) + true + Windows + true + true + MachineX86 + + + + + + + + + + + + + diff --git a/TTXSamples/TTXAdditionalTitle/TTXAdditionalTitle.v12.vcxproj.filters b/TTXSamples/TTXAdditionalTitle/TTXAdditionalTitle.v16.vcxproj.filters similarity index 100% rename from TTXSamples/TTXAdditionalTitle/TTXAdditionalTitle.v12.vcxproj.filters rename to TTXSamples/TTXAdditionalTitle/TTXAdditionalTitle.v16.vcxproj.filters diff --git a/TTXSamples/TTXAdditionalTitle/TTXAdditionalTitle.v17.vcxproj b/TTXSamples/TTXAdditionalTitle/TTXAdditionalTitle.v17.vcxproj new file mode 100644 index 000000000..0ee434fec --- /dev/null +++ b/TTXSamples/TTXAdditionalTitle/TTXAdditionalTitle.v17.vcxproj @@ -0,0 +1,103 @@ + + + + + Debug + Win32 + + + Release + Win32 + + + + {0ECAF69B-08B4-414A-B822-BE8459E463D8} + TTXAdditionalTitle + Win32Proj + TTXAdditionalTitle + 10.0 + + + + DynamicLibrary + v143 + NotSet + true + + + DynamicLibrary + v143 + NotSet + + + + + + + + + + + + + <_ProjectFileVersion>12.0.30501.0 + + + $(SolutionDir)$(Configuration)\ + $(Configuration)\ + true + + + $(SolutionDir)$(Configuration)\ + $(Configuration)\ + false + + + + Disabled + $(SolutionDir)..\teraterm\common;$(SolutionDir)..\teraterm\teraterm;%(AdditionalIncludeDirectories) + WIN32;_DEBUG;_WINDOWS;_USRDLL;%(PreprocessorDefinitions) + false + EnableFastChecks + MultiThreadedDebug + + Level3 + EditAndContinue + + + $(SolutionDir)..\teraterm\$(Configuration)\common_static.lib;$(SolutionDir)..\teraterm\$(Configuration)\ttpcmn.lib;%(AdditionalDependencies) + true + Windows + MachineX86 + false + + + + + $(SolutionDir)..\teraterm\common;$(SolutionDir)..\teraterm\teraterm;%(AdditionalIncludeDirectories) + WIN32;NDEBUG;_WINDOWS;_USRDLL;%(PreprocessorDefinitions) + MultiThreaded + + Level3 + ProgramDatabase + + + $(SolutionDir)..\teraterm\$(Configuration)\common_static.lib;$(SolutionDir)..\teraterm\$(Configuration)\ttpcmn.lib;%(AdditionalDependencies) + true + Windows + true + true + MachineX86 + + + + + + + + + + + + + \ No newline at end of file diff --git a/TTXSamples/TTXAdditionalTitle/TTXAdditionalTitle.v14.vcxproj.filters b/TTXSamples/TTXAdditionalTitle/TTXAdditionalTitle.v17.vcxproj.filters similarity index 100% rename from TTXSamples/TTXAdditionalTitle/TTXAdditionalTitle.v14.vcxproj.filters rename to TTXSamples/TTXAdditionalTitle/TTXAdditionalTitle.v17.vcxproj.filters diff --git a/TTXSamples/TTXAdditionalTitle/TTXAdditionalTitle.v9.vcproj b/TTXSamples/TTXAdditionalTitle/TTXAdditionalTitle.v9.vcproj deleted file mode 100644 index bca47aed8..000000000 --- a/TTXSamples/TTXAdditionalTitle/TTXAdditionalTitle.v9.vcproj +++ /dev/null @@ -1,200 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/TTXSamples/TTXAdditionalTitle/TTXAdditionalTitle.vcproj b/TTXSamples/TTXAdditionalTitle/TTXAdditionalTitle.vcproj deleted file mode 100755 index 1b2d2a3ea..000000000 --- a/TTXSamples/TTXAdditionalTitle/TTXAdditionalTitle.vcproj +++ /dev/null @@ -1,201 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/TTXSamples/TTXAlwaysOnTop/CMakeLists.txt b/TTXSamples/TTXAlwaysOnTop/CMakeLists.txt new file mode 100644 index 000000000..a83a7c7c6 --- /dev/null +++ b/TTXSamples/TTXAlwaysOnTop/CMakeLists.txt @@ -0,0 +1,61 @@ +set(PACKAGE_NAME "TTXAlwaysOnTop") + +project(${PACKAGE_NAME}) + +add_library( + ${PACKAGE_NAME} SHARED + TTXAlwaysOnTop.c + ReadMe.txt + ReadMe-ja.txt + ) + +if(SUPPORT_OLD_WINDOWS) + target_link_libraries( + ${PACKAGE_NAME} + PRIVATE + common_static + ) + if(MSVC) + target_sources( + ${PACKAGE_NAME} + PRIVATE + ../../teraterm/common/compat_w95_vs2005.c + ) + endif() + if(MINGW) + target_link_libraries( + ${PACKAGE_NAME} + PRIVATE + -Wl,--whole-archive + mingw_msvcrt + mingw_dll_tls + -Wl,--no-whole-archive + ) + endif() +endif(SUPPORT_OLD_WINDOWS) + +set_target_properties( + ${PACKAGE_NAME} + PROPERTIES + PREFIX "" + RUNTIME_OUTPUT_DIRECTORY "${CMAKE_BINARY_DIR}/" + ) + +target_include_directories( + ${PACKAGE_NAME} + PRIVATE + ../../teraterm/teraterm +) + +target_link_libraries( + ${PACKAGE_NAME} + PRIVATE + common_static + ttpcmn +) + +install( + TARGETS ${PACKAGE_NAME} + RUNTIME + DESTINATION . + ) diff --git a/TTXSamples/TTXAlwaysOnTop/TTXAlwaysOnTop.c b/TTXSamples/TTXAlwaysOnTop/TTXAlwaysOnTop.c index 531c7d96f..5eff2ab27 100755 --- a/TTXSamples/TTXAlwaysOnTop/TTXAlwaysOnTop.c +++ b/TTXSamples/TTXAlwaysOnTop/TTXAlwaysOnTop.c @@ -7,9 +7,7 @@ #include #include #include -#include - -#include "compat_w95.h" +#include #define IniSection "TTXAlwaysOnTop" @@ -23,145 +21,148 @@ static HANDLE hInst; /* Instance handle of TTX*.DLL */ typedef struct { - PTTSet ts; - HMENU ControlMenu; - BOOL ontop; + PTTSet ts; + HMENU ControlMenu; + BOOL ontop; } TInstVar; static TInstVar *pvar; static TInstVar InstVar; -#define GetFileMenu(menu) GetSubMenuByChildID(menu, ID_FILE_NEWCONNECTION) -#define GetEditMenu(menu) GetSubMenuByChildID(menu, ID_EDIT_COPY2) -#define GetSetupMenu(menu) GetSubMenuByChildID(menu, ID_SETUP_TERMINAL) -#define GetControlMenu(menu) GetSubMenuByChildID(menu, ID_CONTROL_RESETTERMINAL) -#define GetHelpMenu(menu) GetSubMenuByChildID(menu, ID_HELP_ABOUT) +#define GetFileMenu(menu) GetSubMenuByChildID(menu, ID_FILE_NEWCONNECTION) +#define GetEditMenu(menu) GetSubMenuByChildID(menu, ID_EDIT_COPY2) +#define GetSetupMenu(menu) GetSubMenuByChildID(menu, ID_SETUP_TERMINAL) +#define GetControlMenu(menu) GetSubMenuByChildID(menu, ID_CONTROL_RESETTERMINAL) +#define GetHelpMenu(menu) GetSubMenuByChildID(menu, ID_HELP_ABOUT) HMENU GetSubMenuByChildID(HMENU menu, UINT id) { - int i, j, items, subitems, cur_id; - HMENU m; - - items = GetMenuItemCount(menu); - - for (i=0; its = ts; - pvar->ontop = FALSE; + pvar->ts = ts; + pvar->ontop = FALSE; } static void PASCAL TTXModifyMenu(HMENU menu) { - UINT flag = MF_BYCOMMAND | MF_STRING | MF_ENABLED; - - pvar->ControlMenu = GetControlMenu(menu); - if (pvar->ontop) { - flag |= MF_CHECKED; - } - - GetI18nStr(IniSection, "MENU_ALWAYSONTOP", pvar->ts->UIMsg, sizeof(pvar->ts->UIMsg), - "&Always on top", pvar->ts->UILanguageFile); - InsertMenu(pvar->ControlMenu, ID_CONTROL_MACRO, - flag, ID_MENU_BASE, pvar->ts->UIMsg); - InsertMenu(pvar->ControlMenu, ID_CONTROL_MACRO, - MF_BYCOMMAND | MF_SEPARATOR, 0, NULL); + static const DlgTextInfo MenuTextInfo[] = { + { ID_MENU_BASE, "MENU_ALWAYSONTOP" } + }; + + UINT flag = MF_BYCOMMAND | MF_STRING | MF_ENABLED; + + pvar->ControlMenu = GetControlMenu(menu); + if (pvar->ontop) { + flag |= MF_CHECKED; + } + + InsertMenu(pvar->ControlMenu, ID_CONTROL_MACRO, flag, ID_MENU_BASE, "&Always on top"); + InsertMenu(pvar->ControlMenu, ID_CONTROL_MACRO, MF_BYCOMMAND | MF_SEPARATOR, 0, NULL); + + SetI18nMenuStrsW(menu, IniSection, MenuTextInfo, _countof(MenuTextInfo), pvar->ts->UILanguageFileW); } static int PASCAL TTXProcessCommand(HWND hWin, WORD cmd) { - switch (cmd) { - case ID_MENU_BASE: - if (pvar->ontop) { - pvar->ontop = FALSE; - CheckMenuItem(pvar->ControlMenu, ID_MENU_BASE, MF_BYCOMMAND | MF_UNCHECKED); - SetWindowPos(hWin, HWND_NOTOPMOST, 0, 0, 0, 0, SWP_NOMOVE | SWP_NOSIZE); - } - else { - pvar->ontop = TRUE; - CheckMenuItem(pvar->ControlMenu, ID_MENU_BASE, MF_BYCOMMAND | MF_CHECKED); - SetWindowPos(hWin, HWND_TOPMOST, 0, 0, 0, 0, SWP_NOMOVE | SWP_NOSIZE); - } - break; - case ID_MENU_TOP: - SetWindowPos(hWin, HWND_TOP, 0, 0, 0, 0, SWP_NOMOVE | SWP_NOSIZE); - break; - case ID_MENU_BOTTOM: - SetWindowPos(hWin, HWND_BOTTOM, 0, 0, 0, 0, SWP_NOMOVE | SWP_NOSIZE); - break; - case ID_MENU_TOPMOST: - pvar->ontop = TRUE; - CheckMenuItem(pvar->ControlMenu, ID_MENU_BASE, MF_BYCOMMAND | MF_CHECKED); - SetWindowPos(hWin, HWND_TOPMOST, 0, 0, 0, 0, SWP_NOMOVE | SWP_NOSIZE); - break; - case ID_MENU_NOTOPMOST: - pvar->ontop = FALSE; - CheckMenuItem(pvar->ControlMenu, ID_MENU_BASE, MF_BYCOMMAND | MF_UNCHECKED); - SetWindowPos(hWin, HWND_NOTOPMOST, 0, 0, 0, 0, SWP_NOMOVE | SWP_NOSIZE); - break; - default: - return 0; - } - return 1; + switch (cmd) { + case ID_MENU_BASE: + if (pvar->ontop) { + pvar->ontop = FALSE; + CheckMenuItem(pvar->ControlMenu, ID_MENU_BASE, MF_BYCOMMAND | MF_UNCHECKED); + SetWindowPos(hWin, HWND_NOTOPMOST, 0, 0, 0, 0, SWP_NOMOVE | SWP_NOSIZE); + } + else { + pvar->ontop = TRUE; + CheckMenuItem(pvar->ControlMenu, ID_MENU_BASE, MF_BYCOMMAND | MF_CHECKED); + SetWindowPos(hWin, HWND_TOPMOST, 0, 0, 0, 0, SWP_NOMOVE | SWP_NOSIZE); + } + break; + case ID_MENU_TOP: + SetWindowPos(hWin, HWND_TOP, 0, 0, 0, 0, SWP_NOMOVE | SWP_NOSIZE); + break; + case ID_MENU_BOTTOM: + SetWindowPos(hWin, HWND_BOTTOM, 0, 0, 0, 0, SWP_NOMOVE | SWP_NOSIZE); + break; + case ID_MENU_TOPMOST: + pvar->ontop = TRUE; + CheckMenuItem(pvar->ControlMenu, ID_MENU_BASE, MF_BYCOMMAND | MF_CHECKED); + SetWindowPos(hWin, HWND_TOPMOST, 0, 0, 0, 0, SWP_NOMOVE | SWP_NOSIZE); + break; + case ID_MENU_NOTOPMOST: + pvar->ontop = FALSE; + CheckMenuItem(pvar->ControlMenu, ID_MENU_BASE, MF_BYCOMMAND | MF_UNCHECKED); + SetWindowPos(hWin, HWND_NOTOPMOST, 0, 0, 0, 0, SWP_NOMOVE | SWP_NOSIZE); + break; + default: + return 0; + } + return 1; } static TTXExports Exports = { - sizeof(TTXExports), - ORDER, - - TTXInit, - NULL, // TTXGetUIHooks, - NULL, // TTXGetSetupHooks, - NULL, // TTXOpenTCP, - NULL, // TTXCloseTCP, - NULL, // TTXSetWinSize, - TTXModifyMenu, - NULL, // TTXModifyPopupMenu, - TTXProcessCommand, - NULL, // TTXEnd + sizeof(TTXExports), + ORDER, + + TTXInit, + NULL, // TTXGetUIHooks, + NULL, // TTXGetSetupHooks, + NULL, // TTXOpenTCP, + NULL, // TTXCloseTCP, + NULL, // TTXSetWinSize, + TTXModifyMenu, + NULL, // TTXModifyPopupMenu, + TTXProcessCommand, + NULL, // TTXEnd }; BOOL __declspec(dllexport) PASCAL TTXBind(WORD Version, TTXExports *exports) { - int size = sizeof(Exports) - sizeof(exports->size); - - if (size > exports->size) { - size = exports->size; - } - memcpy((char *)exports + sizeof(exports->size), - (char *)&Exports + sizeof(exports->size), - size); - return TRUE; + int size = sizeof(Exports) - sizeof(exports->size); + + if (size > exports->size) { + size = exports->size; + } + memcpy((char *)exports + sizeof(exports->size), + (char *)&Exports + sizeof(exports->size), + size); + return TRUE; } BOOL WINAPI DllMain(HANDLE hInstance, - ULONG ul_reason_for_call, - LPVOID lpReserved) + ULONG ul_reason_for_call, + LPVOID lpReserved) { - switch( ul_reason_for_call ) { - case DLL_THREAD_ATTACH: - /* do thread initialization */ - break; - case DLL_THREAD_DETACH: - /* do thread cleanup */ - break; - case DLL_PROCESS_ATTACH: - /* do process initialization */ - DoCover_IsDebuggerPresent(); - hInst = hInstance; - pvar = &InstVar; - break; - case DLL_PROCESS_DETACH: - /* do process cleanup */ - break; - } - return TRUE; + switch( ul_reason_for_call ) { + case DLL_THREAD_ATTACH: + /* do thread initialization */ + break; + case DLL_THREAD_DETACH: + /* do thread cleanup */ + break; + case DLL_PROCESS_ATTACH: + /* do process initialization */ + hInst = hInstance; + pvar = &InstVar; + break; + case DLL_PROCESS_DETACH: + /* do process cleanup */ + break; + } + return TRUE; } + +/* vim: set ts=4 sw=4 ff=dos : */ diff --git a/TTXSamples/TTXAlwaysOnTop/TTXAlwaysOnTop.v10.vcxproj b/TTXSamples/TTXAlwaysOnTop/TTXAlwaysOnTop.v10.vcxproj deleted file mode 100644 index a8c329825..000000000 --- a/TTXSamples/TTXAlwaysOnTop/TTXAlwaysOnTop.v10.vcxproj +++ /dev/null @@ -1,97 +0,0 @@ - - - - - Debug - Win32 - - - Release - Win32 - - - - {E86DDB2C-CC00-43D1-8A1A-4B042EC983D6} - TTXAlwaysOnTop - Win32Proj - TTXAlwaysOnTop - - - - DynamicLibrary - NotSet - true - - - DynamicLibrary - NotSet - - - - - - - - - - - - - <_ProjectFileVersion>10.0.40219.1 - $(SolutionDir)$(Configuration)\ - $(Configuration)\ - true - $(SolutionDir)$(Configuration)\ - $(Configuration)\ - false - - - - Disabled - $(SolutionDir)..\teraterm\common;$(SolutionDir)..\teraterm\teraterm;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;_USRDLL;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebug - - - Level3 - EditAndContinue - - - $(SolutionDir)..\teraterm\$(Configuration)\ttpcmn.lib;%(AdditionalDependencies) - true - Windows - MachineX86 - - - - - $(SolutionDir)..\teraterm\common;$(SolutionDir)..\teraterm\teraterm;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;_USRDLL;%(PreprocessorDefinitions) - MultiThreaded - - - Level3 - ProgramDatabase - - - $(SolutionDir)..\teraterm\$(Configuration)\ttpcmn.lib;%(AdditionalDependencies) - true - Windows - true - true - MachineX86 - - - - - - - - - - - - - \ No newline at end of file diff --git a/TTXSamples/TTXAlwaysOnTop/TTXAlwaysOnTop.v10.vcxproj.filters b/TTXSamples/TTXAlwaysOnTop/TTXAlwaysOnTop.v10.vcxproj.filters deleted file mode 100644 index 8c44884df..000000000 --- a/TTXSamples/TTXAlwaysOnTop/TTXAlwaysOnTop.v10.vcxproj.filters +++ /dev/null @@ -1,25 +0,0 @@ - - - - - {4FC737F1-C7A5-4376-A066-2A32D752A2FF} - cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx - - - {317d92b8-a99d-447b-a768-5639b198ea44} - - - - - Source Files - - - - - ReadMe - - - ReadMe - - - \ No newline at end of file diff --git a/TTXSamples/TTXAlwaysOnTop/TTXAlwaysOnTop.v11.vcxproj b/TTXSamples/TTXAlwaysOnTop/TTXAlwaysOnTop.v11.vcxproj deleted file mode 100644 index 0bfed9e51..000000000 --- a/TTXSamples/TTXAlwaysOnTop/TTXAlwaysOnTop.v11.vcxproj +++ /dev/null @@ -1,102 +0,0 @@ - - - - - Debug - Win32 - - - Release - Win32 - - - - {E86DDB2C-CC00-43D1-8A1A-4B042EC983D6} - TTXAlwaysOnTop - Win32Proj - TTXAlwaysOnTop - - - - DynamicLibrary - v110 - NotSet - true - - - DynamicLibrary - v110 - NotSet - - - - - - - - - - - - - <_ProjectFileVersion>11.0.61030.0 - - - $(SolutionDir)$(Configuration)\ - $(Configuration)\ - true - - - $(SolutionDir)$(Configuration)\ - $(Configuration)\ - false - - - - Disabled - $(SolutionDir)..\teraterm\common;$(SolutionDir)..\teraterm\teraterm;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;_USRDLL;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebug - - Level3 - EditAndContinue - - - $(SolutionDir)..\teraterm\$(Configuration)\ttpcmn.lib;%(AdditionalDependencies) - true - Windows - MachineX86 - false - - - - - $(SolutionDir)..\teraterm\common;$(SolutionDir)..\teraterm\teraterm;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;_USRDLL;%(PreprocessorDefinitions) - MultiThreaded - - Level3 - ProgramDatabase - - - $(SolutionDir)..\teraterm\$(Configuration)\ttpcmn.lib;%(AdditionalDependencies) - true - Windows - true - true - MachineX86 - - - - - - - - - - - - - \ No newline at end of file diff --git a/TTXSamples/TTXAlwaysOnTop/TTXAlwaysOnTop.v11.vcxproj.filters b/TTXSamples/TTXAlwaysOnTop/TTXAlwaysOnTop.v11.vcxproj.filters deleted file mode 100644 index 1a58f7152..000000000 --- a/TTXSamples/TTXAlwaysOnTop/TTXAlwaysOnTop.v11.vcxproj.filters +++ /dev/null @@ -1,25 +0,0 @@ - - - - - {4FC737F1-C7A5-4376-A066-2A32D752A2FF} - cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx - - - {fdcc7125-b611-46e6-b81a-83a946999b33} - - - - - Source Files - - - - - ReadMe - - - ReadMe - - - \ No newline at end of file diff --git a/TTXSamples/TTXAlwaysOnTop/TTXAlwaysOnTop.v12.vcxproj b/TTXSamples/TTXAlwaysOnTop/TTXAlwaysOnTop.v12.vcxproj deleted file mode 100644 index 9dc00ab9f..000000000 --- a/TTXSamples/TTXAlwaysOnTop/TTXAlwaysOnTop.v12.vcxproj +++ /dev/null @@ -1,102 +0,0 @@ - - - - - Debug - Win32 - - - Release - Win32 - - - - {E86DDB2C-CC00-43D1-8A1A-4B042EC983D6} - TTXAlwaysOnTop - Win32Proj - TTXAlwaysOnTop - - - - DynamicLibrary - v120 - NotSet - true - - - DynamicLibrary - v120 - NotSet - - - - - - - - - - - - - <_ProjectFileVersion>12.0.30501.0 - - - $(SolutionDir)$(Configuration)\ - $(Configuration)\ - true - - - $(SolutionDir)$(Configuration)\ - $(Configuration)\ - false - - - - Disabled - $(SolutionDir)..\teraterm\common;$(SolutionDir)..\teraterm\teraterm;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;_USRDLL;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebug - - Level3 - EditAndContinue - - - $(SolutionDir)..\teraterm\$(Configuration)\ttpcmn.lib;%(AdditionalDependencies) - true - Windows - MachineX86 - false - - - - - $(SolutionDir)..\teraterm\common;$(SolutionDir)..\teraterm\teraterm;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;_USRDLL;%(PreprocessorDefinitions) - MultiThreaded - - Level3 - ProgramDatabase - - - $(SolutionDir)..\teraterm\$(Configuration)\ttpcmn.lib;%(AdditionalDependencies) - true - Windows - true - true - MachineX86 - - - - - - - - - - - - - \ No newline at end of file diff --git a/TTXSamples/TTXAlwaysOnTop/TTXAlwaysOnTop.v14.vcxproj b/TTXSamples/TTXAlwaysOnTop/TTXAlwaysOnTop.v14.vcxproj deleted file mode 100644 index 5cd87392c..000000000 --- a/TTXSamples/TTXAlwaysOnTop/TTXAlwaysOnTop.v14.vcxproj +++ /dev/null @@ -1,102 +0,0 @@ - - - - - Debug - Win32 - - - Release - Win32 - - - - {E86DDB2C-CC00-43D1-8A1A-4B042EC983D6} - TTXAlwaysOnTop - Win32Proj - TTXAlwaysOnTop - - - - DynamicLibrary - v140 - NotSet - true - - - DynamicLibrary - v140 - NotSet - - - - - - - - - - - - - <_ProjectFileVersion>12.0.30501.0 - - - $(SolutionDir)$(Configuration)\ - $(Configuration)\ - true - - - $(SolutionDir)$(Configuration)\ - $(Configuration)\ - false - - - - Disabled - $(SolutionDir)..\teraterm\common;$(SolutionDir)..\teraterm\teraterm;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;_USRDLL;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebug - - Level3 - EditAndContinue - - - $(SolutionDir)..\teraterm\$(Configuration)\ttpcmn.lib;%(AdditionalDependencies) - true - Windows - MachineX86 - false - - - - - $(SolutionDir)..\teraterm\common;$(SolutionDir)..\teraterm\teraterm;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;_USRDLL;%(PreprocessorDefinitions) - MultiThreaded - - Level3 - ProgramDatabase - - - $(SolutionDir)..\teraterm\$(Configuration)\ttpcmn.lib;%(AdditionalDependencies) - true - Windows - true - true - MachineX86 - - - - - - - - - - - - - \ No newline at end of file diff --git a/TTXSamples/TTXAlwaysOnTop/TTXAlwaysOnTop.v15.vcxproj b/TTXSamples/TTXAlwaysOnTop/TTXAlwaysOnTop.v15.vcxproj deleted file mode 100644 index f87a51498..000000000 --- a/TTXSamples/TTXAlwaysOnTop/TTXAlwaysOnTop.v15.vcxproj +++ /dev/null @@ -1,102 +0,0 @@ - - - - - Debug - Win32 - - - Release - Win32 - - - - {E86DDB2C-CC00-43D1-8A1A-4B042EC983D6} - TTXAlwaysOnTop - Win32Proj - TTXAlwaysOnTop - - - - DynamicLibrary - v141 - NotSet - true - - - DynamicLibrary - v141 - NotSet - - - - - - - - - - - - - <_ProjectFileVersion>12.0.30501.0 - - - $(SolutionDir)$(Configuration)\ - $(Configuration)\ - true - - - $(SolutionDir)$(Configuration)\ - $(Configuration)\ - false - - - - Disabled - $(SolutionDir)..\teraterm\common;$(SolutionDir)..\teraterm\teraterm;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;_USRDLL;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebug - - Level3 - EditAndContinue - - - $(SolutionDir)..\teraterm\$(Configuration)\ttpcmn.lib;%(AdditionalDependencies) - true - Windows - MachineX86 - false - - - - - $(SolutionDir)..\teraterm\common;$(SolutionDir)..\teraterm\teraterm;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;_USRDLL;%(PreprocessorDefinitions) - MultiThreaded - - Level3 - ProgramDatabase - - - $(SolutionDir)..\teraterm\$(Configuration)\ttpcmn.lib;%(AdditionalDependencies) - true - Windows - true - true - MachineX86 - - - - - - - - - - - - - \ No newline at end of file diff --git a/TTXSamples/TTXAlwaysOnTop/TTXAlwaysOnTop.v15.vcxproj.filters b/TTXSamples/TTXAlwaysOnTop/TTXAlwaysOnTop.v15.vcxproj.filters deleted file mode 100644 index e67e0b3d1..000000000 --- a/TTXSamples/TTXAlwaysOnTop/TTXAlwaysOnTop.v15.vcxproj.filters +++ /dev/null @@ -1,25 +0,0 @@ - - - - - {4FC737F1-C7A5-4376-A066-2A32D752A2FF} - cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx - - - {3de8b3b0-0e46-470e-8b42-34e7dc070906} - - - - - Source Files - - - - - ReadMe - - - ReadMe - - - \ No newline at end of file diff --git a/TTXSamples/TTXAlwaysOnTop/TTXAlwaysOnTop.v16.vcxproj b/TTXSamples/TTXAlwaysOnTop/TTXAlwaysOnTop.v16.vcxproj new file mode 100644 index 000000000..f7a04867d --- /dev/null +++ b/TTXSamples/TTXAlwaysOnTop/TTXAlwaysOnTop.v16.vcxproj @@ -0,0 +1,103 @@ + + + + + Debug + Win32 + + + Release + Win32 + + + + {E86DDB2C-CC00-43D1-8A1A-4B042EC983D6} + TTXAlwaysOnTop + Win32Proj + TTXAlwaysOnTop + 10.0 + + + + DynamicLibrary + v142 + NotSet + true + + + DynamicLibrary + v142 + NotSet + + + + + + + + + + + + + <_ProjectFileVersion>12.0.30501.0 + + + $(SolutionDir)$(Configuration)\ + $(Configuration)\ + true + + + $(SolutionDir)$(Configuration)\ + $(Configuration)\ + false + + + + Disabled + $(SolutionDir)..\teraterm\common;$(SolutionDir)..\teraterm\teraterm;%(AdditionalIncludeDirectories) + WIN32;_DEBUG;_WINDOWS;_USRDLL;%(PreprocessorDefinitions) + false + EnableFastChecks + MultiThreadedDebug + + Level3 + EditAndContinue + + + $(SolutionDir)..\teraterm\$(Configuration)\common_static.lib;$(SolutionDir)..\teraterm\$(Configuration)\ttpcmn.lib;%(AdditionalDependencies) + true + Windows + MachineX86 + false + + + + + $(SolutionDir)..\teraterm\common;$(SolutionDir)..\teraterm\teraterm;%(AdditionalIncludeDirectories) + WIN32;NDEBUG;_WINDOWS;_USRDLL;%(PreprocessorDefinitions) + MultiThreaded + + Level3 + ProgramDatabase + + + $(SolutionDir)..\teraterm\$(Configuration)\common_static.lib;$(SolutionDir)..\teraterm\$(Configuration)\ttpcmn.lib;%(AdditionalDependencies) + true + Windows + true + true + MachineX86 + + + + + + + + + + + + + diff --git a/TTXSamples/TTXAlwaysOnTop/TTXAlwaysOnTop.v12.vcxproj.filters b/TTXSamples/TTXAlwaysOnTop/TTXAlwaysOnTop.v16.vcxproj.filters similarity index 100% rename from TTXSamples/TTXAlwaysOnTop/TTXAlwaysOnTop.v12.vcxproj.filters rename to TTXSamples/TTXAlwaysOnTop/TTXAlwaysOnTop.v16.vcxproj.filters diff --git a/TTXSamples/TTXAlwaysOnTop/TTXAlwaysOnTop.v17.vcxproj b/TTXSamples/TTXAlwaysOnTop/TTXAlwaysOnTop.v17.vcxproj new file mode 100644 index 000000000..1bda9a697 --- /dev/null +++ b/TTXSamples/TTXAlwaysOnTop/TTXAlwaysOnTop.v17.vcxproj @@ -0,0 +1,103 @@ + + + + + Debug + Win32 + + + Release + Win32 + + + + {E86DDB2C-CC00-43D1-8A1A-4B042EC983D6} + TTXAlwaysOnTop + Win32Proj + TTXAlwaysOnTop + 10.0 + + + + DynamicLibrary + v143 + NotSet + true + + + DynamicLibrary + v143 + NotSet + + + + + + + + + + + + + <_ProjectFileVersion>12.0.30501.0 + + + $(SolutionDir)$(Configuration)\ + $(Configuration)\ + true + + + $(SolutionDir)$(Configuration)\ + $(Configuration)\ + false + + + + Disabled + $(SolutionDir)..\teraterm\common;$(SolutionDir)..\teraterm\teraterm;%(AdditionalIncludeDirectories) + WIN32;_DEBUG;_WINDOWS;_USRDLL;%(PreprocessorDefinitions) + false + EnableFastChecks + MultiThreadedDebug + + Level3 + EditAndContinue + + + $(SolutionDir)..\teraterm\$(Configuration)\common_static.lib;$(SolutionDir)..\teraterm\$(Configuration)\ttpcmn.lib;%(AdditionalDependencies) + true + Windows + MachineX86 + false + + + + + $(SolutionDir)..\teraterm\common;$(SolutionDir)..\teraterm\teraterm;%(AdditionalIncludeDirectories) + WIN32;NDEBUG;_WINDOWS;_USRDLL;%(PreprocessorDefinitions) + MultiThreaded + + Level3 + ProgramDatabase + + + $(SolutionDir)..\teraterm\$(Configuration)\common_static.lib;$(SolutionDir)..\teraterm\$(Configuration)\ttpcmn.lib;%(AdditionalDependencies) + true + Windows + true + true + MachineX86 + + + + + + + + + + + + + \ No newline at end of file diff --git a/TTXSamples/TTXAlwaysOnTop/TTXAlwaysOnTop.v14.vcxproj.filters b/TTXSamples/TTXAlwaysOnTop/TTXAlwaysOnTop.v17.vcxproj.filters similarity index 100% rename from TTXSamples/TTXAlwaysOnTop/TTXAlwaysOnTop.v14.vcxproj.filters rename to TTXSamples/TTXAlwaysOnTop/TTXAlwaysOnTop.v17.vcxproj.filters diff --git a/TTXSamples/TTXAlwaysOnTop/TTXAlwaysOnTop.v9.vcproj b/TTXSamples/TTXAlwaysOnTop/TTXAlwaysOnTop.v9.vcproj deleted file mode 100644 index de38acc56..000000000 --- a/TTXSamples/TTXAlwaysOnTop/TTXAlwaysOnTop.v9.vcproj +++ /dev/null @@ -1,200 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/TTXSamples/TTXAlwaysOnTop/TTXAlwaysOnTop.vcproj b/TTXSamples/TTXAlwaysOnTop/TTXAlwaysOnTop.vcproj deleted file mode 100755 index 63933a6bf..000000000 --- a/TTXSamples/TTXAlwaysOnTop/TTXAlwaysOnTop.vcproj +++ /dev/null @@ -1,201 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/TTXSamples/TTXCallSysMenu/CMakeLists.txt b/TTXSamples/TTXCallSysMenu/CMakeLists.txt new file mode 100644 index 000000000..2701e9149 --- /dev/null +++ b/TTXSamples/TTXCallSysMenu/CMakeLists.txt @@ -0,0 +1,47 @@ +set(PACKAGE_NAME "TTXCallSysMenu") + +project(${PACKAGE_NAME}) + +add_library( + ${PACKAGE_NAME} SHARED + TTXCallSysMenu.c + ReadMe.txt + ReadMe-ja.txt + ) + +if(SUPPORT_OLD_WINDOWS) + target_link_libraries( + ${PACKAGE_NAME} + PRIVATE + layer_for_unicode + ) + if(MSVC) + target_sources( + ${PACKAGE_NAME} + PRIVATE + ../../teraterm/common/compat_w95_vs2005.c + ) + endif() + if(MINGW) + target_sources( + ${PACKAGE_NAME} + PRIVATE + ../../teraterm/libmingw/tlssup.c + ) + endif() +endif(SUPPORT_OLD_WINDOWS) + +set_target_properties( + ${PACKAGE_NAME} + PROPERTIES + PREFIX "" + RUNTIME_OUTPUT_DIRECTORY "${CMAKE_BINARY_DIR}/" + ) + +target_include_directories( + ${PACKAGE_NAME} + PRIVATE + ../../teraterm/teraterm + ../../teraterm/common + ) + diff --git a/TTXSamples/TTXCallSysMenu/TTXCallSysMenu.c b/TTXSamples/TTXCallSysMenu/TTXCallSysMenu.c index 6a98852ef..391aec992 100755 --- a/TTXSamples/TTXCallSysMenu/TTXCallSysMenu.c +++ b/TTXSamples/TTXCallSysMenu/TTXCallSysMenu.c @@ -5,8 +5,6 @@ #include #include -#include "compat_w95.h" - #define ORDER 4000 #define MENU_ID 39393 @@ -62,7 +60,7 @@ BOOL __declspec(dllexport) PASCAL TTXBind(WORD Version, TTXExports *exports) { return TRUE; } -BOOL WINAPI DllMain(HANDLE hInstance, +BOOL WINAPI DllMain(HANDLE hInstance, ULONG ul_reason_for_call, LPVOID lpReserved) { @@ -75,7 +73,6 @@ BOOL WINAPI DllMain(HANDLE hInstance, break; case DLL_PROCESS_ATTACH: /* do process initialization */ - DoCover_IsDebuggerPresent(); hInst = hInstance; pvar = &InstVar; break; diff --git a/TTXSamples/TTXCallSysMenu/TTXCallSysMenu.v10.vcxproj b/TTXSamples/TTXCallSysMenu/TTXCallSysMenu.v10.vcxproj deleted file mode 100644 index 5afd69824..000000000 --- a/TTXSamples/TTXCallSysMenu/TTXCallSysMenu.v10.vcxproj +++ /dev/null @@ -1,95 +0,0 @@ - - - - - Debug - Win32 - - - Release - Win32 - - - - {25709A86-E6B8-4CDA-906C-02D935E05978} - TTXCallSysMenu - Win32Proj - TTXCallSysMenu - - - - DynamicLibrary - NotSet - true - - - DynamicLibrary - NotSet - - - - - - - - - - - - - <_ProjectFileVersion>10.0.40219.1 - $(SolutionDir)$(Configuration)\ - $(Configuration)\ - true - $(SolutionDir)$(Configuration)\ - $(Configuration)\ - false - - - - Disabled - $(SolutionDir)..\teraterm\common;$(SolutionDir)..\teraterm\teraterm;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;_USRDLL;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebug - - - Level3 - EditAndContinue - - - true - Windows - MachineX86 - - - - - $(SolutionDir)..\teraterm\common;$(SolutionDir)..\teraterm\teraterm;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;_USRDLL;%(PreprocessorDefinitions) - MultiThreaded - - - Level3 - ProgramDatabase - - - true - Windows - true - true - MachineX86 - - - - - - - - - - - - - \ No newline at end of file diff --git a/TTXSamples/TTXCallSysMenu/TTXCallSysMenu.v10.vcxproj.filters b/TTXSamples/TTXCallSysMenu/TTXCallSysMenu.v10.vcxproj.filters deleted file mode 100644 index 47c7a2637..000000000 --- a/TTXSamples/TTXCallSysMenu/TTXCallSysMenu.v10.vcxproj.filters +++ /dev/null @@ -1,25 +0,0 @@ - - - - - {4FC737F1-C7A5-4376-A066-2A32D752A2FF} - cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx - - - {b4887741-b5bf-4fe8-bde1-8c8045a33ac3} - - - - - Source Files - - - - - ReadMe - - - ReadMe - - - \ No newline at end of file diff --git a/TTXSamples/TTXCallSysMenu/TTXCallSysMenu.v11.vcxproj b/TTXSamples/TTXCallSysMenu/TTXCallSysMenu.v11.vcxproj deleted file mode 100644 index 6a97e5069..000000000 --- a/TTXSamples/TTXCallSysMenu/TTXCallSysMenu.v11.vcxproj +++ /dev/null @@ -1,100 +0,0 @@ - - - - - Debug - Win32 - - - Release - Win32 - - - - {25709A86-E6B8-4CDA-906C-02D935E05978} - TTXCallSysMenu - Win32Proj - TTXCallSysMenu - - - - DynamicLibrary - v110 - NotSet - true - - - DynamicLibrary - v110 - NotSet - - - - - - - - - - - - - <_ProjectFileVersion>11.0.61030.0 - - - $(SolutionDir)$(Configuration)\ - $(Configuration)\ - true - - - $(SolutionDir)$(Configuration)\ - $(Configuration)\ - false - - - - Disabled - $(SolutionDir)..\teraterm\common;$(SolutionDir)..\teraterm\teraterm;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;_USRDLL;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebug - - Level3 - EditAndContinue - - - true - Windows - MachineX86 - false - - - - - $(SolutionDir)..\teraterm\common;$(SolutionDir)..\teraterm\teraterm;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;_USRDLL;%(PreprocessorDefinitions) - MultiThreaded - - Level3 - ProgramDatabase - - - true - Windows - true - true - MachineX86 - - - - - - - - - - - - - \ No newline at end of file diff --git a/TTXSamples/TTXCallSysMenu/TTXCallSysMenu.v11.vcxproj.filters b/TTXSamples/TTXCallSysMenu/TTXCallSysMenu.v11.vcxproj.filters deleted file mode 100644 index 747d1155b..000000000 --- a/TTXSamples/TTXCallSysMenu/TTXCallSysMenu.v11.vcxproj.filters +++ /dev/null @@ -1,25 +0,0 @@ - - - - - {4FC737F1-C7A5-4376-A066-2A32D752A2FF} - cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx - - - {f24b68e5-c2e6-4863-93c8-32716f91a6c3} - - - - - Source Files - - - - - ReadMe - - - ReadMe - - - \ No newline at end of file diff --git a/TTXSamples/TTXCallSysMenu/TTXCallSysMenu.v12.vcxproj b/TTXSamples/TTXCallSysMenu/TTXCallSysMenu.v12.vcxproj deleted file mode 100644 index b019f8781..000000000 --- a/TTXSamples/TTXCallSysMenu/TTXCallSysMenu.v12.vcxproj +++ /dev/null @@ -1,100 +0,0 @@ - - - - - Debug - Win32 - - - Release - Win32 - - - - {25709A86-E6B8-4CDA-906C-02D935E05978} - TTXCallSysMenu - Win32Proj - TTXCallSysMenu - - - - DynamicLibrary - v120 - NotSet - true - - - DynamicLibrary - v120 - NotSet - - - - - - - - - - - - - <_ProjectFileVersion>12.0.30501.0 - - - $(SolutionDir)$(Configuration)\ - $(Configuration)\ - true - - - $(SolutionDir)$(Configuration)\ - $(Configuration)\ - false - - - - Disabled - $(SolutionDir)..\teraterm\common;$(SolutionDir)..\teraterm\teraterm;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;_USRDLL;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebug - - Level3 - EditAndContinue - - - true - Windows - MachineX86 - false - - - - - $(SolutionDir)..\teraterm\common;$(SolutionDir)..\teraterm\teraterm;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;_USRDLL;%(PreprocessorDefinitions) - MultiThreaded - - Level3 - ProgramDatabase - - - true - Windows - true - true - MachineX86 - - - - - - - - - - - - - \ No newline at end of file diff --git a/TTXSamples/TTXCallSysMenu/TTXCallSysMenu.v14.vcxproj b/TTXSamples/TTXCallSysMenu/TTXCallSysMenu.v14.vcxproj deleted file mode 100644 index 416480043..000000000 --- a/TTXSamples/TTXCallSysMenu/TTXCallSysMenu.v14.vcxproj +++ /dev/null @@ -1,100 +0,0 @@ - - - - - Debug - Win32 - - - Release - Win32 - - - - {25709A86-E6B8-4CDA-906C-02D935E05978} - TTXCallSysMenu - Win32Proj - TTXCallSysMenu - - - - DynamicLibrary - v140 - NotSet - true - - - DynamicLibrary - v140 - NotSet - - - - - - - - - - - - - <_ProjectFileVersion>12.0.30501.0 - - - $(SolutionDir)$(Configuration)\ - $(Configuration)\ - true - - - $(SolutionDir)$(Configuration)\ - $(Configuration)\ - false - - - - Disabled - $(SolutionDir)..\teraterm\common;$(SolutionDir)..\teraterm\teraterm;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;_USRDLL;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebug - - Level3 - EditAndContinue - - - true - Windows - MachineX86 - false - - - - - $(SolutionDir)..\teraterm\common;$(SolutionDir)..\teraterm\teraterm;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;_USRDLL;%(PreprocessorDefinitions) - MultiThreaded - - Level3 - ProgramDatabase - - - true - Windows - true - true - MachineX86 - - - - - - - - - - - - - \ No newline at end of file diff --git a/TTXSamples/TTXCallSysMenu/TTXCallSysMenu.v15.vcxproj b/TTXSamples/TTXCallSysMenu/TTXCallSysMenu.v15.vcxproj deleted file mode 100644 index 98d3f3876..000000000 --- a/TTXSamples/TTXCallSysMenu/TTXCallSysMenu.v15.vcxproj +++ /dev/null @@ -1,100 +0,0 @@ - - - - - Debug - Win32 - - - Release - Win32 - - - - {25709A86-E6B8-4CDA-906C-02D935E05978} - TTXCallSysMenu - Win32Proj - TTXCallSysMenu - - - - DynamicLibrary - v141 - NotSet - true - - - DynamicLibrary - v141 - NotSet - - - - - - - - - - - - - <_ProjectFileVersion>12.0.30501.0 - - - $(SolutionDir)$(Configuration)\ - $(Configuration)\ - true - - - $(SolutionDir)$(Configuration)\ - $(Configuration)\ - false - - - - Disabled - $(SolutionDir)..\teraterm\common;$(SolutionDir)..\teraterm\teraterm;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;_USRDLL;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebug - - Level3 - EditAndContinue - - - true - Windows - MachineX86 - false - - - - - $(SolutionDir)..\teraterm\common;$(SolutionDir)..\teraterm\teraterm;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;_USRDLL;%(PreprocessorDefinitions) - MultiThreaded - - Level3 - ProgramDatabase - - - true - Windows - true - true - MachineX86 - - - - - - - - - - - - - \ No newline at end of file diff --git a/TTXSamples/TTXCallSysMenu/TTXCallSysMenu.v15.vcxproj.filters b/TTXSamples/TTXCallSysMenu/TTXCallSysMenu.v15.vcxproj.filters deleted file mode 100644 index 2cb742bb3..000000000 --- a/TTXSamples/TTXCallSysMenu/TTXCallSysMenu.v15.vcxproj.filters +++ /dev/null @@ -1,25 +0,0 @@ - - - - - {4FC737F1-C7A5-4376-A066-2A32D752A2FF} - cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx - - - {7db37478-ecb8-4585-bc40-626409df0a4c} - - - - - Source Files - - - - - ReadMe - - - ReadMe - - - \ No newline at end of file diff --git a/TTXSamples/TTXCallSysMenu/TTXCallSysMenu.v16.vcxproj b/TTXSamples/TTXCallSysMenu/TTXCallSysMenu.v16.vcxproj new file mode 100644 index 000000000..f89dbc70b --- /dev/null +++ b/TTXSamples/TTXCallSysMenu/TTXCallSysMenu.v16.vcxproj @@ -0,0 +1,101 @@ + + + + + Debug + Win32 + + + Release + Win32 + + + + {25709A86-E6B8-4CDA-906C-02D935E05978} + TTXCallSysMenu + Win32Proj + TTXCallSysMenu + 10.0 + + + + DynamicLibrary + v142 + NotSet + true + + + DynamicLibrary + v142 + NotSet + + + + + + + + + + + + + <_ProjectFileVersion>12.0.30501.0 + + + $(SolutionDir)$(Configuration)\ + $(Configuration)\ + true + + + $(SolutionDir)$(Configuration)\ + $(Configuration)\ + false + + + + Disabled + $(SolutionDir)..\teraterm\common;$(SolutionDir)..\teraterm\teraterm;%(AdditionalIncludeDirectories) + WIN32;_DEBUG;_WINDOWS;_USRDLL;%(PreprocessorDefinitions) + false + EnableFastChecks + MultiThreadedDebug + + Level3 + EditAndContinue + + + true + Windows + MachineX86 + false + + + + + $(SolutionDir)..\teraterm\common;$(SolutionDir)..\teraterm\teraterm;%(AdditionalIncludeDirectories) + WIN32;NDEBUG;_WINDOWS;_USRDLL;%(PreprocessorDefinitions) + MultiThreaded + + Level3 + ProgramDatabase + + + true + Windows + true + true + MachineX86 + + + + + + + + + + + + + diff --git a/TTXSamples/TTXCallSysMenu/TTXCallSysMenu.v12.vcxproj.filters b/TTXSamples/TTXCallSysMenu/TTXCallSysMenu.v16.vcxproj.filters similarity index 100% rename from TTXSamples/TTXCallSysMenu/TTXCallSysMenu.v12.vcxproj.filters rename to TTXSamples/TTXCallSysMenu/TTXCallSysMenu.v16.vcxproj.filters diff --git a/TTXSamples/TTXCallSysMenu/TTXCallSysMenu.v17.vcxproj b/TTXSamples/TTXCallSysMenu/TTXCallSysMenu.v17.vcxproj new file mode 100644 index 000000000..bf2a814ae --- /dev/null +++ b/TTXSamples/TTXCallSysMenu/TTXCallSysMenu.v17.vcxproj @@ -0,0 +1,101 @@ + + + + + Debug + Win32 + + + Release + Win32 + + + + {25709A86-E6B8-4CDA-906C-02D935E05978} + TTXCallSysMenu + Win32Proj + TTXCallSysMenu + 10.0 + + + + DynamicLibrary + v143 + NotSet + true + + + DynamicLibrary + v143 + NotSet + + + + + + + + + + + + + <_ProjectFileVersion>12.0.30501.0 + + + $(SolutionDir)$(Configuration)\ + $(Configuration)\ + true + + + $(SolutionDir)$(Configuration)\ + $(Configuration)\ + false + + + + Disabled + $(SolutionDir)..\teraterm\common;$(SolutionDir)..\teraterm\teraterm;%(AdditionalIncludeDirectories) + WIN32;_DEBUG;_WINDOWS;_USRDLL;%(PreprocessorDefinitions) + false + EnableFastChecks + MultiThreadedDebug + + Level3 + EditAndContinue + + + true + Windows + MachineX86 + false + + + + + $(SolutionDir)..\teraterm\common;$(SolutionDir)..\teraterm\teraterm;%(AdditionalIncludeDirectories) + WIN32;NDEBUG;_WINDOWS;_USRDLL;%(PreprocessorDefinitions) + MultiThreaded + + Level3 + ProgramDatabase + + + true + Windows + true + true + MachineX86 + + + + + + + + + + + + + \ No newline at end of file diff --git a/TTXSamples/TTXCallSysMenu/TTXCallSysMenu.v14.vcxproj.filters b/TTXSamples/TTXCallSysMenu/TTXCallSysMenu.v17.vcxproj.filters similarity index 100% rename from TTXSamples/TTXCallSysMenu/TTXCallSysMenu.v14.vcxproj.filters rename to TTXSamples/TTXCallSysMenu/TTXCallSysMenu.v17.vcxproj.filters diff --git a/TTXSamples/TTXCallSysMenu/TTXCallSysMenu.v9.vcproj b/TTXSamples/TTXCallSysMenu/TTXCallSysMenu.v9.vcproj deleted file mode 100644 index e5a057f42..000000000 --- a/TTXSamples/TTXCallSysMenu/TTXCallSysMenu.v9.vcproj +++ /dev/null @@ -1,198 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/TTXSamples/TTXCallSysMenu/TTXCallSysMenu.vcproj b/TTXSamples/TTXCallSysMenu/TTXCallSysMenu.vcproj deleted file mode 100755 index 26922826c..000000000 --- a/TTXSamples/TTXCallSysMenu/TTXCallSysMenu.vcproj +++ /dev/null @@ -1,199 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/TTXSamples/TTXCheckUpdate/CMakeLists.txt b/TTXSamples/TTXCheckUpdate/CMakeLists.txt new file mode 100644 index 000000000..8e6e1ea94 --- /dev/null +++ b/TTXSamples/TTXCheckUpdate/CMakeLists.txt @@ -0,0 +1,112 @@ +set(PACKAGE_NAME "TTXCheckUpdate") + +project(${PACKAGE_NAME}) + +add_library( + ${PACKAGE_NAME} SHARED + ttxcheckupdate.c + parse.h + parse.cpp + resource.rc + resource.h + # + ../../libs/cJSON/cJSON.h + ../../libs/cJSON/cJSON.c + # + ../../teraterm/common/codeconv.h + ../../teraterm/common/dlglib.h + ../../teraterm/common/getcontent.h + ${CMAKE_CURRENT_BINARY_DIR}/../../teraterm/common/svnversion.h + ) + +if(SUPPORT_OLD_WINDOWS) + if(MSVC) + target_sources( + ${PACKAGE_NAME} + PRIVATE + ../../teraterm/common/compat_w95_vs2005.c + ) + endif() + if(MINGW) + target_sources( + ${PACKAGE_NAME} + PRIVATE + ../../teraterm/libmingw/tlssup.c + ) + target_link_libraries( + ${PACKAGE_NAME} + PRIVATE + -Wl,--whole-archive + mingw_msvcrt + -Wl,--no-whole-archive + ) + endif() +endif(SUPPORT_OLD_WINDOWS) + +source_group( + "common" + REGULAR_EXPRESSION + "teraterm\/common\/" + ) + +source_group( + "cJSON" + REGULAR_EXPRESSION + "..\/..\/libs\/cJSON\/" + ) + +set_target_properties( + ${PACKAGE_NAME} + PROPERTIES + PREFIX "" + RUNTIME_OUTPUT_DIRECTORY "${CMAKE_BINARY_DIR}/" + ) + +target_compile_definitions( + TTXCheckUpdate + PRIVATE + -D CJSON_HIDE_SYMBOLS + ) + +if(MSVC_VERSION STRLESS 1600) + # VS2005(1400),2008(1500) (<2010(1600)) special define + set_source_files_properties( + ../../libs/cJSON/cJSON.c + PROPERTIES + COMPILE_FLAGS "-D NAN=0" + ) +endif() + +target_include_directories( + ${PACKAGE_NAME} + PRIVATE + ../../libs/cJSON + ../../teraterm/teraterm +) + +target_link_libraries( + ${PACKAGE_NAME} + PRIVATE + common_static + ttpcmn + ) + +if(SUPPORT_OLD_WINDOWS) + target_link_libraries( + ${PACKAGE_NAME} + PRIVATE + layer_for_unicode + ) +endif(SUPPORT_OLD_WINDOWS) + +target_link_libraries( + ${PACKAGE_NAME} + PRIVATE + wininet.lib + ) + +install( + TARGETS ${PACKAGE_NAME} + RUNTIME + DESTINATION . + ) diff --git a/TTXSamples/TTXCheckUpdate/TTXCheckUpdate.v16.vcxproj b/TTXSamples/TTXCheckUpdate/TTXCheckUpdate.v16.vcxproj new file mode 100644 index 000000000..1732989f9 --- /dev/null +++ b/TTXSamples/TTXCheckUpdate/TTXCheckUpdate.v16.vcxproj @@ -0,0 +1,112 @@ + + + + + Debug + Win32 + + + Release + Win32 + + + + TTXCheckUpdate + Win32Proj + TTXCheckUpdate + 10.0 + {937DFA65-5709-4643-B778-482C15DEC581} + + + + DynamicLibrary + v142 + MultiByte + true + + + DynamicLibrary + v142 + MultiByte + + + + + + + + + + + + + <_ProjectFileVersion>12.0.30501.0 + + + $(SolutionDir)$(Configuration)\ + $(Configuration)\ + true + + + $(SolutionDir)$(Configuration)\ + $(Configuration)\ + false + + + + Disabled + $(SolutionDir)..\teraterm\common;$(SolutionDir)..\teraterm\teraterm;$(SolutionDir)..\libs\cJSON;%(AdditionalIncludeDirectories) + WIN32;_DEBUG;_WINDOWS;_USRDLL;CJSON_HIDE_SYMBOLS;%(PreprocessorDefinitions) + EnableFastChecks + MultiThreadedDebug + + Level3 + EditAndContinue + true + + + $(SolutionDir)..\teraterm\$(Configuration)\common_static.lib;$(SolutionDir)..\teraterm\$(Configuration)\ttpcmn.lib;Wininet.lib;%(AdditionalDependencies) + true + Windows + MachineX86 + false + + + + + $(SolutionDir)..\teraterm\common;$(SolutionDir)..\teraterm\teraterm;$(SolutionDir)..\libs\cJSON;%(AdditionalIncludeDirectories) + WIN32;NDEBUG;_WINDOWS;_USRDLL;CJSON_HIDE_SYMBOLS;%(PreprocessorDefinitions) + MultiThreaded + + Level3 + ProgramDatabase + true + + + $(SolutionDir)..\teraterm\$(Configuration)\common_static.lib;$(SolutionDir)..\teraterm\$(Configuration)\ttpcmn.lib;Wininet.lib;%(AdditionalDependencies) + true + Windows + true + true + MachineX86 + + + + + + + + + + + + + + + + + + + + + diff --git a/TTXSamples/TTXCheckUpdate/TTXCheckUpdate.v16.vcxproj.filters b/TTXSamples/TTXCheckUpdate/TTXCheckUpdate.v16.vcxproj.filters new file mode 100644 index 000000000..4525cd3b4 --- /dev/null +++ b/TTXSamples/TTXCheckUpdate/TTXCheckUpdate.v16.vcxproj.filters @@ -0,0 +1,56 @@ + + + + + {4FC737F1-C7A5-4376-A066-2A32D752A2FF} + cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx + + + {93995380-89BD-4b04-88EB-625FBE52EBFB} + h;hpp;hxx;hm;inl;inc;xsd + + + {67DA6AB6-F800-4c08-8B7A-83BB121AAD01} + rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav + + + {7f6c33d3-32cc-4cec-be30-1f30eefcde37} + + + {eba3832e-0743-46e0-bc55-5de2f37143ae} + + + + + Source Files + + + Source Files + + + cJSON + + + + + Header Files + + + common + + + common + + + common + + + cJSON + + + + + Resource Files + + + \ No newline at end of file diff --git a/TTXSamples/TTXCheckUpdate/TTXCheckUpdate.v17.vcxproj b/TTXSamples/TTXCheckUpdate/TTXCheckUpdate.v17.vcxproj new file mode 100644 index 000000000..089b66621 --- /dev/null +++ b/TTXSamples/TTXCheckUpdate/TTXCheckUpdate.v17.vcxproj @@ -0,0 +1,112 @@ + + + + + Debug + Win32 + + + Release + Win32 + + + + TTXCheckUpdate + Win32Proj + TTXCheckUpdate + 10.0 + {937DFA65-5709-4643-B778-482C15DEC581} + + + + DynamicLibrary + v143 + MultiByte + true + + + DynamicLibrary + v143 + MultiByte + + + + + + + + + + + + + <_ProjectFileVersion>12.0.30501.0 + + + $(SolutionDir)$(Configuration)\ + $(Configuration)\ + true + + + $(SolutionDir)$(Configuration)\ + $(Configuration)\ + false + + + + Disabled + $(SolutionDir)..\teraterm\common;$(SolutionDir)..\teraterm\teraterm;$(SolutionDir)..\libs\cJSON;%(AdditionalIncludeDirectories) + WIN32;_DEBUG;_WINDOWS;_USRDLL;CJSON_HIDE_SYMBOLS;%(PreprocessorDefinitions) + EnableFastChecks + MultiThreadedDebug + + Level3 + EditAndContinue + true + + + $(SolutionDir)..\teraterm\$(Configuration)\common_static.lib;$(SolutionDir)..\teraterm\$(Configuration)\ttpcmn.lib;Wininet.lib;%(AdditionalDependencies) + true + Windows + MachineX86 + false + + + + + $(SolutionDir)..\teraterm\common;$(SolutionDir)..\teraterm\teraterm;$(SolutionDir)..\libs\cJSON;%(AdditionalIncludeDirectories) + WIN32;NDEBUG;_WINDOWS;_USRDLL;CJSON_HIDE_SYMBOLS;%(PreprocessorDefinitions) + MultiThreaded + + Level3 + ProgramDatabase + true + + + $(SolutionDir)..\teraterm\$(Configuration)\common_static.lib;$(SolutionDir)..\teraterm\$(Configuration)\ttpcmn.lib;Wininet.lib;%(AdditionalDependencies) + true + Windows + true + true + MachineX86 + + + + + + + + + + + + + + + + + + + + + diff --git a/TTXSamples/TTXCheckUpdate/TTXCheckUpdate.v17.vcxproj.filters b/TTXSamples/TTXCheckUpdate/TTXCheckUpdate.v17.vcxproj.filters new file mode 100644 index 000000000..4525cd3b4 --- /dev/null +++ b/TTXSamples/TTXCheckUpdate/TTXCheckUpdate.v17.vcxproj.filters @@ -0,0 +1,56 @@ + + + + + {4FC737F1-C7A5-4376-A066-2A32D752A2FF} + cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx + + + {93995380-89BD-4b04-88EB-625FBE52EBFB} + h;hpp;hxx;hm;inl;inc;xsd + + + {67DA6AB6-F800-4c08-8B7A-83BB121AAD01} + rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav + + + {7f6c33d3-32cc-4cec-be30-1f30eefcde37} + + + {eba3832e-0743-46e0-bc55-5de2f37143ae} + + + + + Source Files + + + Source Files + + + cJSON + + + + + Header Files + + + common + + + common + + + common + + + cJSON + + + + + Resource Files + + + \ No newline at end of file diff --git a/TTXSamples/TTXCheckUpdate/parse.cpp b/TTXSamples/TTXCheckUpdate/parse.cpp new file mode 100644 index 000000000..41e08d701 --- /dev/null +++ b/TTXSamples/TTXCheckUpdate/parse.cpp @@ -0,0 +1,94 @@ + +#define _CRTDBG_MAP_ALLOC +#include +#include +#include + +#include "cJSON.h" + +#include "codeconv.h" + +#include "parse.h" + +static version_one_t *parse_json_one(cJSON *node, const char *lang, version_one_t *result) +{ + cJSON *node_version = cJSON_GetObjectItemCaseSensitive(node, "version"); + cJSON *node_version_major = cJSON_GetObjectItemCaseSensitive(node_version, "major"); + result->version_major = node_version_major->valueint; + cJSON *node_version_minor = cJSON_GetObjectItemCaseSensitive(node_version, "minor"); + result->version_minor = node_version_minor->valueint; + cJSON *node_version_text = cJSON_GetObjectItemCaseSensitive(node_version, "text"); + cJSON *node_version_text_lang = cJSON_GetObjectItemCaseSensitive(node_version_text, lang); + if (cJSON_HasObjectItem(node_version_text, lang)) { + node_version_text_lang = cJSON_GetObjectItemCaseSensitive(node_version_text, lang); + } + else { + node_version_text_lang = cJSON_GetObjectItemCaseSensitive(node_version_text, "default"); + } + result->version_text = _strdup(node_version_text_lang->valuestring); + cJSON *node_text = cJSON_GetObjectItemCaseSensitive(node, "text"); + cJSON *node_text_lang; + if (cJSON_HasObjectItem(node_text, lang)) { + node_text_lang = cJSON_GetObjectItemCaseSensitive(node_text, lang); + } + else { + node_text_lang = cJSON_GetObjectItemCaseSensitive(node_text, "default"); + } + result->text = _strdup(node_text_lang->valuestring); + cJSON *node_url = cJSON_GetObjectItemCaseSensitive(node, "url"); + if (node_url != NULL) { + result->url = _strdup(node_url->valuestring); + } + else { + result->url = NULL; + } + return result; +} + +version_one_t *ParseJson(const char *json, size_t *info_count) +{ + *info_count = 0; + + cJSON *json_root = cJSON_Parse(json); + if (json == NULL) { + // parse error + return NULL; + } + + cJSON *versions = cJSON_GetObjectItemCaseSensitive(json_root, "versions"); + if (versions == NULL) { + // parse error + return NULL; + } + int version_count = cJSON_GetArraySize(versions); + if (version_count == 0) { + // t@C? + return NULL; + } + version_one_t *results = (version_one_t *)calloc(version_count, sizeof(version_one_t)); + //const char *lang = "japanese"; + const char *lang = "jp"; + + for (int i = 0; i < version_count; i++) { + version_one_t *one = &results[i]; + cJSON *node_elem = cJSON_GetArrayItem(versions, i); + parse_json_one(node_elem, lang, one); + } + + cJSON_Delete(json_root); + + *info_count = version_count; + + return results; +} + +void ParseFree(version_one_t *ptr, size_t count) +{ + for (size_t i = 0; i < count; i++) { + version_one_t *v = &ptr[i]; + free((void *)v->version_text); + free((void *)v->text); + free((void *)v->url); + } + free(ptr); +} diff --git a/TTXSamples/TTXCheckUpdate/parse.h b/TTXSamples/TTXCheckUpdate/parse.h new file mode 100644 index 000000000..d6ee76cb4 --- /dev/null +++ b/TTXSamples/TTXCheckUpdate/parse.h @@ -0,0 +1,24 @@ + +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/** + * ׂ͂UTF-8 + */ +typedef struct { + int version_major; + int version_minor; + const char *version_text; + const char *text; + const char *url; +} version_one_t; + +version_one_t *ParseJson(const char *json, size_t *info_count); +void ParseFree(version_one_t *ptr, size_t count); + +#ifdef __cplusplus +} +#endif diff --git a/TTXSamples/TTXCheckUpdate/resource.h b/TTXSamples/TTXCheckUpdate/resource.h new file mode 100644 index 000000000..45e530ac3 --- /dev/null +++ b/TTXSamples/TTXCheckUpdate/resource.h @@ -0,0 +1,21 @@ +//{{NO_DEPENDENCIES}} +// Microsoft Visual C++ ŐꂽCN[h t@CB +// resource.rc Ŏgp +// +#define IDD_CHECK_UPDATE_DIALOG 101 +#define IDC_DETAIL_EDIT 1001 +#define IDC_VERSION_DROPDOWN 1002 +#define IDC_URL_EDIT 1003 +#define IDC_OPEN 1004 +#define IDC_VERSION_LABEL 1005 + +// Next default values for new objects +// +#ifdef APSTUDIO_INVOKED +#ifndef APSTUDIO_READONLY_SYMBOLS +#define _APS_NEXT_RESOURCE_VALUE 103 +#define _APS_NEXT_COMMAND_VALUE 40001 +#define _APS_NEXT_CONTROL_VALUE 1006 +#define _APS_NEXT_SYMED_VALUE 101 +#endif +#endif diff --git a/TTXSamples/TTXCheckUpdate/resource.rc b/TTXSamples/TTXCheckUpdate/resource.rc new file mode 100644 index 000000000..add82c119 --- /dev/null +++ b/TTXSamples/TTXCheckUpdate/resource.rc @@ -0,0 +1,123 @@ +// Microsoft Visual C++ generated resource script. +// +#include "resource.h" + +#define APSTUDIO_READONLY_SYMBOLS +///////////////////////////////////////////////////////////////////////////// +// +// Generated from the TEXTINCLUDE 2 resource. +// +#include +#define IDC_STATIC -1 +///////////////////////////////////////////////////////////////////////////// +#undef APSTUDIO_READONLY_SYMBOLS + +///////////////////////////////////////////////////////////////////////////// +// { ({) resources + +#if !defined(AFX_RESOURCE_DLL) || defined(AFX_TARG_JPN) +LANGUAGE LANG_JAPANESE, SUBLANG_DEFAULT +#pragma code_page(932) + +#ifdef APSTUDIO_INVOKED +///////////////////////////////////////////////////////////////////////////// +// +// TEXTINCLUDE +// + +1 TEXTINCLUDE +BEGIN + "resource.h\0" +END + +2 TEXTINCLUDE +BEGIN + "#include \r\n" + "#define IDC_STATIC -1\0" +END + +3 TEXTINCLUDE +BEGIN + "\r\n" + "\0" +END + +#endif // APSTUDIO_INVOKED + +#endif // { ({) resources +///////////////////////////////////////////////////////////////////////////// + + +///////////////////////////////////////////////////////////////////////////// +// p resources + +#if !defined(AFX_RESOURCE_DLL) || defined(AFX_TARG_ENU) +LANGUAGE LANG_ENGLISH, SUBLANG_NEUTRAL +#pragma code_page(1252) + +///////////////////////////////////////////////////////////////////////////// +// +// Dialog +// + +IDD_CHECK_UPDATE_DIALOG DIALOGEX 0, 0, 253, 218 +STYLE DS_SETFONT | DS_MODALFRAME | DS_FIXEDSYS | WS_POPUP | WS_CAPTION | WS_SYSMENU +CAPTION "Check Update" +FONT 8, "MS Shell Dlg", 400, 0, 0x1 +BEGIN + DEFPUSHBUTTON "OK",IDOK,196,197,50,14 + LTEXT "&Version",IDC_VERSION_LABEL,7,9,239,8 + COMBOBOX IDC_VERSION_DROPDOWN,19,23,148,121,CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP + LTEXT "url",IDC_STATIC,7,42,29,8 + EDITTEXT IDC_URL_EDIT,19,52,227,14,ES_AUTOHSCROLL | ES_READONLY | NOT WS_TABSTOP + PUSHBUTTON "&Open",IDC_OPEN,19,72,50,14 + LTEXT "detail",IDC_STATIC,7,93,18,8 + EDITTEXT IDC_DETAIL_EDIT,19,106,227,86,ES_MULTILINE | ES_AUTOVSCROLL | ES_AUTOHSCROLL | ES_READONLY | NOT WS_TABSTOP +END + + +///////////////////////////////////////////////////////////////////////////// +// +// DESIGNINFO +// + +#ifdef APSTUDIO_INVOKED +GUIDELINES DESIGNINFO +BEGIN + IDD_CHECK_UPDATE_DIALOG, DIALOG + BEGIN + LEFTMARGIN, 7 + RIGHTMARGIN, 246 + VERTGUIDE, 19 + TOPMARGIN, 7 + BOTTOMMARGIN, 211 + END +END +#endif // APSTUDIO_INVOKED + + +///////////////////////////////////////////////////////////////////////////// +// +// AFX_DIALOG_LAYOUT +// + +IDD_CHECK_UPDATE_DIALOG AFX_DIALOG_LAYOUT +BEGIN + 0 +END + +#endif // p resources +///////////////////////////////////////////////////////////////////////////// + + + +#ifndef APSTUDIO_INVOKED +///////////////////////////////////////////////////////////////////////////// +// +// Generated from the TEXTINCLUDE 3 resource. +// + + +///////////////////////////////////////////////////////////////////////////// +#endif // not APSTUDIO_INVOKED + diff --git a/TTXSamples/TTXCheckUpdate/ttxcheckupdate.c b/TTXSamples/TTXCheckUpdate/ttxcheckupdate.c new file mode 100644 index 000000000..6aec91fa5 --- /dev/null +++ b/TTXSamples/TTXCheckUpdate/ttxcheckupdate.c @@ -0,0 +1,341 @@ +/* + * Copyright (C) 2020- TeraTerm Project + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * 3. The name of the author may not be used to endorse or promote products + * derived from this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE AUTHORS ``AS IS'' AND ANY EXPRESS OR + * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES + * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. + * IN NO EVENT SHALL THE AUTHORS BE LIABLE FOR ANY DIRECT, INDIRECT, + * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT + * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, + * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY + * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF + * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */ + +#include +#include +#include +#define _CRTDBG_MAP_ALLOC +#include + +#include "teraterm.h" +#include "tttypes.h" +#include "ttplugin.h" + +#include "codeconv.h" +#include "dlglib.h" +#include "i18n.h" +#include "asprintf.h" +#include "tt-version.h" // for TT_VERSION_MAJOR, TT_VERSION_MINOR + +#include "resource.h" +#include "parse.h" +#include "getcontent.h" + +#define ORDER 4000 +#define ID_MENUITEM 55900 // see reference/develop.html + +typedef struct { + HANDLE hInst; + PTTSet ts; + PComVar cv; + version_one_t *versions; + size_t versions_count; +} TInstVar; + +static TInstVar InstVar; +static TInstVar *pvar; + +/** + * hbv_EɃo[Wꗗ̈ꗗZbg + * + * ŏɌ‚ + * running_version ̃W[o[WƓ + * o[WI + */ +static int SetDropdown(HWND hDlg, int running_version) +{ + const int version_major = running_version / 10000; + const int version_minor = running_version % 10000; + char *str; + int cursor = -1; + size_t i; + char version_label[32]; + + GetDlgItemText(hDlg, IDC_VERSION_LABEL, version_label, sizeof(version_label)); +#if defined(SVNVERSION) + asprintf(&str, "%s (current version teraterm:%d.%d, ttxcheckupdate:%d.%d %s r%d)", version_label, version_major, + version_minor, TT_VERSION_MAJOR, TT_VERSION_MINOR, BRANCH_NAME, SVNVERSION); +#else + asprintf(&str, "%s (current version teraterm:%d.%d, ttxcheckupdate:%d.%d)", version_label, version_major, + version_minor, TT_VERSION_MAJOR, TT_VERSION_MINOR); +#endif + SetDlgItemTextA(hDlg, IDC_VERSION_LABEL, str); + free(str); + + SendDlgItemMessageW(hDlg, IDC_VERSION_DROPDOWN, CB_RESETCONTENT, 0, 0); + for (i = 0; i < pvar->versions_count; i++) { + const version_one_t *v = &pvar->versions[i]; + wchar_t *strW = ToWcharU8(v->version_text); + SendDlgItemMessageW(hDlg, IDC_VERSION_DROPDOWN, CB_ADDSTRING, 0, (LPARAM)strW); + free(strW); + if (cursor == -1 && v->version_major == version_major) { + cursor = (int)i; + } + } + if (cursor == -1) { + cursor = 0; + } + return cursor; +} + +/** + * version_one_t ̏_CAOɕ\ + */ +static void SetTexts(HWND hDlg, const version_one_t *version) +{ + const version_one_t *v = version; + + wchar_t *strW = ToWcharU8(v->text); + SetWindowTextW(GetDlgItem(hDlg, IDC_DETAIL_EDIT), strW); + free(strW); + + if (v->url == NULL) { + EnableWindow(GetDlgItem(hDlg, IDC_OPEN), FALSE); + EnableWindow(GetDlgItem(hDlg, IDC_URL_EDIT), FALSE); + SetWindowTextA(GetDlgItem(hDlg, IDC_URL_EDIT), ""); + } + else { + EnableWindow(GetDlgItem(hDlg, IDC_OPEN), TRUE); + EnableWindow(GetDlgItem(hDlg, IDC_URL_EDIT), TRUE); + SetWindowTextA(GetDlgItem(hDlg, IDC_URL_EDIT), v->url); + } +} + +static INT_PTR CALLBACK DlgProc(HWND hDlg, UINT msg, WPARAM wParam, LPARAM lParam) +{ + (void)lParam; + switch (msg) { + case WM_INITDIALOG: { + int cursor = SetDropdown(hDlg, pvar->ts->RunningVersion); + SendDlgItemMessage(hDlg, IDC_VERSION_DROPDOWN, CB_SETCURSEL, cursor, 0); + SetTexts(hDlg, &pvar->versions[cursor]); + PostMessage(hDlg, WM_NEXTDLGCTL, (WPARAM)GetDlgItem(hDlg, IDOK), TRUE); + CenterWindow(hDlg, GetParent(hDlg)); + break; + } + + case WM_COMMAND: { + switch (wParam) { + case IDOK | (BN_CLICKED << 16): + EndDialog(hDlg, 1); + break; + case IDCANCEL | (BN_CLICKED << 16): + EndDialog(hDlg, 0); + break; + case IDC_OPEN | (BN_CLICKED << 16): { + int cursor = (int)SendDlgItemMessage(hDlg, IDC_VERSION_DROPDOWN, CB_GETCURSEL, 0, 0); + const char *url = pvar->versions[cursor].url; + ShellExecuteA(NULL, NULL, url, NULL, NULL, SW_SHOWNORMAL); + break; + } + case IDC_VERSION_DROPDOWN | (CBN_SELCHANGE << 16): { + int cursor = (int)SendDlgItemMessage(hDlg, IDC_VERSION_DROPDOWN, CB_GETCURSEL, 0, 0); + SetTexts(hDlg, &pvar->versions[cursor]); + break; + } + default: + break; + } + break; + } + + default: + break; + } + return FALSE; +} + +static void ShowDialog(HWND hWnd) +{ + const wchar_t *update_info_url_default = + L"https://osdn.dl.osdn.net/storage/g/t/tt/ttssh2/snapshot/teraterm_version.json"; + const wchar_t *agent_base = L"teraterm_updatechecker"; + wchar_t agent[128]; + int result_mb; + char *json_raw_ptr; + size_t json_raw_size; + BOOL result_bool; + size_t json_size; + char *json_ptr; + const wchar_t *UILanguageFileW = pvar->ts->UILanguageFileW; + wchar_t *update_info_url; + static const TTMessageBoxInfoW info = { + "TTXCheckUpdate", + NULL, L"Tera Term", + "MSG_CHECKUPDATE", L"Do you want to check update?\n%s", + MB_YESNO | MB_ICONEXCLAMATION + }; + + /* XV擾Ăok? */ + GetI18nStrWW("TTXCheckUpdate", "JSON_URL", update_info_url_default, UILanguageFileW, &update_info_url); + result_mb = TTMessageBoxW(hWnd, &info, UILanguageFileW, update_info_url); + if (result_mb == IDNO) { + return; + } + + /* XV擾A'\0'lj遨 json쐬 */ + swprintf(agent, _countof(agent), L"%s_%d", agent_base, pvar->ts->RunningVersion); + result_bool = GetContent(update_info_url, agent, (void**)&json_raw_ptr, &json_raw_size); + free(update_info_url); + if (!result_bool) { + static const TTMessageBoxInfoW info = { + "TTXCheckUpdate", + NULL, L"Tera Term", + "MSG_ERROR_ACCESS", L"access error?", + MB_OK | MB_ICONEXCLAMATION + }; + TTMessageBoxW(hWnd, &info, UILanguageFileW); + return; + } + json_size = json_raw_size + 1; + json_ptr = realloc(json_raw_ptr, json_size); + if (json_ptr == NULL) { + free(json_raw_ptr); + return; + } + json_raw_ptr = NULL; + json_ptr[json_size - 1] = '\0'; + + /* jsonp[X, versionsɏ񂪓 */ + pvar->versions = ParseJson(json_ptr, &pvar->versions_count); + if (pvar->versions == NULL) { + static const TTMessageBoxInfoW info = { + "TTXCheckUpdate", + NULL, L"Tera Term", + "MSG_ERROR_PARSE", L"parse error?", + MB_OK | MB_ICONEXCLAMATION + }; + TTMessageBoxW(hWnd, &info, UILanguageFileW); + return; + } + + /* _CAOo */ + SetDialogFont(pvar->ts->DialogFontNameW, pvar->ts->DialogFontPoint, pvar->ts->DialogFontCharSet, + pvar->ts->UILanguageFileW, "Tera Term", "DLG_TAHOMA_FONT"); + TTDialogBoxParam(pvar->hInst, MAKEINTRESOURCE(IDD_CHECK_UPDATE_DIALOG), hWnd, DlgProc, (LPARAM)pvar); + + /* I */ + free(json_ptr); + ParseFree(pvar->versions, pvar->versions_count); + pvar->versions = NULL; +} + +static void WINAPI TTXInit(PTTSet ts, PComVar cv) +{ + pvar->ts = ts; + pvar->cv = cv; +} + +static void WINAPI TTXModifyMenu(HMENU menu) +{ + static const DlgTextInfo MenuTextInfo[] = { + { ID_MENUITEM, "MENU_CHECKUPDATE" }, + }; + const UINT ID_HELP_INDEX2 = 50910; + + const wchar_t *UILanguageFileW = pvar->ts->UILanguageFileW; + + TTInsertMenuItemA(menu, ID_HELP_INDEX2, MF_ENABLED, ID_MENUITEM, "Check &Update...", FALSE); + TTInsertMenuItemA(menu, ID_HELP_INDEX2, MF_SEPARATOR, 0, NULL, FALSE); + + SetI18nMenuStrsW(menu, "TTXCheckUpdate", MenuTextInfo, _countof(MenuTextInfo), UILanguageFileW); +} + +static int WINAPI TTXProcessCommand(HWND hWin, WORD cmd) +{ + if (cmd == ID_MENUITEM) { + ShowDialog(hWin); + return 1; + } + return 0; +} + +static TTXExports Exports = { + sizeof(TTXExports), + ORDER, + + TTXInit, + NULL, + NULL, + NULL, + NULL, + NULL, + TTXModifyMenu, + NULL, + TTXProcessCommand, + NULL, + NULL, + NULL, + NULL, +}; + +BOOL __declspec(dllexport) WINAPI TTXBind(WORD Version, TTXExports *exports) +{ + size_t size; + + if (Version != TTVERSION) { + return FALSE; + } + +#if 0 + if (!IsWindowsNTKernel()) { + // TODO Windows10ȊOA + return FALSE; + } +#endif + + size = sizeof(Exports) - sizeof(exports->size); + if ((int)size > exports->size) { + size = exports->size; + } + memcpy((char *)exports + sizeof(exports->size), (char *)&Exports + sizeof(exports->size), size); + return TRUE; +} + +BOOL WINAPI DllMain(HANDLE hInstance, ULONG ul_reason_for_call, LPVOID lpReserved) +{ + (void)lpReserved; + switch (ul_reason_for_call) { + case DLL_THREAD_ATTACH: + /* do thread initialization */ + _CrtSetDbgFlag(_CrtSetDbgFlag(_CRTDBG_LEAK_CHECK_DF) | _CRTDBG_LEAK_CHECK_DF); + break; + case DLL_THREAD_DETACH: + /* do thread cleanup */ + break; + case DLL_PROCESS_ATTACH: + /* do process initialization */ + pvar = &InstVar; + pvar->hInst = hInstance; + break; + case DLL_PROCESS_DETACH: + /* do process cleanup */ + break; + } + return TRUE; +} diff --git a/TTXSamples/TTXCommandLineOpt/CMakeLists.txt b/TTXSamples/TTXCommandLineOpt/CMakeLists.txt new file mode 100644 index 000000000..6b39248e2 --- /dev/null +++ b/TTXSamples/TTXCommandLineOpt/CMakeLists.txt @@ -0,0 +1,50 @@ +set(PACKAGE_NAME "TTXCommandLineOpt") + +project(${PACKAGE_NAME}) + +add_library( + ${PACKAGE_NAME} SHARED + TTXCommandLineOpt.c + ReadMe.txt + ReadMe-ja.txt + ) + +if(SUPPORT_OLD_WINDOWS) + if(MSVC) + target_sources( + ${PACKAGE_NAME} + PRIVATE + ../../teraterm/common/compat_w95_vs2005.c + ) + endif() + if(MINGW) + target_link_libraries( + ${PACKAGE_NAME} + PRIVATE + -Wl,--whole-archive + mingw_msvcrt + mingw_dll_tls + -Wl,--no-whole-archive + ) + endif() +endif(SUPPORT_OLD_WINDOWS) + +set_target_properties( + ${PACKAGE_NAME} + PROPERTIES + PREFIX "" + RUNTIME_OUTPUT_DIRECTORY "${CMAKE_BINARY_DIR}/" + ) + +target_include_directories( + ${PACKAGE_NAME} + PRIVATE + ../../teraterm/teraterm + ../../teraterm/common + ) + +target_link_libraries( + ${PACKAGE_NAME} + PRIVATE + ttpcmn + ) diff --git a/TTXSamples/TTXCommandLineOpt/TTXCommandLineOpt.c b/TTXSamples/TTXCommandLineOpt/TTXCommandLineOpt.c index 53568ecd4..79e9eb3fb 100755 --- a/TTXSamples/TTXCommandLineOpt/TTXCommandLineOpt.c +++ b/TTXSamples/TTXCommandLineOpt/TTXCommandLineOpt.c @@ -4,8 +4,7 @@ #include "tt_res.h" #include #include - -#include "compat_w95.h" +#include #define ORDER 5800 @@ -25,10 +24,10 @@ static void PASCAL TTXInit(PTTSet ts, PComVar cv) { pvar->cv = cv; } -BOOL ColorStr2ColorRef(COLORREF *color, PCHAR Str) { +static BOOL ColorStr2ColorRef(COLORREF *color, wchar_t *Str) { int TmpColor[3]; int i, result; - PCHAR cur, next; + wchar_t *cur, *next; cur = Str; @@ -36,10 +35,10 @@ BOOL ColorStr2ColorRef(COLORREF *color, PCHAR Str) { if (!cur) return FALSE; - if ((next = strchr(cur, ',')) != NULL) + if ((next = wcschr(cur, L',')) != NULL) *next = 0; - result = sscanf_s(cur, "%d", &TmpColor[i]); + result = swscanf_s(cur, L"%d", &TmpColor[i]); if (next) *next++ = ','; @@ -54,9 +53,9 @@ BOOL ColorStr2ColorRef(COLORREF *color, PCHAR Str) { return TRUE; } -static void PASCAL TTXParseParam(PCHAR Param, PTTSet ts, PCHAR DDETopic) { - char buff[1024]; - PCHAR start, cur, next; +static void PASCAL TTXParseParam(wchar_t *Param, PTTSet ts, PCHAR DDETopic) { + wchar_t buff[1024]; + wchar_t *start, *cur, *next; int x, y; /* the first term shuld be executable filename of Tera Term */ @@ -64,20 +63,20 @@ static void PASCAL TTXParseParam(PCHAR Param, PTTSet ts, PCHAR DDETopic) { cur = start; while (next = GetParam(buff, sizeof(buff), cur)) { - if (_strnicmp(buff, "/FG=", 4) == 0) { + if (_wcsnicmp(buff, L"/FG=", 4) == 0) { ColorStr2ColorRef(&(ts->VTColor[0]), &buff[4]); - memset(cur, ' ', next - cur); + wmemset(cur, ' ', next - cur); } - else if (_strnicmp(buff, "/BG=", 4) == 0) { + else if (_wcsnicmp(buff, L"/BG=", 4) == 0) { ColorStr2ColorRef(&(ts->VTColor[1]), &buff[4]); - memset(cur, ' ', next - cur); + wmemset(cur, ' ', next - cur); } - else if (_strnicmp(buff, "/SIZE=", 6) == 0) { - if (sscanf_s(buff+6, "%dx%d", &x, &y) == 2 || sscanf_s(buff+6, "%d,%d", &x, &y) == 2) { - ts->TerminalWidth = x; - ts->TerminalHeight = y; + else if (_wcsnicmp(buff, L"/SIZE=", 6) == 0) { + if (swscanf_s(buff+6, L"%dx%d", &x, &y) == 2 || swscanf_s(buff+6, L"%d,%d", &x, &y) == 2) { + ts->TerminalWidth = x; + ts->TerminalHeight = y; } - memset(cur, ' ', next - cur); + wmemset(cur, ' ', next - cur); } cur = next; } @@ -131,7 +130,6 @@ BOOL WINAPI DllMain(HANDLE hInstance, break; case DLL_PROCESS_ATTACH: /* do process initialization */ - DoCover_IsDebuggerPresent(); hInst = hInstance; pvar = &InstVar; break; diff --git a/TTXSamples/TTXCommandLineOpt/TTXCommandLineOpt.v10.vcxproj b/TTXSamples/TTXCommandLineOpt/TTXCommandLineOpt.v10.vcxproj deleted file mode 100644 index c99abdad0..000000000 --- a/TTXSamples/TTXCommandLineOpt/TTXCommandLineOpt.v10.vcxproj +++ /dev/null @@ -1,97 +0,0 @@ - - - - - Debug - Win32 - - - Release - Win32 - - - - {EE8BFC38-7000-42F1-BBC3-17F19855918A} - TTXCommandLineOpt - Win32Proj - TTXCommandLineOpt - - - - DynamicLibrary - NotSet - true - - - DynamicLibrary - NotSet - - - - - - - - - - - - - <_ProjectFileVersion>10.0.40219.1 - $(SolutionDir)$(Configuration)\ - $(Configuration)\ - true - $(SolutionDir)$(Configuration)\ - $(Configuration)\ - false - - - - Disabled - $(SolutionDir)..\teraterm\common;$(SolutionDir)..\teraterm\teraterm;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;_USRDLL;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebug - - - Level3 - EditAndContinue - - - $(SolutionDir)..\teraterm\$(Configuration)\ttpcmn.lib;%(AdditionalDependencies) - true - Windows - MachineX86 - - - - - $(SolutionDir)..\teraterm\common;$(SolutionDir)..\teraterm\teraterm;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;_USRDLL;%(PreprocessorDefinitions) - MultiThreaded - - - Level3 - ProgramDatabase - - - $(SolutionDir)..\teraterm\$(Configuration)\ttpcmn.lib;%(AdditionalDependencies) - true - Windows - true - true - MachineX86 - - - - - - - - - - - - - \ No newline at end of file diff --git a/TTXSamples/TTXCommandLineOpt/TTXCommandLineOpt.v10.vcxproj.filters b/TTXSamples/TTXCommandLineOpt/TTXCommandLineOpt.v10.vcxproj.filters deleted file mode 100644 index cbdaf80c4..000000000 --- a/TTXSamples/TTXCommandLineOpt/TTXCommandLineOpt.v10.vcxproj.filters +++ /dev/null @@ -1,25 +0,0 @@ - - - - - {4FC737F1-C7A5-4376-A066-2A32D752A2FF} - cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx - - - {35bd86d7-dfe4-4379-8122-0baeace068dd} - - - - - Source Files - - - - - ReadMe - - - ReadMe - - - \ No newline at end of file diff --git a/TTXSamples/TTXCommandLineOpt/TTXCommandLineOpt.v11.vcxproj b/TTXSamples/TTXCommandLineOpt/TTXCommandLineOpt.v11.vcxproj deleted file mode 100644 index c733946ea..000000000 --- a/TTXSamples/TTXCommandLineOpt/TTXCommandLineOpt.v11.vcxproj +++ /dev/null @@ -1,102 +0,0 @@ - - - - - Debug - Win32 - - - Release - Win32 - - - - {EE8BFC38-7000-42F1-BBC3-17F19855918A} - TTXCommandLineOpt - Win32Proj - TTXCommandLineOpt - - - - DynamicLibrary - v110 - NotSet - true - - - DynamicLibrary - v110 - NotSet - - - - - - - - - - - - - <_ProjectFileVersion>11.0.61030.0 - - - $(SolutionDir)$(Configuration)\ - $(Configuration)\ - true - - - $(SolutionDir)$(Configuration)\ - $(Configuration)\ - false - - - - Disabled - $(SolutionDir)..\teraterm\common;$(SolutionDir)..\teraterm\teraterm;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;_USRDLL;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebug - - Level3 - EditAndContinue - - - $(SolutionDir)..\teraterm\$(Configuration)\ttpcmn.lib;%(AdditionalDependencies) - true - Windows - MachineX86 - false - - - - - $(SolutionDir)..\teraterm\common;$(SolutionDir)..\teraterm\teraterm;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;_USRDLL;%(PreprocessorDefinitions) - MultiThreaded - - Level3 - ProgramDatabase - - - $(SolutionDir)..\teraterm\$(Configuration)\ttpcmn.lib;%(AdditionalDependencies) - true - Windows - true - true - MachineX86 - - - - - - - - - - - - - \ No newline at end of file diff --git a/TTXSamples/TTXCommandLineOpt/TTXCommandLineOpt.v11.vcxproj.filters b/TTXSamples/TTXCommandLineOpt/TTXCommandLineOpt.v11.vcxproj.filters deleted file mode 100644 index 7a68ee343..000000000 --- a/TTXSamples/TTXCommandLineOpt/TTXCommandLineOpt.v11.vcxproj.filters +++ /dev/null @@ -1,25 +0,0 @@ - - - - - {4FC737F1-C7A5-4376-A066-2A32D752A2FF} - cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx - - - {dc5b89fb-9dc7-447f-b41c-51242ca20c1f} - - - - - Source Files - - - - - ReadMe - - - ReadMe - - - \ No newline at end of file diff --git a/TTXSamples/TTXCommandLineOpt/TTXCommandLineOpt.v12.vcxproj b/TTXSamples/TTXCommandLineOpt/TTXCommandLineOpt.v12.vcxproj deleted file mode 100644 index ad70b561a..000000000 --- a/TTXSamples/TTXCommandLineOpt/TTXCommandLineOpt.v12.vcxproj +++ /dev/null @@ -1,102 +0,0 @@ - - - - - Debug - Win32 - - - Release - Win32 - - - - {EE8BFC38-7000-42F1-BBC3-17F19855918A} - TTXCommandLineOpt - Win32Proj - TTXCommandLineOpt - - - - DynamicLibrary - v120 - NotSet - true - - - DynamicLibrary - v120 - NotSet - - - - - - - - - - - - - <_ProjectFileVersion>12.0.30501.0 - - - $(SolutionDir)$(Configuration)\ - $(Configuration)\ - true - - - $(SolutionDir)$(Configuration)\ - $(Configuration)\ - false - - - - Disabled - $(SolutionDir)..\teraterm\common;$(SolutionDir)..\teraterm\teraterm;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;_USRDLL;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebug - - Level3 - EditAndContinue - - - $(SolutionDir)..\teraterm\$(Configuration)\ttpcmn.lib;%(AdditionalDependencies) - true - Windows - MachineX86 - false - - - - - $(SolutionDir)..\teraterm\common;$(SolutionDir)..\teraterm\teraterm;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;_USRDLL;%(PreprocessorDefinitions) - MultiThreaded - - Level3 - ProgramDatabase - - - $(SolutionDir)..\teraterm\$(Configuration)\ttpcmn.lib;%(AdditionalDependencies) - true - Windows - true - true - MachineX86 - - - - - - - - - - - - - \ No newline at end of file diff --git a/TTXSamples/TTXCommandLineOpt/TTXCommandLineOpt.v14.vcxproj b/TTXSamples/TTXCommandLineOpt/TTXCommandLineOpt.v14.vcxproj deleted file mode 100644 index ee0efc5d9..000000000 --- a/TTXSamples/TTXCommandLineOpt/TTXCommandLineOpt.v14.vcxproj +++ /dev/null @@ -1,102 +0,0 @@ - - - - - Debug - Win32 - - - Release - Win32 - - - - {EE8BFC38-7000-42F1-BBC3-17F19855918A} - TTXCommandLineOpt - Win32Proj - TTXCommandLineOpt - - - - DynamicLibrary - v140 - NotSet - true - - - DynamicLibrary - v140 - NotSet - - - - - - - - - - - - - <_ProjectFileVersion>12.0.30501.0 - - - $(SolutionDir)$(Configuration)\ - $(Configuration)\ - true - - - $(SolutionDir)$(Configuration)\ - $(Configuration)\ - false - - - - Disabled - $(SolutionDir)..\teraterm\common;$(SolutionDir)..\teraterm\teraterm;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;_USRDLL;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebug - - Level3 - EditAndContinue - - - $(SolutionDir)..\teraterm\$(Configuration)\ttpcmn.lib;%(AdditionalDependencies) - true - Windows - MachineX86 - false - - - - - $(SolutionDir)..\teraterm\common;$(SolutionDir)..\teraterm\teraterm;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;_USRDLL;%(PreprocessorDefinitions) - MultiThreaded - - Level3 - ProgramDatabase - - - $(SolutionDir)..\teraterm\$(Configuration)\ttpcmn.lib;%(AdditionalDependencies) - true - Windows - true - true - MachineX86 - - - - - - - - - - - - - \ No newline at end of file diff --git a/TTXSamples/TTXCommandLineOpt/TTXCommandLineOpt.v15.vcxproj b/TTXSamples/TTXCommandLineOpt/TTXCommandLineOpt.v15.vcxproj deleted file mode 100644 index 8f06eac2a..000000000 --- a/TTXSamples/TTXCommandLineOpt/TTXCommandLineOpt.v15.vcxproj +++ /dev/null @@ -1,102 +0,0 @@ - - - - - Debug - Win32 - - - Release - Win32 - - - - {EE8BFC38-7000-42F1-BBC3-17F19855918A} - TTXCommandLineOpt - Win32Proj - TTXCommandLineOpt - - - - DynamicLibrary - v141 - NotSet - true - - - DynamicLibrary - v141 - NotSet - - - - - - - - - - - - - <_ProjectFileVersion>12.0.30501.0 - - - $(SolutionDir)$(Configuration)\ - $(Configuration)\ - true - - - $(SolutionDir)$(Configuration)\ - $(Configuration)\ - false - - - - Disabled - $(SolutionDir)..\teraterm\common;$(SolutionDir)..\teraterm\teraterm;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;_USRDLL;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebug - - Level3 - EditAndContinue - - - $(SolutionDir)..\teraterm\$(Configuration)\ttpcmn.lib;%(AdditionalDependencies) - true - Windows - MachineX86 - false - - - - - $(SolutionDir)..\teraterm\common;$(SolutionDir)..\teraterm\teraterm;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;_USRDLL;%(PreprocessorDefinitions) - MultiThreaded - - Level3 - ProgramDatabase - - - $(SolutionDir)..\teraterm\$(Configuration)\ttpcmn.lib;%(AdditionalDependencies) - true - Windows - true - true - MachineX86 - - - - - - - - - - - - - \ No newline at end of file diff --git a/TTXSamples/TTXCommandLineOpt/TTXCommandLineOpt.v15.vcxproj.filters b/TTXSamples/TTXCommandLineOpt/TTXCommandLineOpt.v15.vcxproj.filters deleted file mode 100644 index fe4cfb29d..000000000 --- a/TTXSamples/TTXCommandLineOpt/TTXCommandLineOpt.v15.vcxproj.filters +++ /dev/null @@ -1,25 +0,0 @@ - - - - - {4FC737F1-C7A5-4376-A066-2A32D752A2FF} - cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx - - - {ea93460b-20a9-4d07-acd5-813091583716} - - - - - Source Files - - - - - ReadMe - - - ReadMe - - - \ No newline at end of file diff --git a/TTXSamples/TTXCommandLineOpt/TTXCommandLineOpt.v16.vcxproj b/TTXSamples/TTXCommandLineOpt/TTXCommandLineOpt.v16.vcxproj new file mode 100644 index 000000000..cc5d1c7d0 --- /dev/null +++ b/TTXSamples/TTXCommandLineOpt/TTXCommandLineOpt.v16.vcxproj @@ -0,0 +1,103 @@ + + + + + Debug + Win32 + + + Release + Win32 + + + + {EE8BFC38-7000-42F1-BBC3-17F19855918A} + TTXCommandLineOpt + Win32Proj + TTXCommandLineOpt + 10.0 + + + + DynamicLibrary + v142 + NotSet + true + + + DynamicLibrary + v142 + NotSet + + + + + + + + + + + + + <_ProjectFileVersion>12.0.30501.0 + + + $(SolutionDir)$(Configuration)\ + $(Configuration)\ + true + + + $(SolutionDir)$(Configuration)\ + $(Configuration)\ + false + + + + Disabled + $(SolutionDir)..\teraterm\common;$(SolutionDir)..\teraterm\teraterm;%(AdditionalIncludeDirectories) + WIN32;_DEBUG;_WINDOWS;_USRDLL;%(PreprocessorDefinitions) + false + EnableFastChecks + MultiThreadedDebug + + Level3 + EditAndContinue + + + $(SolutionDir)..\teraterm\$(Configuration)\ttpcmn.lib;%(AdditionalDependencies) + true + Windows + MachineX86 + false + + + + + $(SolutionDir)..\teraterm\common;$(SolutionDir)..\teraterm\teraterm;%(AdditionalIncludeDirectories) + WIN32;NDEBUG;_WINDOWS;_USRDLL;%(PreprocessorDefinitions) + MultiThreaded + + Level3 + ProgramDatabase + + + $(SolutionDir)..\teraterm\$(Configuration)\ttpcmn.lib;%(AdditionalDependencies) + true + Windows + true + true + MachineX86 + + + + + + + + + + + + + diff --git a/TTXSamples/TTXCommandLineOpt/TTXCommandLineOpt.v12.vcxproj.filters b/TTXSamples/TTXCommandLineOpt/TTXCommandLineOpt.v16.vcxproj.filters similarity index 100% rename from TTXSamples/TTXCommandLineOpt/TTXCommandLineOpt.v12.vcxproj.filters rename to TTXSamples/TTXCommandLineOpt/TTXCommandLineOpt.v16.vcxproj.filters diff --git a/TTXSamples/TTXCommandLineOpt/TTXCommandLineOpt.v17.vcxproj b/TTXSamples/TTXCommandLineOpt/TTXCommandLineOpt.v17.vcxproj new file mode 100644 index 000000000..f9c977c6c --- /dev/null +++ b/TTXSamples/TTXCommandLineOpt/TTXCommandLineOpt.v17.vcxproj @@ -0,0 +1,103 @@ + + + + + Debug + Win32 + + + Release + Win32 + + + + {EE8BFC38-7000-42F1-BBC3-17F19855918A} + TTXCommandLineOpt + Win32Proj + TTXCommandLineOpt + 10.0 + + + + DynamicLibrary + v143 + NotSet + true + + + DynamicLibrary + v143 + NotSet + + + + + + + + + + + + + <_ProjectFileVersion>12.0.30501.0 + + + $(SolutionDir)$(Configuration)\ + $(Configuration)\ + true + + + $(SolutionDir)$(Configuration)\ + $(Configuration)\ + false + + + + Disabled + $(SolutionDir)..\teraterm\common;$(SolutionDir)..\teraterm\teraterm;%(AdditionalIncludeDirectories) + WIN32;_DEBUG;_WINDOWS;_USRDLL;%(PreprocessorDefinitions) + false + EnableFastChecks + MultiThreadedDebug + + Level3 + EditAndContinue + + + $(SolutionDir)..\teraterm\$(Configuration)\ttpcmn.lib;%(AdditionalDependencies) + true + Windows + MachineX86 + false + + + + + $(SolutionDir)..\teraterm\common;$(SolutionDir)..\teraterm\teraterm;%(AdditionalIncludeDirectories) + WIN32;NDEBUG;_WINDOWS;_USRDLL;%(PreprocessorDefinitions) + MultiThreaded + + Level3 + ProgramDatabase + + + $(SolutionDir)..\teraterm\$(Configuration)\ttpcmn.lib;%(AdditionalDependencies) + true + Windows + true + true + MachineX86 + + + + + + + + + + + + + \ No newline at end of file diff --git a/TTXSamples/TTXCommandLineOpt/TTXCommandLineOpt.v14.vcxproj.filters b/TTXSamples/TTXCommandLineOpt/TTXCommandLineOpt.v17.vcxproj.filters similarity index 100% rename from TTXSamples/TTXCommandLineOpt/TTXCommandLineOpt.v14.vcxproj.filters rename to TTXSamples/TTXCommandLineOpt/TTXCommandLineOpt.v17.vcxproj.filters diff --git a/TTXSamples/TTXCommandLineOpt/TTXCommandLineOpt.v9.vcproj b/TTXSamples/TTXCommandLineOpt/TTXCommandLineOpt.v9.vcproj deleted file mode 100644 index 4018c158b..000000000 --- a/TTXSamples/TTXCommandLineOpt/TTXCommandLineOpt.v9.vcproj +++ /dev/null @@ -1,200 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/TTXSamples/TTXCommandLineOpt/TTXCommandLineOpt.vcproj b/TTXSamples/TTXCommandLineOpt/TTXCommandLineOpt.vcproj deleted file mode 100755 index 7a49caed5..000000000 --- a/TTXSamples/TTXCommandLineOpt/TTXCommandLineOpt.vcproj +++ /dev/null @@ -1,201 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/TTXSamples/TTXCopyIniFile/CMakeLists.txt b/TTXSamples/TTXCopyIniFile/CMakeLists.txt new file mode 100644 index 000000000..9f9559184 --- /dev/null +++ b/TTXSamples/TTXCopyIniFile/CMakeLists.txt @@ -0,0 +1,44 @@ +set(PACKAGE_NAME "TTXCopyIniFile") + +project(${PACKAGE_NAME}) + +add_library( + ${PACKAGE_NAME} SHARED + TTXCopyIniFile.c + ReadMe.txt + ReadMe-ja.txt + ) + +if(SUPPORT_OLD_WINDOWS) + if(MSVC) + target_sources( + ${PACKAGE_NAME} + PRIVATE + ../../teraterm/common/compat_w95_vs2005.c + ) + endif() + if(MINGW) + target_link_libraries( + ${PACKAGE_NAME} + PRIVATE + -Wl,--whole-archive + mingw_msvcrt + mingw_dll_tls + -Wl,--no-whole-archive + ) + endif() +endif(SUPPORT_OLD_WINDOWS) + +set_target_properties( + ${PACKAGE_NAME} + PROPERTIES + PREFIX "" + RUNTIME_OUTPUT_DIRECTORY "${CMAKE_BINARY_DIR}/" + ) + +target_include_directories( + ${PACKAGE_NAME} + PRIVATE + ../../teraterm/teraterm + ../../teraterm/common + ) diff --git a/TTXSamples/TTXCopyIniFile/TTXCopyIniFile.c b/TTXSamples/TTXCopyIniFile/TTXCopyIniFile.c index fa33f94d1..0b9b9b3c6 100644 --- a/TTXSamples/TTXCopyIniFile/TTXCopyIniFile.c +++ b/TTXSamples/TTXCopyIniFile/TTXCopyIniFile.c @@ -6,8 +6,6 @@ #include #include -#include "compat_w95.h" - #define ORDER 9999 static HANDLE hInst; /* Instance handle of TTX*.DLL */ @@ -15,19 +13,19 @@ static HANDLE hInst; /* Instance handle of TTX*.DLL */ typedef struct { PReadIniFile origReadIniFile; PWriteIniFile origWriteIniFile; - char origIniFileName[MAXPATHLEN]; + wchar_t origIniFileName[MAXPATHLEN]; } TInstVar; static TInstVar *pvar; static TInstVar InstVar; -static void PASCAL TTXReadIniFile(PCHAR fn, PTTSet ts) { - strcpy_s(pvar->origIniFileName, sizeof(pvar->origIniFileName), fn); +static void PASCAL TTXReadIniFile(const wchar_t *fn, PTTSet ts) { + wcscpy_s(pvar->origIniFileName, _countof(pvar->origIniFileName), fn); (pvar->origReadIniFile)(fn, ts); } -static void PASCAL TTXWriteIniFile(PCHAR fn, PTTSet ts) { - CopyFile(pvar->origIniFileName, fn, TRUE); +static void PASCAL TTXWriteIniFile(const wchar_t *fn, PTTSet ts) { + CopyFileW(pvar->origIniFileName, fn, TRUE); (pvar->origWriteIniFile)(fn, ts); } @@ -86,7 +84,6 @@ BOOL WINAPI DllMain(HANDLE hInstance, break; case DLL_PROCESS_ATTACH: /* do process initialization */ - DoCover_IsDebuggerPresent(); hInst = hInstance; pvar = &InstVar; break; diff --git a/TTXSamples/TTXCopyIniFile/TTXCopyIniFile.v10.vcxproj b/TTXSamples/TTXCopyIniFile/TTXCopyIniFile.v10.vcxproj deleted file mode 100644 index 6dfbfbdb0..000000000 --- a/TTXSamples/TTXCopyIniFile/TTXCopyIniFile.v10.vcxproj +++ /dev/null @@ -1,95 +0,0 @@ - - - - - Debug - Win32 - - - Release - Win32 - - - - {2B2B8D6E-4A84-49DD-8291-46172FCE422A} - TTXCopyIniFile - Win32Proj - TTXCopyIniFile - - - - DynamicLibrary - NotSet - true - - - DynamicLibrary - NotSet - - - - - - - - - - - - - <_ProjectFileVersion>10.0.40219.1 - $(SolutionDir)$(Configuration)\ - $(Configuration)\ - true - $(SolutionDir)$(Configuration)\ - $(Configuration)\ - false - - - - Disabled - $(SolutionDir)..\teraterm\common;$(SolutionDir)..\teraterm\teraterm;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;_USRDLL;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebug - - - Level3 - EditAndContinue - - - true - Windows - MachineX86 - - - - - $(SolutionDir)..\teraterm\common;$(SolutionDir)..\teraterm\teraterm;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;_USRDLL;%(PreprocessorDefinitions) - MultiThreaded - - - Level3 - ProgramDatabase - - - true - Windows - true - true - MachineX86 - - - - - - - - - - - - - \ No newline at end of file diff --git a/TTXSamples/TTXCopyIniFile/TTXCopyIniFile.v10.vcxproj.filters b/TTXSamples/TTXCopyIniFile/TTXCopyIniFile.v10.vcxproj.filters deleted file mode 100644 index 56cc76cc6..000000000 --- a/TTXSamples/TTXCopyIniFile/TTXCopyIniFile.v10.vcxproj.filters +++ /dev/null @@ -1,25 +0,0 @@ - - - - - {4FC737F1-C7A5-4376-A066-2A32D752A2FF} - cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx - - - {014d445f-36db-463d-8350-c693a980515f} - - - - - Source Files - - - - - ReadMe - - - ReadMe - - - \ No newline at end of file diff --git a/TTXSamples/TTXCopyIniFile/TTXCopyIniFile.v11.vcxproj b/TTXSamples/TTXCopyIniFile/TTXCopyIniFile.v11.vcxproj deleted file mode 100644 index 71fc26a94..000000000 --- a/TTXSamples/TTXCopyIniFile/TTXCopyIniFile.v11.vcxproj +++ /dev/null @@ -1,100 +0,0 @@ - - - - - Debug - Win32 - - - Release - Win32 - - - - {2B2B8D6E-4A84-49DD-8291-46172FCE422A} - TTXCopyIniFile - Win32Proj - TTXCopyIniFile - - - - DynamicLibrary - v110 - NotSet - true - - - DynamicLibrary - v110 - NotSet - - - - - - - - - - - - - <_ProjectFileVersion>11.0.61030.0 - - - $(SolutionDir)$(Configuration)\ - $(Configuration)\ - true - - - $(SolutionDir)$(Configuration)\ - $(Configuration)\ - false - - - - Disabled - $(SolutionDir)..\teraterm\common;$(SolutionDir)..\teraterm\teraterm;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;_USRDLL;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebug - - Level3 - EditAndContinue - - - true - Windows - MachineX86 - false - - - - - $(SolutionDir)..\teraterm\common;$(SolutionDir)..\teraterm\teraterm;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;_USRDLL;%(PreprocessorDefinitions) - MultiThreaded - - Level3 - ProgramDatabase - - - true - Windows - true - true - MachineX86 - - - - - - - - - - - - - \ No newline at end of file diff --git a/TTXSamples/TTXCopyIniFile/TTXCopyIniFile.v11.vcxproj.filters b/TTXSamples/TTXCopyIniFile/TTXCopyIniFile.v11.vcxproj.filters deleted file mode 100644 index 9a9c20c29..000000000 --- a/TTXSamples/TTXCopyIniFile/TTXCopyIniFile.v11.vcxproj.filters +++ /dev/null @@ -1,25 +0,0 @@ - - - - - {4FC737F1-C7A5-4376-A066-2A32D752A2FF} - cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx - - - {3122f468-1264-4a68-b96b-4a3a80d252e2} - - - - - Source Files - - - - - ReadMe - - - ReadMe - - - \ No newline at end of file diff --git a/TTXSamples/TTXCopyIniFile/TTXCopyIniFile.v12.vcxproj b/TTXSamples/TTXCopyIniFile/TTXCopyIniFile.v12.vcxproj deleted file mode 100644 index 1882bbe33..000000000 --- a/TTXSamples/TTXCopyIniFile/TTXCopyIniFile.v12.vcxproj +++ /dev/null @@ -1,100 +0,0 @@ - - - - - Debug - Win32 - - - Release - Win32 - - - - {2B2B8D6E-4A84-49DD-8291-46172FCE422A} - TTXCopyIniFile - Win32Proj - TTXCopyIniFile - - - - DynamicLibrary - v120 - NotSet - true - - - DynamicLibrary - v120 - NotSet - - - - - - - - - - - - - <_ProjectFileVersion>12.0.30501.0 - - - $(SolutionDir)$(Configuration)\ - $(Configuration)\ - true - - - $(SolutionDir)$(Configuration)\ - $(Configuration)\ - false - - - - Disabled - $(SolutionDir)..\teraterm\common;$(SolutionDir)..\teraterm\teraterm;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;_USRDLL;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebug - - Level3 - EditAndContinue - - - true - Windows - MachineX86 - false - - - - - $(SolutionDir)..\teraterm\common;$(SolutionDir)..\teraterm\teraterm;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;_USRDLL;%(PreprocessorDefinitions) - MultiThreaded - - Level3 - ProgramDatabase - - - true - Windows - true - true - MachineX86 - - - - - - - - - - - - - \ No newline at end of file diff --git a/TTXSamples/TTXCopyIniFile/TTXCopyIniFile.v14.vcxproj b/TTXSamples/TTXCopyIniFile/TTXCopyIniFile.v14.vcxproj deleted file mode 100644 index dea6103af..000000000 --- a/TTXSamples/TTXCopyIniFile/TTXCopyIniFile.v14.vcxproj +++ /dev/null @@ -1,100 +0,0 @@ - - - - - Debug - Win32 - - - Release - Win32 - - - - {2B2B8D6E-4A84-49DD-8291-46172FCE422A} - TTXCopyIniFile - Win32Proj - TTXCopyIniFile - - - - DynamicLibrary - v140 - NotSet - true - - - DynamicLibrary - v140 - NotSet - - - - - - - - - - - - - <_ProjectFileVersion>12.0.30501.0 - - - $(SolutionDir)$(Configuration)\ - $(Configuration)\ - true - - - $(SolutionDir)$(Configuration)\ - $(Configuration)\ - false - - - - Disabled - $(SolutionDir)..\teraterm\common;$(SolutionDir)..\teraterm\teraterm;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;_USRDLL;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebug - - Level3 - EditAndContinue - - - true - Windows - MachineX86 - false - - - - - $(SolutionDir)..\teraterm\common;$(SolutionDir)..\teraterm\teraterm;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;_USRDLL;%(PreprocessorDefinitions) - MultiThreaded - - Level3 - ProgramDatabase - - - true - Windows - true - true - MachineX86 - - - - - - - - - - - - - \ No newline at end of file diff --git a/TTXSamples/TTXCopyIniFile/TTXCopyIniFile.v15.vcxproj b/TTXSamples/TTXCopyIniFile/TTXCopyIniFile.v15.vcxproj deleted file mode 100644 index 2a2cb98e0..000000000 --- a/TTXSamples/TTXCopyIniFile/TTXCopyIniFile.v15.vcxproj +++ /dev/null @@ -1,100 +0,0 @@ - - - - - Debug - Win32 - - - Release - Win32 - - - - {2B2B8D6E-4A84-49DD-8291-46172FCE422A} - TTXCopyIniFile - Win32Proj - TTXCopyIniFile - - - - DynamicLibrary - v141 - NotSet - true - - - DynamicLibrary - v141 - NotSet - - - - - - - - - - - - - <_ProjectFileVersion>12.0.30501.0 - - - $(SolutionDir)$(Configuration)\ - $(Configuration)\ - true - - - $(SolutionDir)$(Configuration)\ - $(Configuration)\ - false - - - - Disabled - $(SolutionDir)..\teraterm\common;$(SolutionDir)..\teraterm\teraterm;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;_USRDLL;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebug - - Level3 - EditAndContinue - - - true - Windows - MachineX86 - false - - - - - $(SolutionDir)..\teraterm\common;$(SolutionDir)..\teraterm\teraterm;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;_USRDLL;%(PreprocessorDefinitions) - MultiThreaded - - Level3 - ProgramDatabase - - - true - Windows - true - true - MachineX86 - - - - - - - - - - - - - \ No newline at end of file diff --git a/TTXSamples/TTXCopyIniFile/TTXCopyIniFile.v15.vcxproj.filters b/TTXSamples/TTXCopyIniFile/TTXCopyIniFile.v15.vcxproj.filters deleted file mode 100644 index 84ca9a718..000000000 --- a/TTXSamples/TTXCopyIniFile/TTXCopyIniFile.v15.vcxproj.filters +++ /dev/null @@ -1,25 +0,0 @@ - - - - - {4FC737F1-C7A5-4376-A066-2A32D752A2FF} - cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx - - - {874b45ff-d6e1-41fa-9990-dc82e1fa2c39} - - - - - Source Files - - - - - ReadMe - - - ReadMe - - - \ No newline at end of file diff --git a/TTXSamples/TTXCopyIniFile/TTXCopyIniFile.v16.vcxproj b/TTXSamples/TTXCopyIniFile/TTXCopyIniFile.v16.vcxproj new file mode 100644 index 000000000..966f1eaae --- /dev/null +++ b/TTXSamples/TTXCopyIniFile/TTXCopyIniFile.v16.vcxproj @@ -0,0 +1,101 @@ + + + + + Debug + Win32 + + + Release + Win32 + + + + {2B2B8D6E-4A84-49DD-8291-46172FCE422A} + TTXCopyIniFile + Win32Proj + TTXCopyIniFile + 10.0 + + + + DynamicLibrary + v142 + NotSet + true + + + DynamicLibrary + v142 + NotSet + + + + + + + + + + + + + <_ProjectFileVersion>12.0.30501.0 + + + $(SolutionDir)$(Configuration)\ + $(Configuration)\ + true + + + $(SolutionDir)$(Configuration)\ + $(Configuration)\ + false + + + + Disabled + $(SolutionDir)..\teraterm\common;$(SolutionDir)..\teraterm\teraterm;%(AdditionalIncludeDirectories) + WIN32;_DEBUG;_WINDOWS;_USRDLL;%(PreprocessorDefinitions) + false + EnableFastChecks + MultiThreadedDebug + + Level3 + EditAndContinue + + + true + Windows + MachineX86 + false + + + + + $(SolutionDir)..\teraterm\common;$(SolutionDir)..\teraterm\teraterm;%(AdditionalIncludeDirectories) + WIN32;NDEBUG;_WINDOWS;_USRDLL;%(PreprocessorDefinitions) + MultiThreaded + + Level3 + ProgramDatabase + + + true + Windows + true + true + MachineX86 + + + + + + + + + + + + + diff --git a/TTXSamples/TTXCopyIniFile/TTXCopyIniFile.v12.vcxproj.filters b/TTXSamples/TTXCopyIniFile/TTXCopyIniFile.v16.vcxproj.filters similarity index 100% rename from TTXSamples/TTXCopyIniFile/TTXCopyIniFile.v12.vcxproj.filters rename to TTXSamples/TTXCopyIniFile/TTXCopyIniFile.v16.vcxproj.filters diff --git a/TTXSamples/TTXCopyIniFile/TTXCopyIniFile.v17.vcxproj b/TTXSamples/TTXCopyIniFile/TTXCopyIniFile.v17.vcxproj new file mode 100644 index 000000000..cd3ea1948 --- /dev/null +++ b/TTXSamples/TTXCopyIniFile/TTXCopyIniFile.v17.vcxproj @@ -0,0 +1,101 @@ + + + + + Debug + Win32 + + + Release + Win32 + + + + {2B2B8D6E-4A84-49DD-8291-46172FCE422A} + TTXCopyIniFile + Win32Proj + TTXCopyIniFile + 10.0 + + + + DynamicLibrary + v143 + NotSet + true + + + DynamicLibrary + v143 + NotSet + + + + + + + + + + + + + <_ProjectFileVersion>12.0.30501.0 + + + $(SolutionDir)$(Configuration)\ + $(Configuration)\ + true + + + $(SolutionDir)$(Configuration)\ + $(Configuration)\ + false + + + + Disabled + $(SolutionDir)..\teraterm\common;$(SolutionDir)..\teraterm\teraterm;%(AdditionalIncludeDirectories) + WIN32;_DEBUG;_WINDOWS;_USRDLL;%(PreprocessorDefinitions) + false + EnableFastChecks + MultiThreadedDebug + + Level3 + EditAndContinue + + + true + Windows + MachineX86 + false + + + + + $(SolutionDir)..\teraterm\common;$(SolutionDir)..\teraterm\teraterm;%(AdditionalIncludeDirectories) + WIN32;NDEBUG;_WINDOWS;_USRDLL;%(PreprocessorDefinitions) + MultiThreaded + + Level3 + ProgramDatabase + + + true + Windows + true + true + MachineX86 + + + + + + + + + + + + + \ No newline at end of file diff --git a/TTXSamples/TTXCopyIniFile/TTXCopyIniFile.v14.vcxproj.filters b/TTXSamples/TTXCopyIniFile/TTXCopyIniFile.v17.vcxproj.filters similarity index 100% rename from TTXSamples/TTXCopyIniFile/TTXCopyIniFile.v14.vcxproj.filters rename to TTXSamples/TTXCopyIniFile/TTXCopyIniFile.v17.vcxproj.filters diff --git a/TTXSamples/TTXCopyIniFile/TTXCopyIniFile.v9.vcproj b/TTXSamples/TTXCopyIniFile/TTXCopyIniFile.v9.vcproj deleted file mode 100644 index 0db59b28f..000000000 --- a/TTXSamples/TTXCopyIniFile/TTXCopyIniFile.v9.vcproj +++ /dev/null @@ -1,198 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/TTXSamples/TTXCopyIniFile/TTXCopyIniFile.vcproj b/TTXSamples/TTXCopyIniFile/TTXCopyIniFile.vcproj deleted file mode 100755 index a4f134047..000000000 --- a/TTXSamples/TTXCopyIniFile/TTXCopyIniFile.vcproj +++ /dev/null @@ -1,199 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/TTXSamples/TTXFixedWinSize/CMakeLists.txt b/TTXSamples/TTXFixedWinSize/CMakeLists.txt new file mode 100644 index 000000000..12c01e046 --- /dev/null +++ b/TTXSamples/TTXFixedWinSize/CMakeLists.txt @@ -0,0 +1,47 @@ +set(PACKAGE_NAME "TTXFixedWinSize") + +project(${PACKAGE_NAME}) + +add_library( + ${PACKAGE_NAME} SHARED + TTXFixedWinSize.c + ReadMe.txt + ReadMe-ja.txt + ) + +if(SUPPORT_OLD_WINDOWS) + target_link_libraries( + ${PACKAGE_NAME} + PRIVATE + layer_for_unicode + ) + if(MSVC) + target_sources( + ${PACKAGE_NAME} + PRIVATE + ../../teraterm/common/compat_w95_vs2005.c + ) + endif() + if(MINGW) + target_sources( + ${PACKAGE_NAME} + PRIVATE + ../../teraterm/libmingw/tlssup.c + ) + endif() +endif(SUPPORT_OLD_WINDOWS) + +set_target_properties( + ${PACKAGE_NAME} + PROPERTIES + PREFIX "" + RUNTIME_OUTPUT_DIRECTORY "${CMAKE_BINARY_DIR}/" + ) + +target_include_directories( + ${PACKAGE_NAME} + PRIVATE + ../../teraterm/teraterm + ../../teraterm/common + ) + diff --git a/TTXSamples/TTXFixedWinSize/TTXFixedWinSize.c b/TTXSamples/TTXFixedWinSize/TTXFixedWinSize.c index 9939ef8b8..c476387dc 100755 --- a/TTXSamples/TTXFixedWinSize/TTXFixedWinSize.c +++ b/TTXSamples/TTXFixedWinSize/TTXFixedWinSize.c @@ -6,8 +6,6 @@ #include #include -#include "compat_w95.h" - #define WIDTH 80 #define HEIGHT 24 @@ -59,7 +57,7 @@ static void PASCAL TTXGetUIHooks(TTXUIHooks *hooks) { *hooks->SetupTerminal = FixedSizeSetupTerminalDlg; } -static void PASCAL FixedSizeReadIniFile(PCHAR fn, PTTSet ts) { +static void PASCAL FixedSizeReadIniFile(const wchar_t *fn, PTTSet ts) { (pvar->origReadIniFile)(fn, ts); ts->TerminalWidth = WIDTH; ts->TerminalHeight = HEIGHT; @@ -119,7 +117,6 @@ BOOL WINAPI DllMain(HANDLE hInstance, break; case DLL_PROCESS_ATTACH: /* do process initialization */ - DoCover_IsDebuggerPresent(); hInst = hInstance; pvar = &InstVar; break; diff --git a/TTXSamples/TTXFixedWinSize/TTXFixedWinSize.v10.vcxproj b/TTXSamples/TTXFixedWinSize/TTXFixedWinSize.v10.vcxproj deleted file mode 100644 index 9bc67e7e2..000000000 --- a/TTXSamples/TTXFixedWinSize/TTXFixedWinSize.v10.vcxproj +++ /dev/null @@ -1,95 +0,0 @@ - - - - - Debug - Win32 - - - Release - Win32 - - - - {3C12BA78-2F6A-4655-B6FF-E1BFF2A191D8} - TTXFixedWinSize - Win32Proj - TTXFixedWinSize - - - - DynamicLibrary - NotSet - true - - - DynamicLibrary - NotSet - - - - - - - - - - - - - <_ProjectFileVersion>10.0.40219.1 - $(SolutionDir)$(Configuration)\ - $(Configuration)\ - true - $(SolutionDir)$(Configuration)\ - $(Configuration)\ - false - - - - Disabled - $(SolutionDir)..\teraterm\common;$(SolutionDir)..\teraterm\teraterm;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;_USRDLL;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebug - - - Level3 - EditAndContinue - - - true - Windows - MachineX86 - - - - - $(SolutionDir)..\teraterm\common;$(SolutionDir)..\teraterm\teraterm;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;_USRDLL;%(PreprocessorDefinitions) - MultiThreaded - - - Level3 - ProgramDatabase - - - true - Windows - true - true - MachineX86 - - - - - - - - - - - - - \ No newline at end of file diff --git a/TTXSamples/TTXFixedWinSize/TTXFixedWinSize.v10.vcxproj.filters b/TTXSamples/TTXFixedWinSize/TTXFixedWinSize.v10.vcxproj.filters deleted file mode 100644 index 493e00159..000000000 --- a/TTXSamples/TTXFixedWinSize/TTXFixedWinSize.v10.vcxproj.filters +++ /dev/null @@ -1,25 +0,0 @@ - - - - - {4FC737F1-C7A5-4376-A066-2A32D752A2FF} - cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx - - - {b87b9e03-e443-4a59-89ee-2823f7c5d4eb} - - - - - Source Files - - - - - ReadMe - - - ReadMe - - - \ No newline at end of file diff --git a/TTXSamples/TTXFixedWinSize/TTXFixedWinSize.v11.vcxproj b/TTXSamples/TTXFixedWinSize/TTXFixedWinSize.v11.vcxproj deleted file mode 100644 index e392f9e14..000000000 --- a/TTXSamples/TTXFixedWinSize/TTXFixedWinSize.v11.vcxproj +++ /dev/null @@ -1,100 +0,0 @@ - - - - - Debug - Win32 - - - Release - Win32 - - - - {3C12BA78-2F6A-4655-B6FF-E1BFF2A191D8} - TTXFixedWinSize - Win32Proj - TTXFixedWinSize - - - - DynamicLibrary - v110 - NotSet - true - - - DynamicLibrary - v110 - NotSet - - - - - - - - - - - - - <_ProjectFileVersion>11.0.61030.0 - - - $(SolutionDir)$(Configuration)\ - $(Configuration)\ - true - - - $(SolutionDir)$(Configuration)\ - $(Configuration)\ - false - - - - Disabled - $(SolutionDir)..\teraterm\common;$(SolutionDir)..\teraterm\teraterm;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;_USRDLL;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebug - - Level3 - EditAndContinue - - - true - Windows - MachineX86 - false - - - - - $(SolutionDir)..\teraterm\common;$(SolutionDir)..\teraterm\teraterm;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;_USRDLL;%(PreprocessorDefinitions) - MultiThreaded - - Level3 - ProgramDatabase - - - true - Windows - true - true - MachineX86 - - - - - - - - - - - - - \ No newline at end of file diff --git a/TTXSamples/TTXFixedWinSize/TTXFixedWinSize.v11.vcxproj.filters b/TTXSamples/TTXFixedWinSize/TTXFixedWinSize.v11.vcxproj.filters deleted file mode 100644 index 6f6a6af73..000000000 --- a/TTXSamples/TTXFixedWinSize/TTXFixedWinSize.v11.vcxproj.filters +++ /dev/null @@ -1,25 +0,0 @@ - - - - - {4FC737F1-C7A5-4376-A066-2A32D752A2FF} - cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx - - - {addd6c7e-b767-4b40-a230-d40e43a72000} - - - - - Source Files - - - - - ReadMe - - - ReadMe - - - \ No newline at end of file diff --git a/TTXSamples/TTXFixedWinSize/TTXFixedWinSize.v12.vcxproj b/TTXSamples/TTXFixedWinSize/TTXFixedWinSize.v12.vcxproj deleted file mode 100644 index bfebda5b4..000000000 --- a/TTXSamples/TTXFixedWinSize/TTXFixedWinSize.v12.vcxproj +++ /dev/null @@ -1,100 +0,0 @@ - - - - - Debug - Win32 - - - Release - Win32 - - - - {3C12BA78-2F6A-4655-B6FF-E1BFF2A191D8} - TTXFixedWinSize - Win32Proj - TTXFixedWinSize - - - - DynamicLibrary - v120 - NotSet - true - - - DynamicLibrary - v120 - NotSet - - - - - - - - - - - - - <_ProjectFileVersion>12.0.30501.0 - - - $(SolutionDir)$(Configuration)\ - $(Configuration)\ - true - - - $(SolutionDir)$(Configuration)\ - $(Configuration)\ - false - - - - Disabled - $(SolutionDir)..\teraterm\common;$(SolutionDir)..\teraterm\teraterm;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;_USRDLL;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebug - - Level3 - EditAndContinue - - - true - Windows - MachineX86 - false - - - - - $(SolutionDir)..\teraterm\common;$(SolutionDir)..\teraterm\teraterm;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;_USRDLL;%(PreprocessorDefinitions) - MultiThreaded - - Level3 - ProgramDatabase - - - true - Windows - true - true - MachineX86 - - - - - - - - - - - - - \ No newline at end of file diff --git a/TTXSamples/TTXFixedWinSize/TTXFixedWinSize.v14.vcxproj b/TTXSamples/TTXFixedWinSize/TTXFixedWinSize.v14.vcxproj deleted file mode 100644 index 61fae8160..000000000 --- a/TTXSamples/TTXFixedWinSize/TTXFixedWinSize.v14.vcxproj +++ /dev/null @@ -1,100 +0,0 @@ - - - - - Debug - Win32 - - - Release - Win32 - - - - {3C12BA78-2F6A-4655-B6FF-E1BFF2A191D8} - TTXFixedWinSize - Win32Proj - TTXFixedWinSize - - - - DynamicLibrary - v140 - NotSet - true - - - DynamicLibrary - v140 - NotSet - - - - - - - - - - - - - <_ProjectFileVersion>12.0.30501.0 - - - $(SolutionDir)$(Configuration)\ - $(Configuration)\ - true - - - $(SolutionDir)$(Configuration)\ - $(Configuration)\ - false - - - - Disabled - $(SolutionDir)..\teraterm\common;$(SolutionDir)..\teraterm\teraterm;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;_USRDLL;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebug - - Level3 - EditAndContinue - - - true - Windows - MachineX86 - false - - - - - $(SolutionDir)..\teraterm\common;$(SolutionDir)..\teraterm\teraterm;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;_USRDLL;%(PreprocessorDefinitions) - MultiThreaded - - Level3 - ProgramDatabase - - - true - Windows - true - true - MachineX86 - - - - - - - - - - - - - \ No newline at end of file diff --git a/TTXSamples/TTXFixedWinSize/TTXFixedWinSize.v15.vcxproj b/TTXSamples/TTXFixedWinSize/TTXFixedWinSize.v15.vcxproj deleted file mode 100644 index fc7f2078f..000000000 --- a/TTXSamples/TTXFixedWinSize/TTXFixedWinSize.v15.vcxproj +++ /dev/null @@ -1,100 +0,0 @@ - - - - - Debug - Win32 - - - Release - Win32 - - - - {3C12BA78-2F6A-4655-B6FF-E1BFF2A191D8} - TTXFixedWinSize - Win32Proj - TTXFixedWinSize - - - - DynamicLibrary - v141 - NotSet - true - - - DynamicLibrary - v141 - NotSet - - - - - - - - - - - - - <_ProjectFileVersion>12.0.30501.0 - - - $(SolutionDir)$(Configuration)\ - $(Configuration)\ - true - - - $(SolutionDir)$(Configuration)\ - $(Configuration)\ - false - - - - Disabled - $(SolutionDir)..\teraterm\common;$(SolutionDir)..\teraterm\teraterm;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;_USRDLL;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebug - - Level3 - EditAndContinue - - - true - Windows - MachineX86 - false - - - - - $(SolutionDir)..\teraterm\common;$(SolutionDir)..\teraterm\teraterm;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;_USRDLL;%(PreprocessorDefinitions) - MultiThreaded - - Level3 - ProgramDatabase - - - true - Windows - true - true - MachineX86 - - - - - - - - - - - - - \ No newline at end of file diff --git a/TTXSamples/TTXFixedWinSize/TTXFixedWinSize.v15.vcxproj.filters b/TTXSamples/TTXFixedWinSize/TTXFixedWinSize.v15.vcxproj.filters deleted file mode 100644 index df0239758..000000000 --- a/TTXSamples/TTXFixedWinSize/TTXFixedWinSize.v15.vcxproj.filters +++ /dev/null @@ -1,25 +0,0 @@ - - - - - {4FC737F1-C7A5-4376-A066-2A32D752A2FF} - cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx - - - {c85cfa6a-7901-487a-827f-eab5a026442e} - - - - - Source Files - - - - - ReadMe - - - ReadMe - - - \ No newline at end of file diff --git a/TTXSamples/TTXFixedWinSize/TTXFixedWinSize.v16.vcxproj b/TTXSamples/TTXFixedWinSize/TTXFixedWinSize.v16.vcxproj new file mode 100644 index 000000000..a1d1b77c1 --- /dev/null +++ b/TTXSamples/TTXFixedWinSize/TTXFixedWinSize.v16.vcxproj @@ -0,0 +1,101 @@ + + + + + Debug + Win32 + + + Release + Win32 + + + + {3C12BA78-2F6A-4655-B6FF-E1BFF2A191D8} + TTXFixedWinSize + Win32Proj + TTXFixedWinSize + 10.0 + + + + DynamicLibrary + v142 + NotSet + true + + + DynamicLibrary + v142 + NotSet + + + + + + + + + + + + + <_ProjectFileVersion>12.0.30501.0 + + + $(SolutionDir)$(Configuration)\ + $(Configuration)\ + true + + + $(SolutionDir)$(Configuration)\ + $(Configuration)\ + false + + + + Disabled + $(SolutionDir)..\teraterm\common;$(SolutionDir)..\teraterm\teraterm;%(AdditionalIncludeDirectories) + WIN32;_DEBUG;_WINDOWS;_USRDLL;%(PreprocessorDefinitions) + false + EnableFastChecks + MultiThreadedDebug + + Level3 + EditAndContinue + + + true + Windows + MachineX86 + false + + + + + $(SolutionDir)..\teraterm\common;$(SolutionDir)..\teraterm\teraterm;%(AdditionalIncludeDirectories) + WIN32;NDEBUG;_WINDOWS;_USRDLL;%(PreprocessorDefinitions) + MultiThreaded + + Level3 + ProgramDatabase + + + true + Windows + true + true + MachineX86 + + + + + + + + + + + + + diff --git a/TTXSamples/TTXFixedWinSize/TTXFixedWinSize.v12.vcxproj.filters b/TTXSamples/TTXFixedWinSize/TTXFixedWinSize.v16.vcxproj.filters similarity index 100% rename from TTXSamples/TTXFixedWinSize/TTXFixedWinSize.v12.vcxproj.filters rename to TTXSamples/TTXFixedWinSize/TTXFixedWinSize.v16.vcxproj.filters diff --git a/TTXSamples/TTXFixedWinSize/TTXFixedWinSize.v17.vcxproj b/TTXSamples/TTXFixedWinSize/TTXFixedWinSize.v17.vcxproj new file mode 100644 index 000000000..1921c59a1 --- /dev/null +++ b/TTXSamples/TTXFixedWinSize/TTXFixedWinSize.v17.vcxproj @@ -0,0 +1,101 @@ + + + + + Debug + Win32 + + + Release + Win32 + + + + {3C12BA78-2F6A-4655-B6FF-E1BFF2A191D8} + TTXFixedWinSize + Win32Proj + TTXFixedWinSize + 10.0 + + + + DynamicLibrary + v143 + NotSet + true + + + DynamicLibrary + v143 + NotSet + + + + + + + + + + + + + <_ProjectFileVersion>12.0.30501.0 + + + $(SolutionDir)$(Configuration)\ + $(Configuration)\ + true + + + $(SolutionDir)$(Configuration)\ + $(Configuration)\ + false + + + + Disabled + $(SolutionDir)..\teraterm\common;$(SolutionDir)..\teraterm\teraterm;%(AdditionalIncludeDirectories) + WIN32;_DEBUG;_WINDOWS;_USRDLL;%(PreprocessorDefinitions) + false + EnableFastChecks + MultiThreadedDebug + + Level3 + EditAndContinue + + + true + Windows + MachineX86 + false + + + + + $(SolutionDir)..\teraterm\common;$(SolutionDir)..\teraterm\teraterm;%(AdditionalIncludeDirectories) + WIN32;NDEBUG;_WINDOWS;_USRDLL;%(PreprocessorDefinitions) + MultiThreaded + + Level3 + ProgramDatabase + + + true + Windows + true + true + MachineX86 + + + + + + + + + + + + + \ No newline at end of file diff --git a/TTXSamples/TTXFixedWinSize/TTXFixedWinSize.v14.vcxproj.filters b/TTXSamples/TTXFixedWinSize/TTXFixedWinSize.v17.vcxproj.filters similarity index 100% rename from TTXSamples/TTXFixedWinSize/TTXFixedWinSize.v14.vcxproj.filters rename to TTXSamples/TTXFixedWinSize/TTXFixedWinSize.v17.vcxproj.filters diff --git a/TTXSamples/TTXFixedWinSize/TTXFixedWinSize.v9.vcproj b/TTXSamples/TTXFixedWinSize/TTXFixedWinSize.v9.vcproj deleted file mode 100644 index a46823639..000000000 --- a/TTXSamples/TTXFixedWinSize/TTXFixedWinSize.v9.vcproj +++ /dev/null @@ -1,198 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/TTXSamples/TTXFixedWinSize/TTXFixedWinSize.vcproj b/TTXSamples/TTXFixedWinSize/TTXFixedWinSize.vcproj deleted file mode 100755 index 2fe398149..000000000 --- a/TTXSamples/TTXFixedWinSize/TTXFixedWinSize.vcproj +++ /dev/null @@ -1,199 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/TTXSamples/TTXKcodeChange/.editorconfig b/TTXSamples/TTXKcodeChange/.editorconfig new file mode 100644 index 000000000..95a723a69 --- /dev/null +++ b/TTXSamples/TTXKcodeChange/.editorconfig @@ -0,0 +1,2 @@ +[*.{cpp,c,h,cc}] +indent_size = 8 diff --git a/TTXSamples/TTXKcodeChange/CMakeLists.txt b/TTXSamples/TTXKcodeChange/CMakeLists.txt new file mode 100644 index 000000000..66c31b26f --- /dev/null +++ b/TTXSamples/TTXKcodeChange/CMakeLists.txt @@ -0,0 +1,47 @@ +set(PACKAGE_NAME "TTXKcodeChange") + +project(${PACKAGE_NAME}) + +add_library( + ${PACKAGE_NAME} SHARED + TTXKcodeChange.c + ReadMe.txt + ReadMe-ja.txt + ) + +if(SUPPORT_OLD_WINDOWS) + if(MSVC) + target_sources( + ${PACKAGE_NAME} + PRIVATE + ../../teraterm/common/compat_w95_vs2005.c + ) + endif() + if(MINGW) + target_sources( + ${PACKAGE_NAME} + PRIVATE + ../../teraterm/libmingw/tlssup.c + ) + endif() +endif(SUPPORT_OLD_WINDOWS) + +set_target_properties( + ${PACKAGE_NAME} + PROPERTIES + PREFIX "" + RUNTIME_OUTPUT_DIRECTORY "${CMAKE_BINARY_DIR}/" + ) + +target_include_directories( + ${PACKAGE_NAME} + PRIVATE + ../../teraterm/teraterm + ../../teraterm/common + ) + +install( + TARGETS ${PACKAGE_NAME} + RUNTIME + DESTINATION . + ) diff --git a/TTXSamples/TTXKcodeChange/ReadMe-ja.txt b/TTXSamples/TTXKcodeChange/ReadMe-ja.txt index 8f346f833..7cfeabb23 100644 --- a/TTXSamples/TTXKcodeChange/ReadMe-ja.txt +++ b/TTXSamples/TTXKcodeChange/ReadMe-ja.txt @@ -13,7 +13,7 @@ TTXKcodeChange -- KT -- MR[h ValueƂ SJIS, EUC, JIS, UTF8 󂯕t܂B KR -- MR[h - ValueƂ SJIS, EUC, JIS, UTF8, UTF8m 󂯕t܂B + ValueƂ SJIS, EUC, JIS, UTF8 󂯕t܂B 5964;Pt 5964;Pt diff --git a/TTXSamples/TTXKcodeChange/TTXKcodeChange.c b/TTXSamples/TTXKcodeChange/TTXKcodeChange.c index c365619b5..37441b0fd 100644 --- a/TTXSamples/TTXKcodeChange/TTXKcodeChange.c +++ b/TTXSamples/TTXKcodeChange/TTXKcodeChange.c @@ -4,14 +4,13 @@ #include #include "teraterm.h" #include "tttypes.h" +#include "tttypes_charset.h" #include "ttplugin.h" #include "tt_res.h" #include #include -#include "compat_w95.h" - #define ORDER 4800 #define IdModeFirst 0 @@ -182,7 +181,7 @@ void ParseInputStr(unsigned char *rstr, int rcount) { case IdModeProc: buff[(blencv->KanjiCodeEcho = pvar->ts->KanjiCode = IdJIS; else if (_stricmp(p, "UTF8") == 0 || _stricmp(p, "UTF-8") == 0) pvar->cv->KanjiCodeEcho = pvar->ts->KanjiCode = IdUTF8; - else if (_stricmp(p, "UTF8m") == 0 || _stricmp(p, "UTF-8m") == 0) - pvar->cv->KanjiCodeEcho = pvar->ts->KanjiCode = IdUTF8m; } p = p2; } @@ -258,9 +255,6 @@ void ParseInputStr(unsigned char *rstr, int rcount) { case IdUTF8: CommOut("kr=UTF8;", 8); break; - case IdUTF8m: - CommOut("kr=UTF8m;", 9); - break; } } p = p2; @@ -405,7 +399,6 @@ BOOL WINAPI DllMain(HANDLE hInstance, break; case DLL_PROCESS_ATTACH: /* do process initialization */ - DoCover_IsDebuggerPresent(); hInst = hInstance; pvar = &InstVar; break; diff --git a/TTXSamples/TTXKcodeChange/TTXKcodeChange.v10.vcxproj b/TTXSamples/TTXKcodeChange/TTXKcodeChange.v10.vcxproj deleted file mode 100644 index 3b62f4923..000000000 --- a/TTXSamples/TTXKcodeChange/TTXKcodeChange.v10.vcxproj +++ /dev/null @@ -1,95 +0,0 @@ - - - - - Debug - Win32 - - - Release - Win32 - - - - {2E487F50-84E4-404D-A7E1-F9FA4A72BC25} - TTXKcodeChange - Win32Proj - TTXKcodeChange - - - - DynamicLibrary - NotSet - true - - - DynamicLibrary - NotSet - - - - - - - - - - - - - <_ProjectFileVersion>10.0.40219.1 - $(SolutionDir)$(Configuration)\ - $(Configuration)\ - true - $(SolutionDir)$(Configuration)\ - $(Configuration)\ - false - - - - Disabled - $(SolutionDir)..\teraterm\common;$(SolutionDir)..\teraterm\teraterm;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;_USRDLL;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebug - - - Level3 - EditAndContinue - - - true - Windows - MachineX86 - - - - - $(SolutionDir)..\teraterm\common;$(SolutionDir)..\teraterm\teraterm;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;_USRDLL;%(PreprocessorDefinitions) - MultiThreaded - - - Level3 - ProgramDatabase - - - true - Windows - true - true - MachineX86 - - - - - - - - - - - - - \ No newline at end of file diff --git a/TTXSamples/TTXKcodeChange/TTXKcodeChange.v10.vcxproj.filters b/TTXSamples/TTXKcodeChange/TTXKcodeChange.v10.vcxproj.filters deleted file mode 100644 index 81e290366..000000000 --- a/TTXSamples/TTXKcodeChange/TTXKcodeChange.v10.vcxproj.filters +++ /dev/null @@ -1,25 +0,0 @@ - - - - - {4FC737F1-C7A5-4376-A066-2A32D752A2FF} - cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx - - - {b34c8ae9-f556-47c3-829d-84ce605b83ce} - - - - - Source Files - - - - - ReadMe - - - ReadMe - - - \ No newline at end of file diff --git a/TTXSamples/TTXKcodeChange/TTXKcodeChange.v11.vcxproj b/TTXSamples/TTXKcodeChange/TTXKcodeChange.v11.vcxproj deleted file mode 100644 index 7ae23e907..000000000 --- a/TTXSamples/TTXKcodeChange/TTXKcodeChange.v11.vcxproj +++ /dev/null @@ -1,100 +0,0 @@ - - - - - Debug - Win32 - - - Release - Win32 - - - - {2E487F50-84E4-404D-A7E1-F9FA4A72BC25} - TTXKcodeChange - Win32Proj - TTXKcodeChange - - - - DynamicLibrary - v110 - NotSet - true - - - DynamicLibrary - v110 - NotSet - - - - - - - - - - - - - <_ProjectFileVersion>11.0.61030.0 - - - $(SolutionDir)$(Configuration)\ - $(Configuration)\ - true - - - $(SolutionDir)$(Configuration)\ - $(Configuration)\ - false - - - - Disabled - $(SolutionDir)..\teraterm\common;$(SolutionDir)..\teraterm\teraterm;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;_USRDLL;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebug - - Level3 - EditAndContinue - - - true - Windows - MachineX86 - false - - - - - $(SolutionDir)..\teraterm\common;$(SolutionDir)..\teraterm\teraterm;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;_USRDLL;%(PreprocessorDefinitions) - MultiThreaded - - Level3 - ProgramDatabase - - - true - Windows - true - true - MachineX86 - - - - - - - - - - - - - \ No newline at end of file diff --git a/TTXSamples/TTXKcodeChange/TTXKcodeChange.v11.vcxproj.filters b/TTXSamples/TTXKcodeChange/TTXKcodeChange.v11.vcxproj.filters deleted file mode 100644 index fb427f279..000000000 --- a/TTXSamples/TTXKcodeChange/TTXKcodeChange.v11.vcxproj.filters +++ /dev/null @@ -1,25 +0,0 @@ - - - - - {4FC737F1-C7A5-4376-A066-2A32D752A2FF} - cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx - - - {89f73798-a489-4a85-b83f-cb86f2fbc1f5} - - - - - Source Files - - - - - ReadMe - - - ReadMe - - - \ No newline at end of file diff --git a/TTXSamples/TTXKcodeChange/TTXKcodeChange.v12.vcxproj b/TTXSamples/TTXKcodeChange/TTXKcodeChange.v12.vcxproj deleted file mode 100644 index d15f14df6..000000000 --- a/TTXSamples/TTXKcodeChange/TTXKcodeChange.v12.vcxproj +++ /dev/null @@ -1,100 +0,0 @@ - - - - - Debug - Win32 - - - Release - Win32 - - - - {2E487F50-84E4-404D-A7E1-F9FA4A72BC25} - TTXKcodeChange - Win32Proj - TTXKcodeChange - - - - DynamicLibrary - v120 - NotSet - true - - - DynamicLibrary - v120 - NotSet - - - - - - - - - - - - - <_ProjectFileVersion>12.0.30501.0 - - - $(SolutionDir)$(Configuration)\ - $(Configuration)\ - true - - - $(SolutionDir)$(Configuration)\ - $(Configuration)\ - false - - - - Disabled - $(SolutionDir)..\teraterm\common;$(SolutionDir)..\teraterm\teraterm;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;_USRDLL;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebug - - Level3 - EditAndContinue - - - true - Windows - MachineX86 - false - - - - - $(SolutionDir)..\teraterm\common;$(SolutionDir)..\teraterm\teraterm;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;_USRDLL;%(PreprocessorDefinitions) - MultiThreaded - - Level3 - ProgramDatabase - - - true - Windows - true - true - MachineX86 - - - - - - - - - - - - - \ No newline at end of file diff --git a/TTXSamples/TTXKcodeChange/TTXKcodeChange.v14.vcxproj b/TTXSamples/TTXKcodeChange/TTXKcodeChange.v14.vcxproj deleted file mode 100644 index 2a88af908..000000000 --- a/TTXSamples/TTXKcodeChange/TTXKcodeChange.v14.vcxproj +++ /dev/null @@ -1,100 +0,0 @@ - - - - - Debug - Win32 - - - Release - Win32 - - - - {2E487F50-84E4-404D-A7E1-F9FA4A72BC25} - TTXKcodeChange - Win32Proj - TTXKcodeChange - - - - DynamicLibrary - v140 - NotSet - true - - - DynamicLibrary - v140 - NotSet - - - - - - - - - - - - - <_ProjectFileVersion>12.0.30501.0 - - - $(SolutionDir)$(Configuration)\ - $(Configuration)\ - true - - - $(SolutionDir)$(Configuration)\ - $(Configuration)\ - false - - - - Disabled - $(SolutionDir)..\teraterm\common;$(SolutionDir)..\teraterm\teraterm;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;_USRDLL;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebug - - Level3 - EditAndContinue - - - true - Windows - MachineX86 - false - - - - - $(SolutionDir)..\teraterm\common;$(SolutionDir)..\teraterm\teraterm;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;_USRDLL;%(PreprocessorDefinitions) - MultiThreaded - - Level3 - ProgramDatabase - - - true - Windows - true - true - MachineX86 - - - - - - - - - - - - - \ No newline at end of file diff --git a/TTXSamples/TTXKcodeChange/TTXKcodeChange.v15.vcxproj b/TTXSamples/TTXKcodeChange/TTXKcodeChange.v15.vcxproj deleted file mode 100644 index e870a43cd..000000000 --- a/TTXSamples/TTXKcodeChange/TTXKcodeChange.v15.vcxproj +++ /dev/null @@ -1,100 +0,0 @@ - - - - - Debug - Win32 - - - Release - Win32 - - - - {2E487F50-84E4-404D-A7E1-F9FA4A72BC25} - TTXKcodeChange - Win32Proj - TTXKcodeChange - - - - DynamicLibrary - v141 - NotSet - true - - - DynamicLibrary - v141 - NotSet - - - - - - - - - - - - - <_ProjectFileVersion>12.0.30501.0 - - - $(SolutionDir)$(Configuration)\ - $(Configuration)\ - true - - - $(SolutionDir)$(Configuration)\ - $(Configuration)\ - false - - - - Disabled - $(SolutionDir)..\teraterm\common;$(SolutionDir)..\teraterm\teraterm;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;_USRDLL;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebug - - Level3 - EditAndContinue - - - true - Windows - MachineX86 - false - - - - - $(SolutionDir)..\teraterm\common;$(SolutionDir)..\teraterm\teraterm;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;_USRDLL;%(PreprocessorDefinitions) - MultiThreaded - - Level3 - ProgramDatabase - - - true - Windows - true - true - MachineX86 - - - - - - - - - - - - - \ No newline at end of file diff --git a/TTXSamples/TTXKcodeChange/TTXKcodeChange.v15.vcxproj.filters b/TTXSamples/TTXKcodeChange/TTXKcodeChange.v15.vcxproj.filters deleted file mode 100644 index 36775a49c..000000000 --- a/TTXSamples/TTXKcodeChange/TTXKcodeChange.v15.vcxproj.filters +++ /dev/null @@ -1,25 +0,0 @@ - - - - - {4FC737F1-C7A5-4376-A066-2A32D752A2FF} - cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx - - - {61de082d-3825-47ff-b56b-2afbe6cb421d} - - - - - Source Files - - - - - ReadMe - - - ReadMe - - - \ No newline at end of file diff --git a/TTXSamples/TTXKcodeChange/TTXKcodeChange.v16.vcxproj b/TTXSamples/TTXKcodeChange/TTXKcodeChange.v16.vcxproj new file mode 100644 index 000000000..2b4c18e21 --- /dev/null +++ b/TTXSamples/TTXKcodeChange/TTXKcodeChange.v16.vcxproj @@ -0,0 +1,101 @@ + + + + + Debug + Win32 + + + Release + Win32 + + + + {2E487F50-84E4-404D-A7E1-F9FA4A72BC25} + TTXKcodeChange + Win32Proj + TTXKcodeChange + 10.0 + + + + DynamicLibrary + v142 + NotSet + true + + + DynamicLibrary + v142 + NotSet + + + + + + + + + + + + + <_ProjectFileVersion>12.0.30501.0 + + + $(SolutionDir)$(Configuration)\ + $(Configuration)\ + true + + + $(SolutionDir)$(Configuration)\ + $(Configuration)\ + false + + + + Disabled + $(SolutionDir)..\teraterm\common;$(SolutionDir)..\teraterm\teraterm;%(AdditionalIncludeDirectories) + WIN32;_DEBUG;_WINDOWS;_USRDLL;%(PreprocessorDefinitions) + false + EnableFastChecks + MultiThreadedDebug + + Level3 + EditAndContinue + + + true + Windows + MachineX86 + false + + + + + $(SolutionDir)..\teraterm\common;$(SolutionDir)..\teraterm\teraterm;%(AdditionalIncludeDirectories) + WIN32;NDEBUG;_WINDOWS;_USRDLL;%(PreprocessorDefinitions) + MultiThreaded + + Level3 + ProgramDatabase + + + true + Windows + true + true + MachineX86 + + + + + + + + + + + + + diff --git a/TTXSamples/TTXKcodeChange/TTXKcodeChange.v12.vcxproj.filters b/TTXSamples/TTXKcodeChange/TTXKcodeChange.v16.vcxproj.filters similarity index 100% rename from TTXSamples/TTXKcodeChange/TTXKcodeChange.v12.vcxproj.filters rename to TTXSamples/TTXKcodeChange/TTXKcodeChange.v16.vcxproj.filters diff --git a/TTXSamples/TTXKcodeChange/TTXKcodeChange.v17.vcxproj b/TTXSamples/TTXKcodeChange/TTXKcodeChange.v17.vcxproj new file mode 100644 index 000000000..f60f11cb0 --- /dev/null +++ b/TTXSamples/TTXKcodeChange/TTXKcodeChange.v17.vcxproj @@ -0,0 +1,101 @@ + + + + + Debug + Win32 + + + Release + Win32 + + + + {2E487F50-84E4-404D-A7E1-F9FA4A72BC25} + TTXKcodeChange + Win32Proj + TTXKcodeChange + 10.0 + + + + DynamicLibrary + v143 + NotSet + true + + + DynamicLibrary + v143 + NotSet + + + + + + + + + + + + + <_ProjectFileVersion>12.0.30501.0 + + + $(SolutionDir)$(Configuration)\ + $(Configuration)\ + true + + + $(SolutionDir)$(Configuration)\ + $(Configuration)\ + false + + + + Disabled + $(SolutionDir)..\teraterm\common;$(SolutionDir)..\teraterm\teraterm;%(AdditionalIncludeDirectories) + WIN32;_DEBUG;_WINDOWS;_USRDLL;%(PreprocessorDefinitions) + false + EnableFastChecks + MultiThreadedDebug + + Level3 + EditAndContinue + + + true + Windows + MachineX86 + false + + + + + $(SolutionDir)..\teraterm\common;$(SolutionDir)..\teraterm\teraterm;%(AdditionalIncludeDirectories) + WIN32;NDEBUG;_WINDOWS;_USRDLL;%(PreprocessorDefinitions) + MultiThreaded + + Level3 + ProgramDatabase + + + true + Windows + true + true + MachineX86 + + + + + + + + + + + + + \ No newline at end of file diff --git a/TTXSamples/TTXKcodeChange/TTXKcodeChange.v14.vcxproj.filters b/TTXSamples/TTXKcodeChange/TTXKcodeChange.v17.vcxproj.filters similarity index 100% rename from TTXSamples/TTXKcodeChange/TTXKcodeChange.v14.vcxproj.filters rename to TTXSamples/TTXKcodeChange/TTXKcodeChange.v17.vcxproj.filters diff --git a/TTXSamples/TTXKcodeChange/TTXKcodeChange.v9.vcproj b/TTXSamples/TTXKcodeChange/TTXKcodeChange.v9.vcproj deleted file mode 100644 index 1bfa1592f..000000000 --- a/TTXSamples/TTXKcodeChange/TTXKcodeChange.v9.vcproj +++ /dev/null @@ -1,198 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/TTXSamples/TTXKcodeChange/TTXKcodeChange.vcproj b/TTXSamples/TTXKcodeChange/TTXKcodeChange.vcproj deleted file mode 100755 index f6ac97038..000000000 --- a/TTXSamples/TTXKcodeChange/TTXKcodeChange.vcproj +++ /dev/null @@ -1,199 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/TTXSamples/TTXOutputBuffering/CMakeLists.txt b/TTXSamples/TTXOutputBuffering/CMakeLists.txt new file mode 100644 index 000000000..e1ecf06bc --- /dev/null +++ b/TTXSamples/TTXOutputBuffering/CMakeLists.txt @@ -0,0 +1,42 @@ +set(PACKAGE_NAME "TTXOutputBuffering") + +project(${PACKAGE_NAME}) + +add_library( + ${PACKAGE_NAME} SHARED + TTXOutputBuffering.c + ReadMe.txt + ReadMe-ja.txt + ) + +if(SUPPORT_OLD_WINDOWS) + if(MSVC) + target_sources( + ${PACKAGE_NAME} + PRIVATE + ../../teraterm/common/compat_w95_vs2005.c + ) + endif() + if(MINGW) + target_sources( + ${PACKAGE_NAME} + PRIVATE + ../../teraterm/libmingw/tlssup.c + ) + endif() +endif(SUPPORT_OLD_WINDOWS) + +set_target_properties( + ${PACKAGE_NAME} + PROPERTIES + PREFIX "" + RUNTIME_OUTPUT_DIRECTORY "${CMAKE_BINARY_DIR}/" + ) + +target_include_directories( + ${PACKAGE_NAME} + PRIVATE + ../../teraterm/teraterm + ../../teraterm/common + ) + diff --git a/TTXSamples/TTXOutputBuffering/TTXOutputBuffering.c b/TTXSamples/TTXOutputBuffering/TTXOutputBuffering.c index c48e3f7be..aba20d1c2 100644 --- a/TTXSamples/TTXOutputBuffering/TTXOutputBuffering.c +++ b/TTXSamples/TTXOutputBuffering/TTXOutputBuffering.c @@ -4,8 +4,6 @@ #include "ttlib.h" //#include "tt_res.h" -#include "compat_w95.h" - #define ORDER 4000 #define BUFF_SIZE 4096 @@ -182,7 +180,6 @@ BOOL WINAPI DllMain(HANDLE hInstance, break; case DLL_PROCESS_ATTACH: /* do process initialization */ - DoCover_IsDebuggerPresent(); hInst = hInstance; pvar = &InstVar; break; diff --git a/TTXSamples/TTXOutputBuffering/TTXOutputBuffering.v10.vcxproj b/TTXSamples/TTXOutputBuffering/TTXOutputBuffering.v10.vcxproj deleted file mode 100644 index 714427186..000000000 --- a/TTXSamples/TTXOutputBuffering/TTXOutputBuffering.v10.vcxproj +++ /dev/null @@ -1,95 +0,0 @@ - - - - - Debug - Win32 - - - Release - Win32 - - - - {80BE71D1-BEA3-4A5D-8F13-362D6364892D} - TTXOutputBuffering - Win32Proj - TTXOutputBuffering - - - - DynamicLibrary - NotSet - true - - - DynamicLibrary - NotSet - - - - - - - - - - - - - <_ProjectFileVersion>10.0.40219.1 - $(SolutionDir)$(Configuration)\ - $(Configuration)\ - true - $(SolutionDir)$(Configuration)\ - $(Configuration)\ - false - - - - Disabled - $(SolutionDir)..\teraterm\common;$(SolutionDir)..\teraterm\teraterm;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;_USRDLL;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebug - - - Level3 - EditAndContinue - - - true - Windows - MachineX86 - - - - - $(SolutionDir)..\teraterm\common;$(SolutionDir)..\teraterm\teraterm;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;_USRDLL;%(PreprocessorDefinitions) - MultiThreaded - - - Level3 - ProgramDatabase - - - true - Windows - true - true - MachineX86 - - - - - - - - - - - - - \ No newline at end of file diff --git a/TTXSamples/TTXOutputBuffering/TTXOutputBuffering.v10.vcxproj.filters b/TTXSamples/TTXOutputBuffering/TTXOutputBuffering.v10.vcxproj.filters deleted file mode 100644 index 9f773b9a6..000000000 --- a/TTXSamples/TTXOutputBuffering/TTXOutputBuffering.v10.vcxproj.filters +++ /dev/null @@ -1,25 +0,0 @@ - - - - - {4FC737F1-C7A5-4376-A066-2A32D752A2FF} - cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx - - - {1fe99b27-66bb-4edd-a4f8-60c22d6abce0} - - - - - Source Files - - - - - ReadMe - - - ReadMe - - - \ No newline at end of file diff --git a/TTXSamples/TTXOutputBuffering/TTXOutputBuffering.v11.vcxproj b/TTXSamples/TTXOutputBuffering/TTXOutputBuffering.v11.vcxproj deleted file mode 100644 index ef7967199..000000000 --- a/TTXSamples/TTXOutputBuffering/TTXOutputBuffering.v11.vcxproj +++ /dev/null @@ -1,100 +0,0 @@ - - - - - Debug - Win32 - - - Release - Win32 - - - - {80BE71D1-BEA3-4A5D-8F13-362D6364892D} - TTXOutputBuffering - Win32Proj - TTXOutputBuffering - - - - DynamicLibrary - v110 - NotSet - true - - - DynamicLibrary - v110 - NotSet - - - - - - - - - - - - - <_ProjectFileVersion>11.0.61030.0 - - - $(SolutionDir)$(Configuration)\ - $(Configuration)\ - true - - - $(SolutionDir)$(Configuration)\ - $(Configuration)\ - false - - - - Disabled - $(SolutionDir)..\teraterm\common;$(SolutionDir)..\teraterm\teraterm;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;_USRDLL;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebug - - Level3 - EditAndContinue - - - true - Windows - MachineX86 - false - - - - - $(SolutionDir)..\teraterm\common;$(SolutionDir)..\teraterm\teraterm;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;_USRDLL;%(PreprocessorDefinitions) - MultiThreaded - - Level3 - ProgramDatabase - - - true - Windows - true - true - MachineX86 - - - - - - - - - - - - - \ No newline at end of file diff --git a/TTXSamples/TTXOutputBuffering/TTXOutputBuffering.v11.vcxproj.filters b/TTXSamples/TTXOutputBuffering/TTXOutputBuffering.v11.vcxproj.filters deleted file mode 100644 index 5637cb9e2..000000000 --- a/TTXSamples/TTXOutputBuffering/TTXOutputBuffering.v11.vcxproj.filters +++ /dev/null @@ -1,25 +0,0 @@ - - - - - {4FC737F1-C7A5-4376-A066-2A32D752A2FF} - cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx - - - {490c5057-dd2e-4897-a955-58731e78dc8f} - - - - - Source Files - - - - - ReadMe - - - ReadMe - - - \ No newline at end of file diff --git a/TTXSamples/TTXOutputBuffering/TTXOutputBuffering.v12.vcxproj b/TTXSamples/TTXOutputBuffering/TTXOutputBuffering.v12.vcxproj deleted file mode 100644 index 00c23fc40..000000000 --- a/TTXSamples/TTXOutputBuffering/TTXOutputBuffering.v12.vcxproj +++ /dev/null @@ -1,100 +0,0 @@ - - - - - Debug - Win32 - - - Release - Win32 - - - - {80BE71D1-BEA3-4A5D-8F13-362D6364892D} - TTXOutputBuffering - Win32Proj - TTXOutputBuffering - - - - DynamicLibrary - v120 - NotSet - true - - - DynamicLibrary - v120 - NotSet - - - - - - - - - - - - - <_ProjectFileVersion>12.0.30501.0 - - - $(SolutionDir)$(Configuration)\ - $(Configuration)\ - true - - - $(SolutionDir)$(Configuration)\ - $(Configuration)\ - false - - - - Disabled - $(SolutionDir)..\teraterm\common;$(SolutionDir)..\teraterm\teraterm;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;_USRDLL;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebug - - Level3 - EditAndContinue - - - true - Windows - MachineX86 - false - - - - - $(SolutionDir)..\teraterm\common;$(SolutionDir)..\teraterm\teraterm;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;_USRDLL;%(PreprocessorDefinitions) - MultiThreaded - - Level3 - ProgramDatabase - - - true - Windows - true - true - MachineX86 - - - - - - - - - - - - - \ No newline at end of file diff --git a/TTXSamples/TTXOutputBuffering/TTXOutputBuffering.v14.vcxproj b/TTXSamples/TTXOutputBuffering/TTXOutputBuffering.v14.vcxproj deleted file mode 100644 index ef4329436..000000000 --- a/TTXSamples/TTXOutputBuffering/TTXOutputBuffering.v14.vcxproj +++ /dev/null @@ -1,100 +0,0 @@ - - - - - Debug - Win32 - - - Release - Win32 - - - - {80BE71D1-BEA3-4A5D-8F13-362D6364892D} - TTXOutputBuffering - Win32Proj - TTXOutputBuffering - - - - DynamicLibrary - v140 - NotSet - true - - - DynamicLibrary - v140 - NotSet - - - - - - - - - - - - - <_ProjectFileVersion>12.0.30501.0 - - - $(SolutionDir)$(Configuration)\ - $(Configuration)\ - true - - - $(SolutionDir)$(Configuration)\ - $(Configuration)\ - false - - - - Disabled - $(SolutionDir)..\teraterm\common;$(SolutionDir)..\teraterm\teraterm;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;_USRDLL;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebug - - Level3 - EditAndContinue - - - true - Windows - MachineX86 - false - - - - - $(SolutionDir)..\teraterm\common;$(SolutionDir)..\teraterm\teraterm;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;_USRDLL;%(PreprocessorDefinitions) - MultiThreaded - - Level3 - ProgramDatabase - - - true - Windows - true - true - MachineX86 - - - - - - - - - - - - - \ No newline at end of file diff --git a/TTXSamples/TTXOutputBuffering/TTXOutputBuffering.v15.vcxproj b/TTXSamples/TTXOutputBuffering/TTXOutputBuffering.v15.vcxproj deleted file mode 100644 index 0937c7fef..000000000 --- a/TTXSamples/TTXOutputBuffering/TTXOutputBuffering.v15.vcxproj +++ /dev/null @@ -1,100 +0,0 @@ - - - - - Debug - Win32 - - - Release - Win32 - - - - {80BE71D1-BEA3-4A5D-8F13-362D6364892D} - TTXOutputBuffering - Win32Proj - TTXOutputBuffering - - - - DynamicLibrary - v141 - NotSet - true - - - DynamicLibrary - v141 - NotSet - - - - - - - - - - - - - <_ProjectFileVersion>12.0.30501.0 - - - $(SolutionDir)$(Configuration)\ - $(Configuration)\ - true - - - $(SolutionDir)$(Configuration)\ - $(Configuration)\ - false - - - - Disabled - $(SolutionDir)..\teraterm\common;$(SolutionDir)..\teraterm\teraterm;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;_USRDLL;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebug - - Level3 - EditAndContinue - - - true - Windows - MachineX86 - false - - - - - $(SolutionDir)..\teraterm\common;$(SolutionDir)..\teraterm\teraterm;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;_USRDLL;%(PreprocessorDefinitions) - MultiThreaded - - Level3 - ProgramDatabase - - - true - Windows - true - true - MachineX86 - - - - - - - - - - - - - \ No newline at end of file diff --git a/TTXSamples/TTXOutputBuffering/TTXOutputBuffering.v15.vcxproj.filters b/TTXSamples/TTXOutputBuffering/TTXOutputBuffering.v15.vcxproj.filters deleted file mode 100644 index e72aefda7..000000000 --- a/TTXSamples/TTXOutputBuffering/TTXOutputBuffering.v15.vcxproj.filters +++ /dev/null @@ -1,25 +0,0 @@ - - - - - {4FC737F1-C7A5-4376-A066-2A32D752A2FF} - cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx - - - {eac98687-8494-4f5a-9a22-74285b3cb27e} - - - - - Source Files - - - - - ReadMe - - - ReadMe - - - \ No newline at end of file diff --git a/TTXSamples/TTXOutputBuffering/TTXOutputBuffering.v16.vcxproj b/TTXSamples/TTXOutputBuffering/TTXOutputBuffering.v16.vcxproj new file mode 100644 index 000000000..a59c2dcf6 --- /dev/null +++ b/TTXSamples/TTXOutputBuffering/TTXOutputBuffering.v16.vcxproj @@ -0,0 +1,101 @@ + + + + + Debug + Win32 + + + Release + Win32 + + + + {80BE71D1-BEA3-4A5D-8F13-362D6364892D} + TTXOutputBuffering + Win32Proj + TTXOutputBuffering + 10.0 + + + + DynamicLibrary + v142 + NotSet + true + + + DynamicLibrary + v142 + NotSet + + + + + + + + + + + + + <_ProjectFileVersion>12.0.30501.0 + + + $(SolutionDir)$(Configuration)\ + $(Configuration)\ + true + + + $(SolutionDir)$(Configuration)\ + $(Configuration)\ + false + + + + Disabled + $(SolutionDir)..\teraterm\common;$(SolutionDir)..\teraterm\teraterm;%(AdditionalIncludeDirectories) + WIN32;_DEBUG;_WINDOWS;_USRDLL;%(PreprocessorDefinitions) + false + EnableFastChecks + MultiThreadedDebug + + Level3 + EditAndContinue + + + true + Windows + MachineX86 + false + + + + + $(SolutionDir)..\teraterm\common;$(SolutionDir)..\teraterm\teraterm;%(AdditionalIncludeDirectories) + WIN32;NDEBUG;_WINDOWS;_USRDLL;%(PreprocessorDefinitions) + MultiThreaded + + Level3 + ProgramDatabase + + + true + Windows + true + true + MachineX86 + + + + + + + + + + + + + diff --git a/TTXSamples/TTXOutputBuffering/TTXOutputBuffering.v12.vcxproj.filters b/TTXSamples/TTXOutputBuffering/TTXOutputBuffering.v16.vcxproj.filters similarity index 100% rename from TTXSamples/TTXOutputBuffering/TTXOutputBuffering.v12.vcxproj.filters rename to TTXSamples/TTXOutputBuffering/TTXOutputBuffering.v16.vcxproj.filters diff --git a/TTXSamples/TTXOutputBuffering/TTXOutputBuffering.v17.vcxproj b/TTXSamples/TTXOutputBuffering/TTXOutputBuffering.v17.vcxproj new file mode 100644 index 000000000..58cc546dd --- /dev/null +++ b/TTXSamples/TTXOutputBuffering/TTXOutputBuffering.v17.vcxproj @@ -0,0 +1,101 @@ + + + + + Debug + Win32 + + + Release + Win32 + + + + {80BE71D1-BEA3-4A5D-8F13-362D6364892D} + TTXOutputBuffering + Win32Proj + TTXOutputBuffering + 10.0 + + + + DynamicLibrary + v143 + NotSet + true + + + DynamicLibrary + v143 + NotSet + + + + + + + + + + + + + <_ProjectFileVersion>12.0.30501.0 + + + $(SolutionDir)$(Configuration)\ + $(Configuration)\ + true + + + $(SolutionDir)$(Configuration)\ + $(Configuration)\ + false + + + + Disabled + $(SolutionDir)..\teraterm\common;$(SolutionDir)..\teraterm\teraterm;%(AdditionalIncludeDirectories) + WIN32;_DEBUG;_WINDOWS;_USRDLL;%(PreprocessorDefinitions) + false + EnableFastChecks + MultiThreadedDebug + + Level3 + EditAndContinue + + + true + Windows + MachineX86 + false + + + + + $(SolutionDir)..\teraterm\common;$(SolutionDir)..\teraterm\teraterm;%(AdditionalIncludeDirectories) + WIN32;NDEBUG;_WINDOWS;_USRDLL;%(PreprocessorDefinitions) + MultiThreaded + + Level3 + ProgramDatabase + + + true + Windows + true + true + MachineX86 + + + + + + + + + + + + + \ No newline at end of file diff --git a/TTXSamples/TTXOutputBuffering/TTXOutputBuffering.v14.vcxproj.filters b/TTXSamples/TTXOutputBuffering/TTXOutputBuffering.v17.vcxproj.filters similarity index 100% rename from TTXSamples/TTXOutputBuffering/TTXOutputBuffering.v14.vcxproj.filters rename to TTXSamples/TTXOutputBuffering/TTXOutputBuffering.v17.vcxproj.filters diff --git a/TTXSamples/TTXOutputBuffering/TTXOutputBuffering.v9.vcproj b/TTXSamples/TTXOutputBuffering/TTXOutputBuffering.v9.vcproj deleted file mode 100644 index 4ba79cdd8..000000000 --- a/TTXSamples/TTXOutputBuffering/TTXOutputBuffering.v9.vcproj +++ /dev/null @@ -1,198 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/TTXSamples/TTXOutputBuffering/TTXOutputBuffering.vcproj b/TTXSamples/TTXOutputBuffering/TTXOutputBuffering.vcproj deleted file mode 100644 index a05c4c294..000000000 --- a/TTXSamples/TTXOutputBuffering/TTXOutputBuffering.vcproj +++ /dev/null @@ -1,199 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/TTXSamples/TTXRecurringCommand/CMakeLists.txt b/TTXSamples/TTXRecurringCommand/CMakeLists.txt new file mode 100644 index 000000000..73e100cec --- /dev/null +++ b/TTXSamples/TTXRecurringCommand/CMakeLists.txt @@ -0,0 +1,82 @@ +set(PACKAGE_NAME "TTXRecurringCommand") + +project(${PACKAGE_NAME}) + +add_library( + ${PACKAGE_NAME} SHARED + TTXRecurringCommand.c + TTXRecurringCommand.rc + ReadMe.txt + ReadMe-ja.txt + ../../teraterm/common/dlglib.h + ) + +if(SUPPORT_OLD_WINDOWS) + if(MSVC) + target_sources( + ${PACKAGE_NAME} + PRIVATE + ../../teraterm/common/compat_w95_vs2005.c + ) + endif() + if(MINGW) + target_sources( + ${PACKAGE_NAME} + PRIVATE + ../../teraterm/libmingw/tlssup.c + ) + target_link_libraries( + ${PACKAGE_NAME} + PRIVATE + -Wl,--whole-archive + mingw_msvcrt + -Wl,--no-whole-archive + ) + endif() +endif(SUPPORT_OLD_WINDOWS) + +source_group( + "common" + REGULAR_EXPRESSION + "teraterm\/common\/" + ) + +set_target_properties( + ${PACKAGE_NAME} + PROPERTIES + PREFIX "" + RUNTIME_OUTPUT_DIRECTORY "${CMAKE_BINARY_DIR}/" + ) + +target_include_directories( + ${PACKAGE_NAME} + PRIVATE + ../../teraterm/teraterm + ) + +target_link_libraries( + ${PACKAGE_NAME} + PRIVATE + common_static + ttpcmn + ) + +if(SUPPORT_OLD_WINDOWS) + target_link_libraries( + ${PACKAGE_NAME} + PRIVATE + layer_for_unicode + ) +endif(SUPPORT_OLD_WINDOWS) + +target_link_libraries( + ${PACKAGE_NAME} + PRIVATE + gdi32 + ) + +install( + TARGETS ${PACKAGE_NAME} + RUNTIME + DESTINATION . + ) diff --git a/TTXSamples/TTXRecurringCommand/TTXRecurringCommand.c b/TTXSamples/TTXRecurringCommand/TTXRecurringCommand.c index 8425bf4f6..34e718b38 100644 --- a/TTXSamples/TTXRecurringCommand/TTXRecurringCommand.c +++ b/TTXSamples/TTXRecurringCommand/TTXRecurringCommand.c @@ -8,8 +8,9 @@ #include "tt_res.h" #include "resource.h" #include "i18n.h" - -#include "compat_w95.h" +#include "dlglib.h" +#include "inifile_com.h" +#include "codeconv.h" #define ORDER 4000 @@ -75,10 +76,10 @@ HMENU GetSubMenuByChildID(HMENU menu, UINT id) { return NULL; } -WORD GetOnOff(PCHAR Sect, PCHAR Key, PCHAR FName, BOOL Default) +WORD GetOnOff(PCHAR Sect, PCHAR Key, const wchar_t *FName, BOOL Default) { char Temp[4]; - GetPrivateProfileString(Sect, Key, "", Temp, sizeof(Temp), FName); + GetPrivateProfileStringAFileW(Sect, Key, "", Temp, sizeof(Temp), FName); if (Default) { if (_stricmp(Temp, "off") == 0) return 0; @@ -329,24 +330,24 @@ static void PASCAL TTXCloseFile(TTXFileHooks *hooks) { // // TTXReadIniFile, TTXWriteIniFile -- ݒt@C̓ǂݏ // -void ReadINI(PCHAR fn, PTTSet ts) { - char sect[OutBuffSize]; - char *p; +void ReadINI(const wchar_t *fn, PTTSet ts) { + wchar_t sect[OutBuffSize]; + wchar_t *p; // DLL t@CAINI ̃ZNV߂ if (fn[0] == '\\' || fn[0] == '/' || (fn[0] != 0 && fn[1] == ':')) { - strncpy_s(sect, sizeof(sect), fn, _TRUNCATE); + wcsncpy_s(sect, _countof(sect), fn, _TRUNCATE); } else { - GetModuleFileName(NULL, sect, sizeof(sect)); - p = strrchr(sect, '\\'); + GetModuleFileNameW(NULL, sect, _countof(sect)); + p = wcsrchr(sect, '\\'); if (!p) { return; } - strncpy_s(p+1, sizeof(sect) - ((p+1)-sect), fn, _TRUNCATE); + wcsncpy_s(p+1, _countof(sect) - ((p+1)-sect), fn, _TRUNCATE); } - GetPrivateProfileString(SECTION, "Command", "", pvar->orgCommand, sizeof(pvar->orgCommand), sect); + GetPrivateProfileStringAFileW(SECTION, "Command", "", pvar->orgCommand, sizeof(pvar->orgCommand), sect); strncpy_s(pvar->command, sizeof(pvar->command), pvar->orgCommand, _TRUNCATE); UnEscapeStr(pvar->command); pvar->cmdLen = (int)strlen(pvar->command); @@ -357,7 +358,7 @@ void ReadINI(PCHAR fn, PTTSet ts) { pvar->command[pvar->cmdLen] = '\0'; } - pvar->interval = GetPrivateProfileInt(SECTION, "Interval", DEFAULT_INTERVAL, sect); + pvar->interval = GetPrivateProfileIntAFileW(SECTION, "Interval", DEFAULT_INTERVAL, sect); if (pvar->interval < MINIMUM_INTERVAL) { pvar->interval = MINIMUM_INTERVAL; } @@ -365,26 +366,26 @@ void ReadINI(PCHAR fn, PTTSet ts) { pvar->enable = GetOnOff(SECTION, "Enable", sect, FALSE); } -static void PASCAL TTXReadIniFile(PCHAR fn, PTTSet ts) { +static void PASCAL TTXReadIniFile(const wchar_t *fn, PTTSet ts) { pvar->origReadIniFile(fn, ts); ReadINI(fn, ts); return; } -static void PASCAL TTXWriteIniFile(PCHAR fn, PTTSet ts) { +static void PASCAL TTXWriteIniFile(const wchar_t *fn, PTTSet ts) { char buff[20]; pvar->origWriteIniFile(fn, ts); - WritePrivateProfileString(SECTION, "Enable", pvar->enable?"on":"off", fn); + WritePrivateProfileStringAFileW(SECTION, "Enable", pvar->enable?"on":"off", fn); - WritePrivateProfileString(SECTION, "Command", pvar->orgCommand, fn); + WritePrivateProfileStringAFileW(SECTION, "Command", pvar->orgCommand, fn); _snprintf_s(buff, sizeof(buff), _TRUNCATE, "%d", pvar->interval); - WritePrivateProfileString(SECTION, "Interval", buff, fn); + WritePrivateProfileStringAFileW(SECTION, "Interval", buff, fn); - WritePrivateProfileString(SECTION, "AddNewLine", pvar->add_nl?"on":"off", fn); + WritePrivateProfileStringAFileW(SECTION, "AddNewLine", pvar->add_nl?"on":"off", fn); return; } @@ -395,15 +396,15 @@ static void PASCAL TTXWriteIniFile(PCHAR fn, PTTSet ts) { // /F= ɂݒt@C̐؂ւ̂ݑΉB // -static void PASCAL TTXParseParam(PCHAR Param, PTTSet ts, PCHAR DDETopic) { - char buff[1024]; - PCHAR next; +static void PASCAL TTXParseParam(wchar_t *Param, PTTSet ts, PCHAR DDETopic) { + wchar_t buff[1024]; + wchar_t *next; pvar->origParseParam(Param, ts, DDETopic); next = Param; while (next = GetParam(buff, sizeof(buff), next)) { DequoteParam(buff, sizeof(buff), buff); - if (_strnicmp(buff, "/F=", 3) == 0) { + if (_wcsnicmp(buff, L"/F=", 3) == 0) { ReadINI(buff+3, ts); } } @@ -429,24 +430,25 @@ static void PASCAL TTXGetSetupHooks(TTXSetupHooks *hooks) { // Rg[j[RecurringCommandljB // static void PASCAL TTXModifyMenu(HMENU menu) { + static const DlgTextInfo MenuTextInfo[] = { + { ID_MENU_SETUP, "MENU_SETUP_RECURRING" }, + { ID_MENU_CONTROL, "MENU_CONTROL_RECURRING" }, + }; UINT flag = MF_BYCOMMAND | MF_STRING | MF_ENABLED; pvar->SetupMenu = GetSetupMenu(menu); pvar->ControlMenu = GetControlMenu(menu); - GetI18nStr(SECTION, "MENU_SETUP_RECURRING", pvar->ts->UIMsg, sizeof(pvar->ts->UIMsg), - "Rec&urring command", pvar->ts->UILanguageFile); - InsertMenu(pvar->SetupMenu, ID_SETUP_ADDITIONALSETTINGS, flag, ID_MENU_SETUP, pvar->ts->UIMsg); + InsertMenu(pvar->SetupMenu, ID_SETUP_ADDITIONALSETTINGS, flag, ID_MENU_SETUP, "Rec&urring command"); if (pvar->enable) { flag |= MF_CHECKED; } - - GetI18nStr(SECTION, "MENU_CONTROL_RECURRING", pvar->ts->UIMsg, sizeof(pvar->ts->UIMsg), - "Rec&urring command", pvar->ts->UILanguageFile); - InsertMenu(pvar->ControlMenu, ID_CONTROL_MACRO, flag, ID_MENU_CONTROL, pvar->ts->UIMsg); + InsertMenu(pvar->ControlMenu, ID_CONTROL_MACRO, flag, ID_MENU_CONTROL, "Rec&urring command"); InsertMenu(pvar->ControlMenu, ID_CONTROL_MACRO, MF_BYCOMMAND | MF_SEPARATOR, 0, NULL); + + SetI18nMenuStrsW(menu, SECTION, MenuTextInfo, _countof(MenuTextInfo), pvar->ts->UILanguageFileW); } static void PASCAL TTXModifyPopupMenu(HMENU menu) { @@ -463,50 +465,18 @@ static void PASCAL TTXModifyPopupMenu(HMENU menu) { // // RecurringCommandݒ_CAÕR[obN֐B // -static LRESULT CALLBACK RecurringCommandSetting(HWND dlg, UINT msg, WPARAM wParam, LPARAM lParam) { - char uimsg[MAX_UIMSG]; - static HFONT DlgFont; - LOGFONT logfont; - HFONT font; +static INT_PTR CALLBACK RecurringCommandSetting(HWND dlg, UINT msg, WPARAM wParam, LPARAM lParam) { + static const DlgTextInfo text_info[] = { + { 0, "DLG_TITLE" }, + { IDC_ENABLE, "DLG_ENABLE" }, + { IDC_INTERVAL_LABEL, "DLG_INTERVAL" }, + { IDC_COMMAND_LABEL, "DLG_COMMAND" }, + { IDC_ADD_NL, "DLG_ADD_NEWLINE" }, + }; switch (msg) { case WM_INITDIALOG: - font = (HFONT)SendMessage(dlg, WM_GETFONT, 0, 0); - GetObject(font, sizeof(LOGFONT), &logfont); - - if ((GetI18nLogfont(SECTION, "DLG_TAHOMA_FONT", &logfont, GetDeviceCaps(GetDC(dlg), LOGPIXELSY), - pvar->ts->UILanguageFile) != FALSE) && - ((DlgFont = CreateFontIndirect(&logfont)) != NULL)) { - SendDlgItemMessage(dlg, IDC_ENABLE, WM_SETFONT, (WPARAM)DlgFont, MAKELPARAM(TRUE,0)); - SendDlgItemMessage(dlg, IDC_INTERVAL, WM_SETFONT, (WPARAM)DlgFont, MAKELPARAM(TRUE,0)); - SendDlgItemMessage(dlg, IDC_INTERVAL_LABEL, WM_SETFONT, (WPARAM)DlgFont, MAKELPARAM(TRUE,0)); - SendDlgItemMessage(dlg, IDC_COMMAND, WM_SETFONT, (WPARAM)DlgFont, MAKELPARAM(TRUE,0)); - SendDlgItemMessage(dlg, IDC_COMMAND_LABEL, WM_SETFONT, (WPARAM)DlgFont, MAKELPARAM(TRUE,0)); - SendDlgItemMessage(dlg, IDC_ADD_NL, WM_SETFONT, (WPARAM)DlgFont, MAKELPARAM(TRUE,0)); - } - else { - DlgFont = NULL; - } - - GetWindowText(dlg, uimsg, sizeof(uimsg)); - GetI18nStr(SECTION, "DLG_TITLE", pvar->ts->UIMsg, sizeof(pvar->ts->UIMsg), uimsg, pvar->ts->UILanguageFile); - SetWindowText(dlg, pvar->ts->UIMsg); - - GetDlgItemText(dlg, IDC_ENABLE, uimsg, sizeof(uimsg)); - GetI18nStr(SECTION, "DLG_ENABLE", pvar->ts->UIMsg, sizeof(pvar->ts->UIMsg), uimsg, pvar->ts->UILanguageFile); - SetDlgItemText(dlg, IDC_ENABLE, pvar->ts->UIMsg); - - GetDlgItemText(dlg, IDC_INTERVAL_LABEL, uimsg, sizeof(uimsg)); - GetI18nStr(SECTION, "DLG_INTERVAL", pvar->ts->UIMsg, sizeof(pvar->ts->UIMsg), uimsg, pvar->ts->UILanguageFile); - SetDlgItemText(dlg, IDC_INTERVAL_LABEL, pvar->ts->UIMsg); - - GetDlgItemText(dlg, IDC_COMMAND_LABEL, uimsg, sizeof(uimsg)); - GetI18nStr(SECTION, "DLG_COMMAND", pvar->ts->UIMsg, sizeof(pvar->ts->UIMsg), uimsg, pvar->ts->UILanguageFile); - SetDlgItemText(dlg, IDC_COMMAND_LABEL, pvar->ts->UIMsg); - - GetDlgItemText(dlg, IDC_ADD_NL, uimsg, sizeof(uimsg)); - GetI18nStr(SECTION, "DLG_ADD_NEWLINE", pvar->ts->UIMsg, sizeof(pvar->ts->UIMsg), uimsg, pvar->ts->UILanguageFile); - SetDlgItemText(dlg, IDC_ADD_NL, pvar->ts->UIMsg); + SetI18nDlgStrsW(dlg, SECTION, text_info, _countof(text_info), pvar->ts->UILanguageFileW); SendMessage(GetDlgItem(dlg, IDC_ENABLE), BM_SETCHECK, pvar->enable?BST_CHECKED:BST_UNCHECKED, 0); @@ -515,6 +485,8 @@ static LRESULT CALLBACK RecurringCommandSetting(HWND dlg, UINT msg, WPARAM wPara SendMessage(GetDlgItem(dlg, IDC_ADD_NL), BM_SETCHECK, pvar->add_nl?BST_CHECKED:BST_UNCHECKED, 0); + CenterWindow(dlg, GetParent(dlg)); + return TRUE; case WM_COMMAND: switch (LOWORD(wParam)) { @@ -548,16 +520,10 @@ static LRESULT CALLBACK RecurringCommandSetting(HWND dlg, UINT msg, WPARAM wPara } EndDialog(dlg, IDOK); - if (DlgFont != NULL) { - DeleteObject(DlgFont); - } return TRUE; case IDCANCEL: EndDialog(dlg, IDCANCEL); - if (DlgFont != NULL) { - DeleteObject(DlgFont); - } return TRUE; } break; @@ -571,8 +537,10 @@ static LRESULT CALLBACK RecurringCommandSetting(HWND dlg, UINT msg, WPARAM wPara static int PASCAL TTXProcessCommand(HWND hWin, WORD cmd) { switch (cmd) { case ID_MENU_SETUP: - switch (DialogBoxParam(hInst, MAKEINTRESOURCE(IDD_SETUP_RECURRINGCOMMAND), - hWin, RecurringCommandSetting, (LPARAM)NULL)) { + SetDialogFont(pvar->ts->DialogFontNameW, pvar->ts->DialogFontPoint, pvar->ts->DialogFontCharSet, + pvar->ts->UILanguageFileW, SECTION, "DLG_TAHOMA_FONT"); + switch (TTDialogBoxParam(hInst, MAKEINTRESOURCE(IDD_SETUP_RECURRINGCOMMAND), + hWin, RecurringCommandSetting, (LPARAM)NULL)) { case IDOK: break; case IDCANCEL: @@ -658,7 +626,6 @@ BOOL WINAPI DllMain(HANDLE hInstance, break; case DLL_PROCESS_ATTACH: /* do process initialization */ - DoCover_IsDebuggerPresent(); hInst = hInstance; pvar = &InstVar; break; diff --git a/TTXSamples/TTXRecurringCommand/TTXRecurringCommand.v10.vcxproj b/TTXSamples/TTXRecurringCommand/TTXRecurringCommand.v10.vcxproj deleted file mode 100644 index 3ff8d237a..000000000 --- a/TTXSamples/TTXRecurringCommand/TTXRecurringCommand.v10.vcxproj +++ /dev/null @@ -1,103 +0,0 @@ - - - - - Debug - Win32 - - - Release - Win32 - - - - {3C656364-FAEA-41D2-B227-52187D3C2529} - TTXRecurringCommand - Win32Proj - TTXRecurringCommand - - - - DynamicLibrary - NotSet - true - - - DynamicLibrary - NotSet - - - - - - - - - - - - - <_ProjectFileVersion>10.0.40219.1 - $(SolutionDir)$(Configuration)\ - $(Configuration)\ - true - $(SolutionDir)$(Configuration)\ - $(Configuration)\ - false - - - - Disabled - $(SolutionDir)..\teraterm\common;$(SolutionDir)..\teraterm\teraterm;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;_USRDLL;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebug - - - Level3 - EditAndContinue - - - $(SolutionDir)..\teraterm\$(Configuration)\ttpcmn.lib;%(AdditionalDependencies) - true - Windows - MachineX86 - - - - - $(SolutionDir)..\teraterm\common;$(SolutionDir)..\teraterm\teraterm;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;_USRDLL;%(PreprocessorDefinitions) - MultiThreaded - - - Level3 - ProgramDatabase - - - $(SolutionDir)..\teraterm\$(Configuration)\ttpcmn.lib;%(AdditionalDependencies) - true - Windows - true - true - MachineX86 - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/TTXSamples/TTXRecurringCommand/TTXRecurringCommand.v10.vcxproj.filters b/TTXSamples/TTXRecurringCommand/TTXRecurringCommand.v10.vcxproj.filters deleted file mode 100644 index 4af30aa36..000000000 --- a/TTXSamples/TTXRecurringCommand/TTXRecurringCommand.v10.vcxproj.filters +++ /dev/null @@ -1,43 +0,0 @@ - - - - - {4FC737F1-C7A5-4376-A066-2A32D752A2FF} - cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx - - - {93995380-89BD-4b04-88EB-625FBE52EBFB} - h;hpp;hxx;hm;inl;inc;xsd - - - {67DA6AB6-F800-4c08-8B7A-83BB121AAD01} - rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav - - - {a8fef98c-ffe2-4e35-9464-fa4058d9e382} - - - - - Source Files - - - - - Header Files - - - - - Resource Files - - - - - ReadMe - - - ReadMe - - - \ No newline at end of file diff --git a/TTXSamples/TTXRecurringCommand/TTXRecurringCommand.v11.vcxproj b/TTXSamples/TTXRecurringCommand/TTXRecurringCommand.v11.vcxproj deleted file mode 100644 index 8cfe63726..000000000 --- a/TTXSamples/TTXRecurringCommand/TTXRecurringCommand.v11.vcxproj +++ /dev/null @@ -1,108 +0,0 @@ - - - - - Debug - Win32 - - - Release - Win32 - - - - {3C656364-FAEA-41D2-B227-52187D3C2529} - TTXRecurringCommand - Win32Proj - TTXRecurringCommand - - - - DynamicLibrary - v110 - NotSet - true - - - DynamicLibrary - v110 - NotSet - - - - - - - - - - - - - <_ProjectFileVersion>11.0.61030.0 - - - $(SolutionDir)$(Configuration)\ - $(Configuration)\ - true - - - $(SolutionDir)$(Configuration)\ - $(Configuration)\ - false - - - - Disabled - $(SolutionDir)..\teraterm\common;$(SolutionDir)..\teraterm\teraterm;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;_USRDLL;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebug - - Level3 - EditAndContinue - - - $(SolutionDir)..\teraterm\$(Configuration)\ttpcmn.lib;%(AdditionalDependencies) - true - Windows - MachineX86 - false - - - - - $(SolutionDir)..\teraterm\common;$(SolutionDir)..\teraterm\teraterm;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;_USRDLL;%(PreprocessorDefinitions) - MultiThreaded - - Level3 - ProgramDatabase - - - $(SolutionDir)..\teraterm\$(Configuration)\ttpcmn.lib;%(AdditionalDependencies) - true - Windows - true - true - MachineX86 - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/TTXSamples/TTXRecurringCommand/TTXRecurringCommand.v11.vcxproj.filters b/TTXSamples/TTXRecurringCommand/TTXRecurringCommand.v11.vcxproj.filters deleted file mode 100644 index b057b873d..000000000 --- a/TTXSamples/TTXRecurringCommand/TTXRecurringCommand.v11.vcxproj.filters +++ /dev/null @@ -1,43 +0,0 @@ - - - - - {4FC737F1-C7A5-4376-A066-2A32D752A2FF} - cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx - - - {93995380-89BD-4b04-88EB-625FBE52EBFB} - h;hpp;hxx;hm;inl;inc;xsd - - - {67DA6AB6-F800-4c08-8B7A-83BB121AAD01} - rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav - - - {cb79a923-941b-4941-89ad-33aea0e787ee} - - - - - Source Files - - - - - Header Files - - - - - Resource Files - - - - - ReadMe - - - ReadMe - - - \ No newline at end of file diff --git a/TTXSamples/TTXRecurringCommand/TTXRecurringCommand.v12.vcxproj b/TTXSamples/TTXRecurringCommand/TTXRecurringCommand.v12.vcxproj deleted file mode 100644 index 2f24bf047..000000000 --- a/TTXSamples/TTXRecurringCommand/TTXRecurringCommand.v12.vcxproj +++ /dev/null @@ -1,108 +0,0 @@ - - - - - Debug - Win32 - - - Release - Win32 - - - - {3C656364-FAEA-41D2-B227-52187D3C2529} - TTXRecurringCommand - Win32Proj - TTXRecurringCommand - - - - DynamicLibrary - v120 - NotSet - true - - - DynamicLibrary - v120 - NotSet - - - - - - - - - - - - - <_ProjectFileVersion>12.0.30501.0 - - - $(SolutionDir)$(Configuration)\ - $(Configuration)\ - true - - - $(SolutionDir)$(Configuration)\ - $(Configuration)\ - false - - - - Disabled - $(SolutionDir)..\teraterm\common;$(SolutionDir)..\teraterm\teraterm;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;_USRDLL;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebug - - Level3 - EditAndContinue - - - $(SolutionDir)..\teraterm\$(Configuration)\ttpcmn.lib;%(AdditionalDependencies) - true - Windows - MachineX86 - false - - - - - $(SolutionDir)..\teraterm\common;$(SolutionDir)..\teraterm\teraterm;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;_USRDLL;%(PreprocessorDefinitions) - MultiThreaded - - Level3 - ProgramDatabase - - - $(SolutionDir)..\teraterm\$(Configuration)\ttpcmn.lib;%(AdditionalDependencies) - true - Windows - true - true - MachineX86 - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/TTXSamples/TTXRecurringCommand/TTXRecurringCommand.v14.vcxproj b/TTXSamples/TTXRecurringCommand/TTXRecurringCommand.v14.vcxproj deleted file mode 100644 index ae2a9939c..000000000 --- a/TTXSamples/TTXRecurringCommand/TTXRecurringCommand.v14.vcxproj +++ /dev/null @@ -1,108 +0,0 @@ - - - - - Debug - Win32 - - - Release - Win32 - - - - {3C656364-FAEA-41D2-B227-52187D3C2529} - TTXRecurringCommand - Win32Proj - TTXRecurringCommand - - - - DynamicLibrary - v140 - NotSet - true - - - DynamicLibrary - v140 - NotSet - - - - - - - - - - - - - <_ProjectFileVersion>12.0.30501.0 - - - $(SolutionDir)$(Configuration)\ - $(Configuration)\ - true - - - $(SolutionDir)$(Configuration)\ - $(Configuration)\ - false - - - - Disabled - $(SolutionDir)..\teraterm\common;$(SolutionDir)..\teraterm\teraterm;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;_USRDLL;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebug - - Level3 - EditAndContinue - - - $(SolutionDir)..\teraterm\$(Configuration)\ttpcmn.lib;%(AdditionalDependencies) - true - Windows - MachineX86 - false - - - - - $(SolutionDir)..\teraterm\common;$(SolutionDir)..\teraterm\teraterm;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;_USRDLL;%(PreprocessorDefinitions) - MultiThreaded - - Level3 - ProgramDatabase - - - $(SolutionDir)..\teraterm\$(Configuration)\ttpcmn.lib;%(AdditionalDependencies) - true - Windows - true - true - MachineX86 - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/TTXSamples/TTXRecurringCommand/TTXRecurringCommand.v15.vcxproj b/TTXSamples/TTXRecurringCommand/TTXRecurringCommand.v15.vcxproj deleted file mode 100644 index 4fec6acd9..000000000 --- a/TTXSamples/TTXRecurringCommand/TTXRecurringCommand.v15.vcxproj +++ /dev/null @@ -1,108 +0,0 @@ - - - - - Debug - Win32 - - - Release - Win32 - - - - {3C656364-FAEA-41D2-B227-52187D3C2529} - TTXRecurringCommand - Win32Proj - TTXRecurringCommand - - - - DynamicLibrary - v141 - NotSet - true - - - DynamicLibrary - v141 - NotSet - - - - - - - - - - - - - <_ProjectFileVersion>12.0.30501.0 - - - $(SolutionDir)$(Configuration)\ - $(Configuration)\ - true - - - $(SolutionDir)$(Configuration)\ - $(Configuration)\ - false - - - - Disabled - $(SolutionDir)..\teraterm\common;$(SolutionDir)..\teraterm\teraterm;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;_USRDLL;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebug - - Level3 - EditAndContinue - - - $(SolutionDir)..\teraterm\$(Configuration)\ttpcmn.lib;%(AdditionalDependencies) - true - Windows - MachineX86 - false - - - - - $(SolutionDir)..\teraterm\common;$(SolutionDir)..\teraterm\teraterm;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;_USRDLL;%(PreprocessorDefinitions) - MultiThreaded - - Level3 - ProgramDatabase - - - $(SolutionDir)..\teraterm\$(Configuration)\ttpcmn.lib;%(AdditionalDependencies) - true - Windows - true - true - MachineX86 - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/TTXSamples/TTXRecurringCommand/TTXRecurringCommand.v15.vcxproj.filters b/TTXSamples/TTXRecurringCommand/TTXRecurringCommand.v15.vcxproj.filters deleted file mode 100644 index 70a6b1fbe..000000000 --- a/TTXSamples/TTXRecurringCommand/TTXRecurringCommand.v15.vcxproj.filters +++ /dev/null @@ -1,43 +0,0 @@ - - - - - {4FC737F1-C7A5-4376-A066-2A32D752A2FF} - cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx - - - {93995380-89BD-4b04-88EB-625FBE52EBFB} - h;hpp;hxx;hm;inl;inc;xsd - - - {67DA6AB6-F800-4c08-8B7A-83BB121AAD01} - rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav - - - {33cf655f-cf52-4333-b6c4-58fa615a79f2} - - - - - Source Files - - - - - Header Files - - - - - Resource Files - - - - - ReadMe - - - ReadMe - - - \ No newline at end of file diff --git a/TTXSamples/TTXRecurringCommand/TTXRecurringCommand.v16.vcxproj b/TTXSamples/TTXRecurringCommand/TTXRecurringCommand.v16.vcxproj new file mode 100644 index 000000000..b07fb6e21 --- /dev/null +++ b/TTXSamples/TTXRecurringCommand/TTXRecurringCommand.v16.vcxproj @@ -0,0 +1,111 @@ + + + + + Debug + Win32 + + + Release + Win32 + + + + {3C656364-FAEA-41D2-B227-52187D3C2529} + TTXRecurringCommand + Win32Proj + TTXRecurringCommand + 10.0 + + + + DynamicLibrary + v142 + NotSet + true + + + DynamicLibrary + v142 + NotSet + + + + + + + + + + + + + <_ProjectFileVersion>12.0.30501.0 + + + $(SolutionDir)$(Configuration)\ + $(Configuration)\ + true + + + $(SolutionDir)$(Configuration)\ + $(Configuration)\ + false + + + + Disabled + $(SolutionDir)..\teraterm\common;$(SolutionDir)..\teraterm\teraterm;%(AdditionalIncludeDirectories) + WIN32;_DEBUG;_WINDOWS;_USRDLL;%(PreprocessorDefinitions) + false + EnableFastChecks + MultiThreadedDebug + + Level3 + EditAndContinue + + + $(SolutionDir)..\teraterm\$(Configuration)\common_static.lib;$(SolutionDir)..\teraterm\$(Configuration)\ttpcmn.lib;%(AdditionalDependencies) + user32.dll;%(DelayLoadDLLs) + true + Windows + MachineX86 + false + + + + + $(SolutionDir)..\teraterm\common;$(SolutionDir)..\teraterm\teraterm;%(AdditionalIncludeDirectories) + WIN32;NDEBUG;_WINDOWS;_USRDLL;%(PreprocessorDefinitions) + MultiThreaded + + Level3 + ProgramDatabase + + + $(SolutionDir)..\teraterm\$(Configuration)\common_static.lib;$(SolutionDir)..\teraterm\$(Configuration)\ttpcmn.lib;%(AdditionalDependencies) + user32.dll;%(DelayLoadDLLs) + true + Windows + true + true + MachineX86 + + + + + + + + + + + + + + + + + + + diff --git a/TTXSamples/TTXRecurringCommand/TTXRecurringCommand.v12.vcxproj.filters b/TTXSamples/TTXRecurringCommand/TTXRecurringCommand.v16.vcxproj.filters similarity index 100% rename from TTXSamples/TTXRecurringCommand/TTXRecurringCommand.v12.vcxproj.filters rename to TTXSamples/TTXRecurringCommand/TTXRecurringCommand.v16.vcxproj.filters diff --git a/TTXSamples/TTXRecurringCommand/TTXRecurringCommand.v17.vcxproj b/TTXSamples/TTXRecurringCommand/TTXRecurringCommand.v17.vcxproj new file mode 100644 index 000000000..767445190 --- /dev/null +++ b/TTXSamples/TTXRecurringCommand/TTXRecurringCommand.v17.vcxproj @@ -0,0 +1,111 @@ + + + + + Debug + Win32 + + + Release + Win32 + + + + {3C656364-FAEA-41D2-B227-52187D3C2529} + TTXRecurringCommand + Win32Proj + TTXRecurringCommand + 10.0 + + + + DynamicLibrary + v143 + NotSet + true + + + DynamicLibrary + v143 + NotSet + + + + + + + + + + + + + <_ProjectFileVersion>12.0.30501.0 + + + $(SolutionDir)$(Configuration)\ + $(Configuration)\ + true + + + $(SolutionDir)$(Configuration)\ + $(Configuration)\ + false + + + + Disabled + $(SolutionDir)..\teraterm\common;$(SolutionDir)..\teraterm\teraterm;%(AdditionalIncludeDirectories) + WIN32;_DEBUG;_WINDOWS;_USRDLL;%(PreprocessorDefinitions) + false + EnableFastChecks + MultiThreadedDebug + + Level3 + EditAndContinue + + + $(SolutionDir)..\teraterm\$(Configuration)\common_static.lib;$(SolutionDir)..\teraterm\$(Configuration)\ttpcmn.lib;%(AdditionalDependencies) + user32.dll;%(DelayLoadDLLs) + true + Windows + MachineX86 + false + + + + + $(SolutionDir)..\teraterm\common;$(SolutionDir)..\teraterm\teraterm;%(AdditionalIncludeDirectories) + WIN32;NDEBUG;_WINDOWS;_USRDLL;%(PreprocessorDefinitions) + MultiThreaded + + Level3 + ProgramDatabase + + + $(SolutionDir)..\teraterm\$(Configuration)\common_static.lib;$(SolutionDir)..\teraterm\$(Configuration)\ttpcmn.lib;%(AdditionalDependencies) + user32.dll;%(DelayLoadDLLs) + true + Windows + true + true + MachineX86 + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/TTXSamples/TTXRecurringCommand/TTXRecurringCommand.v14.vcxproj.filters b/TTXSamples/TTXRecurringCommand/TTXRecurringCommand.v17.vcxproj.filters similarity index 100% rename from TTXSamples/TTXRecurringCommand/TTXRecurringCommand.v14.vcxproj.filters rename to TTXSamples/TTXRecurringCommand/TTXRecurringCommand.v17.vcxproj.filters diff --git a/TTXSamples/TTXRecurringCommand/TTXRecurringCommand.v9.vcproj b/TTXSamples/TTXRecurringCommand/TTXRecurringCommand.v9.vcproj deleted file mode 100644 index 8a07c9248..000000000 --- a/TTXSamples/TTXRecurringCommand/TTXRecurringCommand.v9.vcproj +++ /dev/null @@ -1,220 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/TTXSamples/TTXRecurringCommand/TTXRecurringCommand.vcproj b/TTXSamples/TTXRecurringCommand/TTXRecurringCommand.vcproj deleted file mode 100755 index fa79896a1..000000000 --- a/TTXSamples/TTXRecurringCommand/TTXRecurringCommand.vcproj +++ /dev/null @@ -1,221 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/TTXSamples/TTXResizeMenu/CMakeLists.txt b/TTXSamples/TTXResizeMenu/CMakeLists.txt new file mode 100644 index 000000000..5f0e3f289 --- /dev/null +++ b/TTXSamples/TTXResizeMenu/CMakeLists.txt @@ -0,0 +1,65 @@ +set(PACKAGE_NAME "TTXResizeMenu") + +project(${PACKAGE_NAME}) + +add_library( + ${PACKAGE_NAME} SHARED + TTXResizeMenu.c + ReadMe.txt + ReadMe-ja.txt + ) + +if(SUPPORT_OLD_WINDOWS) + target_link_libraries( + ${PACKAGE_NAME} + PRIVATE + layer_for_unicode + ) + if(MSVC) + target_sources( + ${PACKAGE_NAME} + PRIVATE + ../../teraterm/common/compat_w95_vs2005.c + ) + endif() + if(MINGW) + target_sources( + ${PACKAGE_NAME} + PRIVATE + ../../teraterm/libmingw/tlssup.c + ) + target_link_libraries( + ${PACKAGE_NAME} + PRIVATE + -Wl,--whole-archive + mingw_msvcrt + -Wl,--no-whole-archive + ) + endif() +endif(SUPPORT_OLD_WINDOWS) + +set_target_properties( + ${PACKAGE_NAME} + PROPERTIES + PREFIX "" + RUNTIME_OUTPUT_DIRECTORY "${CMAKE_BINARY_DIR}/" + ) + +target_include_directories( + ${PACKAGE_NAME} + PRIVATE + ../../teraterm/teraterm + ) + +target_link_libraries( + ${PACKAGE_NAME} + PRIVATE + common_static + ttpcmn + ) + +install( + TARGETS ${PACKAGE_NAME} + RUNTIME + DESTINATION . + ) diff --git a/TTXSamples/TTXResizeMenu/TTXResizeMenu.c b/TTXSamples/TTXResizeMenu/TTXResizeMenu.c index cce08efa8..c08c70049 100755 --- a/TTXSamples/TTXResizeMenu/TTXResizeMenu.c +++ b/TTXSamples/TTXResizeMenu/TTXResizeMenu.c @@ -6,7 +6,8 @@ #include #include -#include "compat_w95.h" +#include "compat_win.h" +#include "inifile_com.h" #define ORDER 5900 #define SECTION "Resize Menu" @@ -50,9 +51,9 @@ BOOL GetMonitorSizeByChar(int *width, int *height) { HMONITOR hm; MONITORINFO mi; - hm = MonitorFromWindow(pvar->cv->HWin, MONITOR_DEFAULTTONEAREST); + hm = pMonitorFromWindow(pvar->cv->HWin, MONITOR_DEFAULTTONEAREST); mi.cbSize = sizeof(MONITORINFO); - if (! GetMonitorInfo(hm, &mi)) { + if (! pGetMonitorInfoA(hm, &mi)) { return FALSE; } rc_dsk = mi.rcWork; @@ -72,7 +73,9 @@ BOOL GetMonitorSizeByChar(int *width, int *height) { margin_w = (rc_wnd.right - rc_wnd.left) - (rc_cl.right - rc_cl.left); cell_w = (rc_cl.right - rc_cl.left) / pvar->ts->TerminalWidth; - *width = (rc_dsk.right - rc_dsk.left - margin_w) / cell_w; + if (cell_w > 0) { + *width = (rc_dsk.right - rc_dsk.left - margin_w) / cell_w; + } } if (height) { int margin_h, cell_h; @@ -80,7 +83,9 @@ BOOL GetMonitorSizeByChar(int *width, int *height) { margin_h = (rc_wnd.bottom - rc_wnd.top) - (rc_cl.bottom - rc_cl.top); cell_h = (rc_cl.bottom - rc_cl.top) / pvar->ts->TerminalHeight; - *height = (rc_dsk.bottom - rc_dsk.top - margin_h) / cell_h; + if (cell_h > 0) { + *height = (rc_dsk.bottom - rc_dsk.top - margin_h) / cell_h; + } } return TRUE; @@ -97,9 +102,9 @@ int mkMenuEntry(char *buff, size_t buffsize, int x, int y, int c) { _snprintf_s(tmp, sizeof(tmp), _TRUNCATE, "%dx%d", x, y); if (c < 15) - return _snprintf_s(buff, buffsize, _TRUNCATE, "%s(&%x)", tmp, c+1); + return _snprintf_s(buff, buffsize, _TRUNCATE, "%s (&%X)", tmp, c+1); else if (c < 35) - return _snprintf_s(buff, buffsize, _TRUNCATE, "%s(&%c)", tmp, 'a' + 1 - 9); + return _snprintf_s(buff, buffsize, _TRUNCATE, "%s (&%c)", tmp, 'A' + c - 9); else return _snprintf_s(buff, buffsize, _TRUNCATE, "%s", tmp); } @@ -183,7 +188,7 @@ static void PASCAL TTXGetUIHooks(TTXUIHooks *hooks) { return; } -static void PASCAL ResizeMenuReadIniFile(PCHAR fn, PTTSet ts) { +static void PASCAL ResizeMenuReadIniFile(const wchar_t *fn, PTTSet ts) { int i, x, y; char Key[20], Buff[100]; @@ -191,7 +196,7 @@ static void PASCAL ResizeMenuReadIniFile(PCHAR fn, PTTSet ts) { for (i=0; i - - - - Debug - Win32 - - - Release - Win32 - - - - {4EA6AEB6-9CCD-4E6D-9531-3F92184EBE67} - TTXResizeMenu - Win32Proj - TTXResizeMenu - - - - DynamicLibrary - NotSet - true - - - DynamicLibrary - NotSet - - - - - - - - - - - - - <_ProjectFileVersion>10.0.40219.1 - $(SolutionDir)$(Configuration)\ - $(Configuration)\ - true - $(SolutionDir)$(Configuration)\ - $(Configuration)\ - false - - - - Disabled - $(SolutionDir)..\teraterm\common;$(SolutionDir)..\teraterm\teraterm;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;_USRDLL;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebug - - - Level3 - EditAndContinue - - - $(SolutionDir)..\teraterm\$(Configuration)\ttpcmn.lib;%(AdditionalDependencies) - user32.dll;%(DelayLoadDLLs) - true - Windows - MachineX86 - - - - - $(SolutionDir)..\teraterm\common;$(SolutionDir)..\teraterm\teraterm;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;_USRDLL;%(PreprocessorDefinitions) - MultiThreaded - - - Level3 - ProgramDatabase - - - $(SolutionDir)..\teraterm\$(Configuration)\ttpcmn.lib;%(AdditionalDependencies) - user32.dll;%(DelayLoadDLLs) - true - Windows - true - true - MachineX86 - - - - - - - - - - - - - \ No newline at end of file diff --git a/TTXSamples/TTXResizeMenu/TTXResizeMenu.v10.vcxproj.filters b/TTXSamples/TTXResizeMenu/TTXResizeMenu.v10.vcxproj.filters deleted file mode 100644 index 370506943..000000000 --- a/TTXSamples/TTXResizeMenu/TTXResizeMenu.v10.vcxproj.filters +++ /dev/null @@ -1,25 +0,0 @@ - - - - - {4FC737F1-C7A5-4376-A066-2A32D752A2FF} - cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx - - - {604f4ac4-3cc1-4e13-b018-a2857dd98bc4} - - - - - Source Files - - - - - ReadMe - - - ReadMe - - - \ No newline at end of file diff --git a/TTXSamples/TTXResizeMenu/TTXResizeMenu.v11.vcxproj b/TTXSamples/TTXResizeMenu/TTXResizeMenu.v11.vcxproj deleted file mode 100644 index 6a6961fcf..000000000 --- a/TTXSamples/TTXResizeMenu/TTXResizeMenu.v11.vcxproj +++ /dev/null @@ -1,104 +0,0 @@ - - - - - Debug - Win32 - - - Release - Win32 - - - - {4EA6AEB6-9CCD-4E6D-9531-3F92184EBE67} - TTXResizeMenu - Win32Proj - TTXResizeMenu - - - - DynamicLibrary - v110 - NotSet - true - - - DynamicLibrary - v110 - NotSet - - - - - - - - - - - - - <_ProjectFileVersion>11.0.61030.0 - - - $(SolutionDir)$(Configuration)\ - $(Configuration)\ - true - - - $(SolutionDir)$(Configuration)\ - $(Configuration)\ - false - - - - Disabled - $(SolutionDir)..\teraterm\common;$(SolutionDir)..\teraterm\teraterm;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;_USRDLL;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebug - - Level3 - EditAndContinue - - - $(SolutionDir)..\teraterm\$(Configuration)\ttpcmn.lib;%(AdditionalDependencies) - user32.dll;%(DelayLoadDLLs) - true - Windows - MachineX86 - false - - - - - $(SolutionDir)..\teraterm\common;$(SolutionDir)..\teraterm\teraterm;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;_USRDLL;%(PreprocessorDefinitions) - MultiThreaded - - Level3 - ProgramDatabase - - - $(SolutionDir)..\teraterm\$(Configuration)\ttpcmn.lib;%(AdditionalDependencies) - user32.dll;%(DelayLoadDLLs) - true - Windows - true - true - MachineX86 - - - - - - - - - - - - - \ No newline at end of file diff --git a/TTXSamples/TTXResizeMenu/TTXResizeMenu.v11.vcxproj.filters b/TTXSamples/TTXResizeMenu/TTXResizeMenu.v11.vcxproj.filters deleted file mode 100644 index 7e640d5b8..000000000 --- a/TTXSamples/TTXResizeMenu/TTXResizeMenu.v11.vcxproj.filters +++ /dev/null @@ -1,25 +0,0 @@ - - - - - {4FC737F1-C7A5-4376-A066-2A32D752A2FF} - cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx - - - {42187926-38d1-4fd3-a322-592ae742c16a} - - - - - Source Files - - - - - ReadMe - - - ReadMe - - - \ No newline at end of file diff --git a/TTXSamples/TTXResizeMenu/TTXResizeMenu.v12.vcxproj b/TTXSamples/TTXResizeMenu/TTXResizeMenu.v12.vcxproj deleted file mode 100644 index 40eff7872..000000000 --- a/TTXSamples/TTXResizeMenu/TTXResizeMenu.v12.vcxproj +++ /dev/null @@ -1,104 +0,0 @@ - - - - - Debug - Win32 - - - Release - Win32 - - - - {4EA6AEB6-9CCD-4E6D-9531-3F92184EBE67} - TTXResizeMenu - Win32Proj - TTXResizeMenu - - - - DynamicLibrary - v120 - NotSet - true - - - DynamicLibrary - v120 - NotSet - - - - - - - - - - - - - <_ProjectFileVersion>12.0.30501.0 - - - $(SolutionDir)$(Configuration)\ - $(Configuration)\ - true - - - $(SolutionDir)$(Configuration)\ - $(Configuration)\ - false - - - - Disabled - $(SolutionDir)..\teraterm\common;$(SolutionDir)..\teraterm\teraterm;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;_USRDLL;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebug - - Level3 - EditAndContinue - - - $(SolutionDir)..\teraterm\$(Configuration)\ttpcmn.lib;%(AdditionalDependencies) - user32.dll;%(DelayLoadDLLs) - true - Windows - MachineX86 - false - - - - - $(SolutionDir)..\teraterm\common;$(SolutionDir)..\teraterm\teraterm;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;_USRDLL;%(PreprocessorDefinitions) - MultiThreaded - - Level3 - ProgramDatabase - - - $(SolutionDir)..\teraterm\$(Configuration)\ttpcmn.lib;%(AdditionalDependencies) - user32.dll;%(DelayLoadDLLs) - true - Windows - true - true - MachineX86 - - - - - - - - - - - - - \ No newline at end of file diff --git a/TTXSamples/TTXResizeMenu/TTXResizeMenu.v14.vcxproj b/TTXSamples/TTXResizeMenu/TTXResizeMenu.v14.vcxproj deleted file mode 100644 index cc5583f96..000000000 --- a/TTXSamples/TTXResizeMenu/TTXResizeMenu.v14.vcxproj +++ /dev/null @@ -1,104 +0,0 @@ - - - - - Debug - Win32 - - - Release - Win32 - - - - {4EA6AEB6-9CCD-4E6D-9531-3F92184EBE67} - TTXResizeMenu - Win32Proj - TTXResizeMenu - - - - DynamicLibrary - v140 - NotSet - true - - - DynamicLibrary - v140 - NotSet - - - - - - - - - - - - - <_ProjectFileVersion>12.0.30501.0 - - - $(SolutionDir)$(Configuration)\ - $(Configuration)\ - true - - - $(SolutionDir)$(Configuration)\ - $(Configuration)\ - false - - - - Disabled - $(SolutionDir)..\teraterm\common;$(SolutionDir)..\teraterm\teraterm;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;_USRDLL;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebug - - Level3 - EditAndContinue - - - $(SolutionDir)..\teraterm\$(Configuration)\ttpcmn.lib;%(AdditionalDependencies) - user32.dll;%(DelayLoadDLLs) - true - Windows - MachineX86 - false - - - - - $(SolutionDir)..\teraterm\common;$(SolutionDir)..\teraterm\teraterm;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;_USRDLL;%(PreprocessorDefinitions) - MultiThreaded - - Level3 - ProgramDatabase - - - $(SolutionDir)..\teraterm\$(Configuration)\ttpcmn.lib;%(AdditionalDependencies) - user32.dll;%(DelayLoadDLLs) - true - Windows - true - true - MachineX86 - - - - - - - - - - - - - \ No newline at end of file diff --git a/TTXSamples/TTXResizeMenu/TTXResizeMenu.v15.vcxproj b/TTXSamples/TTXResizeMenu/TTXResizeMenu.v15.vcxproj deleted file mode 100644 index f65022da1..000000000 --- a/TTXSamples/TTXResizeMenu/TTXResizeMenu.v15.vcxproj +++ /dev/null @@ -1,104 +0,0 @@ - - - - - Debug - Win32 - - - Release - Win32 - - - - {4EA6AEB6-9CCD-4E6D-9531-3F92184EBE67} - TTXResizeMenu - Win32Proj - TTXResizeMenu - - - - DynamicLibrary - v141 - NotSet - true - - - DynamicLibrary - v141 - NotSet - - - - - - - - - - - - - <_ProjectFileVersion>12.0.30501.0 - - - $(SolutionDir)$(Configuration)\ - $(Configuration)\ - true - - - $(SolutionDir)$(Configuration)\ - $(Configuration)\ - false - - - - Disabled - $(SolutionDir)..\teraterm\common;$(SolutionDir)..\teraterm\teraterm;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;_USRDLL;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebug - - Level3 - EditAndContinue - - - $(SolutionDir)..\teraterm\$(Configuration)\ttpcmn.lib;%(AdditionalDependencies) - user32.dll;%(DelayLoadDLLs) - true - Windows - MachineX86 - false - - - - - $(SolutionDir)..\teraterm\common;$(SolutionDir)..\teraterm\teraterm;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;_USRDLL;%(PreprocessorDefinitions) - MultiThreaded - - Level3 - ProgramDatabase - - - $(SolutionDir)..\teraterm\$(Configuration)\ttpcmn.lib;%(AdditionalDependencies) - user32.dll;%(DelayLoadDLLs) - true - Windows - true - true - MachineX86 - - - - - - - - - - - - - \ No newline at end of file diff --git a/TTXSamples/TTXResizeMenu/TTXResizeMenu.v15.vcxproj.filters b/TTXSamples/TTXResizeMenu/TTXResizeMenu.v15.vcxproj.filters deleted file mode 100644 index 8d5cd3689..000000000 --- a/TTXSamples/TTXResizeMenu/TTXResizeMenu.v15.vcxproj.filters +++ /dev/null @@ -1,25 +0,0 @@ - - - - - {4FC737F1-C7A5-4376-A066-2A32D752A2FF} - cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx - - - {bc141cd6-562f-4b1b-948c-94914a36ffac} - - - - - Source Files - - - - - ReadMe - - - ReadMe - - - \ No newline at end of file diff --git a/TTXSamples/TTXResizeMenu/TTXResizeMenu.v16.vcxproj b/TTXSamples/TTXResizeMenu/TTXResizeMenu.v16.vcxproj new file mode 100644 index 000000000..3a0bc08e3 --- /dev/null +++ b/TTXSamples/TTXResizeMenu/TTXResizeMenu.v16.vcxproj @@ -0,0 +1,105 @@ + + + + + Debug + Win32 + + + Release + Win32 + + + + {4EA6AEB6-9CCD-4E6D-9531-3F92184EBE67} + TTXResizeMenu + Win32Proj + TTXResizeMenu + 10.0 + + + + DynamicLibrary + v142 + NotSet + true + + + DynamicLibrary + v142 + NotSet + + + + + + + + + + + + + <_ProjectFileVersion>12.0.30501.0 + + + $(SolutionDir)$(Configuration)\ + $(Configuration)\ + true + + + $(SolutionDir)$(Configuration)\ + $(Configuration)\ + false + + + + Disabled + $(SolutionDir)..\teraterm\common;$(SolutionDir)..\teraterm\teraterm;%(AdditionalIncludeDirectories) + WIN32;_DEBUG;_WINDOWS;_USRDLL;%(PreprocessorDefinitions) + false + EnableFastChecks + MultiThreadedDebug + + Level3 + EditAndContinue + + + $(SolutionDir)..\teraterm\$(Configuration)\common_static.lib;$(SolutionDir)..\teraterm\$(Configuration)\ttpcmn.lib;%(AdditionalDependencies) + user32.dll;%(DelayLoadDLLs) + true + Windows + MachineX86 + false + + + + + $(SolutionDir)..\teraterm\common;$(SolutionDir)..\teraterm\teraterm;%(AdditionalIncludeDirectories) + WIN32;NDEBUG;_WINDOWS;_USRDLL;%(PreprocessorDefinitions) + MultiThreaded + + Level3 + ProgramDatabase + + + $(SolutionDir)..\teraterm\$(Configuration)\common_static.lib;$(SolutionDir)..\teraterm\$(Configuration)\ttpcmn.lib;%(AdditionalDependencies) + user32.dll;%(DelayLoadDLLs) + true + Windows + true + true + MachineX86 + + + + + + + + + + + + + diff --git a/TTXSamples/TTXResizeMenu/TTXResizeMenu.v12.vcxproj.filters b/TTXSamples/TTXResizeMenu/TTXResizeMenu.v16.vcxproj.filters similarity index 100% rename from TTXSamples/TTXResizeMenu/TTXResizeMenu.v12.vcxproj.filters rename to TTXSamples/TTXResizeMenu/TTXResizeMenu.v16.vcxproj.filters diff --git a/TTXSamples/TTXResizeMenu/TTXResizeMenu.v17.vcxproj b/TTXSamples/TTXResizeMenu/TTXResizeMenu.v17.vcxproj new file mode 100644 index 000000000..000d684e9 --- /dev/null +++ b/TTXSamples/TTXResizeMenu/TTXResizeMenu.v17.vcxproj @@ -0,0 +1,105 @@ + + + + + Debug + Win32 + + + Release + Win32 + + + + {4EA6AEB6-9CCD-4E6D-9531-3F92184EBE67} + TTXResizeMenu + Win32Proj + TTXResizeMenu + 10.0 + + + + DynamicLibrary + v143 + NotSet + true + + + DynamicLibrary + v143 + NotSet + + + + + + + + + + + + + <_ProjectFileVersion>12.0.30501.0 + + + $(SolutionDir)$(Configuration)\ + $(Configuration)\ + true + + + $(SolutionDir)$(Configuration)\ + $(Configuration)\ + false + + + + Disabled + $(SolutionDir)..\teraterm\common;$(SolutionDir)..\teraterm\teraterm;%(AdditionalIncludeDirectories) + WIN32;_DEBUG;_WINDOWS;_USRDLL;%(PreprocessorDefinitions) + false + EnableFastChecks + MultiThreadedDebug + + Level3 + EditAndContinue + + + $(SolutionDir)..\teraterm\$(Configuration)\common_static.lib;$(SolutionDir)..\teraterm\$(Configuration)\ttpcmn.lib;%(AdditionalDependencies) + user32.dll;%(DelayLoadDLLs) + true + Windows + MachineX86 + false + + + + + $(SolutionDir)..\teraterm\common;$(SolutionDir)..\teraterm\teraterm;%(AdditionalIncludeDirectories) + WIN32;NDEBUG;_WINDOWS;_USRDLL;%(PreprocessorDefinitions) + MultiThreaded + + Level3 + ProgramDatabase + + + $(SolutionDir)..\teraterm\$(Configuration)\common_static.lib;$(SolutionDir)..\teraterm\$(Configuration)\ttpcmn.lib;%(AdditionalDependencies) + user32.dll;%(DelayLoadDLLs) + true + Windows + true + true + MachineX86 + + + + + + + + + + + + + \ No newline at end of file diff --git a/TTXSamples/TTXResizeMenu/TTXResizeMenu.v14.vcxproj.filters b/TTXSamples/TTXResizeMenu/TTXResizeMenu.v17.vcxproj.filters similarity index 100% rename from TTXSamples/TTXResizeMenu/TTXResizeMenu.v14.vcxproj.filters rename to TTXSamples/TTXResizeMenu/TTXResizeMenu.v17.vcxproj.filters diff --git a/TTXSamples/TTXResizeMenu/TTXResizeMenu.v9.vcproj b/TTXSamples/TTXResizeMenu/TTXResizeMenu.v9.vcproj deleted file mode 100644 index 49c1ecf07..000000000 --- a/TTXSamples/TTXResizeMenu/TTXResizeMenu.v9.vcproj +++ /dev/null @@ -1,202 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/TTXSamples/TTXResizeMenu/TTXResizeMenu.vcproj b/TTXSamples/TTXResizeMenu/TTXResizeMenu.vcproj deleted file mode 100755 index 569950291..000000000 --- a/TTXSamples/TTXResizeMenu/TTXResizeMenu.vcproj +++ /dev/null @@ -1,203 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/TTXSamples/TTXResizeWin/CMakeLists.txt b/TTXSamples/TTXResizeWin/CMakeLists.txt new file mode 100644 index 000000000..487733a9b --- /dev/null +++ b/TTXSamples/TTXResizeWin/CMakeLists.txt @@ -0,0 +1,47 @@ +set(PACKAGE_NAME "TTXResizeWin") + +project(${PACKAGE_NAME}) + +add_library( + ${PACKAGE_NAME} SHARED + TTXResizeWin.c + ReadMe.txt + ReadMe-ja.txt + ) + +if(SUPPORT_OLD_WINDOWS) + target_link_libraries( + ${PACKAGE_NAME} + PRIVATE + layer_for_unicode + ) + if(MSVC) + target_sources( + ${PACKAGE_NAME} + PRIVATE + ../../teraterm/common/compat_w95_vs2005.c + ) + endif() + if(MINGW) + target_sources( + ${PACKAGE_NAME} + PRIVATE + ../../teraterm/libmingw/tlssup.c + ) + endif() +endif(SUPPORT_OLD_WINDOWS) + +set_target_properties( + ${PACKAGE_NAME} + PROPERTIES + PREFIX "" + RUNTIME_OUTPUT_DIRECTORY "${CMAKE_BINARY_DIR}/" + ) + +target_include_directories( + ${PACKAGE_NAME} + PRIVATE + ../../teraterm/teraterm + ../../teraterm/common + ) + diff --git a/TTXSamples/TTXResizeWin/TTXResizeWin.c b/TTXSamples/TTXResizeWin/TTXResizeWin.c index 7ee89abbb..22780d31e 100755 --- a/TTXSamples/TTXResizeWin/TTXResizeWin.c +++ b/TTXSamples/TTXResizeWin/TTXResizeWin.c @@ -6,8 +6,6 @@ #include #include -#include "compat_w95.h" - #define ORDER 5800 #define ID_MENUITEM 55199 @@ -104,7 +102,6 @@ BOOL WINAPI DllMain(HANDLE hInstance, break; case DLL_PROCESS_ATTACH: /* do process initialization */ - DoCover_IsDebuggerPresent(); hInst = hInstance; pvar = &InstVar; break; diff --git a/TTXSamples/TTXResizeWin/TTXResizeWin.v10.vcxproj b/TTXSamples/TTXResizeWin/TTXResizeWin.v10.vcxproj deleted file mode 100644 index a41af603c..000000000 --- a/TTXSamples/TTXResizeWin/TTXResizeWin.v10.vcxproj +++ /dev/null @@ -1,95 +0,0 @@ - - - - - Debug - Win32 - - - Release - Win32 - - - - {11EF5960-4922-49DC-9E64-B0845FC7C88C} - TTXResizeWin - Win32Proj - TTXResizeWin - - - - DynamicLibrary - NotSet - true - - - DynamicLibrary - NotSet - - - - - - - - - - - - - <_ProjectFileVersion>10.0.40219.1 - $(SolutionDir)$(Configuration)\ - $(Configuration)\ - true - $(SolutionDir)$(Configuration)\ - $(Configuration)\ - false - - - - Disabled - $(SolutionDir)..\teraterm\common;$(SolutionDir)..\teraterm\teraterm;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;_USRDLL;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebug - - - Level3 - EditAndContinue - - - true - Windows - MachineX86 - - - - - $(SolutionDir)..\teraterm\common;$(SolutionDir)..\teraterm\teraterm;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;_USRDLL;%(PreprocessorDefinitions) - MultiThreaded - - - Level3 - ProgramDatabase - - - true - Windows - true - true - MachineX86 - - - - - - - - - - - - - \ No newline at end of file diff --git a/TTXSamples/TTXResizeWin/TTXResizeWin.v10.vcxproj.filters b/TTXSamples/TTXResizeWin/TTXResizeWin.v10.vcxproj.filters deleted file mode 100644 index 7ad5d16ac..000000000 --- a/TTXSamples/TTXResizeWin/TTXResizeWin.v10.vcxproj.filters +++ /dev/null @@ -1,25 +0,0 @@ - - - - - {4FC737F1-C7A5-4376-A066-2A32D752A2FF} - cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx - - - {bc20cd69-2483-480c-8009-3e290081aa8a} - - - - - Source Files - - - - - ReadMe - - - ReadMe - - - \ No newline at end of file diff --git a/TTXSamples/TTXResizeWin/TTXResizeWin.v11.vcxproj b/TTXSamples/TTXResizeWin/TTXResizeWin.v11.vcxproj deleted file mode 100644 index 9bbc6441d..000000000 --- a/TTXSamples/TTXResizeWin/TTXResizeWin.v11.vcxproj +++ /dev/null @@ -1,100 +0,0 @@ - - - - - Debug - Win32 - - - Release - Win32 - - - - {11EF5960-4922-49DC-9E64-B0845FC7C88C} - TTXResizeWin - Win32Proj - TTXResizeWin - - - - DynamicLibrary - v110 - NotSet - true - - - DynamicLibrary - v110 - NotSet - - - - - - - - - - - - - <_ProjectFileVersion>11.0.61030.0 - - - $(SolutionDir)$(Configuration)\ - $(Configuration)\ - true - - - $(SolutionDir)$(Configuration)\ - $(Configuration)\ - false - - - - Disabled - $(SolutionDir)..\teraterm\common;$(SolutionDir)..\teraterm\teraterm;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;_USRDLL;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebug - - Level3 - EditAndContinue - - - true - Windows - MachineX86 - false - - - - - $(SolutionDir)..\teraterm\common;$(SolutionDir)..\teraterm\teraterm;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;_USRDLL;%(PreprocessorDefinitions) - MultiThreaded - - Level3 - ProgramDatabase - - - true - Windows - true - true - MachineX86 - - - - - - - - - - - - - \ No newline at end of file diff --git a/TTXSamples/TTXResizeWin/TTXResizeWin.v11.vcxproj.filters b/TTXSamples/TTXResizeWin/TTXResizeWin.v11.vcxproj.filters deleted file mode 100644 index 77196748e..000000000 --- a/TTXSamples/TTXResizeWin/TTXResizeWin.v11.vcxproj.filters +++ /dev/null @@ -1,25 +0,0 @@ - - - - - {4FC737F1-C7A5-4376-A066-2A32D752A2FF} - cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx - - - {ac15b43d-74dd-4063-93f0-de7c3848691e} - - - - - Source Files - - - - - ReadMe - - - ReadMe - - - \ No newline at end of file diff --git a/TTXSamples/TTXResizeWin/TTXResizeWin.v12.vcxproj b/TTXSamples/TTXResizeWin/TTXResizeWin.v12.vcxproj deleted file mode 100644 index 5d9202d1c..000000000 --- a/TTXSamples/TTXResizeWin/TTXResizeWin.v12.vcxproj +++ /dev/null @@ -1,100 +0,0 @@ - - - - - Debug - Win32 - - - Release - Win32 - - - - {11EF5960-4922-49DC-9E64-B0845FC7C88C} - TTXResizeWin - Win32Proj - TTXResizeWin - - - - DynamicLibrary - v120 - NotSet - true - - - DynamicLibrary - v120 - NotSet - - - - - - - - - - - - - <_ProjectFileVersion>12.0.30501.0 - - - $(SolutionDir)$(Configuration)\ - $(Configuration)\ - true - - - $(SolutionDir)$(Configuration)\ - $(Configuration)\ - false - - - - Disabled - $(SolutionDir)..\teraterm\common;$(SolutionDir)..\teraterm\teraterm;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;_USRDLL;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebug - - Level3 - EditAndContinue - - - true - Windows - MachineX86 - false - - - - - $(SolutionDir)..\teraterm\common;$(SolutionDir)..\teraterm\teraterm;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;_USRDLL;%(PreprocessorDefinitions) - MultiThreaded - - Level3 - ProgramDatabase - - - true - Windows - true - true - MachineX86 - - - - - - - - - - - - - \ No newline at end of file diff --git a/TTXSamples/TTXResizeWin/TTXResizeWin.v14.vcxproj b/TTXSamples/TTXResizeWin/TTXResizeWin.v14.vcxproj deleted file mode 100644 index cb2818cd2..000000000 --- a/TTXSamples/TTXResizeWin/TTXResizeWin.v14.vcxproj +++ /dev/null @@ -1,100 +0,0 @@ - - - - - Debug - Win32 - - - Release - Win32 - - - - {11EF5960-4922-49DC-9E64-B0845FC7C88C} - TTXResizeWin - Win32Proj - TTXResizeWin - - - - DynamicLibrary - v140 - NotSet - true - - - DynamicLibrary - v140 - NotSet - - - - - - - - - - - - - <_ProjectFileVersion>12.0.30501.0 - - - $(SolutionDir)$(Configuration)\ - $(Configuration)\ - true - - - $(SolutionDir)$(Configuration)\ - $(Configuration)\ - false - - - - Disabled - $(SolutionDir)..\teraterm\common;$(SolutionDir)..\teraterm\teraterm;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;_USRDLL;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebug - - Level3 - EditAndContinue - - - true - Windows - MachineX86 - false - - - - - $(SolutionDir)..\teraterm\common;$(SolutionDir)..\teraterm\teraterm;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;_USRDLL;%(PreprocessorDefinitions) - MultiThreaded - - Level3 - ProgramDatabase - - - true - Windows - true - true - MachineX86 - - - - - - - - - - - - - \ No newline at end of file diff --git a/TTXSamples/TTXResizeWin/TTXResizeWin.v15.vcxproj b/TTXSamples/TTXResizeWin/TTXResizeWin.v15.vcxproj deleted file mode 100644 index cae2051d7..000000000 --- a/TTXSamples/TTXResizeWin/TTXResizeWin.v15.vcxproj +++ /dev/null @@ -1,100 +0,0 @@ - - - - - Debug - Win32 - - - Release - Win32 - - - - {11EF5960-4922-49DC-9E64-B0845FC7C88C} - TTXResizeWin - Win32Proj - TTXResizeWin - - - - DynamicLibrary - v141 - NotSet - true - - - DynamicLibrary - v141 - NotSet - - - - - - - - - - - - - <_ProjectFileVersion>12.0.30501.0 - - - $(SolutionDir)$(Configuration)\ - $(Configuration)\ - true - - - $(SolutionDir)$(Configuration)\ - $(Configuration)\ - false - - - - Disabled - $(SolutionDir)..\teraterm\common;$(SolutionDir)..\teraterm\teraterm;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;_USRDLL;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebug - - Level3 - EditAndContinue - - - true - Windows - MachineX86 - false - - - - - $(SolutionDir)..\teraterm\common;$(SolutionDir)..\teraterm\teraterm;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;_USRDLL;%(PreprocessorDefinitions) - MultiThreaded - - Level3 - ProgramDatabase - - - true - Windows - true - true - MachineX86 - - - - - - - - - - - - - \ No newline at end of file diff --git a/TTXSamples/TTXResizeWin/TTXResizeWin.v15.vcxproj.filters b/TTXSamples/TTXResizeWin/TTXResizeWin.v15.vcxproj.filters deleted file mode 100644 index 642c11bd5..000000000 --- a/TTXSamples/TTXResizeWin/TTXResizeWin.v15.vcxproj.filters +++ /dev/null @@ -1,25 +0,0 @@ - - - - - {4FC737F1-C7A5-4376-A066-2A32D752A2FF} - cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx - - - {b55f30ea-c34a-4cf2-a10f-8389a7654919} - - - - - Source Files - - - - - ReadMe - - - ReadMe - - - \ No newline at end of file diff --git a/TTXSamples/TTXResizeWin/TTXResizeWin.v16.vcxproj b/TTXSamples/TTXResizeWin/TTXResizeWin.v16.vcxproj new file mode 100644 index 000000000..e4c9d4b51 --- /dev/null +++ b/TTXSamples/TTXResizeWin/TTXResizeWin.v16.vcxproj @@ -0,0 +1,101 @@ + + + + + Debug + Win32 + + + Release + Win32 + + + + {11EF5960-4922-49DC-9E64-B0845FC7C88C} + TTXResizeWin + Win32Proj + TTXResizeWin + 10.0 + + + + DynamicLibrary + v142 + NotSet + true + + + DynamicLibrary + v142 + NotSet + + + + + + + + + + + + + <_ProjectFileVersion>12.0.30501.0 + + + $(SolutionDir)$(Configuration)\ + $(Configuration)\ + true + + + $(SolutionDir)$(Configuration)\ + $(Configuration)\ + false + + + + Disabled + $(SolutionDir)..\teraterm\common;$(SolutionDir)..\teraterm\teraterm;%(AdditionalIncludeDirectories) + WIN32;_DEBUG;_WINDOWS;_USRDLL;%(PreprocessorDefinitions) + false + EnableFastChecks + MultiThreadedDebug + + Level3 + EditAndContinue + + + true + Windows + MachineX86 + false + + + + + $(SolutionDir)..\teraterm\common;$(SolutionDir)..\teraterm\teraterm;%(AdditionalIncludeDirectories) + WIN32;NDEBUG;_WINDOWS;_USRDLL;%(PreprocessorDefinitions) + MultiThreaded + + Level3 + ProgramDatabase + + + true + Windows + true + true + MachineX86 + + + + + + + + + + + + + diff --git a/TTXSamples/TTXResizeWin/TTXResizeWin.v12.vcxproj.filters b/TTXSamples/TTXResizeWin/TTXResizeWin.v16.vcxproj.filters similarity index 100% rename from TTXSamples/TTXResizeWin/TTXResizeWin.v12.vcxproj.filters rename to TTXSamples/TTXResizeWin/TTXResizeWin.v16.vcxproj.filters diff --git a/TTXSamples/TTXResizeWin/TTXResizeWin.v17.vcxproj b/TTXSamples/TTXResizeWin/TTXResizeWin.v17.vcxproj new file mode 100644 index 000000000..ac19f4397 --- /dev/null +++ b/TTXSamples/TTXResizeWin/TTXResizeWin.v17.vcxproj @@ -0,0 +1,101 @@ + + + + + Debug + Win32 + + + Release + Win32 + + + + {11EF5960-4922-49DC-9E64-B0845FC7C88C} + TTXResizeWin + Win32Proj + TTXResizeWin + 10.0 + + + + DynamicLibrary + v143 + NotSet + true + + + DynamicLibrary + v143 + NotSet + + + + + + + + + + + + + <_ProjectFileVersion>12.0.30501.0 + + + $(SolutionDir)$(Configuration)\ + $(Configuration)\ + true + + + $(SolutionDir)$(Configuration)\ + $(Configuration)\ + false + + + + Disabled + $(SolutionDir)..\teraterm\common;$(SolutionDir)..\teraterm\teraterm;%(AdditionalIncludeDirectories) + WIN32;_DEBUG;_WINDOWS;_USRDLL;%(PreprocessorDefinitions) + false + EnableFastChecks + MultiThreadedDebug + + Level3 + EditAndContinue + + + true + Windows + MachineX86 + false + + + + + $(SolutionDir)..\teraterm\common;$(SolutionDir)..\teraterm\teraterm;%(AdditionalIncludeDirectories) + WIN32;NDEBUG;_WINDOWS;_USRDLL;%(PreprocessorDefinitions) + MultiThreaded + + Level3 + ProgramDatabase + + + true + Windows + true + true + MachineX86 + + + + + + + + + + + + + \ No newline at end of file diff --git a/TTXSamples/TTXResizeWin/TTXResizeWin.v14.vcxproj.filters b/TTXSamples/TTXResizeWin/TTXResizeWin.v17.vcxproj.filters similarity index 100% rename from TTXSamples/TTXResizeWin/TTXResizeWin.v14.vcxproj.filters rename to TTXSamples/TTXResizeWin/TTXResizeWin.v17.vcxproj.filters diff --git a/TTXSamples/TTXResizeWin/TTXResizeWin.v9.vcproj b/TTXSamples/TTXResizeWin/TTXResizeWin.v9.vcproj deleted file mode 100644 index df4febb98..000000000 --- a/TTXSamples/TTXResizeWin/TTXResizeWin.v9.vcproj +++ /dev/null @@ -1,198 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/TTXSamples/TTXResizeWin/TTXResizeWin.vcproj b/TTXSamples/TTXResizeWin/TTXResizeWin.vcproj deleted file mode 100755 index 104550df9..000000000 --- a/TTXSamples/TTXResizeWin/TTXResizeWin.vcproj +++ /dev/null @@ -1,199 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/TTXSamples/TTXSamples.sln b/TTXSamples/TTXSamples.sln deleted file mode 100755 index 7fc7cb8a6..000000000 --- a/TTXSamples/TTXSamples.sln +++ /dev/null @@ -1,109 +0,0 @@ -Microsoft Visual Studio Solution File, Format Version 9.00 -# Visual Studio 2005 -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "TTXAlwaysOnTop", "TTXAlwaysOnTop\TTXAlwaysOnTop.vcproj", "{E86DDB2C-CC00-43D1-8A1A-4B042EC983D6}" -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "TTXResizeWin", "TTXResizeWin\TTXResizeWin.vcproj", "{11EF5960-4922-49DC-9E64-B0845FC7C88C}" -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "TTXResizeMenu", "TTXResizeMenu\TTXResizeMenu.vcproj", "{4EA6AEB6-9CCD-4E6D-9531-3F92184EBE67}" -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "TTXFixedWinSize", "TTXFixedWinSize\TTXFixedWinSize.vcproj", "{3C12BA78-2F6A-4655-B6FF-E1BFF2A191D8}" -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "TTXttyrec", "TTXttyrec\TTXttyrec.vcproj", "{5798E37E-0428-457E-A652-EE0A75130327}" -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "TTXttyplay", "TTXttyrec\TTXttyplay.vcproj", "{3181E887-2183-4FB8-84CC-CA5B4D48BC71}" -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "TTXtest", "ttxtest\TTXtest.vcproj", "{9E20E276-1905-44AE-BC67-C1A1F3C42135}" -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "TTXKcodeChange", "TTXKcodeChange\TTXKcodeChange.vcproj", "{2E487F50-84E4-404D-A7E1-F9FA4A72BC25}" -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "TTXViewMode", "TTXViewMode\TTXViewMode.vcproj", "{2296FB66-3FA4-4136-8252-ABECEEAC2D70}" -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "TTXCopyIniFile", "TTXCopyIniFile\TTXCopyIniFile.vcproj", "{2B2B8D6E-4A84-49DD-8291-46172FCE422A}" -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "TTXAdditionalTitle", "TTXAdditionalTitle\TTXAdditionalTitle.vcproj", "{0ECAF69B-08B4-414A-B822-BE8459E463D8}" -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "TTXCallSysMenu", "TTXCallSysMenu\TTXCallSysMenu.vcproj", "{25709A86-E6B8-4CDA-906C-02D935E05978}" -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "TTXCommandLineOpt", "TTXCommandLineOpt\TTXCommandLineOpt.vcproj", "{EE8BFC38-7000-42F1-BBC3-17F19855918A}" -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "TTXRecurringCommand", "TTXRecurringCommand\TTXRecurringCommand.vcproj", "{3C656364-FAEA-41D2-B227-52187D3C2529}" -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "TTXShowCommandLine", "TTXShowCommandLine\TTXShowCommandLine.vcproj", "{80ED9927-27F9-473A-802C-FB10DEB5ECC6}" -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "TTXOutputBuffering", "TTXOutputBuffering\TTXOutputBuffering.vcproj", "{80BE71D1-BEA3-4A5D-8F13-362D6364892D}" -EndProject -Global - GlobalSection(SolutionConfigurationPlatforms) = preSolution - Debug|Win32 = Debug|Win32 - Release|Win32 = Release|Win32 - EndGlobalSection - GlobalSection(ProjectConfigurationPlatforms) = postSolution - {E86DDB2C-CC00-43D1-8A1A-4B042EC983D6}.Debug|Win32.ActiveCfg = Debug|Win32 - {E86DDB2C-CC00-43D1-8A1A-4B042EC983D6}.Debug|Win32.Build.0 = Debug|Win32 - {E86DDB2C-CC00-43D1-8A1A-4B042EC983D6}.Release|Win32.ActiveCfg = Release|Win32 - {E86DDB2C-CC00-43D1-8A1A-4B042EC983D6}.Release|Win32.Build.0 = Release|Win32 - {11EF5960-4922-49DC-9E64-B0845FC7C88C}.Debug|Win32.ActiveCfg = Debug|Win32 - {11EF5960-4922-49DC-9E64-B0845FC7C88C}.Debug|Win32.Build.0 = Debug|Win32 - {11EF5960-4922-49DC-9E64-B0845FC7C88C}.Release|Win32.ActiveCfg = Release|Win32 - {11EF5960-4922-49DC-9E64-B0845FC7C88C}.Release|Win32.Build.0 = Release|Win32 - {4EA6AEB6-9CCD-4E6D-9531-3F92184EBE67}.Debug|Win32.ActiveCfg = Debug|Win32 - {4EA6AEB6-9CCD-4E6D-9531-3F92184EBE67}.Debug|Win32.Build.0 = Debug|Win32 - {4EA6AEB6-9CCD-4E6D-9531-3F92184EBE67}.Release|Win32.ActiveCfg = Release|Win32 - {4EA6AEB6-9CCD-4E6D-9531-3F92184EBE67}.Release|Win32.Build.0 = Release|Win32 - {3C12BA78-2F6A-4655-B6FF-E1BFF2A191D8}.Debug|Win32.ActiveCfg = Debug|Win32 - {3C12BA78-2F6A-4655-B6FF-E1BFF2A191D8}.Debug|Win32.Build.0 = Debug|Win32 - {3C12BA78-2F6A-4655-B6FF-E1BFF2A191D8}.Release|Win32.ActiveCfg = Release|Win32 - {3C12BA78-2F6A-4655-B6FF-E1BFF2A191D8}.Release|Win32.Build.0 = Release|Win32 - {5798E37E-0428-457E-A652-EE0A75130327}.Debug|Win32.ActiveCfg = Debug|Win32 - {5798E37E-0428-457E-A652-EE0A75130327}.Debug|Win32.Build.0 = Debug|Win32 - {5798E37E-0428-457E-A652-EE0A75130327}.Release|Win32.ActiveCfg = Release|Win32 - {5798E37E-0428-457E-A652-EE0A75130327}.Release|Win32.Build.0 = Release|Win32 - {3181E887-2183-4FB8-84CC-CA5B4D48BC71}.Debug|Win32.ActiveCfg = Debug|Win32 - {3181E887-2183-4FB8-84CC-CA5B4D48BC71}.Debug|Win32.Build.0 = Debug|Win32 - {3181E887-2183-4FB8-84CC-CA5B4D48BC71}.Release|Win32.ActiveCfg = Release|Win32 - {3181E887-2183-4FB8-84CC-CA5B4D48BC71}.Release|Win32.Build.0 = Release|Win32 - {9E20E276-1905-44AE-BC67-C1A1F3C42135}.Debug|Win32.ActiveCfg = Debug|Win32 - {9E20E276-1905-44AE-BC67-C1A1F3C42135}.Debug|Win32.Build.0 = Debug|Win32 - {9E20E276-1905-44AE-BC67-C1A1F3C42135}.Release|Win32.ActiveCfg = Release|Win32 - {9E20E276-1905-44AE-BC67-C1A1F3C42135}.Release|Win32.Build.0 = Release|Win32 - {2E487F50-84E4-404D-A7E1-F9FA4A72BC25}.Debug|Win32.ActiveCfg = Debug|Win32 - {2E487F50-84E4-404D-A7E1-F9FA4A72BC25}.Debug|Win32.Build.0 = Debug|Win32 - {2E487F50-84E4-404D-A7E1-F9FA4A72BC25}.Release|Win32.ActiveCfg = Release|Win32 - {2E487F50-84E4-404D-A7E1-F9FA4A72BC25}.Release|Win32.Build.0 = Release|Win32 - {2296FB66-3FA4-4136-8252-ABECEEAC2D70}.Debug|Win32.ActiveCfg = Debug|Win32 - {2296FB66-3FA4-4136-8252-ABECEEAC2D70}.Debug|Win32.Build.0 = Debug|Win32 - {2296FB66-3FA4-4136-8252-ABECEEAC2D70}.Release|Win32.ActiveCfg = Release|Win32 - {2296FB66-3FA4-4136-8252-ABECEEAC2D70}.Release|Win32.Build.0 = Release|Win32 - {2B2B8D6E-4A84-49DD-8291-46172FCE422A}.Debug|Win32.ActiveCfg = Debug|Win32 - {2B2B8D6E-4A84-49DD-8291-46172FCE422A}.Debug|Win32.Build.0 = Debug|Win32 - {2B2B8D6E-4A84-49DD-8291-46172FCE422A}.Release|Win32.ActiveCfg = Release|Win32 - {2B2B8D6E-4A84-49DD-8291-46172FCE422A}.Release|Win32.Build.0 = Release|Win32 - {0ECAF69B-08B4-414A-B822-BE8459E463D8}.Debug|Win32.ActiveCfg = Debug|Win32 - {0ECAF69B-08B4-414A-B822-BE8459E463D8}.Debug|Win32.Build.0 = Debug|Win32 - {0ECAF69B-08B4-414A-B822-BE8459E463D8}.Release|Win32.ActiveCfg = Release|Win32 - {0ECAF69B-08B4-414A-B822-BE8459E463D8}.Release|Win32.Build.0 = Release|Win32 - {25709A86-E6B8-4CDA-906C-02D935E05978}.Debug|Win32.ActiveCfg = Debug|Win32 - {25709A86-E6B8-4CDA-906C-02D935E05978}.Debug|Win32.Build.0 = Debug|Win32 - {25709A86-E6B8-4CDA-906C-02D935E05978}.Release|Win32.ActiveCfg = Release|Win32 - {25709A86-E6B8-4CDA-906C-02D935E05978}.Release|Win32.Build.0 = Release|Win32 - {EE8BFC38-7000-42F1-BBC3-17F19855918A}.Debug|Win32.ActiveCfg = Debug|Win32 - {EE8BFC38-7000-42F1-BBC3-17F19855918A}.Debug|Win32.Build.0 = Debug|Win32 - {EE8BFC38-7000-42F1-BBC3-17F19855918A}.Release|Win32.ActiveCfg = Release|Win32 - {EE8BFC38-7000-42F1-BBC3-17F19855918A}.Release|Win32.Build.0 = Release|Win32 - {3C656364-FAEA-41D2-B227-52187D3C2529}.Debug|Win32.ActiveCfg = Debug|Win32 - {3C656364-FAEA-41D2-B227-52187D3C2529}.Debug|Win32.Build.0 = Debug|Win32 - {3C656364-FAEA-41D2-B227-52187D3C2529}.Release|Win32.ActiveCfg = Release|Win32 - {3C656364-FAEA-41D2-B227-52187D3C2529}.Release|Win32.Build.0 = Release|Win32 - {80ED9927-27F9-473A-802C-FB10DEB5ECC6}.Debug|Win32.ActiveCfg = Debug|Win32 - {80ED9927-27F9-473A-802C-FB10DEB5ECC6}.Debug|Win32.Build.0 = Debug|Win32 - {80ED9927-27F9-473A-802C-FB10DEB5ECC6}.Release|Win32.ActiveCfg = Release|Win32 - {80ED9927-27F9-473A-802C-FB10DEB5ECC6}.Release|Win32.Build.0 = Release|Win32 - {80BE71D1-BEA3-4A5D-8F13-362D6364892D}.Debug|Win32.ActiveCfg = Debug|Win32 - {80BE71D1-BEA3-4A5D-8F13-362D6364892D}.Debug|Win32.Build.0 = Debug|Win32 - {80BE71D1-BEA3-4A5D-8F13-362D6364892D}.Release|Win32.ActiveCfg = Release|Win32 - {80BE71D1-BEA3-4A5D-8F13-362D6364892D}.Release|Win32.Build.0 = Release|Win32 - EndGlobalSection - GlobalSection(SolutionProperties) = preSolution - HideSolutionNode = FALSE - EndGlobalSection -EndGlobal diff --git a/TTXSamples/TTXSamples.v10.sln b/TTXSamples/TTXSamples.v10.sln deleted file mode 100644 index 325b61d3f..000000000 --- a/TTXSamples/TTXSamples.v10.sln +++ /dev/null @@ -1,109 +0,0 @@ -Microsoft Visual Studio Solution File, Format Version 11.00 -# Visual Studio 2010 -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "TTXAlwaysOnTop", "TTXAlwaysOnTop\TTXAlwaysOnTop.v10.vcxproj", "{E86DDB2C-CC00-43D1-8A1A-4B042EC983D6}" -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "TTXResizeWin", "TTXResizeWin\TTXResizeWin.v10.vcxproj", "{11EF5960-4922-49DC-9E64-B0845FC7C88C}" -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "TTXResizeMenu", "TTXResizeMenu\TTXResizeMenu.v10.vcxproj", "{4EA6AEB6-9CCD-4E6D-9531-3F92184EBE67}" -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "TTXFixedWinSize", "TTXFixedWinSize\TTXFixedWinSize.v10.vcxproj", "{3C12BA78-2F6A-4655-B6FF-E1BFF2A191D8}" -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "TTXttyrec", "TTXttyrec\TTXttyrec.v10.vcxproj", "{5798E37E-0428-457E-A652-EE0A75130327}" -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "TTXttyplay", "TTXttyrec\TTXttyplay.v10.vcxproj", "{3181E887-2183-4FB8-84CC-CA5B4D48BC71}" -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "TTXtest", "ttxtest\TTXtest.v10.vcxproj", "{9E20E276-1905-44AE-BC67-C1A1F3C42135}" -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "TTXKcodeChange", "TTXKcodeChange\TTXKcodeChange.v10.vcxproj", "{2E487F50-84E4-404D-A7E1-F9FA4A72BC25}" -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "TTXViewMode", "TTXViewMode\TTXViewMode.v10.vcxproj", "{2296FB66-3FA4-4136-8252-ABECEEAC2D70}" -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "TTXCopyIniFile", "TTXCopyIniFile\TTXCopyIniFile.v10.vcxproj", "{2B2B8D6E-4A84-49DD-8291-46172FCE422A}" -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "TTXAdditionalTitle", "TTXAdditionalTitle\TTXAdditionalTitle.v10.vcxproj", "{0ECAF69B-08B4-414A-B822-BE8459E463D8}" -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "TTXCallSysMenu", "TTXCallSysMenu\TTXCallSysMenu.v10.vcxproj", "{25709A86-E6B8-4CDA-906C-02D935E05978}" -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "TTXCommandLineOpt", "TTXCommandLineOpt\TTXCommandLineOpt.v10.vcxproj", "{EE8BFC38-7000-42F1-BBC3-17F19855918A}" -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "TTXRecurringCommand", "TTXRecurringCommand\TTXRecurringCommand.v10.vcxproj", "{3C656364-FAEA-41D2-B227-52187D3C2529}" -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "TTXShowCommandLine", "TTXShowCommandLine\TTXShowCommandLine.v10.vcxproj", "{80ED9927-27F9-473A-802C-FB10DEB5ECC6}" -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "TTXOutputBuffering", "TTXOutputBuffering\TTXOutputBuffering.v10.vcxproj", "{80BE71D1-BEA3-4A5D-8F13-362D6364892D}" -EndProject -Global - GlobalSection(SolutionConfigurationPlatforms) = preSolution - Debug|Win32 = Debug|Win32 - Release|Win32 = Release|Win32 - EndGlobalSection - GlobalSection(ProjectConfigurationPlatforms) = postSolution - {E86DDB2C-CC00-43D1-8A1A-4B042EC983D6}.Debug|Win32.ActiveCfg = Debug|Win32 - {E86DDB2C-CC00-43D1-8A1A-4B042EC983D6}.Debug|Win32.Build.0 = Debug|Win32 - {E86DDB2C-CC00-43D1-8A1A-4B042EC983D6}.Release|Win32.ActiveCfg = Release|Win32 - {E86DDB2C-CC00-43D1-8A1A-4B042EC983D6}.Release|Win32.Build.0 = Release|Win32 - {11EF5960-4922-49DC-9E64-B0845FC7C88C}.Debug|Win32.ActiveCfg = Debug|Win32 - {11EF5960-4922-49DC-9E64-B0845FC7C88C}.Debug|Win32.Build.0 = Debug|Win32 - {11EF5960-4922-49DC-9E64-B0845FC7C88C}.Release|Win32.ActiveCfg = Release|Win32 - {11EF5960-4922-49DC-9E64-B0845FC7C88C}.Release|Win32.Build.0 = Release|Win32 - {4EA6AEB6-9CCD-4E6D-9531-3F92184EBE67}.Debug|Win32.ActiveCfg = Debug|Win32 - {4EA6AEB6-9CCD-4E6D-9531-3F92184EBE67}.Debug|Win32.Build.0 = Debug|Win32 - {4EA6AEB6-9CCD-4E6D-9531-3F92184EBE67}.Release|Win32.ActiveCfg = Release|Win32 - {4EA6AEB6-9CCD-4E6D-9531-3F92184EBE67}.Release|Win32.Build.0 = Release|Win32 - {3C12BA78-2F6A-4655-B6FF-E1BFF2A191D8}.Debug|Win32.ActiveCfg = Debug|Win32 - {3C12BA78-2F6A-4655-B6FF-E1BFF2A191D8}.Debug|Win32.Build.0 = Debug|Win32 - {3C12BA78-2F6A-4655-B6FF-E1BFF2A191D8}.Release|Win32.ActiveCfg = Release|Win32 - {3C12BA78-2F6A-4655-B6FF-E1BFF2A191D8}.Release|Win32.Build.0 = Release|Win32 - {5798E37E-0428-457E-A652-EE0A75130327}.Debug|Win32.ActiveCfg = Debug|Win32 - {5798E37E-0428-457E-A652-EE0A75130327}.Debug|Win32.Build.0 = Debug|Win32 - {5798E37E-0428-457E-A652-EE0A75130327}.Release|Win32.ActiveCfg = Release|Win32 - {5798E37E-0428-457E-A652-EE0A75130327}.Release|Win32.Build.0 = Release|Win32 - {3181E887-2183-4FB8-84CC-CA5B4D48BC71}.Debug|Win32.ActiveCfg = Debug|Win32 - {3181E887-2183-4FB8-84CC-CA5B4D48BC71}.Debug|Win32.Build.0 = Debug|Win32 - {3181E887-2183-4FB8-84CC-CA5B4D48BC71}.Release|Win32.ActiveCfg = Release|Win32 - {3181E887-2183-4FB8-84CC-CA5B4D48BC71}.Release|Win32.Build.0 = Release|Win32 - {9E20E276-1905-44AE-BC67-C1A1F3C42135}.Debug|Win32.ActiveCfg = Debug|Win32 - {9E20E276-1905-44AE-BC67-C1A1F3C42135}.Debug|Win32.Build.0 = Debug|Win32 - {9E20E276-1905-44AE-BC67-C1A1F3C42135}.Release|Win32.ActiveCfg = Release|Win32 - {9E20E276-1905-44AE-BC67-C1A1F3C42135}.Release|Win32.Build.0 = Release|Win32 - {2E487F50-84E4-404D-A7E1-F9FA4A72BC25}.Debug|Win32.ActiveCfg = Debug|Win32 - {2E487F50-84E4-404D-A7E1-F9FA4A72BC25}.Debug|Win32.Build.0 = Debug|Win32 - {2E487F50-84E4-404D-A7E1-F9FA4A72BC25}.Release|Win32.ActiveCfg = Release|Win32 - {2E487F50-84E4-404D-A7E1-F9FA4A72BC25}.Release|Win32.Build.0 = Release|Win32 - {2296FB66-3FA4-4136-8252-ABECEEAC2D70}.Debug|Win32.ActiveCfg = Debug|Win32 - {2296FB66-3FA4-4136-8252-ABECEEAC2D70}.Debug|Win32.Build.0 = Debug|Win32 - {2296FB66-3FA4-4136-8252-ABECEEAC2D70}.Release|Win32.ActiveCfg = Release|Win32 - {2296FB66-3FA4-4136-8252-ABECEEAC2D70}.Release|Win32.Build.0 = Release|Win32 - {2B2B8D6E-4A84-49DD-8291-46172FCE422A}.Debug|Win32.ActiveCfg = Debug|Win32 - {2B2B8D6E-4A84-49DD-8291-46172FCE422A}.Debug|Win32.Build.0 = Debug|Win32 - {2B2B8D6E-4A84-49DD-8291-46172FCE422A}.Release|Win32.ActiveCfg = Release|Win32 - {2B2B8D6E-4A84-49DD-8291-46172FCE422A}.Release|Win32.Build.0 = Release|Win32 - {0ECAF69B-08B4-414A-B822-BE8459E463D8}.Debug|Win32.ActiveCfg = Debug|Win32 - {0ECAF69B-08B4-414A-B822-BE8459E463D8}.Debug|Win32.Build.0 = Debug|Win32 - {0ECAF69B-08B4-414A-B822-BE8459E463D8}.Release|Win32.ActiveCfg = Release|Win32 - {0ECAF69B-08B4-414A-B822-BE8459E463D8}.Release|Win32.Build.0 = Release|Win32 - {25709A86-E6B8-4CDA-906C-02D935E05978}.Debug|Win32.ActiveCfg = Debug|Win32 - {25709A86-E6B8-4CDA-906C-02D935E05978}.Debug|Win32.Build.0 = Debug|Win32 - {25709A86-E6B8-4CDA-906C-02D935E05978}.Release|Win32.ActiveCfg = Release|Win32 - {25709A86-E6B8-4CDA-906C-02D935E05978}.Release|Win32.Build.0 = Release|Win32 - {EE8BFC38-7000-42F1-BBC3-17F19855918A}.Debug|Win32.ActiveCfg = Debug|Win32 - {EE8BFC38-7000-42F1-BBC3-17F19855918A}.Debug|Win32.Build.0 = Debug|Win32 - {EE8BFC38-7000-42F1-BBC3-17F19855918A}.Release|Win32.ActiveCfg = Release|Win32 - {EE8BFC38-7000-42F1-BBC3-17F19855918A}.Release|Win32.Build.0 = Release|Win32 - {3C656364-FAEA-41D2-B227-52187D3C2529}.Debug|Win32.ActiveCfg = Debug|Win32 - {3C656364-FAEA-41D2-B227-52187D3C2529}.Debug|Win32.Build.0 = Debug|Win32 - {3C656364-FAEA-41D2-B227-52187D3C2529}.Release|Win32.ActiveCfg = Release|Win32 - {3C656364-FAEA-41D2-B227-52187D3C2529}.Release|Win32.Build.0 = Release|Win32 - {80ED9927-27F9-473A-802C-FB10DEB5ECC6}.Debug|Win32.ActiveCfg = Debug|Win32 - {80ED9927-27F9-473A-802C-FB10DEB5ECC6}.Debug|Win32.Build.0 = Debug|Win32 - {80ED9927-27F9-473A-802C-FB10DEB5ECC6}.Release|Win32.ActiveCfg = Release|Win32 - {80ED9927-27F9-473A-802C-FB10DEB5ECC6}.Release|Win32.Build.0 = Release|Win32 - {80BE71D1-BEA3-4A5D-8F13-362D6364892D}.Debug|Win32.ActiveCfg = Debug|Win32 - {80BE71D1-BEA3-4A5D-8F13-362D6364892D}.Debug|Win32.Build.0 = Debug|Win32 - {80BE71D1-BEA3-4A5D-8F13-362D6364892D}.Release|Win32.ActiveCfg = Release|Win32 - {80BE71D1-BEA3-4A5D-8F13-362D6364892D}.Release|Win32.Build.0 = Release|Win32 - EndGlobalSection - GlobalSection(SolutionProperties) = preSolution - HideSolutionNode = FALSE - EndGlobalSection -EndGlobal diff --git a/TTXSamples/TTXSamples.v11.sln b/TTXSamples/TTXSamples.v11.sln deleted file mode 100644 index 05085fa5f..000000000 --- a/TTXSamples/TTXSamples.v11.sln +++ /dev/null @@ -1,109 +0,0 @@ -Microsoft Visual Studio Solution File, Format Version 12.00 -# Visual Studio 2012 -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "TTXAlwaysOnTop", "TTXAlwaysOnTop\TTXAlwaysOnTop.v11.vcxproj", "{E86DDB2C-CC00-43D1-8A1A-4B042EC983D6}" -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "TTXResizeWin", "TTXResizeWin\TTXResizeWin.v11.vcxproj", "{11EF5960-4922-49DC-9E64-B0845FC7C88C}" -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "TTXResizeMenu", "TTXResizeMenu\TTXResizeMenu.v11.vcxproj", "{4EA6AEB6-9CCD-4E6D-9531-3F92184EBE67}" -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "TTXFixedWinSize", "TTXFixedWinSize\TTXFixedWinSize.v11.vcxproj", "{3C12BA78-2F6A-4655-B6FF-E1BFF2A191D8}" -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "TTXttyrec", "TTXttyrec\TTXttyrec.v11.vcxproj", "{5798E37E-0428-457E-A652-EE0A75130327}" -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "TTXttyplay", "TTXttyrec\TTXttyplay.v11.vcxproj", "{3181E887-2183-4FB8-84CC-CA5B4D48BC71}" -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "TTXtest", "ttxtest\TTXtest.v11.vcxproj", "{9E20E276-1905-44AE-BC67-C1A1F3C42135}" -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "TTXKcodeChange", "TTXKcodeChange\TTXKcodeChange.v11.vcxproj", "{2E487F50-84E4-404D-A7E1-F9FA4A72BC25}" -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "TTXViewMode", "TTXViewMode\TTXViewMode.v11.vcxproj", "{2296FB66-3FA4-4136-8252-ABECEEAC2D70}" -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "TTXCopyIniFile", "TTXCopyIniFile\TTXCopyIniFile.v11.vcxproj", "{2B2B8D6E-4A84-49DD-8291-46172FCE422A}" -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "TTXAdditionalTitle", "TTXAdditionalTitle\TTXAdditionalTitle.v11.vcxproj", "{0ECAF69B-08B4-414A-B822-BE8459E463D8}" -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "TTXCallSysMenu", "TTXCallSysMenu\TTXCallSysMenu.v11.vcxproj", "{25709A86-E6B8-4CDA-906C-02D935E05978}" -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "TTXCommandLineOpt", "TTXCommandLineOpt\TTXCommandLineOpt.v11.vcxproj", "{EE8BFC38-7000-42F1-BBC3-17F19855918A}" -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "TTXRecurringCommand", "TTXRecurringCommand\TTXRecurringCommand.v11.vcxproj", "{3C656364-FAEA-41D2-B227-52187D3C2529}" -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "TTXShowCommandLine", "TTXShowCommandLine\TTXShowCommandLine.v11.vcxproj", "{80ED9927-27F9-473A-802C-FB10DEB5ECC6}" -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "TTXOutputBuffering", "TTXOutputBuffering\TTXOutputBuffering.v11.vcxproj", "{80BE71D1-BEA3-4A5D-8F13-362D6364892D}" -EndProject -Global - GlobalSection(SolutionConfigurationPlatforms) = preSolution - Debug|Win32 = Debug|Win32 - Release|Win32 = Release|Win32 - EndGlobalSection - GlobalSection(ProjectConfigurationPlatforms) = postSolution - {E86DDB2C-CC00-43D1-8A1A-4B042EC983D6}.Debug|Win32.ActiveCfg = Debug|Win32 - {E86DDB2C-CC00-43D1-8A1A-4B042EC983D6}.Debug|Win32.Build.0 = Debug|Win32 - {E86DDB2C-CC00-43D1-8A1A-4B042EC983D6}.Release|Win32.ActiveCfg = Release|Win32 - {E86DDB2C-CC00-43D1-8A1A-4B042EC983D6}.Release|Win32.Build.0 = Release|Win32 - {11EF5960-4922-49DC-9E64-B0845FC7C88C}.Debug|Win32.ActiveCfg = Debug|Win32 - {11EF5960-4922-49DC-9E64-B0845FC7C88C}.Debug|Win32.Build.0 = Debug|Win32 - {11EF5960-4922-49DC-9E64-B0845FC7C88C}.Release|Win32.ActiveCfg = Release|Win32 - {11EF5960-4922-49DC-9E64-B0845FC7C88C}.Release|Win32.Build.0 = Release|Win32 - {4EA6AEB6-9CCD-4E6D-9531-3F92184EBE67}.Debug|Win32.ActiveCfg = Debug|Win32 - {4EA6AEB6-9CCD-4E6D-9531-3F92184EBE67}.Debug|Win32.Build.0 = Debug|Win32 - {4EA6AEB6-9CCD-4E6D-9531-3F92184EBE67}.Release|Win32.ActiveCfg = Release|Win32 - {4EA6AEB6-9CCD-4E6D-9531-3F92184EBE67}.Release|Win32.Build.0 = Release|Win32 - {3C12BA78-2F6A-4655-B6FF-E1BFF2A191D8}.Debug|Win32.ActiveCfg = Debug|Win32 - {3C12BA78-2F6A-4655-B6FF-E1BFF2A191D8}.Debug|Win32.Build.0 = Debug|Win32 - {3C12BA78-2F6A-4655-B6FF-E1BFF2A191D8}.Release|Win32.ActiveCfg = Release|Win32 - {3C12BA78-2F6A-4655-B6FF-E1BFF2A191D8}.Release|Win32.Build.0 = Release|Win32 - {5798E37E-0428-457E-A652-EE0A75130327}.Debug|Win32.ActiveCfg = Debug|Win32 - {5798E37E-0428-457E-A652-EE0A75130327}.Debug|Win32.Build.0 = Debug|Win32 - {5798E37E-0428-457E-A652-EE0A75130327}.Release|Win32.ActiveCfg = Release|Win32 - {5798E37E-0428-457E-A652-EE0A75130327}.Release|Win32.Build.0 = Release|Win32 - {3181E887-2183-4FB8-84CC-CA5B4D48BC71}.Debug|Win32.ActiveCfg = Debug|Win32 - {3181E887-2183-4FB8-84CC-CA5B4D48BC71}.Debug|Win32.Build.0 = Debug|Win32 - {3181E887-2183-4FB8-84CC-CA5B4D48BC71}.Release|Win32.ActiveCfg = Release|Win32 - {3181E887-2183-4FB8-84CC-CA5B4D48BC71}.Release|Win32.Build.0 = Release|Win32 - {9E20E276-1905-44AE-BC67-C1A1F3C42135}.Debug|Win32.ActiveCfg = Debug|Win32 - {9E20E276-1905-44AE-BC67-C1A1F3C42135}.Debug|Win32.Build.0 = Debug|Win32 - {9E20E276-1905-44AE-BC67-C1A1F3C42135}.Release|Win32.ActiveCfg = Release|Win32 - {9E20E276-1905-44AE-BC67-C1A1F3C42135}.Release|Win32.Build.0 = Release|Win32 - {2E487F50-84E4-404D-A7E1-F9FA4A72BC25}.Debug|Win32.ActiveCfg = Debug|Win32 - {2E487F50-84E4-404D-A7E1-F9FA4A72BC25}.Debug|Win32.Build.0 = Debug|Win32 - {2E487F50-84E4-404D-A7E1-F9FA4A72BC25}.Release|Win32.ActiveCfg = Release|Win32 - {2E487F50-84E4-404D-A7E1-F9FA4A72BC25}.Release|Win32.Build.0 = Release|Win32 - {2296FB66-3FA4-4136-8252-ABECEEAC2D70}.Debug|Win32.ActiveCfg = Debug|Win32 - {2296FB66-3FA4-4136-8252-ABECEEAC2D70}.Debug|Win32.Build.0 = Debug|Win32 - {2296FB66-3FA4-4136-8252-ABECEEAC2D70}.Release|Win32.ActiveCfg = Release|Win32 - {2296FB66-3FA4-4136-8252-ABECEEAC2D70}.Release|Win32.Build.0 = Release|Win32 - {2B2B8D6E-4A84-49DD-8291-46172FCE422A}.Debug|Win32.ActiveCfg = Debug|Win32 - {2B2B8D6E-4A84-49DD-8291-46172FCE422A}.Debug|Win32.Build.0 = Debug|Win32 - {2B2B8D6E-4A84-49DD-8291-46172FCE422A}.Release|Win32.ActiveCfg = Release|Win32 - {2B2B8D6E-4A84-49DD-8291-46172FCE422A}.Release|Win32.Build.0 = Release|Win32 - {0ECAF69B-08B4-414A-B822-BE8459E463D8}.Debug|Win32.ActiveCfg = Debug|Win32 - {0ECAF69B-08B4-414A-B822-BE8459E463D8}.Debug|Win32.Build.0 = Debug|Win32 - {0ECAF69B-08B4-414A-B822-BE8459E463D8}.Release|Win32.ActiveCfg = Release|Win32 - {0ECAF69B-08B4-414A-B822-BE8459E463D8}.Release|Win32.Build.0 = Release|Win32 - {25709A86-E6B8-4CDA-906C-02D935E05978}.Debug|Win32.ActiveCfg = Debug|Win32 - {25709A86-E6B8-4CDA-906C-02D935E05978}.Debug|Win32.Build.0 = Debug|Win32 - {25709A86-E6B8-4CDA-906C-02D935E05978}.Release|Win32.ActiveCfg = Release|Win32 - {25709A86-E6B8-4CDA-906C-02D935E05978}.Release|Win32.Build.0 = Release|Win32 - {EE8BFC38-7000-42F1-BBC3-17F19855918A}.Debug|Win32.ActiveCfg = Debug|Win32 - {EE8BFC38-7000-42F1-BBC3-17F19855918A}.Debug|Win32.Build.0 = Debug|Win32 - {EE8BFC38-7000-42F1-BBC3-17F19855918A}.Release|Win32.ActiveCfg = Release|Win32 - {EE8BFC38-7000-42F1-BBC3-17F19855918A}.Release|Win32.Build.0 = Release|Win32 - {3C656364-FAEA-41D2-B227-52187D3C2529}.Debug|Win32.ActiveCfg = Debug|Win32 - {3C656364-FAEA-41D2-B227-52187D3C2529}.Debug|Win32.Build.0 = Debug|Win32 - {3C656364-FAEA-41D2-B227-52187D3C2529}.Release|Win32.ActiveCfg = Release|Win32 - {3C656364-FAEA-41D2-B227-52187D3C2529}.Release|Win32.Build.0 = Release|Win32 - {80ED9927-27F9-473A-802C-FB10DEB5ECC6}.Debug|Win32.ActiveCfg = Debug|Win32 - {80ED9927-27F9-473A-802C-FB10DEB5ECC6}.Debug|Win32.Build.0 = Debug|Win32 - {80ED9927-27F9-473A-802C-FB10DEB5ECC6}.Release|Win32.ActiveCfg = Release|Win32 - {80ED9927-27F9-473A-802C-FB10DEB5ECC6}.Release|Win32.Build.0 = Release|Win32 - {80BE71D1-BEA3-4A5D-8F13-362D6364892D}.Debug|Win32.ActiveCfg = Debug|Win32 - {80BE71D1-BEA3-4A5D-8F13-362D6364892D}.Debug|Win32.Build.0 = Debug|Win32 - {80BE71D1-BEA3-4A5D-8F13-362D6364892D}.Release|Win32.ActiveCfg = Release|Win32 - {80BE71D1-BEA3-4A5D-8F13-362D6364892D}.Release|Win32.Build.0 = Release|Win32 - EndGlobalSection - GlobalSection(SolutionProperties) = preSolution - HideSolutionNode = FALSE - EndGlobalSection -EndGlobal diff --git a/TTXSamples/TTXSamples.v12.sln b/TTXSamples/TTXSamples.v12.sln deleted file mode 100644 index 75885164c..000000000 --- a/TTXSamples/TTXSamples.v12.sln +++ /dev/null @@ -1,111 +0,0 @@ -Microsoft Visual Studio Solution File, Format Version 12.00 -# Visual Studio 2013 -VisualStudioVersion = 12.0.31101.0 -MinimumVisualStudioVersion = 10.0.40219.1 -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "TTXAlwaysOnTop", "TTXAlwaysOnTop\TTXAlwaysOnTop.v12.vcxproj", "{E86DDB2C-CC00-43D1-8A1A-4B042EC983D6}" -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "TTXResizeWin", "TTXResizeWin\TTXResizeWin.v12.vcxproj", "{11EF5960-4922-49DC-9E64-B0845FC7C88C}" -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "TTXResizeMenu", "TTXResizeMenu\TTXResizeMenu.v12.vcxproj", "{4EA6AEB6-9CCD-4E6D-9531-3F92184EBE67}" -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "TTXFixedWinSize", "TTXFixedWinSize\TTXFixedWinSize.v12.vcxproj", "{3C12BA78-2F6A-4655-B6FF-E1BFF2A191D8}" -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "TTXttyrec", "TTXttyrec\TTXttyrec.v12.vcxproj", "{5798E37E-0428-457E-A652-EE0A75130327}" -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "TTXttyplay", "TTXttyrec\TTXttyplay.v12.vcxproj", "{3181E887-2183-4FB8-84CC-CA5B4D48BC71}" -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "TTXtest", "ttxtest\TTXtest.v12.vcxproj", "{9E20E276-1905-44AE-BC67-C1A1F3C42135}" -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "TTXKcodeChange", "TTXKcodeChange\TTXKcodeChange.v12.vcxproj", "{2E487F50-84E4-404D-A7E1-F9FA4A72BC25}" -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "TTXViewMode", "TTXViewMode\TTXViewMode.v12.vcxproj", "{2296FB66-3FA4-4136-8252-ABECEEAC2D70}" -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "TTXCopyIniFile", "TTXCopyIniFile\TTXCopyIniFile.v12.vcxproj", "{2B2B8D6E-4A84-49DD-8291-46172FCE422A}" -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "TTXAdditionalTitle", "TTXAdditionalTitle\TTXAdditionalTitle.v12.vcxproj", "{0ECAF69B-08B4-414A-B822-BE8459E463D8}" -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "TTXCallSysMenu", "TTXCallSysMenu\TTXCallSysMenu.v12.vcxproj", "{25709A86-E6B8-4CDA-906C-02D935E05978}" -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "TTXCommandLineOpt", "TTXCommandLineOpt\TTXCommandLineOpt.v12.vcxproj", "{EE8BFC38-7000-42F1-BBC3-17F19855918A}" -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "TTXRecurringCommand", "TTXRecurringCommand\TTXRecurringCommand.v12.vcxproj", "{3C656364-FAEA-41D2-B227-52187D3C2529}" -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "TTXShowCommandLine", "TTXShowCommandLine\TTXShowCommandLine.v12.vcxproj", "{80ED9927-27F9-473A-802C-FB10DEB5ECC6}" -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "TTXOutputBuffering", "TTXOutputBuffering\TTXOutputBuffering.v12.vcxproj", "{80BE71D1-BEA3-4A5D-8F13-362D6364892D}" -EndProject -Global - GlobalSection(SolutionConfigurationPlatforms) = preSolution - Debug|Win32 = Debug|Win32 - Release|Win32 = Release|Win32 - EndGlobalSection - GlobalSection(ProjectConfigurationPlatforms) = postSolution - {E86DDB2C-CC00-43D1-8A1A-4B042EC983D6}.Debug|Win32.ActiveCfg = Debug|Win32 - {E86DDB2C-CC00-43D1-8A1A-4B042EC983D6}.Debug|Win32.Build.0 = Debug|Win32 - {E86DDB2C-CC00-43D1-8A1A-4B042EC983D6}.Release|Win32.ActiveCfg = Release|Win32 - {E86DDB2C-CC00-43D1-8A1A-4B042EC983D6}.Release|Win32.Build.0 = Release|Win32 - {11EF5960-4922-49DC-9E64-B0845FC7C88C}.Debug|Win32.ActiveCfg = Debug|Win32 - {11EF5960-4922-49DC-9E64-B0845FC7C88C}.Debug|Win32.Build.0 = Debug|Win32 - {11EF5960-4922-49DC-9E64-B0845FC7C88C}.Release|Win32.ActiveCfg = Release|Win32 - {11EF5960-4922-49DC-9E64-B0845FC7C88C}.Release|Win32.Build.0 = Release|Win32 - {4EA6AEB6-9CCD-4E6D-9531-3F92184EBE67}.Debug|Win32.ActiveCfg = Debug|Win32 - {4EA6AEB6-9CCD-4E6D-9531-3F92184EBE67}.Debug|Win32.Build.0 = Debug|Win32 - {4EA6AEB6-9CCD-4E6D-9531-3F92184EBE67}.Release|Win32.ActiveCfg = Release|Win32 - {4EA6AEB6-9CCD-4E6D-9531-3F92184EBE67}.Release|Win32.Build.0 = Release|Win32 - {3C12BA78-2F6A-4655-B6FF-E1BFF2A191D8}.Debug|Win32.ActiveCfg = Debug|Win32 - {3C12BA78-2F6A-4655-B6FF-E1BFF2A191D8}.Debug|Win32.Build.0 = Debug|Win32 - {3C12BA78-2F6A-4655-B6FF-E1BFF2A191D8}.Release|Win32.ActiveCfg = Release|Win32 - {3C12BA78-2F6A-4655-B6FF-E1BFF2A191D8}.Release|Win32.Build.0 = Release|Win32 - {5798E37E-0428-457E-A652-EE0A75130327}.Debug|Win32.ActiveCfg = Debug|Win32 - {5798E37E-0428-457E-A652-EE0A75130327}.Debug|Win32.Build.0 = Debug|Win32 - {5798E37E-0428-457E-A652-EE0A75130327}.Release|Win32.ActiveCfg = Release|Win32 - {5798E37E-0428-457E-A652-EE0A75130327}.Release|Win32.Build.0 = Release|Win32 - {3181E887-2183-4FB8-84CC-CA5B4D48BC71}.Debug|Win32.ActiveCfg = Debug|Win32 - {3181E887-2183-4FB8-84CC-CA5B4D48BC71}.Debug|Win32.Build.0 = Debug|Win32 - {3181E887-2183-4FB8-84CC-CA5B4D48BC71}.Release|Win32.ActiveCfg = Release|Win32 - {3181E887-2183-4FB8-84CC-CA5B4D48BC71}.Release|Win32.Build.0 = Release|Win32 - {9E20E276-1905-44AE-BC67-C1A1F3C42135}.Debug|Win32.ActiveCfg = Debug|Win32 - {9E20E276-1905-44AE-BC67-C1A1F3C42135}.Debug|Win32.Build.0 = Debug|Win32 - {9E20E276-1905-44AE-BC67-C1A1F3C42135}.Release|Win32.ActiveCfg = Release|Win32 - {9E20E276-1905-44AE-BC67-C1A1F3C42135}.Release|Win32.Build.0 = Release|Win32 - {2E487F50-84E4-404D-A7E1-F9FA4A72BC25}.Debug|Win32.ActiveCfg = Debug|Win32 - {2E487F50-84E4-404D-A7E1-F9FA4A72BC25}.Debug|Win32.Build.0 = Debug|Win32 - {2E487F50-84E4-404D-A7E1-F9FA4A72BC25}.Release|Win32.ActiveCfg = Release|Win32 - {2E487F50-84E4-404D-A7E1-F9FA4A72BC25}.Release|Win32.Build.0 = Release|Win32 - {2296FB66-3FA4-4136-8252-ABECEEAC2D70}.Debug|Win32.ActiveCfg = Debug|Win32 - {2296FB66-3FA4-4136-8252-ABECEEAC2D70}.Debug|Win32.Build.0 = Debug|Win32 - {2296FB66-3FA4-4136-8252-ABECEEAC2D70}.Release|Win32.ActiveCfg = Release|Win32 - {2296FB66-3FA4-4136-8252-ABECEEAC2D70}.Release|Win32.Build.0 = Release|Win32 - {2B2B8D6E-4A84-49DD-8291-46172FCE422A}.Debug|Win32.ActiveCfg = Debug|Win32 - {2B2B8D6E-4A84-49DD-8291-46172FCE422A}.Debug|Win32.Build.0 = Debug|Win32 - {2B2B8D6E-4A84-49DD-8291-46172FCE422A}.Release|Win32.ActiveCfg = Release|Win32 - {2B2B8D6E-4A84-49DD-8291-46172FCE422A}.Release|Win32.Build.0 = Release|Win32 - {0ECAF69B-08B4-414A-B822-BE8459E463D8}.Debug|Win32.ActiveCfg = Debug|Win32 - {0ECAF69B-08B4-414A-B822-BE8459E463D8}.Debug|Win32.Build.0 = Debug|Win32 - {0ECAF69B-08B4-414A-B822-BE8459E463D8}.Release|Win32.ActiveCfg = Release|Win32 - {0ECAF69B-08B4-414A-B822-BE8459E463D8}.Release|Win32.Build.0 = Release|Win32 - {25709A86-E6B8-4CDA-906C-02D935E05978}.Debug|Win32.ActiveCfg = Debug|Win32 - {25709A86-E6B8-4CDA-906C-02D935E05978}.Debug|Win32.Build.0 = Debug|Win32 - {25709A86-E6B8-4CDA-906C-02D935E05978}.Release|Win32.ActiveCfg = Release|Win32 - {25709A86-E6B8-4CDA-906C-02D935E05978}.Release|Win32.Build.0 = Release|Win32 - {EE8BFC38-7000-42F1-BBC3-17F19855918A}.Debug|Win32.ActiveCfg = Debug|Win32 - {EE8BFC38-7000-42F1-BBC3-17F19855918A}.Debug|Win32.Build.0 = Debug|Win32 - {EE8BFC38-7000-42F1-BBC3-17F19855918A}.Release|Win32.ActiveCfg = Release|Win32 - {EE8BFC38-7000-42F1-BBC3-17F19855918A}.Release|Win32.Build.0 = Release|Win32 - {3C656364-FAEA-41D2-B227-52187D3C2529}.Debug|Win32.ActiveCfg = Debug|Win32 - {3C656364-FAEA-41D2-B227-52187D3C2529}.Debug|Win32.Build.0 = Debug|Win32 - {3C656364-FAEA-41D2-B227-52187D3C2529}.Release|Win32.ActiveCfg = Release|Win32 - {3C656364-FAEA-41D2-B227-52187D3C2529}.Release|Win32.Build.0 = Release|Win32 - {80ED9927-27F9-473A-802C-FB10DEB5ECC6}.Debug|Win32.ActiveCfg = Debug|Win32 - {80ED9927-27F9-473A-802C-FB10DEB5ECC6}.Debug|Win32.Build.0 = Debug|Win32 - {80ED9927-27F9-473A-802C-FB10DEB5ECC6}.Release|Win32.ActiveCfg = Release|Win32 - {80ED9927-27F9-473A-802C-FB10DEB5ECC6}.Release|Win32.Build.0 = Release|Win32 - {80BE71D1-BEA3-4A5D-8F13-362D6364892D}.Debug|Win32.ActiveCfg = Debug|Win32 - {80BE71D1-BEA3-4A5D-8F13-362D6364892D}.Debug|Win32.Build.0 = Debug|Win32 - {80BE71D1-BEA3-4A5D-8F13-362D6364892D}.Release|Win32.ActiveCfg = Release|Win32 - {80BE71D1-BEA3-4A5D-8F13-362D6364892D}.Release|Win32.Build.0 = Release|Win32 - EndGlobalSection - GlobalSection(SolutionProperties) = preSolution - HideSolutionNode = FALSE - EndGlobalSection -EndGlobal diff --git a/TTXSamples/TTXSamples.v14.sln b/TTXSamples/TTXSamples.v14.sln deleted file mode 100644 index 061cbc26c..000000000 --- a/TTXSamples/TTXSamples.v14.sln +++ /dev/null @@ -1,111 +0,0 @@ -Microsoft Visual Studio Solution File, Format Version 12.00 -# Visual Studio 14 -VisualStudioVersion = 14.0.23107.0 -MinimumVisualStudioVersion = 10.0.40219.1 -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "TTXAlwaysOnTop", "TTXAlwaysOnTop\TTXAlwaysOnTop.v14.vcxproj", "{E86DDB2C-CC00-43D1-8A1A-4B042EC983D6}" -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "TTXResizeWin", "TTXResizeWin\TTXResizeWin.v14.vcxproj", "{11EF5960-4922-49DC-9E64-B0845FC7C88C}" -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "TTXResizeMenu", "TTXResizeMenu\TTXResizeMenu.v14.vcxproj", "{4EA6AEB6-9CCD-4E6D-9531-3F92184EBE67}" -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "TTXFixedWinSize", "TTXFixedWinSize\TTXFixedWinSize.v14.vcxproj", "{3C12BA78-2F6A-4655-B6FF-E1BFF2A191D8}" -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "TTXttyrec", "TTXttyrec\TTXttyrec.v14.vcxproj", "{5798E37E-0428-457E-A652-EE0A75130327}" -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "TTXttyplay", "TTXttyrec\TTXttyplay.v14.vcxproj", "{3181E887-2183-4FB8-84CC-CA5B4D48BC71}" -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "TTXtest", "ttxtest\TTXtest.v14.vcxproj", "{9E20E276-1905-44AE-BC67-C1A1F3C42135}" -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "TTXKcodeChange", "TTXKcodeChange\TTXKcodeChange.v14.vcxproj", "{2E487F50-84E4-404D-A7E1-F9FA4A72BC25}" -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "TTXViewMode", "TTXViewMode\TTXViewMode.v14.vcxproj", "{2296FB66-3FA4-4136-8252-ABECEEAC2D70}" -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "TTXCopyIniFile", "TTXCopyIniFile\TTXCopyIniFile.v14.vcxproj", "{2B2B8D6E-4A84-49DD-8291-46172FCE422A}" -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "TTXAdditionalTitle", "TTXAdditionalTitle\TTXAdditionalTitle.v14.vcxproj", "{0ECAF69B-08B4-414A-B822-BE8459E463D8}" -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "TTXCallSysMenu", "TTXCallSysMenu\TTXCallSysMenu.v14.vcxproj", "{25709A86-E6B8-4CDA-906C-02D935E05978}" -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "TTXCommandLineOpt", "TTXCommandLineOpt\TTXCommandLineOpt.v14.vcxproj", "{EE8BFC38-7000-42F1-BBC3-17F19855918A}" -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "TTXRecurringCommand", "TTXRecurringCommand\TTXRecurringCommand.v14.vcxproj", "{3C656364-FAEA-41D2-B227-52187D3C2529}" -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "TTXShowCommandLine", "TTXShowCommandLine\TTXShowCommandLine.v14.vcxproj", "{80ED9927-27F9-473A-802C-FB10DEB5ECC6}" -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "TTXOutputBuffering", "TTXOutputBuffering\TTXOutputBuffering.v14.vcxproj", "{80BE71D1-BEA3-4A5D-8F13-362D6364892D}" -EndProject -Global - GlobalSection(SolutionConfigurationPlatforms) = preSolution - Debug|Win32 = Debug|Win32 - Release|Win32 = Release|Win32 - EndGlobalSection - GlobalSection(ProjectConfigurationPlatforms) = postSolution - {E86DDB2C-CC00-43D1-8A1A-4B042EC983D6}.Debug|Win32.ActiveCfg = Debug|Win32 - {E86DDB2C-CC00-43D1-8A1A-4B042EC983D6}.Debug|Win32.Build.0 = Debug|Win32 - {E86DDB2C-CC00-43D1-8A1A-4B042EC983D6}.Release|Win32.ActiveCfg = Release|Win32 - {E86DDB2C-CC00-43D1-8A1A-4B042EC983D6}.Release|Win32.Build.0 = Release|Win32 - {11EF5960-4922-49DC-9E64-B0845FC7C88C}.Debug|Win32.ActiveCfg = Debug|Win32 - {11EF5960-4922-49DC-9E64-B0845FC7C88C}.Debug|Win32.Build.0 = Debug|Win32 - {11EF5960-4922-49DC-9E64-B0845FC7C88C}.Release|Win32.ActiveCfg = Release|Win32 - {11EF5960-4922-49DC-9E64-B0845FC7C88C}.Release|Win32.Build.0 = Release|Win32 - {4EA6AEB6-9CCD-4E6D-9531-3F92184EBE67}.Debug|Win32.ActiveCfg = Debug|Win32 - {4EA6AEB6-9CCD-4E6D-9531-3F92184EBE67}.Debug|Win32.Build.0 = Debug|Win32 - {4EA6AEB6-9CCD-4E6D-9531-3F92184EBE67}.Release|Win32.ActiveCfg = Release|Win32 - {4EA6AEB6-9CCD-4E6D-9531-3F92184EBE67}.Release|Win32.Build.0 = Release|Win32 - {3C12BA78-2F6A-4655-B6FF-E1BFF2A191D8}.Debug|Win32.ActiveCfg = Debug|Win32 - {3C12BA78-2F6A-4655-B6FF-E1BFF2A191D8}.Debug|Win32.Build.0 = Debug|Win32 - {3C12BA78-2F6A-4655-B6FF-E1BFF2A191D8}.Release|Win32.ActiveCfg = Release|Win32 - {3C12BA78-2F6A-4655-B6FF-E1BFF2A191D8}.Release|Win32.Build.0 = Release|Win32 - {5798E37E-0428-457E-A652-EE0A75130327}.Debug|Win32.ActiveCfg = Debug|Win32 - {5798E37E-0428-457E-A652-EE0A75130327}.Debug|Win32.Build.0 = Debug|Win32 - {5798E37E-0428-457E-A652-EE0A75130327}.Release|Win32.ActiveCfg = Release|Win32 - {5798E37E-0428-457E-A652-EE0A75130327}.Release|Win32.Build.0 = Release|Win32 - {3181E887-2183-4FB8-84CC-CA5B4D48BC71}.Debug|Win32.ActiveCfg = Debug|Win32 - {3181E887-2183-4FB8-84CC-CA5B4D48BC71}.Debug|Win32.Build.0 = Debug|Win32 - {3181E887-2183-4FB8-84CC-CA5B4D48BC71}.Release|Win32.ActiveCfg = Release|Win32 - {3181E887-2183-4FB8-84CC-CA5B4D48BC71}.Release|Win32.Build.0 = Release|Win32 - {9E20E276-1905-44AE-BC67-C1A1F3C42135}.Debug|Win32.ActiveCfg = Debug|Win32 - {9E20E276-1905-44AE-BC67-C1A1F3C42135}.Debug|Win32.Build.0 = Debug|Win32 - {9E20E276-1905-44AE-BC67-C1A1F3C42135}.Release|Win32.ActiveCfg = Release|Win32 - {9E20E276-1905-44AE-BC67-C1A1F3C42135}.Release|Win32.Build.0 = Release|Win32 - {2E487F50-84E4-404D-A7E1-F9FA4A72BC25}.Debug|Win32.ActiveCfg = Debug|Win32 - {2E487F50-84E4-404D-A7E1-F9FA4A72BC25}.Debug|Win32.Build.0 = Debug|Win32 - {2E487F50-84E4-404D-A7E1-F9FA4A72BC25}.Release|Win32.ActiveCfg = Release|Win32 - {2E487F50-84E4-404D-A7E1-F9FA4A72BC25}.Release|Win32.Build.0 = Release|Win32 - {2296FB66-3FA4-4136-8252-ABECEEAC2D70}.Debug|Win32.ActiveCfg = Debug|Win32 - {2296FB66-3FA4-4136-8252-ABECEEAC2D70}.Debug|Win32.Build.0 = Debug|Win32 - {2296FB66-3FA4-4136-8252-ABECEEAC2D70}.Release|Win32.ActiveCfg = Release|Win32 - {2296FB66-3FA4-4136-8252-ABECEEAC2D70}.Release|Win32.Build.0 = Release|Win32 - {2B2B8D6E-4A84-49DD-8291-46172FCE422A}.Debug|Win32.ActiveCfg = Debug|Win32 - {2B2B8D6E-4A84-49DD-8291-46172FCE422A}.Debug|Win32.Build.0 = Debug|Win32 - {2B2B8D6E-4A84-49DD-8291-46172FCE422A}.Release|Win32.ActiveCfg = Release|Win32 - {2B2B8D6E-4A84-49DD-8291-46172FCE422A}.Release|Win32.Build.0 = Release|Win32 - {0ECAF69B-08B4-414A-B822-BE8459E463D8}.Debug|Win32.ActiveCfg = Debug|Win32 - {0ECAF69B-08B4-414A-B822-BE8459E463D8}.Debug|Win32.Build.0 = Debug|Win32 - {0ECAF69B-08B4-414A-B822-BE8459E463D8}.Release|Win32.ActiveCfg = Release|Win32 - {0ECAF69B-08B4-414A-B822-BE8459E463D8}.Release|Win32.Build.0 = Release|Win32 - {25709A86-E6B8-4CDA-906C-02D935E05978}.Debug|Win32.ActiveCfg = Debug|Win32 - {25709A86-E6B8-4CDA-906C-02D935E05978}.Debug|Win32.Build.0 = Debug|Win32 - {25709A86-E6B8-4CDA-906C-02D935E05978}.Release|Win32.ActiveCfg = Release|Win32 - {25709A86-E6B8-4CDA-906C-02D935E05978}.Release|Win32.Build.0 = Release|Win32 - {EE8BFC38-7000-42F1-BBC3-17F19855918A}.Debug|Win32.ActiveCfg = Debug|Win32 - {EE8BFC38-7000-42F1-BBC3-17F19855918A}.Debug|Win32.Build.0 = Debug|Win32 - {EE8BFC38-7000-42F1-BBC3-17F19855918A}.Release|Win32.ActiveCfg = Release|Win32 - {EE8BFC38-7000-42F1-BBC3-17F19855918A}.Release|Win32.Build.0 = Release|Win32 - {3C656364-FAEA-41D2-B227-52187D3C2529}.Debug|Win32.ActiveCfg = Debug|Win32 - {3C656364-FAEA-41D2-B227-52187D3C2529}.Debug|Win32.Build.0 = Debug|Win32 - {3C656364-FAEA-41D2-B227-52187D3C2529}.Release|Win32.ActiveCfg = Release|Win32 - {3C656364-FAEA-41D2-B227-52187D3C2529}.Release|Win32.Build.0 = Release|Win32 - {80ED9927-27F9-473A-802C-FB10DEB5ECC6}.Debug|Win32.ActiveCfg = Debug|Win32 - {80ED9927-27F9-473A-802C-FB10DEB5ECC6}.Debug|Win32.Build.0 = Debug|Win32 - {80ED9927-27F9-473A-802C-FB10DEB5ECC6}.Release|Win32.ActiveCfg = Release|Win32 - {80ED9927-27F9-473A-802C-FB10DEB5ECC6}.Release|Win32.Build.0 = Release|Win32 - {80BE71D1-BEA3-4A5D-8F13-362D6364892D}.Debug|Win32.ActiveCfg = Debug|Win32 - {80BE71D1-BEA3-4A5D-8F13-362D6364892D}.Debug|Win32.Build.0 = Debug|Win32 - {80BE71D1-BEA3-4A5D-8F13-362D6364892D}.Release|Win32.ActiveCfg = Release|Win32 - {80BE71D1-BEA3-4A5D-8F13-362D6364892D}.Release|Win32.Build.0 = Release|Win32 - EndGlobalSection - GlobalSection(SolutionProperties) = preSolution - HideSolutionNode = FALSE - EndGlobalSection -EndGlobal diff --git a/TTXSamples/TTXSamples.v15.sln b/TTXSamples/TTXSamples.v15.sln deleted file mode 100644 index 7aaf8db4d..000000000 --- a/TTXSamples/TTXSamples.v15.sln +++ /dev/null @@ -1,111 +0,0 @@ -Microsoft Visual Studio Solution File, Format Version 12.00 -# Visual Studio 15 -VisualStudioVersion = 15.0.26228.4 -MinimumVisualStudioVersion = 10.0.40219.1 -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "TTXAlwaysOnTop", "TTXAlwaysOnTop\TTXAlwaysOnTop.v15.vcxproj", "{E86DDB2C-CC00-43D1-8A1A-4B042EC983D6}" -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "TTXResizeWin", "TTXResizeWin\TTXResizeWin.v15.vcxproj", "{11EF5960-4922-49DC-9E64-B0845FC7C88C}" -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "TTXResizeMenu", "TTXResizeMenu\TTXResizeMenu.v15.vcxproj", "{4EA6AEB6-9CCD-4E6D-9531-3F92184EBE67}" -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "TTXFixedWinSize", "TTXFixedWinSize\TTXFixedWinSize.v15.vcxproj", "{3C12BA78-2F6A-4655-B6FF-E1BFF2A191D8}" -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "TTXttyrec", "TTXttyrec\TTXttyrec.v15.vcxproj", "{5798E37E-0428-457E-A652-EE0A75130327}" -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "TTXttyplay", "TTXttyrec\TTXttyplay.v15.vcxproj", "{3181E887-2183-4FB8-84CC-CA5B4D48BC71}" -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "TTXtest", "ttxtest\TTXtest.v15.vcxproj", "{9E20E276-1905-44AE-BC67-C1A1F3C42135}" -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "TTXKcodeChange", "TTXKcodeChange\TTXKcodeChange.v15.vcxproj", "{2E487F50-84E4-404D-A7E1-F9FA4A72BC25}" -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "TTXViewMode", "TTXViewMode\TTXViewMode.v15.vcxproj", "{2296FB66-3FA4-4136-8252-ABECEEAC2D70}" -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "TTXCopyIniFile", "TTXCopyIniFile\TTXCopyIniFile.v15.vcxproj", "{2B2B8D6E-4A84-49DD-8291-46172FCE422A}" -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "TTXAdditionalTitle", "TTXAdditionalTitle\TTXAdditionalTitle.v15.vcxproj", "{0ECAF69B-08B4-414A-B822-BE8459E463D8}" -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "TTXCallSysMenu", "TTXCallSysMenu\TTXCallSysMenu.v15.vcxproj", "{25709A86-E6B8-4CDA-906C-02D935E05978}" -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "TTXCommandLineOpt", "TTXCommandLineOpt\TTXCommandLineOpt.v15.vcxproj", "{EE8BFC38-7000-42F1-BBC3-17F19855918A}" -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "TTXRecurringCommand", "TTXRecurringCommand\TTXRecurringCommand.v15.vcxproj", "{3C656364-FAEA-41D2-B227-52187D3C2529}" -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "TTXShowCommandLine", "TTXShowCommandLine\TTXShowCommandLine.v15.vcxproj", "{80ED9927-27F9-473A-802C-FB10DEB5ECC6}" -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "TTXOutputBuffering", "TTXOutputBuffering\TTXOutputBuffering.v15.vcxproj", "{80BE71D1-BEA3-4A5D-8F13-362D6364892D}" -EndProject -Global - GlobalSection(SolutionConfigurationPlatforms) = preSolution - Debug|Win32 = Debug|Win32 - Release|Win32 = Release|Win32 - EndGlobalSection - GlobalSection(ProjectConfigurationPlatforms) = postSolution - {E86DDB2C-CC00-43D1-8A1A-4B042EC983D6}.Debug|Win32.ActiveCfg = Debug|Win32 - {E86DDB2C-CC00-43D1-8A1A-4B042EC983D6}.Debug|Win32.Build.0 = Debug|Win32 - {E86DDB2C-CC00-43D1-8A1A-4B042EC983D6}.Release|Win32.ActiveCfg = Release|Win32 - {E86DDB2C-CC00-43D1-8A1A-4B042EC983D6}.Release|Win32.Build.0 = Release|Win32 - {11EF5960-4922-49DC-9E64-B0845FC7C88C}.Debug|Win32.ActiveCfg = Debug|Win32 - {11EF5960-4922-49DC-9E64-B0845FC7C88C}.Debug|Win32.Build.0 = Debug|Win32 - {11EF5960-4922-49DC-9E64-B0845FC7C88C}.Release|Win32.ActiveCfg = Release|Win32 - {11EF5960-4922-49DC-9E64-B0845FC7C88C}.Release|Win32.Build.0 = Release|Win32 - {4EA6AEB6-9CCD-4E6D-9531-3F92184EBE67}.Debug|Win32.ActiveCfg = Debug|Win32 - {4EA6AEB6-9CCD-4E6D-9531-3F92184EBE67}.Debug|Win32.Build.0 = Debug|Win32 - {4EA6AEB6-9CCD-4E6D-9531-3F92184EBE67}.Release|Win32.ActiveCfg = Release|Win32 - {4EA6AEB6-9CCD-4E6D-9531-3F92184EBE67}.Release|Win32.Build.0 = Release|Win32 - {3C12BA78-2F6A-4655-B6FF-E1BFF2A191D8}.Debug|Win32.ActiveCfg = Debug|Win32 - {3C12BA78-2F6A-4655-B6FF-E1BFF2A191D8}.Debug|Win32.Build.0 = Debug|Win32 - {3C12BA78-2F6A-4655-B6FF-E1BFF2A191D8}.Release|Win32.ActiveCfg = Release|Win32 - {3C12BA78-2F6A-4655-B6FF-E1BFF2A191D8}.Release|Win32.Build.0 = Release|Win32 - {5798E37E-0428-457E-A652-EE0A75130327}.Debug|Win32.ActiveCfg = Debug|Win32 - {5798E37E-0428-457E-A652-EE0A75130327}.Debug|Win32.Build.0 = Debug|Win32 - {5798E37E-0428-457E-A652-EE0A75130327}.Release|Win32.ActiveCfg = Release|Win32 - {5798E37E-0428-457E-A652-EE0A75130327}.Release|Win32.Build.0 = Release|Win32 - {3181E887-2183-4FB8-84CC-CA5B4D48BC71}.Debug|Win32.ActiveCfg = Debug|Win32 - {3181E887-2183-4FB8-84CC-CA5B4D48BC71}.Debug|Win32.Build.0 = Debug|Win32 - {3181E887-2183-4FB8-84CC-CA5B4D48BC71}.Release|Win32.ActiveCfg = Release|Win32 - {3181E887-2183-4FB8-84CC-CA5B4D48BC71}.Release|Win32.Build.0 = Release|Win32 - {9E20E276-1905-44AE-BC67-C1A1F3C42135}.Debug|Win32.ActiveCfg = Debug|Win32 - {9E20E276-1905-44AE-BC67-C1A1F3C42135}.Debug|Win32.Build.0 = Debug|Win32 - {9E20E276-1905-44AE-BC67-C1A1F3C42135}.Release|Win32.ActiveCfg = Release|Win32 - {9E20E276-1905-44AE-BC67-C1A1F3C42135}.Release|Win32.Build.0 = Release|Win32 - {2E487F50-84E4-404D-A7E1-F9FA4A72BC25}.Debug|Win32.ActiveCfg = Debug|Win32 - {2E487F50-84E4-404D-A7E1-F9FA4A72BC25}.Debug|Win32.Build.0 = Debug|Win32 - {2E487F50-84E4-404D-A7E1-F9FA4A72BC25}.Release|Win32.ActiveCfg = Release|Win32 - {2E487F50-84E4-404D-A7E1-F9FA4A72BC25}.Release|Win32.Build.0 = Release|Win32 - {2296FB66-3FA4-4136-8252-ABECEEAC2D70}.Debug|Win32.ActiveCfg = Debug|Win32 - {2296FB66-3FA4-4136-8252-ABECEEAC2D70}.Debug|Win32.Build.0 = Debug|Win32 - {2296FB66-3FA4-4136-8252-ABECEEAC2D70}.Release|Win32.ActiveCfg = Release|Win32 - {2296FB66-3FA4-4136-8252-ABECEEAC2D70}.Release|Win32.Build.0 = Release|Win32 - {2B2B8D6E-4A84-49DD-8291-46172FCE422A}.Debug|Win32.ActiveCfg = Debug|Win32 - {2B2B8D6E-4A84-49DD-8291-46172FCE422A}.Debug|Win32.Build.0 = Debug|Win32 - {2B2B8D6E-4A84-49DD-8291-46172FCE422A}.Release|Win32.ActiveCfg = Release|Win32 - {2B2B8D6E-4A84-49DD-8291-46172FCE422A}.Release|Win32.Build.0 = Release|Win32 - {0ECAF69B-08B4-414A-B822-BE8459E463D8}.Debug|Win32.ActiveCfg = Debug|Win32 - {0ECAF69B-08B4-414A-B822-BE8459E463D8}.Debug|Win32.Build.0 = Debug|Win32 - {0ECAF69B-08B4-414A-B822-BE8459E463D8}.Release|Win32.ActiveCfg = Release|Win32 - {0ECAF69B-08B4-414A-B822-BE8459E463D8}.Release|Win32.Build.0 = Release|Win32 - {25709A86-E6B8-4CDA-906C-02D935E05978}.Debug|Win32.ActiveCfg = Debug|Win32 - {25709A86-E6B8-4CDA-906C-02D935E05978}.Debug|Win32.Build.0 = Debug|Win32 - {25709A86-E6B8-4CDA-906C-02D935E05978}.Release|Win32.ActiveCfg = Release|Win32 - {25709A86-E6B8-4CDA-906C-02D935E05978}.Release|Win32.Build.0 = Release|Win32 - {EE8BFC38-7000-42F1-BBC3-17F19855918A}.Debug|Win32.ActiveCfg = Debug|Win32 - {EE8BFC38-7000-42F1-BBC3-17F19855918A}.Debug|Win32.Build.0 = Debug|Win32 - {EE8BFC38-7000-42F1-BBC3-17F19855918A}.Release|Win32.ActiveCfg = Release|Win32 - {EE8BFC38-7000-42F1-BBC3-17F19855918A}.Release|Win32.Build.0 = Release|Win32 - {3C656364-FAEA-41D2-B227-52187D3C2529}.Debug|Win32.ActiveCfg = Debug|Win32 - {3C656364-FAEA-41D2-B227-52187D3C2529}.Debug|Win32.Build.0 = Debug|Win32 - {3C656364-FAEA-41D2-B227-52187D3C2529}.Release|Win32.ActiveCfg = Release|Win32 - {3C656364-FAEA-41D2-B227-52187D3C2529}.Release|Win32.Build.0 = Release|Win32 - {80ED9927-27F9-473A-802C-FB10DEB5ECC6}.Debug|Win32.ActiveCfg = Debug|Win32 - {80ED9927-27F9-473A-802C-FB10DEB5ECC6}.Debug|Win32.Build.0 = Debug|Win32 - {80ED9927-27F9-473A-802C-FB10DEB5ECC6}.Release|Win32.ActiveCfg = Release|Win32 - {80ED9927-27F9-473A-802C-FB10DEB5ECC6}.Release|Win32.Build.0 = Release|Win32 - {80BE71D1-BEA3-4A5D-8F13-362D6364892D}.Debug|Win32.ActiveCfg = Debug|Win32 - {80BE71D1-BEA3-4A5D-8F13-362D6364892D}.Debug|Win32.Build.0 = Debug|Win32 - {80BE71D1-BEA3-4A5D-8F13-362D6364892D}.Release|Win32.ActiveCfg = Release|Win32 - {80BE71D1-BEA3-4A5D-8F13-362D6364892D}.Release|Win32.Build.0 = Release|Win32 - EndGlobalSection - GlobalSection(SolutionProperties) = preSolution - HideSolutionNode = FALSE - EndGlobalSection -EndGlobal diff --git a/TTXSamples/TTXSamples.v16.sln b/TTXSamples/TTXSamples.v16.sln new file mode 100644 index 000000000..b9e55f846 --- /dev/null +++ b/TTXSamples/TTXSamples.v16.sln @@ -0,0 +1,120 @@ +Microsoft Visual Studio Solution File, Format Version 12.00 +# Visual Studio Version 16 +VisualStudioVersion = 16.0.28803.156 +MinimumVisualStudioVersion = 10.0.40219.1 +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "TTXAlwaysOnTop", "TTXAlwaysOnTop\TTXAlwaysOnTop.v16.vcxproj", "{E86DDB2C-CC00-43D1-8A1A-4B042EC983D6}" +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "TTXResizeWin", "TTXResizeWin\TTXResizeWin.v16.vcxproj", "{11EF5960-4922-49DC-9E64-B0845FC7C88C}" +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "TTXResizeMenu", "TTXResizeMenu\TTXResizeMenu.v16.vcxproj", "{4EA6AEB6-9CCD-4E6D-9531-3F92184EBE67}" +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "TTXFixedWinSize", "TTXFixedWinSize\TTXFixedWinSize.v16.vcxproj", "{3C12BA78-2F6A-4655-B6FF-E1BFF2A191D8}" +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "TTXttyrec", "TTXttyrec\TTXttyrec.v16.vcxproj", "{5798E37E-0428-457E-A652-EE0A75130327}" +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "TTXttyplay", "TTXttyrec\TTXttyplay.v16.vcxproj", "{3181E887-2183-4FB8-84CC-CA5B4D48BC71}" +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "TTXtest", "ttxtest\TTXtest.v16.vcxproj", "{9E20E276-1905-44AE-BC67-C1A1F3C42135}" +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "TTXKcodeChange", "TTXKcodeChange\TTXKcodeChange.v16.vcxproj", "{2E487F50-84E4-404D-A7E1-F9FA4A72BC25}" +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "TTXViewMode", "TTXViewMode\TTXViewMode.v16.vcxproj", "{2296FB66-3FA4-4136-8252-ABECEEAC2D70}" +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "TTXCopyIniFile", "TTXCopyIniFile\TTXCopyIniFile.v16.vcxproj", "{2B2B8D6E-4A84-49DD-8291-46172FCE422A}" +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "TTXAdditionalTitle", "TTXAdditionalTitle\TTXAdditionalTitle.v16.vcxproj", "{0ECAF69B-08B4-414A-B822-BE8459E463D8}" +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "TTXCallSysMenu", "TTXCallSysMenu\TTXCallSysMenu.v16.vcxproj", "{25709A86-E6B8-4CDA-906C-02D935E05978}" +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "TTXCommandLineOpt", "TTXCommandLineOpt\TTXCommandLineOpt.v16.vcxproj", "{EE8BFC38-7000-42F1-BBC3-17F19855918A}" +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "TTXRecurringCommand", "TTXRecurringCommand\TTXRecurringCommand.v16.vcxproj", "{3C656364-FAEA-41D2-B227-52187D3C2529}" +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "TTXShowCommandLine", "TTXShowCommandLine\TTXShowCommandLine.v16.vcxproj", "{80ED9927-27F9-473A-802C-FB10DEB5ECC6}" +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "TTXOutputBuffering", "TTXOutputBuffering\TTXOutputBuffering.v16.vcxproj", "{80BE71D1-BEA3-4A5D-8F13-362D6364892D}" +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "TTXCheckUpdate", "TTXCheckUpdate\TTXCheckUpdate.v16.vcxproj", "{937DFA65-5709-4643-B778-482C15DEC581}" +EndProject +Global + GlobalSection(SolutionConfigurationPlatforms) = preSolution + Debug|Win32 = Debug|Win32 + Release|Win32 = Release|Win32 + EndGlobalSection + GlobalSection(ProjectConfigurationPlatforms) = postSolution + {E86DDB2C-CC00-43D1-8A1A-4B042EC983D6}.Debug|Win32.ActiveCfg = Debug|Win32 + {E86DDB2C-CC00-43D1-8A1A-4B042EC983D6}.Debug|Win32.Build.0 = Debug|Win32 + {E86DDB2C-CC00-43D1-8A1A-4B042EC983D6}.Release|Win32.ActiveCfg = Release|Win32 + {E86DDB2C-CC00-43D1-8A1A-4B042EC983D6}.Release|Win32.Build.0 = Release|Win32 + {11EF5960-4922-49DC-9E64-B0845FC7C88C}.Debug|Win32.ActiveCfg = Debug|Win32 + {11EF5960-4922-49DC-9E64-B0845FC7C88C}.Debug|Win32.Build.0 = Debug|Win32 + {11EF5960-4922-49DC-9E64-B0845FC7C88C}.Release|Win32.ActiveCfg = Release|Win32 + {11EF5960-4922-49DC-9E64-B0845FC7C88C}.Release|Win32.Build.0 = Release|Win32 + {4EA6AEB6-9CCD-4E6D-9531-3F92184EBE67}.Debug|Win32.ActiveCfg = Debug|Win32 + {4EA6AEB6-9CCD-4E6D-9531-3F92184EBE67}.Debug|Win32.Build.0 = Debug|Win32 + {4EA6AEB6-9CCD-4E6D-9531-3F92184EBE67}.Release|Win32.ActiveCfg = Release|Win32 + {4EA6AEB6-9CCD-4E6D-9531-3F92184EBE67}.Release|Win32.Build.0 = Release|Win32 + {3C12BA78-2F6A-4655-B6FF-E1BFF2A191D8}.Debug|Win32.ActiveCfg = Debug|Win32 + {3C12BA78-2F6A-4655-B6FF-E1BFF2A191D8}.Debug|Win32.Build.0 = Debug|Win32 + {3C12BA78-2F6A-4655-B6FF-E1BFF2A191D8}.Release|Win32.ActiveCfg = Release|Win32 + {3C12BA78-2F6A-4655-B6FF-E1BFF2A191D8}.Release|Win32.Build.0 = Release|Win32 + {5798E37E-0428-457E-A652-EE0A75130327}.Debug|Win32.ActiveCfg = Debug|Win32 + {5798E37E-0428-457E-A652-EE0A75130327}.Debug|Win32.Build.0 = Debug|Win32 + {5798E37E-0428-457E-A652-EE0A75130327}.Release|Win32.ActiveCfg = Release|Win32 + {5798E37E-0428-457E-A652-EE0A75130327}.Release|Win32.Build.0 = Release|Win32 + {3181E887-2183-4FB8-84CC-CA5B4D48BC71}.Debug|Win32.ActiveCfg = Debug|Win32 + {3181E887-2183-4FB8-84CC-CA5B4D48BC71}.Debug|Win32.Build.0 = Debug|Win32 + {3181E887-2183-4FB8-84CC-CA5B4D48BC71}.Release|Win32.ActiveCfg = Release|Win32 + {3181E887-2183-4FB8-84CC-CA5B4D48BC71}.Release|Win32.Build.0 = Release|Win32 + {9E20E276-1905-44AE-BC67-C1A1F3C42135}.Debug|Win32.ActiveCfg = Debug|Win32 + {9E20E276-1905-44AE-BC67-C1A1F3C42135}.Debug|Win32.Build.0 = Debug|Win32 + {9E20E276-1905-44AE-BC67-C1A1F3C42135}.Release|Win32.ActiveCfg = Release|Win32 + {9E20E276-1905-44AE-BC67-C1A1F3C42135}.Release|Win32.Build.0 = Release|Win32 + {2E487F50-84E4-404D-A7E1-F9FA4A72BC25}.Debug|Win32.ActiveCfg = Debug|Win32 + {2E487F50-84E4-404D-A7E1-F9FA4A72BC25}.Debug|Win32.Build.0 = Debug|Win32 + {2E487F50-84E4-404D-A7E1-F9FA4A72BC25}.Release|Win32.ActiveCfg = Release|Win32 + {2E487F50-84E4-404D-A7E1-F9FA4A72BC25}.Release|Win32.Build.0 = Release|Win32 + {2296FB66-3FA4-4136-8252-ABECEEAC2D70}.Debug|Win32.ActiveCfg = Debug|Win32 + {2296FB66-3FA4-4136-8252-ABECEEAC2D70}.Debug|Win32.Build.0 = Debug|Win32 + {2296FB66-3FA4-4136-8252-ABECEEAC2D70}.Release|Win32.ActiveCfg = Release|Win32 + {2296FB66-3FA4-4136-8252-ABECEEAC2D70}.Release|Win32.Build.0 = Release|Win32 + {2B2B8D6E-4A84-49DD-8291-46172FCE422A}.Debug|Win32.ActiveCfg = Debug|Win32 + {2B2B8D6E-4A84-49DD-8291-46172FCE422A}.Debug|Win32.Build.0 = Debug|Win32 + {2B2B8D6E-4A84-49DD-8291-46172FCE422A}.Release|Win32.ActiveCfg = Release|Win32 + {2B2B8D6E-4A84-49DD-8291-46172FCE422A}.Release|Win32.Build.0 = Release|Win32 + {0ECAF69B-08B4-414A-B822-BE8459E463D8}.Debug|Win32.ActiveCfg = Debug|Win32 + {0ECAF69B-08B4-414A-B822-BE8459E463D8}.Debug|Win32.Build.0 = Debug|Win32 + {0ECAF69B-08B4-414A-B822-BE8459E463D8}.Release|Win32.ActiveCfg = Release|Win32 + {0ECAF69B-08B4-414A-B822-BE8459E463D8}.Release|Win32.Build.0 = Release|Win32 + {25709A86-E6B8-4CDA-906C-02D935E05978}.Debug|Win32.ActiveCfg = Debug|Win32 + {25709A86-E6B8-4CDA-906C-02D935E05978}.Debug|Win32.Build.0 = Debug|Win32 + {25709A86-E6B8-4CDA-906C-02D935E05978}.Release|Win32.ActiveCfg = Release|Win32 + {25709A86-E6B8-4CDA-906C-02D935E05978}.Release|Win32.Build.0 = Release|Win32 + {EE8BFC38-7000-42F1-BBC3-17F19855918A}.Debug|Win32.ActiveCfg = Debug|Win32 + {EE8BFC38-7000-42F1-BBC3-17F19855918A}.Debug|Win32.Build.0 = Debug|Win32 + {EE8BFC38-7000-42F1-BBC3-17F19855918A}.Release|Win32.ActiveCfg = Release|Win32 + {EE8BFC38-7000-42F1-BBC3-17F19855918A}.Release|Win32.Build.0 = Release|Win32 + {3C656364-FAEA-41D2-B227-52187D3C2529}.Debug|Win32.ActiveCfg = Debug|Win32 + {3C656364-FAEA-41D2-B227-52187D3C2529}.Debug|Win32.Build.0 = Debug|Win32 + {3C656364-FAEA-41D2-B227-52187D3C2529}.Release|Win32.ActiveCfg = Release|Win32 + {3C656364-FAEA-41D2-B227-52187D3C2529}.Release|Win32.Build.0 = Release|Win32 + {80ED9927-27F9-473A-802C-FB10DEB5ECC6}.Debug|Win32.ActiveCfg = Debug|Win32 + {80ED9927-27F9-473A-802C-FB10DEB5ECC6}.Debug|Win32.Build.0 = Debug|Win32 + {80ED9927-27F9-473A-802C-FB10DEB5ECC6}.Release|Win32.ActiveCfg = Release|Win32 + {80ED9927-27F9-473A-802C-FB10DEB5ECC6}.Release|Win32.Build.0 = Release|Win32 + {80BE71D1-BEA3-4A5D-8F13-362D6364892D}.Debug|Win32.ActiveCfg = Debug|Win32 + {80BE71D1-BEA3-4A5D-8F13-362D6364892D}.Debug|Win32.Build.0 = Debug|Win32 + {80BE71D1-BEA3-4A5D-8F13-362D6364892D}.Release|Win32.ActiveCfg = Release|Win32 + {80BE71D1-BEA3-4A5D-8F13-362D6364892D}.Release|Win32.Build.0 = Release|Win32 + {937DFA65-5709-4643-B778-482C15DEC581}.Debug|Win32.ActiveCfg = Debug|Win32 + {937DFA65-5709-4643-B778-482C15DEC581}.Debug|Win32.Build.0 = Debug|Win32 + {937DFA65-5709-4643-B778-482C15DEC581}.Release|Win32.ActiveCfg = Release|Win32 + {937DFA65-5709-4643-B778-482C15DEC581}.Release|Win32.Build.0 = Release|Win32 + EndGlobalSection + GlobalSection(SolutionProperties) = preSolution + HideSolutionNode = FALSE + EndGlobalSection + GlobalSection(ExtensibilityGlobals) = postSolution + SolutionGuid = {8A63CAA2-D300-4EB4-B13E-75841A991EFE} + EndGlobalSection +EndGlobal diff --git a/TTXSamples/TTXSamples.v17.sln b/TTXSamples/TTXSamples.v17.sln new file mode 100644 index 000000000..26c829290 --- /dev/null +++ b/TTXSamples/TTXSamples.v17.sln @@ -0,0 +1,119 @@ + +Microsoft Visual Studio Solution File, Format Version 12.00 +# Visual Studio Version 17 +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "TTXAlwaysOnTop", "TTXAlwaysOnTop\TTXAlwaysOnTop.v17.vcxproj", "{E86DDB2C-CC00-43D1-8A1A-4B042EC983D6}" +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "TTXResizeWin", "TTXResizeWin\TTXResizeWin.v17.vcxproj", "{11EF5960-4922-49DC-9E64-B0845FC7C88C}" +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "TTXResizeMenu", "TTXResizeMenu\TTXResizeMenu.v17.vcxproj", "{4EA6AEB6-9CCD-4E6D-9531-3F92184EBE67}" +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "TTXFixedWinSize", "TTXFixedWinSize\TTXFixedWinSize.v17.vcxproj", "{3C12BA78-2F6A-4655-B6FF-E1BFF2A191D8}" +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "TTXttyrec", "TTXttyrec\TTXttyrec.v17.vcxproj", "{5798E37E-0428-457E-A652-EE0A75130327}" +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "TTXttyplay", "TTXttyrec\TTXttyplay.v17.vcxproj", "{3181E887-2183-4FB8-84CC-CA5B4D48BC71}" +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "TTXtest", "ttxtest\TTXtest.v17.vcxproj", "{9E20E276-1905-44AE-BC67-C1A1F3C42135}" +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "TTXKcodeChange", "TTXKcodeChange\TTXKcodeChange.v17.vcxproj", "{2E487F50-84E4-404D-A7E1-F9FA4A72BC25}" +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "TTXViewMode", "TTXViewMode\TTXViewMode.v17.vcxproj", "{2296FB66-3FA4-4136-8252-ABECEEAC2D70}" +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "TTXCopyIniFile", "TTXCopyIniFile\TTXCopyIniFile.v17.vcxproj", "{2B2B8D6E-4A84-49DD-8291-46172FCE422A}" +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "TTXAdditionalTitle", "TTXAdditionalTitle\TTXAdditionalTitle.v17.vcxproj", "{0ECAF69B-08B4-414A-B822-BE8459E463D8}" +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "TTXCallSysMenu", "TTXCallSysMenu\TTXCallSysMenu.v17.vcxproj", "{25709A86-E6B8-4CDA-906C-02D935E05978}" +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "TTXCommandLineOpt", "TTXCommandLineOpt\TTXCommandLineOpt.v17.vcxproj", "{EE8BFC38-7000-42F1-BBC3-17F19855918A}" +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "TTXRecurringCommand", "TTXRecurringCommand\TTXRecurringCommand.v17.vcxproj", "{3C656364-FAEA-41D2-B227-52187D3C2529}" +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "TTXShowCommandLine", "TTXShowCommandLine\TTXShowCommandLine.v17.vcxproj", "{80ED9927-27F9-473A-802C-FB10DEB5ECC6}" +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "TTXOutputBuffering", "TTXOutputBuffering\TTXOutputBuffering.v17.vcxproj", "{80BE71D1-BEA3-4A5D-8F13-362D6364892D}" +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "TTXCheckUpdate", "TTXCheckUpdate\TTXCheckUpdate.v17.vcxproj", "{937DFA65-5709-4643-B778-482C15DEC581}" +EndProject +Global + GlobalSection(SolutionConfigurationPlatforms) = preSolution + Debug|Win32 = Debug|Win32 + Release|Win32 = Release|Win32 + EndGlobalSection + GlobalSection(ProjectConfigurationPlatforms) = postSolution + {E86DDB2C-CC00-43D1-8A1A-4B042EC983D6}.Debug|Win32.ActiveCfg = Debug|Win32 + {E86DDB2C-CC00-43D1-8A1A-4B042EC983D6}.Debug|Win32.Build.0 = Debug|Win32 + {E86DDB2C-CC00-43D1-8A1A-4B042EC983D6}.Release|Win32.ActiveCfg = Release|Win32 + {E86DDB2C-CC00-43D1-8A1A-4B042EC983D6}.Release|Win32.Build.0 = Release|Win32 + {11EF5960-4922-49DC-9E64-B0845FC7C88C}.Debug|Win32.ActiveCfg = Debug|Win32 + {11EF5960-4922-49DC-9E64-B0845FC7C88C}.Debug|Win32.Build.0 = Debug|Win32 + {11EF5960-4922-49DC-9E64-B0845FC7C88C}.Release|Win32.ActiveCfg = Release|Win32 + {11EF5960-4922-49DC-9E64-B0845FC7C88C}.Release|Win32.Build.0 = Release|Win32 + {4EA6AEB6-9CCD-4E6D-9531-3F92184EBE67}.Debug|Win32.ActiveCfg = Debug|Win32 + {4EA6AEB6-9CCD-4E6D-9531-3F92184EBE67}.Debug|Win32.Build.0 = Debug|Win32 + {4EA6AEB6-9CCD-4E6D-9531-3F92184EBE67}.Release|Win32.ActiveCfg = Release|Win32 + {4EA6AEB6-9CCD-4E6D-9531-3F92184EBE67}.Release|Win32.Build.0 = Release|Win32 + {3C12BA78-2F6A-4655-B6FF-E1BFF2A191D8}.Debug|Win32.ActiveCfg = Debug|Win32 + {3C12BA78-2F6A-4655-B6FF-E1BFF2A191D8}.Debug|Win32.Build.0 = Debug|Win32 + {3C12BA78-2F6A-4655-B6FF-E1BFF2A191D8}.Release|Win32.ActiveCfg = Release|Win32 + {3C12BA78-2F6A-4655-B6FF-E1BFF2A191D8}.Release|Win32.Build.0 = Release|Win32 + {5798E37E-0428-457E-A652-EE0A75130327}.Debug|Win32.ActiveCfg = Debug|Win32 + {5798E37E-0428-457E-A652-EE0A75130327}.Debug|Win32.Build.0 = Debug|Win32 + {5798E37E-0428-457E-A652-EE0A75130327}.Release|Win32.ActiveCfg = Release|Win32 + {5798E37E-0428-457E-A652-EE0A75130327}.Release|Win32.Build.0 = Release|Win32 + {3181E887-2183-4FB8-84CC-CA5B4D48BC71}.Debug|Win32.ActiveCfg = Debug|Win32 + {3181E887-2183-4FB8-84CC-CA5B4D48BC71}.Debug|Win32.Build.0 = Debug|Win32 + {3181E887-2183-4FB8-84CC-CA5B4D48BC71}.Release|Win32.ActiveCfg = Release|Win32 + {3181E887-2183-4FB8-84CC-CA5B4D48BC71}.Release|Win32.Build.0 = Release|Win32 + {9E20E276-1905-44AE-BC67-C1A1F3C42135}.Debug|Win32.ActiveCfg = Debug|Win32 + {9E20E276-1905-44AE-BC67-C1A1F3C42135}.Debug|Win32.Build.0 = Debug|Win32 + {9E20E276-1905-44AE-BC67-C1A1F3C42135}.Release|Win32.ActiveCfg = Release|Win32 + {9E20E276-1905-44AE-BC67-C1A1F3C42135}.Release|Win32.Build.0 = Release|Win32 + {2E487F50-84E4-404D-A7E1-F9FA4A72BC25}.Debug|Win32.ActiveCfg = Debug|Win32 + {2E487F50-84E4-404D-A7E1-F9FA4A72BC25}.Debug|Win32.Build.0 = Debug|Win32 + {2E487F50-84E4-404D-A7E1-F9FA4A72BC25}.Release|Win32.ActiveCfg = Release|Win32 + {2E487F50-84E4-404D-A7E1-F9FA4A72BC25}.Release|Win32.Build.0 = Release|Win32 + {2296FB66-3FA4-4136-8252-ABECEEAC2D70}.Debug|Win32.ActiveCfg = Debug|Win32 + {2296FB66-3FA4-4136-8252-ABECEEAC2D70}.Debug|Win32.Build.0 = Debug|Win32 + {2296FB66-3FA4-4136-8252-ABECEEAC2D70}.Release|Win32.ActiveCfg = Release|Win32 + {2296FB66-3FA4-4136-8252-ABECEEAC2D70}.Release|Win32.Build.0 = Release|Win32 + {2B2B8D6E-4A84-49DD-8291-46172FCE422A}.Debug|Win32.ActiveCfg = Debug|Win32 + {2B2B8D6E-4A84-49DD-8291-46172FCE422A}.Debug|Win32.Build.0 = Debug|Win32 + {2B2B8D6E-4A84-49DD-8291-46172FCE422A}.Release|Win32.ActiveCfg = Release|Win32 + {2B2B8D6E-4A84-49DD-8291-46172FCE422A}.Release|Win32.Build.0 = Release|Win32 + {0ECAF69B-08B4-414A-B822-BE8459E463D8}.Debug|Win32.ActiveCfg = Debug|Win32 + {0ECAF69B-08B4-414A-B822-BE8459E463D8}.Debug|Win32.Build.0 = Debug|Win32 + {0ECAF69B-08B4-414A-B822-BE8459E463D8}.Release|Win32.ActiveCfg = Release|Win32 + {0ECAF69B-08B4-414A-B822-BE8459E463D8}.Release|Win32.Build.0 = Release|Win32 + {25709A86-E6B8-4CDA-906C-02D935E05978}.Debug|Win32.ActiveCfg = Debug|Win32 + {25709A86-E6B8-4CDA-906C-02D935E05978}.Debug|Win32.Build.0 = Debug|Win32 + {25709A86-E6B8-4CDA-906C-02D935E05978}.Release|Win32.ActiveCfg = Release|Win32 + {25709A86-E6B8-4CDA-906C-02D935E05978}.Release|Win32.Build.0 = Release|Win32 + {EE8BFC38-7000-42F1-BBC3-17F19855918A}.Debug|Win32.ActiveCfg = Debug|Win32 + {EE8BFC38-7000-42F1-BBC3-17F19855918A}.Debug|Win32.Build.0 = Debug|Win32 + {EE8BFC38-7000-42F1-BBC3-17F19855918A}.Release|Win32.ActiveCfg = Release|Win32 + {EE8BFC38-7000-42F1-BBC3-17F19855918A}.Release|Win32.Build.0 = Release|Win32 + {3C656364-FAEA-41D2-B227-52187D3C2529}.Debug|Win32.ActiveCfg = Debug|Win32 + {3C656364-FAEA-41D2-B227-52187D3C2529}.Debug|Win32.Build.0 = Debug|Win32 + {3C656364-FAEA-41D2-B227-52187D3C2529}.Release|Win32.ActiveCfg = Release|Win32 + {3C656364-FAEA-41D2-B227-52187D3C2529}.Release|Win32.Build.0 = Release|Win32 + {80ED9927-27F9-473A-802C-FB10DEB5ECC6}.Debug|Win32.ActiveCfg = Debug|Win32 + {80ED9927-27F9-473A-802C-FB10DEB5ECC6}.Debug|Win32.Build.0 = Debug|Win32 + {80ED9927-27F9-473A-802C-FB10DEB5ECC6}.Release|Win32.ActiveCfg = Release|Win32 + {80ED9927-27F9-473A-802C-FB10DEB5ECC6}.Release|Win32.Build.0 = Release|Win32 + {80BE71D1-BEA3-4A5D-8F13-362D6364892D}.Debug|Win32.ActiveCfg = Debug|Win32 + {80BE71D1-BEA3-4A5D-8F13-362D6364892D}.Debug|Win32.Build.0 = Debug|Win32 + {80BE71D1-BEA3-4A5D-8F13-362D6364892D}.Release|Win32.ActiveCfg = Release|Win32 + {80BE71D1-BEA3-4A5D-8F13-362D6364892D}.Release|Win32.Build.0 = Release|Win32 + {937DFA65-5709-4643-B778-482C15DEC581}.Debug|Win32.ActiveCfg = Debug|Win32 + {937DFA65-5709-4643-B778-482C15DEC581}.Debug|Win32.Build.0 = Debug|Win32 + {937DFA65-5709-4643-B778-482C15DEC581}.Release|Win32.ActiveCfg = Release|Win32 + {937DFA65-5709-4643-B778-482C15DEC581}.Release|Win32.Build.0 = Release|Win32 + EndGlobalSection + GlobalSection(SolutionProperties) = preSolution + HideSolutionNode = FALSE + EndGlobalSection + GlobalSection(ExtensibilityGlobals) = postSolution + SolutionGuid = {8A63CAA2-D300-4EB4-B13E-75841A991EFE} + EndGlobalSection +EndGlobal diff --git a/TTXSamples/TTXSamples.v9.sln b/TTXSamples/TTXSamples.v9.sln deleted file mode 100644 index 6412a52ac..000000000 --- a/TTXSamples/TTXSamples.v9.sln +++ /dev/null @@ -1,109 +0,0 @@ -Microsoft Visual Studio Solution File, Format Version 10.00 -# Visual Studio 2008 -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "TTXAlwaysOnTop", "TTXAlwaysOnTop\TTXAlwaysOnTop.v9.vcproj", "{E86DDB2C-CC00-43D1-8A1A-4B042EC983D6}" -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "TTXResizeWin", "TTXResizeWin\TTXResizeWin.v9.vcproj", "{11EF5960-4922-49DC-9E64-B0845FC7C88C}" -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "TTXResizeMenu", "TTXResizeMenu\TTXResizeMenu.v9.vcproj", "{4EA6AEB6-9CCD-4E6D-9531-3F92184EBE67}" -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "TTXFixedWinSize", "TTXFixedWinSize\TTXFixedWinSize.v9.vcproj", "{3C12BA78-2F6A-4655-B6FF-E1BFF2A191D8}" -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "TTXttyrec", "TTXttyrec\TTXttyrec.v9.vcproj", "{5798E37E-0428-457E-A652-EE0A75130327}" -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "TTXttyplay", "TTXttyrec\TTXttyplay.v9.vcproj", "{3181E887-2183-4FB8-84CC-CA5B4D48BC71}" -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "TTXtest", "ttxtest\TTXtest.v9.vcproj", "{9E20E276-1905-44AE-BC67-C1A1F3C42135}" -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "TTXKcodeChange", "TTXKcodeChange\TTXKcodeChange.v9.vcproj", "{2E487F50-84E4-404D-A7E1-F9FA4A72BC25}" -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "TTXViewMode", "TTXViewMode\TTXViewMode.v9.vcproj", "{2296FB66-3FA4-4136-8252-ABECEEAC2D70}" -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "TTXCopyIniFile", "TTXCopyIniFile\TTXCopyIniFile.v9.vcproj", "{2B2B8D6E-4A84-49DD-8291-46172FCE422A}" -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "TTXAdditionalTitle", "TTXAdditionalTitle\TTXAdditionalTitle.v9.vcproj", "{0ECAF69B-08B4-414A-B822-BE8459E463D8}" -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "TTXCallSysMenu", "TTXCallSysMenu\TTXCallSysMenu.v9.vcproj", "{25709A86-E6B8-4CDA-906C-02D935E05978}" -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "TTXCommandLineOpt", "TTXCommandLineOpt\TTXCommandLineOpt.v9.vcproj", "{EE8BFC38-7000-42F1-BBC3-17F19855918A}" -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "TTXRecurringCommand", "TTXRecurringCommand\TTXRecurringCommand.v9.vcproj", "{3C656364-FAEA-41D2-B227-52187D3C2529}" -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "TTXShowCommandLine", "TTXShowCommandLine\TTXShowCommandLine.v9.vcproj", "{80ED9927-27F9-473A-802C-FB10DEB5ECC6}" -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "TTXOutputBuffering", "TTXOutputBuffering\TTXOutputBuffering.v9.vcproj", "{80BE71D1-BEA3-4A5D-8F13-362D6364892D}" -EndProject -Global - GlobalSection(SolutionConfigurationPlatforms) = preSolution - Debug|Win32 = Debug|Win32 - Release|Win32 = Release|Win32 - EndGlobalSection - GlobalSection(ProjectConfigurationPlatforms) = postSolution - {E86DDB2C-CC00-43D1-8A1A-4B042EC983D6}.Debug|Win32.ActiveCfg = Debug|Win32 - {E86DDB2C-CC00-43D1-8A1A-4B042EC983D6}.Debug|Win32.Build.0 = Debug|Win32 - {E86DDB2C-CC00-43D1-8A1A-4B042EC983D6}.Release|Win32.ActiveCfg = Release|Win32 - {E86DDB2C-CC00-43D1-8A1A-4B042EC983D6}.Release|Win32.Build.0 = Release|Win32 - {11EF5960-4922-49DC-9E64-B0845FC7C88C}.Debug|Win32.ActiveCfg = Debug|Win32 - {11EF5960-4922-49DC-9E64-B0845FC7C88C}.Debug|Win32.Build.0 = Debug|Win32 - {11EF5960-4922-49DC-9E64-B0845FC7C88C}.Release|Win32.ActiveCfg = Release|Win32 - {11EF5960-4922-49DC-9E64-B0845FC7C88C}.Release|Win32.Build.0 = Release|Win32 - {4EA6AEB6-9CCD-4E6D-9531-3F92184EBE67}.Debug|Win32.ActiveCfg = Debug|Win32 - {4EA6AEB6-9CCD-4E6D-9531-3F92184EBE67}.Debug|Win32.Build.0 = Debug|Win32 - {4EA6AEB6-9CCD-4E6D-9531-3F92184EBE67}.Release|Win32.ActiveCfg = Release|Win32 - {4EA6AEB6-9CCD-4E6D-9531-3F92184EBE67}.Release|Win32.Build.0 = Release|Win32 - {3C12BA78-2F6A-4655-B6FF-E1BFF2A191D8}.Debug|Win32.ActiveCfg = Debug|Win32 - {3C12BA78-2F6A-4655-B6FF-E1BFF2A191D8}.Debug|Win32.Build.0 = Debug|Win32 - {3C12BA78-2F6A-4655-B6FF-E1BFF2A191D8}.Release|Win32.ActiveCfg = Release|Win32 - {3C12BA78-2F6A-4655-B6FF-E1BFF2A191D8}.Release|Win32.Build.0 = Release|Win32 - {5798E37E-0428-457E-A652-EE0A75130327}.Debug|Win32.ActiveCfg = Debug|Win32 - {5798E37E-0428-457E-A652-EE0A75130327}.Debug|Win32.Build.0 = Debug|Win32 - {5798E37E-0428-457E-A652-EE0A75130327}.Release|Win32.ActiveCfg = Release|Win32 - {5798E37E-0428-457E-A652-EE0A75130327}.Release|Win32.Build.0 = Release|Win32 - {3181E887-2183-4FB8-84CC-CA5B4D48BC71}.Debug|Win32.ActiveCfg = Debug|Win32 - {3181E887-2183-4FB8-84CC-CA5B4D48BC71}.Debug|Win32.Build.0 = Debug|Win32 - {3181E887-2183-4FB8-84CC-CA5B4D48BC71}.Release|Win32.ActiveCfg = Release|Win32 - {3181E887-2183-4FB8-84CC-CA5B4D48BC71}.Release|Win32.Build.0 = Release|Win32 - {9E20E276-1905-44AE-BC67-C1A1F3C42135}.Debug|Win32.ActiveCfg = Debug|Win32 - {9E20E276-1905-44AE-BC67-C1A1F3C42135}.Debug|Win32.Build.0 = Debug|Win32 - {9E20E276-1905-44AE-BC67-C1A1F3C42135}.Release|Win32.ActiveCfg = Release|Win32 - {9E20E276-1905-44AE-BC67-C1A1F3C42135}.Release|Win32.Build.0 = Release|Win32 - {2E487F50-84E4-404D-A7E1-F9FA4A72BC25}.Debug|Win32.ActiveCfg = Debug|Win32 - {2E487F50-84E4-404D-A7E1-F9FA4A72BC25}.Debug|Win32.Build.0 = Debug|Win32 - {2E487F50-84E4-404D-A7E1-F9FA4A72BC25}.Release|Win32.ActiveCfg = Release|Win32 - {2E487F50-84E4-404D-A7E1-F9FA4A72BC25}.Release|Win32.Build.0 = Release|Win32 - {2296FB66-3FA4-4136-8252-ABECEEAC2D70}.Debug|Win32.ActiveCfg = Debug|Win32 - {2296FB66-3FA4-4136-8252-ABECEEAC2D70}.Debug|Win32.Build.0 = Debug|Win32 - {2296FB66-3FA4-4136-8252-ABECEEAC2D70}.Release|Win32.ActiveCfg = Release|Win32 - {2296FB66-3FA4-4136-8252-ABECEEAC2D70}.Release|Win32.Build.0 = Release|Win32 - {2B2B8D6E-4A84-49DD-8291-46172FCE422A}.Debug|Win32.ActiveCfg = Debug|Win32 - {2B2B8D6E-4A84-49DD-8291-46172FCE422A}.Debug|Win32.Build.0 = Debug|Win32 - {2B2B8D6E-4A84-49DD-8291-46172FCE422A}.Release|Win32.ActiveCfg = Release|Win32 - {2B2B8D6E-4A84-49DD-8291-46172FCE422A}.Release|Win32.Build.0 = Release|Win32 - {0ECAF69B-08B4-414A-B822-BE8459E463D8}.Debug|Win32.ActiveCfg = Debug|Win32 - {0ECAF69B-08B4-414A-B822-BE8459E463D8}.Debug|Win32.Build.0 = Debug|Win32 - {0ECAF69B-08B4-414A-B822-BE8459E463D8}.Release|Win32.ActiveCfg = Release|Win32 - {0ECAF69B-08B4-414A-B822-BE8459E463D8}.Release|Win32.Build.0 = Release|Win32 - {25709A86-E6B8-4CDA-906C-02D935E05978}.Debug|Win32.ActiveCfg = Debug|Win32 - {25709A86-E6B8-4CDA-906C-02D935E05978}.Debug|Win32.Build.0 = Debug|Win32 - {25709A86-E6B8-4CDA-906C-02D935E05978}.Release|Win32.ActiveCfg = Release|Win32 - {25709A86-E6B8-4CDA-906C-02D935E05978}.Release|Win32.Build.0 = Release|Win32 - {EE8BFC38-7000-42F1-BBC3-17F19855918A}.Debug|Win32.ActiveCfg = Debug|Win32 - {EE8BFC38-7000-42F1-BBC3-17F19855918A}.Debug|Win32.Build.0 = Debug|Win32 - {EE8BFC38-7000-42F1-BBC3-17F19855918A}.Release|Win32.ActiveCfg = Release|Win32 - {EE8BFC38-7000-42F1-BBC3-17F19855918A}.Release|Win32.Build.0 = Release|Win32 - {3C656364-FAEA-41D2-B227-52187D3C2529}.Debug|Win32.ActiveCfg = Debug|Win32 - {3C656364-FAEA-41D2-B227-52187D3C2529}.Debug|Win32.Build.0 = Debug|Win32 - {3C656364-FAEA-41D2-B227-52187D3C2529}.Release|Win32.ActiveCfg = Release|Win32 - {3C656364-FAEA-41D2-B227-52187D3C2529}.Release|Win32.Build.0 = Release|Win32 - {80ED9927-27F9-473A-802C-FB10DEB5ECC6}.Debug|Win32.ActiveCfg = Debug|Win32 - {80ED9927-27F9-473A-802C-FB10DEB5ECC6}.Debug|Win32.Build.0 = Debug|Win32 - {80ED9927-27F9-473A-802C-FB10DEB5ECC6}.Release|Win32.ActiveCfg = Release|Win32 - {80ED9927-27F9-473A-802C-FB10DEB5ECC6}.Release|Win32.Build.0 = Release|Win32 - {80BE71D1-BEA3-4A5D-8F13-362D6364892D}.Debug|Win32.ActiveCfg = Debug|Win32 - {80BE71D1-BEA3-4A5D-8F13-362D6364892D}.Debug|Win32.Build.0 = Debug|Win32 - {80BE71D1-BEA3-4A5D-8F13-362D6364892D}.Release|Win32.ActiveCfg = Release|Win32 - {80BE71D1-BEA3-4A5D-8F13-362D6364892D}.Release|Win32.Build.0 = Release|Win32 - EndGlobalSection - GlobalSection(SolutionProperties) = preSolution - HideSolutionNode = FALSE - EndGlobalSection -EndGlobal diff --git a/TTXSamples/TTXShowCommandLine/CMakeLists.txt b/TTXSamples/TTXShowCommandLine/CMakeLists.txt new file mode 100644 index 000000000..1d280df9a --- /dev/null +++ b/TTXSamples/TTXShowCommandLine/CMakeLists.txt @@ -0,0 +1,50 @@ +set(PACKAGE_NAME "TTXShowCommandLine") + +project(${PACKAGE_NAME}) + +add_library( + ${PACKAGE_NAME} SHARED + TTXShowCommandLine.c + ReadMe.txt + ReadMe-ja.txt + ) + +if(SUPPORT_OLD_WINDOWS) + target_link_libraries( + ${PACKAGE_NAME} + PRIVATE + layer_for_unicode + common_static + ) + if(MSVC) + target_sources( + ${PACKAGE_NAME} + PRIVATE + ../../teraterm/common/compat_w95_vs2005.c + ) + endif() + if(MINGW) + target_link_libraries( + ${PACKAGE_NAME} + PRIVATE + -Wl,--whole-archive + mingw_msvcrt + mingw_dll_tls + -Wl,--no-whole-archive + ) + endif() +endif(SUPPORT_OLD_WINDOWS) + +set_target_properties( + ${PACKAGE_NAME} + PROPERTIES + PREFIX "" + RUNTIME_OUTPUT_DIRECTORY "${CMAKE_BINARY_DIR}/" + ) + +target_include_directories( + ${PACKAGE_NAME} + PRIVATE + ../../teraterm/teraterm + ../../teraterm/common + ) diff --git a/TTXSamples/TTXShowCommandLine/TTXShowCommandLine.c b/TTXSamples/TTXShowCommandLine/TTXShowCommandLine.c index 84f18df98..6bb9425f9 100644 --- a/TTXSamples/TTXShowCommandLine/TTXShowCommandLine.c +++ b/TTXSamples/TTXShowCommandLine/TTXShowCommandLine.c @@ -5,8 +5,6 @@ #include #include -#include "compat_w95.h" - #define ORDER 2501 static HANDLE hInst; /* Instance handle of TTX*.DLL */ @@ -18,8 +16,8 @@ typedef struct { static TInstVar *pvar; static TInstVar InstVar; -static void PASCAL TTXParseParam(PCHAR Param, PTTSet ts, PCHAR DDETopic) { - MessageBox(NULL, Param, "TTXShowCommandLine", MB_OK|MB_ICONEXCLAMATION); +static void PASCAL TTXParseParam(wchar_t *Param, PTTSet ts, PCHAR DDETopic) { + MessageBoxW(NULL, Param, L"TTXShowCommandLine", MB_OK|MB_ICONEXCLAMATION); pvar->origParseParam(Param, ts, DDETopic); } @@ -69,7 +67,6 @@ BOOL WINAPI DllMain(HANDLE hInstance, break; case DLL_PROCESS_ATTACH: /* do process initialization */ - DoCover_IsDebuggerPresent(); hInst = hInstance; pvar = &InstVar; break; diff --git a/TTXSamples/TTXShowCommandLine/TTXShowCommandLine.v10.vcxproj b/TTXSamples/TTXShowCommandLine/TTXShowCommandLine.v10.vcxproj deleted file mode 100644 index dc37d14c6..000000000 --- a/TTXSamples/TTXShowCommandLine/TTXShowCommandLine.v10.vcxproj +++ /dev/null @@ -1,95 +0,0 @@ - - - - - Debug - Win32 - - - Release - Win32 - - - - {80ED9927-27F9-473A-802C-FB10DEB5ECC6} - TTXShowCommandLine - Win32Proj - TTXShowCommandLine - - - - DynamicLibrary - NotSet - true - - - DynamicLibrary - NotSet - - - - - - - - - - - - - <_ProjectFileVersion>10.0.40219.1 - $(SolutionDir)$(Configuration)\ - $(Configuration)\ - true - $(SolutionDir)$(Configuration)\ - $(Configuration)\ - false - - - - Disabled - $(SolutionDir)..\teraterm\common;$(SolutionDir)..\teraterm\teraterm;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;_USRDLL;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebug - - - Level3 - EditAndContinue - - - true - Windows - MachineX86 - - - - - $(SolutionDir)..\teraterm\common;$(SolutionDir)..\teraterm\teraterm;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;_USRDLL;%(PreprocessorDefinitions) - MultiThreaded - - - Level3 - ProgramDatabase - - - true - Windows - true - true - MachineX86 - - - - - - - - - - - - - \ No newline at end of file diff --git a/TTXSamples/TTXShowCommandLine/TTXShowCommandLine.v10.vcxproj.filters b/TTXSamples/TTXShowCommandLine/TTXShowCommandLine.v10.vcxproj.filters deleted file mode 100644 index d6df804be..000000000 --- a/TTXSamples/TTXShowCommandLine/TTXShowCommandLine.v10.vcxproj.filters +++ /dev/null @@ -1,25 +0,0 @@ - - - - - {4FC737F1-C7A5-4376-A066-2A32D752A2FF} - cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx - - - {092c0959-f654-4da7-8fac-cf0b6690f823} - - - - - Source Files - - - - - ReadMe - - - ReadMe - - - \ No newline at end of file diff --git a/TTXSamples/TTXShowCommandLine/TTXShowCommandLine.v11.vcxproj b/TTXSamples/TTXShowCommandLine/TTXShowCommandLine.v11.vcxproj deleted file mode 100644 index 4d3359d75..000000000 --- a/TTXSamples/TTXShowCommandLine/TTXShowCommandLine.v11.vcxproj +++ /dev/null @@ -1,100 +0,0 @@ - - - - - Debug - Win32 - - - Release - Win32 - - - - {80ED9927-27F9-473A-802C-FB10DEB5ECC6} - TTXShowCommandLine - Win32Proj - TTXShowCommandLine - - - - DynamicLibrary - v110 - NotSet - true - - - DynamicLibrary - v110 - NotSet - - - - - - - - - - - - - <_ProjectFileVersion>11.0.61030.0 - - - $(SolutionDir)$(Configuration)\ - $(Configuration)\ - true - - - $(SolutionDir)$(Configuration)\ - $(Configuration)\ - false - - - - Disabled - $(SolutionDir)..\teraterm\common;$(SolutionDir)..\teraterm\teraterm;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;_USRDLL;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebug - - Level3 - EditAndContinue - - - true - Windows - MachineX86 - false - - - - - $(SolutionDir)..\teraterm\common;$(SolutionDir)..\teraterm\teraterm;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;_USRDLL;%(PreprocessorDefinitions) - MultiThreaded - - Level3 - ProgramDatabase - - - true - Windows - true - true - MachineX86 - - - - - - - - - - - - - \ No newline at end of file diff --git a/TTXSamples/TTXShowCommandLine/TTXShowCommandLine.v11.vcxproj.filters b/TTXSamples/TTXShowCommandLine/TTXShowCommandLine.v11.vcxproj.filters deleted file mode 100644 index ee36e4fa8..000000000 --- a/TTXSamples/TTXShowCommandLine/TTXShowCommandLine.v11.vcxproj.filters +++ /dev/null @@ -1,25 +0,0 @@ - - - - - {4FC737F1-C7A5-4376-A066-2A32D752A2FF} - cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx - - - {bba70c65-9889-405c-806f-1016969d8882} - - - - - Source Files - - - - - ReadMe - - - ReadMe - - - \ No newline at end of file diff --git a/TTXSamples/TTXShowCommandLine/TTXShowCommandLine.v12.vcxproj b/TTXSamples/TTXShowCommandLine/TTXShowCommandLine.v12.vcxproj deleted file mode 100644 index 20daeff0d..000000000 --- a/TTXSamples/TTXShowCommandLine/TTXShowCommandLine.v12.vcxproj +++ /dev/null @@ -1,100 +0,0 @@ - - - - - Debug - Win32 - - - Release - Win32 - - - - {80ED9927-27F9-473A-802C-FB10DEB5ECC6} - TTXShowCommandLine - Win32Proj - TTXShowCommandLine - - - - DynamicLibrary - v120 - NotSet - true - - - DynamicLibrary - v120 - NotSet - - - - - - - - - - - - - <_ProjectFileVersion>12.0.30501.0 - - - $(SolutionDir)$(Configuration)\ - $(Configuration)\ - true - - - $(SolutionDir)$(Configuration)\ - $(Configuration)\ - false - - - - Disabled - $(SolutionDir)..\teraterm\common;$(SolutionDir)..\teraterm\teraterm;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;_USRDLL;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebug - - Level3 - EditAndContinue - - - true - Windows - MachineX86 - false - - - - - $(SolutionDir)..\teraterm\common;$(SolutionDir)..\teraterm\teraterm;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;_USRDLL;%(PreprocessorDefinitions) - MultiThreaded - - Level3 - ProgramDatabase - - - true - Windows - true - true - MachineX86 - - - - - - - - - - - - - \ No newline at end of file diff --git a/TTXSamples/TTXShowCommandLine/TTXShowCommandLine.v14.vcxproj b/TTXSamples/TTXShowCommandLine/TTXShowCommandLine.v14.vcxproj deleted file mode 100644 index 5105bd32d..000000000 --- a/TTXSamples/TTXShowCommandLine/TTXShowCommandLine.v14.vcxproj +++ /dev/null @@ -1,100 +0,0 @@ - - - - - Debug - Win32 - - - Release - Win32 - - - - {80ED9927-27F9-473A-802C-FB10DEB5ECC6} - TTXShowCommandLine - Win32Proj - TTXShowCommandLine - - - - DynamicLibrary - v140 - NotSet - true - - - DynamicLibrary - v140 - NotSet - - - - - - - - - - - - - <_ProjectFileVersion>12.0.30501.0 - - - $(SolutionDir)$(Configuration)\ - $(Configuration)\ - true - - - $(SolutionDir)$(Configuration)\ - $(Configuration)\ - false - - - - Disabled - $(SolutionDir)..\teraterm\common;$(SolutionDir)..\teraterm\teraterm;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;_USRDLL;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebug - - Level3 - EditAndContinue - - - true - Windows - MachineX86 - false - - - - - $(SolutionDir)..\teraterm\common;$(SolutionDir)..\teraterm\teraterm;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;_USRDLL;%(PreprocessorDefinitions) - MultiThreaded - - Level3 - ProgramDatabase - - - true - Windows - true - true - MachineX86 - - - - - - - - - - - - - \ No newline at end of file diff --git a/TTXSamples/TTXShowCommandLine/TTXShowCommandLine.v15.vcxproj b/TTXSamples/TTXShowCommandLine/TTXShowCommandLine.v15.vcxproj deleted file mode 100644 index 71169a247..000000000 --- a/TTXSamples/TTXShowCommandLine/TTXShowCommandLine.v15.vcxproj +++ /dev/null @@ -1,100 +0,0 @@ - - - - - Debug - Win32 - - - Release - Win32 - - - - {80ED9927-27F9-473A-802C-FB10DEB5ECC6} - TTXShowCommandLine - Win32Proj - TTXShowCommandLine - - - - DynamicLibrary - v141 - NotSet - true - - - DynamicLibrary - v141 - NotSet - - - - - - - - - - - - - <_ProjectFileVersion>12.0.30501.0 - - - $(SolutionDir)$(Configuration)\ - $(Configuration)\ - true - - - $(SolutionDir)$(Configuration)\ - $(Configuration)\ - false - - - - Disabled - $(SolutionDir)..\teraterm\common;$(SolutionDir)..\teraterm\teraterm;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;_USRDLL;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebug - - Level3 - EditAndContinue - - - true - Windows - MachineX86 - false - - - - - $(SolutionDir)..\teraterm\common;$(SolutionDir)..\teraterm\teraterm;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;_USRDLL;%(PreprocessorDefinitions) - MultiThreaded - - Level3 - ProgramDatabase - - - true - Windows - true - true - MachineX86 - - - - - - - - - - - - - \ No newline at end of file diff --git a/TTXSamples/TTXShowCommandLine/TTXShowCommandLine.v15.vcxproj.filters b/TTXSamples/TTXShowCommandLine/TTXShowCommandLine.v15.vcxproj.filters deleted file mode 100644 index d96958774..000000000 --- a/TTXSamples/TTXShowCommandLine/TTXShowCommandLine.v15.vcxproj.filters +++ /dev/null @@ -1,25 +0,0 @@ - - - - - {4FC737F1-C7A5-4376-A066-2A32D752A2FF} - cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx - - - {e155f1a7-bb1c-4c4a-81fe-475778200096} - - - - - Source Files - - - - - ReadMe - - - ReadMe - - - \ No newline at end of file diff --git a/TTXSamples/TTXShowCommandLine/TTXShowCommandLine.v16.vcxproj b/TTXSamples/TTXShowCommandLine/TTXShowCommandLine.v16.vcxproj new file mode 100644 index 000000000..72b6fce95 --- /dev/null +++ b/TTXSamples/TTXShowCommandLine/TTXShowCommandLine.v16.vcxproj @@ -0,0 +1,101 @@ + + + + + Debug + Win32 + + + Release + Win32 + + + + {80ED9927-27F9-473A-802C-FB10DEB5ECC6} + TTXShowCommandLine + Win32Proj + TTXShowCommandLine + 10.0 + + + + DynamicLibrary + v142 + NotSet + true + + + DynamicLibrary + v142 + NotSet + + + + + + + + + + + + + <_ProjectFileVersion>12.0.30501.0 + + + $(SolutionDir)$(Configuration)\ + $(Configuration)\ + true + + + $(SolutionDir)$(Configuration)\ + $(Configuration)\ + false + + + + Disabled + $(SolutionDir)..\teraterm\common;$(SolutionDir)..\teraterm\teraterm;%(AdditionalIncludeDirectories) + WIN32;_DEBUG;_WINDOWS;_USRDLL;%(PreprocessorDefinitions) + false + EnableFastChecks + MultiThreadedDebug + + Level3 + EditAndContinue + + + true + Windows + MachineX86 + false + + + + + $(SolutionDir)..\teraterm\common;$(SolutionDir)..\teraterm\teraterm;%(AdditionalIncludeDirectories) + WIN32;NDEBUG;_WINDOWS;_USRDLL;%(PreprocessorDefinitions) + MultiThreaded + + Level3 + ProgramDatabase + + + true + Windows + true + true + MachineX86 + + + + + + + + + + + + + diff --git a/TTXSamples/TTXShowCommandLine/TTXShowCommandLine.v12.vcxproj.filters b/TTXSamples/TTXShowCommandLine/TTXShowCommandLine.v16.vcxproj.filters similarity index 100% rename from TTXSamples/TTXShowCommandLine/TTXShowCommandLine.v12.vcxproj.filters rename to TTXSamples/TTXShowCommandLine/TTXShowCommandLine.v16.vcxproj.filters diff --git a/TTXSamples/TTXShowCommandLine/TTXShowCommandLine.v17.vcxproj b/TTXSamples/TTXShowCommandLine/TTXShowCommandLine.v17.vcxproj new file mode 100644 index 000000000..fa535012b --- /dev/null +++ b/TTXSamples/TTXShowCommandLine/TTXShowCommandLine.v17.vcxproj @@ -0,0 +1,101 @@ + + + + + Debug + Win32 + + + Release + Win32 + + + + {80ED9927-27F9-473A-802C-FB10DEB5ECC6} + TTXShowCommandLine + Win32Proj + TTXShowCommandLine + 10.0 + + + + DynamicLibrary + v143 + NotSet + true + + + DynamicLibrary + v143 + NotSet + + + + + + + + + + + + + <_ProjectFileVersion>12.0.30501.0 + + + $(SolutionDir)$(Configuration)\ + $(Configuration)\ + true + + + $(SolutionDir)$(Configuration)\ + $(Configuration)\ + false + + + + Disabled + $(SolutionDir)..\teraterm\common;$(SolutionDir)..\teraterm\teraterm;%(AdditionalIncludeDirectories) + WIN32;_DEBUG;_WINDOWS;_USRDLL;%(PreprocessorDefinitions) + false + EnableFastChecks + MultiThreadedDebug + + Level3 + EditAndContinue + + + true + Windows + MachineX86 + false + + + + + $(SolutionDir)..\teraterm\common;$(SolutionDir)..\teraterm\teraterm;%(AdditionalIncludeDirectories) + WIN32;NDEBUG;_WINDOWS;_USRDLL;%(PreprocessorDefinitions) + MultiThreaded + + Level3 + ProgramDatabase + + + true + Windows + true + true + MachineX86 + + + + + + + + + + + + + \ No newline at end of file diff --git a/TTXSamples/TTXShowCommandLine/TTXShowCommandLine.v14.vcxproj.filters b/TTXSamples/TTXShowCommandLine/TTXShowCommandLine.v17.vcxproj.filters similarity index 100% rename from TTXSamples/TTXShowCommandLine/TTXShowCommandLine.v14.vcxproj.filters rename to TTXSamples/TTXShowCommandLine/TTXShowCommandLine.v17.vcxproj.filters diff --git a/TTXSamples/TTXShowCommandLine/TTXShowCommandLine.v9.vcproj b/TTXSamples/TTXShowCommandLine/TTXShowCommandLine.v9.vcproj deleted file mode 100644 index b35391efe..000000000 --- a/TTXSamples/TTXShowCommandLine/TTXShowCommandLine.v9.vcproj +++ /dev/null @@ -1,198 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/TTXSamples/TTXShowCommandLine/TTXShowCommandLine.vcproj b/TTXSamples/TTXShowCommandLine/TTXShowCommandLine.vcproj deleted file mode 100644 index ee3ffd418..000000000 --- a/TTXSamples/TTXShowCommandLine/TTXShowCommandLine.vcproj +++ /dev/null @@ -1,199 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/TTXSamples/TTXViewMode/CMakeLists.txt b/TTXSamples/TTXViewMode/CMakeLists.txt new file mode 100644 index 000000000..216795b7a --- /dev/null +++ b/TTXSamples/TTXViewMode/CMakeLists.txt @@ -0,0 +1,89 @@ +set(PACKAGE_NAME "TTXViewMode") + +project(${PACKAGE_NAME}) + +add_library( + ${PACKAGE_NAME} SHARED + resource.h + TTXViewMode.c + TTXViewMode.h + TTXViewMode.rc + ReadMe.txt + ReadMe-ja.txt + ../../teraterm/common/dlglib.h + ) + +if(SUPPORT_OLD_WINDOWS) + target_link_libraries( + ${PACKAGE_NAME} + PRIVATE + layer_for_unicode + ) + if(MSVC) + target_sources( + ${PACKAGE_NAME} + PRIVATE + ../../teraterm/common/compat_w95_vs2005.c + ) + endif() + if(MINGW) + target_sources( + ${PACKAGE_NAME} + PRIVATE + ../../teraterm/libmingw/tlssup.c + ) + target_link_libraries( + ${PACKAGE_NAME} + PRIVATE + -Wl,--whole-archive + mingw_msvcrt + -Wl,--no-whole-archive + ) + endif() +endif(SUPPORT_OLD_WINDOWS) + +source_group( + "common" + REGULAR_EXPRESSION + "teraterm\/common\/" + ) + +set_target_properties( + ${PACKAGE_NAME} + PROPERTIES + PREFIX "" + RUNTIME_OUTPUT_DIRECTORY "${CMAKE_BINARY_DIR}/" + ) + +target_include_directories( + ${PACKAGE_NAME} + PRIVATE + ../../teraterm/teraterm + ) + +target_link_libraries( + ${PACKAGE_NAME} + PRIVATE + common_static + ttpcmn + ) + +if(SUPPORT_OLD_WINDOWS) + target_link_libraries( + ${PACKAGE_NAME} + PRIVATE + layer_for_unicode + ) +endif(SUPPORT_OLD_WINDOWS) + +target_link_libraries( + ${PACKAGE_NAME} + PRIVATE + gdi32 + ) + +install( + TARGETS ${PACKAGE_NAME} + RUNTIME + DESTINATION . + ) diff --git a/TTXSamples/TTXViewMode/TTXViewMode.c b/TTXSamples/TTXViewMode/TTXViewMode.c index 74072595d..0852a305f 100644 --- a/TTXSamples/TTXViewMode/TTXViewMode.c +++ b/TTXSamples/TTXViewMode/TTXViewMode.c @@ -7,8 +7,8 @@ #include #include #include - -#include "compat_w95.h" +#include "dlglib.h" +#include "inifile_com.h" #define ORDER 4000 #define ID_MENU_VIEWMODE 55200 @@ -48,7 +48,7 @@ HMENU GetSubMenuByChildID(HMENU menu, UINT id) { items = GetMenuItemCount(menu); for (i=0; iorigReadIniFile(fn, ts); - GetPrivateProfileString(SECTION, "Password", "", pvar->password, sizeof(pvar->password), fn); + GetPrivateProfileStringAFileW(SECTION, "Password", "", pvar->password, sizeof(pvar->password), fn); return; } -static void PASCAL TTXWriteIniFile(PCHAR fn, PTTSet ts) { +static void PASCAL TTXWriteIniFile(const wchar_t *fn, PTTSet ts) { pvar->origWriteIniFile(fn, ts); // WritePrivateProfileString(SECTION, "Password", pvar->password, fn); return; @@ -136,7 +136,7 @@ static void PASCAL TTXModifyMenu(HMENU menu) { pvar->SetupMenu = GetSetupMenu(menu); pvar->ControlMenu = GetControlMenu(menu); - InsertMenu(pvar->SetupMenu, ID_SETUP_ADDITIONALSETTINGS, flag, ID_MENU_SETPASS, "&ViewMode password"); + InsertMenu(pvar->SetupMenu, ID_SETUP_ADDITIONALSETTINGS, flag, ID_MENU_SETPASS, "&ViewMode password"); if (pvar->enable) flag |= MF_CHECKED; InsertMenu(pvar->ControlMenu, ID_CONTROL_MACRO, flag, ID_MENU_VIEWMODE, "&View mode"); InsertMenu(pvar->ControlMenu, ID_CONTROL_MACRO, MF_BYCOMMAND | MF_SEPARATOR, 0, NULL); @@ -151,27 +151,27 @@ static void PASCAL TTXModifyPopupMenu(HMENU menu) { } } -static LRESULT CALLBACK ViewModeInputPass(HWND dlg, UINT msg, WPARAM wParam, LPARAM lParam) { +static INT_PTR CALLBACK ViewModeInputPass(HWND dlg, UINT msg, WPARAM wParam, LPARAM lParam) { char password[50]; - + switch (msg) { case WM_INITDIALOG: - /* nothing to do */ + CenterWindow(dlg, GetParent(dlg)); return TRUE; case WM_COMMAND: switch (LOWORD(wParam)) { case IDOK: GetDlgItemText(dlg, IDC_CURPASS, password, sizeof(password)); if (strcmp(pvar->password, password) == 0) { - EndDialog(dlg, IDOK); + TTEndDialog(dlg, IDOK); } else { MessageBox(NULL, "Invalid Password", "Invalid Password", MB_OK | MB_ICONEXCLAMATION); - EndDialog(dlg, IDCANCEL); + TTEndDialog(dlg, IDCANCEL); } return TRUE; case IDCANCEL: - EndDialog(dlg, IDCANCEL); + TTEndDialog(dlg, IDCANCEL); return TRUE; } break; @@ -179,12 +179,12 @@ static LRESULT CALLBACK ViewModeInputPass(HWND dlg, UINT msg, WPARAM wParam, LPA return FALSE; } -static LRESULT CALLBACK ViewModeSetPass(HWND dlg, UINT msg, WPARAM wParam, LPARAM lParam) { +static INT_PTR CALLBACK ViewModeSetPass(HWND dlg, UINT msg, WPARAM wParam, LPARAM lParam) { char passwd1[50], passwd2[50]; switch (msg) { case WM_INITDIALOG: - /* nothing to do */ + CenterWindow(dlg, GetParent(dlg)); return TRUE; case WM_COMMAND: switch (LOWORD(wParam)) { @@ -196,20 +196,20 @@ static LRESULT CALLBACK ViewModeSetPass(HWND dlg, UINT msg, WPARAM wParam, LPARA if (strcmp(passwd1, passwd2) == 0) { strncpy_s(pvar->password, sizeof(pvar->password), passwd1, _TRUNCATE); MessageBox(NULL, "Password changed", "TTXViewMode", MB_OK | MB_ICONEXCLAMATION); - EndDialog(dlg, IDOK); + TTEndDialog(dlg, IDOK); } else { MessageBox(NULL, "New password not matched.", "TTXViewMode", MB_OK | MB_ICONEXCLAMATION); - EndDialog(dlg, IDCANCEL); + TTEndDialog(dlg, IDCANCEL); } } else { MessageBox(NULL, "Invalid Password", "TTXViewMode", MB_OK | MB_ICONEXCLAMATION); - EndDialog(dlg, IDCANCEL); + TTEndDialog(dlg, IDCANCEL); } return TRUE; case IDCANCEL: - EndDialog(dlg, IDCANCEL); + TTEndDialog(dlg, IDCANCEL); return TRUE; } break; @@ -222,7 +222,9 @@ static int PASCAL TTXProcessCommand(HWND hWin, WORD cmd) { case ID_MENU_VIEWMODE: if (pvar->enable) { if (strcmp(pvar->password, "") != 0) { - switch (DialogBoxParam(hInst, MAKEINTRESOURCE(IDD_INPUT_PASSWORD), hWin, ViewModeInputPass, (LPARAM)NULL)) { + SetDialogFont(pvar->ts->DialogFontNameW, pvar->ts->DialogFontPoint, pvar->ts->DialogFontCharSet, + pvar->ts->UILanguageFileW, "TTXViewMode", "DLG_TAHOMA_FONT"); + switch (TTDialogBoxParam(hInst, MAKEINTRESOURCE(IDD_INPUT_PASSWORD), hWin, ViewModeInputPass, (LPARAM)NULL)) { case IDOK: pvar->enable = FALSE; CheckMenuItem(pvar->ControlMenu, ID_MENU_VIEWMODE, MF_BYCOMMAND | MF_UNCHECKED); @@ -247,7 +249,9 @@ static int PASCAL TTXProcessCommand(HWND hWin, WORD cmd) { } return 1; case ID_MENU_SETPASS: - switch (DialogBoxParam(hInst, MAKEINTRESOURCE(IDD_SET_PASSWORD), hWin, ViewModeSetPass, (LPARAM)NULL)) { + SetDialogFont(pvar->ts->DialogFontNameW, pvar->ts->DialogFontPoint, pvar->ts->DialogFontCharSet, + pvar->ts->UILanguageFileW, "TTXViewMode", "DLG_TAHOMA_FONT"); + switch (TTDialogBoxParam(hInst, MAKEINTRESOURCE(IDD_SET_PASSWORD), hWin, ViewModeSetPass, (LPARAM)NULL)) { case IDOK: break; case IDCANCEL: @@ -295,7 +299,7 @@ BOOL __declspec(dllexport) PASCAL TTXBind(WORD Version, TTXExports *exports) { return TRUE; } -BOOL WINAPI DllMain(HANDLE hInstance, +BOOL WINAPI DllMain(HANDLE hInstance, ULONG ul_reason_for_call, LPVOID lpReserved) { @@ -308,7 +312,6 @@ BOOL WINAPI DllMain(HANDLE hInstance, break; case DLL_PROCESS_ATTACH: /* do process initialization */ - DoCover_IsDebuggerPresent(); hInst = hInstance; pvar = &InstVar; break; diff --git a/TTXSamples/TTXViewMode/TTXViewMode.v10.vcxproj b/TTXSamples/TTXViewMode/TTXViewMode.v10.vcxproj deleted file mode 100644 index 5d42c5a68..000000000 --- a/TTXSamples/TTXViewMode/TTXViewMode.v10.vcxproj +++ /dev/null @@ -1,101 +0,0 @@ - - - - - Debug - Win32 - - - Release - Win32 - - - - {2296FB66-3FA4-4136-8252-ABECEEAC2D70} - TTXViewMode - Win32Proj - TTXViewMode - - - - DynamicLibrary - NotSet - true - - - DynamicLibrary - NotSet - - - - - - - - - - - - - <_ProjectFileVersion>10.0.40219.1 - $(SolutionDir)$(Configuration)\ - $(Configuration)\ - true - $(SolutionDir)$(Configuration)\ - $(Configuration)\ - false - - - - Disabled - $(SolutionDir)..\teraterm\common;$(SolutionDir)..\teraterm\teraterm;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;_USRDLL;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebug - - - Level3 - EditAndContinue - - - true - Windows - MachineX86 - - - - - $(SolutionDir)..\teraterm\common;$(SolutionDir)..\teraterm\teraterm;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;_USRDLL;%(PreprocessorDefinitions) - MultiThreaded - - - Level3 - ProgramDatabase - - - true - Windows - true - true - MachineX86 - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/TTXSamples/TTXViewMode/TTXViewMode.v10.vcxproj.filters b/TTXSamples/TTXViewMode/TTXViewMode.v10.vcxproj.filters deleted file mode 100644 index 8602e860f..000000000 --- a/TTXSamples/TTXViewMode/TTXViewMode.v10.vcxproj.filters +++ /dev/null @@ -1,43 +0,0 @@ - - - - - {4FC737F1-C7A5-4376-A066-2A32D752A2FF} - cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx - - - {93995380-89BD-4b04-88EB-625FBE52EBFB} - h;hpp;hxx;hm;inl;inc;xsd - - - {67DA6AB6-F800-4c08-8B7A-83BB121AAD01} - rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav - - - {205e4dfd-3c98-4cba-b24a-8929dc259fb4} - - - - - Source Files - - - - - Header Files - - - - - Resource Files - - - - - ReadMe - - - ReadMe - - - \ No newline at end of file diff --git a/TTXSamples/TTXViewMode/TTXViewMode.v11.vcxproj b/TTXSamples/TTXViewMode/TTXViewMode.v11.vcxproj deleted file mode 100644 index 9f30b120b..000000000 --- a/TTXSamples/TTXViewMode/TTXViewMode.v11.vcxproj +++ /dev/null @@ -1,106 +0,0 @@ - - - - - Debug - Win32 - - - Release - Win32 - - - - {2296FB66-3FA4-4136-8252-ABECEEAC2D70} - TTXViewMode - Win32Proj - TTXViewMode - - - - DynamicLibrary - v110 - NotSet - true - - - DynamicLibrary - v110 - NotSet - - - - - - - - - - - - - <_ProjectFileVersion>11.0.61030.0 - - - $(SolutionDir)$(Configuration)\ - $(Configuration)\ - true - - - $(SolutionDir)$(Configuration)\ - $(Configuration)\ - false - - - - Disabled - $(SolutionDir)..\teraterm\common;$(SolutionDir)..\teraterm\teraterm;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;_USRDLL;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebug - - Level3 - EditAndContinue - - - true - Windows - MachineX86 - false - - - - - $(SolutionDir)..\teraterm\common;$(SolutionDir)..\teraterm\teraterm;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;_USRDLL;%(PreprocessorDefinitions) - MultiThreaded - - Level3 - ProgramDatabase - - - true - Windows - true - true - MachineX86 - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/TTXSamples/TTXViewMode/TTXViewMode.v11.vcxproj.filters b/TTXSamples/TTXViewMode/TTXViewMode.v11.vcxproj.filters deleted file mode 100644 index dd3ebb79e..000000000 --- a/TTXSamples/TTXViewMode/TTXViewMode.v11.vcxproj.filters +++ /dev/null @@ -1,43 +0,0 @@ - - - - - {4FC737F1-C7A5-4376-A066-2A32D752A2FF} - cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx - - - {93995380-89BD-4b04-88EB-625FBE52EBFB} - h;hpp;hxx;hm;inl;inc;xsd - - - {67DA6AB6-F800-4c08-8B7A-83BB121AAD01} - rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav - - - {7b57f5f5-19e1-42ee-9a95-513564921cff} - - - - - Source Files - - - - - Header Files - - - - - Resource Files - - - - - ReadMe - - - ReadMe - - - \ No newline at end of file diff --git a/TTXSamples/TTXViewMode/TTXViewMode.v12.vcxproj b/TTXSamples/TTXViewMode/TTXViewMode.v12.vcxproj deleted file mode 100644 index f7b2e814d..000000000 --- a/TTXSamples/TTXViewMode/TTXViewMode.v12.vcxproj +++ /dev/null @@ -1,106 +0,0 @@ - - - - - Debug - Win32 - - - Release - Win32 - - - - {2296FB66-3FA4-4136-8252-ABECEEAC2D70} - TTXViewMode - Win32Proj - TTXViewMode - - - - DynamicLibrary - v120 - NotSet - true - - - DynamicLibrary - v120 - NotSet - - - - - - - - - - - - - <_ProjectFileVersion>12.0.30501.0 - - - $(SolutionDir)$(Configuration)\ - $(Configuration)\ - true - - - $(SolutionDir)$(Configuration)\ - $(Configuration)\ - false - - - - Disabled - $(SolutionDir)..\teraterm\common;$(SolutionDir)..\teraterm\teraterm;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;_USRDLL;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebug - - Level3 - EditAndContinue - - - true - Windows - MachineX86 - false - - - - - $(SolutionDir)..\teraterm\common;$(SolutionDir)..\teraterm\teraterm;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;_USRDLL;%(PreprocessorDefinitions) - MultiThreaded - - Level3 - ProgramDatabase - - - true - Windows - true - true - MachineX86 - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/TTXSamples/TTXViewMode/TTXViewMode.v14.vcxproj b/TTXSamples/TTXViewMode/TTXViewMode.v14.vcxproj deleted file mode 100644 index a3734d1cc..000000000 --- a/TTXSamples/TTXViewMode/TTXViewMode.v14.vcxproj +++ /dev/null @@ -1,106 +0,0 @@ - - - - - Debug - Win32 - - - Release - Win32 - - - - {2296FB66-3FA4-4136-8252-ABECEEAC2D70} - TTXViewMode - Win32Proj - TTXViewMode - - - - DynamicLibrary - v140 - NotSet - true - - - DynamicLibrary - v140 - NotSet - - - - - - - - - - - - - <_ProjectFileVersion>12.0.30501.0 - - - $(SolutionDir)$(Configuration)\ - $(Configuration)\ - true - - - $(SolutionDir)$(Configuration)\ - $(Configuration)\ - false - - - - Disabled - $(SolutionDir)..\teraterm\common;$(SolutionDir)..\teraterm\teraterm;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;_USRDLL;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebug - - Level3 - EditAndContinue - - - true - Windows - MachineX86 - false - - - - - $(SolutionDir)..\teraterm\common;$(SolutionDir)..\teraterm\teraterm;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;_USRDLL;%(PreprocessorDefinitions) - MultiThreaded - - Level3 - ProgramDatabase - - - true - Windows - true - true - MachineX86 - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/TTXSamples/TTXViewMode/TTXViewMode.v15.vcxproj b/TTXSamples/TTXViewMode/TTXViewMode.v15.vcxproj deleted file mode 100644 index 9b1215db8..000000000 --- a/TTXSamples/TTXViewMode/TTXViewMode.v15.vcxproj +++ /dev/null @@ -1,106 +0,0 @@ - - - - - Debug - Win32 - - - Release - Win32 - - - - {2296FB66-3FA4-4136-8252-ABECEEAC2D70} - TTXViewMode - Win32Proj - TTXViewMode - - - - DynamicLibrary - v141 - NotSet - true - - - DynamicLibrary - v141 - NotSet - - - - - - - - - - - - - <_ProjectFileVersion>12.0.30501.0 - - - $(SolutionDir)$(Configuration)\ - $(Configuration)\ - true - - - $(SolutionDir)$(Configuration)\ - $(Configuration)\ - false - - - - Disabled - $(SolutionDir)..\teraterm\common;$(SolutionDir)..\teraterm\teraterm;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;_USRDLL;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebug - - Level3 - EditAndContinue - - - true - Windows - MachineX86 - false - - - - - $(SolutionDir)..\teraterm\common;$(SolutionDir)..\teraterm\teraterm;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;_USRDLL;%(PreprocessorDefinitions) - MultiThreaded - - Level3 - ProgramDatabase - - - true - Windows - true - true - MachineX86 - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/TTXSamples/TTXViewMode/TTXViewMode.v15.vcxproj.filters b/TTXSamples/TTXViewMode/TTXViewMode.v15.vcxproj.filters deleted file mode 100644 index 4efa9cf9e..000000000 --- a/TTXSamples/TTXViewMode/TTXViewMode.v15.vcxproj.filters +++ /dev/null @@ -1,43 +0,0 @@ - - - - - {4FC737F1-C7A5-4376-A066-2A32D752A2FF} - cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx - - - {93995380-89BD-4b04-88EB-625FBE52EBFB} - h;hpp;hxx;hm;inl;inc;xsd - - - {67DA6AB6-F800-4c08-8B7A-83BB121AAD01} - rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav - - - {207e9925-fb82-42d1-a276-7ac21274c358} - - - - - Source Files - - - - - Header Files - - - - - Resource Files - - - - - ReadMe - - - ReadMe - - - \ No newline at end of file diff --git a/TTXSamples/TTXViewMode/TTXViewMode.v16.vcxproj b/TTXSamples/TTXViewMode/TTXViewMode.v16.vcxproj new file mode 100644 index 000000000..496c72fba --- /dev/null +++ b/TTXSamples/TTXViewMode/TTXViewMode.v16.vcxproj @@ -0,0 +1,110 @@ + + + + + Debug + Win32 + + + Release + Win32 + + + + {2296FB66-3FA4-4136-8252-ABECEEAC2D70} + TTXViewMode + Win32Proj + TTXViewMode + 10.0 + + + + DynamicLibrary + v142 + NotSet + true + + + DynamicLibrary + v142 + NotSet + + + + + + + + + + + + + <_ProjectFileVersion>12.0.30501.0 + + + $(SolutionDir)$(Configuration)\ + $(Configuration)\ + true + + + $(SolutionDir)$(Configuration)\ + $(Configuration)\ + false + + + + Disabled + $(SolutionDir)..\teraterm\common;$(SolutionDir)..\teraterm\teraterm;%(AdditionalIncludeDirectories) + WIN32;_DEBUG;_WINDOWS;_USRDLL;%(PreprocessorDefinitions) + EnableFastChecks + MultiThreadedDebug + + Level3 + EditAndContinue + + + $(SolutionDir)..\teraterm\$(Configuration)\common_static.lib;$(SolutionDir)..\teraterm\$(Configuration)\ttpcmn.lib;%(AdditionalDependencies) + user32.dll;%(DelayLoadDLLs) + true + Windows + MachineX86 + false + + + + + $(SolutionDir)..\teraterm\common;$(SolutionDir)..\teraterm\teraterm;%(AdditionalIncludeDirectories) + WIN32;NDEBUG;_WINDOWS;_USRDLL;%(PreprocessorDefinitions) + MultiThreaded + + Level3 + ProgramDatabase + + + $(SolutionDir)..\teraterm\$(Configuration)\common_static.lib;$(SolutionDir)..\teraterm\$(Configuration)\ttpcmn.lib;%(AdditionalDependencies) + user32.dll;%(DelayLoadDLLs) + true + Windows + true + true + MachineX86 + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/TTXSamples/TTXViewMode/TTXViewMode.v12.vcxproj.filters b/TTXSamples/TTXViewMode/TTXViewMode.v16.vcxproj.filters similarity index 100% rename from TTXSamples/TTXViewMode/TTXViewMode.v12.vcxproj.filters rename to TTXSamples/TTXViewMode/TTXViewMode.v16.vcxproj.filters diff --git a/TTXSamples/TTXViewMode/TTXViewMode.v17.vcxproj b/TTXSamples/TTXViewMode/TTXViewMode.v17.vcxproj new file mode 100644 index 000000000..6b84bf487 --- /dev/null +++ b/TTXSamples/TTXViewMode/TTXViewMode.v17.vcxproj @@ -0,0 +1,110 @@ + + + + + Debug + Win32 + + + Release + Win32 + + + + {2296FB66-3FA4-4136-8252-ABECEEAC2D70} + TTXViewMode + Win32Proj + TTXViewMode + 10.0 + + + + DynamicLibrary + v143 + NotSet + true + + + DynamicLibrary + v143 + NotSet + + + + + + + + + + + + + <_ProjectFileVersion>12.0.30501.0 + + + $(SolutionDir)$(Configuration)\ + $(Configuration)\ + true + + + $(SolutionDir)$(Configuration)\ + $(Configuration)\ + false + + + + Disabled + $(SolutionDir)..\teraterm\common;$(SolutionDir)..\teraterm\teraterm;%(AdditionalIncludeDirectories) + WIN32;_DEBUG;_WINDOWS;_USRDLL;%(PreprocessorDefinitions) + EnableFastChecks + MultiThreadedDebug + + Level3 + EditAndContinue + + + $(SolutionDir)..\teraterm\$(Configuration)\common_static.lib;$(SolutionDir)..\teraterm\$(Configuration)\ttpcmn.lib;%(AdditionalDependencies) + user32.dll;%(DelayLoadDLLs) + true + Windows + MachineX86 + false + + + + + $(SolutionDir)..\teraterm\common;$(SolutionDir)..\teraterm\teraterm;%(AdditionalIncludeDirectories) + WIN32;NDEBUG;_WINDOWS;_USRDLL;%(PreprocessorDefinitions) + MultiThreaded + + Level3 + ProgramDatabase + + + $(SolutionDir)..\teraterm\$(Configuration)\common_static.lib;$(SolutionDir)..\teraterm\$(Configuration)\ttpcmn.lib;%(AdditionalDependencies) + user32.dll;%(DelayLoadDLLs) + true + Windows + true + true + MachineX86 + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/TTXSamples/TTXViewMode/TTXViewMode.v14.vcxproj.filters b/TTXSamples/TTXViewMode/TTXViewMode.v17.vcxproj.filters similarity index 100% rename from TTXSamples/TTXViewMode/TTXViewMode.v14.vcxproj.filters rename to TTXSamples/TTXViewMode/TTXViewMode.v17.vcxproj.filters diff --git a/TTXSamples/TTXViewMode/TTXViewMode.v9.vcproj b/TTXSamples/TTXViewMode/TTXViewMode.v9.vcproj deleted file mode 100644 index 545b709e7..000000000 --- a/TTXSamples/TTXViewMode/TTXViewMode.v9.vcproj +++ /dev/null @@ -1,218 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/TTXSamples/TTXViewMode/TTXViewMode.vcproj b/TTXSamples/TTXViewMode/TTXViewMode.vcproj deleted file mode 100755 index 5d3cfbc4d..000000000 --- a/TTXSamples/TTXViewMode/TTXViewMode.vcproj +++ /dev/null @@ -1,219 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/TTXSamples/TTXttyrec/.gitignore b/TTXSamples/TTXttyrec/.gitignore new file mode 100644 index 000000000..7339411a1 --- /dev/null +++ b/TTXSamples/TTXttyrec/.gitignore @@ -0,0 +1,5 @@ +play.Debug/ +play.Release/ +rec.Debug/ +rec.Release/ + diff --git a/TTXSamples/TTXttyrec/CMakeLists.txt b/TTXSamples/TTXttyrec/CMakeLists.txt new file mode 100644 index 000000000..07077c2bf --- /dev/null +++ b/TTXSamples/TTXttyrec/CMakeLists.txt @@ -0,0 +1,120 @@ +project(TTXttyrec) + +add_library( + TTXttyplay SHARED + TTXttyplay.c + gettimeofday.c + gettimeofday.h + ReadMe.txt + ReadMe-ja.txt + ) + +if(SUPPORT_OLD_WINDOWS) + target_link_libraries( + TTXttyplay + PRIVATE + layer_for_unicode + ) + if(MSVC) + target_sources( + TTXttyplay + PRIVATE + ../../teraterm/common/compat_w95_vs2005.c + ) + endif() + if(MINGW) + target_sources( + TTXttyplay + PRIVATE + ../../teraterm/libmingw/tlssup.c + ) + target_link_libraries( + TTXttyplay + PRIVATE + -Wl,--whole-archive + mingw_msvcrt + -Wl,--no-whole-archive + ) + endif() +endif(SUPPORT_OLD_WINDOWS) + +target_include_directories( + TTXttyplay + PRIVATE + ../../teraterm/teraterm + ) + +target_link_libraries( + TTXttyplay + PRIVATE + common_static + ttpcmn + # + comdlg32 + ) + +add_library( + TTXttyrec SHARED + TTXttyrec.c + gettimeofday.c + gettimeofday.h + ReadMe.txt + ReadMe-ja.txt + ) + +if(SUPPORT_OLD_WINDOWS) + target_link_libraries( + TTXttyrec + PRIVATE + layer_for_unicode + ) + if(MSVC) + target_sources( + TTXttyrec + PRIVATE + ../../teraterm/common/compat_w95_vs2005.c + ) + endif() + if(MINGW) + target_sources( + TTXttyrec + PRIVATE + ../../teraterm/libmingw/tlssup.c + ) + target_link_libraries( + TTXttyrec + PRIVATE + -Wl,--whole-archive + mingw_msvcrt + -Wl,--no-whole-archive + ) + endif() +endif(SUPPORT_OLD_WINDOWS) + +target_include_directories( + TTXttyrec + PRIVATE + ../../teraterm/teraterm + ) + +target_link_libraries( + TTXttyrec + PRIVATE + common_static + ttpcmn + # + comdlg32 + ) + +set_target_properties( + TTXttyrec TTXttyplay + PROPERTIES + PREFIX "" + RUNTIME_OUTPUT_DIRECTORY "${CMAKE_BINARY_DIR}/" + ) + +install( + TARGETS TTXttyrec TTXttyplay + RUNTIME + DESTINATION . + ) diff --git a/TTXSamples/TTXttyrec/TTXttyplay.c b/TTXSamples/TTXttyrec/TTXttyplay.c index b78f16f49..64118c3f8 100644 --- a/TTXSamples/TTXttyrec/TTXttyplay.c +++ b/TTXSamples/TTXttyrec/TTXttyplay.c @@ -1,3 +1,5 @@ +#include +#include #include "teraterm.h" #include "tttypes.h" #include "ttplugin.h" @@ -5,14 +7,13 @@ #include #include #include -#include -#include -#include -#include "gettimeofday.h" +#include "inifile_com.h" +#include "ttcommdlg.h" +#include "codeconv.h" -#include "compat_w95.h" +#include "gettimeofday.h" #define ORDER 6001 #define ID_MENU_REPLAY 55302 @@ -24,6 +25,14 @@ static HANDLE hInst; /* Instance handle of TTX*.DLL */ +enum ParseMode { + MODE_FIRST, + MODE_ESC, + MODE_CSI, + MODE_STRING, + MODE_STR_ESC +}; + struct recheader { struct timeval tv; int len; @@ -32,6 +41,7 @@ struct recheader { typedef struct { PTTSet ts; PComVar cv; + TCreateFile origPCreateFile; TReadFile origPReadFile; TWriteFile origPWriteFile; PParseParam origParseParam; @@ -46,9 +56,10 @@ typedef struct { int speed; BOOL pause; BOOL nowait; + BOOL open_error; struct timeval last; struct timeval wait; - char openfn[MAX_PATH]; + wchar_t *openfnW; char origTitle[TitleBuffSize]; char origOLDTitle[TitleBuffSize]; } TInstVar; @@ -70,7 +81,7 @@ void RestoreOLDTitle() { void ChangeTitleStatus() { char tbuff[TitleBuffSize]; - + _snprintf_s(tbuff, sizeof(tbuff), _TRUNCATE, "Speed: %d, Pause: %s", pvar->speed, pvar->pause ? "ON": "OFF"); strncpy_s(pvar->ts->Title, sizeof(pvar->ts->Title), tbuff, _TRUNCATE); pvar->ChangeTitle = TRUE; @@ -100,17 +111,19 @@ HMENU GetSubMenuByChildID(HMENU menu, UINT id) { static void PASCAL TTXInit(PTTSet ts, PComVar cv) { pvar->ts = ts; pvar->cv = cv; + pvar->origPCreateFile = NULL; pvar->origPReadFile = NULL; pvar->origPWriteFile = NULL; pvar->enable = FALSE; pvar->ChangeTitle = FALSE; pvar->ReplaceHostDlg = FALSE; pvar->played = FALSE; - gettimeofday(&(pvar->last), NULL); + gettimeofday(&(pvar->last) /*, NULL*/ ); pvar->wait.tv_sec = 0; pvar->wait.tv_usec = 1; pvar->pause = FALSE; pvar->nowait = FALSE; + pvar->open_error = FALSE; } void RestoreTitle() { @@ -129,13 +142,39 @@ void ChangeTitle(char *title) { SendMessage(pvar->cv->HWin, WM_COMMAND, MAKELONG(ID_SETUP_WINDOW, 0), 0); } +static HANDLE PASCAL TTXCreateFile(LPCSTR FName, DWORD AcMode, DWORD ShMode, + LPSECURITY_ATTRIBUTES SecAttr, DWORD CreateDisposition, DWORD FileAttr, HANDLE Template) { + + HANDLE ret; + + if (AcMode == GENERIC_READ && ShMode == 0) { + ShMode = FILE_SHARE_READ; + } + + ret = pvar->origPCreateFile(FName, AcMode, ShMode, SecAttr, CreateDisposition, FileAttr, Template); + + if (pvar->enable) { + if (ret == INVALID_HANDLE_VALUE) { + pvar->enable = FALSE; + pvar->open_error = TRUE; + pvar->played = FALSE; + } + else { + pvar->open_error = FALSE; + } + } + + return ret; +} + static BOOL PASCAL TTXReadFile(HANDLE fh, LPVOID obuff, DWORD oblen, LPDWORD rbytes, LPOVERLAPPED rol) { static struct recheader prh = { 0, 0, 0 }; - static unsigned int lbytes; + static DWORD lbytes; static char ibuff[BUFFSIZE]; static BOOL title_changed = FALSE, first_title_changed = FALSE; - int b[3], rsize; + int b[3]; + DWORD rsize; struct recheader h; struct timeval curtime; struct timeval tdiff; @@ -189,7 +228,7 @@ static BOOL PASCAL TTXReadFile(HANDLE fh, LPVOID obuff, DWORD oblen, LPDWORD rby } if (!pvar->nowait) { - gettimeofday(&curtime, NULL); + gettimeofday(&curtime /*, NULL*/ ); tdiff = tvdiff(pvar->last, curtime); } @@ -240,46 +279,92 @@ static BOOL PASCAL TTXWriteFile(HANDLE fh, LPCVOID buff, DWORD len, LPDWORD wbyt char tmpbuff[2048]; unsigned int spos, dpos; char *ptr; + enum ParseMode mode = MODE_FIRST; BOOL speed_changed = FALSE; ptr = (char *)buff; *wbytes = 0; for (spos = dpos = 0; spos < len; spos++, ptr++) { - switch (*ptr) { - case '1': - pvar->speed = 0; - speed_changed = TRUE; - break; - case 'f': - case 'F': - case '+': - if (pvar->speed < 8) { - pvar->speed++; + switch (mode) { + case MODE_FIRST: + switch (*ptr) { + case '1': + pvar->speed = 0; + speed_changed = TRUE; + break; + case 'f': + case 'F': + case '+': + if (pvar->speed < 8) { + pvar->speed++; + speed_changed = TRUE; + } + break; + case 's': + case 'S': + case '-': + if (pvar->speed > -8) { + pvar->speed--; + speed_changed = TRUE; + } + break; + case 'p': + case 'P': + pvar->pause = !(pvar->pause); speed_changed = TRUE; + break; + case ' ': + case '.': + pvar->wait.tv_sec = 0; + break; + case ESC: + mode = MODE_ESC; + break; + default: + if (dpos < sizeof(tmpbuff)) { + tmpbuff[dpos++] = *ptr; + } } break; - case 's': - case 'S': - case '-': - if (pvar->speed > -8) { - pvar->speed--; - speed_changed = TRUE; + case MODE_ESC: + switch (*ptr) { + case '[': + mode = MODE_CSI; + break; + case 'P': // DCS + case ']': // OSC + case 'X': // SOS + case '^': // PM + case '_': // APC + mode = MODE_STRING; + break; + default: + mode = MODE_FIRST; + break; } break; - case 'p': - case 'P': - pvar->pause = !(pvar->pause); - speed_changed = TRUE; + case MODE_CSI: + if (*ptr < ' ' || *ptr > '?') { + mode = MODE_FIRST; + } break; - case ' ': - case '.': - pvar->wait.tv_sec = 0; + case MODE_STRING: + if (*ptr == ESC) { + mode = MODE_STR_ESC; + } + else if (*ptr == BEL) { + mode = MODE_FIRST; + } break; - default: - if (dpos < sizeof(tmpbuff)) { - tmpbuff[dpos++] = *ptr; + case MODE_STR_ESC: + if (*ptr == '\\') { + mode = MODE_FIRST; + } + else if (*ptr != ESC) { + mode = MODE_STRING; } + break; } } @@ -295,8 +380,10 @@ static BOOL PASCAL TTXWriteFile(HANDLE fh, LPCVOID buff, DWORD len, LPDWORD wbyt static void PASCAL TTXOpenFile(TTXFileHooks *hooks) { if (pvar->cv->PortType == IdFile && pvar->enable) { + pvar->origPCreateFile = *hooks->PCreateFile; pvar->origPReadFile = *hooks->PReadFile; pvar->origPWriteFile = *hooks->PWriteFile; + *hooks->PCreateFile = TTXCreateFile; *hooks->PReadFile = TTXReadFile; *hooks->PWriteFile = TTXWriteFile; @@ -305,6 +392,9 @@ static void PASCAL TTXOpenFile(TTXFileHooks *hooks) { } static void PASCAL TTXCloseFile(TTXFileHooks *hooks) { + if (pvar->origPCreateFile) { + *hooks->PCreateFile = pvar->origPCreateFile; + } if (pvar->origPReadFile) { *hooks->PReadFile = pvar->origPReadFile; } @@ -347,27 +437,32 @@ static void PASCAL TTXModifyPopupMenu(HMENU menu) { } } -static void PASCAL TTXParseParam(PCHAR Param, PTTSet ts, PCHAR DDETopic) { - char buff[1024]; - PCHAR next; +static void PASCAL TTXParseParam(wchar_t *Param, PTTSet ts, PCHAR DDETopic) { + wchar_t buff[1024]; + wchar_t *next; pvar->origParseParam(Param, ts, DDETopic); next = Param; while (next = GetParam(buff, sizeof(buff), next)) { - if (_strnicmp(buff, "/ttyplay-nowait", 16) == 0 || _strnicmp(buff, "/tpnw", 6) == 0) { + if (_wcsnicmp(buff, L"/ttyplay-nowait", 16) == 0 || _wcsnicmp(buff, L"/tpnw", 6) == 0) { pvar->nowait = TRUE; } - else if (_strnicmp(buff, "/TTYPLAY", 9) == 0 || _strnicmp(buff, "/TP", 4) == 0) { + else if (_wcsnicmp(buff, L"/TTYPLAY", 9) == 0 || _wcsnicmp(buff, L"/TP", 4) == 0) { pvar->enable = TRUE; + if (ts->PortType == IdFile && strlen(ts->HostName) > 0) { + wchar_t *HostNameW = ToWcharA(ts->HostName); + free(pvar->openfnW); + pvar->openfnW = HostNameW; + } } } } -static void PASCAL TTXReadIniFile(PCHAR fn, PTTSet ts) { +static void PASCAL TTXReadIniFile(const wchar_t *fn, PTTSet ts) { (pvar->origReadIniFile)(fn, ts); // ts->TitleFormat = 0; - pvar->maxwait = GetPrivateProfileInt(INISECTION, "MaxWait", 0, fn); - pvar->speed = GetPrivateProfileInt(INISECTION, "Speed", 0, fn); + pvar->maxwait = GetPrivateProfileIntAFileW(INISECTION, "MaxWait", 0, fn); + pvar->speed = GetPrivateProfileIntAFileW(INISECTION, "Speed", 0, fn); } static void PASCAL TTXGetSetupHooks(TTXSetupHooks *hooks) { @@ -378,22 +473,22 @@ static void PASCAL TTXGetSetupHooks(TTXSetupHooks *hooks) { } static int PASCAL TTXProcessCommand(HWND hWin, WORD cmd) { - OPENFILENAME ofn; - switch (cmd) { case ID_MENU_REPLAY: if (!pvar->enable) { + TTOPENFILENAMEW ofn; + wchar_t *openfn; + memset(&ofn, 0, sizeof(ofn)); - ofn.lStructSize = get_OPENFILENAME_SIZE(); ofn.hwndOwner = hWin; - ofn.lpstrFilter = "ttyrec(*.tty)\0*.tty\0All files(*.*)\0*.*\0\0"; - ofn.lpstrFile = pvar->openfn; - ofn.nMaxFile = sizeof(pvar->openfn); - ofn.lpstrDefExt = "tty"; - // ofn.lpstrTitle = ""; + ofn.lpstrFilter = L"ttyrec(*.tty)\0*.tty\0All files(*.*)\0*.*\0\0"; + ofn.lpstrDefExt = L"tty"; + // ofn.lpstrTitle = L""; ofn.Flags = OFN_FILEMUSTEXIST; - - if (GetOpenFileName(&ofn)) { + + if (TTGetOpenFileNameW(&ofn, &openfn)) { + free(pvar->openfnW); + pvar->openfnW = openfn; pvar->ReplaceHostDlg = TRUE; // Call New-Connection dialog SendMessage(hWin, WM_COMMAND, MAKELONG(ID_FILE_NEWCONNECTION, 0), 0); @@ -420,7 +515,7 @@ static BOOL PASCAL TTXSetupWin(HWND parent, PTTSet ts) { static BOOL PASCAL TTXGetHostName(HWND parent, PGetHNRec GetHNRec) { GetHNRec->PortType = IdTCPIP; - _snprintf_s(GetHNRec->HostName, MAXPATHLEN, _TRUNCATE, "/R=\"%s\" /TP", pvar->openfn); + _snwprintf_s(GetHNRec->HostName, HostNameMaxLength, _TRUNCATE, L"/R=\"%s\" /TP", pvar->openfnW); return (TRUE); } @@ -480,12 +575,13 @@ BOOL WINAPI DllMain(HANDLE hInstance, break; case DLL_PROCESS_ATTACH: /* do process initialization */ - DoCover_IsDebuggerPresent(); hInst = hInstance; pvar = &InstVar; break; case DLL_PROCESS_DETACH: /* do process cleanup */ + free(pvar->openfnW); + pvar->openfnW = NULL; break; } return TRUE; diff --git a/TTXSamples/TTXttyrec/TTXttyplay.v10.vcxproj b/TTXSamples/TTXttyrec/TTXttyplay.v10.vcxproj deleted file mode 100644 index 813ae02ba..000000000 --- a/TTXSamples/TTXttyrec/TTXttyplay.v10.vcxproj +++ /dev/null @@ -1,101 +0,0 @@ - - - - - Debug - Win32 - - - Release - Win32 - - - - {3181E887-2183-4FB8-84CC-CA5B4D48BC71} - TTXttyplay - Win32Proj - TTXttyplay - - - - DynamicLibrary - NotSet - true - - - DynamicLibrary - NotSet - - - - - - - - - - - - - <_ProjectFileVersion>10.0.40219.1 - $(SolutionDir)$(Configuration)\ - play.$(Configuration)\ - true - $(SolutionDir)$(Configuration)\ - play.$(Configuration)\ - false - - - - Disabled - $(SolutionDir)..\teraterm\common;$(SolutionDir)..\teraterm\teraterm;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;_USRDLL;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebug - - - Level3 - EditAndContinue - - - $(SolutionDir)..\teraterm\$(Configuration)\ttpcmn.lib;%(AdditionalDependencies) - true - Windows - MachineX86 - - - - - $(SolutionDir)..\teraterm\common;$(SolutionDir)..\teraterm\teraterm;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;_USRDLL;%(PreprocessorDefinitions) - MultiThreaded - - - Level3 - ProgramDatabase - - - $(SolutionDir)..\teraterm\$(Configuration)\ttpcmn.lib;%(AdditionalDependencies) - true - Windows - true - true - MachineX86 - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/TTXSamples/TTXttyrec/TTXttyplay.v10.vcxproj.filters b/TTXSamples/TTXttyrec/TTXttyplay.v10.vcxproj.filters deleted file mode 100644 index 3886216ab..000000000 --- a/TTXSamples/TTXttyrec/TTXttyplay.v10.vcxproj.filters +++ /dev/null @@ -1,36 +0,0 @@ - - - - - {4FC737F1-C7A5-4376-A066-2A32D752A2FF} - cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx - - - {e5871e85-1d37-4115-b809-224ea3242902} - - - {61d8d7b1-e7d3-47a5-9198-9f5ffdb03d62} - - - - - Source Files - - - Source Files - - - - - ReadMe - - - ReadMe - - - - - Header Files - - - \ No newline at end of file diff --git a/TTXSamples/TTXttyrec/TTXttyplay.v11.vcxproj b/TTXSamples/TTXttyrec/TTXttyplay.v11.vcxproj deleted file mode 100644 index 16bc2d800..000000000 --- a/TTXSamples/TTXttyrec/TTXttyplay.v11.vcxproj +++ /dev/null @@ -1,106 +0,0 @@ - - - - - Debug - Win32 - - - Release - Win32 - - - - {3181E887-2183-4FB8-84CC-CA5B4D48BC71} - TTXttyplay - Win32Proj - TTXttyplay - - - - DynamicLibrary - v110 - NotSet - true - - - DynamicLibrary - v110 - NotSet - - - - - - - - - - - - - <_ProjectFileVersion>11.0.61030.0 - - - $(SolutionDir)$(Configuration)\ - play.$(Configuration)\ - true - - - $(SolutionDir)$(Configuration)\ - play.$(Configuration)\ - false - - - - Disabled - $(SolutionDir)..\teraterm\common;$(SolutionDir)..\teraterm\teraterm;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;_USRDLL;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebug - - Level3 - EditAndContinue - - - $(SolutionDir)..\teraterm\$(Configuration)\ttpcmn.lib;%(AdditionalDependencies) - true - Windows - MachineX86 - false - - - - - $(SolutionDir)..\teraterm\common;$(SolutionDir)..\teraterm\teraterm;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;_USRDLL;%(PreprocessorDefinitions) - MultiThreaded - - Level3 - ProgramDatabase - - - $(SolutionDir)..\teraterm\$(Configuration)\ttpcmn.lib;%(AdditionalDependencies) - true - Windows - true - true - MachineX86 - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/TTXSamples/TTXttyrec/TTXttyplay.v11.vcxproj.filters b/TTXSamples/TTXttyrec/TTXttyplay.v11.vcxproj.filters deleted file mode 100644 index fc4edeb96..000000000 --- a/TTXSamples/TTXttyrec/TTXttyplay.v11.vcxproj.filters +++ /dev/null @@ -1,36 +0,0 @@ - - - - - {4FC737F1-C7A5-4376-A066-2A32D752A2FF} - cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx - - - {d32a96fc-d339-480e-9569-ec0475b3df61} - - - {08cb7286-c0e3-4b07-8c4e-133837412957} - - - - - Source Files - - - Source Files - - - - - ReadMe - - - ReadMe - - - - - Header Files - - - \ No newline at end of file diff --git a/TTXSamples/TTXttyrec/TTXttyplay.v12.vcxproj b/TTXSamples/TTXttyrec/TTXttyplay.v12.vcxproj deleted file mode 100644 index 1ee07504c..000000000 --- a/TTXSamples/TTXttyrec/TTXttyplay.v12.vcxproj +++ /dev/null @@ -1,106 +0,0 @@ - - - - - Debug - Win32 - - - Release - Win32 - - - - {3181E887-2183-4FB8-84CC-CA5B4D48BC71} - TTXttyplay - Win32Proj - TTXttyplay - - - - DynamicLibrary - v120 - NotSet - true - - - DynamicLibrary - v120 - NotSet - - - - - - - - - - - - - <_ProjectFileVersion>12.0.30501.0 - - - $(SolutionDir)$(Configuration)\ - play.$(Configuration)\ - true - - - $(SolutionDir)$(Configuration)\ - play.$(Configuration)\ - false - - - - Disabled - $(SolutionDir)..\teraterm\common;$(SolutionDir)..\teraterm\teraterm;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;_USRDLL;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebug - - Level3 - EditAndContinue - - - $(SolutionDir)..\teraterm\$(Configuration)\ttpcmn.lib;%(AdditionalDependencies) - true - Windows - MachineX86 - false - - - - - $(SolutionDir)..\teraterm\common;$(SolutionDir)..\teraterm\teraterm;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;_USRDLL;%(PreprocessorDefinitions) - MultiThreaded - - Level3 - ProgramDatabase - - - $(SolutionDir)..\teraterm\$(Configuration)\ttpcmn.lib;%(AdditionalDependencies) - true - Windows - true - true - MachineX86 - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/TTXSamples/TTXttyrec/TTXttyplay.v14.vcxproj b/TTXSamples/TTXttyrec/TTXttyplay.v14.vcxproj deleted file mode 100644 index 96eb4b5fa..000000000 --- a/TTXSamples/TTXttyrec/TTXttyplay.v14.vcxproj +++ /dev/null @@ -1,106 +0,0 @@ - - - - - Debug - Win32 - - - Release - Win32 - - - - {3181E887-2183-4FB8-84CC-CA5B4D48BC71} - TTXttyplay - Win32Proj - TTXttyplay - - - - DynamicLibrary - v140 - NotSet - true - - - DynamicLibrary - v140 - NotSet - - - - - - - - - - - - - <_ProjectFileVersion>12.0.30501.0 - - - $(SolutionDir)$(Configuration)\ - play.$(Configuration)\ - true - - - $(SolutionDir)$(Configuration)\ - play.$(Configuration)\ - false - - - - Disabled - $(SolutionDir)..\teraterm\common;$(SolutionDir)..\teraterm\teraterm;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;_USRDLL;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebug - - Level3 - EditAndContinue - - - $(SolutionDir)..\teraterm\$(Configuration)\ttpcmn.lib;%(AdditionalDependencies) - true - Windows - MachineX86 - false - - - - - $(SolutionDir)..\teraterm\common;$(SolutionDir)..\teraterm\teraterm;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;_USRDLL;%(PreprocessorDefinitions) - MultiThreaded - - Level3 - ProgramDatabase - - - $(SolutionDir)..\teraterm\$(Configuration)\ttpcmn.lib;%(AdditionalDependencies) - true - Windows - true - true - MachineX86 - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/TTXSamples/TTXttyrec/TTXttyplay.v15.vcxproj b/TTXSamples/TTXttyrec/TTXttyplay.v15.vcxproj deleted file mode 100644 index ff9847b72..000000000 --- a/TTXSamples/TTXttyrec/TTXttyplay.v15.vcxproj +++ /dev/null @@ -1,106 +0,0 @@ - - - - - Debug - Win32 - - - Release - Win32 - - - - {3181E887-2183-4FB8-84CC-CA5B4D48BC71} - TTXttyplay - Win32Proj - TTXttyplay - - - - DynamicLibrary - v141 - NotSet - true - - - DynamicLibrary - v141 - NotSet - - - - - - - - - - - - - <_ProjectFileVersion>12.0.30501.0 - - - $(SolutionDir)$(Configuration)\ - play.$(Configuration)\ - true - - - $(SolutionDir)$(Configuration)\ - play.$(Configuration)\ - false - - - - Disabled - $(SolutionDir)..\teraterm\common;$(SolutionDir)..\teraterm\teraterm;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;_USRDLL;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebug - - Level3 - EditAndContinue - - - $(SolutionDir)..\teraterm\$(Configuration)\ttpcmn.lib;%(AdditionalDependencies) - true - Windows - MachineX86 - false - - - - - $(SolutionDir)..\teraterm\common;$(SolutionDir)..\teraterm\teraterm;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;_USRDLL;%(PreprocessorDefinitions) - MultiThreaded - - Level3 - ProgramDatabase - - - $(SolutionDir)..\teraterm\$(Configuration)\ttpcmn.lib;%(AdditionalDependencies) - true - Windows - true - true - MachineX86 - - - - - - - - - - - - - - - - - diff --git a/TTXSamples/TTXttyrec/TTXttyplay.v15.vcxproj.filters b/TTXSamples/TTXttyrec/TTXttyplay.v15.vcxproj.filters deleted file mode 100644 index 982876c3d..000000000 --- a/TTXSamples/TTXttyrec/TTXttyplay.v15.vcxproj.filters +++ /dev/null @@ -1,36 +0,0 @@ - - - - - {4FC737F1-C7A5-4376-A066-2A32D752A2FF} - cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx - - - {9ecc9ed6-14bd-4931-8e17-5de779b005f2} - - - {b5b0513b-87e3-414c-9535-6e4b8451b4cb} - - - - - Source Files - - - Source Files - - - - - ReadMe - - - ReadMe - - - - - Header Files - - - \ No newline at end of file diff --git a/TTXSamples/TTXttyrec/TTXttyplay.v16.vcxproj b/TTXSamples/TTXttyrec/TTXttyplay.v16.vcxproj new file mode 100644 index 000000000..d564fa109 --- /dev/null +++ b/TTXSamples/TTXttyrec/TTXttyplay.v16.vcxproj @@ -0,0 +1,107 @@ + + + + + Debug + Win32 + + + Release + Win32 + + + + {3181E887-2183-4FB8-84CC-CA5B4D48BC71} + TTXttyplay + Win32Proj + TTXttyplay + 10.0 + + + + DynamicLibrary + v142 + NotSet + true + + + DynamicLibrary + v142 + NotSet + + + + + + + + + + + + + <_ProjectFileVersion>12.0.30501.0 + + + $(SolutionDir)$(Configuration)\ + play.$(Configuration)\ + true + + + $(SolutionDir)$(Configuration)\ + play.$(Configuration)\ + false + + + + Disabled + $(SolutionDir)..\teraterm\common;$(SolutionDir)..\teraterm\teraterm;%(AdditionalIncludeDirectories) + WIN32;_DEBUG;_WINDOWS;_USRDLL;%(PreprocessorDefinitions) + false + EnableFastChecks + MultiThreadedDebug + + Level3 + EditAndContinue + + + $(SolutionDir)..\teraterm\$(Configuration)\common_static.lib;$(SolutionDir)..\teraterm\$(Configuration)\ttpcmn.lib;%(AdditionalDependencies) + true + Windows + MachineX86 + false + + + + + $(SolutionDir)..\teraterm\common;$(SolutionDir)..\teraterm\teraterm;%(AdditionalIncludeDirectories) + WIN32;NDEBUG;_WINDOWS;_USRDLL;%(PreprocessorDefinitions) + MultiThreaded + + Level3 + ProgramDatabase + + + $(SolutionDir)..\teraterm\$(Configuration)\common_static.lib;$(SolutionDir)..\teraterm\$(Configuration)\ttpcmn.lib;%(AdditionalDependencies) + true + Windows + true + true + MachineX86 + + + + + + + + + + + + + + + + + diff --git a/TTXSamples/TTXttyrec/TTXttyplay.v12.vcxproj.filters b/TTXSamples/TTXttyrec/TTXttyplay.v16.vcxproj.filters similarity index 100% rename from TTXSamples/TTXttyrec/TTXttyplay.v12.vcxproj.filters rename to TTXSamples/TTXttyrec/TTXttyplay.v16.vcxproj.filters diff --git a/TTXSamples/TTXttyrec/TTXttyplay.v17.vcxproj b/TTXSamples/TTXttyrec/TTXttyplay.v17.vcxproj new file mode 100644 index 000000000..792b2a341 --- /dev/null +++ b/TTXSamples/TTXttyrec/TTXttyplay.v17.vcxproj @@ -0,0 +1,107 @@ + + + + + Debug + Win32 + + + Release + Win32 + + + + {3181E887-2183-4FB8-84CC-CA5B4D48BC71} + TTXttyplay + Win32Proj + TTXttyplay + 10.0 + + + + DynamicLibrary + v143 + NotSet + true + + + DynamicLibrary + v143 + NotSet + + + + + + + + + + + + + <_ProjectFileVersion>12.0.30501.0 + + + $(SolutionDir)$(Configuration)\ + play.$(Configuration)\ + true + + + $(SolutionDir)$(Configuration)\ + play.$(Configuration)\ + false + + + + Disabled + $(SolutionDir)..\teraterm\common;$(SolutionDir)..\teraterm\teraterm;%(AdditionalIncludeDirectories) + WIN32;_DEBUG;_WINDOWS;_USRDLL;%(PreprocessorDefinitions) + false + EnableFastChecks + MultiThreadedDebug + + Level3 + EditAndContinue + + + $(SolutionDir)..\teraterm\$(Configuration)\common_static.lib;$(SolutionDir)..\teraterm\$(Configuration)\ttpcmn.lib;%(AdditionalDependencies) + true + Windows + MachineX86 + false + + + + + $(SolutionDir)..\teraterm\common;$(SolutionDir)..\teraterm\teraterm;%(AdditionalIncludeDirectories) + WIN32;NDEBUG;_WINDOWS;_USRDLL;%(PreprocessorDefinitions) + MultiThreaded + + Level3 + ProgramDatabase + + + $(SolutionDir)..\teraterm\$(Configuration)\common_static.lib;$(SolutionDir)..\teraterm\$(Configuration)\ttpcmn.lib;%(AdditionalDependencies) + true + Windows + true + true + MachineX86 + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/TTXSamples/TTXttyrec/TTXttyplay.v14.vcxproj.filters b/TTXSamples/TTXttyrec/TTXttyplay.v17.vcxproj.filters similarity index 100% rename from TTXSamples/TTXttyrec/TTXttyplay.v14.vcxproj.filters rename to TTXSamples/TTXttyrec/TTXttyplay.v17.vcxproj.filters diff --git a/TTXSamples/TTXttyrec/TTXttyplay.v9.vcproj b/TTXSamples/TTXttyrec/TTXttyplay.v9.vcproj deleted file mode 100644 index 7a3026eee..000000000 --- a/TTXSamples/TTXttyrec/TTXttyplay.v9.vcproj +++ /dev/null @@ -1,212 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/TTXSamples/TTXttyrec/TTXttyplay.vcproj b/TTXSamples/TTXttyrec/TTXttyplay.vcproj deleted file mode 100755 index 8c315a6b4..000000000 --- a/TTXSamples/TTXttyrec/TTXttyplay.vcproj +++ /dev/null @@ -1,213 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/TTXSamples/TTXttyrec/TTXttyrec.c b/TTXSamples/TTXttyrec/TTXttyrec.c index ebaad2088..3470f08b6 100644 --- a/TTXSamples/TTXttyrec/TTXttyrec.c +++ b/TTXSamples/TTXttyrec/TTXttyrec.c @@ -1,18 +1,19 @@ #include #include #include +#include +#include + #include "teraterm.h" #include "tttypes.h" #include "ttplugin.h" #include "tt_res.h" -#include -#include +#include "inifile_com.h" +#include "ttcommdlg.h" #include "gettimeofday.h" -#include "compat_w95.h" - #define ORDER 6000 #define ID_MENUITEM 55301 @@ -53,7 +54,7 @@ HMENU GetSubMenuByChildID(HMENU menu, UINT id) { items = GetMenuItemCount(menu); for (i=0; irecord = FALSE; } -static void PASCAL TTXReadIniFile(PCHAR fn, PTTSet ts) { +static void PASCAL TTXReadIniFile(const wchar_t *fn, PTTSet ts) { (pvar->origReadIniFile)(fn, ts); pvar->rec_stsize = GetOnOff(INISECTION, "RecordStartSize", fn, TRUE); } void WriteData(HANDLE fh, char *buff, int len) { struct timeval t; - int b[3], w; + int b[3]; + DWORD w; - gettimeofday(&t, NULL); + gettimeofday(&t /*, NULL*/ ); b[0] = t.tv_sec; b[1] = t.tv_usec; b[2] = len; @@ -189,52 +191,51 @@ static void PASCAL TTXModifyPopupMenu(HMENU menu) { } } -static int PASCAL TTXProcessCommand(HWND hWin, WORD cmd) { - OPENFILENAME ofn; - char fname[MAX_PATH]; - char buff[20]; - - fname[0] = '\0'; - - if (cmd==ID_MENUITEM) { - if (pvar->record) { - if (pvar->fh != INVALID_HANDLE_VALUE) { - CloseHandle(pvar->fh); - pvar->fh = INVALID_HANDLE_VALUE; - } - pvar->record = FALSE; - CheckMenuItem(pvar->FileMenu, ID_MENUITEM, MF_BYCOMMAND | MF_UNCHECKED); - } - else { - if (pvar->fh != INVALID_HANDLE_VALUE) { - CloseHandle(pvar->fh); - } - - memset(&ofn, 0, sizeof(ofn)); - ofn.lStructSize = get_OPENFILENAME_SIZE(); - ofn.hwndOwner = hWin; - ofn.lpstrFilter = "ttyrec(*.tty)\0*.tty\0All files(*.*)\0*.*\0\0"; - ofn.lpstrFile = fname; - ofn.nMaxFile = sizeof(fname); - ofn.lpstrDefExt = "tty"; - // ofn.lpstrTitle = ""; - ofn.Flags = OFN_OVERWRITEPROMPT; - if (GetSaveFileName(&ofn)) { - pvar->fh = CreateFile(fname, GENERIC_WRITE, 0, NULL, CREATE_ALWAYS, FILE_ATTRIBUTE_NORMAL, NULL); - if (pvar->fh != INVALID_HANDLE_VALUE) { - pvar->record = TRUE; - CheckMenuItem(pvar->FileMenu, ID_MENUITEM, MF_BYCOMMAND | MF_CHECKED); - if (pvar->rec_stsize) { - _snprintf_s(buff, sizeof(buff), _TRUNCATE, "\033[8;%d;%dt", - pvar->ts->TerminalHeight, pvar->ts->TerminalWidth); - WriteData(pvar->fh, buff, (int)strlen(buff)); - } +static int PASCAL TTXProcessCommand(HWND hWin, WORD cmd) +{ + if (cmd==ID_MENUITEM) { + if (pvar->record) { + if (pvar->fh != INVALID_HANDLE_VALUE) { + CloseHandle(pvar->fh); + pvar->fh = INVALID_HANDLE_VALUE; + } + pvar->record = FALSE; + CheckMenuItem(pvar->FileMenu, ID_MENUITEM, MF_BYCOMMAND | MF_UNCHECKED); + } + else { + TTOPENFILENAMEW ofn; + wchar_t *fname; + + if (pvar->fh != INVALID_HANDLE_VALUE) { + CloseHandle(pvar->fh); + } + + memset(&ofn, 0, sizeof(ofn)); + ofn.hwndOwner = hWin; + ofn.lpstrFilter = L"ttyrec(*.tty)\0*.tty\0All files(*.*)\0*.*\0\0"; + ofn.lpstrFile = NULL; + ofn.lpstrDefExt = L"tty"; + ofn.lpstrInitialDir = pvar->ts->LogDirW; + //ofn.lpstrTitle = L""; + ofn.Flags = OFN_OVERWRITEPROMPT; + if (TTGetSaveFileNameW(&ofn, &fname)) { + pvar->fh = CreateFileW(fname, GENERIC_WRITE, 0, NULL, CREATE_ALWAYS, FILE_ATTRIBUTE_NORMAL, NULL); + free(fname); + if (pvar->fh != INVALID_HANDLE_VALUE) { + pvar->record = TRUE; + CheckMenuItem(pvar->FileMenu, ID_MENUITEM, MF_BYCOMMAND | MF_CHECKED); + if (pvar->rec_stsize) { + char buff[20]; + _snprintf_s(buff, sizeof(buff), _TRUNCATE, "\033[8;%d;%dt", + pvar->ts->TerminalHeight, pvar->ts->TerminalWidth); + WriteData(pvar->fh, buff, (int)strlen(buff)); + } + } + } + } + return 1; } - } - } - return 1; - } - return 0; + return 0; } static void PASCAL TTXEnd(void) { @@ -288,7 +289,6 @@ BOOL WINAPI DllMain(HANDLE hInstance, break; case DLL_PROCESS_ATTACH: /* do process initialization */ - DoCover_IsDebuggerPresent(); hInst = hInstance; pvar = &InstVar; break; diff --git a/TTXSamples/TTXttyrec/TTXttyrec.v10.vcxproj b/TTXSamples/TTXttyrec/TTXttyrec.v10.vcxproj deleted file mode 100644 index 14bbc413d..000000000 --- a/TTXSamples/TTXttyrec/TTXttyrec.v10.vcxproj +++ /dev/null @@ -1,101 +0,0 @@ - - - - - Debug - Win32 - - - Release - Win32 - - - - {5798E37E-0428-457E-A652-EE0A75130327} - TTXttyrec - Win32Proj - TTXttyrec - - - - DynamicLibrary - NotSet - true - - - DynamicLibrary - NotSet - - - - - - - - - - - - - <_ProjectFileVersion>10.0.40219.1 - $(SolutionDir)$(Configuration)\ - rec.$(Configuration)\ - true - $(SolutionDir)$(Configuration)\ - rec.$(Configuration)\ - false - - - - Disabled - $(SolutionDir)..\teraterm\common;$(SolutionDir)..\teraterm\teraterm;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;_USRDLL;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebug - - - Level3 - EditAndContinue - - - $(SolutionDir)..\teraterm\$(Configuration)\ttpcmn.lib;%(AdditionalDependencies) - true - Windows - MachineX86 - - - - - $(SolutionDir)..\teraterm\common;$(SolutionDir)..\teraterm\teraterm;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;_USRDLL;%(PreprocessorDefinitions) - MultiThreaded - - - Level3 - ProgramDatabase - - - $(SolutionDir)..\teraterm\$(Configuration)\ttpcmn.lib;%(AdditionalDependencies) - true - Windows - true - true - MachineX86 - - - - - - - - - - - - - - - - - diff --git a/TTXSamples/TTXttyrec/TTXttyrec.v10.vcxproj.filters b/TTXSamples/TTXttyrec/TTXttyrec.v10.vcxproj.filters deleted file mode 100644 index 0b5fa0393..000000000 --- a/TTXSamples/TTXttyrec/TTXttyrec.v10.vcxproj.filters +++ /dev/null @@ -1,36 +0,0 @@ - - - - - {4FC737F1-C7A5-4376-A066-2A32D752A2FF} - cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx - - - {98002050-2a1f-4787-9e81-0dabe50a3da9} - - - {0b6c5f31-c1d9-4b57-9f7a-f5b5dd63fc22} - - - - - Source Files - - - Source Files - - - - - ReadMe - - - ReadMe - - - - - Header Files - - - \ No newline at end of file diff --git a/TTXSamples/TTXttyrec/TTXttyrec.v11.vcxproj b/TTXSamples/TTXttyrec/TTXttyrec.v11.vcxproj deleted file mode 100644 index b00f75249..000000000 --- a/TTXSamples/TTXttyrec/TTXttyrec.v11.vcxproj +++ /dev/null @@ -1,106 +0,0 @@ - - - - - Debug - Win32 - - - Release - Win32 - - - - {5798E37E-0428-457E-A652-EE0A75130327} - TTXttyrec - Win32Proj - TTXttyrec - - - - DynamicLibrary - v110 - NotSet - true - - - DynamicLibrary - v110 - NotSet - - - - - - - - - - - - - <_ProjectFileVersion>11.0.61030.0 - - - $(SolutionDir)$(Configuration)\ - rec.$(Configuration)\ - true - - - $(SolutionDir)$(Configuration)\ - rec.$(Configuration)\ - false - - - - Disabled - $(SolutionDir)..\teraterm\common;$(SolutionDir)..\teraterm\teraterm;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;_USRDLL;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebug - - Level3 - EditAndContinue - - - $(SolutionDir)..\teraterm\$(Configuration)\ttpcmn.lib;%(AdditionalDependencies) - true - Windows - MachineX86 - false - - - - - $(SolutionDir)..\teraterm\common;$(SolutionDir)..\teraterm\teraterm;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;_USRDLL;%(PreprocessorDefinitions) - MultiThreaded - - Level3 - ProgramDatabase - - - $(SolutionDir)..\teraterm\$(Configuration)\ttpcmn.lib;%(AdditionalDependencies) - true - Windows - true - true - MachineX86 - - - - - - - - - - - - - - - - - diff --git a/TTXSamples/TTXttyrec/TTXttyrec.v11.vcxproj.filters b/TTXSamples/TTXttyrec/TTXttyrec.v11.vcxproj.filters deleted file mode 100644 index 84e0d2e7b..000000000 --- a/TTXSamples/TTXttyrec/TTXttyrec.v11.vcxproj.filters +++ /dev/null @@ -1,36 +0,0 @@ - - - - - {4FC737F1-C7A5-4376-A066-2A32D752A2FF} - cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx - - - {49b28a0e-f96a-425f-81c1-179b2f0944e6} - - - {2319f6c6-b51d-496c-899c-d7b84d9d3f6e} - - - - - Source Files - - - Source Files - - - - - ReadMe - - - ReadMe - - - - - Header Files - - - \ No newline at end of file diff --git a/TTXSamples/TTXttyrec/TTXttyrec.v12.vcxproj b/TTXSamples/TTXttyrec/TTXttyrec.v12.vcxproj deleted file mode 100644 index 1bfbd26cc..000000000 --- a/TTXSamples/TTXttyrec/TTXttyrec.v12.vcxproj +++ /dev/null @@ -1,106 +0,0 @@ - - - - - Debug - Win32 - - - Release - Win32 - - - - {5798E37E-0428-457E-A652-EE0A75130327} - TTXttyrec - Win32Proj - TTXttyrec - - - - DynamicLibrary - v120 - NotSet - true - - - DynamicLibrary - v120 - NotSet - - - - - - - - - - - - - <_ProjectFileVersion>12.0.30501.0 - - - $(SolutionDir)$(Configuration)\ - rec.$(Configuration)\ - true - - - $(SolutionDir)$(Configuration)\ - rec.$(Configuration)\ - false - - - - Disabled - $(SolutionDir)..\teraterm\common;$(SolutionDir)..\teraterm\teraterm;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;_USRDLL;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebug - - Level3 - EditAndContinue - - - $(SolutionDir)..\teraterm\$(Configuration)\ttpcmn.lib;%(AdditionalDependencies) - true - Windows - MachineX86 - false - - - - - $(SolutionDir)..\teraterm\common;$(SolutionDir)..\teraterm\teraterm;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;_USRDLL;%(PreprocessorDefinitions) - MultiThreaded - - Level3 - ProgramDatabase - - - $(SolutionDir)..\teraterm\$(Configuration)\ttpcmn.lib;%(AdditionalDependencies) - true - Windows - true - true - MachineX86 - - - - - - - - - - - - - - - - - diff --git a/TTXSamples/TTXttyrec/TTXttyrec.v14.vcxproj b/TTXSamples/TTXttyrec/TTXttyrec.v14.vcxproj deleted file mode 100644 index 932eb1b92..000000000 --- a/TTXSamples/TTXttyrec/TTXttyrec.v14.vcxproj +++ /dev/null @@ -1,106 +0,0 @@ - - - - - Debug - Win32 - - - Release - Win32 - - - - {5798E37E-0428-457E-A652-EE0A75130327} - TTXttyrec - Win32Proj - TTXttyrec - - - - DynamicLibrary - v140 - NotSet - true - - - DynamicLibrary - v140 - NotSet - - - - - - - - - - - - - <_ProjectFileVersion>12.0.30501.0 - - - $(SolutionDir)$(Configuration)\ - rec.$(Configuration)\ - true - - - $(SolutionDir)$(Configuration)\ - rec.$(Configuration)\ - false - - - - Disabled - $(SolutionDir)..\teraterm\common;$(SolutionDir)..\teraterm\teraterm;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;_USRDLL;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebug - - Level3 - EditAndContinue - - - $(SolutionDir)..\teraterm\$(Configuration)\ttpcmn.lib;%(AdditionalDependencies) - true - Windows - MachineX86 - false - - - - - $(SolutionDir)..\teraterm\common;$(SolutionDir)..\teraterm\teraterm;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;_USRDLL;%(PreprocessorDefinitions) - MultiThreaded - - Level3 - ProgramDatabase - - - $(SolutionDir)..\teraterm\$(Configuration)\ttpcmn.lib;%(AdditionalDependencies) - true - Windows - true - true - MachineX86 - - - - - - - - - - - - - - - - - diff --git a/TTXSamples/TTXttyrec/TTXttyrec.v15.vcxproj b/TTXSamples/TTXttyrec/TTXttyrec.v15.vcxproj deleted file mode 100644 index 127d32dea..000000000 --- a/TTXSamples/TTXttyrec/TTXttyrec.v15.vcxproj +++ /dev/null @@ -1,106 +0,0 @@ - - - - - Debug - Win32 - - - Release - Win32 - - - - {5798E37E-0428-457E-A652-EE0A75130327} - TTXttyrec - Win32Proj - TTXttyrec - - - - DynamicLibrary - v141 - NotSet - true - - - DynamicLibrary - v141 - NotSet - - - - - - - - - - - - - <_ProjectFileVersion>12.0.30501.0 - - - $(SolutionDir)$(Configuration)\ - rec.$(Configuration)\ - true - - - $(SolutionDir)$(Configuration)\ - rec.$(Configuration)\ - false - - - - Disabled - $(SolutionDir)..\teraterm\common;$(SolutionDir)..\teraterm\teraterm;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;_USRDLL;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebug - - Level3 - EditAndContinue - - - $(SolutionDir)..\teraterm\$(Configuration)\ttpcmn.lib;%(AdditionalDependencies) - true - Windows - MachineX86 - false - - - - - $(SolutionDir)..\teraterm\common;$(SolutionDir)..\teraterm\teraterm;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;_USRDLL;%(PreprocessorDefinitions) - MultiThreaded - - Level3 - ProgramDatabase - - - $(SolutionDir)..\teraterm\$(Configuration)\ttpcmn.lib;%(AdditionalDependencies) - true - Windows - true - true - MachineX86 - - - - - - - - - - - - - - - - - diff --git a/TTXSamples/TTXttyrec/TTXttyrec.v15.vcxproj.filters b/TTXSamples/TTXttyrec/TTXttyrec.v15.vcxproj.filters deleted file mode 100644 index 10c3dd047..000000000 --- a/TTXSamples/TTXttyrec/TTXttyrec.v15.vcxproj.filters +++ /dev/null @@ -1,36 +0,0 @@ - - - - - {4FC737F1-C7A5-4376-A066-2A32D752A2FF} - cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx - - - {83b91709-fa4b-4165-be9e-bb0b43840a4a} - - - {d0ccabca-8574-4219-b8be-8b7d7e127248} - - - - - Source Files - - - Source Files - - - - - ReadMe - - - ReadMe - - - - - Header Files - - - \ No newline at end of file diff --git a/TTXSamples/TTXttyrec/TTXttyrec.v16.vcxproj b/TTXSamples/TTXttyrec/TTXttyrec.v16.vcxproj new file mode 100644 index 000000000..bf1264a3f --- /dev/null +++ b/TTXSamples/TTXttyrec/TTXttyrec.v16.vcxproj @@ -0,0 +1,107 @@ + + + + + Debug + Win32 + + + Release + Win32 + + + + {5798E37E-0428-457E-A652-EE0A75130327} + TTXttyrec + Win32Proj + TTXttyrec + 10.0 + + + + DynamicLibrary + v142 + NotSet + true + + + DynamicLibrary + v142 + NotSet + + + + + + + + + + + + + <_ProjectFileVersion>12.0.30501.0 + + + $(SolutionDir)$(Configuration)\ + rec.$(Configuration)\ + true + + + $(SolutionDir)$(Configuration)\ + rec.$(Configuration)\ + false + + + + Disabled + $(SolutionDir)..\teraterm\common;$(SolutionDir)..\teraterm\teraterm;%(AdditionalIncludeDirectories) + WIN32;_DEBUG;_WINDOWS;_USRDLL;%(PreprocessorDefinitions) + false + EnableFastChecks + MultiThreadedDebug + + Level3 + EditAndContinue + + + $(SolutionDir)..\teraterm\$(Configuration)\common_static.lib;$(SolutionDir)..\teraterm\$(Configuration)\ttpcmn.lib;%(AdditionalDependencies) + true + Windows + MachineX86 + false + + + + + $(SolutionDir)..\teraterm\common;$(SolutionDir)..\teraterm\teraterm;%(AdditionalIncludeDirectories) + WIN32;NDEBUG;_WINDOWS;_USRDLL;%(PreprocessorDefinitions) + MultiThreaded + + Level3 + ProgramDatabase + + + $(SolutionDir)..\teraterm\$(Configuration)\common_static.lib;$(SolutionDir)..\teraterm\$(Configuration)\ttpcmn.lib;%(AdditionalDependencies) + true + Windows + true + true + MachineX86 + + + + + + + + + + + + + + + + + diff --git a/TTXSamples/TTXttyrec/TTXttyrec.v12.vcxproj.filters b/TTXSamples/TTXttyrec/TTXttyrec.v16.vcxproj.filters similarity index 100% rename from TTXSamples/TTXttyrec/TTXttyrec.v12.vcxproj.filters rename to TTXSamples/TTXttyrec/TTXttyrec.v16.vcxproj.filters diff --git a/TTXSamples/TTXttyrec/TTXttyrec.v17.vcxproj b/TTXSamples/TTXttyrec/TTXttyrec.v17.vcxproj new file mode 100644 index 000000000..cf16464e6 --- /dev/null +++ b/TTXSamples/TTXttyrec/TTXttyrec.v17.vcxproj @@ -0,0 +1,107 @@ + + + + + Debug + Win32 + + + Release + Win32 + + + + {5798E37E-0428-457E-A652-EE0A75130327} + TTXttyrec + Win32Proj + TTXttyrec + 10.0 + + + + DynamicLibrary + v143 + NotSet + true + + + DynamicLibrary + v143 + NotSet + + + + + + + + + + + + + <_ProjectFileVersion>12.0.30501.0 + + + $(SolutionDir)$(Configuration)\ + rec.$(Configuration)\ + true + + + $(SolutionDir)$(Configuration)\ + rec.$(Configuration)\ + false + + + + Disabled + $(SolutionDir)..\teraterm\common;$(SolutionDir)..\teraterm\teraterm;%(AdditionalIncludeDirectories) + WIN32;_DEBUG;_WINDOWS;_USRDLL;%(PreprocessorDefinitions) + false + EnableFastChecks + MultiThreadedDebug + + Level3 + EditAndContinue + + + $(SolutionDir)..\teraterm\$(Configuration)\common_static.lib;$(SolutionDir)..\teraterm\$(Configuration)\ttpcmn.lib;%(AdditionalDependencies) + true + Windows + MachineX86 + false + + + + + $(SolutionDir)..\teraterm\common;$(SolutionDir)..\teraterm\teraterm;%(AdditionalIncludeDirectories) + WIN32;NDEBUG;_WINDOWS;_USRDLL;%(PreprocessorDefinitions) + MultiThreaded + + Level3 + ProgramDatabase + + + $(SolutionDir)..\teraterm\$(Configuration)\common_static.lib;$(SolutionDir)..\teraterm\$(Configuration)\ttpcmn.lib;%(AdditionalDependencies) + true + Windows + true + true + MachineX86 + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/TTXSamples/TTXttyrec/TTXttyrec.v14.vcxproj.filters b/TTXSamples/TTXttyrec/TTXttyrec.v17.vcxproj.filters similarity index 100% rename from TTXSamples/TTXttyrec/TTXttyrec.v14.vcxproj.filters rename to TTXSamples/TTXttyrec/TTXttyrec.v17.vcxproj.filters diff --git a/TTXSamples/TTXttyrec/TTXttyrec.v9.vcproj b/TTXSamples/TTXttyrec/TTXttyrec.v9.vcproj deleted file mode 100644 index b0269666a..000000000 --- a/TTXSamples/TTXttyrec/TTXttyrec.v9.vcproj +++ /dev/null @@ -1,212 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/TTXSamples/TTXttyrec/TTXttyrec.vcproj b/TTXSamples/TTXttyrec/TTXttyrec.vcproj deleted file mode 100755 index 383b5553b..000000000 --- a/TTXSamples/TTXttyrec/TTXttyrec.vcproj +++ /dev/null @@ -1,213 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/TTXSamples/TTXttyrec/gettimeofday.c b/TTXSamples/TTXttyrec/gettimeofday.c index eee8167e9..898381d79 100755 --- a/TTXSamples/TTXttyrec/gettimeofday.c +++ b/TTXSamples/TTXttyrec/gettimeofday.c @@ -1,9 +1,15 @@ #include "gettimeofday.h" -int gettimeofday(struct timeval *tv, struct timezone *tz) { +// unix time epoch from windows file time +#if defined(_MSC_VER) +#define FTEPOCHDIFF 116444736000000000i64 +#else +#define FTEPOCHDIFF 116444736000000000LL +#endif + +int gettimeofday(struct timeval *tv /*, struct timezone *tz*/ ) { FILETIME ft; __int64 t; - int tzsec, dst; if (tv) { GetSystemTimeAsFileTime(&ft); @@ -12,7 +18,10 @@ int gettimeofday(struct timeval *tv, struct timezone *tz) { tv->tv_usec = (long)(t % 1000000); } +#if 0 if (tz) { + long tzsec; + int dst; if (_get_timezone(&tzsec) == 0 && _get_daylight(&dst) == 0) { tz->tz_minuteswest = tzsec / 60; tz->tz_dsttime = dst; @@ -21,6 +30,7 @@ int gettimeofday(struct timeval *tv, struct timezone *tz) { return -1; } } +#endif return 0; } diff --git a/TTXSamples/TTXttyrec/gettimeofday.h b/TTXSamples/TTXttyrec/gettimeofday.h index 89385ce76..21f057b35 100755 --- a/TTXSamples/TTXttyrec/gettimeofday.h +++ b/TTXSamples/TTXttyrec/gettimeofday.h @@ -3,14 +3,14 @@ #include #include +#if defined(_MSC_VER) struct timezone { int tz_minuteswest; int tz_dsttime; }; +#endif -#define FTEPOCHDIFF 116444736000000000i64 - -int gettimeofday(struct timeval *tv, struct timezone *tz); +int gettimeofday(struct timeval *tv /*, struct timezone *tz*/ ); struct timeval tvdiff(struct timeval a, struct timeval b); struct timeval tvshift(struct timeval tv, int shift); int tvcmp(struct timeval a, struct timeval b); diff --git a/TTXSamples/ttxtest/CMakeLists.txt b/TTXSamples/ttxtest/CMakeLists.txt new file mode 100644 index 000000000..90752fa0f --- /dev/null +++ b/TTXSamples/ttxtest/CMakeLists.txt @@ -0,0 +1,45 @@ +set(PACKAGE_NAME "TTXtest") + +project(${PACKAGE_NAME}) + +add_library( + ${PACKAGE_NAME} SHARED + ttxtest.c + ) + +if(SUPPORT_OLD_WINDOWS) + target_link_libraries( + ${PACKAGE_NAME} + PRIVATE + layer_for_unicode + ) + if(MSVC) + target_sources( + ${PACKAGE_NAME} + PRIVATE + ../../teraterm/common/compat_w95_vs2005.c + ) + endif() + if(MINGW) + target_sources( + ${PACKAGE_NAME} + PRIVATE + ../../teraterm/libmingw/tlssup.c + ) + endif() +endif(SUPPORT_OLD_WINDOWS) + +set_target_properties( + ${PACKAGE_NAME} + PROPERTIES + PREFIX "" + RUNTIME_OUTPUT_DIRECTORY "${CMAKE_BINARY_DIR}/" + ) + +target_include_directories( + ${PACKAGE_NAME} + PRIVATE + ../../teraterm/teraterm + ../../teraterm/common + ) + diff --git a/TTXSamples/ttxtest/TTXtest.v10.vcxproj b/TTXSamples/ttxtest/TTXtest.v10.vcxproj deleted file mode 100644 index b36b3cb9b..000000000 --- a/TTXSamples/ttxtest/TTXtest.v10.vcxproj +++ /dev/null @@ -1,91 +0,0 @@ - - - - - Debug - Win32 - - - Release - Win32 - - - - {9E20E276-1905-44AE-BC67-C1A1F3C42135} - TTXtest - Win32Proj - TTXtest - - - - DynamicLibrary - NotSet - true - - - DynamicLibrary - NotSet - - - - - - - - - - - - - <_ProjectFileVersion>10.0.40219.1 - $(SolutionDir)$(Configuration)\ - $(Configuration)\ - true - $(SolutionDir)$(Configuration)\ - $(Configuration)\ - false - - - - Disabled - $(SolutionDir)..\teraterm\common;$(SolutionDir)..\teraterm\teraterm;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;_USRDLL;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebug - - - Level3 - EditAndContinue - - - true - Windows - MachineX86 - - - - - $(SolutionDir)..\teraterm\common;$(SolutionDir)..\teraterm\teraterm;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;_USRDLL;%(PreprocessorDefinitions) - MultiThreaded - - - Level3 - ProgramDatabase - - - true - Windows - true - true - MachineX86 - - - - - - - - - \ No newline at end of file diff --git a/TTXSamples/ttxtest/TTXtest.v11.vcxproj b/TTXSamples/ttxtest/TTXtest.v11.vcxproj deleted file mode 100644 index becb13f56..000000000 --- a/TTXSamples/ttxtest/TTXtest.v11.vcxproj +++ /dev/null @@ -1,96 +0,0 @@ - - - - - Debug - Win32 - - - Release - Win32 - - - - {9E20E276-1905-44AE-BC67-C1A1F3C42135} - TTXtest - Win32Proj - TTXtest - - - - DynamicLibrary - v110 - NotSet - true - - - DynamicLibrary - v110 - NotSet - - - - - - - - - - - - - <_ProjectFileVersion>11.0.61030.0 - - - $(SolutionDir)$(Configuration)\ - $(Configuration)\ - true - - - $(SolutionDir)$(Configuration)\ - $(Configuration)\ - false - - - - Disabled - $(SolutionDir)..\teraterm\common;$(SolutionDir)..\teraterm\teraterm;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;_USRDLL;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebug - - Level3 - EditAndContinue - - - true - Windows - MachineX86 - false - - - - - $(SolutionDir)..\teraterm\common;$(SolutionDir)..\teraterm\teraterm;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;_USRDLL;%(PreprocessorDefinitions) - MultiThreaded - - Level3 - ProgramDatabase - - - true - Windows - true - true - MachineX86 - - - - - - - - - \ No newline at end of file diff --git a/TTXSamples/ttxtest/TTXtest.v12.vcxproj b/TTXSamples/ttxtest/TTXtest.v12.vcxproj deleted file mode 100644 index 67d8b36d8..000000000 --- a/TTXSamples/ttxtest/TTXtest.v12.vcxproj +++ /dev/null @@ -1,96 +0,0 @@ - - - - - Debug - Win32 - - - Release - Win32 - - - - {9E20E276-1905-44AE-BC67-C1A1F3C42135} - TTXtest - Win32Proj - TTXtest - - - - DynamicLibrary - v120 - NotSet - true - - - DynamicLibrary - v120 - NotSet - - - - - - - - - - - - - <_ProjectFileVersion>12.0.30501.0 - - - $(SolutionDir)$(Configuration)\ - $(Configuration)\ - true - - - $(SolutionDir)$(Configuration)\ - $(Configuration)\ - false - - - - Disabled - $(SolutionDir)..\teraterm\common;$(SolutionDir)..\teraterm\teraterm;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;_USRDLL;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebug - - Level3 - EditAndContinue - - - true - Windows - MachineX86 - false - - - - - $(SolutionDir)..\teraterm\common;$(SolutionDir)..\teraterm\teraterm;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;_USRDLL;%(PreprocessorDefinitions) - MultiThreaded - - Level3 - ProgramDatabase - - - true - Windows - true - true - MachineX86 - - - - - - - - - \ No newline at end of file diff --git a/TTXSamples/ttxtest/TTXtest.v12.vcxproj.filters b/TTXSamples/ttxtest/TTXtest.v12.vcxproj.filters deleted file mode 100644 index 2f20fe35c..000000000 --- a/TTXSamples/ttxtest/TTXtest.v12.vcxproj.filters +++ /dev/null @@ -1,14 +0,0 @@ - - - - - {4FC737F1-C7A5-4376-A066-2A32D752A2FF} - cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx - - - - - Source Files - - - \ No newline at end of file diff --git a/TTXSamples/ttxtest/TTXtest.v14.vcxproj b/TTXSamples/ttxtest/TTXtest.v14.vcxproj deleted file mode 100644 index 8d496c7cd..000000000 --- a/TTXSamples/ttxtest/TTXtest.v14.vcxproj +++ /dev/null @@ -1,96 +0,0 @@ - - - - - Debug - Win32 - - - Release - Win32 - - - - {9E20E276-1905-44AE-BC67-C1A1F3C42135} - TTXtest - Win32Proj - TTXtest - - - - DynamicLibrary - v140 - NotSet - true - - - DynamicLibrary - v140 - NotSet - - - - - - - - - - - - - <_ProjectFileVersion>12.0.30501.0 - - - $(SolutionDir)$(Configuration)\ - $(Configuration)\ - true - - - $(SolutionDir)$(Configuration)\ - $(Configuration)\ - false - - - - Disabled - $(SolutionDir)..\teraterm\common;$(SolutionDir)..\teraterm\teraterm;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;_USRDLL;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebug - - Level3 - EditAndContinue - - - true - Windows - MachineX86 - false - - - - - $(SolutionDir)..\teraterm\common;$(SolutionDir)..\teraterm\teraterm;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;_USRDLL;%(PreprocessorDefinitions) - MultiThreaded - - Level3 - ProgramDatabase - - - true - Windows - true - true - MachineX86 - - - - - - - - - \ No newline at end of file diff --git a/TTXSamples/ttxtest/TTXtest.v14.vcxproj.filters b/TTXSamples/ttxtest/TTXtest.v14.vcxproj.filters deleted file mode 100644 index 2f20fe35c..000000000 --- a/TTXSamples/ttxtest/TTXtest.v14.vcxproj.filters +++ /dev/null @@ -1,14 +0,0 @@ - - - - - {4FC737F1-C7A5-4376-A066-2A32D752A2FF} - cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx - - - - - Source Files - - - \ No newline at end of file diff --git a/TTXSamples/ttxtest/TTXtest.v15.vcxproj b/TTXSamples/ttxtest/TTXtest.v15.vcxproj deleted file mode 100644 index b6bf7abed..000000000 --- a/TTXSamples/ttxtest/TTXtest.v15.vcxproj +++ /dev/null @@ -1,96 +0,0 @@ - - - - - Debug - Win32 - - - Release - Win32 - - - - {9E20E276-1905-44AE-BC67-C1A1F3C42135} - TTXtest - Win32Proj - TTXtest - - - - DynamicLibrary - v141 - NotSet - true - - - DynamicLibrary - v141 - NotSet - - - - - - - - - - - - - <_ProjectFileVersion>12.0.30501.0 - - - $(SolutionDir)$(Configuration)\ - $(Configuration)\ - true - - - $(SolutionDir)$(Configuration)\ - $(Configuration)\ - false - - - - Disabled - $(SolutionDir)..\teraterm\common;$(SolutionDir)..\teraterm\teraterm;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;_USRDLL;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebug - - Level3 - EditAndContinue - - - true - Windows - MachineX86 - false - - - - - $(SolutionDir)..\teraterm\common;$(SolutionDir)..\teraterm\teraterm;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;_USRDLL;%(PreprocessorDefinitions) - MultiThreaded - - Level3 - ProgramDatabase - - - true - Windows - true - true - MachineX86 - - - - - - - - - \ No newline at end of file diff --git a/TTXSamples/ttxtest/TTXtest.v15.vcxproj.filters b/TTXSamples/ttxtest/TTXtest.v15.vcxproj.filters deleted file mode 100644 index 2f20fe35c..000000000 --- a/TTXSamples/ttxtest/TTXtest.v15.vcxproj.filters +++ /dev/null @@ -1,14 +0,0 @@ - - - - - {4FC737F1-C7A5-4376-A066-2A32D752A2FF} - cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx - - - - - Source Files - - - \ No newline at end of file diff --git a/TTXSamples/ttxtest/TTXtest.v16.vcxproj b/TTXSamples/ttxtest/TTXtest.v16.vcxproj new file mode 100644 index 000000000..34279eea2 --- /dev/null +++ b/TTXSamples/ttxtest/TTXtest.v16.vcxproj @@ -0,0 +1,97 @@ + + + + + Debug + Win32 + + + Release + Win32 + + + + {9E20E276-1905-44AE-BC67-C1A1F3C42135} + TTXtest + Win32Proj + TTXtest + 10.0 + + + + DynamicLibrary + v142 + NotSet + true + + + DynamicLibrary + v142 + NotSet + + + + + + + + + + + + + <_ProjectFileVersion>12.0.30501.0 + + + $(SolutionDir)$(Configuration)\ + $(Configuration)\ + true + + + $(SolutionDir)$(Configuration)\ + $(Configuration)\ + false + + + + Disabled + $(SolutionDir)..\teraterm\common;$(SolutionDir)..\teraterm\teraterm;%(AdditionalIncludeDirectories) + WIN32;_DEBUG;_WINDOWS;_USRDLL;%(PreprocessorDefinitions) + false + EnableFastChecks + MultiThreadedDebug + + Level3 + EditAndContinue + + + true + Windows + MachineX86 + false + + + + + $(SolutionDir)..\teraterm\common;$(SolutionDir)..\teraterm\teraterm;%(AdditionalIncludeDirectories) + WIN32;NDEBUG;_WINDOWS;_USRDLL;%(PreprocessorDefinitions) + MultiThreaded + + Level3 + ProgramDatabase + + + true + Windows + true + true + MachineX86 + + + + + + + + + diff --git a/TTXSamples/ttxtest/TTXtest.v10.vcxproj.filters b/TTXSamples/ttxtest/TTXtest.v16.vcxproj.filters similarity index 100% rename from TTXSamples/ttxtest/TTXtest.v10.vcxproj.filters rename to TTXSamples/ttxtest/TTXtest.v16.vcxproj.filters diff --git a/TTXSamples/ttxtest/TTXtest.v17.vcxproj b/TTXSamples/ttxtest/TTXtest.v17.vcxproj new file mode 100644 index 000000000..8422b59bd --- /dev/null +++ b/TTXSamples/ttxtest/TTXtest.v17.vcxproj @@ -0,0 +1,97 @@ + + + + + Debug + Win32 + + + Release + Win32 + + + + {9E20E276-1905-44AE-BC67-C1A1F3C42135} + TTXtest + Win32Proj + TTXtest + 10.0 + + + + DynamicLibrary + v143 + NotSet + true + + + DynamicLibrary + v143 + NotSet + + + + + + + + + + + + + <_ProjectFileVersion>12.0.30501.0 + + + $(SolutionDir)$(Configuration)\ + $(Configuration)\ + true + + + $(SolutionDir)$(Configuration)\ + $(Configuration)\ + false + + + + Disabled + $(SolutionDir)..\teraterm\common;$(SolutionDir)..\teraterm\teraterm;%(AdditionalIncludeDirectories) + WIN32;_DEBUG;_WINDOWS;_USRDLL;%(PreprocessorDefinitions) + false + EnableFastChecks + MultiThreadedDebug + + Level3 + EditAndContinue + + + true + Windows + MachineX86 + false + + + + + $(SolutionDir)..\teraterm\common;$(SolutionDir)..\teraterm\teraterm;%(AdditionalIncludeDirectories) + WIN32;NDEBUG;_WINDOWS;_USRDLL;%(PreprocessorDefinitions) + MultiThreaded + + Level3 + ProgramDatabase + + + true + Windows + true + true + MachineX86 + + + + + + + + + \ No newline at end of file diff --git a/TTXSamples/ttxtest/TTXtest.v11.vcxproj.filters b/TTXSamples/ttxtest/TTXtest.v17.vcxproj.filters similarity index 100% rename from TTXSamples/ttxtest/TTXtest.v11.vcxproj.filters rename to TTXSamples/ttxtest/TTXtest.v17.vcxproj.filters diff --git a/TTXSamples/ttxtest/TTXtest.v9.vcproj b/TTXSamples/ttxtest/TTXtest.v9.vcproj deleted file mode 100644 index fdc6d2182..000000000 --- a/TTXSamples/ttxtest/TTXtest.v9.vcproj +++ /dev/null @@ -1,186 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/TTXSamples/ttxtest/TTXtest.vcproj b/TTXSamples/ttxtest/TTXtest.vcproj deleted file mode 100755 index deb684c28..000000000 --- a/TTXSamples/ttxtest/TTXtest.vcproj +++ /dev/null @@ -1,187 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/TTXSamples/ttxtest/ttxtest.c b/TTXSamples/ttxtest/ttxtest.c index bcc0ecc0c..30cbdfd42 100644 --- a/TTXSamples/ttxtest/ttxtest.c +++ b/TTXSamples/ttxtest/ttxtest.c @@ -1,6 +1,6 @@ /* Tera Term extension mechanism Robert O'Callahan (roc+tt@cs.cmu.edu) - + Tera Term by Takashi Teranishi (teranishi@rikaxp.riken.go.jp) */ @@ -23,7 +23,7 @@ Make sure you set the structure alignment option in the project to 8 bytes (for Win32) or 2 bytes (for Win16), to be compatible with the standard Tera Term binary. - + You must add the Tera Term "common" directory to your include path to find the following 3 include files: */ @@ -43,22 +43,17 @@ #include #include -#include "compat_w95.h" - /* When you build this extension, it should be called TTXTEST.DLL. To try it - out, copy it into the directory containing Tera Term. Currently, in order - to use extensions with Tera Term, you have to set the environment variable - TERATERM_EXTENSIONS to something. So in a command shell, use - "set TERATERM_EXTENSIONS=1". Then use "ttermpro > dump" to run Tera Term + out, copy it into the directory containing Tera Term. + Then use "ttermpro > dump" to run Tera Term and save the debugging output below to the file "dump". - When TERATERM_EXTENSIONS is set, Tera Term automatically scans the + Tera Term automatically scans the directory containing it, looking for files of the form TTX*.DLL. It loads any that it finds. For each one that it finds, it calls TTXBind; see below for details. */ - /* This variable is used for the load order of the extension (see below for details). We also print it out in all the diagnostics, to make sure the functions are being called according to the correct order. */ @@ -89,7 +84,7 @@ static TInstVar InstVar; and modifying their fields in some of the functions below. You'll have to look at the Tera Term source code to see what the fields do and how and when they're used. - + This is called when Tera Term starts up, so don't do too much work in here or you will slow down the startup process even if your extension is not going to be used. @@ -110,10 +105,10 @@ static void PASCAL TTXInit(PTTSet ts, PComVar cv) { something there for you to use! For example: - + [in TTXOpenTCP] ... saved_connect = hooks->Pconnect; hooks->Pconnect = my_connect; ... - + [in my_connect] ... saved_connect(...); ... [don't call the real connect!] @@ -151,7 +146,7 @@ static void PASCAL TTXCloseTCP(TTXSockHooks *hooks) { a hooked function. When you replace a dialog box, the new dialog box should do everything that the original dialog box did, plus any extra controls that you want. You'll probably have to copy the code from TTDLG to do this. - + If multiple extensions want to replace the same dialog box, the one with the highest load order number (see below) wins. For this reason, when writing an extension, you should look at the extensions that already exist @@ -227,7 +222,7 @@ static void PASCAL TTXModifyMenu(HMENU menu) { printf("TTXModifyMenu %d\n", ORDER); pvar->SetupMenu = GetSubMenu(menu,2); - AppendMenu(pvar->SetupMenu,MF_SEPARATOR,0,NULL); + AppendMenu(pvar->SetupMenu,MF_SEPARATOR,0,NULL); if (pvar->ts->Debug>0) flag |= MF_CHECKED; AppendMenu(pvar->SetupMenu,flag, ID_MENUITEM,"&Debug mode"); } @@ -277,7 +272,7 @@ static int PASCAL TTXProcessCommand(HWND hWin, WORD cmd) { else { pvar->ts->Debug=0; CheckMenuItem(pvar->SetupMenu,ID_MENUITEM,MF_BYCOMMAND | MF_UNCHECKED); - } + } return 1; } return 0; @@ -295,7 +290,7 @@ static void PASCAL TTXEnd(void) { /* */ -static void PASCAL TTXSetCommandLine(PCHAR cmd, int cmdlen, PGetHNRec rec) { +static void PASCAL TTXSetCommandLine(wchar_t *cmd, int cmdlen, PGetHNRec rec) { printf("TTXSetCommandLine %d\n", ORDER); } @@ -310,10 +305,10 @@ static void PASCAL TTXSetCommandLine(PCHAR cmd, int cmdlen, PGetHNRec rec) { have put something there for you to use! For example: - + [in TTXOpenFile] ... saved_createfile = hooks->PCreateFile; hooks->PCreateFile = my_createfile; ... - + [in my_createfile] ... saved_createfile(...); ... [don't call the real CreateFile!] @@ -410,7 +405,7 @@ static TTXExports Exports = { (In a similar way, we can run old extensions with new versions of Tera Term. The main program initialises its exports record to zeroes before it calls - TTXBind. This means that any data we don't copy in there is NULL, so any + TTXBind. This means that any data we don't copy in there is NULL, so any extra functions that have been added since this extension was compiled will automatically be NULL and thus get default behaviour.) */ @@ -428,7 +423,7 @@ BOOL __declspec(dllexport) PASCAL TTXBind(WORD Version, TTXExports *exports) { return TRUE; } -BOOL WINAPI DllMain(HANDLE hInstance, +BOOL WINAPI DllMain(HANDLE hInstance, ULONG ul_reason_for_call, LPVOID lpReserved) { @@ -441,7 +436,6 @@ BOOL WINAPI DllMain(HANDLE hInstance, break; case DLL_PROCESS_ATTACH: /* do process initialization */ - DoCover_IsDebuggerPresent(); hInst = hInstance; pvar = &InstVar; break; diff --git a/buildinfo.txt.in b/buildinfo.txt.in new file mode 100644 index 000000000..e59546817 --- /dev/null +++ b/buildinfo.txt.in @@ -0,0 +1,68 @@ + +SVNVERSION + @SVNVERSION@ +MSVC + @MSVC@ +MINGW + @MINGW@ +_WIN32_WINNT + @_WIN32_WINNT@ +SUPPORT_OLD_WINDOWS + @SUPPORT_OLD_WINDOWS@ +CMAKE_GENERATOR + @CMAKE_GENERATOR@ +CMAKE_GENERATOR_PLATFORM + @CMAKE_GENERATOR_PLATFORM@ +CMAKE_GENERATOR_TOOLSET (VS 2010 and above) + @CMAKE_GENERATOR_TOOLSET@ +CMAKE_VS_PLATFORM_TOOLSET + @CMAKE_VS_PLATFORM_TOOLSET@ +CMAKE_VS_WINDOWS_TARGET_PLATFORM_VERSION + @CMAKE_VS_WINDOWS_TARGET_PLATFORM_VERSION@ +CMAKE_BUILD_TYPE (single-configuration generator) + @CMAKE_BUILD_TYPE@ +CMAKE_SIZEOF_VOID_P + @CMAKE_SIZEOF_VOID_P@ +CMAKE_COMMAND + @CMAKE_COMMAND@ +CMAKE_C_COMPILER + @CMAKE_C_COMPILER@ +CMAKE_CXX_COMPILER + @CMAKE_CXX_COMPILER@ +CMAKE_C_FLAGS + @CMAKE_C_FLAGS@ +CMAKE_C_FLAGS_RELEASE + @CMAKE_C_FLAGS_RELEASE@ +CMAKE_C_FLAGS_DEBUG + @CMAKE_C_FLAGS_DEBUG@ +CMAKE_CXX_FLAGS + @CMAKE_CXX_FLAGS@ +CMAKE_CXX_FLAGS_RELEASE + @CMAKE_CXX_FLAGS_RELEASE@ +CMAKE_CXX_FLAGS_DEBUG + @CMAKE_CXX_FLAGS_DEBUG@ +CMAKE_EXE_LINKER_FLAGS + @CMAKE_EXE_LINKER_FLAGS@ +CMAKE_EXE_LINKER_FLAGS_RELEASE + @CMAKE_EXE_LINKER_FLAGS_RELEASE@ +CMAKE_EXE_LINKER_FLAGS_DEBUG + @CMAKE_EXE_LINKER_FLAGS_DEBUG@ +CMAKE_SHARED_LINKER_FLAGS + @CMAKE_SHARED_LINKER_FLAGS@ +CMAKE_SHARED_LINKER_FLAGS_RELEASE + @CMAKE_SHARED_LINKER_FLAGS_RELEASE@ +CMAKE_SHARED_LINKER_FLAGS_DEBUG + @CMAKE_SHARED_LINKER_FLAGS_DEBUG@ + +perl + @PERL@ +Subversion_SVN_EXECUTABLE(SVN) + @Subversion_SVN_EXECUTABLE@ +git + @GIT_EXECUTABLE@ +ISCC(inno setup) + @ISCC@ +HHC(help compiler) + @HHC@ + +see CMakeCache.txt for more details diff --git a/buildtools/checkperl.cmake b/buildtools/checkperl.cmake new file mode 100644 index 000000000..94a4b537e --- /dev/null +++ b/buildtools/checkperl.cmake @@ -0,0 +1,37 @@ +if (MSVC) + find_program( + PERL perl.exe + HINTS ${CMAKE_CURRENT_LIST_DIR}/cygwin64/bin + HINTS ${CMAKE_CURRENT_LIST_DIR}/perl/perl/bin + HINTS c:/Strawberry/perl/bin + HINTS c:/Perl64/bin + HINTS c:/Perl/bin + HINTS c:/cygwin/usr/bin + HINTS c:/cygwin64/usr/bin + ) +elseif(MINGW AND (CMAKE_HOST_SYSTEM_NAME STREQUAL "Windows")) + find_program( + PERL perl.exe + HINTS ${CMAKE_CURRENT_LIST_DIR}/perl/perl/bin + HINTS c:/Strawberry/perl/bin + HINTS c:/Perl64/bin + HINTS c:/Perl/bin + ) +else() + # (CMAKE_HOST_SYSTEM_NAME STREQUAL "Linux") + find_program( + PERL perl + ) +endif() + +if ("${PERL}" STREQUAL "PERL-NOTFOUND") + if(CMAKE_HOST_SYSTEM_NAME STREQUAL "Windows") + execute_process( + COMMAND ${CMAKE_COMMAND} -P getperl.cmake + WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}/buildtools + ) + set(PERL ${CMAKE_CURRENT_LIST_DIR}/perl/perl/bin/perl.exe) + else() + message("perl not installed") + endif() +endif() diff --git a/buildtools/docker/Dockerfile b/buildtools/docker/Dockerfile new file mode 100644 index 000000000..3b52bdd34 --- /dev/null +++ b/buildtools/docker/Dockerfile @@ -0,0 +1,8 @@ +FROM debian:trixie-20240701-slim +RUN apt-get update \ + && apt-get install -y cmake perl cmake-curses-gui \ + && apt-get install -y gcc-mingw-w64-i686-win32 \ + && apt-get install -y g++-mingw-w64-i686-win32 \ + && apt-get install -y fp-utils \ + && apt-get install -y git nasm +COPY build.sh / diff --git a/buildtools/docker/README.md b/buildtools/docker/README.md new file mode 100644 index 000000000..34ecaa843 --- /dev/null +++ b/buildtools/docker/README.md @@ -0,0 +1,22 @@ +# build with MinGW + docker (experimental) + +- Thread model win32版のMinGWを使ってビルド +- dockerでビルド環境を作成、docker中でビルド + +- linuxビルドの制限 + - cygterm, msys2termはビルドできない + - インストーラは作成できない + +## 準備 + +- Windowsの場合 + - Docker Desktop を使えるようにする +- Linuxの場合 + - Dockerを使えるようにする + +## ビルド例 + +- `docker_build.bat` (windowsのとき) / `docker_build.sh` (linuxのとき) を実行 + - docker内のbashが起動する +- `bash ./build.sh` を実行 +- このフォルダに teraterm*.zip ができる diff --git a/buildtools/docker/build.sh b/buildtools/docker/build.sh new file mode 100644 index 000000000..649e82b16 --- /dev/null +++ b/buildtools/docker/build.sh @@ -0,0 +1,23 @@ +clone=true +#clone=false +if $clone; then + git clone --branch main --depth 1 https://github.com/TeraTermProject/teraterm.git + cd teraterm +else + git config --global --add safe.directory /mnt + (cd /mnt; git archive HEAD -o /current.tar) + mkdir teraterm + cd teraterm + tar xf /current.tar +fi +cd libs +cmake -DCMAKE_GENERATOR="Unix Makefiles" -DARCHITECTURE=32 -P buildall.cmake +rm -rf build +cd .. +mkdir build +cd build +cmake .. -G "Unix Makefiles" -DCMAKE_TOOLCHAIN_FILE=../mingw.toolchain.cmake -DUSE_GCC_32=on -DSUPPORT_OLD_WINDOWS=on -DENABLE_GDIPLUS=off +make -j +make -j install +make zip +cp *.zip /mnt/buildtools/docker/ diff --git a/buildtools/docker/docker_build.bat b/buildtools/docker/docker_build.bat new file mode 100644 index 000000000..109e9f46f --- /dev/null +++ b/buildtools/docker/docker_build.bat @@ -0,0 +1,7 @@ +setlocal +set CUR=%~dp0 +set PATH=C:\Program Files\Docker\Docker\resources;%PATH% +cd /d %CUR% +docker build -t teraterm_build:1.0 -t teraterm_build:latest . +docker run -it --rm --detach-keys="ctrl-t" --mount type=bind,src=%CUR%../..,dst=/mnt teraterm_build:latest bash +endlocal diff --git a/buildtools/docker/docker_build.sh b/buildtools/docker/docker_build.sh new file mode 100644 index 000000000..6c35966f9 --- /dev/null +++ b/buildtools/docker/docker_build.sh @@ -0,0 +1,2 @@ +docker build -t teraterm_build:1.0 -t teraterm_build:latest . +docker run -it --rm --detach-keys="ctrl-t" --mount type=bind,src=`pwd`/../..,dst=/mnt teraterm_build:latest bash diff --git a/buildtools/find_cygwin.bat b/buildtools/find_cygwin.bat new file mode 100644 index 000000000..51aaaeb53 --- /dev/null +++ b/buildtools/find_cygwin.bat @@ -0,0 +1,11 @@ +rem output +rem CYGWIN_PATH cygwinbintH_ + +set CYGWIN_PATH=%~dp0..\buildtools\cygwin64\bin +if exist "%CYGWIN_PATH%\cygwin1.dll" exit /b 0 +set CYGWIN_PATH=C:\cygwin64\bin +if exist "%CYGWIN_PATH%\cygwin1.dll" exit /b 0 +set CYGWIN_PATH=C:\cygwin\bin +if exist "%CYGWIN_PATH%\cygwin1.dll" exit /b 0 +set CYGWIN_PATH= +exit /b 0 diff --git a/buildtools/find_perl.bat b/buildtools/find_perl.bat new file mode 100644 index 000000000..a6c423a54 --- /dev/null +++ b/buildtools/find_perl.bat @@ -0,0 +1,23 @@ +if not "%PERL%" == "" exit /b 0 + +set PERL=perl.exe +where %PERL% > nul 2>&1 +if %errorlevel% == 0 exit /b 0 +set PERL=%~dp0cygwin64\bin\perl.exe +if exist %PERL% exit /b 0 +set PERL=%~dp0perl\perl\bin\perl.exe +if exist %PERL% exit /b 0 +set PERL=C:\Strawberry\perl\bin\perl.exe +if exist %PERL% exit /b 0 +set PERL=C:\Perl64\bin\perl.exe +if exist %PERL% exit /b 0 +set PERL=C:\Perl\bin\perl.exe +if exist %PERL% exit /b 0 +set PERL=C:\cygwin64\bin\perl.exe +if exist %PERL% exit /b 0 +set PERL=C:\cygwin\bin\perl.exe +if exist %PERL% exit /b 0 + +echo perl can not found +if not "%NOPAUSE%" == "1" pause +exit diff --git a/buildtools/getcmake.bat b/buildtools/getcmake.bat new file mode 100644 index 000000000..d4298ece8 --- /dev/null +++ b/buildtools/getcmake.bat @@ -0,0 +1,10 @@ +@echo off +setlocal +cd /d %~dp0 +IF NOT EXIST cmake-3.11.4-win32-x86 ( + echo cmake_E[hlib/cmakeɓWJ܂ + IF NOT "%1" == "nopause" pause + powershell -NoProfile -ExecutionPolicy Unrestricted .\getcmake.ps1 +) +endlocal +IF NOT "%1" == "nopause" pause diff --git a/buildtools/getcmake.ps1 b/buildtools/getcmake.ps1 new file mode 100644 index 000000000..afa0be901 --- /dev/null +++ b/buildtools/getcmake.ps1 @@ -0,0 +1,33 @@ +$CMAKE_URL = "https://cmake.org/files/v3.11/cmake-3.11.4-win32-x86.zip" +$CMAKE_ZIP = ($CMAKE_URL -split "/")[-1] +$CMAKE_DIR = [System.IO.Path]::GetFileNameWithoutExtension($CMAKE_ZIP) + +$CMAKE_ZIP = "download\cmake\" + $CMAKE_ZIP + +echo $CMAKE_URL +echo $CMAKE_ZIP +echo $CMAKE_DIR + +# TLS1.2 Lɂ (cmake.org TLS1.2) +# [Net.ServicePointManager]::SecurityProtocol +# s "Ssl3, Tls" ƏoꍇATLS1.2͖ƂȂĂ +[System.Net.ServicePointManager]::SecurityProtocol = [System.Net.SecurityProtocolType]::Tls12; + +# WJς݃tH_? +if((Test-Path $CMAKE_DIR) -eq $true) { + # 폜 + Remove-Item -Recurse -Force $CMAKE_DIR + # I + #exit +} + +# _E[h +if((Test-Path $CMAKE_ZIP) -eq $false) { + if((Test-Path "download\cmake") -ne $true) { + mkdir "download\cmake" + } + wget $CMAKE_URL -Outfile $CMAKE_ZIP +} + +# WJ +Expand-Archive $CMAKE_ZIP -DestinationPath . diff --git a/buildtools/getperl.bat b/buildtools/getperl.bat new file mode 100644 index 000000000..7f7017498 --- /dev/null +++ b/buildtools/getperl.bat @@ -0,0 +1,19 @@ +@echo off +setlocal +cd /d %~dp0 +echo perl_E[hbuildtools/perlɓWJ܂ +pause +IF NOT EXIST "C:\Program Files\CMake\bin" goto by_powershell + +:by_cmake +set PATH=C:\Program Files\CMake\bin;%PATH% +cmake -P getperl.cmake +goto finish + +:by_powershell +powershell -NoProfile -ExecutionPolicy Unrestricted .\getperl.ps1 +goto finish + +:finish +endlocal +pause diff --git a/buildtools/getperl.cmake b/buildtools/getperl.cmake new file mode 100644 index 000000000..71bdb6534 --- /dev/null +++ b/buildtools/getperl.cmake @@ -0,0 +1,25 @@ +# cmake -P perl.cmake + +set(SRC_ARC "strawberry-perl-5.30.1.1-32bit.zip") +set(SRC_URL "http://strawberryperl.com/download/5.30.1.1/strawberry-perl-5.30.1.1-32bit.zip") +set(SRC_ARC_HASH_SHA256 cd9d7d5a3d0099752d6587770f4920b2b3818b16078e7b4dbf83f2aa2c037f70) +set(DOWN_DIR "${CMAKE_SOURCE_DIR}/download/perl") +set(INSTALL_DIR "${CMAKE_SOURCE_DIR}/perl") + +if(NOT EXISTS ${INSTALL_DIR}/perl/bin/perl.exe) + + file(DOWNLOAD + ${SRC_URL} + ${DOWN_DIR}/${SRC_ARC} + EXPECTED_HASH SHA256=${SRC_ARC_HASH_SHA256} + SHOW_PROGRESS + ) + + file(MAKE_DIRECTORY ${INSTALL_DIR}) + + execute_process( + COMMAND ${CMAKE_COMMAND} -E tar "xvf" ${DOWN_DIR}/${SRC_ARC} + WORKING_DIRECTORY ${INSTALL_DIR} + ) + +endif() diff --git a/buildtools/getperl.ps1 b/buildtools/getperl.ps1 new file mode 100644 index 000000000..3ccc715e9 --- /dev/null +++ b/buildtools/getperl.ps1 @@ -0,0 +1,28 @@ +$PERL_URL = "http://strawberryperl.com/download/5.30.1.1/strawberry-perl-5.30.1.1-32bit.zip" +$PERL_ZIP = ($PERL_URL -split "/")[-1] +$PERL_DIR = "perl" + +$PERL_ZIP = "download\perl\" + $PERL_ZIP + +echo $PERL_URL +echo $PERL_ZIP +echo $PERL_DIR + +# WJς݃tH_? +if((Test-Path $PERL_DIR) -eq $true) { + # 폜 + Remove-Item -Recurse -Force $PERL_DIR + # I + #exit +} + +# _E[h +if((Test-Path $PERL_ZIP) -eq $false) { + if((Test-Path "download\perl") -ne $true) { + mkdir "download\perl" + } + wget $PERL_URL -Outfile $PERL_ZIP +} + +# WJ +Expand-Archive $PERL_ZIP -DestinationPath $PERL_DIR diff --git a/buildtools/install_cygwin.bat b/buildtools/install_cygwin.bat new file mode 100644 index 000000000..8ff3ea668 --- /dev/null +++ b/buildtools/install_cygwin.bat @@ -0,0 +1,13 @@ +echo %~dp0\install_cygwin.bat + +pushd %~dp0 + +if "%CMAKE_COMMAND%" == "" ( + call ..\ci_scripts\find_cmake.bat +) +"%CMAKE_COMMAND%" -P install_cygwin.cmake +rem "%CMAKE_COMMAND%" -DREMOVE_TMP=ON -P install_cygwin.cmake + +popd + +if not "%NOPAUSE%" == "1" pause diff --git a/buildtools/install_cygwin.cmake b/buildtools/install_cygwin.cmake new file mode 100644 index 000000000..a197135ee --- /dev/null +++ b/buildtools/install_cygwin.cmake @@ -0,0 +1,94 @@ +# install cygwin in this folder +# cmake -P install_cygwin.cmake +# cmake -DREMOVE_TMP=ON -P install_cygwin.cmake +set(CYGWIN_ROOT "${CMAKE_CURRENT_LIST_DIR}/cygwin64") +if(DEFINED ENV{REMOVE_TMP}) + set(REMOVE_TMP ON) +else() + option(REMOVE_TMP "" OFF) +endif() + +# cygroot +if(EXISTS "${CYGWIN_ROOT}") + file(MAKE_DIRECTORY "${CYGWIN_ROOT}") +endif() + +if("${CYGWIN_ROOT}" MATCHES "cygdrive") + # cygwin の cmake を使用するとpath(CYGWIN_ROOT) が /cygdrive/c.. となり + # setup.exe の --root オプションで処理できない + message(FATAL_ERROR "check CMAKE_COMMAND (${CMAKE_COMMAND})") +endif() + +############################## +# cygwin (64bit) latest + +# setup-x86_64.exe 2.932 +set(SETUP_URL "https://cygwin.com/setup-x86_64.exe") +set(SETUP_HASH_SHA256 "e7815d360ab098fdd1f03f10f43f363c73a632e8866e304c72573cf1e6a0dec8") +set(SETUP "${CYGWIN_ROOT}/setup-x86_64.exe") + +set(DOWNLOAD_SITE "http://mirrors.kernel.org/sourceware/cygwin/") +set(PACKAGE "${CMAKE_CURRENT_LIST_DIR}/download/cygwin_package") + +# setup-x86_64.exe を準備 +file(DOWNLOAD + ${SETUP_URL} + ${PACKAGE}/setup-x86_64.exe + EXPECTED_HASH SHA256=${SETUP_HASH_SHA256} + SHOW_PROGRESS +) +file(COPY ${PACKAGE}/setup-x86_64.exe DESTINATION ${CYGWIN_ROOT}) + +# install packages +execute_process( + COMMAND ${SETUP} --quiet-mode --wait --no-admin --root ${CYGWIN_ROOT} --site ${DOWNLOAD_SITE} --local-package-dir ${PACKAGE} --upgrade-also --packages cmake,bash,tar,make,perl,gcc-core,gcc-g++,icoutils + WORKING_DIRECTORY ${CYGWIN_ROOT} +) +# install packages for notify +execute_process( + COMMAND ${SETUP} --quiet-mode --wait --no-admin --root ${CYGWIN_ROOT} --site ${DOWNLOAD_SITE} --local-package-dir ${PACKAGE} --upgrade-also--packages perl-JSON,perl-LWP-Protocol-https + WORKING_DIRECTORY ${CYGWIN_ROOT} +) + +# remove archives +if(REMOVE_TMP) + file(GLOB ARC_FILES "${PACKAGE}/http*") + file(REMOVE_RECURSE ${ARC_FILES}) +endif() + +############################## +# cygwin 32bit from time machine +# http://www.crouchingtigerhiddenfruitbat.org/Cygwin/timemachine.html + +#set(SETUP_EXE setup-x86_64-2.909.exe) +#set(SETUP_HASH_SHA256 b9219acd1241ffa4d38e19587f1ccc2854f951e451f3858efc9d2e1fe19d375c) +#set(DOWNLOAD_SITE "http://ctm.crouchingtigerhiddenfruitbat.org/pub/cygwin/circa/64bit/2021/10/28/174906") +set(SETUP_EXE setup-x86_64-2.924.exe) +set(SETUP_HASH_SHA256 edd0a64dc65087ffe453ca94b267169b39458a983b29ac31320fcaa983d0f97e) +set(DOWNLOAD_SITE "http://ctm.crouchingtigerhiddenfruitbat.org/pub/cygwin/circa/64bit/2022/12/01/145510") + +set(SETUP_URL "http://ctm.crouchingtigerhiddenfruitbat.org/pub/cygwin/setup/snapshots/${SETUP_EXE}") +set(SETUP "${CYGWIN_ROOT}/${SETUP_EXE}") + +set(PACKAGE "${CMAKE_CURRENT_LIST_DIR}/download/cygwin32_package") + +# setup-x86_64.exe を準備 +file(DOWNLOAD + ${SETUP_URL} + ${PACKAGE}/${SETUP_EXE} + EXPECTED_HASH SHA256=${SETUP_HASH_SHA256} + SHOW_PROGRESS +) +file(COPY ${PACKAGE}/${SETUP_EXE} DESTINATION ${CYGWIN_ROOT}) + +# install packages +execute_process( + COMMAND ${SETUP} -X --quiet-mode --wait --no-admin --root ${CYGWIN_ROOT} --site ${DOWNLOAD_SITE} --local-package-dir ${PACKAGE} --packages cygwin32-gcc-g++ + WORKING_DIRECTORY ${CYGWIN_ROOT} +) + +# remove archives +if(REMOVE_TMP) + file(GLOB ARC_FILES "${PACKAGE}/http*") + file(REMOVE_RECURSE ${ARC_FILES}) +endif() diff --git a/buildtools/install_cygwin.md b/buildtools/install_cygwin.md new file mode 100644 index 000000000..a4a70b10b --- /dev/null +++ b/buildtools/install_cygwin.md @@ -0,0 +1,6 @@ +# cygwin64 (64bit版) をこのフォルダへインストール + +- Tera Termビルド専用cygwin環境を準備 +- 32bit実行ファイルが生成できるgcc等もインストール +- Cygwin Time Machine から32bit用exeが出力できるgcc,g++をインストール + - http://www.crouchingtigerhiddenfruitbat.org/Cygwin/timemachine.html diff --git a/buildtools/install_innosetup.bat b/buildtools/install_innosetup.bat new file mode 100644 index 000000000..b3c0a27e8 --- /dev/null +++ b/buildtools/install_innosetup.bat @@ -0,0 +1,13 @@ +echo %~dp0\install_innosetup.bat + +pushd %~dp0 + +if "%CMAKE_COMMAND%" == "" ( + call ..\ci_scripts\find_cmake.bat +) + +"%CMAKE_COMMAND%" -P install_innosetup.cmake + +popd + +if not "%NOPAUSE%" == "1" pause diff --git a/buildtools/install_innosetup.cmake b/buildtools/install_innosetup.cmake new file mode 100644 index 000000000..a9eb2619b --- /dev/null +++ b/buildtools/install_innosetup.cmake @@ -0,0 +1,47 @@ +# cmake -P innosetup.cmake +if(DEFINED ENV{REMOVE_TMP}) + set(REMOVE_TMP ON) +else() + option(REMOVE_TMP "" OFF) +endif() + +# innosetup 6.3.3 +set(INNOSETUP_EXE "innosetup-6.3.3.exe") +set(INNOSETUP_URL "https://files.jrsoftware.org/is/6/${INNOSETUP_EXE}") +set(INNOSETUP_HASH "0bcb2a409dea17e305a27a6b09555cabe600e984f88570ab72575cd7e93c95e6") +set(CHECK_FILE innosetup6/ISCC.exe) +set(CHECK_HASH "bf65156e415096b4b524ea7a8646d1e5b4ff7817fe8ba5dfc142a637640ae7d3") + +# check innosetup +if(EXISTS ${CMAKE_CURRENT_LIST_DIR}/${CHECK_FILE}) + file(SHA256 ${CMAKE_CURRENT_LIST_DIR}/${CHECK_FILE} HASH) + if(${HASH} STREQUAL ${CMAKE_CURRENT_LIST_DIR}/${CHECK_HASH}) + return() + endif() + message("file ${CMAKE_CURRENT_LIST_DIR}/${CHECK_FILE}") + message("actual HASH=${HASH}") + message("expect HASH=${CHECK_HASH}") +endif() + +# download +message("download ${INNOSETUP_EXE} from ${INNOSETUP_URL}") +file(MAKE_DIRECTORY "${CMAKE_CURRENT_LIST_DIR}/download/innosetup6") +file(DOWNLOAD + ${INNOSETUP_URL} + ${CMAKE_CURRENT_LIST_DIR}/download/innosetup6/${INNOSETUP_EXE} + EXPECTED_HASH SHA256=${INNOSETUP_HASH} + SHOW_PROGRESS + ) + +# setup +if(EXISTS "${CMAKE_CURRENT_LIST_DIR}/innosetup6") + file(REMOVE_RECURSE "${CMAKE_CURRENT_LIST_DIR}/innosetup6") +endif() +file(MAKE_DIRECTORY "${CMAKE_CURRENT_LIST_DIR}/innosetup6") +execute_process( + COMMAND ${CMAKE_CURRENT_LIST_DIR}/download/innosetup6/${INNOSETUP_EXE} /dir=. /CURRENTUSER /PORTABLE=1 /VERYSILENT + WORKING_DIRECTORY "${CMAKE_CURRENT_LIST_DIR}/innosetup6" + ) +if(REMOVE_TMP) + file(REMOVE_RECURSE "${CMAKE_CURRENT_LIST_DIR}/download/innosetup6") +endif() diff --git a/buildtools/install_innosetup.md b/buildtools/install_innosetup.md new file mode 100644 index 000000000..2ff426849 --- /dev/null +++ b/buildtools/install_innosetup.md @@ -0,0 +1,10 @@ +# Inno Setup + +- Inno Setupのコマンドライン版を使用できるように buildtools/ に展開します +- `cmake -P innosetup.cmake` で展開します + +## Inno Setup + +- https://jrsoftware.org/isinfo.php + +buildtools/innosetup6/ISCC.exe を使ってインストーラーを作成します。 diff --git a/buildtools/nasm.cmake b/buildtools/nasm.cmake new file mode 100644 index 000000000..2292b7ec2 --- /dev/null +++ b/buildtools/nasm.cmake @@ -0,0 +1,20 @@ +# cmake -P nasm.cmake + +set(NASM_BASE "nasm-2.15.05") +set(NASM_ZIP "${NASM_BASE}-win32.zip") +set(NASM_URL "https://www.nasm.us/pub/nasm/releasebuilds/2.15.05/win32/${NASM_ZIP}") +set(NASM_HASH "258c7d1076e435511cf2fdf94e2281eadbdb9e3003fd57f356f446e2bce3119e") +file(MAKE_DIRECTORY "download/nasm") +file(DOWNLOAD + ${NASM_URL} + download/nasm/${NASM_ZIP} + EXPECTED_HASH SHA256=${NASM_HASH} + SHOW_PROGRESS + ) +if(EXISTS "nasm") + file(REMOVE_RECURSE "nasm") +endif() +execute_process( + COMMAND ${CMAKE_COMMAND} -E tar xvf download/nasm/${NASM_ZIP} + ) +file(RENAME "${NASM_BASE}" "nasm") diff --git a/buildtools/svnrev/.gitignore b/buildtools/svnrev/.gitignore new file mode 100644 index 000000000..c3238239e --- /dev/null +++ b/buildtools/svnrev/.gitignore @@ -0,0 +1 @@ +sourcetree_info.bat diff --git a/buildtools/svnrev/readme.md b/buildtools/svnrev/readme.md new file mode 100644 index 000000000..06b452a94 --- /dev/null +++ b/buildtools/svnrev/readme.md @@ -0,0 +1,59 @@ +# svnrev + +- ソースツリーのsvn(又は git)の情報をヘッダファイル等に書き出すためのツール + - ソース用のヘッダフィル + - 例 `../teraterm/common/svnversion.h` + - CI用のbatファイル + - 例 `sourcetree_info.bat` + - cmake用ファイル + - 例 buildフォルダの `build_config.cmake` + +## 準備 + +- perl を実行できるようにしておく + - perl が実行できるよう環境変数 PATH を設定する + - または、../buildtools/libs/perl があれば使用する + - ../buildtools/getperl.bat をダブルクリックすると + strawberry perl が buildtools/perl に展開される + - または、いくつかのメジャーなperlを探して見つければ使用する + - perl が見つからない場合は svnversion.default.h が使用される +- svn(又は git)をインストールしておく + - Windows用svnの例 + - Subversion for Windows + - http://sourceforge.net/projects/win32svn/ + - TortoiseSVN の command line client tools + - https://tortoisesvn.net/ + - Windows用gitの例 + - git + - https://git-scm.com/ + - 標準的なインストールフォルダから自動的に実行ファイルを探す + - 見つからない場合は環境変数 PATH にあるプログラムを実行する + - toolinfo.txt にツールのパスを書いておくと優先して使用される + - ツールが実行できない場合もヘッダファイルは作成される + +# ヘッダの作成方法 + +- Visual Studioを利用している場合 + - 自動的に生成される + - ttermpro プロジェクトのビルド前のイベントでsvnrev.batが呼び出される +- Windows の場合 + - svnrev.bat をダブルクリックでヘッダが作成される +- cmake の場合 + - ビルド用のファイルをジェネレート時に自動で生成される + - build フォルダの build_config.cmake を削除してビルドすると再生成される +- コマンドラインで直接実行する場合 + - `perl svnrev.pl --root ../.. --header ../../teraterm/common/svnversion.h` + +## svnrev.pl のオプション + +- --root + - プロジェクトファイルのパス + - '.svn/' 又は '.git/' の存在するパス +- --header + - ヘッダファイルのパス +- --svn + - svnコマンドのパス +- --git + - gitコマンドのパス + +オプションが toolinfo.txt より優先される diff --git a/buildtools/svnrev/svnrev.bat b/buildtools/svnrev/svnrev.bat new file mode 100644 index 000000000..39325bd53 --- /dev/null +++ b/buildtools/svnrev/svnrev.bat @@ -0,0 +1,53 @@ +@echo off +setlocal +cd /d %~dp0 +set BAT=%~n0%~x0 + +set SVNVERSION_H=../../teraterm/common/svnversion.h +set SVNVERSION_H_DOS=..\..\teraterm\common\svnversion.h +set SVNVERSION_H_OLD=..\..\teraterm\ttpdlg\svnversion.h +set DO_NOT_RUN_SVNREV=do_not_run_svnrev.txt + +if NOT EXIST %SVNVERSION_H% goto env_perl +if NOT EXIST %DO_NOT_RUN_SVNREV% goto env_perl +@echo %BAT%: Find %DO_NOT_RUN_SVNREV%, Do not run svnrev.pl +goto finish + +:env_perl +if NOT "%PERL%" == "" goto found_perl + +:search_perl +set PERL=perl.exe +where %PERL% > nul 2>&1 +if %errorlevel% == 0 goto found_perl +set PERL=%~dp0..\cygwin64\bin\perl.exe +if exist %PERL% goto found_perl +set PERL=%~dp0..\perl\perl\bin\perl.exe +if exist %PERL% goto found_perl +set PERL=C:\Strawberry\perl\bin\perl.exe +if exist %PERL% goto found_perl +set PERL=C:\Perl64\bin\perl.exe +if exist %PERL% goto found_perl +set PERL=C:\Perl\bin\perl.exe +if exist %PERL% goto found_perl +set PERL=C:\cygwin64\usr\bin\perl.exe +if exist %PERL% goto found_perl +set PERL=C:\cygwin\usr\bin\perl.exe +if exist %PERL% goto found_perl +goto no_perl + +:no_perl +@echo %BAT%: perl not found +@echo %BAT%: default svnversion.h is used +if exist sourcetree_info.bat del sourcetree_info.bat +type svnversion.default.h > %SVNVERSION_H_DOS% +goto finish + +:found_perl +@echo %BAT%: perl=%PERL% +if EXIST %SVNVERSION_H_OLD% del %SVNVERSION_H_OLD% +%PERL% svnrev.pl --root ../.. --header %SVNVERSION_H% +goto finish + + +:finish diff --git a/buildtools/svnrev/svnrev.cmake b/buildtools/svnrev/svnrev.cmake new file mode 100644 index 000000000..3b07139aa --- /dev/null +++ b/buildtools/svnrev/svnrev.cmake @@ -0,0 +1,52 @@ +# input +# PERL +# GIT_EXECUTABLE +# SVN_EXECUTABLE +# SOURCE_DIR (CMAKE_SOURCE_DIR), ソースツリーのルート +# BINARY_DIR (CMAKE_BINARY_DIR), バイナリツリーのルート + +set(CMAKE_SOURCE_DIR ${SOURCE_DIR}) +set(CMAKE_BINARY_DIR ${BINARY_DIR}) +set(SVNREV_PL ${CMAKE_CURRENT_LIST_DIR}/svnrev.pl) +set(SVNVERSION_H ${CMAKE_BINARY_DIR}/teraterm/common/svnversion.h) +set(BUILD_CONFIG ${CMAKE_BINARY_DIR}/build_config.cmake) +set(SOURCETREEINFO ${CMAKE_CURRENT_LIST_DIR}/sourcetree_info.bat) + +unset(ARGS) +if((DEFINED SVN_EXECUTABLE) AND (DEFINED ${SVN_EXECUTABLE})) + list(APPEND ARGS "--svn" "${SVN_EXECUTABLE}") +endif() +if((DEFINED GIT_EXECUTABLE) AND (DEFINED ${GIT_EXECUTABLE})) + list(APPEND ARGS "--git" "${GIT_EXECUTABLE}") +endif() +if((${SVNREV_PL} IS_NEWER_THAN ${SVNVERSION_H}) OR + (${SVNREV_PL} IS_NEWER_THAN ${BUILD_CONFIG})) + # 出力ファイルが古い(or存在しない)時は上書き指定 + list(APPEND ARGS "--overwrite") +endif() + +if(0) + message("PERL=${PERL}") + message("GIT_EXECUTABLE=${GIT_EXECUTABLE}") + message("SVN_EXECUTABLE=${SVN_EXECUTABLE}") + message("SOURCE_DIR=${SOURCE_DIR}") + message("BINARY_DIR=${BINARY_DIR}") + message("CMAKE_SOURCE_DIR=${CMAKE_SOURCE_DIR}") + message("CMAKE_BINARY_DIR=${CMAKE_BINARY_DIR}") + message("ARGS=${ARGS}") + message("SVNREV_PL=${SVNREV_PL}") + message("SVNVERSION_H=${SVNVERSION_H}") + message("BUILD_CONFIG=${BUILD_CONFIG}") + message("SOURCETREEINFO=${SOURCETREEINFO}") +endif() + +execute_process( + COMMAND ${PERL} ${SVNREV_PL} ${ARGS} + --root ${CMAKE_SOURCE_DIR} + --header ${SVNVERSION_H} + --cmake ${BUILD_CONFIG} + --bat ${SOURCETREEINFO} + #--verbose + WORKING_DIRECTORY ${CMAKE_CURRENT_LIST_DIR} + RESULT_VARIABLE rv +) diff --git a/buildtools/svnrev/svnrev.pl b/buildtools/svnrev/svnrev.pl new file mode 100644 index 000000000..1ae26a425 --- /dev/null +++ b/buildtools/svnrev/svnrev.pl @@ -0,0 +1,416 @@ +use strict; +use warnings; +use utf8; +use Getopt::Long 'GetOptions'; +use POSIX 'strftime'; + +binmode STDOUT, ':encoding(utf8)'; + +my $tt_version_major = 0; +my $tt_version_minor = 0; +my $tt_version_substr = ""; +my $tt_version_h = "../../teraterm/common/tt-version.h"; +my $version; +my $svn = "svn"; +my $git = "git"; +my $out_header = "svnversion.h"; +my $out_bat = "sourcetree_info.bat"; +my $out_cmake = ""; +my $source_root = ".."; +my $date = strftime "%Y%m%d", localtime; +my $time = strftime "%H%M%S", localtime; +my $verbose = 0; +my $script_name = $0; +my $header = "This file was generated by buildtools/svnrev/svnrev.pl"; +my $overwrite = 0; +my %svninfo = ( + name => '', + release => 0, + Revision => '', + vcs => '', +); + +sub read_toolinfo { + my $info = "toolinfo.txt"; + if (!-f $info) { + return; + } + open(my $FD, "<:utf8:crlf", $info); + while (my $l = <$FD>) { + chomp $l; + $l =~ s/^\x{FEFF}//; # remove BOM + if ($l =~ /^#/) { + next; + } + if ($l =~ /^svn=\s*(.*)$/) { + $svn = $1; + } + if ($l =~ /^git=\s*(.*)$/) { + $git = $1; + } + } + close($FD); +} + +sub search_svn { + my @test_list = ( + "C:/Program Files (x86)/Subversion/bin/svn.exe", + "C:/Program Files/Subversion/bin/svn.exe", + "C:/Program Files/TortoiseSVN/bin/svn.exe", + "C:/cygwin64/bin/svn.exe", + "C:/cygwin/bin/svn.exe", + "/usr/bin/svn.exe" # msys, cygwin + ); + for (my $i = 0; $i < @test_list; $i++) { + my $test = $test_list[$i]; + if (-e $test) { + $svn = $test; + return; + } + } +} + +sub search_git { + my @test_list = ( + "C:/Program Files/Git/bin/git.exe", + "C:/cygwin64/bin/git.exe", + "C:/cygwin/bin/git.exe", + "/usr/bin/git.exe" # msys, cygwin + ); + for (my $i = 0; $i < @test_list; $i++) { + my $test = $test_list[$i]; + if (-e $test) { + $git = $test; + return; + } + } +} + +sub dump_info { + my %info = @_; + + print "SVNREVISION $info{'Revision'}\n"; + print "RELEASE $info{'release'}\n"; + print "BRANCH_NAME $info{'name'}\n"; +} + +sub read_whole_file { + my $fname = shift; + open(my $FD, '<', $fname) or die "error open $fname"; + + my $text; + while (<$FD>) { + if (/DATE/ || /TIME/) { + ; #pass + } else { + $text .= $_; + } + } + close $FD; + return $text; +} + +sub compare_file { + my ($f1, $f2) = @_; + if (! -f $f1) { + return 1; + } + if (! -f $f2) { + return 1; + } + my $t1 = read_whole_file($f1); + my $t2 = read_whole_file($f2); + if ($t1 eq $t2) { + # return same + return 0; + } + return 1; +} + +sub write_info_header { + my ($out_header, %svninfo) = @_; + my $revision = $svninfo{'Revision'}; + my $vcs = $svninfo{'vcs'}; + + open(my $FD, ">$out_header") or die "error $out_header"; + print $FD "/* $header */\n"; + print $FD "/* #define TT_VERSION_STR \"$version\" check teraterm/common/tt-version.h */\n"; + if ($vcs eq 'git') { + if ($revision ne '') { + print $FD "#define GITVERSION \"$revision\"\n"; + } else { + print $FD "#undef GITVERSION\n"; + } + print $FD "#undef SVNVERSION\n"; + } + elsif ($vcs eq 'svn') { + print $FD "#undef GITVERSION\n"; + if ($revision ne '') { + print $FD "#define SVNVERSION $revision\n"; + } else { + print $FD "#undef SVNVERSION\n"; + } + } + else { + print $FD "#undef GITVERSION\n"; + print $FD "#undef SVNVERSION\n"; + } + if ($svninfo{'release'}) { + print $FD "#define TERATERM_RELEASE 1\n"; + } else { + print $FD "#undef TERATERM_RELEASE\n"; + } + print $FD "#define BRANCH_NAME \"$svninfo{'name'}\"\n"; + close($FD); +} + +sub write_info_bat { + my ($out_bat, %svninfo) = @_; + my $revision = $svninfo{'Revision'}; + my $vcs = $svninfo{'vcs'}; + + open(my $FD, ">$out_bat") or die "error $out_bat"; + print $FD "\@rem $header\n"; + print $FD "set VERSION=$version\n"; + if ($vcs eq 'git') { + if ($revision ne '') { + print $FD "set GITVERSION=$revision\n"; + } else { + print $FD "set GITVERSION=unknown\n"; + } + print $FD "set SVNVERSION=unknown\n"; + } + elsif ($vcs eq 'svn') { + print $FD "set GITVERSION=unknown\n"; + if ($revision ne '') { + print $FD "set SVNVERSION=$revision\n"; + } else { + print $FD "set SVNVERSION=unknown\n"; + } + } + else { + print $FD "set GITVERSION=unknown\n"; + print $FD "set SVNVERSION=unknown\n"; + } + print $FD "set RELEASE=$svninfo{'release'}\n"; + print $FD "set DATE=$date\n"; + print $FD "set TIME=$time\n"; + close($FD); +} + +sub write_info_cmake { + my ($out_cmake, %svninfo) = @_; + my $revision = $svninfo{'Revision'}; + my $vcs = $svninfo{'vcs'}; + + open(my $FD, ">$out_cmake") or die "error $out_cmake"; + print $FD "# $header\n"; + print $FD "set(VERSION \"$version\")\n"; + if ($vcs eq 'git') { + if ($revision ne '') { + print $FD "set(GITVERSION \"$revision\")\n"; + } else { + print $FD "#set(GITVERSION \"0000\")\n"; + } + print $FD "#set(SVNVERSION \"0000\")\n"; + } + elsif ($vcs eq 'svn') { + print $FD "#set(GITVERSION \"0000\")\n"; + if ($revision ne '') { + print $FD "set(SVNVERSION \"$revision\")\n"; + } else { + print $FD "#set(SVNVERSION \"0000\")\n"; + } + } + else { + print $FD "#set(GITVERSION \"0000\")\n"; + print $FD "#set(SVNVERSION \"0000\")\n"; + } + print $FD "set(RELEASE $svninfo{'release'})\n"; + print $FD "set(DATE \"$date\")\n"; + print $FD "set(TIME \"$time\")\n"; + close($FD); +} + +sub read_tt_version_h() +{ + # ヘッダーファイルがない場合 + if (! -f $tt_version_h) { + printf("no header\n"); + $tt_version_major = 0; + $tt_version_minor = 0; + $tt_version_substr = "no_header"; + return; + } + + open(my $FH, '<', $tt_version_h) or die "error open $tt_version_h"; + while (<$FH>) { + if (/^\s*#define\s+TT_VERSION_MAJOR\s+(\d+)/) { + $tt_version_major = $1; + } + elsif (/^\s*#define\s+TT_VERSION_MINOR\s+(\d+)/) { + $tt_version_minor = $1; + } + elsif (/^\s*#define\s+TT_VERSION_SUBSTR\s+\"(.+)\"/) { + $tt_version_substr = $1; + } + } + close $FH; +} + +&read_tt_version_h(); +&search_svn(); +&search_git(); +&read_toolinfo(); + +GetOptions( + 'root=s' => \$source_root, + 'svn=s' => \$svn, + 'git=s' => \$git, + 'header=s' => \$out_header, + 'bat=s' => \$out_bat, + 'cmake=s' => \$out_cmake, + 'verbose' => \$verbose, + 'overwrite' => \$overwrite +); + +$git =~ s/"//g; +$git =~ s/\\/\//g; +$svn =~ s/"//g; +$svn =~ s/\\/\//g; + +if ($tt_version_substr eq "") { + $version = "$tt_version_major.$tt_version_minor"; +} else { + $version = "$tt_version_major.$tt_version_minor-$tt_version_substr"; +} + +if ($verbose != 0) { + print "root=$source_root\n"; + print "tt_version_major=$tt_version_major\n"; + print "tt_version_minor=$tt_version_minor\n"; + print "tt_version_substr=$tt_version_substr\n"; + print "svn=\"$svn\"\n"; + print "git=\"$git\"\n"; + print "header=\"$out_header\"\n"; + print "bat=\"$out_bat\"\n"; + print "cmake=\"$out_cmake\"\n"; + print "overwrite $overwrite\n"; +} + +if (-d "$source_root/.svn" && $svn ne "") { + $svninfo{'vcs'} = 'svn'; + + # svn infoを実行、出力をすべて取り込む + if (!open(my $FD, "-|", "\"$svn\" info --xml $source_root 2>&1")) { + # svn が実行できない + print "$script_name: '$svn' can not execute\n"; + } + else { + # 出力をすべて取り込む + my $text = do { local $/; <$FD> }; + close($FD); + + # xmlパーサがインストールされていない環境もあるので + # パターンマッチで実装 + if ($text =~ /]+)>/) { + my $commit = $1; + if ($commit =~ /revision=\"(\d+)\"/) { + $svninfo{'Revision'} = $1; + } + } + if ($text =~ /(.+)<\/relative-url>/) { + my $url = $1; + my $name = $url; + $name =~ s/^\^\/(.*)$/$1/; # "\/" を削除する + $svninfo{'name'} = $name; + } + } +} +elsif((-d "$source_root/.git" || -f "$source_root/.git") && $git ne "") { + $svninfo{'vcs'} = 'git'; + + my $branch = `\"$git\" rev-parse --abbrev-ref HEAD`; + if ($branch eq '') { + # git が実行できない + print "$script_name: \"$git\" can not execute\n"; + } + else { + $branch =~ s/[\r\n]$//g; + $svninfo{'name'} = $branch; + + my $revision = `\"$git\" log --oneline -1`; + chomp($revision); + $revision =~ s/^(\w+) .+/$1/; + $svninfo{'Revision'} = $revision; + } +} +else { + # do not use VCS +} + +my $release = 0; +if ($tt_version_substr eq "") { + $release = 1; +} +$svninfo{'release'} = $release; + + +if ($verbose != 0) { + &dump_info(%svninfo); +} + +my $same; + +# output for source(C,C++) header +$same = 0; +my $out_header_tmp = $out_header . ".tmp"; +write_info_header($out_header_tmp, %svninfo); +if (!$overwrite && &compare_file($out_header, $out_header_tmp) == 0) { + # same + unlink $out_header_tmp; + $same = 1; +} else { + #diff + unlink $out_header; + rename $out_header_tmp, $out_header; +} +if ($verbose != 0) { + printf("%s '$out_header'\n", $same == 1 ? "exists" : "update" ); +} + +# output for bat file +$same = 0; +my $out_bat_tmp = $out_bat . ".tmp"; +write_info_bat($out_bat_tmp, %svninfo); +if (!$overwrite && &compare_file($out_bat, $out_bat_tmp) == 0) { + # same + unlink $out_bat_tmp; + $same = 1; +} else { + #diff + unlink $out_bat; + rename $out_bat_tmp, $out_bat; +} +if ($verbose != 0) { + printf("%s '$out_bat'\n", $same == 1 ? "exists" : "update" ); +} + +# output for cmake +if ($out_cmake ne "") { + my $out_cmake_tmp = $out_cmake . ".tmp"; + &write_info_cmake($out_cmake_tmp, %svninfo); + $same = 0; + if (!$overwrite && &compare_file($out_cmake, $out_cmake_tmp) == 0) { + # same + unlink $out_cmake_tmp; + $same = 1; + } else { + # diff + unlink $out_cmake; + rename $out_cmake_tmp, $out_cmake; + } + if ($verbose != 0) { + printf("%s '$out_cmake'\n", $same == 1 ? "exists" : "update" ); + } +} diff --git a/buildtools/svnrev/svnversion.default.h b/buildtools/svnrev/svnversion.default.h new file mode 100644 index 000000000..da58d8b28 --- /dev/null +++ b/buildtools/svnrev/svnversion.default.h @@ -0,0 +1,5 @@ +/* default svnversion.h */ +#define GITVERSION 0000 +#define SVNVERSION 0000 +#undef TERATERM_RELEASE +#define BRANCH_NAME "unknown" diff --git a/buildtools/svnrev/toolinfo_sample.txt b/buildtools/svnrev/toolinfo_sample.txt new file mode 100644 index 000000000..736e65d02 --- /dev/null +++ b/buildtools/svnrev/toolinfo_sample.txt @@ -0,0 +1,4 @@ +# tool info +# +svn="C:\Program Files\TortoiseSVN\bin\svn.exe" +git="C:\Program Files\Git\bin\git.exe" diff --git a/ci_scripts/README.md b/ci_scripts/README.md new file mode 100644 index 000000000..8198e986f --- /dev/null +++ b/ci_scripts/README.md @@ -0,0 +1,34 @@ +# CI用スクリプト + +- AppVeyor用スクリプト +- ローカルでビルド + - AppVeyor用スクリプトをローカルでテスト + - これを使えば簡単にビルドすることができる + +## Visual Studio 2005 + +- Visual Studio 2005 をインストールする +- 次のバッチファイルを実行する + - build_local_appveyor_vs2005.bat + +注 + Visual Studio 2005 関連のファイルは入手が難しいため + 新たにインストールするのは困難 + +## Visual Studio 2019 + +- Visual Studio 2019 をインストールする +- 次のバッチファイルを実行する + - build_local_appveyor_vs2019.bat + - build_local_appveyor_vs2019_x64.bat + +## msys2 + +- msys2を使ったビルド +- インストーラーをダウンロード、インストールする + - https://www.msys2.org/ +- 次のどれか一つバッチファイルを実行する + - ci_scripts\build_local_appveyor_mingw_x64_gcc.bat + - ci_scripts\build_local_appveyor_mingw_clang.bat + - ci_scripts\build_local_appveyor_mingw_gcc.bat + - ci_scripts\build_local_appveyor_mingw_x64_clang.bat diff --git a/ci_scripts/addpkg_msys2.bat b/ci_scripts/addpkg_msys2.bat new file mode 100644 index 000000000..dc90fa833 --- /dev/null +++ b/ci_scripts/addpkg_msys2.bat @@ -0,0 +1,9 @@ +echo %~dp0\addpkg_msys2.bat + +pushd %~dp0 + +if exist c:\msys64\usr\bin\pacman.exe ( + c:\msys64\usr\bin\pacman.exe -S --noconfirm --needed cmake +) + +popd diff --git a/ci_scripts/addpkg_syscygwin.bat b/ci_scripts/addpkg_syscygwin.bat new file mode 100644 index 000000000..00b083fa6 --- /dev/null +++ b/ci_scripts/addpkg_syscygwin.bat @@ -0,0 +1,6 @@ +echo %~dp0\addpkg_syscygwin.bat +set CUR=%~dp0 +call %CUR%..\buildtools\find_cygwin.bat + +%CYGWIN_PATH%\..\setup-x86_64.exe --quiet-mode --no-desktop --root %CYGWIN_PATH%\.. --packages cmake,perl-JSON,perl-LWP-Protocol-https + diff --git a/ci_scripts/appveyor.md b/ci_scripts/appveyor.md new file mode 100644 index 000000000..fc56343db --- /dev/null +++ b/ci_scripts/appveyor.md @@ -0,0 +1,117 @@ +AppVeyorの使用 +============== + +## プロジェクト作成 / 設定 + +- Select repository for your new project + - Generic の Git を選択 + - Clone URL + - https://github.com/TeraTermProject/teraterm.git など + - Authentication + - None (public repository) + - push [Add Git repository] button +- 設定 + - Settings/General + - Project name 設定する + - Default branch + - main など + - Custom configuration .yml file name (重要) + - AppVeyorからアクセスできるところに appveyor_*.ymlを置く + - https://raw.githubusercontent.com/TeraTermProject/teraterm/main/ci_scripts/appveyor_vs2022_bat.yml など + - push [save] button + +appveyor_vs*_bat.yml +==================== + +Windows image の Visual Studio を使用したビルド + +## build + +- Current build を選ぶ +- New Build を押す + - libs/ + - 最初は libs/ のライブラリをビルドするのに時間がかかる + - 2度目以降は lib/ 以下はキャッシュされる + - 30分/jobぐらい + - teraterm +- Artifacts にsnapshot.zip ができている + + +appveyor_release_bat.yml +======================== + +リリース用 + +- appveyor_vs2022_bat.yml がベース +- キャッシュを使用しない + + +appveyor_ubuntu2004.yml +======================= + +Linux image(Ubuntu2004) の MinGW を利用したビルド + + +appveyor_mix.yml +================ + +いくつかのイメージを使って Visual Studio, Mingw を使って一気にビルド + +最近使用していない + +build_local_appveyor_* +====================== + +- ローカルで build_appveyor.bat をテストするための bat ファイル +- Visual Studio と msys2 を使用 + +ローカルでのテスト(Linux) +======================= + +## ビルド準備/WSL + +- ストアで debian をインストールする + - 21-05-02時点で debian 10(buster) +- debian を起動 +- 次のコマンドを実行 + +``` +sudo apt-get update +sudo apt-get -y upgrade +sudo apt-get -y install cmake perl subversion +sudo apt-get -y install g++-mingw-w64 +sudo apt-get -y install fp-utils +cd /path/to/teraterm +``` + +## ビルド準備/debian + +- WSLと同じ +- 次のディストリビューション/バージョンに含まれているmingwでのビルドは確認した + +``` +$ cat /etc/os-release +PRETTY_NAME="Debian GNU/Linux bookworm/sid" +NAME="Debian GNU/Linux" +VERSION_CODENAME=bookworm +ID=debian +HOME_URL="https://www.debian.org/" +SUPPORT_URL="https://www.debian.org/support" +BUG_REPORT_URL="https://bugs.debian.org/" +``` + +## ビルド + +gcc 32bit + +``` +cmake -DCMAKE_GENERATOR="Unix Makefiles" -DCMAKE_TOOLCHAIN_FILE=../mingw.toolchain.cmake -P buildall.cmake +cmake -P ci_scripts/build_local_appveyor_mingw.cmake +``` + + +gcc 64bit +- `cmake -DCOMPILER_64BIT=ON -P ci_scripts/build_local_appveyor_mingw.cmake` + +msys64 +- [build_local_appveyor_mingw_cmake.bat](build_local_appveyor_mingw_cmake.bat)参照 diff --git a/ci_scripts/appveyor_mix.yml b/ci_scripts/appveyor_mix.yml new file mode 100644 index 000000000..a3113edc2 --- /dev/null +++ b/ci_scripts/appveyor_mix.yml @@ -0,0 +1,118 @@ +version: 0.1.{build} + +environment: + matrix: + - APPVEYOR_BUILD_WORKER_IMAGE: Visual Studio 2022 + COMPILER: VS_143 + COMPILER_FRIENDLY: vs2022 + GENERATOR: "Visual Studio 17 2022" + CMAKE_COMMAND: cmake + CMAKE_OPTION_LIBS: -DARCHITECTURE=Win32 + CMAKE_OPTION_GENERATE: "-A Win32" + CMAKE_OPTION_BUILD: --config Release + BUILD_DIR: build + APPVEYOR_SAVE_CACHE_ON_ERROR: true + - APPVEYOR_BUILD_WORKER_IMAGE: Visual Studio 2019 + COMPILER: VS_142 + COMPILER_FRIENDLY: vs2019 + GENERATOR: "Visual Studio 16 2019" + CMAKE_COMMAND: cmake + CMAKE_OPTION_LIBS: -DARCHITECTURE=Win32 + CMAKE_OPTION_GENERATE: "-A Win32" + CMAKE_OPTION_BUILD: --config Release + BUILD_DIR: build + APPVEYOR_SAVE_CACHE_ON_ERROR: true + #APPVEYOR_CACHE_SKIP_RESTORE: true + - APPVEYOR_BUILD_WORKER_IMAGE: Visual Studio 2019 + COMPILER: VS_142_x64 + COMPILER_FRIENDLY: vs2019_x64 + GENERATOR: "Visual Studio 16 2019" + CMAKE_COMMAND: cmake + CMAKE_OPTION_LIBS: -DARCHITECTURE=x64 + CMAKE_OPTION_GENERATE: "-A x64" + CMAKE_OPTION_BUILD: --config Release + BUILD_DIR: build + APPVEYOR_SAVE_CACHE_ON_ERROR: true + #APPVEYOR_CACHE_SKIP_RESTORE: true + - APPVEYOR_BUILD_WORKER_IMAGE: Visual Studio 2013 + COMPILER: VS_90 + COMPILER_FRIENDLY: vs2008 + GENERATOR: "Visual Studio 9 2008" + CMAKE_COMMAND: cmake + CMAKE_OPTION_LIBS: -DARCHITECTURE=Win32 + CMAKE_OPTION_GENERATE: "-A Win32" + CMAKE_OPTION_BUILD: --config Release + BUILD_DIR: build + APPVEYOR_SAVE_CACHE_ON_ERROR: true + #APPVEYOR_CACHE_SKIP_RESTORE: true + - APPVEYOR_BUILD_WORKER_IMAGE: Visual Studio 2019 + COMPILER: mingw + COMPILER_FRIENDLY: mingw_gcc_win32 + GENERATOR: "Unix Makefiles" + CMAKE_COMMAND: cmake + CMAKE_OPTION_LIBS: + CMAKE_OPTION_GENERATE: -DCMAKE_BUILD_TYPE=Release + CMAKE_OPTION_BUILD: + BUILD_DIR: build + MINGW_CC: gcc + MINGW_CXX: g++ + APPVEYOR_SAVE_CACHE_ON_ERROR: true + #APPVEYOR_CACHE_SKIP_RESTORE: true + - APPVEYOR_BUILD_WORKER_IMAGE: Visual Studio 2019 + COMPILER: mingw_x64 + COMPILER_FRIENDLY: mingw_gcc_x64 + GENERATOR: "Unix Makefiles" + CMAKE_COMMAND: cmake + CMAKE_OPTION_LIBS: + CMAKE_OPTION_GENERATE: -DCMAKE_BUILD_TYPE=Release + CMAKE_OPTION_BUILD: + BUILD_DIR: build + MINGW_CC: gcc + MINGW_CXX: g++ + APPVEYOR_SAVE_CACHE_ON_ERROR: true + #APPVEYOR_CACHE_SKIP_RESTORE: true + - APPVEYOR_BUILD_WORKER_IMAGE: Visual Studio 2019 + COMPILER: mingw + COMPILER_FRIENDLY: mingw_clang_win32 + GENERATOR: "Unix Makefiles" + CMAKE_COMMAND: cmake + CMAKE_OPTION_LIBS: + CMAKE_OPTION_GENERATE: -DCMAKE_BUILD_TYPE=Release + CMAKE_OPTION_BUILD: + BUILD_DIR: build + MINGW_CC: clang + MINGW_CXX: clang++ + APPVEYOR_SAVE_CACHE_ON_ERROR: true + #APPVEYOR_CACHE_SKIP_RESTORE: true + - APPVEYOR_BUILD_WORKER_IMAGE: Visual Studio 2019 + COMPILER: mingw_x64 + COMPILER_FRIENDLY: mingw_clang_x64 + GENERATOR: "Unix Makefiles" + CMAKE_COMMAND: cmake + CMAKE_OPTION_LIBS: + CMAKE_OPTION_GENERATE: -DCMAKE_BUILD_TYPE=Release + CMAKE_OPTION_BUILD: + BUILD_DIR: build + MINGW_CC: clang + MINGW_CXX: clang++ + APPVEYOR_SAVE_CACHE_ON_ERROR: true + #APPVEYOR_CACHE_SKIP_RESTORE: true + +build: off + +build_script: + - call ci_scripts\build_appveyor.bat + +cache: + - libs + - buildtools + +artifacts: + - path: build\%ZIP_FILE% + - path: build\%SETUP_FILE%.exe + - path: build\buildinfo.txt + +on_success: + - ci_scripts\notify.bat success +on_failure: + - ci_scripts\notify.bat failure diff --git a/ci_scripts/appveyor_release_bat.yml b/ci_scripts/appveyor_release_bat.yml new file mode 100644 index 000000000..e896bf346 --- /dev/null +++ b/ci_scripts/appveyor_release_bat.yml @@ -0,0 +1,48 @@ +image: Visual Studio 2022 + +environment: +# リリースではキャッシュを使わない +# APPVEYOR_SAVE_CACHE_ON_ERROR: true + VS_VERSION: 2022 + +build: off + +init: + # タイムゾーンを JST に変更 + - tzutil /s "Tokyo Standard Time" + +# リリースではキャッシュを使わない +# cache: +# - libs + +before_build: + # インストール済みの Cygwin を更新 + # - ci_scripts/upgrade_syscygwin.bat + # インストール済みの Cygwin にパッケージを追加 + - ci_scripts/addpkg_syscygwin.bat + # インストール済みの MSYS2 にパッケージを追加 + # - ci_scripts/addpkg_msys2.bat + # 自前の Cygwin をインストール + # - buildtools/install_cygwin.bat + +build_script: + - ci_scripts/build_appveyor_release_bat.bat + +after_build: + # ソース管理しているファイルがキャッシュされて更新されなくなるのを防ぐため削除 + # リリースではキャッシュを使わないので呼ばなくてよい + # - ci_scripts/build_appveyor_release_bat_pre_cache.bat + +artifacts: + - path: installer/Output/*.exe + - path: installer/Output/*.zip + +# AppVeyor のプロジェクトの Settings - Environment に WEBHOOK_URL を設定するかどうかで制御する +on_success: + - ci_scripts\notify.bat success +on_failure: + - ci_scripts\notify.bat failure + +on_finish: +# ビルド完了後に RDP が有効になる。blockRdp を指定しているので、完了後にも終了しない。 +# - ps: $blockRdp = $true; iex ((new-object net.webclient).DownloadString('https://raw.githubusercontent.com/appveyor/ci/master/scripts/enable-rdp.ps1')) diff --git a/ci_scripts/appveyor_ubuntu2004.yml b/ci_scripts/appveyor_ubuntu2004.yml new file mode 100644 index 000000000..a751053e7 --- /dev/null +++ b/ci_scripts/appveyor_ubuntu2004.yml @@ -0,0 +1,15 @@ +image: Ubuntu2004 + +build: off + +init: + - sudo apt-get -y install cmake perl subversion g++-mingw-w64 fp-utils + +cache: + - libs + +build_script: + - cmake -P ci_scripts/build_local_appveyor_mingw.cmake + +artifacts: + - path: build*/*.zip diff --git a/ci_scripts/appveyor_vs2019_bat.yml b/ci_scripts/appveyor_vs2019_bat.yml new file mode 100644 index 000000000..c30150030 --- /dev/null +++ b/ci_scripts/appveyor_vs2019_bat.yml @@ -0,0 +1,48 @@ +image: Visual Studio 2019 + +environment: + APPVEYOR_SAVE_CACHE_ON_ERROR: true + VS_VERSION: 2019 + NOPAUSE: 1 + +build: off + +init: + # タイムゾーンを JST に変更 + - tzutil /s "Tokyo Standard Time" + +cache: + - libs + +before_build: + # インストール済みの Cygwin を更新 + # - ci_scripts/upgrade_syscygwin.bat + # インストール済みの Cygwin にパッケージを追加 + - ci_scripts/addpkg_syscygwin.bat + # インストール済みの MSYS2 にパッケージを追加 + # - ci_scripts/addpkg_msys2.bat + # 自前の Cygwin をインストール + # - bulidtools/install_cygwin.bat + # 自前の Inno Setup をインストール + - buildtools/install_innosetup.bat + +build_script: + - ci_scripts/build_appveyor_release_bat.bat + +after_build: + # ソース管理しているファイルがキャッシュされて更新されなくなるのを防ぐため削除 + - ci_scripts/build_appveyor_release_bat_pre_cache.bat + +artifacts: + - path: installer/Output/*.exe + - path: installer/Output/*.zip + +# AppVeyor のプロジェクトの Settings - Environment に WEBHOOK_URL を設定するかどうかで制御する +on_success: + - ci_scripts\notify.bat success +on_failure: + - ci_scripts\notify.bat failure + +on_finish: +# ビルド完了後に RDP が有効になる。blockRdp を指定しているので、完了後にも終了しない。 +# - ps: $blockRdp = $true; iex ((new-object net.webclient).DownloadString('https://raw.githubusercontent.com/appveyor/ci/master/scripts/enable-rdp.ps1')) diff --git a/ci_scripts/appveyor_vs2022_bat.yml b/ci_scripts/appveyor_vs2022_bat.yml new file mode 100644 index 000000000..e55b6b5be --- /dev/null +++ b/ci_scripts/appveyor_vs2022_bat.yml @@ -0,0 +1,48 @@ +image: Visual Studio 2022 + +environment: + APPVEYOR_SAVE_CACHE_ON_ERROR: true + VS_VERSION: 2022 + NOPAUSE: 1 + +build: off + +init: + # タイムゾーンを JST に変更 + - tzutil /s "Tokyo Standard Time" + +cache: + - libs + +before_build: + # インストール済みの Cygwin を更新 + # - ci_scripts/upgrade_syscygwin.bat + # インストール済みの Cygwin にパッケージを追加 + - ci_scripts/addpkg_syscygwin.bat + # インストール済みの MSYS2 にパッケージを追加 + # - ci_scripts/addpkg_msys2.bat + # 自前の Cygwin をインストール + # - buldtools/install_cygwin.bat + # 自前の Inno Setup をインストール + - buildtools/install_innosetup.bat + +build_script: + - ci_scripts/build_appveyor_release_bat.bat + +after_build: + # ソース管理しているファイルがキャッシュされて更新されなくなるのを防ぐため削除 + - ci_scripts/build_appveyor_release_bat_pre_cache.bat + +artifacts: + - path: installer/Output/*.exe + - path: installer/Output/*.zip + +# AppVeyor のプロジェクトの Settings - Environment に WEBHOOK_URL を設定するかどうかで制御する +on_success: + - ci_scripts\notify.bat success +on_failure: + - ci_scripts\notify.bat failure + +on_finish: +# ビルド完了後に RDP が有効になる。blockRdp を指定しているので、完了後にも終了しない。 +# - ps: $blockRdp = $true; iex ((new-object net.webclient).DownloadString('https://raw.githubusercontent.com/appveyor/ci/master/scripts/enable-rdp.ps1')) diff --git a/ci_scripts/build_appveyor.bat b/ci_scripts/build_appveyor.bat new file mode 100644 index 000000000..0a26a6e23 --- /dev/null +++ b/ci_scripts/build_appveyor.bat @@ -0,0 +1,56 @@ +cd /d %~dp0.. +if exist teraterm\ttpdlg\svnversion.h del teraterm\ttpdlg\svnversion.h +if exist buildtools\svnrev\sourcetree_info.bat del buildtools\svnrev\sourcetree_info.bat +rem call buildtools\install_cygwin.bat +cd /d %~dp0.. +call buildtools\svnrev\svnrev.bat +call buildtools\svnrev\sourcetree_info.bat +echo GENERATOR=%GENERATOR% +echo CMAKE_OPTION_LIBS=%CMAKE_OPTION_LIBS% +echo CMAKE_COMMAND=%CMAKE_COMMAND% +echo BUILD_DIR=%BUILD_DIR% +pause +if "%COMPILER%" == "mingw" ( + set PATH=C:\msys64\mingw32\bin;C:\msys64\usr\bin + pacman -S --noconfirm --needed mingw-w64-i686-cmake mingw-w64-i686-gcc make + if "%MINGW_CC%" == "clang" ( + pacman -S --noconfirm --needed mingw-w64-i686-clang + ) + set CC=%MINGW_CC% + set CXX=%MINGW_CXX% + set CMAKE=C:\msys64\mingw64\bin\cmake.exe + set CMAKE_OPTION_BUILD=-- -s -j + set CMAKE_OPTION_GENERATE=%CMAKE_OPTION_GENERATE% -DCMAKE_BUILD_TYPE=Release +) +if "%COMPILER%" == "mingw_x64" ( + set PATH=C:\msys64\mingw64\bin;C:\msys64\usr\bin + pacman -S --noconfirm --needed mingw-w64-x86_64-cmake mingw-w64-x86_64-gcc make + pacman -S --noconfirm --needed mingw-w64-i686-cmake mingw-w64-i686-gcc make + if "%MINGW_CC%" == "clang" ( + pacman -S --noconfirm --needed mingw-w64-x86_64-clang + pacman -S --noconfirm --needed mingw-w64-i686-clang + ) + set CC=%MINGW_CC% + set CXX=%MINGW_CXX% + set CMAKE_OPTION_BUILD=-- -s -j + set CMAKE_OPTION_GENERATE=%CMAKE_OPTION_GENERATE% -DCMAKE_BUILD_TYPE=Release +) +if exist libs\omit_build_libs_%COMPILER% goto omit_build_libs +cd libs +"%CMAKE_COMMAND%" -DCMAKE_GENERATOR="%GENERATOR%" %CMAKE_OPTION_LIBS% -P buildall.cmake +rem if exist build rmdir /s /q build +rem if exist download rmdir /s /q download +cd .. +:omit_build_libs +if not exist %BUILD_DIR% mkdir %BUILD_DIR% +cd %BUILD_DIR% +if exist build_config.cmake del build_config.cmake +if exist cmakecache.txt del cmakecache.txt +set ZIP_FILE=teraterm-%VERSION%-r%SVNVERSION%-%DATE%_%TIME%-appveyor-%COMPILER_FRIENDLY%.zip +set SETUP_FILE=teraterm-%VERSION%-r%SVNVERSION%-%DATE%_%TIME%-appveyor-%COMPILER_FRIENDLY% +set SNAPSHOT_DIR=teraterm-%VERSION%-r%SVNVERSION%-%DATE%_%TIME%-appveyor-%COMPILER_FRIENDLY% +"%CMAKE_COMMAND%" .. -G "%GENERATOR%" %CMAKE_OPTION_GENERATE% -DSNAPSHOT_DIR=%SNAPSHOT_DIR% -DSETUP_ZIP=%ZIP_FILE% -DSETUP_EXE=%SETUP_FILE% -DSETUP_RELEASE=%RELEASE% +"%CMAKE_COMMAND%" --build . --target install %CMAKE_OPTION_BUILD% +"%CMAKE_COMMAND%" --build . --target zip +"%CMAKE_COMMAND%" --build . --target inno_setup +cd .. diff --git a/ci_scripts/build_appveyor.cmake b/ci_scripts/build_appveyor.cmake new file mode 100644 index 000000000..c2794e1cd --- /dev/null +++ b/ci_scripts/build_appveyor.cmake @@ -0,0 +1,92 @@ +# +# input +# CMAKE_C_COMPILER +# CMAKE_CXX_COMPILER +# CMAKE_RC_COMPILER +# filenames +# GENERATE_OPTIONS +# cmake の generate 時の引数 +# BUILD_TOOL_OPTIONS +# cmake --build の最後に追加される +# BUILD_DIR +# build directry +# COMPILER_FRIENDLY +# インストーラ、zipファイル名の最後に追加される + +option(REMOVE_BUILD_DIR "for clean bulid" OFF) + +# create build dir +message(STATUS "BUILD_DIR=${BUILD_DIR}") +if(EXISTS "${BUILD_DIR}") + if(REMOVE_BUILD_DIR) + file(REMOVE_RECURSE ${BUILD_DIR}) + else() + file(REMOVE ${BUILD_DIR}/CMakeCache.txt) + endif() +endif() +if(NOT EXISTS "${BUILD_DIR}") + file(MAKE_DIRECTORY ${BUILD_DIR}) +endif() + + +# svn revision +file(MAKE_DIRECTORY ${BUILD_DIR}/teraterm/common) +execute_process( + COMMAND perl ${CMAKE_CURRENT_LIST_DIR}/../buildtools/svnrev/svnrev.pl -v --root "${CMAKE_CURRENT_LIST_DIR}/.." --header ${BUILD_DIR}/teraterm/common/svnversion.h --cmake ${BUILD_DIR}/build_config.cmake + WORKING_DIRECTORY ${CMAKE_CURRENT_LIST_DIR}/../buildtools/svnrev + ) + + +# variables +include(${BUILD_DIR}/build_config.cmake) +if(NOT DEFINED SVNVERSION) + set(SVNVERSION "0000") +endif() + +set(ZIP_FILE "snapshot-${VERSION}-r${SVNVERSION}-${DATE}_${TIME}-appveyor-${COMPILER_FRIENDLY}.zip") +set(SETUP_FILE "snapshot-${VERSION}-r${SVNVERSION}-${DATE}_${TIME}-appveyor-${COMPILER_FRIENDLY}") +set(SNAPSHOT_DIR "snapshot-${VERSION}-r${SVNVERSION}-${DATE}_${TIME}-appveyor-${COMPILER_FRIENDLY}") + +list(APPEND BUILD_OPTIONS "--config" "Release") +list(APPEND GENERATE_OPTIONS "-DSNAPSHOT_DIR=${SNAPSHOT_DIR}" "-DSETUP_ZIP=${ZIP_FILE}" "-DSETUP_EXE=${SETUP_FILE}" "-DSETUP_RELEASE=${RELEASE}") +list(APPEND GENERATE_OPTIONS "-DCMAKE_INSTALL_PREFIX=${SNAPSHOT_DIR}") +if(DEFINED CMAKE_C_COMPILER) + message("CMAKE_C_COMPILER=${CMAKE_C_COMPILER}") + list(APPEND GENERATE_OPTIONS "-DCMAKE_C_COMPILER=${CMAKE_C_COMPILER}") +endif() +if(DEFINED CMAKE_CXX_COMPILER) + message("CMAKE_CXX_COMPILER=${CMAKE_CXX_COMPILER}") + list(APPEND GENERATE_OPTIONS "-DCMAKE_CXX_COMPILER=${CMAKE_CXX_COMPILER}") +endif() +if(DEFINED CMAKE_RC_COMPILER) + message("CMAKE_RC_COMPILER=${CMAKE_RC_COMPILER}") + list(APPEND GENERATE_OPTIONS "-DCMAKE_RC_COMPILER=${CMAKE_RC_COMPILER}") +endif() + + +# libs/ +if(NOT EXISTS "${CMAKE_CURRENT_LIST_DIR}/../libs/openssl11_mingw") + execute_process( + COMMAND ${CMAKE_COMMAND} "-DCMAKE_GENERATOR=Unix Makefiles" -P ${CMAKE_CURRENT_LIST_DIR}/../libs/buildall.cmake + WORKING_DIRECTORY ${CMAKE_CURRENT_LIST_DIR}/../libs + ) +endif() + + +# teraterm +execute_process( + COMMAND ${CMAKE_COMMAND} "${CMAKE_CURRENT_LIST_DIR}/.." ${GENERATE_OPTIONS} + WORKING_DIRECTORY ${BUILD_DIR} + ) +execute_process( + COMMAND ${CMAKE_COMMAND} --build . --target install ${BUILD_OPTIONS} ${BUILD_TOOL_OPTIONS} + WORKING_DIRECTORY ${BUILD_DIR} + ) +execute_process( + COMMAND ${CMAKE_COMMAND} --build . --target zip + WORKING_DIRECTORY ${BUILD_DIR} + ) +execute_process( + COMMAND ${CMAKE_COMMAND} --build . --target inno_setup + WORKING_DIRECTORY ${BUILD_DIR} + ) diff --git a/ci_scripts/build_appveyor_release_bat.bat b/ci_scripts/build_appveyor_release_bat.bat new file mode 100644 index 000000000..a1f02efd5 --- /dev/null +++ b/ci_scripts/build_appveyor_release_bat.bat @@ -0,0 +1,6 @@ +echo %~dp0\build_appveyor_release_bat.bat + +set CUR=%~dp0 + +cd /d %CUR%.. +call installer\release.bat 2 diff --git a/ci_scripts/build_appveyor_release_bat_pre_cache.bat b/ci_scripts/build_appveyor_release_bat_pre_cache.bat new file mode 100644 index 000000000..88718ac6a --- /dev/null +++ b/ci_scripts/build_appveyor_release_bat_pre_cache.bat @@ -0,0 +1,7 @@ +echo %~dp0\build_appveyor_release_bat_pre_cache.bat + +set CUR=%~dp0 +cd /d %CUR%.. +del %CUR%..\libs\*.txt +del %CUR%..\libs\*.cmake +del %CUR%..\libs\*.bat diff --git a/ci_scripts/build_local_appveyor.bat b/ci_scripts/build_local_appveyor.bat new file mode 100644 index 000000000..d7961c199 --- /dev/null +++ b/ci_scripts/build_local_appveyor.bat @@ -0,0 +1,152 @@ +@echo off +setlocal +set CUR=%~dp0 +cd /d %CUR% + +echo ======= +echo 1. vs2022 win32 +echo 2. vs2022 x64 +echo b. vs2022 arm64 +echo 3. vs2019 win32 +echo 4. vs2019 x64 +echo 5. mingw gcc win32 +echo 6. mingw gcc x64 +echo 7. mingw clang win32 +echo 8. mingw clang x64 +echo 9. exit +rem echo a. vs2005 + +if "%1" == "" ( + set /p no="select no " +) else ( + set no=%1 +) +echo %no% + +if not "%no%" == "1" goto pass_1 + set COMPILER=VS_143 + set COMPILER_FRIENDLY=vs2022 + set GENERATOR=Visual Studio 17 2022 + set CMAKE_COMMAND=cmake + set CMAKE_OPTION_LIBS=-DARCHITECTURE=win32 + set CMAKE_OPTION_GENERATE=-A Win32 + set CMAKE_OPTION_BUILD=--config Release + set BUILD_DIR=build_%COMPILER_FRIENDLY%_win32 + call :build +:pass_1 +if not "%no%" == "2" goto pass_2 + set COMPILER=VS_143_x64 + set COMPILER_FRIENDLY=vs2022_x64 + set GENERATOR=Visual Studio 17 2022 + set CMAKE_COMMAND=cmake + set CMAKE_OPTION_LIBS=-DARCHITECTURE=x64 + set CMAKE_OPTION_GENERATE=-A x64 + set CMAKE_OPTION_BUILD=--config Release + set BUILD_DIR=build_%COMPILER_FRIENDLY% + call :build +:pass_2 +if not "%no%" == "b" goto pass_a + set COMPILER=VS_143_arm64 + set COMPILER_FRIENDLY=vs2022_arm64 + set GENERATOR=Visual Studio 17 2022 + set CMAKE_COMMAND=cmake + set CMAKE_OPTION_LIBS=-DARCHITECTURE=arm64 + set CMAKE_OPTION_GENERATE=-A arm64 + set CMAKE_OPTION_BUILD=--config Release + set BUILD_DIR=build_%COMPILER_FRIENDLY% + call :build +:pass_a +if not "%no%" == "3" goto pass_3 + set COMPILER=VS_142 + set COMPILER_FRIENDLY=vs2019 + set GENERATOR=Visual Studio 16 2019 + set CMAKE_COMMAND=cmake + set CMAKE_OPTION_LIBS=-DARCHITECTURE=win32 + set CMAKE_OPTION_GENERATE=-A Win32 + set CMAKE_OPTION_BUILD=--config Release + set BUILD_DIR=build_%COMPILER_FRIENDLY% + call :build +:pass_3 +if not "%no%" == "4" goto pass_4 + set COMPILER=VS_142_x64 + set COMPILER_FRIENDLY=vs2019_x64 + set GENERATOR=Visual Studio 16 2019 + set CMAKE_COMMAND=cmake + set CMAKE_OPTION_LIBS=-DARCHITECTURE=x64 + set CMAKE_OPTION_GENERATE=-A x64 + set CMAKE_OPTION_BUILD=--config Release + set BUILD_DIR=build_%COMPILER_FRIENDLY% + call :build +:pass_4 +if not "%no%" == "a" goto pass_a + set COMPILER=VS_80 + set COMPILER_FRIENDLY=vs2005 + set GENERATOR=Visual Studio 8 2005 + set CMAKE_COMMAND=..\libs\cmake-3.11.4-win32-x86\bin\cmake.exe + set CMAKE_OPTION_LIBS=-DARCHITECTURE=win32 + set CMAKE_OPTION_GENERATE= + set CMAKE_OPTION_BUILD=--config Release + set BUILD_DIR=build_%COMPILER_FRIENDLY% +:pass_a +if not "%no%" == "5" goto pass_5 + set COMPILER=mingw + set COMPILER_FRIENDLY=mingw_gcc + set GENERATOR=Unix Makefiles + set CMAKE_COMMAND=cmake + set CMAKE_OPTION_LIBS=-DARCHITECTURE=i686 + set CMAKE_OPTION_GENERATE=-DCMAKE_BUILD_TYPE=Release + set CMAKE_OPTION_BUILD= + set MINGW_CC=gcc + set MINGW_CXX=g++ + set BUILD_DIR=build_%COMPILER_FRIENDLY%_msys2 + call :build +:pass_5 +if not "%no%" == "6" goto pass_6 + set COMPILER=mingw_x64 + set COMPILER_FRIENDLY=mingw_x64_gcc + set GENERATOR=Unix Makefiles + set CMAKE_COMMAND=cmake + set CMAKE_OPTION_LIBS=-DARCHITECTURE=x86_64 + set CMAKE_OPTION_GENERATE=-DCMAKE_BUILD_TYPE=Release + set CMAKE_OPTION_BUILD= + set MINGW_CC=gcc + set MINGW_CXX=g++ + set BUILD_DIR=build_%COMPILER_FRIENDLY%_msys2 + call :build +:pass_6 +if not "%no%" == "7" goto pass_7 + set COMPILER=mingw + set COMPILER_FRIENDLY=mingw_clang + set GENERATOR=Unix Makefiles + set CMAKE_COMMAND=cmake + set CMAKE_OPTION_LIBS=-DARCHITECTURE=i686 + set CMAKE_OPTION_GENERATE=-DCMAKE_BUILD_TYPE=Release + set CMAKE_OPTION_BUILD= + set MINGW_CC=clang + set MINGW_CXX=clang++ + set BUILD_DIR=build_%COMPILER_FRIENDLY%_msys2 + call :build +:pass_7 +if not "%no%" == "8" goto pass_8 + set COMPILER=mingw_x64 + set COMPILER_FRIENDLY=mingw_x64_clang + set GENERATOR=Unix Makefiles + set CMAKE_COMMAND=cmake + set CMAKE_OPTION_LIBS=-DARCHITECTURE=x86_64 + set CMAKE_OPTION_GENERATE=-DCMAKE_BUILD_TYPE=Release + set CMAKE_OPTION_BUILD= + set MINGW_CC=clang + set MINGW_CXX=clang++ + set BUILD_DIR=build_%COMPILER_FRIENDLY%_msys2 + call :build +:pass_8 + +if not "%NOPAUSE%" == "1" pause +exit /b 0 + +rem #################### +:build +cd /d %~dp0.. +call ci_scripts\find_cmake.bat +call ci_scripts\build_appveyor.bat +exit /b 0 diff --git a/ci_scripts/find_cmake.bat b/ci_scripts/find_cmake.bat new file mode 100644 index 000000000..998bd4495 --- /dev/null +++ b/ci_scripts/find_cmake.bat @@ -0,0 +1,32 @@ +rem if "%CMAKE_COMMAND%" == "" goto pass_where +rem "%SystemRoot%\system32\where.exe" %CMAKE_COMMAND% 2> nul > nul && exit /b +:pass_where + +set CMAKE_COMMAND=C:\Program Files\CMake\bin\cmake.exe +if exist "%CMAKE_COMMAND%" exit /b + +set CMAKE_DIR=C:\Program Files\Microsoft Visual Studio\2022 +call :search_vs +if %errorlevel% == 1 exit /b +set CMAKE_DIR=C:\Program Files (x86)\Microsoft Visual Studio\2019 +call :search_vs +if %errorlevel% == 1 exit /b +set CMAKE_DIR=C:\Program Files (x86)\Microsoft Visual Studio\2017 +call :search_vs +if %errorlevel% == 1 exit /b +set CMAKE_DIR= +set CMAKE_COMMAND= + +echo Install cmake +pause +exit + +:search_vs +set CMAKE_COMMAND=%CMAKE_DIR%\Community\Common7\IDE\CommonExtensions\Microsoft\CMake\CMake\bin\cmake.exe +if exist "%CMAKE_COMMAND%" exit /b 1 +set CMAKE_COMMAND=%CMAKE_DIR%\Professional\Common7\IDE\CommonExtensions\Microsoft\CMake\CMake\bin\cmake.exe +if exist "%CMAKE_COMMAND%" exit /b 1 +set CMAKE_COMMAND=%CMAKE_DIR%\Enterprise\Common7\IDE\CommonExtensions\Microsoft\CMake\CMake\bin\cmake.exe +if exist "%CMAKE_COMMAND%" exit /b 1 +exit /b 0 + diff --git a/ci_scripts/notify.bat b/ci_scripts/notify.bat new file mode 100644 index 000000000..2994f7edb --- /dev/null +++ b/ci_scripts/notify.bat @@ -0,0 +1,17 @@ +rem perl WEBHOOK_URL ɒʒm + +echo notify.bat %1 +set result=%1 + +pushd %~dp0 + +if "%APPVEYOR%" == "" goto pass_discord +if "%WEBHOOK_URL%" == "" goto pass_discord +if "%CYGWIN_PATH%" == "" call %~dp0..\buildtools\find_cygwin.bat +if "%CYGWIN_PATH%" == "" goto pass_discord + +rem NEED perl-JSON,perl-LWP-Protocol-https packages +%CYGWIN_PATH%\perl.exe notify_discord.pl %result% + +:pass_discord +popd diff --git a/ci_scripts/notify_discord.pl b/ci_scripts/notify_discord.pl new file mode 100644 index 000000000..d6649dd3e --- /dev/null +++ b/ci_scripts/notify_discord.pl @@ -0,0 +1,86 @@ +#!/usr/bin/perl + +use strict; +use utf8; +use JSON; +use LWP::UserAgent; +use LWP; + +if (not defined $ENV{APPVEYOR_PROJECT_SLUG}) { + # test + $ENV{APPVEYOR_BUILD_WORKER_IMAGE} = "Image Name"; + $ENV{APPVEYOR_PROJECT_SLUG} = "teraterm"; + $ENV{APPVEYOR_REPO_NAME} = "APPVEYOR_REPO_NAME"; + $ENV{APPVEYOR_REPO_BRANCH} = "APPVEYOR_REPO_BRANCH"; + $ENV{APPVEYOR_REPO_COMMIT} = "APPVEYOR_REPO_COMMIT"; + $ENV{APPVEYOR_REPO_COMMIT} = "31"; + #$ENV{WEBHOOK_URL} = "https://discord.com/api/...."; +} + +#print "ENV{APPVEYOR}=$ENV{APPVEYOR}\n"; +#print "ENV{WEBHOOK_URL}=$ENV{WEBHOOK_URL}\n"; + +if (not defined $ENV{APPVEYOR}) { + print "Do not run on Appveyor\n"; + exit 0; +} +if (not defined $ENV{WEBHOOK_URL}) { + print "\$WEBHOOK_URL is empty\n"; + exit 0; +} + +my $hook = $ENV{WEBHOOK_URL}; +my $result = $ARGV[0]; +my $color; +if ($result =~ /success/) { + $color = "255"; # 0x0000ff green +} else { + $color = "16711680"; # 0xff0000 red +} +my $image = $ENV{APPVEYOR_BUILD_WORKER_IMAGE}; + +my $revision = "$ENV{APPVEYOR_REPO_COMMIT}"; +my $rev_url = "https://osdn.net/projects/ttssh2/scm/svn/commits/$revision"; +my $artifacts_url = "https://ci.appveyor.com/project/$ENV{APPVEYOR_ACCOUNT_NAME}/$ENV{APPVEYOR_PROJECT_SLUG}/build/job/$ENV{APPVEYOR_JOB_ID}/artifacts"; + +my $description = <<"EOS"; +$ENV{COMPILER_FRIENDLY}/$ENV{COMPILER} +Commit \[r$revision\]($rev_url) by $ENV{APPVEYOR_REPO_COMMIT_AUTHOR} on $ENV{APPVEYOR_REPO_COMMIT_TIMESTAMP} +\[Download\]($artifacts_url) +EOS + +my %json= ( + "content" => "build $result r$revision", + "embeds" => [{ +# "title" => "", + "color" => $color, + "description" => "$description", + }] + ); + +#print encode_json(\%json); + +if(1) { + # LWP + my $browser = LWP::UserAgent->new; + + my $client = HTTP::Request->new(POST => $hook); + $client->content_type('application/json'); + $client->header("User-Agent" => "DiscordBot"); + + $client->content(encode_json(\%json)); + + my $response = $browser->request($client); + if ($response->is_success) { + print $response->content; + } + else { + print $response->status_line, "\n"; + } + +} else { + # curl + my $curl = 'curl -H "Accept: application/json" -H "Content-type: application/json" -X POST -d'; + my $cmd=$curl . " '" . encode_json(\%json) . "' '" . $hook . "'"; + system($cmd); +} diff --git a/ci_scripts/upgrade_syscygwin.bat b/ci_scripts/upgrade_syscygwin.bat new file mode 100644 index 000000000..a3e2a0370 --- /dev/null +++ b/ci_scripts/upgrade_syscygwin.bat @@ -0,0 +1,4 @@ +echo %~dp0\addpkg_syscygwin.bat + +c:\cygwin64\setup-x86_64.exe --upgrade-also --no-desktop --quiet-mode + diff --git a/cygterm/Makefile b/cygterm/Makefile deleted file mode 100644 index b9bec87a9..000000000 --- a/cygterm/Makefile +++ /dev/null @@ -1,71 +0,0 @@ -# Makefile for CygTerm - -BINDIR = $(HOME)/bin - -CC = gcc -CFLAGS = -D_GNU_SOURCE -O2 -fno-exceptions -#CFLAGS = -g -fno-exceptions -LDFLAGS = -mwindows - -LAUNCH = cyglaunch.exe -LAUNCH_SRC = cyglaunch.c -EXE = cygterm.exe -SRC = $(EXE:.exe=.cc) -CFG = $(EXE:.exe=.cfg) -RES = $(EXE:.exe=.res) -ICO = $(EXE:.exe=.ico) -RC = $(EXE:.exe=.rc) -ARCHIVE = cygterm+.tar.gz - -.PHONY: all clean install uninstall - -all : $(EXE) $(LAUNCH) $(ARCHIVE) - -$(EXE) : $(SRC) $(ICO) $(RC) - windres -O coff -o $(RES) $(RC) - ifeq (0, $(shell nm /usr/lib/crt0.o | grep -c WinMainCRTStartup)) - $(CC) $(CFLAGS) $(LDFLAGS) -DNO_WIN_MAIN -o $(EXE) $(SRC) $(RES) - else - $(CC) $(CFLAGS) $(LDFLAGS) -o $(EXE) $(SRC) $(RES) - endif - strip $(EXE) - -$(LAUNCH) : $(LAUNCH_SRC) $(ICO) $(RC) - @# gcc 4.3.2? or later doesn't support "-mno-cygwin" flag. - @# - @# $(CC) gcc less than 4.3.2 (supports "-mno-cygwin") - @# gcc-3 gcc3 (supports "-mno-cygwin") - @# i686-pc-mingw32-gcc mingw-gcc-core - @# i686-w64-mingw32-gcc mingw64-i686-gcc-core - @# x86_64-w64-mingw32-gcc mingw64-x86_64-gcc-core - ifeq (i686, $(shell uname -m)) - windres -O coff -o $(RES) $(RC) - ( i686-pc-mingw32-gcc $(CFLAGS) $(LDFLAGS) -o $(LAUNCH) $(LAUNCH_SRC) $(RES) ) || \ - ( i686-w64-mingw32-gcc $(CFLAGS) $(LDFLAGS) -o $(LAUNCH) $(LAUNCH_SRC) $(RES) ) || \ - ( $(CC) $(CFLAGS) $(LDFLAGS) -mno-cygwin -o $(LAUNCH) $(LAUNCH_SRC) $(RES) ) || \ - ( gcc-3 $(CFLAGS) $(LDFLAGS) -mno-cygwin -o $(LAUNCH) $(LAUNCH_SRC) $(RES) ) - strip $(LAUNCH) - else - x86_64-w64-mingw32-windres -O coff -o $(RES) $(RC) - x86_64-w64-mingw32-gcc $(CFLAGS) $(LDFLAGS) -o $(LAUNCH) $(LAUNCH_SRC) $(RES) - x86_64-w64-mingw32-strip $(LAUNCH) - endif - -$(RC): - echo 'icon ICON $(ICO)' > $(RC) - -clean : - rm -f $(EXE) $(RC) $(RES) $(LAUNCH) $(ARCHIVE) - -install : $(EXE) - @ install -v $(EXE) $(BINDIR)/$(EXE) - @ if [ ! -f $(BINDIR)/$(CFG) ]; then \ - install -v $(CFG) $(BINDIR)/$(CFG) \ - ; fi - -uninstall : - rm -f $(BINDIR)/$(EXE) - rm -f $(BINDIR)/$(CFG) - -$(ARCHIVE) : $(SRC) $(ICO) $(CFG) $(LAUNCH_SRC) README README-j Makefile - tar cf - $(SRC) $(ICO) $(CFG) $(LAUNCH_SRC) COPYING README README-j Makefile | gzip > $(ARCHIVE) diff --git a/cygterm/README-j b/cygterm/README-j deleted file mode 100644 index 4cf9e1200..000000000 --- a/cygterm/README-j +++ /dev/null @@ -1,462 +0,0 @@ - - CygTerm+ - yet another Cygwin console - - $B%?!<%_%J%k!&%(%_%e%l!<%?$G(B Cygwin $B$r;H$&!#(B - - (C) 2006-2016 TeraTerm Project - https://ttssh2.osdn.jp/ - - Based on CygTerm by Original developer: - Copyright (C) 2000-2006 NSym - nsym@dd.iij4u.or.jp - (English) https://googledrive.com/host/0B1s-dM6d6yC4fmhEZ3c0VTNFWEFtV3daUlRGQmFHVnBmVHRybUNnUVliNWktNDRlZ2NnZTQ/index-e.html - (Japanese) https://googledrive.com/host/0B1s-dM6d6yC4fmhEZ3c0VTNFWEFtV3daUlRGQmFHVnBmVHRybUNnUVliNWktNDRlZ2NnZTQ/index.html - - -// $B$O(B $B$8(B $B$a(B $B$K(B // - - Cygwin$B%3%s%=!<%k$G$"$k(BDOS$BAk$r%?!<%_%J%k!&%(%_%e%l!<%?$GCV$-BX$($F$_$h$&!"(B - $B$H$$$&;n$_$G$9!#(B $B$?$@$7!X%j%b!<%H%m%0%$%s$N$7$/$_$rMxMQ$;$:$K!Y$H$$$&(B - $BA0Ds$G$9!#(B $B$7$?$,$C$F(B inetd $B$H$+(B in.telnetd $B$H$+(B login $BEy$O;HMQ$7$^$;$s!#(B - -// $B9M(B $B$((B $BJ}(B // - - $B%?!<%_%J%k!&%(%_%e%l!<%?$H(BCygwin$B>e$N%7%'%k$r5/F0$7!"N>e$,$j!"(B - $B$=$3$K%7%'%k$N%W%m%s%W%H$,8=$l!"(BCygwin$B%3%s%=!<%k$H$7$F;H$($k$3$H!#(B - - 2. $B5/F0$9$k%?!<%_%J%k!&%(%_%e%l!<%?$H%7%'%k$OA*Br2DG=$G$"$k$3$H!#(B - - 3. $B%7%'%kB&$N2hLL@)8f$,@5>o$KF0:n$7!"%?!<%_%J%k!&%(%_%e%l!<%?B&$N(B - $B2hLL%5%$%:JQ99$K$bDI?o$9$k$3$H!#(B - -// $B@_(B $B7W(B // - - cygterm.exe $B=hM}>\:Y(B - - [1] TELNET$B@\B3$rBT$Ae(B 127.0.0.1 $B0J30$+$i$N@\B3$O5Q2<$9$k!#(B - - [4] fork()$B$7$?;R%W%m%;%9>e!"(BPTY($B5<;wCe(B TERM $B4D6-JQ?t$K%;%C%H$9$k!#(B - - $B%?!<%_%J%k!&%(%_%e%l!<%?$+$i%?!<%_%J%k%5%$%:$NDLCN$rH(B: RFC854 TELNET PROTOCOL SPECIFICATION] - - cygterm.exe $B$O%&%#%s%I%&$r;}$?$J$$(B Win32$B%"%W%j$H$7$FH!#(B(https://www.gnu.org/licenses/old-licenses/gpl-2.0.html) - - $BJdB-(B: $BB>%W%m%0%i%`$,(B CygTerm$Bl9g$G$b5v2D$5$l$^$9!#(B - -// $B%$(B $B%s(B $B%9(B $B%H(B $B!<(B $B%k(B // - - Cygwin$B4D6-2<$G(B make install $B$re=q$-$5$l$^$;$s!#(B - -// $B@_(B $BDj(B $B%U(B $B%!(B $B%$(B $B%k(B // - - cygterm.cfg $B$O@_Dj%U%!%$%k$G$9!#(B $B;HMQ$9$kC$O(B Windows$B4D6-$G%Q%9$,DL$C$F$J$1$l$P%U%k%Q%9$G=q$-$^$9!#(B - $B%[%9%H;XDj$N$H$3$m$O(B %s $B$H$7!"%]!<%H;XDj$N$H$3$m$O(B %d $B$H$7$^$9!#(B - - TERM_TYPE - --------- - $B%?!<%_%J%k!&%(%_%e%l!<%?$,%?!<%_%J%k%?%$%W$rM?$($F$/$l$J$+$C$?(B - $B>l9g$K:NMQ$9$k%?!<%_%J%k%?%$%W$G$9!#(B ($B%G%U%)%k%H(B:vt100) - $B%7%'%k>e!"4D6-JQ?t(B TERM $B$K%;%C%H$5$l$^$9!#(B - - PORT_START - ---------- - $B;H$$;O$a$k(B ($B;H$C$F$h$$:G>.$N(B) $B%]!<%HHV9f$G$9!#(B ($B%G%U%)%k%H(B:20000) - - PORT_RANGE - ---------- - $B;H$C$F$h$$%]!<%HHV9f$N8D?t$G$9!#(B ($B%G%U%)%k%H(B:40) - - PORT_START $B!A(B PORT_START+PORT_RANGE $B$NHO0O$G6u$-%]!<%H$rC5$7$^$9!#(B - $B$3$N?t$@$1F1;~o(B /bin/bash) $B$N5/F0%3%^%s%I%i%$%s$G$9!#(B - ($B%G%U%)%k%H(B: /etc/passwd$B$N>pJs$r;HMQ(B) - $B%3%^%s%IL>$N%U%k%Q%9$+!"(B"AUTO"$B$r;XDj$7$^$9!#(B - - LOGIN_SHELL - ----------- - $B%7%'%k$r%m%0%$%s%7%'%k$H$7$F5/F0$9$k$+$I$&$+$r;XDj$7$^$9!#(B - $B%G%U%)%k%H$OL58z$G$9!#(B - - $B0lHLE*$J%7%'%k$G$O%m%0%$%s%7%'%k$H$7$F5/F0$5$l$k$H!"(B.profile$B$d(B - .login$B$J$I$N%m%0%$%s;~$N$_FI$_9~$`%9%?!<%H%"%C%W%U%!%$%k$ro!"0J2<$N$h$&$J;v$,9T$o$l$^$9!#(B - $B!&(BPATH$B$d(BUSER$BEy$N3Fl9g$O(B - $B8z2L$,$"$j$^$;$s!#(B - - HOME_CHDIR - ---------- - patch level 01 $B$K4^$^$l$k(B"$B%[!<%`%G%#%l%/%H%j$X$N0\F0(B"$B$r5!G=$5$;$k$+(B - $B$I$&$+$r;XDj$7$^$9!#%G%U%)%k%H$OL58z$G$9!#(B - - SOCKET_TIMEOUT - -------------- - $B%?!<%_%J%k!&%(%_%e%l!<%?$+$i$N(Btelnet$B@\B3$rBT$AZ%(!<%8%'%s%HE>Aw5!G=$rDs6!$9$k$+$r;XDj$7$^$9!#(B - $BM-8z$K$9$k$H!"(BOpenSSH$B$N(Bssh$BG'>Z%(!<%8%'%s%H$KBP1~$7$?%W%m%0%i%`$,!"(B - CygTerm+$B$rDL$7$F(BPageant$B$K%"%/%;%9$G$-$k$h$&$K$J$j$^$9!#(B - $B%G%U%)%k%H$OL58z$G$9!#(B - - ENV_X - ----- - $B%7%'%k5/F0;~$K@_Dj$7$F$*$-$?$$4D6-JQ?t$G$9!#!VJQ?tL>(B=$BCM!W$N7A<0(B - (putenv$B7A<0(B) $B$G5-=R$7$^$9!#(B ENV_ $B$G;O$a$l$P$$$/$D$G$b5-=R$G$-$^$9!#(B - - -// $B5/(B $BF0(B $BJ}(B $BK!(B // - - $B%3%^%s%I%i%$%s!&%*%W%7%g%s(B - - cygterm.exe [-t 'terminal-emulator'] [-p port-number] [-dumb] - [-s 'shell'] [-ls | -nols] [-cd | -nocd] [-a | -A] - [-v 'env-var' ...] [-d 'directory'] [-o 'parameter'] - - -t 'terminal-emulator' - $B%?!<%_%J%k!&%(%_%e%l!<%?$r;XDj$7$^$9!#(B - $B;XDj7A<0$O@_Dj%U%!%$%k$N(B TERM $B$HF1$8$G$9!#(B - $B6uGrJ8;z$r4^$`>l9g$OI,$:%/%)!<%H$G0O$_$^$9!#(B - - -p port-number - $B%?!<%_%J%k!&%(%_%e%l!<%?$r5/F0$9$k$N$G$O$J$/!"(B - $B%m!<%+%k%[%9%H$N$3$N%]!<%HHV9f$X$N@\B3$r;n$_$^$9!#(B - $BB>$N%"%W%j%1!<%7%g%s!&%W%m%0%i%`$,(B -p $B%*%W%7%g%s$r;H$C$F!"(B - cygterm.exe $B7PM3$G(B Cygwin$B$rMxMQ$9$k!"Ey$,9M$($i$l$^$9!#(B - - -dumb - TELNET$B%*%W%7%g%s!&%M%4%7%(!<%7%g%s$r9T$$$^$;$s!#(B - $B$5$i$K(B TELNET$B%3%^%s%I$,Aw?.$5$l$F$-$F$bL5;k$7$^$9!#(B - $B%7%'%kB&$N4D6-JQ?t(B TERM $B$O(B 'dumb' $B$H$J$j$^$9!#(B - - -s 'shell' - Cygwin$B>e$N%7%'%k$r;XDj$7$^$9!#(B - $B;XDj7A<0$O@_Dj%U%!%$%k$N(B SHELL $B$HF1$8$G$9!#(B - $B6uGrJ8;z$r4^$`>l9g$OI,$:%/%)!<%H$G0O$_$^$9!#(B - $BI,$:$7$b%7%'%k%3%^%s%I$G$"$kI,MW$O$"$j$^$;$s!#(B - - -ls - $B%7%'%k$r%m%0%$%s%7%'%k$H$7$F5/F0$7$^$9!#(B - - -nols - $B%7%'%k$r(B($B%m%0%$%s%7%'%k$G$O$J$/(B)$BDL>o$N%7%'%k$H$7$F5/F0$7$^$9!#(B - - -cd - $B%+%l%s%H%G%#%l%/%H%j$r%[!<%`%G%#%l%/%H%j$K0\F0$7$F$+$i(B - $B%7%'%k$r5/F0$7$^$9!#(B - - -nocd - $B%+%l%s%H%G%#%l%/%H%j$r0\F0$;$:$K%7%'%k$r5/F0$7$^$9!#(B - - -A - ssh$BG'>Z%(!<%8%'%s%HE>Aw5!G=$rM-8z$K$7$^$9!#(B - - -a - ssh$BG'>Z%(!<%8%'%s%HE>Aw5!G=$rL58z$K$7$^$9!#(B - - -v 'env-var' - $B%7%'%k5/F0;~$K@_Dj$7$F$*$-$?$$4D6-JQ?t$r;XDj$7$^$9!#(B - $B;XDj7A<0$O@_Dj%U%!%$%k$N(B ENV_X $B$HF1$8$G$9!#(B - $B6uGrJ8;z$r4^$`>l9g$OI,$:%/%)!<%H$G0O$_$^$9!#(B - -v $B%*%W%7%g%s$O$$$/$D$G$b;XDj$G$-$^$9!#(B - - -d 'directory' - $B%+%l%s%H%G%#%l%/%H%j$r;XDj$5$l$?%G%#%l%/%H%j$K0\F0$7$F$+$i(B - $B%7%'%k$r5/F0$7$^$9!#(B - - -o 'parameter' - $B%?!<%_%J%k!&%(%_%e%l!<%?$X$NDI2C$N%Q%i%a!<%?$r;XDj$7$^$9!#(B - TERM$B$rJQ$($:$KDI2C$N%Q%i%a!<%?$r;XDj$7$?$$;~$K;H$$$^$9!#(B - - $B%?!<%_%J%k!&%(%_%e%l!<%?$b$7$/$O@\B3@h%]!<%HHV9f!"$H(B Cygwin$BB&%7%'%k$N(B - $B;XDj$,:GDcI,MW$H$J$j$^$9!#(B $B$3$l$i$,%3%^%s%I%i%$%s!&%*%W%7%g%s$K$h$C$F(B - $BM?$($i$l$k$J$i$P!"@_Dj%U%!%$%k(B cygterm.cfg $B$,L5$/$F$be$+$ie$N%7%g!<%H%+%C%H$+$ie$+$io(B Cygwin$B%k!<%H%G%#%l%/%H%j(B\bin) - -// $BCm(B $B0U(B $B;v(B $B9`(B // - - * Tera Term$B;HMQ;~$NCm0U(B - - $B%?!<%_%J%k!&%(%_%e%l!<%?$,(B Tera Term $B$N>l9g!"(Bcygterm.exe $B$+$i5/F0$5$l$?(B - $B>uBV$G@_DjJ]B8(B [Setup][Save setup] $B$r9T$o$J$$$h$&Cm0U$7$F$/$@$5$$!#(B - TCP/IP$B@_Dj$N(B Telnet$B%]!<%HHV9f$,(B 23 $B0J30$GJ]B8$5$l!"DL>o$N(B Telnet$BL\E*$N(B - $B$;$P85$KLa$j$^$9!#(B - -// $BF0(B $B:n(B $B3N(B $BG'(B // - - 2010$BG/(B 10$B7n8=:_!"0J2<$N4D6-$GF0:n$,3NG'$G$-$F$$$^$9!#(B - - WindowsXP SP3 + Cygwin 1.5.25-15 - WindowsXP SP3 + Cygwin 1.7.7 - - $B%?!<%_%J%k%(%_%e%l!<%?(B - Tera Term Pro 2.3 - Tera Term 4.67 - PuTTY 0.60 - $B%7%'%k(B - bash 3.2.51 - zsh 4.3.10 - -// $BJQ(B $B99(B $BMz(B $BNr(B // -v1.07_29 2016/11/26 (by maya) - * $B%"%$%3%s$rJQ99$7$?!#(B - -v1.07_28 2016/02/17 (by doda) - * $B%G%P%C%0%b!<%I$rDI2C$7$?!#(B - -v1.07_27 2016/02/09 (by doda) - * -cd $B%*%W%7%g%s(B(HOME_CHDIR=y) $B$h$j(B -d $B%*%W%7%g%s$G$N%G%#%l%/(B - $B%H%j;XDj$rM%@h$9$k$h$&$K$7$?!#(B - * -ls $B%*%W%7%g%s(B(LOGIN_SHELL=y) $B$N;XDj;~$K(B -d $B%*%W%7%g%s$r;XDj(B - $B$7$?>l9g!"(BCHERE_INVOKING=y $B$r%;%C%H$9$k$h$&$K$7$?!#(B - -v1.07_26 2015/12/14 (by doda) - * ssh $BG'>Z%(!<%8%'%s%HE>Aw$GJ#?t%3%M%/%7%g%s$KBP1~$7$?!#(B - -v1.07_25 2015/02/21 (by doda) - * TERM $B4D6-JQ?t$,@5$7$/@_Dj$5$l$k$h$&$K$7$?!#(B - -v1.07_24 2013/08/15 (by maya) - * 64bit Cygwin $B$G$bF0:n$9$k$h$&$K$7$?!#(B (cyglaunch) - -v1.07_23 2011/04/18 (by doda) - * -d $B%*%W%7%g%s$G;XDj$5$l$?%G%#%l%/%H%j$X$N0\F0$,<:GT$7$?;~!"(B - $B%(%i!<%a%C%;!<%8$rI=<($9$k$h$&$K$7$?!#(B - -v1.07_22 2011/03/03 (by maya) - * $B%$%s%9%H!<%i$+$i5/F0%A%'%C%/$r$9$k$?$a$N(B mutex $B$r:o=|$7$?!#(B - -v1.07_21 2011/02/28 (by maya) - * $B%$%s%9%H!<%i$+$i5/F0%A%'%C%/$r$9$k$?$a$N(B mutex $B$rDI2C$7$?!#(B - -v1.07_20 2010/10/20 (by doda) - * '-d' $B%*%W%7%g%s$G$N%G%#%l%/%H%jJQ99$N%?%$%_%s%0$rCY$i$;$?!#(B - (security fix) - -v1.07_19 2010/01/28 (by doda) - * '-s' $B%*%W%7%g%s$N0z?t$K(B 'AUTO' $B$rZ%(!<%8%'%s%HE>Aw5!G=$rM-8z$K$9$k%*%W%7%g%s$r(B '-a' $B$+$i(B - '-A' $B$KJQ99$7$?!#(B - * ssh $BG'>Z%(!<%8%'%s%HE>Aw5!G=$rL58z$K$9$k%*%W%7%g%s(B '-a' $B$rDI2C$7$?!#(B - -v1.07_15 2008/11/01 (by doda) - * ssh $BG'>Z%(!<%8%'%s%HE>Aw5!G=$r%5%]!<%H$7$?!#(B - -v1.07_14 2007/12/17 (by doda) - * $B%?!<%_%J%k!&%(%_%e%l!<%?$NDI2C$N%Q%i%a!<%?$r;XDj$9$k%*%W%7%g%s(B - '-o' $B$rDI2C$7$?!#(B - -v1.07_13 2007/08/03 (by maya) - * $B3+;O%G%#%l%/%H%j$r;XDj$9$k(B '-d' $B%*%W%7%g%s$rDI2C$7$?!#(B - -v1.07_12 2007/06/10 (by doda) - * telnet $B$NBT$A ~/.cygtermrc > /etc/cygterm.conf > cygterm.cfg - > /etc/passwd - -v1.06_10 2006/09/28 (by doda) - * $B%f!<%6L>$rF@$k$N$K!"4D6-JQ?t(B USERNAME $B$NBe$o$j$K(B getlogin() $B$r;H$&(B - $B$h$&$K$7$?!#(B - -v1.06_09 2006/09/25 (by doda) - * SHELL$B$,@_Dj$5$l$F$$$J$$>l9g$O!"(B/etc/passwd $B$+$i%7%'%k$N>pJs$rF@$k(B - $B$h$&$K$7$?!#(B - -v1.06_08 2006/08/30 (by maya) - * cygterm.cfg $B$r@_Dj%U%!%$%k$NCf$G:GM%@h$5$l$k$h$&$K$7$?!#(B - -v1.06_07 2006/08/19 (by maya) - * Windows $B$N(B $B4D6-JQ?t(B HOME $B$,@_Dj$5$l$F$$$l$P;H$&$h$&$K$7$?!#(B - -v1.06_06 2006/08/18 (by doda) - * -s$B$H(B-t$B%*%W%7%g%s$N%Q%i%a!<%?$ND9$5$r@)8B$7$?!#(B - -v1.06_05 2006/08/18 (by maya) - * $B%$%s%9%H!<%i$+$i5/F0%A%'%C%/$r$9$k$?$a!"(Bmutex $B$r:n@.$7$?!#(B - -v1.06_04 2006/08/15 (by doda) - * $B%7%'%k$r%m%0%$%s%7%'%k$H$7$F8F$S=P$9%*%W%7%g%s(B LOGIN_SHELL $B$r(B - $BDI2C$7$?!#(B - - LOGIN_SHELL: yes | no - -v1.06_03 2006/08/15 (by doda) - * $B%[!<%`%G%#%l%/%H%j$G5/F0$9$k$N$rA*Br$9$k%*%W%7%g%s(B HOME_CHDIR $B$r(B - $BDI2C$7$?!#(B - - HOME_CHDIR: yes | no - -v1.06_02 2006/02/09 (by babydamons@yahoo.co.jp) - * CygTerm$B$N%"%$%3%s$,:n@.$5$l$^$7$?!#!J(B"DotWork 2.50"$B$K$F:n@.!K(B - "DotWork 2.50" $B$O1&5-$N(BURL$B$h$jF~pJs$r(B /etc/passwd $B$+$i(B getpwnam(3) $B$GFI$_9~$`$h$&$K!#(B - $B%"%+%&%s%HL>$O4D6-JQ?t(B USERNAME $B$+$i(Bgetenv(3) $B$Ge=q$-$7$J$$$h$&$K!#(B - gcc$B%*%W%7%g%s$K(B -fno-exceptions $B$rDI2C!"(BGCC-3$B$N%j%s%/%(%i!<2sHr!#(B - -v1.03 2002/07/24 - * $B%?!<%_%J%k!&%(%_%e%l!<%?$,DLCN$7$F$/$k%?!<%_%J%k%?%$%W$K!"BgJ8;z$,(B - $B4^$^$l$F$$$l$P!"$=$l$r>.J8;z$KJQ49$9$k$h$&$K=$@5!#(B - $B%?!<%_%J%k!&%(%_%e%l!<%?$K$h$C$F$O4D6-JQ?t(B TERM $B$NCM$,(B 'ANSI' 'VT100' - $B$N$h$&$KBgJ8;z$K$j(B terminfo $B$K%^%C%A$7$J$$$?$a!#(B - (Windows 2000 telnet.exe $BEy(B) - -v1.02 2002/07/22 - * $B%?!<%_%J%k!&%(%_%e%l!<%?$,%3%s%=!<%k!&%"%W%j%1!<%7%g%s$N$H$-$K5/F0(B - $B$G$-$J$+$C$?$N$r=$@5!#(B(Windows 2000 telnet.exe $BEy(B) - CreateProcess()$B8F=P$7%_%9!#(B - - * $B%?!<%_%J%k!&%(%_%e%l!<%?$+$i(B CR+LF $B$,Aw$i$l$F$-$?$i(B LF $B$OE>Aw$7$J$$(B - $B$h$&$K$7!"2~9T$,#22sH/@8$9$k$N$r=$@5!#(B(Windows 98 telnet.exe $BEy(B) - - * $B%P!<%8%g%sHV9f$r(B cygterm.exe $B$KKd$a9~$`$h$&$K$7$?!#(B - $B3NG'J}K!$O(B $ strings cygterm.exe | grep version - -v1.01 2002/07/19 - * zsh, tcsh $B$GF0:n$7$J$+$C$?$N$r=$@5!#5<;wC -#include -#include - - -#define Section "Tera Term" -char *FName = "TERATERM.INI"; - - -// -// Connect to local cygwin -// -void OnCygwinConnection(char *CygwinDirectory, char *cmdline) -{ - char file[MAX_PATH], *filename; - char c, *envptr, *envbuff; - int envbufflen; - char *exename = "cygterm.exe"; - char cmd[1024]; - STARTUPINFO si; - PROCESS_INFORMATION pi; - - if (strlen(CygwinDirectory) > 0) { - if (SearchPath(CygwinDirectory, "bin\\cygwin1", ".dll", sizeof(file), file, &filename) > 0) { - goto found_dll; - } - } - - if (SearchPath(NULL, "cygwin1", ".dll", sizeof(file), file, &filename) > 0) { - goto found_path; - } - - for (c = 'C' ; c <= 'Z' ; c++) { - char tmp[MAX_PATH]; - sprintf(tmp, "%c:\\cygwin\\bin;%c:\\cygwin64\\bin", c, c); - if (SearchPath(tmp, "cygwin1", ".dll", sizeof(file), file, &filename) > 0) { - goto found_dll; - } - } - - MessageBox(NULL, "Can't find Cygwin directory.", "ERROR", MB_OK | MB_ICONWARNING); - return; - -found_dll:; - envptr = getenv("PATH"); - file[strlen(file)-12] = '\0'; // delete "\\cygwin1.dll" - if (envptr != NULL) { - envbufflen = strlen(file) + strlen(envptr) + 7; // "PATH="(5) + ";"(1) + NUL(1) - if ((envbuff=malloc(envbufflen)) == NULL) { - MessageBox(NULL, "Can't allocate memory.", "ERROR", MB_OK | MB_ICONWARNING); - return; - } - _snprintf(envbuff, envbufflen, "PATH=%s;%s", file, envptr); - } else { - envbufflen = strlen(file) + strlen(envptr) + 6; // "PATH="(5) + NUL(1) - if ((envbuff=malloc(envbufflen)) == NULL) { - MessageBox(NULL, "Can't allocate memory.", "ERROR", MB_OK | MB_ICONWARNING); - return; - } - _snprintf(envbuff, envbufflen, "PATH=%s", file); - } - _putenv(envbuff); - if (envbuff) { - free(envbuff); - envbuff = NULL; - } - -found_path:; - memset(&si, 0, sizeof(si)); - GetStartupInfo(&si); - memset(&pi, 0, sizeof(pi)); - - strcpy(cmd, exename); - strcat(cmd, " "); - strncat(cmd, cmdline, sizeof(cmd)-strlen(cmd)-1); -//printf("%s", cmd); -//MessageBox(NULL, cmd, "", MB_OK); - if (CreateProcess( - NULL, - cmd, - NULL, NULL, FALSE, 0, - NULL, NULL, - &si, &pi) == 0) { - MessageBox(NULL, "Can't execute Cygterm.", "ERROR", MB_OK | MB_ICONWARNING); - } -} - - -int main(int argc, char** argv) -{ - char Temp[256], CygwinDir[256], Cmdline[256]; - char *bs; - int i; - BOOL d_opt=FALSE; - - if (GetModuleFileName(NULL, Temp, sizeof(Temp)) > 0 && - (bs = strrchr(Temp, '\\')) != NULL) { - *bs = 0; - _chdir(Temp); - _snprintf(bs, sizeof(Temp) + Temp - bs, "\\%s", FName); - } - else { - _snprintf(Temp, sizeof(Temp), ".\\", FName); - } - - // Cygwin install path - GetPrivateProfileString(Section, "CygwinDirectory", "c:\\cygwin", - CygwinDir, sizeof(CygwinDir), Temp); - - //printf("%s %d\n", CygwinDir, GetLastError()); - - Cmdline[0] = 0; - for (i=1; i -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include - -// pageant support (ssh-agent proxy) -//---------------------------------- -#define AGENT_COPYDATA_ID 0x804e50ba -#define AGENT_MAX_MSGLEN 8192 -char sockdir[] = "/tmp/ssh-XXXXXXXXXX"; -char sockname[256]; - -// PTY device name -//---------------- -#define DEVPTY "/dev/ptmx" - -// TCP port for TELNET -//-------------------- -int port_start = 20000; // default lowest port number -int port_range = 40; // default number of ports - -// command lines of a terminal-emulator and a shell -//------------------------------------------------- -char cmd_term[256] = ""; -char cmd_termopt[256] = ""; -char cmd_shell[128] = ""; -char pw_shell[128] = ""; -char change_dir[256] = ""; - -// TCP port for connection to another terminal application -//-------------------------------------------------------- -int cl_port = 0; - -// telnet socket timeout -//---------------------- -int telsock_timeout = 5; // timeout 5 sec - -// dumb terminal flag -//------------------- -bool dumb = false; - -// chdir to HOME -//-------------- -bool home_chdir = false; - -// login shell flag -//----------------- -bool enable_loginshell = false; - -// ssh agent proxy -//---------------- -bool enable_agent_proxy = false; - -// terminal type & size -//--------------------- -char term_type[41] = ""; -struct winsize win_size = {0,0,0,0}; - -// debug mode -//----------- -bool debug_flag = false; - -// additional env vars given to a shell -//------------------------------------- -struct sh_env_t { - struct sh_env_t* next; - char env[1]; -} sh_env = {NULL, ""}; - -sh_env_t* sh_envp = &sh_env; - -int add_env(sh_env_t** envp, const char* str, const char* str2) -{ - int len; - sh_env_t* e; - - len = strlen(str); - if (str2) { - len += strlen(str2) + 1; - } - - e = (sh_env_t*)malloc(sizeof(sh_env_t) + len); - if (e) { - if (str2) { - snprintf(e->env, len + 1, "%s=%s", str, str2); - } - else { - strcpy(e->env, str); - } - e->next = NULL; - *envp = ((*envp)->next = e); - return 1; - } - else { - return 0; - } -} - -//================// -// message output // -//----------------// -void msg_print(const char* msg) -{ - MessageBox(NULL, msg, Program, MB_OK | MB_ICONINFORMATION | MB_TOPMOST); -} - -//=========================// -// Win32-API error message // -//-------------------------// -void api_error(const char* string = NULL) -{ - char msg[1024]; - char *ptr = msg; - if (string != NULL) - ptr += snprintf(ptr, sizeof(msg), "%s\n\n", string); - FormatMessage( - FORMAT_MESSAGE_FROM_SYSTEM | FORMAT_MESSAGE_IGNORE_INSERTS, - NULL, GetLastError(), MAKELANGID(LANG_NEUTRAL, SUBLANG_DEFAULT), - ptr, sizeof(msg)-(ptr-msg), NULL - ); - msg_print(msg); -} - -//=========================// -// C-runtime error message // -//-------------------------// -void c_error(const char* string = NULL) -{ - char msg[1024]; - char *ptr = msg; - if (string != NULL) - ptr += snprintf(ptr, sizeof(msg), "%s\n\n", string); - snprintf(ptr, sizeof(msg)-(ptr-msg), "%s\n", strerror(errno)); - msg_print(msg); -} - -//======================// -// debug message output // -//======================// -void debug_msg_print(const char* msg) -{ - if (debug_flag) { - msg_print(msg); - } -} - -//==================================// -// parse line in configuration file // -//----------------------------------// -void parse_cfg_line(char *buf) -{ - // "KEY = VALUE" format in each line. - // skip leading/trailing blanks. KEY is not case-sensitive. - char* p1; - for (p1 = buf; isspace(*p1); ++p1); - if (!isalpha(*p1)) { - return; // comment line with non-alphabet 1st char - } - char* name = p1; - for (++p1; isalnum(*p1) || *p1 == '_'; ++p1); - char* p2; - for (p2 = p1; isspace(*p2); ++p2); - if (*p2 != '=') { - return; // igonore line without '=' - } - for (++p2; isspace(*p2); ++p2); - char* val = p2; - for (p2 += strlen(p2); isspace(*(p2-1)); --p2); - *p1 = *p2 = 0; - - if (!strcasecmp(name, "TERM")) { - // terminal emulator command line (host:%s, port#:%d) - strncpy(cmd_term, val, sizeof(cmd_term)-1); - cmd_term[sizeof(cmd_term)-1] = 0; - } - else if (!strcasecmp(name, "SHELL")) { - // shell command line - if (strcasecmp(val, "AUTO") != 0) { - strncpy(cmd_shell, val, sizeof(cmd_shell)-1); - } - else { - strncpy(cmd_shell, pw_shell, sizeof(cmd_shell)-1); - } - cmd_shell[sizeof(cmd_shell)-1] = 0; - } - else if (!strcasecmp(name, "PORT_START")) { - // minimum port# for TELNET - port_start = atoi(val); - } - else if (!strcasecmp(name, "PORT_RANGE")) { - // number of ports for TELNET - port_range = atoi(val); - } - else if (!strcasecmp(name, "TERM_TYPE")) { - // terminal type name (maybe overridden by TELNET negotiation.) - strncpy(term_type, val, sizeof(term_type)-1); - term_type[sizeof(term_type)-1] = 0; - } - else if (!strncasecmp(name, "ENV_", 4)) { - // additional env vars given to a shell - add_env(&sh_envp, val, NULL); - } - else if (!strcasecmp(name, "HOME_CHDIR")) { - // change directory to home - if (strchr("YyTt", *val) != NULL || atoi(val) > 0) { - home_chdir = true; - } - } - else if (!strcasecmp(name, "LOGIN_SHELL")) { - // execute a shell as a login shell - if (strchr("YyTt", *val) != NULL || atoi(val) > 0) { - enable_loginshell = true; - } - } - else if (!strcasecmp(name, "SOCKET_TIMEOUT")) { - // telnet socket timeout - telsock_timeout = atoi(val); - } - else if (!strcasecmp(name, "SSH_AGENT_PROXY")) { - // ssh-agent proxy - if (strchr("YyTt", *val) != NULL || atoi(val) > 0) { - enable_agent_proxy = true; - } - } - else if (!strcasecmp(name, "DEBUG")) { - // debug mode - if (strchr("YyTt", *val) != NULL || atoi(val) > 0) { - debug_flag = true; - } - } - - return; -} - -//====================// -// load configuration // -//--------------------// -void load_cfg() -{ - // Windows system configuration file (.cfg) path - char win_conf[MAX_PATH]; - - // get cfg path from exe path - if (GetModuleFileName(NULL, win_conf, MAX_PATH) <= 0) { - return; - } - char* bs = strrchr(win_conf, '\\'); - if (bs == NULL) { - return; - } - char* dot = strrchr(bs, '.'); - if (dot == NULL) { - strcat(bs, ".cfg"); - } else { - strcpy(dot, ".cfg"); - } - - char sys_conf[] = "/etc/cygterm.conf"; - - // user configuration file (~/.*rc) path - char usr_conf[MAX_PATH] = ""; - - // auto generated configuration file path - char tmp_conf[MAX_PATH] = "/tmp/cygtermrc.XXXXXX"; - - // get user name from getlogin(). if it fails, use $USERNAME instead. - // and get /etc/passwd information by getpwnam(3) with user name, - // and generate temporary configuration file by mktemp(3). - const char* username = getlogin(); - if (username == NULL) - username = getenv("USERNAME"); - if (username != NULL) { - struct passwd* pw_ent = getpwnam(username); - if (pw_ent != NULL) { - strncpy(pw_shell, pw_ent->pw_shell, sizeof(pw_shell)-1); - pw_shell[sizeof(pw_shell)-1] = 0; - - strcpy(usr_conf, pw_ent->pw_dir); - strcat(usr_conf, "/."); - strcat(usr_conf, bs + 1); - char* dot = strrchr(usr_conf, '.'); - if (dot == NULL) { - strcat(bs, "rc"); - } else { - strcpy(dot, "rc"); - } - } - int fd = mkstemp(tmp_conf); - FILE* fp = fdopen(fd, "w"); - if (fp != NULL) { - if (pw_ent != NULL) { - fprintf(fp, "ENV_1=USER=%s\n", pw_ent->pw_name); - fprintf(fp, "ENV_2=SHELL=%s\n", pw_ent->pw_shell); - fprintf(fp, "SHELL=%s\n", pw_ent->pw_shell); - } else { - fprintf(fp, "ENV_1=USER=%s\n", username); - } - fclose(fp); - } - } - - if (strcmp(usr_conf, "") == 0) { - strcpy(usr_conf, ""); - strcpy(tmp_conf, ""); - } - - char *conf_path[] = { tmp_conf, win_conf, sys_conf, usr_conf }; - for (int i = 0; i < 4; i++) { - // ignore empty configuration file path - if (strcmp(conf_path[i], "") == 0) { - continue; - } - // read each setting parameter - FILE* fp; - if ((fp = fopen(conf_path[i], "r")) == NULL) { - continue; - } - char buf[BUFSIZ]; - while (fgets(buf, sizeof(buf), fp) != NULL) { - parse_cfg_line(buf); - } - fclose(fp); - } - - // remove temporary configuration file, if it was generated. - if (strcmp(tmp_conf, "") != 0) { - unlink(tmp_conf); - } -} - -BOOL quote_cut(char *dst, size_t len, char *src) { - while (*src && len > 1) { - if (*src != '"') { - *dst++ = *src; - } - src++; - } - *dst = 0; -} - -//=======================// -// commandline arguments // -//-----------------------// -void get_args(int argc, char** argv) -{ - char tmp[sizeof(cmd_termopt)]; - - for (++argv; *argv != NULL; ++argv) { - if (!strcmp(*argv, "-t")) { // -t - if (*++argv == NULL) - break; - strncpy(cmd_term, *argv, sizeof(cmd_term)-1); - cmd_term[sizeof(cmd_term)-1] = '\0'; - } - else if (!strcmp(*argv, "-p")) { // -p - if (*(argv+1) != NULL) { - ++argv, cl_port = atoi(*argv); - } - } - else if (!strcmp(*argv, "-dumb")) { // -dumb - dumb = true; - strcpy(term_type, "dumb"); - } - else if (!strcmp(*argv, "-s")) { // -s - if (*++argv == NULL) - break; - if (strcasecmp(*argv, "AUTO") != 0) { - strncpy(cmd_shell, *argv, sizeof(cmd_shell)-1); - } - else { - strncpy(cmd_shell, pw_shell, sizeof(cmd_shell)-1); - } - cmd_shell[sizeof(cmd_shell)-1] = '\0'; - } - else if (!strcmp(*argv, "-cd")) { // -cd - home_chdir = true; - } - else if (!strcmp(*argv, "-nocd")) { // -nocd - home_chdir = false; - } - else if (!strcmp(*argv, "+cd")) { // +cd - home_chdir = false; - } - else if (!strcmp(*argv, "-ls")) { // -ls - enable_loginshell = true; - } - else if (!strcmp(*argv, "-nols")) { // -nols - enable_loginshell = false; - } - else if (!strcmp(*argv, "+ls")) { // +ls - enable_loginshell = false; - } - else if (!strcmp(*argv, "-A")) { // -A - enable_agent_proxy = true; - } - else if (!strcmp(*argv, "-a")) { // -a - enable_agent_proxy = false; - } - else if (!strcmp(*argv, "-v")) { // -v - if (*(argv+1) != NULL) { - ++argv; - add_env(&sh_envp, *argv, NULL); - } - } - else if (!strcmp(*argv, "-d")) { // -d - if (*++argv == NULL) - break; - quote_cut(change_dir, sizeof(change_dir), *argv); - } - else if (!strcmp(*argv, "-o")) { // -o - if (*++argv == NULL) - break; - if (cmd_termopt[0] == '\0') { - strncpy(cmd_termopt, *argv, sizeof(cmd_termopt)-1); - cmd_termopt[sizeof(cmd_termopt)-1] = '\0'; - } - else { - snprintf(tmp, sizeof(tmp), "%s %s", cmd_termopt, *argv); - strncpy(cmd_termopt, tmp, sizeof(cmd_termopt)-1); - cmd_termopt[sizeof(cmd_termopt)-1] = '\0'; - } - } - else if (!strcmp(*argv, "-debug")) { // -debug - debug_flag = true; - } - } -} - -//===================================// -// pageant support (ssh-agent proxy) // -//-----------------------------------// -unsigned long get_uint32(unsigned char *buff) -{ - return ((unsigned long)buff[0] << 24) + - ((unsigned long)buff[1] << 16) + - ((unsigned long)buff[2] << 8) + - ((unsigned long)buff[3]); -} - -void set_uint32(unsigned char *buff, unsigned long v) -{ - buff[0] = (unsigned char)(v >> 24); - buff[1] = (unsigned char)(v >> 16); - buff[2] = (unsigned char)(v >> 8); - buff[3] = (unsigned char)v; - return; -} - -unsigned long agent_request(unsigned char *out, unsigned long out_size, unsigned char *in) -{ - HWND hwnd; - char mapname[25]; - HANDLE fmap = NULL; - unsigned char *p = NULL; - COPYDATASTRUCT cds; - unsigned long len; - unsigned long ret = 0; - - if (out_size < 5) { - return 0; - } - if ((len = get_uint32(in)) > AGENT_MAX_MSGLEN) { - goto agent_error; - } - - hwnd = FindWindow("Pageant", "Pageant"); - if (!hwnd) { - goto agent_error; - } - - sprintf(mapname, "PageantRequest%08x", (unsigned)GetCurrentThreadId()); - fmap = CreateFileMapping(INVALID_HANDLE_VALUE, NULL, PAGE_READWRITE, - 0, AGENT_MAX_MSGLEN, mapname); - if (!fmap) { - goto agent_error; - } - - if ((p = (unsigned char *)MapViewOfFile(fmap, FILE_MAP_WRITE, 0, 0, 0)) == NULL) { - goto agent_error; - } - - cds.dwData = AGENT_COPYDATA_ID; - cds.cbData = strlen(mapname) + 1; - cds.lpData = mapname; - - memcpy(p, in, len + 4); - if (SendMessage(hwnd, WM_COPYDATA, (WPARAM)NULL, (LPARAM)&cds) > 0) { - len = get_uint32(p); - if (out_size >= len + 4) { - memcpy(out, p, len + 4); - ret = len + 4; - } - } - -agent_error: - if (p) { - UnmapViewOfFile(p); - } - if (fmap) { - CloseHandle(fmap); - } - if (ret == 0) { - set_uint32(out, 1); - out[4] = 5; // SSH_AGENT_FAILURE - } - - return ret; -} - -void sighandler(int sig) { - unlink(sockname); - rmdir(sockdir); - exit(0); -}; - -struct connList { - int sock; - int recvlen; - int sendlen; - struct connList *next; - unsigned char ibuff[AGENT_MAX_MSGLEN]; - unsigned char obuff[AGENT_MAX_MSGLEN]; -}; - -int proc_recvd(struct connList *conn) -{ - int reqlen, len; - - if (conn->sendlen > 0) { - return 0; - } - - if (conn->recvlen < 4) { - return 0; - } - - reqlen = get_uint32(conn->ibuff) + 4; - if (conn->recvlen < reqlen) { - return 0; - } - - len = agent_request(conn->obuff, sizeof(conn->obuff), conn->ibuff); - - if (len > 0) { - conn->sendlen = len; - } - else { - set_uint32(conn->obuff, 1); - conn->obuff[4] = 5; // SSH_AGENT_FAILURE - conn->sendlen = 1; - } - - if (conn->recvlen == reqlen) { - conn->recvlen = 0; - } - else { - conn->recvlen -= reqlen; - memmove(conn->ibuff, conn->ibuff + reqlen, conn->recvlen); - } - - return 1; -} - -void agent_proxy() -{ - int sock, asock, ret; - long len; - unsigned long reqlen; - struct sockaddr_un addr; - unsigned char tmpbuff[AGENT_MAX_MSGLEN]; - struct connList connections, *new_conn, *prev, *cur; - fd_set readfds, writefds, rfds, wfds; - struct sigaction act; - sigset_t blk; - - connections.next = NULL; - - if ((sock = socket(PF_UNIX, SOCK_STREAM, 0)) < 0) { - c_error("agent_proxy: socket failed."); - exit(0); - } - memset(&addr, 0, sizeof(addr)); - addr.sun_family = AF_UNIX; - strlcpy(addr.sun_path, sockname, sizeof(addr.sun_path)); - - if (bind(sock, (struct sockaddr *)&addr, sizeof(addr)) < 0) { - goto agent_thread_cleanup; - } - if (listen(sock, -1) < 0) { - goto agent_thread_cleanup; - } - - sigfillset(&blk); - sigdelset(&blk, SIGKILL); - sigdelset(&blk, SIGSTOP); - - memset(&act, 0, sizeof(act)); - act.sa_handler = sighandler; - act.sa_mask = blk; - sigaction(SIGINT, &act, NULL); - sigaction(SIGTERM, &act, NULL); - sigaction(SIGHUP, &act, NULL); - sigaction(SIGQUIT, &act, NULL); - - FD_ZERO(&readfds); - FD_ZERO(&writefds); - FD_SET(sock, &readfds); - - while (1) { - memcpy(&rfds, &readfds, sizeof(fd_set)); - memcpy(&wfds, &writefds, sizeof(fd_set)); - - select(FD_SETSIZE, &rfds, &wfds, NULL, NULL); - - if (FD_ISSET(sock, &rfds)) { - asock = accept(sock, NULL, NULL); - if (asock < 0) { - if (!(errno == EINTR || errno == ECONNABORTED)) { - break; - } - } - else { - new_conn = (struct connList *)malloc(sizeof(struct connList)); - if (new_conn == NULL) { - // no memory - close(sock); - } - else { - new_conn->sock = asock; - new_conn->recvlen = 0; - new_conn->sendlen = 0; - new_conn->next = connections.next; - connections.next = new_conn; - FD_SET(asock, &readfds); - } - } - } - - prev = &connections; - for (cur=connections.next; cur != NULL; cur = cur->next) { - if (FD_ISSET(cur->sock, &wfds)) { - if (cur->sendlen > 0) { - len = send(cur->sock, cur->obuff, cur->sendlen, 0); - if (len < 0) { - // write error - prev->next = cur->next; - shutdown(cur->sock, SHUT_RDWR); - close(cur->sock); - FD_CLR(cur->sock, &writefds); - FD_CLR(cur->sock, &readfds); - free(cur); - cur = prev; - continue; - } - else if (len >= cur->sendlen) { - cur->sendlen = 0; - - sigprocmask(SIG_BLOCK, &blk, NULL); - ret = proc_recvd(cur); - sigprocmask(SIG_UNBLOCK, &blk, NULL); - - if (ret) { - FD_SET(cur->sock, &writefds); - FD_CLR(cur->sock, &readfds); - } - else { - FD_CLR(cur->sock, &writefds); - FD_SET(cur->sock, &readfds); - } - } - else if (len > 0) { - cur->sendlen -= len; - memmove(cur->obuff, cur->obuff+len, cur->sendlen); - } - } - else { - FD_CLR(cur->sock, &writefds); - } - } - - if (FD_ISSET(cur->sock, &rfds)) { - len = recv(cur->sock, cur->ibuff + cur->recvlen, sizeof(cur->ibuff) - cur->recvlen, 0); - if (len > 0) { - cur->recvlen += len; - - sigprocmask(SIG_BLOCK, &blk, NULL); - ret = proc_recvd(cur); - sigprocmask(SIG_UNBLOCK, &blk, NULL); - - if (ret) { - FD_SET(cur->sock, &writefds); - FD_CLR(cur->sock, &readfds); - } - else { - FD_CLR(cur->sock, &writefds); - FD_SET(cur->sock, &readfds); - } - } - else if (len <= 0) { - // read error - prev->next = cur->next; - shutdown(cur->sock, SHUT_RDWR); - close(cur->sock); - FD_CLR(cur->sock, &readfds); - FD_CLR(cur->sock, &writefds); - free(cur); - cur = prev; - continue; - } - } - } - } - -agent_thread_cleanup: - shutdown(sock, SHUT_RDWR); - close(sock); - - unlink(sockname); - rmdir(sockdir); - - exit(0); -} - -int exec_agent_proxy() -{ - int pid; - int malloc_size; - - if (mkdtemp(sockdir) == NULL) { - return -1; - } - snprintf(sockname, sizeof(sockname), "%s/agent.%ld", sockdir, getpid()); - - if (!add_env(&sh_envp, "SSH_AUTH_SOCK", sockname)) { - return -1; - } - - if ((pid = fork()) < 0) { - return -1; - } - if (pid == 0) { - setsid(); - agent_proxy(); - } - return pid; -} - -//=============================// -// terminal emulator execution // -//-----------------------------// -DWORD WINAPI term_thread(LPVOID) -{ - STARTUPINFO si; - PROCESS_INFORMATION pi; - FillMemory(&si, sizeof(si), 0); - si.cb = sizeof(si); - si.dwFlags = STARTF_USESHOWWINDOW; - si.wShowWindow = SW_SHOW; - DWORD flag = 0; - if (!CreateProcess( - NULL, cmd_term, NULL, NULL, FALSE, flag, NULL, NULL, &si, &pi)) - { - api_error(cmd_term); - return 0; - } - WaitForSingleObject(pi.hProcess, INFINITE); - CloseHandle(pi.hProcess); - CloseHandle(pi.hThread); - return 0; -} - -//============================-==========// -// thread creation for terminal emulator // -//---------------------------------------// -HANDLE exec_term() -{ - DWORD id; - return CreateThread(NULL, 0, term_thread, NULL, 0, &id); -} - -//=======================================// -// listener socket for TELNET connection // -//---------------------------------------// -int listen_telnet(u_short* port) -{ - int lsock; - if ((lsock = socket(AF_INET, SOCK_STREAM, 0)) < 0) { - return -1; - } - struct sockaddr_in addr; - addr.sin_family = AF_INET; - addr.sin_addr.s_addr = htonl(INADDR_LOOPBACK); - int i; - for (i = 0; i < port_range; ++i) { // find an unused port# - addr.sin_port = htons(port_start + i); - if (bind(lsock, (struct sockaddr *)&addr, sizeof(addr)) == 0) { - break; - } - } - if (i == port_range) { - shutdown(lsock, 2); - close(lsock); - return -1; - } - if (listen(lsock, 1) != 0) { - shutdown(lsock, 2); - close(lsock); - return -1; - } - *port = addr.sin_port; - return lsock; -} - -//=============================// -// accept of TELNET connection // -//-----------------------------// -int accept_telnet(int lsock) -{ - fd_set rbits; - FD_ZERO(&rbits); - FD_SET(lsock, &rbits); - struct timeval tm; - tm.tv_sec = telsock_timeout; - tm.tv_usec = 0; - if (select(FD_SETSIZE, &rbits, 0, 0, &tm) <= 0) { - c_error("accept_telnet: select failed"); - return -1; - } - if (!FD_ISSET(lsock, &rbits)) { - c_error("accept_telnet: FD_ISSET failed"); - return -1; - } - int asock; - struct sockaddr_in addr; - int len = sizeof(addr); - if ((asock = accept(lsock, (struct sockaddr *)&addr, &len)) < 0) { - c_error("accept_telnet: accept failed"); - return -1; - } - if (getpeername(asock, (struct sockaddr *)&addr, &len) != 0) { - c_error("accept_telnet: getpeername failed"); - shutdown(asock, 2); - close(asock); - return -1; - } - if (addr.sin_addr.s_addr != htonl(INADDR_LOOPBACK)) { - // reject it except local connection - msg_print("not local connection"); - shutdown(asock, 2); - close(asock); - return -1; - } - return asock; -} - -//============================// -// connect to specified port# // -//----------------------------// -int connect_client() -{ - int csock; - if ((csock = socket(AF_INET, SOCK_STREAM, 0)) < 0) { - return -1; - } - struct sockaddr_in addr; - addr.sin_family = AF_INET; - addr.sin_addr.s_addr = htonl(INADDR_LOOPBACK); - addr.sin_port = htons(cl_port); - if (connect(csock, (struct sockaddr *)&addr, sizeof(addr)) < 0) { - close(csock); - return -1; - } - return csock; -} - -//========================================// -// setup *argv[] from a string for exec() // -//----------------------------------------// -void get_argv(char **argv, int maxc, char *s) -{ - int esc, sq, dq; // recognize (\) (') (") and tokenize - int c, argc; - char *p; - esc = sq = dq = 0; - for (argc = 0; argc < maxc-1; ++argc) { - for ( ; isascii(*s) && isspace(*s); ++s); - if (*s == 0) { - break; - } - argv[argc] = p = s; - while ((c = *s) != 0) { - ++s; - if (isspace(c) && !esc && !sq && !dq) { - break; - } - if (c == '\'' && !esc && !dq) { - sq ^= 1; - } else if (c == '"' && !esc && !sq) { - dq ^= 1; - } else if (c == '\\' && !esc) { - esc = 1; - } else { - esc = 0; - *p++ = c; - } - } - *p = 0; - } - // not to judge syntax errors - // if (dq || sq || esc) { syntax error } - // if (argc == maxc) { overflow } - argv[argc] = NULL; -} - -//=================// -// shell execution // -//-----------------// -int exec_shell(int* sh_pid) -{ - char env_term[64]; - // open pty master - int master; - if ((master = open(DEVPTY, O_RDWR)) < 0) { - c_error("exec_shell: master pty open error"); - return -1; - } - int pid; - if ((pid = fork()) < 0) { - c_error("exec_shell: fork failed"); - return -1; - } - if (pid == 0) { - // detach from control tty - setsid(); - // open pty slave - int slave; - if ((slave = open(ptsname(master), O_RDWR)) < 0) { - c_error("exec_shell: slave pty open error"); - exit(0); - } - // stdio redirection - while (slave <= 2) { - if ((slave = dup(slave)) < 0) { - exit(0); - } - } - int fd; - for (fd = 0; fd < 3; ++fd) { - close(fd); - dup(slave); - fcntl(fd, F_SETFD, 0); - } - for (fd = 3; fd < getdtablesize(); ++fd) { - if (fcntl(fd, F_GETFD) == 0) { - close(fd); - } - } - // set env vars - if (*term_type != 0) { - // set terminal type to $TERM - sprintf(env_term, "TERM=%s", term_type); - putenv(env_term); - } - // set other additional env vars - sh_env_t* e; - for (e = sh_env.next; e != NULL; e = e->next) { - putenv(e->env); - } - // change directory - if (change_dir[0] != 0) { - if (chdir(change_dir) < 0) { - char tmp[256]; - snprintf(tmp, 256, "exec_shell: Can't chdir to \"%s\".", change_dir); - tmp[255] = 0; - c_error(tmp); - } - } - else if (home_chdir) { - // chdir to home directory - const char *home_dir = getenv("HOME"); - // ignore chdir(2) system-call error. - chdir(home_dir); - } - // execute a shell - char *argv[32]; - get_argv(argv, 32, cmd_shell); - if (enable_loginshell) { - char shell_path[128]; - char *pos; - strcpy(shell_path, argv[0]); - if ((pos = strrchr(argv[0], '/')) != NULL) { - *pos = '-'; - argv[0] = pos; - } - debug_msg_print(shell_path); - execv(shell_path, argv); - } - else { - debug_msg_print(argv[0]); - execv(argv[0], argv); - } - // no error, exec() doesn't return - c_error(argv[0]); - exit(0); - } - *sh_pid = pid; - return master; -} - -//==================// -// i/o buffer class // -//------------------// -class IOBuf -{ -private: - int fd; - u_char i_buf[4096]; - u_char o_buf[4096]; - int i_pos, i_len, o_pos; -public: - IOBuf(int channel) : fd(channel), i_pos(0), i_len(0), o_pos(0) {} - operator int() { return fd; } - void ungetc() { --i_pos; } - bool flush_in(); - bool getc(u_char*); - bool nextc(u_char*); - bool putc(u_char); - bool flush_out(); -}; - -// read bytes into input buffer -//----------------------------- -bool IOBuf::flush_in() -{ - if ((i_len = read(fd, i_buf, sizeof(i_buf))) <= 0) - return false; - i_pos = 0; - return true; -} - -// get 1 char from input buffer -//----------------------------- -inline bool IOBuf::getc(u_char* c) -{ - if (i_pos == i_len) return false; - *c = i_buf[i_pos++]; - return true; -} - -// get next 1 char from input buffer -//---------------------------------- -inline bool IOBuf::nextc(u_char* c) -{ - if (i_pos == i_len) - if (!flush_in()) return false; - *c = i_buf[i_pos++]; - return true; -} - -// put 1 char to output buffer -//---------------------------- -inline bool IOBuf::putc(u_char c) -{ - if (o_pos == sizeof(o_buf)) - if (!flush_out()) return false; - o_buf[o_pos++] = c; - return true; -} - -// write bytes from output buffer -//------------------------------- -bool IOBuf::flush_out() -{ - int n; - for (int i = 0; i < o_pos; i += n) { - if ((n = write(fd, o_buf+i, o_pos-i)) <= 0) return false; - } - o_pos = 0; - return true; -} - -//=========================// -// TELNET command handling // (see RFC854 TELNET PROTOCOL SPECIFICATION) -//-------------------------// -enum { nIAC=255, nWILL=251, nWONT=252, nDO=253, nDONT=254 }; -enum { sSEND=1, sIS=0, sSB=250, sSE=240 }; -enum { oECHO=1, oSGA=3, oTERM=24, oNAWS=31 }; - -bool c_will_term = false; -bool c_will_naws = false; - -u_char telnet_cmd(IOBuf* te) -{ - u_char cmd, c; - te->nextc(&cmd); - if (cmd == sSB) { - te->nextc(&c); - // accept terminal type request - if (c == oTERM) { // "SB TERM - te->nextc(&c); // IS - u_char* p = (u_char*)term_type; - te->nextc(p); // TERMINAL-TYPE - while (*p != nIAC) { - if (isupper(*p)) *p = _tolower(*p); - ++p; te->nextc(p); - } - *p = 0; - te->nextc(&c); // IAC SE" - return (u_char)oTERM; - } - // accept terminal size request - if (c == oNAWS) { // "SB NAWS - u_short col, row; - te->nextc((u_char*)&col); - te->nextc((u_char*)&col+1); // 00 00 (cols) - te->nextc((u_char*)&row); - te->nextc((u_char*)&row+1); // 00 00 (rows) - te->nextc(&c); - te->nextc(&c); // TAC SE" - win_size.ws_col = ntohs(col); - win_size.ws_row = ntohs(row); - return (u_char)oNAWS; - } - while (c != nIAC) te->nextc(&c); // "... IAC SE" - te->nextc(&c); - } - else if (cmd == nWILL || cmd == nWONT || cmd == nDO || cmd == nDONT) { - u_char c; - te->nextc(&c); - if (cmd == nWILL && c == oTERM) // "WILL TERM" - c_will_term = true; - else if (cmd == nWILL && c == oNAWS) // "WILL NAWS" - c_will_naws = true; - } - return cmd; -} - -//============================// -// TELNET initial negotiation // -//----------------------------// -void telnet_nego(int te_sock) -{ - IOBuf te = te_sock; - u_char c; - - // start terminal type negotiation - // IAC DO TERMINAL-TYPE - te.putc(nIAC); te.putc(nDO); te.putc(oTERM); - te.flush_out(); - te.nextc(&c); - if (c != nIAC) { - te.ungetc(); - return; - } - (void)telnet_cmd(&te); - if (c_will_term) { - // terminal type sub-negotiation - // IAC SB TERMINAL-TYPE SEND IAC SE - te.putc(nIAC); te.putc(sSB); te.putc(oTERM); - te.putc(sSEND); te.putc(nIAC); te.putc(sSE); - te.flush_out(); - // accept terminal type response - te.nextc(&c); - if (c != nIAC) { - te.ungetc(); - return; - } - (void)telnet_cmd(&te); - } - - // start terminal size negotiation - // IAC DO WINDOW-SIZE - te.putc(nIAC); te.putc(nDO); te.putc(oNAWS); - te.flush_out(); - te.nextc(&c); - if (c != nIAC) { - te.ungetc(); - return; - } - (void)telnet_cmd(&te); - if (c_will_naws) { - // accept terminal size response - te.nextc(&c); - if (c != nIAC) { - te.ungetc(); - return; - } - (void)telnet_cmd(&te); - } - - // SGA/ECHO - te.putc(nIAC); te.putc(nWILL); te.putc(oSGA); - te.putc(nIAC); te.putc(nDO); te.putc(oSGA); - te.putc(nIAC); te.putc(nWILL); te.putc(oECHO); - te.flush_out(); -} - -//=============================================// -// relaying of a terminal emulator and a shell // -//---------------------------------------------// -void telnet_session(int te_sock, int sh_pty) -{ - IOBuf te = te_sock; - IOBuf sh = sh_pty; - fd_set rtmp, rbits; - FD_ZERO(&rtmp); - FD_SET(te, &rtmp); - FD_SET(sh, &rtmp); - u_char c; - int cr = 0; - int cnt = 0; - for (;;) { - rbits = rtmp; - if (select(FD_SETSIZE, &rbits, 0, 0, 0) <= 0) { - break; - } - if (FD_ISSET(sh, &rbits)) { - // send data from a shell to a terminal - if (sh.flush_in() == false) { - break; - } - while (sh.getc(&c) == true) { - if (c == nIAC) { - // escape a TELNET IAC char - te.putc(c); - } - te.putc(c); - } - if (te.flush_out() == false) { - break; - } - if (cnt++ < 20) { - continue; // give priority to data from a shell - } - cnt = 0; - } - if (FD_ISSET(te, &rbits)) { - // send data from a terminal to a shell - if (te.flush_in() == false) { - break; - } - while (te.getc(&c) == true) { - if (c == nIAC && !dumb) { - u_char cmd = telnet_cmd(&te) ; - if (cmd == oNAWS) { - // resize pty by terminal size change notice - ioctl(sh_pty, TIOCSWINSZ, &win_size); - continue; - } - if (cmd != nIAC) { - continue; - } - } else if (c == '\r') { - cr = 1; - } else if (c == '\n' || c == '\0') { - if (cr) { // do not send LF or NUL just after CR - cr = 0; - continue; - } - } else { - cr = 0; - } - sh.putc(c); - } - if (sh.flush_out() == false) { - break; - } - } - } -} - -//=========================================================// -// connection of TELNET terminal emulator and Cygwin shell // -//---------------------------------------------------------// -int main(int argc, char** argv) -{ - int listen_sock = -1; - u_short listen_port; - int te_sock = -1; - int sh_pty = -1; - HANDLE hTerm = NULL; - int sh_pid, agent_pid = 0; - - // load configuration - load_cfg(); - - // read commandline arguments - get_args(argc, argv); - - if (cmd_shell[0] == 0) { - msg_print("missing shell"); - return 0; - } - if (cmd_term[0] == 0 && cl_port <= 0) { - msg_print("missing terminal"); - return 0; - } - - if (change_dir[0] != 0) { - home_chdir = false; - if (enable_loginshell) { - add_env(&sh_envp, "CHERE_INVOKING=y", NULL); - } - } - - // terminal side connection - if (cl_port > 0) { - // connect to the specified TCP port - if ((te_sock = connect_client()) < 0) { - goto cleanup; - } - } else { - // prepare a TELNET listener socket - if ((listen_sock = listen_telnet(&listen_port)) < 0) { - goto cleanup; - } - in_addr addr; - addr.s_addr = htonl(INADDR_LOOPBACK); - char tmp[256]; - debug_msg_print("execute terminal"); - snprintf(tmp, sizeof(tmp), cmd_term, inet_ntoa(addr), (int)ntohs(listen_port)); - snprintf(cmd_term, sizeof(cmd_term), "%s %s", tmp, cmd_termopt); - - // execute a terminal emulator - if ((hTerm = exec_term()) == NULL) { - api_error("exec_term failed"); - goto cleanup; - } - // accept connection from the terminal emulator - if ((te_sock = accept_telnet(listen_sock)) < 0) { - goto cleanup; - } - shutdown(listen_sock, 2); - close(listen_sock); - listen_sock = -1; - } - // TELNET negotiation - if (!dumb) { - telnet_nego(te_sock); - } - - // execute ssh-agent proxy - if (enable_agent_proxy) { - agent_pid = exec_agent_proxy(); - } - - // execute a shell - debug_msg_print("execute shell"); - if ((sh_pty = exec_shell(&sh_pid)) < 0) { - debug_msg_print("exec_shell failed"); - goto cleanup; - } - // set initial pty window size - if (!dumb && c_will_naws && win_size.ws_col != 0) { - ioctl(sh_pty, TIOCSWINSZ, &win_size); - } - - debug_msg_print("entering telnet session"); - // relay the terminal emulator and the shell - telnet_session(te_sock, sh_pty); - - cleanup: - if (agent_pid > 0) { - kill(agent_pid, SIGTERM); - } - if (sh_pty >= 0) { - close(sh_pty); - kill(sh_pid, SIGKILL); - } - if (agent_pid > 0 || sh_pty >= 0) { - wait((int*)NULL); - } - if (listen_sock >= 0) { - shutdown(listen_sock, 2); - close(listen_sock); - } - if (te_sock >= 0) { - shutdown(te_sock, 2); - close(te_sock); - } - if (hTerm != NULL) { - WaitForSingleObject(hTerm, INFINITE); - CloseHandle(hTerm); - } - return 0; -} - -#ifdef NO_WIN_MAIN -// This program is an Win32 application but, start as Cygwin main(). -//------------------------------------------------------------------ -extern "C" { - void mainCRTStartup(void); - void WinMainCRTStartup(void) { mainCRTStartup(); } -}; -#endif - -//EOF diff --git a/cygterm/cygterm.ico b/cygterm/cygterm.ico deleted file mode 100644 index 87ef3f184..000000000 Binary files a/cygterm/cygterm.ico and /dev/null differ diff --git a/cygwin/.gitignore b/cygwin/.gitignore new file mode 100644 index 000000000..b3705ac4c --- /dev/null +++ b/cygwin/.gitignore @@ -0,0 +1,2 @@ +*.d +*.o diff --git a/cygwin/CMakeLists.txt b/cygwin/CMakeLists.txt new file mode 100644 index 000000000..3d3495b97 --- /dev/null +++ b/cygwin/CMakeLists.txt @@ -0,0 +1,47 @@ +add_subdirectory(cyglaunch) +set_target_properties( + cyglaunch + PROPERTIES FOLDER cygwin) + +add_subdirectory(cyglib) +set_target_properties( + cyglib + PROPERTIES FOLDER cygwin) + +if((CMAKE_HOST_SYSTEM_NAME MATCHES "Linux") OR MINGW) + # linux, MinGW上ではcygwinが必要なものはビルドできない + return() +endif() + +if(CMAKE_SIZEOF_VOID_P EQUAL 4) + # 32bit build + add_subdirectory(cygtool) + + set_target_properties( + cygtool + PROPERTIES + FOLDER cygwin + ) + set_target_properties( + cygtool_tester + PROPERTIES + FOLDER cygwin + ) +else() + # other build system... + if(${CMAKE_VERSION} VERSION_GREATER_EQUAL "3.12.0") + add_subdirectory(cygtool_build) + if(TARGET cygtool) + set_target_properties( + cygtool + PROPERTIES FOLDER cygwin) + endif() + endif() +endif() + +if(${CMAKE_VERSION} VERSION_GREATER_EQUAL "3.12.0") + add_subdirectory(cygterm_build) + set_target_properties( + cygterm_build + PROPERTIES FOLDER cygwin) +endif() diff --git a/cygwin/README.md b/cygwin/README.md new file mode 100644 index 000000000..8dd17750c --- /dev/null +++ b/cygwin/README.md @@ -0,0 +1,31 @@ +# cygwin に関連するプログラムなど + +- cyglaunch + - Cygwinのインストール先をPATHに追加してcygterm(または msys2term) を実行するプログラム + - Visual Studio でビルドする cf. cyglaunch/README.md +- cygterm + - cygwin(msys2)のシェルとTera Termの橋渡しをするプログラム + - cygwin用64bit, 32bit, msys2用(msys2term) をビルド可能 + - cygwinのとき、コンパイラパッケージをインストールしておく cf. cygterm/build.md +- cygterm_build + - cmakeビルド用 cygterm(とmsys2term) をビルドするためのフォルダ +- cygtool + - インストーラから使用するdll + - [cygtool/README.md](cygtool/README.md) +- cygtool_build + - cmakeビルド用 cygtool をビルドするためのフォルダ + - [cygtool_build/README.md](cygtool_build/README.md) +- cyglib + - ttermpro, cyglaunch, cygtool から使用するライブラリ + + +# リリース用バイナリに使われるコンパイラ +- cygterm+-i686/cygterm.exe + - Cygwin 64bit / gcc-g++ (x86_64-pc-cygwin-gcc) +- cygterm+-x86_64/cygterm.exe + - Cygwin 64bit / mingw32-gcc-g++ (i686-pc-cygwin-gcc) +- cyglaunch.exe + - cl (Visual Studio) +- cygtool.dll + - cl (Visual Studio) + diff --git a/cygwin/cyglaunch/CMakeLists.txt b/cygwin/cyglaunch/CMakeLists.txt new file mode 100644 index 000000000..691b8c568 --- /dev/null +++ b/cygwin/cyglaunch/CMakeLists.txt @@ -0,0 +1,83 @@ +set(PACKAGE_NAME "cyglaunch") + +project(${PACKAGE_NAME}) + +add_executable( + ${PACKAGE_NAME} WIN32 + cyglaunch.c + cyglaunch.rc + ../cyglib/cyglib.h + ) + +target_include_directories( + ${PACKAGE_NAME} + PRIVATE + . + ) + +if(SUPPORT_OLD_WINDOWS) + if(MSVC) + target_sources( + ${PACKAGE_NAME} + PRIVATE + ../../teraterm/common/compat_w95_vs2005.c + ) + endif() + if(MINGW) + target_link_libraries( + ${PACKAGE_NAME} + PRIVATE + -Wl,--whole-archive + mingw_msvcrt + -Wl,--no-whole-archive + ) + endif() +endif(SUPPORT_OLD_WINDOWS) + +target_link_libraries( + ${PACKAGE_NAME} + PRIVATE + common_static + cyglib + ) + +install( + TARGETS ${PACKAGE_NAME} + DESTINATION . + ) + +install( + FILES + cyglaunch_cmd.bat + cyglaunch_cmd_msys2term.bat + cyglaunch_git_bash.bat + cyglaunch_msys2_mingw32.bat + cyglaunch_msys2_mingw64.bat + cyglaunch_msys2_msys.bat + cyglaunch_powershell.bat + cyglaunch_powershell_msys2term.bat + cyglaunch_wsl.bat + cyglaunch_wsl_msys2term.bat + DESTINATION . + ) + +if(MSVC) + # subsystem:windows, but start form wmain() + if(${CMAKE_VERSION} VERSION_LESS "3.13.0") + set(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} /ENTRY:wmainCRTStartup") + else() + target_link_options( + ${PACKAGE_NAME} + PRIVATE + /ENTRY:wmainCRTStartup + ) + endif() +endif(MSVC) + +if(MINGW) + target_link_options( + ${PACKAGE_NAME} + PRIVATE + -municode + ) +endif(MINGW) diff --git a/cygwin/cyglaunch/Makefile b/cygwin/cyglaunch/Makefile new file mode 100644 index 000000000..201ea5864 --- /dev/null +++ b/cygwin/cyglaunch/Makefile @@ -0,0 +1,101 @@ +# Makefile for cyglaunch + +UNAME_M = $(shell uname -m) +CURRENT_MAKEFILE_DIR = $(shell dirname $(realpath $(firstword $(MAKEFILE_LIST)))) + +ifeq (i686, $(UNAME_M)) + +# mingw 32bit +CC = i686-w64-mingw32-gcc +CXX = i686-w64-mingw32-g++ +STRIP = i686-w64-mingw32-strip +RC = i686-w64-mingw32-windres + +# gcc3 (supports "-mno-cygwin") +#CC = gcc-3 -mno-cygwin +#CXX = g++-3 -mno-cygwin +#RC = windres +#STRIP = strip + +# gcc less than 4.3.2 (supports "-mno-cygwin") +#CC = gcc -mno-cygwin +#CXX = g++ -mno-cygwin +#RC = windres +#STRIP = strip + +else + +# mingw 64bit +CC = x86_64-w64-mingw32-gcc +CXX = x86_64-w64-mingw32-g++ +STRIP = x86_64-w64-mingw32-strip +RC = x86_64-w64-mingw32-windres + +endif + +CFLAGS = -O2 -fno-exceptions -DUNICODE -D_UNICODE -MMD -I $(CYGLIB_DIR) -I $(COMMON_DIR) +CXXFLAGS = $(CFLAGS) +LDFLAGS = -mwindows -municode +#LDFLAGS = -municode + +ifneq ("$(wildcard asprintf.cpp)","") +# standalone build +COMMON_DIR = . +CYGLIB_DIR = . +CYGTERM_DIR = . +else +COMMON_DIR = ../../teraterm/common +CYGLIB_DIR = ../cyglib +CYGTERM_DIR = ../cygterm +endif + +SRC = \ + cyglaunch.c \ + $(CYGLIB_DIR)/cyglib.c \ + $(COMMON_DIR)/asprintf.cpp \ + $(COMMON_DIR)/win32helper.cpp \ + $(COMMON_DIR)/ttlib_static_dir.cpp \ + $(COMMON_DIR)/ttknownfolders.c +EXE = cyglaunch.exe +RES = cyglaunch.res +SRC_RC = cyglaunch.rc +OBJ = $(addsuffix .o,$(notdir $(basename $(SRC)))) +DEP = $(OBJ:.o=.d) +ICO = $(CYGTERM_DIR)/cygterm.ico + +.PHONY: all clean install uninstall + +all : $(EXE) + +$(EXE) : $(OBJ) $(RES) + $(CC) -o $@ $^ $(LDFLAGS) -lole32 + $(STRIP) $@ + +clean : + @rm -f $(OBJ) + @rm -f $(DEP) + @rm -f $(SRC_RC) + @rm -f $(RES) + @rm -f $(EXE) + +$(RES): $(SRC_RC) $(ICO) + @mkdir -p $(dir $@) + $(RC) -O coff -o $@ $(SRC_RC) + +$(SRC_RC): + echo 'icon ICON "$(ICO)"' > $(SRC_RC) + +%.o: %.cpp + $(CXX) $(CXXFLAGS) -c $< -o $@ +%.o: $(COMMON_DIR)/%.cpp + $(CXX) $(CXXFLAGS) -c $< -o $@ +%.o: $(COMMON_DIR)/%.c + $(CC) $(CFLAGS) -c $< -o $@ +%.o: %.c + $(CC) $(CFLAGS) -c $< -o $@ +%.o: $(CYGLIB_DIR)/%.c + $(CC) $(CFLAGS) -c $< -o $@ +ttlib_static_dir.o: $(COMMON_DIR)/ttlib_static_dir.cpp + $(CC) $(CFLAGS) -c $< -o $@ -DENABLE_COMAPT_WIN=0 + +-include $(DEP) diff --git a/cygwin/cyglaunch/README.md b/cygwin/cyglaunch/README.md new file mode 100644 index 000000000..3a1436550 --- /dev/null +++ b/cygwin/cyglaunch/README.md @@ -0,0 +1,68 @@ +# cyglaunch + +cygterm を起動するプログラム + +## コマンドラインオプション + +cyglaunch で解釈されない引数は cygterm(又は msys2term)へ渡される + +- `-msys2` + cygterm ではなく msys2term を起動する + 環境変数 MSYSTEM の値によって msys2の環境を設定する + -v は cygterm へ渡されるオプション + +- `-v MSYSTEM=MSYS` + msys2 を msys 環境で起動する + `-v` は cygterm へ渡されるオプション +- `-v MSYSTEM=MINGW32` + msys2 を mingw32 環境で起動する + `-v` は cygterm へ渡されるオプション +- `-v MSYSTEM=MINGW64` + msys2 を mingw64 環境で起動する + `-v` は cygterm へ渡されるオプション + +msys2の起動については次のURLを参照 +- https://www.msys2.org/wiki/Launchers/ +- https://www.msys2.org/docs/environments/ + +## from explorer + +レジストリに設定することで、エクスプローラーのコンテキストメニューからターミナルをオープンできる + +cygterm_here_reg_sample.txt 参照 + +## cyglaunchの動作 + +cygterm.exe の起動と同等なbat + +``` +set PATH=c:\cygwin64\bin;%PATH% +\path\to\cygterm.exe +``` + +msys2term.exe の起動と同等なbat + +``` +set PATH=c:\msys64\usr\bin;%PATH% +set MSYSTEM=MINGW32 +\path\to\msys2term.exe +``` + +## TODO + +cyglaunchを拡張して次のbatと同等に起動させれば、Tera Termから使用できる + +- cyglaunch_cmd.bat + - cmd.exe を Tera Term 内で動作させる + - Microsoft Windows [Version 10.0.19043.1348] で動作確認 +- cyglaunch_powershell.bat + - powershell を Tera Term 内で動作させる +- cyglaunch_wsl.bat + - wsl を Tera Term 内で動作させる + +## 歴史 + +- cyglaunch は通常のexeファイル +- Visual Studio で普通にビルドできる +- cygwin上で動作する必要はない +- 従来は cygterm フォルダに存在し MinGW でビルドされていた diff --git a/cygwin/cyglaunch/cyglaunch.c b/cygwin/cyglaunch/cyglaunch.c new file mode 100644 index 000000000..9f55bc1c9 --- /dev/null +++ b/cygwin/cyglaunch/cyglaunch.c @@ -0,0 +1,154 @@ +/* + * Copyright (C) 2007- TeraTerm Project + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * 3. The name of the author may not be used to endorse or promote products + * derived from this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE AUTHORS ``AS IS'' AND ANY EXPRESS OR + * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES + * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. + * IN NO EVENT SHALL THE AUTHORS BE LIABLE FOR ANY DIRECT, INDIRECT, + * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT + * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, + * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY + * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF + * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */ + +// +// Cygterm launcher +// + +#include +#include +#include +#include + +#include "ttlib_static_dir.h" +#include "asprintf.h" +#include "win32helper.h" +#include "cyglib.h" + +#define Section L"Tera Term" + +/** + * TERATERM.INI CygwinDirectory ǂݍ + */ +static wchar_t *GetCygwinDir(void) +{ + wchar_t *HomeDir; + wchar_t *teraterm_ini; + wchar_t *CygwinDir; + + HomeDir = GetHomeDirW(NULL); + teraterm_ini = NULL; + awcscats(&teraterm_ini, HomeDir, L"\\TERATERM.INI", NULL); + free(HomeDir); + + // Cygwin install path + hGetPrivateProfileStringW(Section, L"CygwinDirectory", L"", + teraterm_ini, &CygwinDir); + free(teraterm_ini); + + return CygwinDir; +} + +typedef enum { + SYSTEM_CYGWIN, + SYSTEM_MSYS2, + SYSTEM_GIT_BASH +} system_t; + +int wmain(int argc, wchar_t *argv[]) +{ + wchar_t *Cmdline; + int i; + DWORD e; + system_t system = SYSTEM_CYGWIN; + + setlocale(LC_ALL, ""); + + // ăR}hC쐬 + Cmdline = NULL; + for (i=1; i + + + + Debug + Win32 + + + Release + Win32 + + + + 16.0 + Win32Proj + {11b49891-80f0-4dd3-b6e9-70bbe64a4bbf} + cyglaunch + 10.0 + cyglaunch + + + + Application + true + v142 + MultiByte + + + Application + false + v142 + true + MultiByte + + + + + + + + + + + + + + + true + + + false + + + + Level4 + true + WIN32;_DEBUG;_CONSOLE;%(PreprocessorDefinitions) + true + ..\..\teraterm\common;..\cyglib;%(AdditionalIncludeDirectories) + true + MultiThreadedDebug + + + Windows + true + $(SolutionDir)..\teraterm\$(Configuration)\common_static.lib;%(AdditionalDependencies) + wmainCRTStartup + + + + + Level4 + true + true + true + WIN32;NDEBUG;_CONSOLE;%(PreprocessorDefinitions) + true + ..\..\teraterm\common;..\cyglib;%(AdditionalIncludeDirectories) + true + MultiThreaded + + + Windows + true + true + true + $(SolutionDir)..\teraterm\$(Configuration)\common_static.lib;%(AdditionalDependencies) + wmainCRTStartup + + + + + + + + + + + {a171f48c-bfb2-4766-97c3-9b8b7be9d548} + + + + + + diff --git a/cygwin/cyglaunch/cyglaunch.v17.vcxproj b/cygwin/cyglaunch/cyglaunch.v17.vcxproj new file mode 100644 index 000000000..40d522bf5 --- /dev/null +++ b/cygwin/cyglaunch/cyglaunch.v17.vcxproj @@ -0,0 +1,105 @@ + + + + + Debug + Win32 + + + Release + Win32 + + + + 16.0 + Win32Proj + {11b49891-80f0-4dd3-b6e9-70bbe64a4bbf} + cyglaunch + 10.0 + cyglaunch + + + + Application + true + v143 + MultiByte + + + Application + false + v143 + true + MultiByte + + + + + + + + + + + + + + + true + + + false + + + + Level4 + true + WIN32;_DEBUG;_CONSOLE;%(PreprocessorDefinitions) + true + ..\..\teraterm\common;..\cyglib;%(AdditionalIncludeDirectories) + true + MultiThreadedDebug + + + Windows + true + $(SolutionDir)..\teraterm\$(Configuration)\common_static.lib;%(AdditionalDependencies) + wmainCRTStartup + + + + + Level4 + true + true + true + WIN32;NDEBUG;_CONSOLE;%(PreprocessorDefinitions) + true + ..\..\teraterm\common;..\cyglib;%(AdditionalIncludeDirectories) + true + MultiThreaded + + + Windows + true + true + true + $(SolutionDir)..\teraterm\$(Configuration)\common_static.lib;%(AdditionalDependencies) + wmainCRTStartup + + + + + + + + + + + {a171f48c-bfb2-4766-97c3-9b8b7be9d548} + + + + + + diff --git a/cygwin/cyglaunch/cyglaunch_cmd.bat b/cygwin/cyglaunch/cyglaunch_cmd.bat new file mode 100644 index 000000000..eafffdd0c --- /dev/null +++ b/cygwin/cyglaunch/cyglaunch_cmd.bat @@ -0,0 +1,4 @@ +set DIR=%~dp0 +if exist c:\cygwin\bin set PATH=c:\cygwin\bin;%PATH% +if exist c:\cygwin64\bin set PATH=c:\cygwin64\bin;%PATH% +start "" "%DIR%\cygterm.exe" -t "%DIR%\ttermpro.exe %%s %%d /E /KR=UTF8 /KT=UTF8 /nossh /VTICON=TTERM" -s "c:/windows/system32/cmd.exe" diff --git a/cygwin/cyglaunch/cyglaunch_cmd_msys2term.bat b/cygwin/cyglaunch/cyglaunch_cmd_msys2term.bat new file mode 100644 index 000000000..c53587385 --- /dev/null +++ b/cygwin/cyglaunch/cyglaunch_cmd_msys2term.bat @@ -0,0 +1,3 @@ +set DIR=%~dp0 +set PATH=c:\msys64\usr\bin;%PATH% +start "" "%DIR%\msys2term.exe" -t "%DIR%\ttermpro.exe %%s %%d /E /KR=UTF8 /KT=UTF8 /nossh /VTICON=TTERM" -s "c:/windows/system32/cmd.exe" diff --git a/cygwin/cyglaunch/cyglaunch_git_bash.bat b/cygwin/cyglaunch/cyglaunch_git_bash.bat new file mode 100644 index 000000000..e2f02f413 --- /dev/null +++ b/cygwin/cyglaunch/cyglaunch_git_bash.bat @@ -0,0 +1,3 @@ +set DIR=%~dp0 +set PATH=C:\Program Files\Git\usr\bin;%PATH% +start "" "%DIR%\msys2term.exe" -t "%DIR%\ttermpro.exe %%s %%d /E /KR=UTF8 /KT=UTF8 /nossh /VTICON=TTERM" diff --git a/cygwin/cyglaunch/cyglaunch_msys2_mingw32.bat b/cygwin/cyglaunch/cyglaunch_msys2_mingw32.bat new file mode 100644 index 000000000..fb27c7049 --- /dev/null +++ b/cygwin/cyglaunch/cyglaunch_msys2_mingw32.bat @@ -0,0 +1 @@ +cyglaunch -msys2 -v MSYSTEM=MINGW32 diff --git a/cygwin/cyglaunch/cyglaunch_msys2_mingw64.bat b/cygwin/cyglaunch/cyglaunch_msys2_mingw64.bat new file mode 100644 index 000000000..67c771582 --- /dev/null +++ b/cygwin/cyglaunch/cyglaunch_msys2_mingw64.bat @@ -0,0 +1 @@ +cyglaunch -msys2 -v MSYSTEM=MINGW64 diff --git a/cygwin/cyglaunch/cyglaunch_msys2_msys.bat b/cygwin/cyglaunch/cyglaunch_msys2_msys.bat new file mode 100644 index 000000000..4fe9c4556 --- /dev/null +++ b/cygwin/cyglaunch/cyglaunch_msys2_msys.bat @@ -0,0 +1 @@ +cyglaunch -msys2 diff --git a/cygwin/cyglaunch/cyglaunch_powershell.bat b/cygwin/cyglaunch/cyglaunch_powershell.bat new file mode 100644 index 000000000..55f067ed6 --- /dev/null +++ b/cygwin/cyglaunch/cyglaunch_powershell.bat @@ -0,0 +1,4 @@ +set DIR=%~dp0 +if exist c:\cygwin\bin set PATH=c:\cygwin\bin;%PATH% +if exist c:\cygwin64\bin set PATH=c:\cygwin64\bin;%PATH% +start "" "%DIR%\cygterm.exe" -t "%DIR%\ttermpro.exe %%s %%d /E /KR=UTF8 /KT=UTF8 /nossh /VTICON=TTERM" -s ""C:/Windows/System32/WindowsPowerShell/v1.0/powershell.exe"" diff --git a/cygwin/cyglaunch/cyglaunch_powershell_msys2term.bat b/cygwin/cyglaunch/cyglaunch_powershell_msys2term.bat new file mode 100644 index 000000000..7fc39451f --- /dev/null +++ b/cygwin/cyglaunch/cyglaunch_powershell_msys2term.bat @@ -0,0 +1,3 @@ +set DIR=%~dp0 +set PATH=c:\msys64\usr\bin;%PATH% +start "" "%DIR%\msys2term.exe" -t "%DIR%\ttermpro.exe %%s %%d /E /KR=UTF8 /KT=UTF8 /nossh /VTICON=TTERM" -s ""C:/Windows/System32/WindowsPowerShell/v1.0/powershell.exe"" diff --git a/cygwin/cyglaunch/cyglaunch_wsl.bat b/cygwin/cyglaunch/cyglaunch_wsl.bat new file mode 100644 index 000000000..cd8a92901 --- /dev/null +++ b/cygwin/cyglaunch/cyglaunch_wsl.bat @@ -0,0 +1,4 @@ +set DIR=%~dp0 +if exist c:\cygwin\bin set PATH=c:\cygwin\bin;%PATH% +if exist c:\cygwin64\bin set PATH=c:\cygwin64\bin;%PATH% +start "" "%DIR%\cygterm.exe" -t "%DIR%\ttermpro.exe %%s %%d /E /KR=UTF8 /KT=UTF8 /nossh /VTICON=TTERM" -s "c:/windows/system32/wsl.exe" diff --git a/cygwin/cyglaunch/cyglaunch_wsl_msys2term.bat b/cygwin/cyglaunch/cyglaunch_wsl_msys2term.bat new file mode 100644 index 000000000..e7ceeccb5 --- /dev/null +++ b/cygwin/cyglaunch/cyglaunch_wsl_msys2term.bat @@ -0,0 +1,3 @@ +set DIR=%~dp0 +set PATH=c:\msys64\usr\bin;%PATH% +start "" "%DIR%\msys2term.exe" -t "%DIR%\ttermpro.exe %%s %%d /E /KR=UTF8 /KT=UTF8 /nossh /VTICON=TTERM" -s "c:/windows/system32/wsl.exe" diff --git a/cygwin/cyglaunch/cygterm_here_reg_sample.txt b/cygwin/cyglaunch/cygterm_here_reg_sample.txt new file mode 100644 index 000000000..7a81b797e Binary files /dev/null and b/cygwin/cyglaunch/cygterm_here_reg_sample.txt differ diff --git a/cygwin/cyglib/CMakeLists.txt b/cygwin/cyglib/CMakeLists.txt new file mode 100644 index 000000000..890166328 --- /dev/null +++ b/cygwin/cyglib/CMakeLists.txt @@ -0,0 +1,21 @@ +set(PACKAGE_NAME "cyglib") + +project(${PACKAGE_NAME}) + +add_library( + ${PACKAGE_NAME} + cyglib.c + cyglib.h + ) + +target_include_directories( + ${PACKAGE_NAME} + PUBLIC + . + ) + +target_link_libraries( + ${PACKAGE_NAME} + PUBLIC + common_static + ) diff --git a/cygwin/cyglib/cyglib.c b/cygwin/cyglib/cyglib.c new file mode 100644 index 000000000..38e0ea2f8 --- /dev/null +++ b/cygwin/cyglib/cyglib.c @@ -0,0 +1,292 @@ +/* + * Copyright (C) 2021- TeraTerm Project + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * 3. The name of the author may not be used to endorse or promote products + * derived from this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE AUTHORS ``AS IS'' AND ANY EXPRESS OR + * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES + * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. + * IN NO EVENT SHALL THE AUTHORS BE LIABLE FOR ANY DIRECT, INDIRECT, + * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT + * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, + * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY + * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF + * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */ + +#include +#include +#include +#include +#include +#include + +#include "ttlib_static_dir.h" +#include "asprintf.h" + +#include "cyglib.h" + +/** + * cygwin1.dll / msys-2.0.dllT + * + * @param[in] dll_base "cygwin1", "msys-2.0" ȂǁA"dll" x[X + * @param[in] cygwin_dir (݂ł낤)tH_(*1) + * wȂ̏ꍇ NULL n + * @param[in] search_paths (*1)‚ȂƂɒTpX + * @param[out] find_dir ‚tH_ free() 邱 + * @param[out] find_in_path ‹ϐ PATH Ɍ‚ + * + * @retval TRUE ‚ + * @retval FALSE ‚Ȃ + */ +static BOOL SearchDLL(const wchar_t *dll_base, const wchar_t *cygwin_dir, const wchar_t **search_paths, wchar_t **find_dir, BOOL *find_in_path) +{ + wchar_t file[MAX_PATH]; + wchar_t *filename; + wchar_t c; + wchar_t *dll; + int i; + DWORD r; + + *find_in_path = FALSE; + *find_dir = NULL; + + // w肳ꂽtH_ɑ݂邩? + if (cygwin_dir != NULL && cygwin_dir[0] != 0) { + static const wchar_t *dll_paths[] = { + L"bin\\", // cygwin bin/ ̉dll + L"usr\\bin\\" // msys2 usr/bin/ ̉dll + }; + for (i = 0; i < _countof(dll_paths); i++) { + // SearchPathW() ŒT + dll = NULL; + awcscats(&dll, dll_paths[i], dll_base, NULL); + r = SearchPathW(cygwin_dir, dll, L".dll", _countof(file), file, &filename); + free(dll); + if (r > 0) { + goto found_dll; + } + + // ‚Ȃ GetFileAttributesW() łɒׂ + // SearchPathW() "msys-2.0.dll" ‚邱ƂłȂ + // "." Ă邩炩? + dll = NULL; + awcscats(&dll, cygwin_dir, L"\\", dll_paths[i], dll_base, L".dll", NULL); + wcscpy_s(file, _countof(file), dll); + free(dll); + r = GetFileAttributesW(file); + if (r != INVALID_FILE_ATTRIBUTES) { + // ‚ + goto found_dll; + } + } + } + + // PATH T + if (SearchPathW(NULL, dll_base, L".dll", _countof(file), file, &filename) > 0) { + *find_in_path = TRUE; + goto found_dll; + } + + // 肻ȏꏊT + for (c = 'C' ; c <= 'Z' ; c++) { + for (i = 0; search_paths[i] != NULL; i++) { + // SearchPathW() ŒT + const wchar_t *search_path_base = search_paths[i]; + wchar_t *search_path; + aswprintf(&search_path, search_path_base, c); + r = SearchPathW(search_path, dll_base, L".dll", _countof(file), file, &filename); + if (r > 0) { + free(search_path); + goto found_dll; + } + + // t@C݂邩ׂ + dll = NULL; + awcscats(&dll, search_path, L"\\", dll_base, L".dll", NULL); + r = GetFileAttributesW(dll); + free(search_path); + if (r != INVALID_FILE_ATTRIBUTES) { + wcscpy_s(file, _countof(file), dll); + free(dll); + goto found_dll; + } + free(dll); + } + } + + // ‚Ȃ + return FALSE; + +found_dll: + { + // cut "cygwin1.dll", tH_݂̂Ԃ + wchar_t *p = wcsrchr(file, L'\\'); + *p = 0; + } + + *find_dir = _wcsdup(file); + return TRUE; +} + +static errno_t __wdupenv_s(wchar_t** envptr, size_t* buf_size, const wchar_t* name) +{ +#if defined(_MSC_VER) + return _wdupenv_s(envptr, buf_size, name); +#else + const wchar_t* s = _wgetenv(name); + if (s == NULL) { + // ݂Ȃ + *envptr = NULL; + return EINVAL; + } + *envptr = _wcsdup(s); + if (buf_size != NULL) { + *buf_size = wcslen(*envptr); + } + return 0; +#endif +} + +/** + * ‹ϐ PATH add_path lj + */ +static BOOL AddPath(const wchar_t *add_path) +{ + wchar_t *envptr; + wchar_t *new_env; + int r; + errno_t e; + + e = __wdupenv_s(&envptr, NULL, L"PATH"); + if (e == 0) { + aswprintf(&new_env, L"PATH=%s;%s", add_path, envptr); + free(envptr); + } + else { + // ‹ϐ PATH ݂Ȃ + aswprintf(&new_env, L"PATH=%s", add_path); + } + r = _wputenv(new_env); + free(new_env); + return r == 0 ? TRUE : FALSE; +} + +/** + * Connect to local cygwin + * cygterms + + * @param[in] dll_base "cygwin1", "msys-2.0" ȂǁA"dll" x[X + * @param[in] CygwinDirectory Cygwin(msys2)CXg[ĂtH_ + * wȂ̏ꍇ NULL n + * ‚Ȃ΃ftHgtH_ȂǂT + * @param[in] cmdline cygtermɓnR}hC + * NULL̂ƂȂ + * @retval NO_ERROR sł + * @retval ERROR_FILE_NOT_FOUND cygwin‚Ȃ(cygwin1.dll‚Ȃ) + * @retval ERROR_NOT_ENOUGH_MEMORY s + * @retval ERROR_OPEN_FAILED słȂ + */ +static DWORD Connect(const wchar_t *cygterm_exe, const wchar_t *dll_base, const wchar_t *CygwinDirectory, const wchar_t **search_paths, const wchar_t *cmdline) +{ + BOOL find_cygwin; + wchar_t *find_dir; + BOOL find_in_path; + wchar_t *ExeDirW; + wchar_t *cygterm_cmd; + DWORD e; + + find_cygwin = SearchDLL(dll_base, CygwinDirectory, search_paths, &find_dir, &find_in_path); + if (find_cygwin == FALSE) { + return ERROR_FILE_NOT_FOUND; + } + + if (!find_in_path) { + // ‹ϐ PATH ɒlj + // cygterm.exe sƂ cygwin1.dll [hł悤ɂ + BOOL r = AddPath(find_dir); + if (r == FALSE) { + free(find_dir); + return ERROR_NOT_ENOUGH_MEMORY; + } + } + free(find_dir); + + ExeDirW = GetExeDirW(NULL); + cygterm_cmd = NULL; + awcscats(&cygterm_cmd, ExeDirW, L"\\", cygterm_exe, NULL); + if (cmdline != NULL && cmdline[0] != 0) { + awcscats(&cygterm_cmd, L" ", cmdline, NULL); + } + + e = TTWinExec(cygterm_cmd); + free(cygterm_cmd); + if (e != NO_ERROR) { + return ERROR_OPEN_FAILED; + } + + return NO_ERROR; +} + +/** + * Connect to local cygwin + * cygterms + * + * @param[in] CygwinDirectory CygwinCXg[ĂtH_ + * ‚Ȃ΃ftHgtH_ȂǂT + * @param[in] cmdline cygtermɓnR}hC + * NULL̂ƂȂ + * @retval NO_ERROR sł + * @retval ERROR_FILE_NOT_FOUND cygwin‚Ȃ(cygwin1.dll‚Ȃ) + * @retval ERROR_NOT_ENOUGH_MEMORY s + * @retval ERROR_OPEN_FAILED słȂ + */ +DWORD CygwinConnect(const wchar_t *CygwinDirectory, const wchar_t *cmdline) +{ + static const wchar_t *cygterm_exe = L"cygterm.exe"; + static const wchar_t *dll_base = L"cygwin1"; + static const wchar_t *search_paths[] = { + L"%c:\\cygwin\\bin", + L"%c:\\cygwin64\\bin", + NULL, + }; + + return Connect(cygterm_exe, dll_base, CygwinDirectory, search_paths, cmdline); +} + +DWORD Msys2Connect(const wchar_t *Msys2Directory, const wchar_t *cmdline) +{ + static const wchar_t *cygterm_exe = L"msys2term.exe"; + static const wchar_t *dll_base = L"msys-2.0"; + static const wchar_t *search_paths[] = { + L"%c:\\msys\\usr\\bin", + L"%c:\\msys64\\usr\\bin", + NULL, + }; + + return Connect(cygterm_exe, dll_base, Msys2Directory, search_paths, cmdline); +} + +DWORD GitBashConnect(const wchar_t *Msys2Directory, const wchar_t *cmdline) +{ + static const wchar_t *cygterm_exe = L"msys2term.exe"; + static const wchar_t *dll_base = L"msys-2.0"; + static const wchar_t *search_paths[] = { + L"%c:\\Program Files\\Git\\usr\\bin", + NULL, + }; + + return Connect(cygterm_exe, dll_base, Msys2Directory, search_paths, cmdline); +} diff --git a/cygwin/cyglib/cyglib.h b/cygwin/cyglib/cyglib.h new file mode 100644 index 000000000..769ba9bec --- /dev/null +++ b/cygwin/cyglib/cyglib.h @@ -0,0 +1,43 @@ +/* + * Copyright (C) 2021- TeraTerm Project + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * 3. The name of the author may not be used to endorse or promote products + * derived from this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE AUTHORS ``AS IS'' AND ANY EXPRESS OR + * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES + * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. + * IN NO EVENT SHALL THE AUTHORS BE LIABLE FOR ANY DIRECT, INDIRECT, + * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT + * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, + * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY + * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF + * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */ + +#pragma once + +#include + +#ifdef __cplusplus +extern "C" { +#endif + +DWORD CygwinConnect(const wchar_t *CygwinDirectory, const wchar_t *cmdline); +DWORD Msys2Connect(const wchar_t *Msys2Directory, const wchar_t *cmdline); +DWORD GitBashConnect(const wchar_t *Msys2Directory, const wchar_t *cmdline); + +#ifdef __cplusplus +} +#endif diff --git a/cygwin/cyglib/cyglib.v16.vcxproj b/cygwin/cyglib/cyglib.v16.vcxproj new file mode 100644 index 000000000..c5ba7f811 --- /dev/null +++ b/cygwin/cyglib/cyglib.v16.vcxproj @@ -0,0 +1,103 @@ + + + + + Debug + Win32 + + + Release + Win32 + + + + + + + + + + 16.0 + Win32Proj + {a171f48c-bfb2-4766-97c3-9b8b7be9d548} + cyglib + 10.0 + cyglib + + + + StaticLibrary + true + v142 + MultiByte + + + StaticLibrary + false + v142 + true + MultiByte + + + + + + + + + + + + + + + true + + + false + + + + Level4 + true + WIN32;_DEBUG;_LIB;%(PreprocessorDefinitions) + true + NotUsing + pch.h + ..\..\teraterm\common;%(AdditionalIncludeDirectories) + true + MultiThreadedDebug + + + + + true + + + + + Level4 + true + true + true + WIN32;NDEBUG;_LIB;%(PreprocessorDefinitions) + true + NotUsing + pch.h + ..\..\teraterm\common;%(AdditionalIncludeDirectories) + true + MultiThreaded + false + + + + + true + true + true + + + + + + \ No newline at end of file diff --git a/cygwin/cyglib/cyglib.v17.vcxproj b/cygwin/cyglib/cyglib.v17.vcxproj new file mode 100644 index 000000000..e2de80347 --- /dev/null +++ b/cygwin/cyglib/cyglib.v17.vcxproj @@ -0,0 +1,103 @@ + + + + + Debug + Win32 + + + Release + Win32 + + + + + + + + + + 16.0 + Win32Proj + {a171f48c-bfb2-4766-97c3-9b8b7be9d548} + cyglib + 10.0 + cyglib + + + + StaticLibrary + true + v143 + MultiByte + + + StaticLibrary + false + v143 + true + MultiByte + + + + + + + + + + + + + + + true + + + false + + + + Level4 + true + WIN32;_DEBUG;_LIB;%(PreprocessorDefinitions) + true + NotUsing + pch.h + ..\..\teraterm\common;%(AdditionalIncludeDirectories) + true + MultiThreadedDebug + + + + + true + + + + + Level4 + true + true + true + WIN32;NDEBUG;_LIB;%(PreprocessorDefinitions) + true + NotUsing + pch.h + ..\..\teraterm\common;%(AdditionalIncludeDirectories) + true + MultiThreaded + false + + + + + true + true + true + + + + + + \ No newline at end of file diff --git a/cygwin/cygterm/.gitignore b/cygwin/cygterm/.gitignore new file mode 100644 index 000000000..103facef4 --- /dev/null +++ b/cygwin/cygterm/.gitignore @@ -0,0 +1,7 @@ +cygterm+.tar.gz +cygterm.exe +cygterm.rc +cygterm.res +*.o +cygterm*/ +msys2term/ diff --git a/cygwin/cygterm/CMakeLists.txt b/cygwin/cygterm/CMakeLists.txt new file mode 100644 index 000000000..ff283c0b5 --- /dev/null +++ b/cygwin/cygterm/CMakeLists.txt @@ -0,0 +1,114 @@ +cmake_minimum_required(VERSION 3.11) + +option(UNICODE "use Unicode Win32 API" ON) + +message("CMAKE_COMMAND=${CMAKE_COMMAND}") +message("CMAKE_INSTALL_PREFIX=${CMAKE_INSTALL_PREFIX}") +message("CMAKE_HOST_SYSTEM_NAME=${CMAKE_HOST_SYSTEM_NAME}") +message("UNICODE=${UNICODE}") +if(${CMAKE_HOST_SYSTEM_NAME} MATCHES "MSYS") + message("MSYS2TERM=ON") + set(MSYS2TERM ON) +endif() + +if (MSYS2TERM) + set(PACKAGE_NAME "msys2term") +else() + set(PACKAGE_NAME "cygterm") +endif() + +project(${PACKAGE_NAME}) +ENABLE_LANGUAGE(RC) + +file(WRITE "${CMAKE_CURRENT_LIST_DIR}/cygterm.rc" "icon ICON cygterm.ico") + +add_executable( + ${PACKAGE_NAME} + cygterm.cpp + cygterm_cfg.cpp + cygterm_cfg.h + sub.cpp + sub.h + ${CMAKE_CURRENT_LIST_DIR}/cygterm.rc + ) + +if (MSYS2TERM) + target_compile_definitions( + ${PACKAGE_NAME} + PRIVATE + MSYS2=1 + ) +else() + target_compile_definitions( + ${PACKAGE_NAME} + PRIVATE + CYGWIN=1 + ) +endif() + +target_compile_options( + ${PACKAGE_NAME} + PRIVATE + -D_GNU_SOURCE + -fno-exceptions + -Wall -Wextra + ) + +if(UNICODE) + target_compile_options( + ${PACKAGE_NAME} + PRIVATE + -DUNICODE=1 + -D_UNICODE=1 + ) +endif() + +target_link_options( + ${PACKAGE_NAME} + PRIVATE + -mwindows + ) + +target_link_libraries( + ${PACKAGE_NAME} + PRIVATE + shell32 + ole32 + ) + +install( + TARGETS ${PACKAGE_NAME} + DESTINATION . + ) +install( + FILES ${PACKAGE_NAME}.cfg + DESTINATION . + ) + + +set(ARCHIVE "cygterm+.tar.gz") + +set(SRC + cygterm.cpp + cygterm_cfg.cpp + cygterm_cfg.h + sub.cpp + sub.h + # + cygterm.ico + # + cygterm.cfg + msys2term.cfg + ) + +add_custom_target( + tar ALL + SOURCES ${CMAKE_CURRENT_LIST_DIR}/${ARCHIVE} + ) + +add_custom_command( + OUTPUT ${CMAKE_CURRENT_LIST_DIR}/${ARCHIVE} + DEPENDS ${SRC} + COMMAND ${CMAKE_COMMAND} -E tar cvz ${CMAKE_CURRENT_LIST_DIR}/${ARCHIVE} COPYING README README-j Makefile CMakeLists.txt ${SRC} + WORKING_DIRECTORY ${CMAKE_CURRENT_LIST_DIR} + ) diff --git a/cygterm/COPYING b/cygwin/cygterm/COPYING similarity index 100% rename from cygterm/COPYING rename to cygwin/cygterm/COPYING diff --git a/cygwin/cygterm/Makefile b/cygwin/cygterm/Makefile new file mode 100644 index 000000000..66b5510f4 --- /dev/null +++ b/cygwin/cygterm/Makefile @@ -0,0 +1,142 @@ +# Makefile for CygTerm + +BINDIR = $(HOME)/bin + +CC = gcc +CXX = g++ +RC = windres +EXE_BASE = cygterm.exe +UNAME_A = $(shell uname -a) + + +ifneq (,$(findstring CYGWIN, "$(UNAME_A)")) +ifneq (,$(findstring x86_64, "$(UNAME_A)")) +ifneq (,$(findstring x86_64, $(RC))) +# x86_64-pc-cygwin-windres is not exists +# use windres, when x86_64 env +override RC= windres +endif +else +ifneq (,$(findstring i686, $(RC))) +# i686-pc-cygwin-windres is not exsit +# use windres, when i686 env +override RC= windres +endif +endif +else +# msys2 +EXE_BASE = msys2term.exe +endif + +CFLAGS = -D_GNU_SOURCE -O2 -fno-exceptions -DUNICODE -D_UNICODE -MMD +#CFLAGS = -D_GNU_SOURCE -O2 -fno-exceptions +CXXFLAGS = $(CFLAGS) +LDFLAGS = -mwindows + +SRC = \ + cygterm.cpp \ + cygterm_cfg.cpp \ + sub.cpp +H = \ + cygterm_cfg.h \ + sub.h + +#BINARY_DIR = cygterm_x86_64 + +ifeq (,$(BINARY_DIR)) +# output to current dir +EXE = $(EXE_BASE) +OBJ = $(SRC:.cpp=.o) +RES = cygterm.res +else +# output to $(BINARY_DIR) +EXE = $(BINARY_DIR)/$(EXE_BASE) +OBJ = $(addprefix $(BINARY_DIR)/,$(SRC:.cpp=.o)) +RES = $(BINARY_DIR)/cygterm.res +endif +SRC_RC = cygterm.rc +DEP = $(OBJ:.o=.d) + +ICO = cygterm.ico +CFG = cygterm.cfg +ARCHIVE = cygterm+.tar.gz + +.PHONY: all clean install uninstall archive +.PHONY: cygterm+-x86_64 cygterm+-i686 +.PHONY: cygterm+-x86_64-clean cygterm+-i686-clean +.PHONY: msys2term msys2term-clean + +all : $(EXE) + +-include $(DEP) + +archive : $(ARCHIVE) + +$(EXE) : $(OBJ) $(RES) + $(CC) $(CFLAGS) $(LDFLAGS) -o $@ $^ -lole32 + strip $@ + +$(RES): $(SRC_RC) $(ICO) + @mkdir -p $(dir $@) + $(RC) -O coff -o $@ $(SRC_RC) + +$(SRC_RC): + echo 'icon ICON $(ICO)' > $(SRC_RC) + +clean : + rm -f $(EXE) $(SRC_RC) $(RES) $(ARCHIVE) + rm -f $(DEP) + rm -f $(OBJ) *.o *.obj + rm -f $(ARCHIVE) +ifneq (,$(BINARY_DIR)) + rm -rf $(BINARY_DIR) +endif + +install : $(EXE) + @ install -v $(EXE) $(BINDIR)/$(EXE) + @ if [ ! -f $(BINDIR)/$(CFG) ]; then \ + install -v $(CFG) $(BINDIR)/$(CFG) \ + ; fi + +uninstall : + rm -f $(BINDIR)/$(EXE) + rm -f $(BINDIR)/$(CFG) + +$(ARCHIVE) : $(SRC) $(H) $(ICO) $(CFG) COPYING README README-j Makefile CMakeLists.txt + rm -f $(ARCHIVE) + rm -rf $(ARCHIVE:.tar.gz=)/ + mkdir $(ARCHIVE:.tar.gz=) + cp $^ $(ARCHIVE:.tar.gz=)/ + tar cf $(ARCHIVE:.gz=) $(ARCHIVE:.tar.gz=) + gzip $(ARCHIVE:.gz=) + rm -rf $(ARCHIVE:.tar.gz=)/ + +cygterm.o: + ifeq (0, $(shell nm /usr/lib/crt0.o | grep -c WinMainCRTStartup)) + $(CXX) $(CXXFLAGS) -DNO_WIN_MAIN cygterm.cpp -c -o $@ + else + $(CXX) $(CXXFLAGS) cygterm.cpp -c -o $@ + endif + +# call sub make +cygterm+-x86_64: + make CC=x86_64-pc-cygwin-gcc CXX=x86_64-pc-cygwin-g++ RC=x86_64-pc-cygwin-windres EXE_BASE=cygterm.exe BINARY_DIR=cygterm+-x86_64 all + +cygterm+-x86_64-clean: + make BINARY_DIR=cygterm+-x86_64 clean + +cygterm+-i686: + make CC=i686-pc-cygwin-gcc CXX=i686-pc-cygwin-g++ RC=i686-pc-cygwin-windres EXE_BASE=cygterm.exe BINARY_DIR=cygterm+-i686 all + +cygterm+-i686-clean: + make BINARY_DIR=cygterm+-i686 clean + +msys2term: + make BINARY_DIR=msys2term all + +msys2term-clean: + make BINARY_DIR=msys2term clean + +$(BINARY_DIR)/%.o: %.cpp + @mkdir -p $(BINARY_DIR) + $(CXX) $(CXXFLAGS) -c $< -o $@ diff --git a/cygterm/README b/cygwin/cygterm/README similarity index 91% rename from cygterm/README rename to cygwin/cygterm/README index 632a78880..53eb17faa 100644 --- a/cygterm/README +++ b/cygwin/cygterm/README @@ -1,447 +1,470 @@ - - CygTerm+ - yet another Cygwin console - - Using Cygwin with a terminal emulator. - - (C) 2006-2016 TeraTerm Project - https://ttssh2.osdn.jp/ - - Based on CygTerm by Original developer: - Copyright (C) 2000-2006 NSym - - nsym@dd.iij4u.or.jp - - (English) https://googledrive.com/host/0B1s-dM6d6yC4fmhEZ3c0VTNFWEFtV3daUlRGQmFHVnBmVHRybUNnUVliNWktNDRlZ2NnZTQ/index-e.html - - (Japanese) https://googledrive.com/host/0B1s-dM6d6yC4fmhEZ3c0VTNFWEFtV3daUlRGQmFHVnBmVHRybUNnUVliNWktNDRlZ2NnZTQ/index.html - - -// P R E F A C E // - - This is an experiment trying to substitute a terminal emulator for the - DOS window as Cygwin console. However, assume that it is carried out - without the mechanism of remote login. In other words, it doesn't use - `inetd', `in.telnetd' or `login'. - -// I D E A // - - Invoking a terminal emulator and Cygwin shell, and relaying their I/O. - One simple solution is just to implement a program to do this. - -// S P E C I F I C A T I O N // - - 1. When this program is run, a terminal emulator starts, and a shell - prompt appears there, it can be used for Cygwin console. - - 2. The terminal emulator and the shell have to be selectable. - - 3. Screen control of the shell side has to work correctly and follow - window resizing of the terminal emulator. - -// D E S I G N // - - Details of cygterm.exe - - [1] Prepare a listener socket to wait for a TELNET connection. - Find out an unused TCP port number to assign to the socket from a - specified range. - - [2] Invoke a terminal emulator in another thread. - Then specify IP address `127.0.0.1' and the port number [1] in the - command line arguments. - - [3] Accept the connection from the terminal emulator. - Refuse it except a connection from `127.0.0.1' in security. - - [4] Do fork(), and in the child process, invoke a shell under PTY - (pseudo terminal) slave side. - - [5] Relay I/O between the TELNET connection socket [3] and the PTY - master side of [4]. - - Support for TELNET protocol (options negotiation) - - Receive the notification of terminal-type from a terminal emulator, - and apply it to the environment variable TERM on a shell. - - Receive the notification of terminal-size from a terminal emulator, - and apply it to window size of PTY. - - [Ref. RFC854 TELNET PROTOCOL SPECIFICATION] - - cygterm.exe is implemented as an window-less Win32 application. - -// S O U R C E // - - README - this file - README-j - original README in Japanese - COPYING - GNU General Pulic License (GPL) Version 2 - Makefile - MAKEFILE for installation - cygterm.cc - program source code - cygterm.cfg - configuration file - - * CygTerm is a free software distributed under the terms of the GNU - General Public License (GPL) published by Free Software Foundation. - See COPYING. (https://www.gnu.org/licenses/old-licenses/gpl-2.0.html) - - Note: Any program including non-GPL program can invoke the CygTerm - executable (cygterm.exe) and communicate with it. - -// I N S T A L L // - - Do `make install' under Cygwin. - - * Be sure to specify the install directory by BINDIR in Makefile - in advance. cygterm.exe and cygterm.cfg are installed in BINDIR. - cygterm.cfg is not overwritten. - -// C O N F I G U R A T I O N // - - cygterm.cfg is a configuration file. This includes definitions for the - command lines of a terminal emulator and a shell, and several parameters. - cygterm.cfg is loaded from the same directory cygterm.exe exists in. - - An example of cygterm.cfg - +----------------------------------------------------------------------- - | TERM = C:\program files\ttermpro\ttermpro.exe %s %d /KR=SJIS /KT=SJIS - | TERM_TYPE = vt100 - | PORT_START = 20000 - | PORT_RANGE = 40 - | SHELL = /bin/bash - | ENV_1 = MAKE_MODE=unix - | ENV_2 = HOME=/home - | : : - - TERM - ---- - This is the command line to execute a terminal emulaitor. - Specify the full path to the command if it isn't in Windows search path. - This needs to be described `%s' and `%d' for the host and port number. - - TERM_TYPE - --------- - This terminal type is adopted when the terminal emulator did not give - a terminal type. (default: vt100) Then this value is set to the - environment variable TERM on a shell. - - PORT_START - ---------- - This is the minimum TCP port number allowed for use. (default: 20000) - - PORT_RANGE - ---------- - This is the maximum number of TCP ports allowed for use. (default: 40) - - cygterm.exe looks for an unused port number between PORT_START and - PORT_START+PORT_RANGE, and therefore can be run concurrently as many - as this number. - - SHELL - ----- - This is the command line to execute a shell in Cygwin side (normally - /bin/bash). (default: get from /etc/passwd) - Specify the full path to the shell or keyword "AUTO". - - LOGIN_SHELL - ----------- - If this parameter is set to yes, shell is invoked as a login shell. - (default: no) - - HOME_CHDIR - ---------- - If this parameter is set to yes, current directory is changed to home - directory before invoke a shell. (default: no) - - SOCKET_TIMEOUT - -------------- - Specify the timeout of socket for waiting telnet connection from - terminal emulator. (default: 5secs) - - SSH_AGENT_PROXY - --------------- - If this parameter is set to yes, cygterm provides ssh-agent proxy. - (default: no) - - ENV_X - ----- - This is the environment variable to be set when starting the shell. - It should be of the form `name=value' (like putenv). It is possible to - give as many environment variables as needed by beginning with "ENV_". - -// U S A G E // - - Command Line Options - - cygterm.exe [-t 'terminal-emulator'] [-p port-number] [-dumb] - [-s 'shell'] [-ls | -nols] [-cd | -nocd] [-a | -A] - [-v 'env-var' ...] [-d 'directory] [-o 'option'] - - -t 'terminal-emulator' - Specify the command line of a terminal emulator to execute. - This format is the same as TERM in the configuration file. - The command line should be enclosed in quotes to include spaces. - - -p port-number - Instead of executing a terminal emulator, try connection to this - port number of localhost. It is considered another program uses - `-p' option to use Cygwin via cygterm.exe - - -dumb - Suppress the TELNET options negotiation. And ignore any TELNET - commands sent from terminal side. The environment variable - TERM is set to `dumb' on the shell side. - - -s 'shell' - Specify the command line of a shell on Cygwin to execute. - This format is the same as SHELL in the configuration file. - The command line should be enclosed in quotes to include spaces. - Any command can be spedicied even if a non-shell command. - - -ls - Execute a shell as a login shell. - - -nols - Execute a shell as a normal (not login) shell. - - -cd - The current directory is moved to the user home directory and - the shell is invoked. - - -nocd - The shell is invoked without changing the current directory. - - -A - Enable ssh-agent forwarding support. - - -a - Disable ssh-agent forwarding support. - - -v 'env-var' - Specify the environment variable to be set when starting the shell. - This format is the same as ENV_X in the configuration file. - The expression should be enclosed in quotes to include spaces. - One or more `-v' options are available. - - -d 'directory' - The current directory is moved to the specified directory and - the shell is invoked. - - -o 'parameter' - Additional parameter for terminal-emulator. - - The terminal emulator or connection port number, and the shell on Cygwin, - these need to be specified at least. If these are given on the command - line, cygterm.exe can be run without configuration file cygterm.cfg. - - cygterm.exe is an Win32 application which uses cygwin1.dll. It can be run - from Cygwin command line or a shortcut on Windows. - - * It is necessary the Windows environment variable PATH includes a - directory path of cygwin1.dll (normally Cygwin-root\bin) to be run - from Windows. - -// N O T E S // - - * Attention in Tera Term - - If your terminal emulator is Tera Term be careful not to save [Setup] - [Save setup] in the situation that it was started by cygterm.exe. - Otherwise telnet port number of TCP/IP is saved but 23 you will be - confused by connection failure when you normally run Tera Term to do - telnet. In that case it will be recovered by saving the setting - with specifying TCP/IP Port# 23. - -// T E S T E D O N // - - As of 2010-Oct, CygTerm+ has been tested in the following environments. - - WindowsXP SP3 + Cygwin 1.5.25-15 - WindowsXP SP3 + Cygwin 1.7.7 - - Terminal emulator: - Tera Term Pro 2.3 - Tera Term 4.67 - PuTTY 0.60 - Shell: - bash 3.2.51 - zsh 4.3.10 - -// C H A N G E S // -v1.07_28 2016/11/26 (by maya) - * Changed the icon image. - -v1.07_28 2016/02/17 (by doda) - * Add debug mode. - -v1.07_27 2016/02/09 (by doda) - * The directory selection by -d option is prior to -cd option - (HOME_CHDIR=y). - * When -d option is specified by using -ls option(LOGIN_SHELL=y), - CHERE_INVOKING=y is set. - -v1.07_26 2015/12/14 (by doda) - * Add multiple connections support for the ssh-agent proxy. - -v1.07_25 2015/02/21 (by doda) - * Bug fix: The TERM environment variable can not be configured. - -v1.07_24 2013/08/15 (by maya) - * Support for 64bit Cygwin. (cyglaunch) - -v1.07_23 2011/04/18 (by doda) - * Display error message when chdir() was failed. - -v1.07_22 2011/03/03 (by maya) - * Delete mutex object for running check by installer. - -v1.07_21 2011/02/28 (by maya) - * Add mutex object for running check by installer. - -v1.07_20 2010/10/20 (by doda) - * Directory change timing with '-d' option is delayed. (security fix) - -v1.07_19 2010/01/28 (by doda) - * Accept keyword "AUTO" with '-s' option. - -v1.07_18 2010/01/19 (by doda) - * Delete doubule quote character from '-d' option's parameter. - -v1.07_17 2009/06/16 (by doda) - * Added TELNET SGA/ECHO negotiation. - -v1.07_16 2008/11/21 (by doda) - * The option that enables ssh-agent proxy support is changed from '-a' - to '-A'. - * Added '-a' option that disables ssh-agent proxy support. - -v1.07_15 2008/11/01 (by doda) - * Added ssh-agent proxy support. - -v1.07_14 2007/12/17 (by doda) - * Added '-o' option that is specifies the additional parameters for - terminal-emulator. - -v1.07_13 2007/08/03 (by maya) - * Added '-d' option that is specifies the start directory. - -v1.07_12 2007/06/10 (by doda) - * Add 'SOCKET_TIMEOUT' entry which the timeout value of socket for - waiting telnet connection in cygterm.cfg file. - -v1.07_11 2007/01/31 (import from cygterm v1.07) - * Avoid WinMainCRTStartup() redefinition error with gcc 3.4. - * Give an output gap for keyboard interrupt. - -v1.06_11 2006/09/29 (by maya) - * Stopped using HOME from environment variable and /etc/passwd. - CygTerm passes HOME which is set by Cygwin. See also /etc/profile - * Changed the priority of config files. - command line arguments > ~/.cygtermrc > /etc/cygterm.conf - > cygterm.cfg > /etc/passwd - -v1.06_10 2006/09/28 (by doda) - * Use getlogin() instead of environment variable USERNAME to get - user name. - -v1.06_09 2006/09/25 (by doda) - * Get shell information from /etc/passwd if SHELL parameter is not - specified. - -v1.06_08 2006/08/30 (by maya) - * Changed the priority of config files. cygterm.cfg is top priority - config file. - -v1.06_07 2006/08/19 (by maya) - * Use `HOME' environment variable for changing home directory if the - variable will be set. - -v1.06_06 2006/08/18 (by doda) - * Limit a parameter length of both '-s' and '-t' option. - -v1.06_05 2006/08/18 (by maya) - * Create mutex object for running check by installer. - -v1.06_04 2006/08/15 (by doda) - * Add 'LOGIN_SHELL' entry which the shell is invoked as the login shell - in cygterm.cfg file. - - LOGIN_SHELL: yes | no - -v1.06_03 2006/08/15 (by doda) - * Add 'HOME_CHDIR' entry which home directory is changed in cygterm.cfg - file. - - HOME_CHDIR: yes | no - -v1.06_02 2006/02/09 (by babydamons@yahoo.co.jp) - * Generated CygTerm's ICON by "DotWork 2.50". - "DotWork 2.50" is available at http://www5a.biglobe.ne.jp/~suuta/. - Special Thanks to "suuta at hamal dot freemal dot ne dot jp" - - * Makefile was changed, "clean" target was changed to don't remove - cygterm.ico. - -v1.06_01 2006/02/08 (by babydamons@yahoo.co.jp) - * The following configuration file reading was supported: - + /etc/cygterm.conf - + ~/.cygtermrc - - * Shell is invoked with user's home-directory. - - * Get account configuration from /etc/passwd by getpwnam(3), - getting account name from USERNAME environment by getenv(3). - - * Makefile was changed, default build is with icon executable. - -v1.06 2004/01/24 - * The following command line options were added: - -t 'terminal-emulator' (specifies the terminal emulator) - -p port-number (specifies the port# to connect) - -dumb (specifies dumb terminal mode) - -s 'shell' (specifies the shell) - -v 'env-var' (specifies environment variables) - - * Fixed to fail in `make install' if BINDIR was not found. - - * cygterm.cc and README.txt were changed to English version. - -v1.05 2003/01/14 - * Fixed to transmit Ctrl+SPACE (NUL). - The NUL character was not able to be transmitted even if Ctrl+SPACE - was typed, because it was ignored simply as an way to handle the - newline CR+NUL. - -v1.04 2002/12/08 - * Changed to display error messages for failure to execute a terminal - emulator or a shell. - - * Makefile was changed. - + do not overwrite cygterm.cfg when `make install'. - + add the gcc option -fno-exceptions against the GCC-3 link error. - -v1.03 2002/07/24 - * Fixed to convert terminal type into lower-case when cygterm received - it from a terminal emulator. Because some upper-case values such as - `ANSI' `VT100' of the environment variable TERM might not be found - in terminfo depending on the kind of terminal emulator. - (Windows 2000 telnet.exe, etc) - -v1.02 2002/07/22 - * Fix to be able to start a terminal emulator even if it was a console - application. (Windows 2000 telnet.exe, etc) - There was a mistake in calling CreateProcess(). - - * Fixed to suppress duplicate newline on a shell by canceling LF when - a terminal emulator sent CR+LF. (Windows 98 telnet.exe, etc) - - * Embedded the version number in cygterm.exe executable code. - How to check: $ strings cygterm.exe | grep version - -v1.01 2002/07/19 - * Fixed that cygterm did not work with zsh or tcsh. - Input was blocked when zsh or tcsh started, because the approach to - open the pseudo terminal was not good. - -v1.00 2000/12/17 - * The initial version was released. - + + CygTerm+ - yet another Cygwin console + + Using Cygwin with a terminal emulator. + + (C) 2006- TeraTerm Project + https://teratermproject.github.io/ + + Based on CygTerm by Original developer: + Copyright (C) 2000-2006 NSym + + nsym@dd.iij4u.or.jp + + +// P R E F A C E // + + This is an experiment trying to substitute a terminal emulator for the + DOS window as Cygwin console. However, assume that it is carried out + without the mechanism of remote login. In other words, it doesn't use + `inetd', `in.telnetd' or `login'. + +// I D E A // + + Invoking a terminal emulator and Cygwin shell, and relaying their I/O. + One simple solution is just to implement a program to do this. + +// S P E C I F I C A T I O N // + + 1. When this program is run, a terminal emulator starts, and a shell + prompt appears there, it can be used for Cygwin console. + + 2. The terminal emulator and the shell have to be selectable. + + 3. Screen control of the shell side has to work correctly and follow + window resizing of the terminal emulator. + +// D E S I G N // + + Details of cygterm.exe + + [1] Prepare a listener socket to wait for a TELNET connection. + Find out an unused TCP port number to assign to the socket from a + specified range. + + [2] Invoke a terminal emulator in another thread. + Then specify IP address `127.0.0.1' and the port number [1] in the + command line arguments. + + [3] Accept the connection from the terminal emulator. + Refuse it except a connection from `127.0.0.1' in security. + + [4] Do fork(), and in the child process, invoke a shell under PTY + (pseudo terminal) slave side. + + [5] Relay I/O between the TELNET connection socket [3] and the PTY + master side of [4]. + + Support for TELNET protocol (options negotiation) + + Receive the notification of terminal-type from a terminal emulator, + and apply it to the environment variable TERM on a shell. + + Receive the notification of terminal-size from a terminal emulator, + and apply it to window size of PTY. + + [Ref. RFC854 TELNET PROTOCOL SPECIFICATION] + + cygterm.exe is implemented as an window-less Win32 application. + +// S O U R C E // + + README - this file + README-j - original README in Japanese + COPYING - GNU General Pulic License (GPL) Version 2 + Makefile - MAKEFILE for installation + cygterm.cc - program source code + cygterm.cfg - configuration file + + * CygTerm is a free software distributed under the terms of the GNU + General Public License (GPL) published by Free Software Foundation. + See COPYING. (https://www.gnu.org/licenses/old-licenses/gpl-2.0.html) + + Note: Any program including non-GPL program can invoke the CygTerm + executable (cygterm.exe) and communicate with it. + +// I N S T A L L // + + Do `make install' under Cygwin. + + * Be sure to specify the install directory by BINDIR in Makefile + in advance. cygterm.exe and cygterm.cfg are installed in BINDIR. + cygterm.cfg is not overwritten. + +// normal mode / portable mode // + + If portable.ini is exists in the same folder, cygterm.exe is + portable mode. Otherwise cygterm.exe is normal mode. + +// C O N F I G U R A T I O N // + + cygterm.cfg is a configuration file. This includes definitions for the + command lines of a terminal emulator and a shell, and several parameters. + + cygterm.cfg is loaded from the same directory cygterm.exe exists in. + + cygterm.cfg reading order: + + - cygterm.cfg in the same folder as cygterm.exe + - /etc/cygterm.conf + - $APPDATA/teraterm5/cygterm.cfg + - ~/.cygtermrc + + $SHELL and $USER are set before reading cygterm.cfg. + Overwritten with the value of cygterm.cfg readed later. + Then it will be overwritten by command line options. + + When portable mode, cygterm reads next only one file. + + - $APPDATA/teraterm5/cygterm.cfg + + An example of cygterm.cfg + +----------------------------------------------------------------------- + | TERM = C:\program files\ttermpro\ttermpro.exe %s %d /KR=SJIS /KT=SJIS + | TERM_TYPE = vt100 + | PORT_START = 20000 + | PORT_RANGE = 40 + | SHELL = /bin/bash + + The character encoding of cygterm.cfg is utf-8 + (In Cygwin 1.5, The character encoding of cygterm.cfg will be ACP) + + TERM + ---- + This is the command line to execute a terminal emulaitor. + Specify the full path to the command if it isn't in Windows search path. + This needs to be described `%s' and `%d' for the host and port number. + + TERM_TYPE + --------- + This terminal type is adopted when the terminal emulator did not give + a terminal type. (default: vt100) Then this value is set to the + environment variable TERM on a shell. + + PORT_START + ---------- + This is the minimum TCP port number allowed for use. (default: 20000) + + PORT_RANGE + ---------- + This is the maximum number of TCP ports allowed for use. (default: 40) + + cygterm.exe looks for an unused port number between PORT_START and + PORT_START+PORT_RANGE, and therefore can be run concurrently as many + as this number. + + SHELL + ----- + This is the command line to execute a shell in Cygwin side (normally + /bin/bash). (default: get from /etc/passwd) + Specify the full path to the shell or keyword "AUTO". + + LOGIN_SHELL + ----------- + If this parameter is set to yes, shell is invoked as a login shell. + (default: no) + + HOME_CHDIR + ---------- + If this parameter is set to yes, current directory is changed to home + directory before invoke a shell. (default: no) + + SOCKET_TIMEOUT + -------------- + Specify the timeout of socket for waiting telnet connection from + terminal emulator. (default: 5secs) + + SSH_AGENT_PROXY + --------------- + If this parameter is set to yes, cygterm provides ssh-agent proxy. + (default: no) + + ENV_X + ----- + This is the environment variable to be set when starting the shell. + It should be of the form `name=value' (like putenv). It is possible to + give as many environment variables as needed by beginning with "ENV_". + +// U S A G E // + + Command Line Options + + cygterm.exe [-t 'terminal-emulator'] [-p port-number] [-dumb] + [-s 'shell'] [-ls | -nols] [-cd | -nocd] [-a | -A] + [-v 'env-var' ...] [-d 'directory] [-o 'option'] + + -t 'terminal-emulator' + Specify the command line of a terminal emulator to execute. + This format is the same as TERM in the configuration file. + The command line should be enclosed in quotes to include spaces. + + -p port-number + Instead of executing a terminal emulator, try connection to this + port number of localhost. It is considered another program uses + `-p' option to use Cygwin via cygterm.exe + + -dumb + Suppress the TELNET options negotiation. And ignore any TELNET + commands sent from terminal side. The environment variable + TERM is set to `dumb' on the shell side. + + -s 'shell' + Specify the command line of a shell on Cygwin to execute. + This format is the same as SHELL in the configuration file. + The command line should be enclosed in quotes to include spaces. + Any command can be spedicied even if a non-shell command. + + -ls + Execute a shell as a login shell. + + -nols + Execute a shell as a normal (not login) shell. + + -cd + The current directory is moved to the user home directory and + the shell is invoked. + + -nocd + The shell is invoked without changing the current directory. + + -A + Enable ssh-agent forwarding support. + + -a + Disable ssh-agent forwarding support. + + -v 'env-var' + Specify the environment variable to be set when starting the shell. + This format is the same as ENV_X in the configuration file. + The expression should be enclosed in quotes to include spaces. + One or more `-v' options are available. + + -d 'directory' + The current directory is moved to the specified directory and + the shell is invoked. + + -o 'parameter' + Additional parameter for terminal-emulator. + + The terminal emulator or connection port number, and the shell on Cygwin, + these need to be specified at least. If these are given on the command + line, cygterm.exe can be run without configuration file cygterm.cfg. + + cygterm.exe is an Win32 application which uses cygwin1.dll. It can be run + from Cygwin command line or a shortcut on Windows. + + * It is necessary the Windows environment variable PATH includes a + directory path of cygwin1.dll (normally Cygwin-root\bin) to be run + from Windows. + +// N O T E S // + + * Attention in Tera Term + + If your terminal emulator is Tera Term be careful not to save [Setup] + [Save setup] in the situation that it was started by cygterm.exe. + Otherwise telnet port number of TCP/IP is saved but 23 you will be + confused by connection failure when you normally run Tera Term to do + telnet. In that case it will be recovered by saving the setting + with specifying TCP/IP Port# 23. + +// T E S T E D O N // + + As of 2010-Oct, CygTerm+ has been tested in the following environments. + + WindowsXP SP3 + Cygwin 1.5.25-15 + WindowsXP SP3 + Cygwin 1.7.7 + + Terminal emulator: + Tera Term Pro 2.3 + Tera Term 4.67 + PuTTY 0.60 + Shell: + bash 3.2.51 + zsh 4.3.10 + +// C H A N G E S // +v1.07_30 2022/02/06 + * Add cfg file to read + $APPDATA/teraterm5/cygterm.cfg + * Modify for Unicode + * Add portable mode + +v1.07_29 2016/11/26 (by maya) + * Changed the icon image. + +v1.07_28 2016/02/17 (by doda) + * Add debug mode. + +v1.07_27 2016/02/09 (by doda) + * The directory selection by -d option is prior to -cd option + (HOME_CHDIR=y). + * When -d option is specified by using -ls option(LOGIN_SHELL=y), + CHERE_INVOKING=y is set. + +v1.07_26 2015/12/14 (by doda) + * Add multiple connections support for the ssh-agent proxy. + +v1.07_25 2015/02/21 (by doda) + * Bug fix: The TERM environment variable can not be configured. + +v1.07_24 2013/08/15 (by maya) + * Support for 64bit Cygwin. (cyglaunch) + +v1.07_23 2011/04/18 (by doda) + * Display error message when chdir() was failed. + +v1.07_22 2011/03/03 (by maya) + * Delete mutex object for running check by installer. + +v1.07_21 2011/02/28 (by maya) + * Add mutex object for running check by installer. + +v1.07_20 2010/10/20 (by doda) + * Directory change timing with '-d' option is delayed. (security fix) + +v1.07_19 2010/01/28 (by doda) + * Accept keyword "AUTO" with '-s' option. + +v1.07_18 2010/01/19 (by doda) + * Delete doubule quote character from '-d' option's parameter. + +v1.07_17 2009/06/16 (by doda) + * Added TELNET SGA/ECHO negotiation. + +v1.07_16 2008/11/21 (by doda) + * The option that enables ssh-agent proxy support is changed from '-a' + to '-A'. + * Added '-a' option that disables ssh-agent proxy support. + +v1.07_15 2008/11/01 (by doda) + * Added ssh-agent proxy support. + +v1.07_14 2007/12/17 (by doda) + * Added '-o' option that is specifies the additional parameters for + terminal-emulator. + +v1.07_13 2007/08/03 (by maya) + * Added '-d' option that is specifies the start directory. + +v1.07_12 2007/06/10 (by doda) + * Add 'SOCKET_TIMEOUT' entry which the timeout value of socket for + waiting telnet connection in cygterm.cfg file. + +v1.07_11 2007/01/31 (import from cygterm v1.07) + * Avoid WinMainCRTStartup() redefinition error with gcc 3.4. + * Give an output gap for keyboard interrupt. + +v1.06_11 2006/09/29 (by maya) + * Stopped using HOME from environment variable and /etc/passwd. + CygTerm passes HOME which is set by Cygwin. See also /etc/profile + * Changed the priority of config files. + command line arguments > ~/.cygtermrc > /etc/cygterm.conf + > cygterm.cfg > /etc/passwd + +v1.06_10 2006/09/28 (by doda) + * Use getlogin() instead of environment variable USERNAME to get + user name. + +v1.06_09 2006/09/25 (by doda) + * Get shell information from /etc/passwd if SHELL parameter is not + specified. + +v1.06_08 2006/08/30 (by maya) + * Changed the priority of config files. cygterm.cfg is top priority + config file. + +v1.06_07 2006/08/19 (by maya) + * Use `HOME' environment variable for changing home directory if the + variable will be set. + +v1.06_06 2006/08/18 (by doda) + * Limit a parameter length of both '-s' and '-t' option. + +v1.06_05 2006/08/18 (by maya) + * Create mutex object for running check by installer. + +v1.06_04 2006/08/15 (by doda) + * Add 'LOGIN_SHELL' entry which the shell is invoked as the login shell + in cygterm.cfg file. + + LOGIN_SHELL: yes | no + +v1.06_03 2006/08/15 (by doda) + * Add 'HOME_CHDIR' entry which home directory is changed in cygterm.cfg + file. + + HOME_CHDIR: yes | no + +v1.06_02 2006/02/09 (by babydamons@yahoo.co.jp) + * Generated CygTerm's ICON by "DotWork 2.50". + "DotWork 2.50" is available at http://www5a.biglobe.ne.jp/~suuta/. + Special Thanks to "suuta at hamal dot freemal dot ne dot jp" + + * Makefile was changed, "clean" target was changed to don't remove + cygterm.ico. + +v1.06_01 2006/02/08 (by babydamons@yahoo.co.jp) + * The following configuration file reading was supported: + + /etc/cygterm.conf + + ~/.cygtermrc + + * Shell is invoked with user's home-directory. + + * Get account configuration from /etc/passwd by getpwnam(3), + getting account name from USERNAME environment by getenv(3). + + * Makefile was changed, default build is with icon executable. + +v1.06 2004/01/24 + * The following command line options were added: + -t 'terminal-emulator' (specifies the terminal emulator) + -p port-number (specifies the port# to connect) + -dumb (specifies dumb terminal mode) + -s 'shell' (specifies the shell) + -v 'env-var' (specifies environment variables) + + * Fixed to fail in `make install' if BINDIR was not found. + + * cygterm.cc and README.txt were changed to English version. + +v1.05 2003/01/14 + * Fixed to transmit Ctrl+SPACE (NUL). + The NUL character was not able to be transmitted even if Ctrl+SPACE + was typed, because it was ignored simply as an way to handle the + newline CR+NUL. + +v1.04 2002/12/08 + * Changed to display error messages for failure to execute a terminal + emulator or a shell. + + * Makefile was changed. + + do not overwrite cygterm.cfg when `make install'. + + add the gcc option -fno-exceptions against the GCC-3 link error. + +v1.03 2002/07/24 + * Fixed to convert terminal type into lower-case when cygterm received + it from a terminal emulator. Because some upper-case values such as + `ANSI' `VT100' of the environment variable TERM might not be found + in terminfo depending on the kind of terminal emulator. + (Windows 2000 telnet.exe, etc) + +v1.02 2002/07/22 + * Fix to be able to start a terminal emulator even if it was a console + application. (Windows 2000 telnet.exe, etc) + There was a mistake in calling CreateProcess(). + + * Fixed to suppress duplicate newline on a shell by canceling LF when + a terminal emulator sent CR+LF. (Windows 98 telnet.exe, etc) + + * Embedded the version number in cygterm.exe executable code. + How to check: $ strings cygterm.exe | grep version + +v1.01 2002/07/19 + * Fixed that cygterm did not work with zsh or tcsh. + Input was blocked when zsh or tcsh started, because the approach to + open the pseudo terminal was not good. + +v1.00 2000/12/17 + * The initial version was released. + diff --git a/cygwin/cygterm/README-j b/cygwin/cygterm/README-j new file mode 100644 index 000000000..320eb5f9c --- /dev/null +++ b/cygwin/cygterm/README-j @@ -0,0 +1,470 @@ + + CygTerm+ - yet another Cygwin console + + ^[~iEG~[^ Cygwin gB + + (C) 2006- TeraTerm Project + https://teratermproject.github.io/ + + Based on CygTerm by Original developer: + Copyright (C) 2000-2006 NSym + nsym@dd.iij4u.or.jp + + +// // + + CygwinR\[łDOS^[~iEG~[^ŒuւĂ݂悤A + Ƃ݂łB w[gOĈ݂𗘗pɁxƂ + OłB inetd Ƃ in.telnetd Ƃ login ͎gp܂B + +// l // + + ^[~iEG~[^CygwiñVFNA҂𒆌pB + svO΂悢B + +// d l // + + 1. ̃vOsƁA^[~iEG~[^オA + ɃVF̃vvgACygwinR\[ƂĎg邱ƁB + + 2. N^[~iEG~[^ƃVF͑I”\ł邱ƁB + + 3. VF̉ʐ䂪ɓ삵A^[~iEG~[^ + ʃTCYύXɂǐ邱ƁB + +// v // + + cygterm.exe ڍ + + [1] TELNETڑ҂󂯂郊Xi[\PbgpӂB + \PbgɊ蓖Ă関gp|[gԍ͎w͈͓ToB + + [2] ʃXbhŃ^[~iEG~[^NB + ̂ƂN IPAhX 127.0.0.1 [1]̃|[gԍw肷B + + [3] ^[~iEG~[^̐ڑ󂯓B + ZLeB[ 127.0.0.1 ȊO̐ڑ͋pB + + [4] fork()qvZXAPTY([[)X[uŃVFNB + + [5] [3] TELNETڑ\Pbg [4] PTY}X^[̓o͂nB + + TELNETvgRւ̑Ή (option negotiation) + + ^[~iEG~[^^[~i^Cv̒ʒm󂯁A + VF TERM ‹ϐɃZbgB + + ^[~iEG~[^^[~iTCY̒ʒm󂯁A + PTỸEBhETCY𓯃TCYɕύXB + + Go Ahead gȂ̋‚^[~iG~[^ɗvB + + ^[~iG~[^ Go Ahead gpȂ悤ɗvB + + ^[~iG~[^̑MeGR[obN鋖‚vB + + [Q: RFC854 TELNET PROTOCOL SPECIFICATION] + + cygterm.exe ̓EBhEȂ Win32AvƂĎB + +// \ [ X // + + README-j - ̃t@C + README - README-jp + COPYING - GNU General Public License (GPL) Version 2 + Makefile - CNt@C + cygterm.cc - \[XR[h + cygterm.cfg - ݒt@C + + Free Software Foundation s GNU General Public License (GPL) + ɏt[\tgEFAƂĔzz܂B + COPYING QƁB(https://www.gnu.org/licenses/old-licenses/gpl-2.0.html) + + ⑫: vO CygTerms`(cygterm.exe)NʐM + gp邱Ƃ́AꂪGPLvȌꍇł‚܂B + +// C X g [ // + + Cygwin‹ make install s܂B + + CXg[fBNg Makefile BINDIR Őݒ肵Ă܂B + BINDIR cygterm.exe cygterm.cfg CXg[܂B + cygterm.cfg ͏㏑܂B + +// 샂[h // + + cygterm.exe ƓtH_ portable.ini ꍇ|[^uł + ē삵܂Bportable.ini Ȃꍇ͒ʏłƂē삵܂B + +// t @ C // + + cygterm.cfg ͐ݒt@CłB gp[G~[^̃R}hC + NVF̃R}hCݒ肵܂B + + cygterm.cfg ͎̏œǂ݂܂B + + - exeƓtH_ cygterm.cfg + - /etc/cygterm.conf + - $APPDATA/teraterm5/cygterm.cfg + - ~/.cygtermrc + + $SHELL $USER ́Aݒt@CǂݍݑOɐݒ肳܂B + ォǂݍ񂾒lŏ㏑܂B + ݒt@Cǂݍ񂾂̂R}hCIvVŎwŏ㏑܂B + + |[^uł̂Ƃ́Ãt@Ĉ݂ǂݍ݂܂B + + - $APPDATA/teraterm5/cygterm.cfg + + cygterm.cfg ̗ + +----------------------------------------------------------------------- + | TERM = C:\program files\ttermpro\ttermpro.exe %s %d /KR=SJIS /KT=SJIS + | TERM_TYPE = vt100 + | PORT_START = 20000 + | PORT_RANGE = 40 + | SHELL = /bin/bash + + ݒt@C̕R[hUTF-8łB + (Cygwin 1.5‹ł Shift_JIS łB) + + TERM + ---- + ^[~iEG~[^̋NR}hCłB + R}h Windows‹ŃpXʂĂȂ΃tpXŏ܂B + zXgŵƂ %s ƂA|[gŵƂ %d Ƃ܂B + + TERM_TYPE + --------- + ^[~iEG~[^^[~i^Cv^ĂȂ + ꍇɍ̗p^[~i^CvłB (ftHg:vt100) + VFA‹ϐ TERM ɃZbg܂B + + PORT_START + ---------- + gn߂ (gĂ悢ŏ) |[gԍłB (ftHg:20000) + + PORT_RANGE + ---------- + gĂ悢|[gԍ̌łB (ftHg:40) + + PORT_START ` PORT_START+PORT_RANGE ͈̔͂ŋ󂫃|[gT܂B + ̐sł邱ƂɂȂ܂B + + SHELL + ----- + CygwinVF (ʏ /bin/bash) ̋NR}hCłB + (ftHg: /etc/passwd̏gp) + R}h̃tpXA"AUTO"w肵܂B + + LOGIN_SHELL + ----------- + VFOCVFƂċN邩ǂw肵܂B + ftHg͖łB + + ʓIȃVFł̓OCVFƂċNƁA.profile + .loginȂǂ̃OĈݓǂݍރX^[gAbvt@Cs + ܂B + ̃t@Cł́AʏAȉ̂悤Ȏs܂B + EPATHUSER̊e‹ϐ̐ݒs + E[̐ݒK؂ɍs + EJgfBNg[Ũz[fBNgɕύXB + + ꕔ̃VF(tclshȂ)VFȊÕvONꍇ + ʂ܂B + + HOME_CHDIR + ---------- + patch level 01 Ɋ܂܂"z[fBNgւ̈ړ"@\邩 + ǂw肵܂BftHg͖łB + + SOCKET_TIMEOUT + -------------- + ^[~iEG~[^telnetڑ҂󂯂\Pbg + ^CAEg܂ł̎Ԃw肵܂B (ftHg: 5b) + + SSH_AGENT_PROXY + --------------- + sshF؃G[WFg]@\񋟂邩w肵܂B + LɂƁAOpenSSHsshF؃G[WFgɑΉvOA + CygTerm+ʂPageantɃANZXł悤ɂȂ܂B + ftHg͖łB + + ENV_X + ----- + VFNɐݒ肵ËϐłBuϐ=lv̌` + (putenv`) ŋLq܂B ENV_ Ŏn߂΂‚łLqł܂B + + +// N @ // + + R}hCEIvV + + cygterm.exe [-t 'terminal-emulator'] [-p port-number] [-dumb] + [-s 'shell'] [-ls | -nols] [-cd | -nocd] [-a | -A] + [-v 'env-var' ...] [-d 'directory'] [-o 'parameter'] + + -t 'terminal-emulator' + ^[~iEG~[^w肵܂B + w`͐ݒt@C TERM ƓłB + 󔒕܂ޏꍇ͕KNH[gň݂͂܂B + + -p port-number + ^[~iEG~[^N̂ł͂ȂA + [JzXĝ̃|[gԍւ̐ڑ݂܂B + ̃AvP[VEvO -p IvVgāA + cygterm.exe oR Cygwin𗘗pAl܂B + + -dumb + TELNETIvVElSVG[Vs܂B + TELNETR}hMĂĂ܂B + VF̊‹ϐ TERM 'dumb' ƂȂ܂B + + -s 'shell' + CygwiñVFw肵܂B + w`͐ݒt@C SHELL ƓłB + 󔒕܂ޏꍇ͕KNH[gň݂͂܂B + KVFR}hłKv͂܂B + + -ls + VFOCVFƂċN܂B + + -nols + VF(OCVFł͂Ȃ)ʏ̃VFƂċN܂B + + -cd + JgfBNgz[fBNgɈړĂ + VFN܂B + + -nocd + JgfBNgړɃVFN܂B + + -A + sshF؃G[WFg]@\Lɂ܂B + + -a + sshF؃G[WFg]@\𖳌ɂ܂B + + -v 'env-var' + VFNɐݒ肵Ëϐw肵܂B + w`͐ݒt@C ENV_X ƓłB + 󔒕܂ޏꍇ͕KNH[gň݂͂܂B + -v IvV͂‚łwł܂B + + -d 'directory' + JgfBNgw肳ꂽfBNgɈړĂ + VFN܂B + + -o 'parameter' + ^[~iEG~[^ւ̒lj̃p[^w肵܂B + TERMςɒlj̃p[^w肵Ɏg܂B + + ^[~iEG~[^͐ڑ|[gԍA CygwinVF + w肪ŒKvƂȂ܂B 炪R}hCEIvVɂ + ^Ȃ΁Aݒt@C cygterm.cfg Ăsł܂B + + cygterm.exe cygwin1.dll 𗘗p Win32AvP[VłB + Cygwinォs邱ƂAWindows̃V[gJbgs邱Ƃ + ł܂B + + Windowsォsɂ cygwin1.dll ̃fBNgpX + Windows‹ϐ PATH ɒljĂKv܂B + (ʏ Cygwin[gfBNg\bin) + +// // + + * Tera Termgp̒ + + ^[~iEG~[^ Tera Term ̏ꍇAcygterm.exe Nꂽ + ԂŐݒۑ [Setup][Save setup] sȂ悤ӂĂB + TCP/IPݒ Telnet|[gԍ 23 ȊOŕۑAʏ TelnetړI + sɐڑłAQĂ邱ƂɂȂĂ܂܂B + TCP/IP Port# 23 w肵ĐݒۑΌɖ߂܂B + +// X // +v1.07_30 2022/02/06 + * ǂݍސݒt@Clj + $APPDATA/teraterm5/cygterm.cfg + * UnicodeΉ + * |[^uőΉ + +v1.07_29 2016/11/26 (by maya) + * ACRύXB + +v1.07_28 2016/02/17 (by doda) + * fobO[hljB + +v1.07_27 2016/02/09 (by doda) + * -cd IvV(HOME_CHDIR=y) -d IvVł̃fBN + gwD悷悤ɂB + * -ls IvV(LOGIN_SHELL=y) ̎w莞 -d IvVw + ꍇACHERE_INVOKING=y Zbg悤ɂB + +v1.07_26 2015/12/14 (by doda) + * ssh F؃G[WFg]ŕRlNVɑΉB + +v1.07_25 2015/02/21 (by doda) + * TERM ‹ϐݒ肳悤ɂB + +v1.07_24 2013/08/15 (by maya) + * 64bit Cygwin ł삷悤ɂB (cyglaunch) + +v1.07_23 2011/04/18 (by doda) + * -d IvVŎw肳ꂽfBNgւ̈ړsA + G[bZ[W\悤ɂB + +v1.07_22 2011/03/03 (by maya) + * CXg[N`FbN邽߂ mutex 폜B + +v1.07_21 2011/02/28 (by maya) + * CXg[N`FbN邽߂ mutex ljB + +v1.07_20 2010/10/20 (by doda) + * '-d' IvVł̃fBNgύX̃^C~Ox点B + (security fix) + +v1.07_19 2010/01/28 (by doda) + * '-s' IvV̈ 'AUTO' 󂯕t悤ɂB + +v1.07_18 2010/01/19 (by doda) + * '-d' IvV̈dp폜悤ɂB + +v1.07_17 2009/06/16 (by doda) + * TELNET SGA/ECHOIvṼlSVG[Vs悤ɂB + +v1.07_16 2008/11/21 (by doda) + * ssh F؃G[WFg]@\LɂIvV '-a' + '-A' ɕύXB + * ssh F؃G[WFg]@\𖳌ɂIvV '-a' ljB + +v1.07_15 2008/11/01 (by doda) + * ssh F؃G[WFg]@\T|[gB + +v1.07_14 2007/12/17 (by doda) + * ^[~iEG~[^̒lj̃p[^w肷IvV + '-o' ljB + +v1.07_13 2007/08/03 (by maya) + * JnfBNgw肷 '-d' IvVljB + +v1.07_12 2007/06/10 (by doda) + * telnet ̑҂󂯃\Pbg̃^CAEgݒ肷IvV + SOCKET_TIMEOUT ljB + + SOCKET_TIMEOUT = b + +v1.07_11 2007/01/31 (import from cygterm v1.07) + * gcc 3.4 ł WinMainCRTStartup() Ē`G[ + * Ao͎łL[{[h荞݂悤ɁB + +v1.06_11 2006/09/29 (by maya) + * ‹ϐ /etc/passwd HOME gȂ悤ɂB + Cygwin ɂăZbgꂽ HOME pB֘A /etc/profile + * ݒt@C̗D揇ʂύXB + R}hC > ~/.cygtermrc > /etc/cygterm.conf > cygterm.cfg + > /etc/passwd + +v1.06_10 2006/09/28 (by doda) + * [U𓾂̂ɁA‹ϐ USERNAME ̑ getlogin() g + 悤ɂB + +v1.06_09 2006/09/25 (by doda) + * SHELLݒ肳ĂȂꍇ́A/etc/passwd VF̏𓾂 + 悤ɂB + +v1.06_08 2006/08/30 (by maya) + * cygterm.cfg ݒt@C̒ōŗD悳悤ɂB + +v1.06_07 2006/08/19 (by maya) + * Windows ‹ϐ HOME ݒ肳ĂΎg悤ɂB + +v1.06_06 2006/08/18 (by doda) + * -s-tIvṼp[^̒𐧌B + +v1.06_05 2006/08/18 (by maya) + * CXg[N`FbN邽߁Amutex 쐬B + +v1.06_04 2006/08/15 (by doda) + * VFOCVFƂČĂяoIvV LOGIN_SHELL + ljB + + LOGIN_SHELL: yes | no + +v1.06_03 2006/08/15 (by doda) + * z[fBNgŋN̂IIvV HOME_CHDIR + ljB + + HOME_CHDIR: yes | no + +v1.06_02 2006/02/09 (by babydamons@yahoo.co.jp) + * CygTerm̃ACR쐬܂Bi"DotWork 2.50"ɂč쐬j + "DotWork 2.50" ͉ELURL”\łB + http://www5a.biglobe.ne.jp/~suuta/ + ΂炵\tgEFAJĂA + "suuta at hamal dot freemal dot ne dot jp"ɊӒv܂B + + * Makefile C܂B"clean" ^[Qbg cygterm.ico 폜 + Ȃ悤ɁB + +v1.06_01 2006/02/08 (by babydamons@yahoo.co.jp) + * ȉ̐ݒt@C̓ǂݍ݂T|[g: + + /etc/cygterm.conf + + ~/.cygtermrc + + * VF[Ũz[fBNgŋN悤ɁB + + * AJEg̐ݒ /etc/passwd getpwnam(3) œǂݍނ悤ɁB + AJEg͊‹ϐ USERNAME getenv(3) Ŏ擾Ă܂B + + * Makefile CFfBtHgŃACR‚ .exe rh܂B + +v1.06 2004/01/24 + * R}hCEIvVljB + -t 'terminal-emulator' (^[~iEG~[^w) + -p port-number (ڑ|[gԍw) + -dumb (_^[~iw) + -s 'shell' (VFw) + -v 'env-var' (‹ϐw) + + * MakefileC + make install BINDIR ݂Ȃ΃G[ɂȂ悤ɁB + + * \[Xt@Cp (cygterm.cc, README.txt) + +v1.05 2003/01/14 + * Ctrl+SPACE(NUL)Mł悤ɏCB + sR[h CR+NUL @ƂĒP NUL𖳎Ă + ߁ACtrl+SPACE ł NUL MȂB + +v1.04 2002/12/08 + * ^[~iEG~[^уVF̋NɎsƂ + G[bZ[W\悤ɂB + + * MakefileC + make install cygterm.cfg ㏑Ȃ悤ɁB + gccIvV -fno-exceptions ljAGCC-3̃NG[B + +v1.03 2002/07/24 + * ^[~iEG~[^ʒmĂ^[~i^CvɁA啶 + ܂܂Ă΁Aɕϊ悤ɏCB + ^[~iEG~[^ɂĂ͊‹ϐ TERM ̒l 'ANSI' 'VT100' + ̂悤ɑ啶Ȃ terminfo Ƀ}b`Ȃ߁B + (Windows 2000 telnet.exe ) + +v1.02 2002/07/22 + * ^[~iEG~[^R\[EAvP[V̂ƂɋN + łȂ̂CB(Windows 2000 telnet.exe ) + CreateProcess()ďo~XB + + * ^[~iEG~[^ CR+LF Ă LF ͓]Ȃ + 悤ɂAsQ񔭐̂CB(Windows 98 telnet.exe ) + + * o[Wԍ cygterm.exe ɖߍނ悤ɂB + mF@ $ strings cygterm.exe | grep version + +v1.01 2002/07/19 + * zsh, tcsh œ삵Ȃ̂CB[[̃I[v@A + zsh, tcsh ł͋NƂƂɓ͂ubNꂽB + +v1.00 2000/12/17 + * o[W + diff --git a/cygwin/cygterm/build.bat b/cygwin/cygterm/build.bat new file mode 100644 index 000000000..3f5789351 --- /dev/null +++ b/cygwin/cygterm/build.bat @@ -0,0 +1,9 @@ +setlocal +rem PATH=c:\cygwin\bin +PATH=c:\cygwin64\bin +uname -a > build_info.txt +make -j cygterm+-i686 +make -j cygterm+-x86_64 +file cygterm+-i686/*.exe >> build_info.txt +file cygterm+-x86_64/*.exe >> build_info.txt +pause diff --git a/cygwin/cygterm/build.md b/cygwin/cygterm/build.md new file mode 100644 index 000000000..ba1652b11 --- /dev/null +++ b/cygwin/cygterm/build.md @@ -0,0 +1,45 @@ +# cygtermのビルドについて + +- リリース時には 64bit バイナリと 32bit バイナリの両方をビルドしたい +- 64bit Cygwinを使いたい + - 近い将来 32bit Cygwinがなくなる + +## 準備 + +64bit Cygwin では 32bit Cygwin クロスコンパイラを利用できるようにする +32bit Cygwin では 64bit Cygwin クロスコンパイラを利用できるようにする +リリースでは 64bit Cygwin を使用する + +- 64bit Cygwin時(将来はこれだけになる) +- 次のパッケージをインストール + - gcc-core + - gcc-g++ + - make + - cygwin32-gcc-core (32bit Cygwin 用バイナリを出力するクロスコンパイラ) + - cygwin32-gcc-g++ (同上) + - tar + - gzip + - setupを使ったインストール例 + - `setup-x86_64.exe --quiet-mode --packages cygwin32-gcc-g++ --packages cygwin32-gcc-core` + +- 32bit Cygwin時(近い将来なくなる) +- 次のパッケージをインストール + - gcc-core + - gcc-g++ + - make + - cygwin64-gcc-core (64bit Cygwin 用バイナリを出力するクロスコンパイラ) + - cygwin64-gcc-g++ (同上) + - tar + - gzip + - setupを使ったインストール例 + - `setup-x86.exe --quiet-mode --packages cygwin64-gcc-g++ --packages cygwin64-gcc-core` + +## ビルド + +- 次のファイルを実行 + - `build.bat` + +## cygwinのパッケージについて + +- パッケージに含まれるファイルは次のURLから調べることができる + - https://cygwin.com/packages/ diff --git a/cygwin/cygterm/build_cygterm.cmake b/cygwin/cygterm/build_cygterm.cmake new file mode 100644 index 000000000..491c0c241 --- /dev/null +++ b/cygwin/cygterm/build_cygterm.cmake @@ -0,0 +1,145 @@ +# cygterm, msys2termのビルド +# - 生成可能な cygterm, msys2term をビルド +# - CMAKE_INSTALL_PREFIX にコピーする +# 例 +# mkdir build_all && cd build_all && cmake -DCMAKE_INSTALL_PREFIX=c:/tmp/cygterm -P ../build_cygterm.cmake + +message("CMAKE_COMMAND=${CMAKE_COMMAND}") +message("CMAKE_HOST_SYSTEM_NAME=${CMAKE_HOST_SYSTEM_NAME}") +message("CMAKE_INSTALL_PREFIX=${CMAKE_INSTALL_PREFIX}") + +if(NOT DEFINED CMAKE_INSTALL_PREFIX) + message(FATAL_ERROR "CMAKE_INSTALL_PREFIX not defined") +endif() +if((NOT (${CMAKE_INSTALL_PREFIX} MATCHES "^[A-z]:[/\\]")) AND (NOT(${CMAKE_INSTALL_PREFIX} MATCHES "^/"))) + message(FATAL_ERROR "CMAKE_INSTALL_PREFIX(${CMAKE_INSTALL_PREFIX}) must absolute") +endif() + +function(ToCygwinPath in_path out_var) + if("${in_path}" MATCHES "^[A-z]:[/\\]") + # windows native absolute path + string(REGEX REPLACE "([A-z]):[/\\]" "/cygdrive/\\1/" new_path "${in_path}") + set(${out_var} ${new_path} PARENT_SCOPE) + else() + set(${out_var} ${in_path} PARENT_SCOPE) + endif() +endfunction() + +function(ToMsys2Path in_path out_var) + if("${in_path}" MATCHES "^[A-z]:[/\\]") + # windows native absolute path + string(REGEX REPLACE "([A-z]):[/\\]" "/\\1/" new_str "${in_path}") + set(${out_var} ${new_str} PARENT_SCOPE) + else() + set(${out_var} ${in_path} PARENT_SCOPE) + endif() +endfunction() + +# cygwinのインストールパスを返す +# 見つからない場合は "" +function(GetCygwinPath path) + set(${path} "" PARENT_SCOPE) + if(${CMAKE_HOST_SYSTEM_NAME} MATCHES "CYGWIN") + # cygwinのcmake + set(PATH "/usr/bin") + if (EXISTS ${PATH}) + set(${path} ${PATH} PARENT_SCOPE) + endif() + elseif(${CMAKE_HOST_SYSTEM_NAME} MATCHES "Windows") + # windowsのcmake + set(PATH "${CMAKE_CURRENT_LIST_DIR}\\..\\..\\buildtools\\cygwin64\\bin") + if (NOT EXISTS ${PATH}) + set(PATH "C:\\cygwin64\\bin") + endif() + if (NOT EXISTS ${PATH}) + set(PATH "C:\\cygwin\\bin") + endif() + if (EXISTS ${PATH}) + set(${path} ${PATH} PARENT_SCOPE) + endif() + else() + # msys2? + endif() +endfunction() + +# msys2のインストールパスを返す +# 見つからない場合は "" +function(GetMsys2Path path) + set(${path} "" PARENT_SCOPE) + if(${CMAKE_HOST_SYSTEM_NAME} MATCHES "MSYS") + # msys2のcmake + set(PATH "/c/msys64/usr/bin") + if (EXISTS "c:/msys64/usr/bin/msys-2.0.dll") + set(${path} ${PATH} PARENT_SCOPE) + endif() + elseif(${CMAKE_HOST_SYSTEM_NAME} MATCHES "Windows") + # msys2/mingw64 or msys2/mingw32 or Windows のcmake + set(PATH "c:/msys64/usr/bin") # msys2インストールフォルダ + if (EXISTS ${PATH}) + set(${path} ${PATH} PARENT_SCOPE) + endif() + elseif(${CMAKE_HOST_SYSTEM_NAME} MATCHES "CYGWIN") + # cygwin の cmake ,未実装 + unset(${path} PARENT_SCOPE) + else() + message("?") + endif() +endfunction() + +function(build TARGET_CMAKE_COMMAND SRC_DIR BUILD_DIR INSTALL_DIR GENERATE_OPTIONS) + file(REMOVE_RECURSE ${BUILD_DIR}) + file(MAKE_DIRECTORY ${BUILD_DIR}) + if((NOT EXISTS ${TARGET_CMAKE_COMMAND}) AND (NOT EXISTS "${TARGET_CMAKE_COMMAND}.exe")) + message("${TARGET_CMAKE_COMMAND} not found") + return() + endif() + list(APPEND GENERATE_OPTIONS -DCMAKE_INSTALL_PREFIX=${INSTALL_DIR}) + execute_process( + COMMAND ${TARGET_CMAKE_COMMAND} ${SRC_DIR} -G "Unix Makefiles" ${GENERATE_OPTIONS} + WORKING_DIRECTORY ${BUILD_DIR} + RESULT_VARIABLE rv + ) + #message("rv=${rv}") + execute_process( + COMMAND ${TARGET_CMAKE_COMMAND} --build . --config release --target install -- -j + WORKING_DIRECTORY ${BUILD_DIR} + ) +endfunction() + +## cygwin +GetCygwinPath(PATH) +set(ENV{PATH} ${PATH}) +message("cygwin ENV{PATH}=$ENV{PATH}") + +if (EXISTS ${PATH}/g++.exe) + # gcc-core, gcc-g++ package (cygwin 64bit) + ToCygwinPath(${CMAKE_CURRENT_LIST_DIR} CURRENT_LIST_DIR) + set(GENERATE_OPTIONS "-DCMAKE_TOOLCHAIN_FILE=${CURRENT_LIST_DIR}/toolchain_x86_64-cygwin.cmake") + ToCygwinPath(${CMAKE_INSTALL_PREFIX} INSTALL_PREFIX) + build("${PATH}/cmake" ${CURRENT_LIST_DIR} "build_cygterm_x86_64" "${INSTALL_PREFIX}/cygterm+-x86_64" "${GENERATE_OPTIONS}") + file(COPY "${CMAKE_INSTALL_PREFIX}/cygterm+-x86_64/cygterm.exe" DESTINATION ${CMAKE_INSTALL_PREFIX}) + file(COPY "${CMAKE_INSTALL_PREFIX}/cygterm+-x86_64/cygterm.cfg" DESTINATION ${CMAKE_INSTALL_PREFIX}) +endif() + +if (EXISTS ${PATH}/i686-pc-cygwin-g++.exe) + # cygwin32-gcc-core, cygwin32-gcc-g++ package (cygwin 32bit on cygwin 64bit) + ToCygwinPath(${CMAKE_CURRENT_LIST_DIR} CURRENT_LIST_DIR) + set(GENERATE_OPTIONS "-DCMAKE_TOOLCHAIN_FILE=${CURRENT_LIST_DIR}/toolchain_i686-cygwin.cmake") + ToCygwinPath(${CMAKE_INSTALL_PREFIX} INSTALL_PREFIX) + build("${PATH}/cmake" ${CURRENT_LIST_DIR} "build_cygterm_i686" "${INSTALL_PREFIX}/cygterm+-i686" "${GENERATE_OPTIONS}") +endif() + +## msys2 +GetMsys2Path(PATH) +if(DEFINED PATH) + set(ENV{PATH} "/usr/bin") # msys2 の cmake を使うので決め打ち + set(ENV{MSYSTEM} "MSYS") + message("PATH=${PATH}") + message("msys2 ENV{PATH}=$ENV{PATH}") + + ToMsys2Path(${CMAKE_CURRENT_LIST_DIR} CURRENT_LIST_DIR) + set(GENERATE_OPTIONS "") + ToMsys2Path(${CMAKE_INSTALL_PREFIX} INSTALL_PREFIX) + build("${PATH}/cmake" ${CURRENT_LIST_DIR} "build_msys2term_x86_64" "${INSTALL_PREFIX}" "${GENERATE_OPTIONS}") + +endif() diff --git a/cygterm/cygterm.bmp b/cygwin/cygterm/cygterm.bmp similarity index 100% rename from cygterm/cygterm.bmp rename to cygwin/cygterm/cygterm.bmp diff --git a/cygterm/cygterm.cfg b/cygwin/cygterm/cygterm.cfg similarity index 93% rename from cygterm/cygterm.cfg rename to cygwin/cygterm/cygterm.cfg index f8201ce46..3f51a6573 100644 --- a/cygterm/cygterm.cfg +++ b/cygwin/cygterm/cygterm.cfg @@ -7,7 +7,7 @@ TERM_TYPE = vt100 PORT_START = 20000 PORT_RANGE = 40 SHELL = auto -ENV_1 = MAKE_MODE=unix +ENV_1 = ENV_2 = LOGIN_SHELL = Yes # HOME_CHDIR = No diff --git a/cygwin/cygterm/cygterm.cpp b/cygwin/cygterm/cygterm.cpp new file mode 100644 index 000000000..4813e1743 --- /dev/null +++ b/cygwin/cygterm/cygterm.cpp @@ -0,0 +1,1435 @@ +///////////////////////////////////////////////////////////////////////////// +// CygTerm+ - yet another Cygwin console +// Copyright (C) 2000-2006 NSym. +// (C) 2006- TeraTerm Project +//--------------------------------------------------------------------------- +// This file is part of CygTerm+ +// +// CygTerm+ is free software; you can redistribute it and/or modify it +// under the terms of the GNU General Public License (GPL) as published by +// the Free Software Foundation; either version 2 of the License, or (at +// your option) any later version. +// +// CygTerm+ is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. +// +// You should have received a copy of the GNU General Public License +// along with cygterm; if not, see . +//--------------------------------------------------------------------------- + +///////////////////////////////////////////////////////////////////////////// +// CygTerm+ - yet another Cygwin console +// +// Using Cygwin with a terminal emulator. +// +// Writtern by TeraTerm Project. +// https://teratermproject.github.io/ +// +// Original written by NSym. +// + +#if !defined(__CYGWIN__) +#error check compiler +#endif + +// MessageBox̃^CgŎgp TODO exet@CɕύX +static char Program[] = "CygTerm+"; +//static char Version[] = "version 1.07_30_beta (2021/11/14)"; + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +#include "sub.h" + +#include "cygterm_cfg.h" + +// pageant support (ssh-agent proxy) +//---------------------------------- +#define AGENT_COPYDATA_ID 0x804e50ba +#define AGENT_MAX_MSGLEN 8192 +char sockdir[] = "/tmp/ssh-XXXXXXXXXX"; +char sockname[256]; + +// PTY device name +//---------------- +#define DEVPTY "/dev/ptmx" + +// TCP port for TELNET +//-------------------- +#define PORT_START_DEFAULT 20000 // default lowest port number +#define PORT_RANGE_DEFAULT 40 // default number of ports + +// TCP port for connection to another terminal application +//-------------------------------------------------------- +int cl_port = 0; +u_short listen_port; + +// telnet socket timeout +//---------------------- +#define TELSOCK_TIMEOUT_DEFAULT 5 // timeout 5 sec + +// chdir to HOME +//-------------- +#define HOME_CHDIR_DEFAULT false + +// login shell flag +//----------------- +#define ENABLE_LOGINSHELL_DEFAULT false + +// ssh agent proxy +//---------------- +#define ENABLE_AGENT_PROXY_DEFAULT false + +// debug mode +//----------- +#define DEBUG_FLAG_DEFAULT false; +bool debug_flag = DEBUG_FLAG_DEFAULT; + +// "cygterm.cfg" +static char *cfg_base; // "cygterm.cfg" +static char *cfg_exe; // [exe directory]/cygterm.cfg +static char *conf_appdata_full; // $APPDATA/teraterm5/cygterm.cfg +static char *sys_conf; // /etc/cygterm.conf +static char *usr_conf; // ~/cygtermrc $HOME/cygtermrc + +//================// +// message output // +//----------------// +// msg ANSIR[h (UTF8͉) +void msg_print(const char* msg) +{ + OutputDebugStringA(msg); + MessageBoxA(NULL, msg, Program, MB_OK | MB_ICONINFORMATION | MB_TOPMOST); +} + +//=========================// +// Win32-API error message // +//-------------------------// +void api_error(const char* string = NULL) +{ + char msg[1024]; + char *ptr = msg; + if (string != NULL) + ptr += snprintf(ptr, sizeof(msg), "%s\n\n", string); + FormatMessageA( + FORMAT_MESSAGE_FROM_SYSTEM | FORMAT_MESSAGE_IGNORE_INSERTS, + NULL, GetLastError(), MAKELANGID(LANG_NEUTRAL, SUBLANG_DEFAULT), + ptr, sizeof(msg)-(ptr-msg), NULL + ); + msg_print(msg); +} + +//=========================// +// C-runtime error message // +//-------------------------// +void c_error(const char* string = NULL) +{ + char msg[1024]; + char *ptr = msg; + if (string != NULL) + ptr += snprintf(ptr, sizeof(msg), "%s\n\n", string); + snprintf(ptr, sizeof(msg)-(ptr-msg), "%s\n", strerror(errno)); + msg_print(msg); +} + +//======================// +// debug message output // +//======================// +void debug_msg_print(const char* msg, ...) +{ + if (debug_flag) { + char *tmp1; + va_list arg; + va_start(arg, msg); + vasprintf(&tmp1, msg, arg); + va_end(arg); + + char *tmp2; + unsigned long pid = GetCurrentProcessId(); + asprintf(&tmp2, "dbg %lu: %s\n", pid, tmp1); + OutputDebugStringA(tmp2); + // printf("%s", tmp2); + free(tmp2); + free(tmp1); + } +} + +static void get_cfg_filenames() +{ + char *argv0 = GetModuleFileNameU8(); + // cfg base filename "cygterm.cfg" + char *p = strrchr(argv0, '.'); + *p = 0; // cut ".exe" + p = strrchr(argv0, '/') + 1; + cfg_base = (char *)malloc(strlen(p) + 5); + strcpy(cfg_base, p); + strcat(cfg_base, ".cfg"); + + // exe path + cfg_exe = (char *)malloc(strlen(argv0) + strlen(cfg_base)); + strcpy(cfg_exe, argv0); + p = strrchr(cfg_exe, '/') + 1; + strcpy(p, cfg_base); + free(argv0); + argv0 = NULL; + + // home $HOME/cygtermrc + const char *home = getenv("HOME"); + usr_conf = (char *)malloc(strlen(home) + strlen(cfg_base) + 2); + strcpy(usr_conf, home); + strcat(usr_conf, "/."); + strcat(usr_conf, cfg_base); + p = strrchr(usr_conf, '.'); // ".cfg" -> "rc" + strcpy(p, "rc"); + + // system + sys_conf = (char *)malloc(sizeof("/etc/") + strlen(cfg_base) + 2); + strcpy(sys_conf, "/etc/"); + strcat(sys_conf, cfg_base); + p = strrchr(sys_conf, '.'); + strcpy(p, ".conf"); // ".cfg" -> ".conf" + + // $APPDATA/teraterm5/cygterm.cfg + char *appdata = GetAppDataDirU8(); + const char *teraterm = "/teraterm5/"; + size_t len = strlen(appdata) + strlen(teraterm) + strlen(cfg_base) + 1; + conf_appdata_full = (char *)malloc(sizeof(char) * len); + strcpy(conf_appdata_full, appdata); + strcat(conf_appdata_full, teraterm); + strcat(conf_appdata_full, cfg_base); + free(appdata); +} + +/** + * read /etc/passwd + * get user name from getlogin(). if it fails, use $USERNAME instead. + * and get /etc/passwd information by getpwnam(3) with user name, + */ +static void get_username_and_shell(cfg_data_t *cfg) +{ + const char* username = getlogin(); + if (username == NULL) + username = getenv("USERNAME"); + if (username != NULL) { + struct passwd* pw_ent = getpwnam(username); + if (pw_ent != NULL) { + free(cfg->shell); + cfg->shell = strdup(pw_ent->pw_shell); + free(cfg->username); + cfg->username = strdup(pw_ent->pw_name); + } + else { + free(cfg->username); + cfg->username = strdup(username); + } + } +} + +#define _countof(_Array) (sizeof(_Array) / sizeof(_Array[0])) + +//====================// +// load configuration // +//--------------------// +static void load_cfg(cfg_data_t *cfg) +{ + // ݒt@Cǂݍݏ + // Xg̏̂قɓǂݍ܂ + // Xg̉̂قɓǂݍ܂(Ə) + // ̕D揇ʂ + // ʏ펞 + char *conf_order_normal_list[] = { + cfg_exe, // [exe directory]/cygterm.cfg + sys_conf, // /etc/cygterm.conf + conf_appdata_full, // $APPDATA/teraterm5/cygterm.cfg + usr_conf // ~/cygtermrc + }; + const int conf_order_normal_count = (int)_countof(conf_order_normal_list); + + // |[^u + char *conf_order_portable_list[] = { + cfg_exe, // [exe directory]/cygterm.cfg + }; + const int conf_order_portable_count = (int)_countof(conf_order_portable_list); + + char **conf_order_list; + int conf_order_count; + if (IsPortableMode()) { + // |[^u + conf_order_list = conf_order_portable_list; + conf_order_count = conf_order_portable_count; + } + else { + // ʏ펞 + conf_order_list = conf_order_normal_list; + conf_order_count = conf_order_normal_count; + } + + // ۂɓǂݍ + for (int i = 0; i < conf_order_count; i++) { + const char *fname = conf_order_list[i]; + debug_msg_print("load %s", fname); + // ignore empty configuration file path + if (fname == NULL || strcmp(fname, "") == 0) { + debug_msg_print(" pass"); + continue; + } + + bool r = cfg->load(cfg, fname); + debug_msg_print(" %s", r ? "ok" : "ng"); + cfg->dump(cfg, debug_msg_print); + } +} + +void quote_cut(char *dst, size_t len, char *src) { + while (*src && len > 1) { + if (*src != '"') { + *dst++ = *src; + } + src++; + } + *dst = 0; +} + +//=======================// +// commandline arguments // +//-----------------------// +void get_args(char** argv, cfg_data_t *cfg) +{ + for (++argv; *argv != NULL; ++argv) { + if (!strcmp(*argv, "-t")) { // -t + if (*++argv == NULL) + break; + free(cfg->term); + cfg->term = strdup(*argv); + } + else if (!strcmp(*argv, "-p")) { // -p + if (*(argv+1) != NULL) { + ++argv; + cfg->cl_port = atoi(*argv); + } + } + else if (!strcmp(*argv, "-dumb")) { // -dumb + cfg->dumb = 1; + free(cfg->term_type); + cfg->term_type = strdup("dumb"); + } + else if (!strcmp(*argv, "-s")) { // -s + if (*++argv == NULL) + break; + if (strcasecmp(*argv, "AUTO") != 0) { + free(cfg->shell); + cfg->shell = strdup(*argv); + } + } + else if (!strcmp(*argv, "-cd")) { // -cd + cfg->home_chdir = true; + } + else if (!strcmp(*argv, "-nocd")) { // -nocd + cfg->home_chdir = false; + } + else if (!strcmp(*argv, "+cd")) { // +cd + cfg->home_chdir = false; + } + else if (!strcmp(*argv, "-ls")) { // -ls + cfg->enable_loginshell = true; + } + else if (!strcmp(*argv, "-nols")) { // -nols + cfg->enable_loginshell = false; + } + else if (!strcmp(*argv, "+ls")) { // +ls + cfg->enable_loginshell = false; + } + else if (!strcmp(*argv, "-A")) { // -A + cfg->enable_agent_proxy = true; + } + else if (!strcmp(*argv, "-a")) { // -a + cfg->enable_agent_proxy = false; + } + else if (!strcmp(*argv, "-v")) { // -v + if (*(argv+1) != NULL) { + sh_env_t *sh_env = cfg->sh_env; + ++argv; + sh_env->add1(sh_env, *argv); + } + } + else if (!strcmp(*argv, "-d")) { // -d + if (*++argv == NULL) + break; + char change_dir[256] = ""; + quote_cut(change_dir, sizeof(change_dir), *argv); + cfg->change_dir = strdup(change_dir); + } + else if (!strcmp(*argv, "-o")) { // -o + if (*++argv == NULL) + break; + free(cfg->termopt); + cfg->termopt = strdup(*argv); + } + else if (!strcmp(*argv, "-debug")) { // -debug + cfg->debug_flag = true; + } + } +} + +//===================================// +// pageant support (ssh-agent proxy) // +//-----------------------------------// +unsigned long get_uint32(unsigned char *buff) +{ + return ((unsigned long)buff[0] << 24) + + ((unsigned long)buff[1] << 16) + + ((unsigned long)buff[2] << 8) + + ((unsigned long)buff[3]); +} + +void set_uint32(unsigned char *buff, unsigned long v) +{ + buff[0] = (unsigned char)(v >> 24); + buff[1] = (unsigned char)(v >> 16); + buff[2] = (unsigned char)(v >> 8); + buff[3] = (unsigned char)v; + return; +} + +unsigned long agent_request(unsigned char *out, unsigned long out_size, unsigned char *in) +{ + HWND hwnd; + char mapname[25]; + HANDLE fmap = NULL; + unsigned char *p = NULL; + COPYDATASTRUCT cds; + unsigned long len; + unsigned long ret = 0; + + if (out_size < 5) { + return 0; + } + if ((len = get_uint32(in)) > AGENT_MAX_MSGLEN) { + goto agent_error; + } + + hwnd = FindWindowA("Pageant", "Pageant"); + if (!hwnd) { + goto agent_error; + } + + sprintf(mapname, "PageantRequest%08x", (unsigned)GetCurrentThreadId()); + fmap = CreateFileMappingA(INVALID_HANDLE_VALUE, NULL, PAGE_READWRITE, + 0, AGENT_MAX_MSGLEN, mapname); + if (!fmap) { + goto agent_error; + } + + if ((p = (unsigned char *)MapViewOfFile(fmap, FILE_MAP_WRITE, 0, 0, 0)) == NULL) { + goto agent_error; + } + + cds.dwData = AGENT_COPYDATA_ID; + cds.cbData = strlen(mapname) + 1; + cds.lpData = mapname; + + memcpy(p, in, len + 4); + if (SendMessageA(hwnd, WM_COPYDATA, (WPARAM)NULL, (LPARAM)&cds) > 0) { + len = get_uint32(p); + if (out_size >= len + 4) { + memcpy(out, p, len + 4); + ret = len + 4; + } + } + +agent_error: + if (p) { + UnmapViewOfFile(p); + } + if (fmap) { + CloseHandle(fmap); + } + if (ret == 0) { + set_uint32(out, 1); + out[4] = 5; // SSH_AGENT_FAILURE + } + + return ret; +} + +void sighandler(int sig) { + (void)sig; + unlink(sockname); + rmdir(sockdir); + exit(0); +}; + +struct connList { + int sock; + int recvlen; + int sendlen; + struct connList *next; + unsigned char ibuff[AGENT_MAX_MSGLEN]; + unsigned char obuff[AGENT_MAX_MSGLEN]; +}; + +int proc_recvd(struct connList *conn) +{ + int reqlen, len; + + if (conn->sendlen > 0) { + return 0; + } + + if (conn->recvlen < 4) { + return 0; + } + + reqlen = get_uint32(conn->ibuff) + 4; + if (conn->recvlen < reqlen) { + return 0; + } + + len = agent_request(conn->obuff, sizeof(conn->obuff), conn->ibuff); + + if (len > 0) { + conn->sendlen = len; + } + else { + set_uint32(conn->obuff, 1); + conn->obuff[4] = 5; // SSH_AGENT_FAILURE + conn->sendlen = 1; + } + + if (conn->recvlen == reqlen) { + conn->recvlen = 0; + } + else { + conn->recvlen -= reqlen; + memmove(conn->ibuff, conn->ibuff + reqlen, conn->recvlen); + } + + return 1; +} + +void agent_proxy() +{ + int sock, asock, ret; + long len; + struct sockaddr_un addr; + struct connList connections, *new_conn, *prev, *cur; + fd_set readfds, writefds, rfds, wfds; + struct sigaction act; + sigset_t blk; + + connections.next = NULL; + + if ((sock = socket(PF_UNIX, SOCK_STREAM, 0)) < 0) { + c_error("agent_proxy: socket failed."); + exit(0); + } + memset(&addr, 0, sizeof(addr)); + addr.sun_family = AF_UNIX; + strlcpy(addr.sun_path, sockname, sizeof(addr.sun_path)); + + if (bind(sock, (struct sockaddr *)&addr, sizeof(addr)) < 0) { + goto agent_thread_cleanup; + } + if (listen(sock, -1) < 0) { + goto agent_thread_cleanup; + } + + sigfillset(&blk); + sigdelset(&blk, SIGKILL); + sigdelset(&blk, SIGSTOP); + + memset(&act, 0, sizeof(act)); + act.sa_handler = sighandler; + act.sa_mask = blk; + sigaction(SIGINT, &act, NULL); + sigaction(SIGTERM, &act, NULL); + sigaction(SIGHUP, &act, NULL); + sigaction(SIGQUIT, &act, NULL); + + FD_ZERO(&readfds); + FD_ZERO(&writefds); + FD_SET(sock, &readfds); + + while (1) { + memcpy(&rfds, &readfds, sizeof(fd_set)); + memcpy(&wfds, &writefds, sizeof(fd_set)); + + select(FD_SETSIZE, &rfds, &wfds, NULL, NULL); + + if (FD_ISSET(sock, &rfds)) { + asock = accept(sock, NULL, NULL); + if (asock < 0) { + if (!(errno == EINTR || errno == ECONNABORTED)) { + break; + } + } + else { + new_conn = (struct connList *)malloc(sizeof(struct connList)); + if (new_conn == NULL) { + // no memory + close(sock); + } + else { + new_conn->sock = asock; + new_conn->recvlen = 0; + new_conn->sendlen = 0; + new_conn->next = connections.next; + connections.next = new_conn; + FD_SET(asock, &readfds); + } + } + } + + prev = &connections; + for (cur=connections.next; cur != NULL; cur = cur->next) { + if (FD_ISSET(cur->sock, &wfds)) { + if (cur->sendlen > 0) { + len = send(cur->sock, cur->obuff, cur->sendlen, 0); + if (len < 0) { + // write error + prev->next = cur->next; + shutdown(cur->sock, SHUT_RDWR); + close(cur->sock); + FD_CLR(cur->sock, &writefds); + FD_CLR(cur->sock, &readfds); + free(cur); + cur = prev; + continue; + } + else if (len >= cur->sendlen) { + cur->sendlen = 0; + + sigprocmask(SIG_BLOCK, &blk, NULL); + ret = proc_recvd(cur); + sigprocmask(SIG_UNBLOCK, &blk, NULL); + + if (ret) { + FD_SET(cur->sock, &writefds); + FD_CLR(cur->sock, &readfds); + } + else { + FD_CLR(cur->sock, &writefds); + FD_SET(cur->sock, &readfds); + } + } + else if (len > 0) { + cur->sendlen -= len; + memmove(cur->obuff, cur->obuff+len, cur->sendlen); + } + } + else { + FD_CLR(cur->sock, &writefds); + } + } + + if (FD_ISSET(cur->sock, &rfds)) { + len = recv(cur->sock, cur->ibuff + cur->recvlen, sizeof(cur->ibuff) - cur->recvlen, 0); + if (len > 0) { + cur->recvlen += len; + + sigprocmask(SIG_BLOCK, &blk, NULL); + ret = proc_recvd(cur); + sigprocmask(SIG_UNBLOCK, &blk, NULL); + + if (ret) { + FD_SET(cur->sock, &writefds); + FD_CLR(cur->sock, &readfds); + } + else { + FD_CLR(cur->sock, &writefds); + FD_SET(cur->sock, &readfds); + } + } + else if (len <= 0) { + // read error + prev->next = cur->next; + shutdown(cur->sock, SHUT_RDWR); + close(cur->sock); + FD_CLR(cur->sock, &readfds); + FD_CLR(cur->sock, &writefds); + free(cur); + cur = prev; + continue; + } + } + } + } + +agent_thread_cleanup: + shutdown(sock, SHUT_RDWR); + close(sock); + + unlink(sockname); + rmdir(sockdir); + + exit(0); +} + +static int exec_agent_proxy(sh_env_t *sh_env) +{ + int pid; + + if (mkdtemp(sockdir) == NULL) { + return -1; + } + snprintf(sockname, sizeof(sockname), "%s/agent.%ld", sockdir, (long)getpid()); + + if (!sh_env->add(sh_env, "SSH_AUTH_SOCK", sockname)) { + return -1; + } + + if ((pid = fork()) < 0) { + return -1; + } + if (pid == 0) { + setsid(); + agent_proxy(); + } + return pid; +} + +//=============================// +// terminal emulator execution // +//-----------------------------// +DWORD WINAPI term_thread(LPVOID param) +{ + cfg_data_t *cfg = (cfg_data_t *)param; + + in_addr addr; + addr.s_addr = htonl(INADDR_LOOPBACK); + char *term; + asprintf(&term, cfg->term, inet_ntoa(addr), (int)ntohs(listen_port)); + if (cfg->termopt != NULL) { + char *tmp; + asprintf(&tmp, "%s %s", tmp, cfg->termopt); + free(term); + term = tmp; + } + + debug_msg_print("CreateProcess '%s'", term); + + STARTUPINFO si; + PROCESS_INFORMATION pi; + FillMemory(&si, sizeof(si), 0); + si.cb = sizeof(si); + si.dwFlags = STARTF_USESHOWWINDOW; + si.wShowWindow = SW_SHOW; + DWORD flag = 0; + +#if defined(UNICODE) + wchar_t *termT = ToWcharU8(term); +#else + char *termT = strdup(term); +#endif + + BOOL r = + CreateProcess( + NULL, termT, NULL, NULL, FALSE, flag, NULL, NULL, &si, &pi); + free(termT); + if (!r) { + api_error(term); + return 0; + } + WaitForSingleObject(pi.hProcess, INFINITE); + CloseHandle(pi.hProcess); + CloseHandle(pi.hThread); + return 0; +} + +//=======================================// +// thread creation for terminal emulator // +//---------------------------------------// +HANDLE exec_term(cfg_data_t *cfg) +{ + DWORD id; + return CreateThread(NULL, 0, term_thread, cfg, 0, &id); +} + +//=======================================// +// listener socket for TELNET connection // +//---------------------------------------// +int listen_telnet(u_short* port, cfg_data_t *cfg) +{ + int lsock; + if ((lsock = socket(AF_INET, SOCK_STREAM, 0)) < 0) { + return -1; + } + struct sockaddr_in addr; + addr.sin_family = AF_INET; + addr.sin_addr.s_addr = htonl(INADDR_LOOPBACK); + int i; + for (i = 0; i < cfg->port_range; ++i) { // find an unused port# + addr.sin_port = htons(cfg->port_start + i); + if (bind(lsock, (struct sockaddr *)&addr, sizeof(addr)) == 0) { + break; + } + } + if (i == cfg->port_range) { + shutdown(lsock, 2); + close(lsock); + return -1; + } + if (listen(lsock, 1) != 0) { + shutdown(lsock, 2); + close(lsock); + return -1; + } + *port = addr.sin_port; + return lsock; +} + +//=============================// +// accept of TELNET connection // +//-----------------------------// +int accept_telnet(int lsock, cfg_data_t *cfg) +{ + fd_set rbits; + FD_ZERO(&rbits); + FD_SET(lsock, &rbits); + struct timeval tm; + tm.tv_sec = cfg->telsock_timeout; + tm.tv_usec = 0; + if (select(FD_SETSIZE, &rbits, 0, 0, &tm) <= 0) { + c_error("accept_telnet: select failed"); + return -1; + } + if (!FD_ISSET(lsock, &rbits)) { + c_error("accept_telnet: FD_ISSET failed"); + return -1; + } + int asock; + struct sockaddr_in addr; + int len = sizeof(addr); + if ((asock = accept(lsock, (struct sockaddr *)&addr, &len)) < 0) { + c_error("accept_telnet: accept failed"); + return -1; + } + if (getpeername(asock, (struct sockaddr *)&addr, &len) != 0) { + c_error("accept_telnet: getpeername failed"); + shutdown(asock, 2); + close(asock); + return -1; + } + if (addr.sin_addr.s_addr != htonl(INADDR_LOOPBACK)) { + // reject it except local connection + msg_print("not local connection"); + shutdown(asock, 2); + close(asock); + return -1; + } + return asock; +} + +//============================// +// connect to specified port# // +//----------------------------// +int connect_client() +{ + int csock; + if ((csock = socket(AF_INET, SOCK_STREAM, 0)) < 0) { + return -1; + } + struct sockaddr_in addr; + addr.sin_family = AF_INET; + addr.sin_addr.s_addr = htonl(INADDR_LOOPBACK); + addr.sin_port = htons(cl_port); + if (connect(csock, (struct sockaddr *)&addr, sizeof(addr)) < 0) { + close(csock); + return -1; + } + return csock; +} + +//========================================// +// setup *argv[] from a string for exec() // +//----------------------------------------// +void get_argv(char **argv, int maxc, char *s) +{ + int esc, sq, dq; // recognize (\) (') (") and tokenize + int c, argc; + char *p; + esc = sq = dq = 0; + for (argc = 0; argc < maxc-1; ++argc) { + for ( ; isascii(*s) && isspace(*s); ++s); + if (*s == 0) { + break; + } + argv[argc] = p = s; + while ((c = *s) != 0) { + ++s; + if (isspace(c) && !esc && !sq && !dq) { + break; + } + if (c == '\'' && !esc && !dq) { + sq ^= 1; + } else if (c == '"' && !esc && !sq) { + dq ^= 1; + } else if (c == '\\' && !esc) { + esc = 1; + } else { + esc = 0; + *p++ = c; + } + } + *p = 0; + } + // not to judge syntax errors + // if (dq || sq || esc) { syntax error } + // if (argc == maxc) { overflow } + argv[argc] = NULL; +} + +//=================// +// shell execution // +//-----------------// +static int exec_shell(int* sh_pid, cfg_data_t *cfg) +{ + // open pty master + int master; + if ((master = open(DEVPTY, O_RDWR)) < 0) { + c_error("exec_shell: master pty open error"); + return -1; + } + int pid; + if ((pid = fork()) < 0) { + c_error("exec_shell: fork failed"); + return -1; + } + if (pid == 0) { + // detach from control tty + setsid(); + // open pty slave + int slave; + if ((slave = open(ptsname(master), O_RDWR)) < 0) { + c_error("exec_shell: slave pty open error"); + exit(0); + } + // stdio redirection + while (slave <= 2) { + if ((slave = dup(slave)) < 0) { + exit(0); + } + } + int fd; + for (fd = 0; fd < 3; ++fd) { + close(fd); + dup(slave); + fcntl(fd, F_SETFD, 0); + } + for (fd = 3; fd < getdtablesize(); ++fd) { + if (fcntl(fd, F_GETFD) == 0) { + close(fd); + } + } + // set env vars + if (cfg->term_type != NULL) { + // set terminal type to $TERM + setenv("TERM", cfg->term_type, 1); + } + // set other additional env vars + int i = 0; + sh_env_t *sh_env = cfg->sh_env; + while(1) { + char *value; + const char *env = sh_env->get(sh_env, i++, &value); + if (env == NULL) { + break; + } + setenv(env, value, 1); + } + // change directory + if (cfg->change_dir != NULL) { + if (chdir(cfg->change_dir) < 0) { + char tmp[256]; + snprintf(tmp, 256, "exec_shell: Can't chdir to \"%s\".", cfg->change_dir); + tmp[255] = 0; + c_error(tmp); + } + } + else if (cfg->home_chdir) { + // chdir to home directory + const char *home_dir = getenv("HOME"); + // ignore chdir(2) system-call error. + chdir(home_dir); + } + // execute a shell + char *argv[32]; + char *cmd_shell = cfg->shell; + get_argv(argv, 32, cmd_shell); + cfg->shell = strdup(cmd_shell); + if (cfg->enable_loginshell) { + char shell_path[128]; + char *pos; + strcpy(shell_path, argv[0]); + if ((pos = strrchr(argv[0], '/')) != NULL) { + *pos = '-'; + argv[0] = pos; + } + debug_msg_print("execv '%s' (login shell)", shell_path); + execv(shell_path, argv); + } + else { + debug_msg_print("execv '%s'", argv[0]); + execv(argv[0], argv); + } + // no error, exec() doesn't return + c_error(argv[0]); + exit(0); + } + *sh_pid = pid; + return master; +} + +//==================// +// i/o buffer class // +//------------------// +class IOBuf +{ +private: + int fd; + u_char i_buf[4096]; + u_char o_buf[4096]; + int i_pos, i_len, o_pos; +public: + IOBuf(int channel) : fd(channel), i_pos(0), i_len(0), o_pos(0) {} + operator int() { return fd; } + void ungetc() { --i_pos; } + bool flush_in(); + bool getc(u_char*); + bool nextc(u_char*); + bool putc(u_char); + bool flush_out(); +}; + +// read bytes into input buffer +//----------------------------- +bool IOBuf::flush_in() +{ + if ((i_len = read(fd, i_buf, sizeof(i_buf))) <= 0) + return false; + i_pos = 0; + return true; +} + +// get 1 char from input buffer +//----------------------------- +inline bool IOBuf::getc(u_char* c) +{ + if (i_pos == i_len) return false; + *c = i_buf[i_pos++]; + return true; +} + +// get next 1 char from input buffer +//---------------------------------- +inline bool IOBuf::nextc(u_char* c) +{ + if (i_pos == i_len) + if (!flush_in()) return false; + *c = i_buf[i_pos++]; + return true; +} + +// put 1 char to output buffer +//---------------------------- +inline bool IOBuf::putc(u_char c) +{ + if (o_pos == sizeof(o_buf)) + if (!flush_out()) return false; + o_buf[o_pos++] = c; + return true; +} + +// write bytes from output buffer +//------------------------------- +bool IOBuf::flush_out() +{ + int n; + for (int i = 0; i < o_pos; i += n) { + if ((n = write(fd, o_buf+i, o_pos-i)) <= 0) return false; + } + o_pos = 0; + return true; +} + +//=========================// +// TELNET command handling // (see RFC854 TELNET PROTOCOL SPECIFICATION) +//-------------------------// +enum { nIAC=255, nWILL=251, nWONT=252, nDO=253, nDONT=254 }; +enum { sSEND=1, sIS=0, sSB=250, sSE=240 }; +enum { oECHO=1, oSGA=3, oTERM=24, oNAWS=31 }; + +bool c_will_term = false; +bool c_will_naws = false; + +// terminal type & size +//--------------------- +char *term_type; +struct winsize win_size = {0,0,0,0}; + +// dumb terminal flag +//------------------- +bool dumb = false; + +u_char telnet_cmd(IOBuf* te) +{ + u_char cmd, c; + te->nextc(&cmd); + if (cmd == sSB) { + te->nextc(&c); + // accept terminal type request + if (c == oTERM) { // "SB TERM + te->nextc(&c); // IS + u_char* p = (u_char*)term_type; + te->nextc(p); // TERMINAL-TYPE + while (*p != nIAC) { + if (isupper(*p)) *p = _tolower(*p); + ++p; te->nextc(p); + } + *p = 0; + te->nextc(&c); // IAC SE" + return (u_char)oTERM; + } + // accept terminal size request + if (c == oNAWS) { // "SB NAWS + u_short col, row; + te->nextc((u_char*)&col); + te->nextc((u_char*)&col+1); // 00 00 (cols) + te->nextc((u_char*)&row); + te->nextc((u_char*)&row+1); // 00 00 (rows) + te->nextc(&c); + te->nextc(&c); // TAC SE" + win_size.ws_col = ntohs(col); + win_size.ws_row = ntohs(row); + return (u_char)oNAWS; + } + while (c != nIAC) te->nextc(&c); // "... IAC SE" + te->nextc(&c); + } + else if (cmd == nWILL || cmd == nWONT || cmd == nDO || cmd == nDONT) { + u_char c; + te->nextc(&c); + if (cmd == nWILL && c == oTERM) // "WILL TERM" + c_will_term = true; + else if (cmd == nWILL && c == oNAWS) // "WILL NAWS" + c_will_naws = true; + } + return cmd; +} + +//============================// +// TELNET initial negotiation // +//----------------------------// +void telnet_nego(int te_sock) +{ + IOBuf te = te_sock; + u_char c; + + // start terminal type negotiation + // IAC DO TERMINAL-TYPE + te.putc(nIAC); te.putc(nDO); te.putc(oTERM); + te.flush_out(); + te.nextc(&c); + if (c != nIAC) { + te.ungetc(); + return; + } + (void)telnet_cmd(&te); + if (c_will_term) { + // terminal type sub-negotiation + // IAC SB TERMINAL-TYPE SEND IAC SE + te.putc(nIAC); te.putc(sSB); te.putc(oTERM); + te.putc(sSEND); te.putc(nIAC); te.putc(sSE); + te.flush_out(); + // accept terminal type response + te.nextc(&c); + if (c != nIAC) { + te.ungetc(); + return; + } + (void)telnet_cmd(&te); + } + + // start terminal size negotiation + // IAC DO WINDOW-SIZE + te.putc(nIAC); te.putc(nDO); te.putc(oNAWS); + te.flush_out(); + te.nextc(&c); + if (c != nIAC) { + te.ungetc(); + return; + } + (void)telnet_cmd(&te); + if (c_will_naws) { + // accept terminal size response + te.nextc(&c); + if (c != nIAC) { + te.ungetc(); + return; + } + (void)telnet_cmd(&te); + } + + // SGA/ECHO + te.putc(nIAC); te.putc(nWILL); te.putc(oSGA); + te.putc(nIAC); te.putc(nDO); te.putc(oSGA); + te.putc(nIAC); te.putc(nWILL); te.putc(oECHO); + te.flush_out(); +} + +//=============================================// +// relaying of a terminal emulator and a shell // +//---------------------------------------------// +void telnet_session(int te_sock, int sh_pty) +{ + IOBuf te = te_sock; + IOBuf sh = sh_pty; + fd_set rtmp, rbits; + FD_ZERO(&rtmp); + FD_SET(te, &rtmp); + FD_SET(sh, &rtmp); + u_char c; + int cr = 0; + int cnt = 0; + for (;;) { + rbits = rtmp; + if (select(FD_SETSIZE, &rbits, 0, 0, 0) <= 0) { + break; + } + if (FD_ISSET(sh, &rbits)) { + // send data from a shell to a terminal + if (sh.flush_in() == false) { + break; + } + while (sh.getc(&c) == true) { + if (c == nIAC) { + // escape a TELNET IAC char + te.putc(c); + } + te.putc(c); + } + if (te.flush_out() == false) { + break; + } + if (cnt++ < 20) { + continue; // give priority to data from a shell + } + cnt = 0; + } + if (FD_ISSET(te, &rbits)) { + // send data from a terminal to a shell + if (te.flush_in() == false) { + break; + } + while (te.getc(&c) == true) { + if (c == nIAC && !dumb) { + u_char cmd = telnet_cmd(&te) ; + if (cmd == oNAWS) { + // resize pty by terminal size change notice + ioctl(sh_pty, TIOCSWINSZ, &win_size); + continue; + } + if (cmd != nIAC) { + continue; + } + } else if (c == '\r') { + cr = 1; + } else if (c == '\n' || c == '\0') { + if (cr) { // do not send LF or NUL just after CR + cr = 0; + continue; + } + } else { + cr = 0; + } + sh.putc(c); + } + if (sh.flush_out() == false) { + break; + } + } + } +} + +//=========================================================// +// connection of TELNET terminal emulator and Cygwin shell // +//---------------------------------------------------------// +int main(int argc, char** argv) +{ + (void)argc; + int listen_sock = -1; + int te_sock = -1; + int sh_pty = -1; + HANDLE hTerm = NULL; + int sh_pid, agent_pid = 0; + + + // configuration file (.cfg) path + get_cfg_filenames(); + debug_msg_print("cfg_base %s", cfg_base); + debug_msg_print("cfg_exe %s", cfg_exe); + debug_msg_print("conf_appdata_full %s", conf_appdata_full); + debug_msg_print("sys_conf %s", sys_conf); + debug_msg_print("usr_conf %s", usr_conf); + + + // set default values + cfg_data_t *cfg = create_cfg(); + cfg->port_start = PORT_START_DEFAULT; + cfg->port_range = PORT_RANGE_DEFAULT; + cfg->telsock_timeout = TELSOCK_TIMEOUT_DEFAULT; + cfg->home_chdir = HOME_CHDIR_DEFAULT; + cfg->enable_loginshell = ENABLE_LOGINSHELL_DEFAULT; + cfg->enable_agent_proxy = ENABLE_AGENT_PROXY_DEFAULT; + cfg->debug_flag = DEBUG_FLAG_DEFAULT; + + // load configuration + get_username_and_shell(cfg); // from /etc/passwd + cfg->dump(cfg, debug_msg_print); + load_cfg(cfg); + sh_env_t *sh_env = cfg->sh_env; + sh_env->add(sh_env, "SHELL", cfg->shell); + sh_env->add(sh_env, "USER", cfg->username); + debug_msg_print("loginshell %d", cfg->enable_loginshell); + cfg->dump(cfg, debug_msg_print); + + // read commandline arguments + get_args(argv, cfg); + cfg->dump(cfg, debug_msg_print); + + // restore values + debug_flag = cfg->debug_flag; + + if (cfg->shell == NULL) { + msg_print("missing shell"); + return 0; + } + if (cfg->term == NULL && cl_port <= 0) { + msg_print("missing terminal"); + return 0; + } + + if (cfg->change_dir != NULL) { + cfg->home_chdir = false; + if (cfg->enable_loginshell) { + sh_env->add(sh_env, "CHERE_INVOKING", "y"); + } + } + + // terminal side connection + if (cfg->cl_port > 0) { + // connect to the specified TCP port + cl_port = cfg->cl_port; + if ((te_sock = connect_client()) < 0) { + goto cleanup; + } + } else { + // prepare a TELNET listener socket + if ((listen_sock = listen_telnet(&listen_port, cfg)) < 0) { + goto cleanup; + } + debug_msg_print("execute terminal"); + + // execute a terminal emulator + if ((hTerm = exec_term(cfg)) == NULL) { + api_error("exec_term failed"); + goto cleanup; + } + // accept connection from the terminal emulator + if ((te_sock = accept_telnet(listen_sock, cfg)) < 0) { + goto cleanup; + } + shutdown(listen_sock, 2); + close(listen_sock); + listen_sock = -1; + } + // TELNET negotiation + term_type = cfg->term_type; + dumb = cfg->dumb; + if (!dumb) { + telnet_nego(te_sock); + } + + // execute ssh-agent proxy + if (cfg->enable_agent_proxy) { + agent_pid = exec_agent_proxy(sh_env); + } + + // execute a shell + debug_msg_print("execute shell"); + if ((sh_pty = exec_shell(&sh_pid, cfg)) < 0) { + debug_msg_print("exec_shell failed"); + goto cleanup; + } + // set initial pty window size + if (!dumb && c_will_naws && win_size.ws_col != 0) { + ioctl(sh_pty, TIOCSWINSZ, &win_size); + } + + debug_msg_print("entering telnet session"); + // relay the terminal emulator and the shell + telnet_session(te_sock, sh_pty); + + cleanup: + if (agent_pid > 0) { + kill(agent_pid, SIGTERM); + } + if (sh_pty >= 0) { + close(sh_pty); + kill(sh_pid, SIGKILL); + } + if (agent_pid > 0 || sh_pty >= 0) { + wait((int*)NULL); + } + if (listen_sock >= 0) { + shutdown(listen_sock, 2); + close(listen_sock); + } + if (te_sock >= 0) { + shutdown(te_sock, 2); + close(te_sock); + } + if (hTerm != NULL) { + WaitForSingleObject(hTerm, INFINITE); + CloseHandle(hTerm); + } + return 0; +} + +#ifdef NO_WIN_MAIN +// N -mwindows w肵Ă̂ +// st@C subsystem=windows ŐĂ +// vÕGg WinMainCRTStartup() ƂȂ +// cygwinŃCXg[gcc 11.2 ł͂ƂɎw肵ȂĂ main() R[ +// +// ȑOcygwingccł͎̃R[hKv̂Ȃ +// This program is an Win32 application but, start as Cygwin main(). +//------------------------------------------------------------------ +extern "C" { + void mainCRTStartup(void); + void WinMainCRTStartup(void) { mainCRTStartup(); } +}; +#endif + +//EOF diff --git a/cygwin/cygterm/cygterm.ico b/cygwin/cygterm/cygterm.ico new file mode 100644 index 000000000..8aa2877e0 Binary files /dev/null and b/cygwin/cygterm/cygterm.ico differ diff --git a/cygwin/cygterm/cygterm_cfg.cpp b/cygwin/cygterm/cygterm_cfg.cpp new file mode 100644 index 000000000..45db2d004 --- /dev/null +++ b/cygwin/cygterm/cygterm_cfg.cpp @@ -0,0 +1,398 @@ +/* + * (C) 2022- TeraTerm Project + * All rights reserved. + * + * This file is part of CygTerm+ + * + * CygTerm+ is free software; you can redistribute it and/or modify it + * under the terms of the GNU General Public License (GPL) as published by + * the Free Software Foundation; either version 2 of the License, or (at + * your option) any later version. + * + * CygTerm+ is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with cygterm; if not, see . + */ + +#include +#include +#include +#include + +#include "cygterm_cfg.h" + +#define DUMP_ENABLE 1 + +// additional env vars given to a shell +//------------------------------------- + +typedef struct sh_env_data_t { + struct sh_env_data_t* next; + char *name; + char *value; +} sh_env_data_t; + +typedef struct sh_env_private_tag { + sh_env_data_t *envp; +} sh_env_private_t; + +static bool env_add(sh_env_t *envp, const char* name, const char* value) +{ + sh_env_private_t *pr_data = (sh_env_private_t *)envp->private_data; + sh_env_data_t* e; + + if (name[0] == 0) { + return true; + } + e = (sh_env_data_t*)malloc(sizeof(*e)); + if (e == NULL) { + return false; + } + + e->name = strdup(name); + e->value = strdup(value); + e->next = NULL; + + if (pr_data->envp == NULL) { + pr_data->envp = e; + return true; + } + sh_env_data_t* env_data = pr_data->envp; + sh_env_data_t* prev_env = NULL; + while(1) { + if (strcmp(env_data->name, name) == 0) { + // O -> ւ + if (prev_env == NULL) { + pr_data->envp = e; + } else { + prev_env->next = e; + e->next = env_data->next; + } + free(env_data->name); + free(env_data->value); + free(env_data); + break; + } + if (env_data->next == NULL) { + // Ō܂ŗ + env_data->next = e; + break; + } + prev_env = env_data; + env_data = env_data->next; + } + + return true; +} + +static bool env_add1(sh_env_t *envp, const char* name_value) +{ + if (name_value[0] == 0) { + return true; + } + char *name = strdup(name_value); + char *p = strchr(name, '='); + char *value; + if (p == NULL) { + value = NULL; + } + else { + *p = 0; + value = strdup(p+1); + } + bool r = env_add(envp, name, value); + free(value); + free(name); + return r; +} + +static char *env_get(sh_env_t *envp, int index, char **value) +{ + sh_env_private_t *pr_data = (sh_env_private_t *)envp->private_data; + sh_env_data_t* e = pr_data->envp; + if (e == NULL) { + return NULL; + } + while(1) { + if (index == 0) { + *value = e->value; + return e->name;; + } + if (e->next == NULL) { + *value = NULL; + return NULL; + } + index--; + e = e->next; + } +} + +static void env_destry_all(sh_env_t *envp) +{ + sh_env_private_t *pr_data = (sh_env_private_t *)envp->private_data; + sh_env_data_t* e = pr_data->envp; + if (e == NULL) { + return; + } + pr_data->envp = NULL; + while(1) { + sh_env_data_t* e_next = e->next; + e->next = NULL; + free(e); + e = e_next; + if (e == NULL) { + break; + } + } +} + +static void env_destry(sh_env_t *envp) +{ + sh_env_private_t *pr_data = (sh_env_private_t *)envp->private_data; + env_destry_all(envp); + free(pr_data); + envp->private_data = NULL; + free(envp); +} + +sh_env_t *create_sh_env(void) +{ + sh_env_t *sh_env = (sh_env_t *)calloc(sizeof(*sh_env), 1); + if (sh_env == NULL) { + return NULL; + } + sh_env_private_t *pr_data = (sh_env_private_t *)calloc(sizeof(*pr_data), 1); + if (pr_data == NULL) { + free(sh_env); + return NULL; + } + sh_env->private_data = pr_data; + sh_env->destroy = env_destry; + sh_env->add = env_add; + sh_env->add1 = env_add1; + sh_env->get = env_get; + + return sh_env; +} + +static bool is_bool_string(const char *s) +{ + if (strchr("YyTt", *s) != NULL) + return true; + if (atoi(s) > 0) + return true; + + return false; +} + +//==================================// +// parse line in configuration file // +//----------------------------------// +static void parse_cfg_line(char *buf, cfg_data_t *cfg) +{ + // "KEY = VALUE" format in each line. + // skip leading/trailing blanks. KEY is not case-sensitive. + char* p1; + for (p1 = buf; isspace(*p1); ++p1); + if (!isalpha(*p1)) { + return; // comment line with non-alphabet 1st char + } + char* name = p1; + for (++p1; isalnum(*p1) || *p1 == '_'; ++p1); + char* p2; + for (p2 = p1; isspace(*p2); ++p2); + if (*p2 != '=') { + return; // igonore line without '=' + } + for (++p2; isspace(*p2); ++p2); + char* val = p2; + for (p2 += strlen(p2); isspace(*(p2-1)); --p2); + *p1 = *p2 = 0; + + if (!strcasecmp(name, "TERM")) { + // terminal emulator command line (host:%s, port#:%d) + free(cfg->term); + cfg->term = strdup(val); + } + else if (!strcasecmp(name, "SHELL")) { + // shell command line + if (strcasecmp(val, "AUTO") != 0) { + free(cfg->shell); + cfg->shell = strdup(val); + } + } + else if (!strcasecmp(name, "PORT_START")) { + // minimum port# for TELNET + cfg->port_start = atoi(val); + } + else if (!strcasecmp(name, "PORT_RANGE")) { + // number of ports for TELNET + cfg->port_range = atoi(val); + } + else if (!strcasecmp(name, "TERM_TYPE")) { + // terminal type name (maybe overridden by TELNET negotiation.) + free(cfg->term_type); + cfg->term_type = strdup(val); + } + else if (!strncasecmp(name, "ENV_", 4)) { + // additional env vars given to a shell + sh_env_t *sh_env = cfg->sh_env; + sh_env->add1(sh_env, val); + } + else if (!strcasecmp(name, "HOME_CHDIR")) { + // change directory to home + if (is_bool_string(val)) { + cfg->home_chdir = true; + } + } + else if (!strcasecmp(name, "LOGIN_SHELL")) { + // execute a shell as a login shell + if (is_bool_string(val)) { + cfg->enable_loginshell = true; + } + } + else if (!strcasecmp(name, "SOCKET_TIMEOUT")) { + // telnet socket timeout + cfg->telsock_timeout = atoi(val); + } + else if (!strcasecmp(name, "SSH_AGENT_PROXY")) { + // ssh-agent proxy + if (is_bool_string(val)) { + cfg->enable_agent_proxy = true; + } + } + else if (!strcasecmp(name, "DEBUG")) { + // debug mode + if (is_bool_string(val)) { + cfg->debug_flag = true; + } + } +} + +typedef struct { + sh_env_data_t *env; +} cfg_private_data_t; + +static void destroy(cfg_data_t *cfg_data) +{ +// env_destry_all(cfg_data); + sh_env_t *sh_env = cfg_data->sh_env; + sh_env->destroy(sh_env); + cfg_private_data_t *pr_data = (cfg_private_data_t *)cfg_data->private_data; + free(pr_data); + free(cfg_data); +} + +// read each setting parameter +// configuration file (.cfg) path +static bool load_cfg(cfg_data_t *cfg_data, const char *conf) +{ + FILE* fp = fopen(conf, "r"); + if (fp == NULL) { + return false; + } + + char buf[BUFSIZ]; + while (fgets(buf, sizeof(buf), fp) != NULL) { + parse_cfg_line(buf, cfg_data); + } + fclose(fp); + + return true; +} + +#if !defined(offsetof) +#define offsetof(s,m) ((size_t)&(((s*)0)->m)) +#endif + +#if DUMP_ENABLE +static void dump(cfg_data_t *cfg_data, void (*print)(const char* msg, ...)) +{ + const static struct { + const char *name; + size_t offset; + char type; + } list[] = { + { "username", offsetof(cfg_data_t, username), 's' }, + { "term", offsetof(cfg_data_t, term), 's' }, + { "termopt", offsetof(cfg_data_t, termopt), 's' }, + { "shell", offsetof(cfg_data_t, shell), 's' }, + { "term_type", offsetof(cfg_data_t, term_type), 's' }, + { "change_dir", offsetof(cfg_data_t, change_dir), 's' }, + { "port_start", offsetof(cfg_data_t, port_start), 'i' }, + { "port_range", offsetof(cfg_data_t, port_range), 'i' }, + { "cl_port", offsetof(cfg_data_t, cl_port), 'i' }, + { "home_chdir", offsetof(cfg_data_t, home_chdir), 'b' }, + { "enable_loginshell", offsetof(cfg_data_t, enable_loginshell), 'b' }, + { "telsock_timeout", offsetof(cfg_data_t, telsock_timeout), 'i' }, + { "enable_agent_proxy", offsetof(cfg_data_t, enable_agent_proxy), 'b' }, + { "dumb", offsetof(cfg_data_t, dumb), 'b' }, + { "debug_flag", offsetof(cfg_data_t, debug_flag), 'b' }, + }; + for (int i = 0; i < (int)(sizeof(list)/sizeof(list[0])); i++) { + char *p = (char *)cfg_data + list[i].offset; + switch (list[i].type) { + case 's': { + char *str = *(char **)p; + print("%s=%s", list[i].name, str == NULL ? "NULL" : str); + break; + } + case 'i': { + int i2 = *(int *)p; + print("%s=%d(0x%x)", list[i].name, i2, i2); + break; + } + case 'b': { + bool b = *(bool *)p; + print("%s=%i(%s)", list[i].name, b, b ? "true" : "false"); + break; + } + default: + print("?"); + break; + } + } + + sh_env_t *sh_env = cfg_data->sh_env; + for(int i = 0;;i++) { + char *value; + const char *env = sh_env->get(sh_env, i, &value); + if (env == NULL) { + break; + } + print("env %d %s=%s", i, env, value); + } +} +#else +static void dump(cfg_data_t *cfg_data, void (*print)(const char* msg, ...)) +{ + (void)cfg_data; + (void)print; +} +#endif + +cfg_data_t *create_cfg(void) +{ + cfg_data_t *cfg_data = (cfg_data_t *)calloc(sizeof(*cfg_data), 1); + if (cfg_data == NULL) { + return NULL; + } + cfg_private_data_t *pr_data = (cfg_private_data_t *)calloc(sizeof(*pr_data), 1); + if (pr_data == NULL) { + free(cfg_data); + return NULL; + } + + // data, func + cfg_data->private_data = pr_data; + cfg_data->sh_env = create_sh_env(); + cfg_data->destroy = destroy; + cfg_data->load = load_cfg; + cfg_data->dump = dump; + + return cfg_data; +} diff --git a/cygwin/cygterm/cygterm_cfg.h b/cygwin/cygterm/cygterm_cfg.h new file mode 100644 index 000000000..31593dd14 --- /dev/null +++ b/cygwin/cygterm/cygterm_cfg.h @@ -0,0 +1,66 @@ +/* + * (C) 2022- TeraTerm Project + * All rights reserved. + * + * This file is part of CygTerm+ + * + * CygTerm+ is free software; you can redistribute it and/or modify it + * under the terms of the GNU General Public License (GPL) as published by + * the Free Software Foundation; either version 2 of the License, or (at + * your option) any later version. + * + * CygTerm+ is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with cygterm; if not, see . + */ + +#pragma once + +#ifdef __cplusplus +extern "C" { +#endif + +typedef struct sh_env_tag { + void (*destroy)(struct sh_env_tag *sh_env_tag); + bool (*add)(struct sh_env_tag *sh_env_tag, const char *name, const char *value); + bool (*add1)(struct sh_env_tag *sh_env_tag, const char *namevalue); + char *(*get)(struct sh_env_tag *sh_env_tag, int index, char **value); + void *private_data; +} sh_env_t; + +sh_env_t *create_sh_env(void); + +typedef struct cfg_data_tag { + char *username; + char *term; // ex. "ttermpro.exe %s %d" + char *termopt; // ex. "/KR-UTF8" + char *shell; // ex. "/usr/bin/bash" + char *term_type; // terminal type ex. "vt100" + char *change_dir; // cd AVFN + int port_start; // default lowest port number + int port_range; // default number of ports + int cl_port; + bool home_chdir; // chdir to HOME + bool enable_loginshell; // login shell flag + int telsock_timeout; // telnet socket timeout + bool enable_agent_proxy; // ssh agent proxy + bool dumb; + bool debug_flag; // debug mode + bool (*save)(struct cfg_data_tag *cfg_data_tag, const char *fname); + bool (*load)(struct cfg_data_tag *cfg_data_tag, const char *fname); + void (*destroy)(struct cfg_data_tag *cfg_data_tag); + void (*dump)(struct cfg_data_tag *cfg_data_tag, void (*print)(const char* msg, ...)); + sh_env_t *sh_env; + void *private_data; +} cfg_data_t; + +cfg_data_t *load_cfg(const char *cfg); +cfg_data_t *create_cfg(void); + +#ifdef __cplusplus +} +#endif diff --git a/cygwin/cygterm/msys2term.cfg b/cygwin/cygterm/msys2term.cfg new file mode 100644 index 000000000..97fe196c7 --- /dev/null +++ b/cygwin/cygterm/msys2term.cfg @@ -0,0 +1,12 @@ +# CygTerm setting + +TERM = ttermpro.exe %s %d /E /KR=UTF8 /KT=UTF8 /VTICON=CygTerm /nossh +TERM_TYPE = vt100 +PORT_START = 20000 +PORT_RANGE = 40 +SHELL = auto +ENV_1 = MSYSTEM=MSYS +#ENV_1 = MSYSTEM=MINGW64 +#ENV_1 = MSYSTEM=MINGW32 +ENV_2 = +LOGIN_SHELL = Yes diff --git a/cygwin/cygterm/sub.cpp b/cygwin/cygterm/sub.cpp new file mode 100644 index 000000000..d5ae1f1d0 --- /dev/null +++ b/cygwin/cygterm/sub.cpp @@ -0,0 +1,320 @@ +/* + * Copyright (C) 2022- TeraTerm Project + * All rights reserved. + * + * This file is part of CygTerm+ + * + * CygTerm+ is free software; you can redistribute it and/or modify it + * under the terms of the GNU General Public License (GPL) as published by + * the Free Software Foundation; either version 2 of the License, or (at + * your option) any later version. + * + * CygTerm+ is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with cygterm; if not, see . + */ + +#include +#include +#include +#include +#include +#include +#define INITGUID +#include +#include + +#include "sub.h" + +/** + * }`oCgwchar_t֕ϊ + * @param[in] *str_ptr mb(char) + * @param[in] str_len mb(char)(0̂ƂÂƂ'\0'Ń^[~l[g邱) + * @param[in] code_page ϊR[hy[W + * @param[out] *w_len_ wchar_t,wchar_t,'\0'ϊL'\0'܂ + * (NULL̂Ƃ񒷂ԂȂ) + * @retval wchar_tւ̃|C^(NULL̎ϊG[) + * gp free() 邱 + */ +static wchar_t *_MultiByteToWideChar(const char *str_ptr, size_t str_len, int code_page, size_t *w_len_) +{ + DWORD flags = MB_ERR_INVALID_CHARS; + if (code_page == CP_ACP) { + code_page = (int)GetACP(); + } + if (code_page == CP_UTF8) { + // CP_UTF8 When this is set, dwFlags must be zero. + flags = 0; + } + if (w_len_ != NULL) { + *w_len_ = 0; + } + if (str_len == 0) { + str_len = strlen(str_ptr) + 1; + } + int len = ::MultiByteToWideChar(code_page, flags, + str_ptr, (int)str_len, + NULL, 0); + if (len == 0) { + return NULL; + } + wchar_t *wstr_ptr = (wchar_t *)malloc(len*sizeof(wchar_t)); + if (wstr_ptr == NULL) { + return NULL; + } + len = ::MultiByteToWideChar(code_page, flags, + str_ptr, (int)str_len, + wstr_ptr, len); + if (len == 0) { + free(wstr_ptr); + return NULL; + } + if (w_len_ != NULL) { + // ϊ(wchar_t)Ԃ + *w_len_ = len; + } + return wstr_ptr; +} + +/** + * wchar_t}`oCg֕ϊ + * ϊłȂ '?' ŏo͂ + * + * @param[in] *wstr_ptr wchar_t + * @param[in] wstr_len wchar_t(0̂ƂÂƂL'\0'Ń^[~l[g邱) + * @param[in] code_page ϊR[hy[W + * @param[out] *mb_len_ ϊ,byte,L'\0'ϊ'\0'܂ + * (NULL̂Ƃ񒷂ԂȂ) + * @retval mbւ̃|C^(NULL̎ϊG[) + * gp free() 邱 + */ +static char *_WideCharToMultiByte(const wchar_t *wstr_ptr, size_t wstr_len, int code_page, size_t *mb_len_) +{ + const DWORD flags = 0; + char *mb_ptr; + if (code_page == CP_ACP) { + code_page = (int)GetACP(); + } + if (mb_len_ != NULL) { + *mb_len_ = 0; + } + if (wstr_len == 0) { + wstr_len = wcslen(wstr_ptr) + 1; + } + size_t len = ::WideCharToMultiByte(code_page, flags, + wstr_ptr, (DWORD)wstr_len, + NULL, 0, + NULL, NULL); + if (len == 0) { + return NULL; + } + mb_ptr = (char *)malloc(len); + if (mb_ptr == NULL) { + return NULL; + } + len = ::WideCharToMultiByte(code_page, flags, + wstr_ptr, (DWORD)wstr_len, + mb_ptr, (int)len, + NULL,NULL); + if (len == 0) { + free(mb_ptr); + return NULL; + } + if (mb_len_ != NULL) { + // ϊ(byte)Ԃ + *mb_len_ = len; + } + return mb_ptr; +} + +char *ToCharW(const wchar_t *strW) +{ + if (strW == NULL) return NULL; + char *strA = _WideCharToMultiByte(strW, 0, CP_ACP, NULL); + return strA; +} + +wchar_t *ToWcharA(const char *strA) +{ + if (strA == NULL) return NULL; + wchar_t *strW = _MultiByteToWideChar(strA, 0, CP_ACP, NULL); + return strW; +} + +wchar_t *ToWcharU8(const char *strU8) +{ + if (strU8 == NULL) return NULL; + wchar_t *strW = _MultiByteToWideChar(strU8, 0, CP_UTF8, NULL); + return strW; +} + +char *ToU8W(const wchar_t *strW) +{ + if (strW == NULL) return NULL; + char *strU8 = _WideCharToMultiByte(strW, 0, CP_UTF8, NULL); + return strU8; +} + +/** + * GetModuleFileNameW() ̓Iobt@ + * + * @param buf i[obt@ + * svɂȂfree() + * @return G[R[h,0(=NO_ERROR)̂ƂG[Ȃ + */ +DWORD hGetModuleFileNameT(HMODULE hModule, TCHAR **buf) +{ + size_t size = MAX_PATH; + TCHAR *b = (TCHAR *)malloc(sizeof(TCHAR) * size); + DWORD error; + if (b == NULL) { + error = ERROR_NOT_ENOUGH_MEMORY; + goto error_return; + } + + for(;;) { + DWORD r = GetModuleFileName(hModule, b, (DWORD)size); + if (r == 0) { + // ֐s + error = GetLastError(); + break; + } else if (r < size - 1) { + // 擾 + size = r + 1; + b = (TCHAR *)realloc(b, sizeof(TCHAR) * size); + *buf = b; + return NO_ERROR; + } else { + size *= 2; + TCHAR *p = (TCHAR *)realloc(b, sizeof(TCHAR) * size); + if (p == NULL) { + free(b); + error = ERROR_NOT_ENOUGH_MEMORY; + break; + } + b = p; + } + } + + // error + free(b); +error_return: + *buf = NULL; + return error; +} + +/** + * |[^ułƂē삷邩 + * + * @retval TRUE |[^u + * @retval FALSE ʏCXg[ + */ +BOOL IsPortableMode(void) +{ + static BOOL called = FALSE; + static BOOL ret_val = FALSE; + if (called == FALSE) { + called = TRUE; + TCHAR *exe; + hGetModuleFileNameT(NULL, &exe); +#if UNICODE + wchar_t *exe_path = wcsdup(exe); +#else + wchar_t *exe_path = ToWcharA(exe); +#endif + wchar_t *bs = wcsrchr(exe_path, L'\\'); + *bs = 0; + const wchar_t *portable_ini_base = L"\\portable.ini"; + size_t len = wcslen(exe_path) + wcslen(portable_ini_base) + 1; + wchar_t *portable_iniW = (wchar_t *)malloc(sizeof(wchar_t) * len); + wcscpy(portable_iniW, exe_path); + wcscat(portable_iniW, portable_ini_base); +#if UNICODE + DWORD r = GetFileAttributesW(portable_iniW); +#else + char *portable_iniA = ToCharW(portable_iniW); + DWORD r = GetFileAttributesA(portable_iniA); + free(portable_iniA); +#endif + free(portable_iniW); + if (r == INVALID_FILE_ATTRIBUTES) { + //t@C݂Ȃ + ret_val = FALSE; + } + else { + ret_val = TRUE; + } + } + return ret_val; +} + +// $APPDATA wchar_t +static wchar_t *get_appdata_dir(void) +{ +#if _WIN32_WINNT > 0x0600 + wchar_t *appdata; + SHGetKnownFolderPath(FOLDERID_RoamingAppData, 0, NULL, &appdata); + wchar_t *retval = wcsdup(appdata); + CoTaskMemFree(appdata); + return retval; +#else + LPITEMIDLIST pidl; + HRESULT r = SHGetSpecialFolderLocation(NULL, CSIDL_APPDATA, &pidl); + if (r == NOERROR) { + wchar_t appdata[MAX_PATH]; + SHGetPathFromIDListW(pidl, appdata); + wchar_t *retval = wcsdup(appdata); + CoTaskMemFree(pidl); + return retval; + } + char *env = getenv("APPDATA"); + if (env == NULL) { + // ƌ windows ? + abort(); + } + wchar_t *appdata = ToWcharA(env); + return appdata; +#endif +} + +// L'\\' -> L'/' +static void convert_bsW(wchar_t *path) +{ + wchar_t *p = path; + while(*p != 0) { + if (*p == L'\\') { + *p = L'/'; + } + p++; + } +} + +// cygwin $APPDATA utf-8 Ԃ +char *GetAppDataDirU8() +{ + wchar_t *appdataW = get_appdata_dir(); + convert_bsW(appdataW); + char *appdataU8 = ToU8W(appdataW); + free(appdataW); + return appdataU8; +} + +/** + * full path exet@CԂ + */ +char *GetModuleFileNameU8(void) +{ + TCHAR *buf; + hGetModuleFileNameT(NULL, &buf); + convert_bsW(buf); +#if UNICODE + char *exe = ToU8W(buf); +#else + char *exe = strdup(buf); +#endif + return exe; +} diff --git a/cygwin/cygterm/sub.h b/cygwin/cygterm/sub.h new file mode 100644 index 000000000..bd83b5607 --- /dev/null +++ b/cygwin/cygterm/sub.h @@ -0,0 +1,27 @@ +/* + * Copyright (C) 2022- TeraTerm Project + * All rights reserved. + * + * This file is part of CygTerm+ + * + * CygTerm+ is free software; you can redistribute it and/or modify it + * under the terms of the GNU General Public License (GPL) as published by + * the Free Software Foundation; either version 2 of the License, or (at + * your option) any later version. + * + * CygTerm+ is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with cygterm; if not, see . + */ + +#pragma once + +BOOL IsPortableMode(void); +char *GetAppDataDirU8(void); +wchar_t *ToWcharU8(const char *strU8); +char *ToU8W(const wchar_t *strW); +char *GetModuleFileNameU8(void); diff --git a/cygwin/cygterm/toolchain_i686-cygwin.cmake b/cygwin/cygterm/toolchain_i686-cygwin.cmake new file mode 100644 index 000000000..f4a6f546d --- /dev/null +++ b/cygwin/cygterm/toolchain_i686-cygwin.cmake @@ -0,0 +1,8 @@ +set(CMAKE_SYSROOT /usr/i686-pc-cygwin/sys-root) +set(CMAKE_C_COMPILER i686-pc-cygwin-gcc) +set(CMAKE_CXX_COMPILER i686-pc-cygwin-g++) +set(CMAKE_RC_COMPILER i686-pc-cygwin-windres) +if(NOT EXISTS ${CMAKE_SYSROOT}) + unset(CMAKE_RC_COMPILER) + unset(CMAKE_SYSROOT) +endif() diff --git a/cygwin/cygterm/toolchain_x86_64-cygwin.cmake b/cygwin/cygterm/toolchain_x86_64-cygwin.cmake new file mode 100644 index 000000000..b8fd21fbf --- /dev/null +++ b/cygwin/cygterm/toolchain_x86_64-cygwin.cmake @@ -0,0 +1,8 @@ +set(CMAKE_SYSROOT /usr/x86_64-pc-cygwin/sys-root) +set(CMAKE_C_COMPILER x86_64-pc-cygwin-gcc) +set(CMAKE_CXX_COMPILER x86_64-pc-cygwin-g++) +set(CMAKE_RC_COMPILER x86_64-pc-cygwin-windres) +if(NOT EXISTS ${CMAKE_SYSROOT}) + unset(CMAKE_RC_COMPILER) + unset(CMAKE_SYSROOT) +endif() diff --git a/cygwin/cygterm_build/CMakeLists.txt b/cygwin/cygterm_build/CMakeLists.txt new file mode 100644 index 000000000..5461f3cdd --- /dev/null +++ b/cygwin/cygterm_build/CMakeLists.txt @@ -0,0 +1,62 @@ +# cygterm,msys2term をビルドする +# - ${CMAKE_CURRENT_LIST_DIR}/../cygtool/build_cygterm.cmake を使ってビルド +# - ${CMAKE_BINARY_DIR}/$ にビルドしたファイルを出力 +# - install で出力先にコピー + +cmake_minimum_required(VERSION 3.13) # for Generator-Expression + +set(CYGTERM_DIR "${CMAKE_CURRENT_LIST_DIR}/../cygterm") + +file(GLOB SRC "${CYGTERM_DIR}/*.cpp" "${CYGTERM_DIR}/*.h") + +add_custom_target( + cygterm_build ALL + DEPENDS ${CMAKE_CURRENT_BINARY_DIR}/build_mark.txt + DEPENDS ${SRC} + SOURCES ${SRC} + ) + +file(MAKE_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/cygterm_build) + +if("${CMAKE_GENERATOR}" MATCHES "Visual Studio") + set(BINARY_DIR "${CMAKE_BINARY_DIR}/$") +else() + set(BINARY_DIR "${CMAKE_BINARY_DIR}") +endif() + +add_custom_command( + OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/build_mark.txt + COMMAND ${CMAKE_COMMAND} -E echo ${BINARY_DIR} + COMMAND ${CMAKE_COMMAND} -DCMAKE_INSTALL_PREFIX=${BINARY_DIR} -P ${CYGTERM_DIR}/build_cygterm.cmake + COMMAND ${CMAKE_COMMAND} -E touch ${CMAKE_CURRENT_BINARY_DIR}/build_mark.txt + WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/cygterm_build + ) + +install( + FILES + ${BINARY_DIR}/cygterm+-x86_64/cygterm.exe + ${BINARY_DIR}/cygterm+-x86_64/cygterm.cfg + DESTINATION cygterm+-x86_64 + OPTIONAL + ) +install( + FILES + ${BINARY_DIR}/cygterm+-x86_64/cygterm.exe + ${BINARY_DIR}/cygterm+-x86_64/cygterm.cfg + DESTINATION . + OPTIONAL + ) +install( + FILES + ${BINARY_DIR}/cygterm+-i686/cygterm.exe + ${BINARY_DIR}/cygterm+-i686/cygterm.cfg + DESTINATION cygterm+-i686 + OPTIONAL + ) +install( + FILES + ${BINARY_DIR}/msys2term.exe + ${BINARY_DIR}/msys2term.cfg + DESTINATION . + OPTIONAL + ) diff --git a/cygwin/cygtool/CMakeLists.txt b/cygwin/cygtool/CMakeLists.txt new file mode 100644 index 000000000..669e05c59 --- /dev/null +++ b/cygwin/cygtool/CMakeLists.txt @@ -0,0 +1,83 @@ +cmake_minimum_required(VERSION 3.11) + +set(PACKAGE_NAME "cygtool") + +project(${PACKAGE_NAME}) + +add_library( + ${PACKAGE_NAME} SHARED + cygtool.c + cygtool.h + ) +if(MSVC) + target_sources( + ${PACKAGE_NAME} + PRIVATE + cygtool.def + ) +endif() + +if(MINGW) + # libgcc_s_dw2-1.dll に依存しないため + target_link_options( + ${PACKAGE_NAME} + PRIVATE + -static-libgcc + -Wl,--add-stdcall-alias + ) +endif() + +if(SUPPORT_OLD_WINDOWS) + if(MSVC) + target_sources( + ${PACKAGE_NAME} + PRIVATE + ../../teraterm/common/compat_w95_vs2005.c + ) + endif() + if(MINGW) + target_sources( + ${PACKAGE_NAME} + PRIVATE + ../../teraterm/libmingw/tlssup.c + ) + endif() +endif(SUPPORT_OLD_WINDOWS) + +if(MINGW) + set_target_properties( + ${PACKAGE_NAME} + PROPERTIES PREFIX "" + SUFFIX ".dll" + ) +endif() + +target_link_libraries( + ${PACKAGE_NAME} + PRIVATE + version + ) + +target_include_directories( + ${PACKAGE_NAME} + PRIVATE + ${CMAKE_CURRENT_LIST_DIR}/../../teraterm/common + ) + +install( + TARGETS ${PACKAGE_NAME} + RUNTIME DESTINATION . + ) + +###### cygtool_tester + +add_executable( + cygtool_tester + cygtool_tester.c + ) + +target_link_libraries( + cygtool_tester + PRIVATE + ${PACKAGE_NAME} + ) diff --git a/cygwin/cygtool/README.md b/cygwin/cygtool/README.md new file mode 100644 index 000000000..18a2e5cab --- /dev/null +++ b/cygwin/cygtool/README.md @@ -0,0 +1,16 @@ +# cygtool.dll + +- インストーラー inno setup のスクリプトで使用 +- 32bit dll でなければならない + +## 機能 + +次のエントリを export している + +- FindCygwinPath + - Cygwinがインストールされているフォルダを返す +- PortableExecutableMachine + - DLL(cygwin1.dll)が32/64bit版を返す +- CygwinVersion + - DLL(cygwin1.dll用)のバージョンを返す + diff --git a/cygwin/cygtool/build_cygtool.cmake b/cygwin/cygtool/build_cygtool.cmake new file mode 100644 index 000000000..a6387a82c --- /dev/null +++ b/cygwin/cygtool/build_cygtool.cmake @@ -0,0 +1,44 @@ +# +# 32bit版cygtoolをビルドする +# 例 +# mkdir bulid_cygtool +# cd bulid_cygtool +# cmake -P ../build_cygtool.cmake +# +if(NOT DEFINED CMAKE_GENERATOR) + if(${CMAKE_COMMAND} MATCHES "mingw") + # meybe mingw + set(CMAKE_GENERATOR "Unix Makefiles") + elseif(CMAKE_HOST_WIN32) + set(CMAKE_GENERATOR "Visual Studio 17 2022") + else() + set(CMAKE_GENERATOR "Unix Makefiles") + endif() +endif() +if((${CMAKE_GENERATOR} MATCHES "Visual Studio 17 2022") OR + (${CMAKE_GENERATOR} MATCHES "Visual Studio 16 2019")) + # 32bit build for inno setup + set(GENERATE_OPTION "-A;Win32") +elseif(${CMAKE_COMMAND} MATCHES "msys64/mingw64/bin") + message("switch msys 32bit env") + set(ENV{PATH} "c:\\msys64\\mingw32\\bin;c:\\msys64\\usr\\bin") + set(CMAKE_COMMAND "C:/msys64/mingw32/bin/cmake.exe") +endif() + +message("CMAKE_GENERATOR=${CMAKE_GENERATOR}") +message("CMAKE_INSTALL_PREFIX=${CMAKE_INSTALL_PREFIX}") +message("CMAKE_TOOLCHAIN_FILE=${CMAKE_TOOLCHAIN_FILE}") + +execute_process( + COMMAND ${CMAKE_COMMAND} ${CMAKE_CURRENT_LIST_DIR} -G ${CMAKE_GENERATOR} ${GENERATE_OPTION} -DCMAKE_INSTALL_PREFIX=${CMAKE_INSTALL_PREFIX} -DCMAKE_TOOLCHAIN_FILE=${CMAKE_TOOLCHAIN_FILE} + ) + +execute_process( + COMMAND ${CMAKE_COMMAND} --build . --config release + ) + +if(DEFINED CMAKE_INSTALL_PREFIX) + execute_process( + COMMAND ${CMAKE_COMMAND} --build . --config release --target install + ) +endif() diff --git a/cygwin/cygtool/cygtool.c b/cygwin/cygtool/cygtool.c new file mode 100644 index 000000000..1fdbc76a8 --- /dev/null +++ b/cygwin/cygtool/cygtool.c @@ -0,0 +1,167 @@ +/* + * Copyright (C) 2014- TeraTerm Project + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * 3. The name of the author may not be used to endorse or promote products + * derived from this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE AUTHORS ``AS IS'' AND ANY EXPRESS OR + * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES + * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. + * IN NO EVENT SHALL THE AUTHORS BE LIABLE FOR ANY DIRECT, INDIRECT, + * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT + * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, + * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY + * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF + * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */ + +#include +#include +#include + +#define CYGTOOL_DLL +#include "cygtool.h" + +int __stdcall FindCygwinPath(const wchar_t *CygwinDirectory, wchar_t *Dir, size_t Dirlen) +{ + wchar_t file[MAX_PATH], *filename; + char c; + + /* zero-length string from Inno Setup is NULL */ + if (CygwinDirectory == NULL) { + goto search_path; + } + + if (CygwinDirectory[0] != 0) { + if (SearchPathW(CygwinDirectory, L"bin\\cygwin1", L".dll", _countof(file), file, &filename) > 0) { + goto found_dll; + } + } + +search_path:; + if (SearchPathW(NULL, L"cygwin1", L".dll", _countof(file), file, &filename) > 0) { + goto found_dll; + } + + for (c = 'C' ; c <= 'Z' ; c++) { + wchar_t tmp[MAX_PATH]; + swprintf(tmp, _countof(tmp), L"%c:\\cygwin\\bin;%c:\\cygwin64\\bin", c, c); + if (SearchPathW(tmp, L"cygwin1", L".dll", _countof(file), file, &filename) > 0) { + goto found_dll; + } + } + + return 0; + +found_dll:; + wmemset(Dir, '\0', Dirlen); + if (Dirlen <= wcslen(file) - 16) { + return 0; + } + wmemcpy(Dir, file, wcslen(file) - 16); // delete "\\bin\\cygwin1.dll" + return 1; +} + +int __stdcall PortableExecutableMachine(const wchar_t *file) +{ + FILE *fp; + unsigned char buf[4]; + long e_lfanew; + WORD Machine; + + if (_wfopen_s(&fp, file, L"rb") != 0) { + return IMAGE_FILE_MACHINE_UNKNOWN; + } + + // IMAGE_DOS_HEADER + if (fseek(fp, 0x3c, SEEK_SET) != 0) { + fclose(fp); + return IMAGE_FILE_MACHINE_UNKNOWN; + } + if (fread(buf, sizeof(char), 4, fp) < 4) { + fclose(fp); + return IMAGE_FILE_MACHINE_UNKNOWN; + } + e_lfanew = buf[0] + (buf[1] << 8) + (buf[1] << 16) + (buf[1] << 24); + + // IMAGE_NT_HEADERS32 + // DWORD Signature; + // IMAGE_FILE_HEADER FileHeader; + if (fseek(fp, e_lfanew + 4, SEEK_SET) != 0) { + fclose(fp); + return IMAGE_FILE_MACHINE_UNKNOWN; + } + if (fread(buf, sizeof(char), 2, fp) < 2) { + fclose(fp); + return IMAGE_FILE_MACHINE_UNKNOWN; + } + Machine = buf[0] + (buf[1] << 8); + + fclose(fp); + + return Machine; +} + +int __stdcall CygwinVersion(const wchar_t *dll, int *major, int *minor) +{ + DWORD dwSize; + DWORD dwHandle; + LPVOID lpBuf; + UINT uLen; + VS_FIXEDFILEINFO *pFileInfo; + + dwSize = GetFileVersionInfoSizeW(dll, &dwHandle); + if (dwSize == 0) { + return 0; + } + + lpBuf = malloc(dwSize); + if (!GetFileVersionInfoW(dll, dwHandle, dwSize, lpBuf)) { + free(lpBuf); + return 0; + } + + if (!VerQueryValueW(lpBuf, L"\\", (LPVOID*)&pFileInfo, &uLen)) { + free(lpBuf); + return 0; + } + + *major = HIWORD(pFileInfo->dwFileVersionMS); + *minor = LOWORD(pFileInfo->dwFileVersionMS); + + free(lpBuf); + + return 1; +} + +BOOL WINAPI DllMain(HANDLE hInstance, + ULONG ul_reason_for_call, + LPVOID lpReserved) +{ + switch( ul_reason_for_call ) { + case DLL_THREAD_ATTACH: + /* do thread initialization */ + break; + case DLL_THREAD_DETACH: + /* do thread cleanup */ + break; + case DLL_PROCESS_ATTACH: + /* do process initialization */ + break; + case DLL_PROCESS_DETACH: + /* do process cleanup */ + break; + } + return TRUE; +} diff --git a/installer/cygtool/cygtool.def b/cygwin/cygtool/cygtool.def similarity index 100% rename from installer/cygtool/cygtool.def rename to cygwin/cygtool/cygtool.def diff --git a/cygwin/cygtool/cygtool.h b/cygwin/cygtool/cygtool.h new file mode 100644 index 000000000..3b7f963ab --- /dev/null +++ b/cygwin/cygtool/cygtool.h @@ -0,0 +1,39 @@ +/* + * Copyright (C) 2022- TeraTerm Project + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * 3. The name of the author may not be used to endorse or promote products + * derived from this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE AUTHORS ``AS IS'' AND ANY EXPRESS OR + * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES + * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. + * IN NO EVENT SHALL THE AUTHORS BE LIABLE FOR ANY DIRECT, INDIRECT, + * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT + * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, + * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY + * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF + * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */ + +#pragma once + +#ifdef CYGTOOL_DLL +#define CYGTOOL_API __declspec(dllexport) +#else +#define CYGTOOL_API __declspec(dllimport) +#endif + +CYGTOOL_API int __stdcall FindCygwinPath(const wchar_t *CygwinDirectory, wchar_t *Dir, size_t Dirlen); +CYGTOOL_API int __stdcall PortableExecutableMachine(const wchar_t *file); +CYGTOOL_API int __stdcall CygwinVersion(const wchar_t *dll, int *major, int *minor); diff --git a/cygwin/cygtool/cygtool.mak b/cygwin/cygtool/cygtool.mak new file mode 100644 index 000000000..0b8778f8f --- /dev/null +++ b/cygwin/cygtool/cygtool.mak @@ -0,0 +1,17 @@ +CPP=cl.exe +LINK32=link.exe + +CFLAG=/nologo /I "..\..\teraterm\common" /O2 /D "WIN32" /D "NDEBUG" /D "_WINDOWS" /D "_MBCS" /W2 +LDFLAG=/nologo /SUBSYSTEM:WINDOWS /DLL + +all: cygtool.dll cygtool.exe + +cygtool.dll: cygtool.c + $(CPP) $(CFLAG) /MT /c cygtool.c + $(LINK32) $(LDFLAG) /DEF:cygtool.def cygtool.obj version.lib + +cygtool.exe: cygtool.c + $(CPP) $(CFLAG) /D "EXE" cygtool.c version.lib + +clean: + del *.exe *.dll *.obj *.exp *.lib diff --git a/cygwin/cygtool/cygtool.v16.vcxproj b/cygwin/cygtool/cygtool.v16.vcxproj new file mode 100644 index 000000000..0f787691a --- /dev/null +++ b/cygwin/cygtool/cygtool.v16.vcxproj @@ -0,0 +1,101 @@ + + + + + Debug + Win32 + + + Release + Win32 + + + + 16.0 + Win32Proj + {e8955970-1031-42b4-9419-f82d9dd80c66} + cygtool + 10.0 + cygtool + + + + DynamicLibrary + true + v142 + MultiByte + + + DynamicLibrary + false + v142 + true + MultiByte + + + + + + + + + + + + + + + true + + + false + + + + Level2 + true + WIN32;_DEBUG;_CONSOLE;%(PreprocessorDefinitions) + true + true + MultiThreadedDebug + + + Console + true + version.lib;%(AdditionalDependencies) + cygtool.def + + + + + Level4 + true + true + true + WIN32;NDEBUG;_CONSOLE;%(PreprocessorDefinitions) + true + true + MultiThreaded + + + Console + true + true + true + version.lib;%(AdditionalDependencies) + cygtool.def + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/cygwin/cygtool/cygtool.v17.vcxproj b/cygwin/cygtool/cygtool.v17.vcxproj new file mode 100644 index 000000000..e04c67e93 --- /dev/null +++ b/cygwin/cygtool/cygtool.v17.vcxproj @@ -0,0 +1,101 @@ + + + + + Debug + Win32 + + + Release + Win32 + + + + 16.0 + Win32Proj + {e8955970-1031-42b4-9419-f82d9dd80c66} + cygtool + 10.0 + cygtool + + + + DynamicLibrary + true + v143 + MultiByte + + + DynamicLibrary + false + v143 + true + MultiByte + + + + + + + + + + + + + + + true + + + false + + + + Level2 + true + WIN32;_DEBUG;_CONSOLE;%(PreprocessorDefinitions) + true + true + MultiThreadedDebug + + + Console + true + version.lib;%(AdditionalDependencies) + cygtool.def + + + + + Level4 + true + true + true + WIN32;NDEBUG;_CONSOLE;%(PreprocessorDefinitions) + true + true + MultiThreaded + + + Console + true + true + true + version.lib;%(AdditionalDependencies) + cygtool.def + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/cygwin/cygtool/cygtool_tester.c b/cygwin/cygtool/cygtool_tester.c new file mode 100644 index 000000000..13d9c9cfc --- /dev/null +++ b/cygwin/cygtool/cygtool_tester.c @@ -0,0 +1,86 @@ +/* + * Copyright (C) 2022- TeraTerm Project + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * 3. The name of the author may not be used to endorse or promote products + * derived from this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE AUTHORS ``AS IS'' AND ANY EXPRESS OR + * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES + * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. + * IN NO EVENT SHALL THE AUTHORS BE LIABLE FOR ANY DIRECT, INDIRECT, + * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT + * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, + * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY + * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF + * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */ + +// cygtool.c 番 + +#include +#include +#include + +#include "cygtool.h" + +int main(void) +{ + wchar_t file[MAX_PATH]; + size_t file_len = _countof(file); + int version_major, version_minor; + int res; + + printf("FindCygwinPath()\n"); + res = FindCygwinPath(L"", file, file_len); + printf(" result => %d\n", res); + if (!res) { + printf("\n"); + return -1; + } + printf(" Cygwin directory => %ls\n", file); + printf("\n"); + + printf("PortableExecutableMachine()\n"); + wcsncat_s(file, _countof(file), L"\\bin\\cygwin1.dll", _TRUNCATE); + printf(" Cygwin DLL => %ls\n", file); + res = PortableExecutableMachine(file); + printf(" Machine => x%04x", res); + switch (res) { + case IMAGE_FILE_MACHINE_I386: + printf(" = %s\n", "IMAGE_FILE_MACHINE_I386"); + break; + case IMAGE_FILE_MACHINE_AMD64: + printf(" = %s\n", "IMAGE_FILE_MACHINE_AMD64"); + break; + default: + printf("\n"); + return -1; + break; + } + printf("\n"); + + printf("CygwinVersion()\n"); + printf(" Cygwin DLL => %ls\n", file); + res = CygwinVersion(file, &version_major, &version_minor); + printf(" result => %d\n", res); + if (!res) { + printf("\n"); + return -1; + } + printf(" version_major => %d\n", version_major); + printf(" version_minor => %d\n", version_minor); + printf("\n"); + + return 0; +} diff --git a/cygwin/cygtool_build/CMakeLists.txt b/cygwin/cygtool_build/CMakeLists.txt new file mode 100644 index 000000000..de628b35f --- /dev/null +++ b/cygwin/cygtool_build/CMakeLists.txt @@ -0,0 +1,46 @@ +# 32bit Windows 用 cygtool をビルドする + +cmake_minimum_required(VERSION 3.13) # for Generator-Expression + +if(CMAKE_HOST_SYSTEM_NAME MATCHES "Linux") + # linux上ではcygwin関連はビルドしない + return() +endif() + +set(CYGTOOL_DIR "${CMAKE_CURRENT_LIST_DIR}/../cygtool") +if("${CMAKE_GENERATOR}" MATCHES "Visual Studio") + set(BINARY_DIR "${CMAKE_BINARY_DIR}/$") +else() + set(BINARY_DIR "${CMAKE_BINARY_DIR}") +endif() + +set(SRC + ${CYGTOOL_DIR}/cygtool.c + ${CYGTOOL_DIR}/cygtool.h + ${CYGTOOL_DIR}/cygtool.def + ) + +add_custom_target( + cygtool ALL + DEPENDS ${BINARY_DIR}/cygtool.dll + DEPENDS ${SRC} + SOURCES ${SRC} + ) + +file(MAKE_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/cygtool_build) + +add_custom_command( + OUTPUT ${BINARY_DIR}/cygtool.dll + DEPENDS ${SRC} + COMMAND ${CMAKE_COMMAND} + -DCMAKE_GENERATOR=${CMAKE_GENERATOR} + -DCMAKE_INSTALL_PREFIX=${BINARY_DIR} + -DCMAKE_TOOLCHAIN_FILE=${CMAKE_TOOLCHAIN_FILE} + -P ${CYGTOOL_DIR}/build_cygtool.cmake + WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/cygtool_build + ) + +install( + FILES ${BINARY_DIR}/cygtool.dll + DESTINATION . + ) diff --git a/cygwin/cygtool_build/README.md b/cygwin/cygtool_build/README.md new file mode 100644 index 000000000..8a52108da --- /dev/null +++ b/cygwin/cygtool_build/README.md @@ -0,0 +1,4 @@ +# cygtool.dllをビルドするためのフォルダ + +- cmake 64bitビルド時用 +- cmake 32bitビルド時は cygwin/cygtool/ でそのままビルドする diff --git a/cygwin/cygwin.v16.sln b/cygwin/cygwin.v16.sln new file mode 100644 index 000000000..1296d7be8 --- /dev/null +++ b/cygwin/cygwin.v16.sln @@ -0,0 +1,37 @@ + +Microsoft Visual Studio Solution File, Format Version 12.00 +# Visual Studio Version 16 +VisualStudioVersion = 16.0.31729.503 +MinimumVisualStudioVersion = 10.0.40219.1 +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "cyglib", "cyglib\cyglib.v16.vcxproj", "{A171F48C-BFB2-4766-97C3-9B8B7BE9D548}" +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "cyglaunch", "cyglaunch\cyglaunch.v16.vcxproj", "{11B49891-80F0-4DD3-B6E9-70BBE64A4BBF}" +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "cygtool", "cygtool\cygtool.v16.vcxproj", "{E8955970-1031-42B4-9419-F82D9DD80C66}" +EndProject +Global + GlobalSection(SolutionConfigurationPlatforms) = preSolution + Debug|x86 = Debug|x86 + Release|x86 = Release|x86 + EndGlobalSection + GlobalSection(ProjectConfigurationPlatforms) = postSolution + {A171F48C-BFB2-4766-97C3-9B8B7BE9D548}.Debug|x86.ActiveCfg = Debug|Win32 + {A171F48C-BFB2-4766-97C3-9B8B7BE9D548}.Debug|x86.Build.0 = Debug|Win32 + {A171F48C-BFB2-4766-97C3-9B8B7BE9D548}.Release|x86.ActiveCfg = Release|Win32 + {A171F48C-BFB2-4766-97C3-9B8B7BE9D548}.Release|x86.Build.0 = Release|Win32 + {11B49891-80F0-4DD3-B6E9-70BBE64A4BBF}.Debug|x86.ActiveCfg = Debug|Win32 + {11B49891-80F0-4DD3-B6E9-70BBE64A4BBF}.Debug|x86.Build.0 = Debug|Win32 + {11B49891-80F0-4DD3-B6E9-70BBE64A4BBF}.Release|x86.ActiveCfg = Release|Win32 + {11B49891-80F0-4DD3-B6E9-70BBE64A4BBF}.Release|x86.Build.0 = Release|Win32 + {E8955970-1031-42B4-9419-F82D9DD80C66}.Debug|x86.ActiveCfg = Debug|Win32 + {E8955970-1031-42B4-9419-F82D9DD80C66}.Debug|x86.Build.0 = Debug|Win32 + {E8955970-1031-42B4-9419-F82D9DD80C66}.Release|x86.ActiveCfg = Release|Win32 + {E8955970-1031-42B4-9419-F82D9DD80C66}.Release|x86.Build.0 = Release|Win32 + EndGlobalSection + GlobalSection(SolutionProperties) = preSolution + HideSolutionNode = FALSE + EndGlobalSection + GlobalSection(ExtensibilityGlobals) = postSolution + SolutionGuid = {89725780-D46B-40E3-8811-B5F8FAB57C1C} + EndGlobalSection +EndGlobal diff --git a/cygwin/cygwin.v17.sln b/cygwin/cygwin.v17.sln new file mode 100644 index 000000000..8a7b70823 --- /dev/null +++ b/cygwin/cygwin.v17.sln @@ -0,0 +1,35 @@ + +Microsoft Visual Studio Solution File, Format Version 12.00 +# Visual Studio Version 17 +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "cyglib", "cyglib\cyglib.v17.vcxproj", "{A171F48C-BFB2-4766-97C3-9B8B7BE9D548}" +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "cyglaunch", "cyglaunch\cyglaunch.v17.vcxproj", "{11B49891-80F0-4DD3-B6E9-70BBE64A4BBF}" +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "cygtool", "cygtool\cygtool.v17.vcxproj", "{E8955970-1031-42B4-9419-F82D9DD80C66}" +EndProject +Global + GlobalSection(SolutionConfigurationPlatforms) = preSolution + Debug|x86 = Debug|x86 + Release|x86 = Release|x86 + EndGlobalSection + GlobalSection(ProjectConfigurationPlatforms) = postSolution + {A171F48C-BFB2-4766-97C3-9B8B7BE9D548}.Debug|x86.ActiveCfg = Debug|Win32 + {A171F48C-BFB2-4766-97C3-9B8B7BE9D548}.Debug|x86.Build.0 = Debug|Win32 + {A171F48C-BFB2-4766-97C3-9B8B7BE9D548}.Release|x86.ActiveCfg = Release|Win32 + {A171F48C-BFB2-4766-97C3-9B8B7BE9D548}.Release|x86.Build.0 = Release|Win32 + {11B49891-80F0-4DD3-B6E9-70BBE64A4BBF}.Debug|x86.ActiveCfg = Debug|Win32 + {11B49891-80F0-4DD3-B6E9-70BBE64A4BBF}.Debug|x86.Build.0 = Debug|Win32 + {11B49891-80F0-4DD3-B6E9-70BBE64A4BBF}.Release|x86.ActiveCfg = Release|Win32 + {11B49891-80F0-4DD3-B6E9-70BBE64A4BBF}.Release|x86.Build.0 = Release|Win32 + {E8955970-1031-42B4-9419-F82D9DD80C66}.Debug|x86.ActiveCfg = Debug|Win32 + {E8955970-1031-42B4-9419-F82D9DD80C66}.Debug|x86.Build.0 = Debug|Win32 + {E8955970-1031-42B4-9419-F82D9DD80C66}.Release|x86.ActiveCfg = Release|Win32 + {E8955970-1031-42B4-9419-F82D9DD80C66}.Release|x86.Build.0 = Release|Win32 + EndGlobalSection + GlobalSection(SolutionProperties) = preSolution + HideSolutionNode = FALSE + EndGlobalSection + GlobalSection(ExtensibilityGlobals) = postSolution + SolutionGuid = {89725780-D46B-40E3-8811-B5F8FAB57C1C} + EndGlobalSection +EndGlobal diff --git a/doc/.gitattributes b/doc/.gitattributes new file mode 100644 index 000000000..338fffde9 --- /dev/null +++ b/doc/.gitattributes @@ -0,0 +1,2 @@ +history.html merge=union +history.html merge=union diff --git a/doc/.gitignore b/doc/.gitignore new file mode 100644 index 000000000..8774a275c --- /dev/null +++ b/doc/.gitignore @@ -0,0 +1,11 @@ +linkchecker.pl +en/Index.hhk +en/teraterm.chm +ja/Index.hhk +ja/teratermj.chm +*.txt +*.md +*.html +*.hhk +*.chw +*.chm diff --git a/doc/2sjis.pl b/doc/2sjis.pl new file mode 100644 index 000000000..0fa1120b0 --- /dev/null +++ b/doc/2sjis.pl @@ -0,0 +1,112 @@ +#!/usr/bin/perl -w + +require 5.8.0; +use strict; +use warnings; +use Encode; +use utf8; +use Getopt::Long qw(:config posix_default no_ignore_case gnu_compat); +use File::Basename; + +my $PERL = $^X; + +sub MarkdownToHTML { + my $buf = $_[0]; + + my $script_dir = dirname(__FILE__); + my $cmd = "$PERL $script_dir/Markdown_1.0.1/Markdown.pl"; +# my $cmd = 'cat'; + + my $out_file = "MD_TO_HTML_$$" . "_md"; + my $in_file = "MD_TO_HTML_$$" . "_html"; + + my $OUT; + open ($OUT, ">:unix:encoding(utf8)", $out_file) or die("error :$! $out_file"); + print $OUT $buf; + close $OUT; + + my $sys = "$cmd < $out_file > $in_file"; + my $r = system($sys); + if ($r != 0) { + print "r=$r\n"; + exit($r); + # Can't spawn "cmd.exe" ... -> check $PATH + } + + my $IN; + open ($IN, "<:crlf:encoding(utf8)", $in_file) or die("error :$! $in_file"); + $buf = join "", <$IN>; + close $IN; + + unlink $in_file; + unlink $out_file; + + $buf; +} + +binmode STDOUT, ":utf8"; + +my($in, $out, $result); + +# default setting +my $coding = "shiftjis"; +my $lf = "crlf"; +my $type = "text"; +my $zlib_special = 0; +my $no_utime = 0; + +$result = GetOptions('in|i=s' => \$in, + 'out|o=s' => \$out, + 'coding|c=s' => \$coding, + 'lf|l=s' => \$lf, + 'type|t=s' => \$type, + 'zlib_special' => \$zlib_special, + 'no_utime' => \$no_utime); + +if (!(defined($in) && defined($out))) { + die "Usage: $0 --in file --out file [ --coding input_encoding ] [ --lf line_format ] [ --type type ]\n"; +} + +if ($in =~/\.md/) { + $type = "markdown"; + $coding = "utf8"; +} + +my $IN; +if ($in eq "-") { + binmode STDIN, ":$lf:encoding($coding)"; + $IN = *STDIN; +} else { + open ($IN, "<:$lf:encoding($coding)", $in) or die("error :$! $in"); +} +if ($zlib_special) { + while (<$IN>) { + last if $_ =~ /Copyright notice:/; + } +} +my $buf = join "", <$IN>; +$buf =~ s/\x{FEFF}//g; # remove all bom +close $IN; + +if ($type =~ /markdown/i ) { + $buf = &MarkdownToHTML($buf); +} + +my $OUT; +if ($out eq "-") { + binmode STDOUT, ":crlf:encoding(shiftjis)"; + $OUT = *STDOUT; +} else { + open ($OUT, '>:crlf:encoding(shiftjis)', $out); +} +print $OUT $buf; +close $OUT; + +# 出力ファイルの時刻を入力ファイルと同一に変更する +# - makechm.bat では chm のコンパイルを最小にするために +# 出力ファイルの時刻を変更する +# - cmakeビルドでは、出力ファイルのほうが新しい状態にする +if (($in ne "-") && ($no_utime == 0)) { + my(@filestat) = stat $in; + utime $filestat[8], $filestat[9], $out; +} diff --git a/doc/CMakeLists.txt b/doc/CMakeLists.txt new file mode 100644 index 000000000..1425d3e9f --- /dev/null +++ b/doc/CMakeLists.txt @@ -0,0 +1,30 @@ +if(CMAKE_HOST_WIN32) + find_program( + HHC hhc.exe + HINTS "C:/Program Files \(x86\)/HTML Help Workshop" + HINTS "C:/Program Files/HTML Help Workshop" + HINTS "$ENV{ProgramFiles}/HTML Help Workshop" + HINTS "$ENV{ProgramFiles\(x86\)}/HTML Help Workshop" + ) + find_program( + CHMCMD chmcmd + HINTS ${CMAKE_CURRENT_LIST_DIR}/../../buildtools/chmcmd/ + ) +else(CMAKE_HOST_WIN32) + set(HHC "HHC-NOTFOUND") + find_program( + CHMCMD chmcmd + ) +endif(CMAKE_HOST_WIN32) + +if ("${PERL}" STREQUAL "PERL-NOTFOUND") + return() +endif() +if (("${HHC}" STREQUAL "HHC-NOTFOUND") AND ("${CHMCMD}" STREQUAL "CHMCMD-NOTFOUND")) + return() +endif() + +add_subdirectory(en) +set_target_properties(chm_en PROPERTIES FOLDER doc) +add_subdirectory(ja) +set_target_properties(chm_ja PROPERTIES FOLDER doc) diff --git a/doc/Markdown_1.0.1/License.text b/doc/Markdown_1.0.1/License.text new file mode 100644 index 000000000..6d7650650 --- /dev/null +++ b/doc/Markdown_1.0.1/License.text @@ -0,0 +1,30 @@ +Copyright (c) 2004, John Gruber + +All rights reserved. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are +met: + +* Redistributions of source code must retain the above copyright notice, + this list of conditions and the following disclaimer. + +* Redistributions in binary form must reproduce the above copyright + notice, this list of conditions and the following disclaimer in the + documentation and/or other materials provided with the distribution. + +* Neither the name "Markdown" nor the names of its contributors may + be used to endorse or promote products derived from this software + without specific prior written permission. + +This software is provided by the copyright holders and contributors "as +is" and any express or implied warranties, including, but not limited +to, the implied warranties of merchantability and fitness for a +particular purpose are disclaimed. In no event shall the copyright owner +or contributors be liable for any direct, indirect, incidental, special, +exemplary, or consequential damages (including, but not limited to, +procurement of substitute goods or services; loss of use, data, or +profits; or business interruption) however caused and on any theory of +liability, whether in contract, strict liability, or tort (including +negligence or otherwise) arising in any way out of the use of this +software, even if advised of the possibility of such damage. diff --git a/doc/Markdown_1.0.1/Markdown Readme.text b/doc/Markdown_1.0.1/Markdown Readme.text new file mode 100644 index 000000000..6fbb95fd2 --- /dev/null +++ b/doc/Markdown_1.0.1/Markdown Readme.text @@ -0,0 +1,341 @@ +Markdown +======== + +Version 1.0.1 - Tue 14 Dec 2004 + +by John Gruber + + + +Introduction +------------ + +Markdown is a text-to-HTML conversion tool for web writers. Markdown +allows you to write using an easy-to-read, easy-to-write plain text +format, then convert it to structurally valid XHTML (or HTML). + +Thus, "Markdown" is two things: a plain text markup syntax, and a +software tool, written in Perl, that converts the plain text markup +to HTML. + +Markdown works both as a Movable Type plug-in and as a standalone Perl +script -- which means it can also be used as a text filter in BBEdit +(or any other application that supporst filters written in Perl). + +Full documentation of Markdown's syntax and configuration options is +available on the web: . +(Note: this readme file is formatted in Markdown.) + + + +Installation and Requirements +----------------------------- + +Markdown requires Perl 5.6.0 or later. Welcome to the 21st Century. +Markdown also requires the standard Perl library module `Digest::MD5`. + + +### Movable Type ### + +Markdown works with Movable Type version 2.6 or later (including +MT 3.0 or later). + +1. Copy the "Markdown.pl" file into your Movable Type "plugins" + directory. The "plugins" directory should be in the same directory + as "mt.cgi"; if the "plugins" directory doesn't already exist, use + your FTP program to create it. Your installation should look like + this: + + (mt home)/plugins/Markdown.pl + +2. Once installed, Markdown will appear as an option in Movable Type's + Text Formatting pop-up menu. This is selectable on a per-post basis. + Markdown translates your posts to HTML when you publish; the posts + themselves are stored in your MT database in Markdown format. + +3. If you also install SmartyPants 1.5 (or later), Markdown will offer + a second text formatting option: "Markdown with SmartyPants". This + option is the same as the regular "Markdown" formatter, except that + automatically uses SmartyPants to create typographically correct + curly quotes, em-dashes, and ellipses. See the SmartyPants web page + for more information: + +4. To make Markdown (or "Markdown with SmartyPants") your default + text formatting option for new posts, go to Weblog Config -> + Preferences. + +Note that by default, Markdown produces XHTML output. To configure +Markdown to produce HTML 4 output, see "Configuration", below. + + +### Blosxom ### + +Markdown works with Blosxom version 2.x. + +1. Rename the "Markdown.pl" plug-in to "Markdown" (case is + important). Movable Type requires plug-ins to have a ".pl" + extension; Blosxom forbids it. + +2. Copy the "Markdown" plug-in file to your Blosxom plug-ins folder. + If you're not sure where your Blosxom plug-ins folder is, see the + Blosxom documentation for information. + +3. That's it. The entries in your weblog will now automatically be + processed by Markdown. + +4. If you'd like to apply Markdown formatting only to certain posts, + rather than all of them, see Jason Clark's instructions for using + Markdown in conjunction with Blosxom's Meta plugin: + + + + +### BBEdit ### + +Markdown works with BBEdit 6.1 or later on Mac OS X. (It also works +with BBEdit 5.1 or later and MacPerl 5.6.1 on Mac OS 8.6 or later.) + +1. Copy the "Markdown.pl" file to appropriate filters folder in your + "BBEdit Support" folder. On Mac OS X, this should be: + + BBEdit Support/Unix Support/Unix Filters/ + + See the BBEdit documentation for more details on the location of + these folders. + + You can rename "Markdown.pl" to whatever you wish. + +2. That's it. To use Markdown, select some text in a BBEdit document, + then choose Markdown from the Filters sub-menu in the "#!" menu, or + the Filters floating palette + + + +Configuration +------------- + +By default, Markdown produces XHTML output for tags with empty elements. +E.g.: + +
+ +Markdown can be configured to produce HTML-style tags; e.g.: + +
+ + +### Movable Type ### + +You need to use a special `MTMarkdownOptions` container tag in each +Movable Type template where you want HTML 4-style output: + + + ... put your entry content here ... + + +The easiest way to use MTMarkdownOptions is probably to put the +opening tag right after your `` tag, and the closing tag right +before ``. + +To suppress Markdown processing in a particular template, i.e. to +publish the raw Markdown-formatted text without translation into +(X)HTML, set the `output` attribute to 'raw': + + + ... put your entry content here ... + + + +### Command-Line ### + +Use the `--html4tags` command-line switch to produce HTML output from a +Unix-style command line. E.g.: + + % perl Markdown.pl --html4tags foo.text + +Type `perldoc Markdown.pl`, or read the POD documentation within the +Markdown.pl source code for more information. + + + +Bugs +---- + +To file bug reports or feature requests please send email to: +. + + + +Version History +--------------- + +1.0.1 (14 Dec 2004): + ++ Changed the syntax rules for code blocks and spans. Previously, + backslash escapes for special Markdown characters were processed + everywhere other than within inline HTML tags. Now, the contents + of code blocks and spans are no longer processed for backslash + escapes. This means that code blocks and spans are now treated + literally, with no special rules to worry about regarding + backslashes. + + **NOTE**: This changes the syntax from all previous versions of + Markdown. Code blocks and spans involving backslash characters + will now generate different output than before. + ++ Tweaked the rules for link definitions so that they must occur + within three spaces of the left margin. Thus if you indent a link + definition by four spaces or a tab, it will now be a code block. + + [a]: /url/ "Indented 3 spaces, this is a link def" + + [b]: /url/ "Indented 4 spaces, this is a code block" + + **IMPORTANT**: This may affect existing Markdown content if it + contains link definitions indented by 4 or more spaces. + ++ Added `>`, `+`, and `-` to the list of backslash-escapable + characters. These should have been done when these characters + were added as unordered list item markers. + ++ Trailing spaces and tabs following HTML comments and `
` tags + are now ignored. + ++ Inline links using `<` and `>` URL delimiters weren't working: + + like [this]() + ++ Added a bit of tolerance for trailing spaces and tabs after + Markdown hr's. + ++ Fixed bug where auto-links were being processed within code spans: + + like this: `` + ++ Sort-of fixed a bug where lines in the middle of hard-wrapped + paragraphs, which lines look like the start of a list item, + would accidentally trigger the creation of a list. E.g. a + paragraph that looked like this: + + I recommend upgrading to version + 8. Oops, now this line is treated + as a sub-list. + + This is fixed for top-level lists, but it can still happen for + sub-lists. E.g., the following list item will not be parsed + properly: + + + I recommend upgrading to version + 8. Oops, now this line is treated + as a sub-list. + + Given Markdown's list-creation rules, I'm not sure this can + be fixed. + ++ Standalone HTML comments are now handled; previously, they'd get + wrapped in a spurious `

` tag. + ++ Fix for horizontal rules preceded by 2 or 3 spaces. + ++ `


` HTML tags in must occur within three spaces of left + margin. (With 4 spaces or a tab, they should be code blocks, but + weren't before this fix.) + ++ Capitalized "With" in "Markdown With SmartyPants" for + consistency with the same string label in SmartyPants.pl. + (This fix is specific to the MT plug-in interface.) + ++ Auto-linked email address can now optionally contain + a 'mailto:' protocol. I.e. these are equivalent: + + + + ++ Fixed annoying bug where nested lists would wind up with + spurious (and invalid) `

` tags. + ++ You can now write empty links: + + [like this]() + + and they'll be turned into anchor tags with empty href attributes. + This should have worked before, but didn't. + ++ `***this***` and `___this___` are now turned into + + this + + Instead of + + this + + which isn't valid. (Thanks to Michel Fortin for the fix.) + ++ Added a new substitution in `_EncodeCode()`: s/\$/$/g; This + is only for the benefit of Blosxom users, because Blosxom + (sometimes?) interpolates Perl scalars in your article bodies. + ++ Fixed problem for links defined with urls that include parens, e.g.: + + [1]: http://sources.wikipedia.org/wiki/Middle_East_Policy_(Chomsky) + + "Chomsky" was being erroneously treated as the URL's title. + ++ At some point during 1.0's beta cycle, I changed every sub's + argument fetching from this idiom: + + my $text = shift; + + to: + + my $text = shift || return ''; + + The idea was to keep Markdown from doing any work in a sub + if the input was empty. This introduced a bug, though: + if the input to any function was the single-character string + "0", it would also evaluate as false and return immediately. + How silly. Now fixed. + + + +Donations +--------- + +Donations to support Markdown's development are happily accepted. See: + for details. + + + +Copyright and License +--------------------- + +Copyright (c) 2003-2004 John Gruber + +All rights reserved. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are +met: + +* Redistributions of source code must retain the above copyright notice, + this list of conditions and the following disclaimer. + +* Redistributions in binary form must reproduce the above copyright + notice, this list of conditions and the following disclaimer in the + documentation and/or other materials provided with the distribution. + +* Neither the name "Markdown" nor the names of its contributors may + be used to endorse or promote products derived from this software + without specific prior written permission. + +This software is provided by the copyright holders and contributors "as +is" and any express or implied warranties, including, but not limited +to, the implied warranties of merchantability and fitness for a +particular purpose are disclaimed. In no event shall the copyright owner +or contributors be liable for any direct, indirect, incidental, special, +exemplary, or consequential damages (including, but not limited to, +procurement of substitute goods or services; loss of use, data, or +profits; or business interruption) however caused and on any theory of +liability, whether in contract, strict liability, or tort (including +negligence or otherwise) arising in any way out of the use of this +software, even if advised of the possibility of such damage. diff --git a/doc/Markdown_1.0.1/Markdown.pl b/doc/Markdown_1.0.1/Markdown.pl new file mode 100644 index 000000000..75dbe6734 --- /dev/null +++ b/doc/Markdown_1.0.1/Markdown.pl @@ -0,0 +1,1450 @@ +#!/usr/bin/perl + +# +# Markdown -- A text-to-HTML conversion tool for web writers +# +# Copyright (c) 2004 John Gruber +# +# + + +package Markdown; +require 5.006_000; +use strict; +use warnings; + +use Digest::MD5 qw(md5_hex); +use vars qw($VERSION); +$VERSION = '1.0.1'; +# Tue 14 Dec 2004 + +## Disabled; causes problems under Perl 5.6.1: +use utf8; +#binmode( STDOUT, ":utf8" ); # c.f.: http://acis.openlib.org/dev/perl-unicode-struggle.html + + +# +# Global default settings: +# +my $g_empty_element_suffix = " />"; # Change to ">" for HTML output +my $g_tab_width = 4; + + +# +# Globals: +# + +# Regex to match balanced [brackets]. See Friedl's +# "Mastering Regular Expressions", 2nd Ed., pp. 328-331. +my $g_nested_brackets; +$g_nested_brackets = qr{ + (?> # Atomic matching + [^\[\]]+ # Anything other than brackets + | + \[ + (??{ $g_nested_brackets }) # Recursive set of nested brackets + \] + )* +}x; + + +# Table of hash values for escaped characters: +my %g_escape_table; +foreach my $char (split //, '\\`*_{}[]()>#+-.!') { + $g_escape_table{$char} = md5_hex($char); +} + + +# Global hashes, used by various utility routines +my %g_urls; +my %g_titles; +my %g_html_blocks; + +# Used to track when we're inside an ordered or unordered list +# (see _ProcessListItems() for details): +my $g_list_level = 0; + + +#### Blosxom plug-in interface ########################################## + +# Set $g_blosxom_use_meta to 1 to use Blosxom's meta plug-in to determine +# which posts Markdown should process, using a "meta-markup: markdown" +# header. If it's set to 0 (the default), Markdown will process all +# entries. +my $g_blosxom_use_meta = 0; + +sub start { 1; } +sub story { + my($pkg, $path, $filename, $story_ref, $title_ref, $body_ref) = @_; + + if ( (! $g_blosxom_use_meta) or + (defined($meta::markup) and ($meta::markup =~ /^\s*markdown\s*$/i)) + ){ + $$body_ref = Markdown($$body_ref); + } + 1; +} + + +#### Movable Type plug-in interface ##################################### +eval {require MT}; # Test to see if we're running in MT. +unless ($@) { + require MT; + import MT; + require MT::Template::Context; + import MT::Template::Context; + + eval {require MT::Plugin}; # Test to see if we're running >= MT 3.0. + unless ($@) { + require MT::Plugin; + import MT::Plugin; + my $plugin = new MT::Plugin({ + name => "Markdown", + description => "A plain-text-to-HTML formatting plugin. (Version: $VERSION)", + doc_link => 'http://daringfireball.net/projects/markdown/' + }); + MT->add_plugin( $plugin ); + } + + MT::Template::Context->add_container_tag(MarkdownOptions => sub { + my $ctx = shift; + my $args = shift; + my $builder = $ctx->stash('builder'); + my $tokens = $ctx->stash('tokens'); + + if (defined ($args->{'output'}) ) { + $ctx->stash('markdown_output', lc $args->{'output'}); + } + + defined (my $str = $builder->build($ctx, $tokens) ) + or return $ctx->error($builder->errstr); + $str; # return value + }); + + MT->add_text_filter('markdown' => { + label => 'Markdown', + docs => 'http://daringfireball.net/projects/markdown/', + on_format => sub { + my $text = shift; + my $ctx = shift; + my $raw = 0; + if (defined $ctx) { + my $output = $ctx->stash('markdown_output'); + if (defined $output && $output =~ m/^html/i) { + $g_empty_element_suffix = ">"; + $ctx->stash('markdown_output', ''); + } + elsif (defined $output && $output eq 'raw') { + $raw = 1; + $ctx->stash('markdown_output', ''); + } + else { + $raw = 0; + $g_empty_element_suffix = " />"; + } + } + $text = $raw ? $text : Markdown($text); + $text; + }, + }); + + # If SmartyPants is loaded, add a combo Markdown/SmartyPants text filter: + my $smartypants; + + { + no warnings "once"; + $smartypants = $MT::Template::Context::Global_filters{'smarty_pants'}; + } + + if ($smartypants) { + MT->add_text_filter('markdown_with_smartypants' => { + label => 'Markdown With SmartyPants', + docs => 'http://daringfireball.net/projects/markdown/', + on_format => sub { + my $text = shift; + my $ctx = shift; + if (defined $ctx) { + my $output = $ctx->stash('markdown_output'); + if (defined $output && $output eq 'html') { + $g_empty_element_suffix = ">"; + } + else { + $g_empty_element_suffix = " />"; + } + } + $text = Markdown($text); + $text = $smartypants->($text, '1'); + }, + }); + } +} +else { +#### BBEdit/command-line text filter interface ########################## +# Needs to be hidden from MT (and Blosxom when running in static mode). + + # We're only using $blosxom::version once; tell Perl not to warn us: + no warnings 'once'; + unless ( defined($blosxom::version) ) { + use warnings; + + #### Check for command-line switches: ################# + my %cli_opts; + use Getopt::Long; + Getopt::Long::Configure('pass_through'); + GetOptions(\%cli_opts, + 'version', + 'shortversion', + 'html4tags', + ); + if ($cli_opts{'version'}) { # Version info + print "\nThis is Markdown, version $VERSION.\n"; + print "Copyright 2004 John Gruber\n"; + print "http://daringfireball.net/projects/markdown/\n\n"; + exit 0; + } + if ($cli_opts{'shortversion'}) { # Just the version number string. + print $VERSION; + exit 0; + } + if ($cli_opts{'html4tags'}) { # Use HTML tag style instead of XHTML + $g_empty_element_suffix = ">"; + } + + + #### Process incoming text: ########################### + my $text; + { + local $/; # Slurp the whole file + $text = <>; + } + print Markdown($text); + } +} + + + +sub Markdown { +# +# Main function. The order in which other subs are called here is +# essential. Link and image substitutions need to happen before +# _EscapeSpecialChars(), so that any *'s or _'s in the +# and tags get encoded. +# + my $text = shift; + + # Clear the global hashes. If we don't clear these, you get conflicts + # from other articles when generating a page which contains more than + # one article (e.g. an index page that shows the N most recent + # articles): + %g_urls = (); + %g_titles = (); + %g_html_blocks = (); + + + # Standardize line endings: + $text =~ s{\r\n}{\n}g; # DOS to Unix + $text =~ s{\r}{\n}g; # Mac to Unix + + # Make sure $text ends with a couple of newlines: + $text .= "\n\n"; + + # Convert all tabs to spaces. + $text = _Detab($text); + + # Strip any lines consisting only of spaces and tabs. + # This makes subsequent regexen easier to write, because we can + # match consecutive blank lines with /\n+/ instead of something + # contorted like /[ \t]*\n+/ . + $text =~ s/^[ \t]+$//mg; + + # Turn block-level HTML blocks into hash entries + $text = _HashHTMLBlocks($text); + + # Strip link definitions, store in hashes. + $text = _StripLinkDefinitions($text); + + $text = _RunBlockGamut($text); + + $text = _UnescapeSpecialChars($text); + + return $text . "\n"; +} + + +sub _StripLinkDefinitions { +# +# Strips link definitions from text, stores the URLs and titles in +# hash references. +# + my $text = shift; + my $less_than_tab = $g_tab_width - 1; + + # Link defs are in the form: ^[id]: url "optional title" + while ($text =~ s{ + ^[ ]{0,$less_than_tab}\[(.+)\]: # id = $1 + [ \t]* + \n? # maybe *one* newline + [ \t]* + ? # url = $2 + [ \t]* + \n? # maybe one newline + [ \t]* + (?: + (?<=\s) # lookbehind for whitespace + ["(] + (.+?) # title = $3 + [")] + [ \t]* + )? # title is optional + (?:\n+|\Z) + } + {}mx) { + $g_urls{lc $1} = _EncodeAmpsAndAngles( $2 ); # Link IDs are case-insensitive + if ($3) { + $g_titles{lc $1} = $3; + $g_titles{lc $1} =~ s/"/"/g; + } + } + + return $text; +} + + +sub _HashHTMLBlocks { + my $text = shift; + my $less_than_tab = $g_tab_width - 1; + + # Hashify HTML blocks: + # We only want to do this for block-level HTML tags, such as headers, + # lists, and tables. That's because we still want to wrap

s around + # "paragraphs" that are wrapped in non-block-level tags, such as anchors, + # phrase emphasis, and spans. The list of tags we're looking for is + # hard-coded: + my $block_tags_a = qr/p|div|h[1-6]|blockquote|pre|table|dl|ol|ul|script|noscript|form|fieldset|iframe|math|ins|del/; + my $block_tags_b = qr/p|div|h[1-6]|blockquote|pre|table|dl|ol|ul|script|noscript|form|fieldset|iframe|math/; + + # First, look for nested blocks, e.g.: + #

+ # + # The outermost tags must start at the left margin for this to match, and + # the inner nested divs must be indented. + # We need to do this before the next, more liberal match, because the next + # match will start at the first `
` and stop at the first `
`. + $text =~ s{ + ( # save in $1 + ^ # start of line (with /m) + <($block_tags_a) # start tag = $2 + \b # word break + (.*\n)*? # any number of lines, minimally matching + # the matching end tag + [ \t]* # trailing spaces/tabs + (?=\n+|\Z) # followed by a newline or end of document + ) + }{ + my $key = md5_hex($1); + $g_html_blocks{$key} = $1; + "\n\n" . $key . "\n\n"; + }egmx; + + + # + # Now match more liberally, simply from `\n` to `\n` + # + $text =~ s{ + ( # save in $1 + ^ # start of line (with /m) + <($block_tags_b) # start tag = $2 + \b # word break + (.*\n)*? # any number of lines, minimally matching + .* # the matching end tag + [ \t]* # trailing spaces/tabs + (?=\n+|\Z) # followed by a newline or end of document + ) + }{ + my $key = md5_hex($1); + $g_html_blocks{$key} = $1; + "\n\n" . $key . "\n\n"; + }egmx; + # Special case just for
. It was easier to make a special case than + # to make the other regex more complicated. + $text =~ s{ + (?: + (?<=\n\n) # Starting after a blank line + | # or + \A\n? # the beginning of the doc + ) + ( # save in $1 + [ ]{0,$less_than_tab} + <(hr) # start tag = $2 + \b # word break + ([^<>])*? # + /?> # the matching end tag + [ \t]* + (?=\n{2,}|\Z) # followed by a blank line or end of document + ) + }{ + my $key = md5_hex($1); + $g_html_blocks{$key} = $1; + "\n\n" . $key . "\n\n"; + }egx; + + # Special case for standalone HTML comments: + $text =~ s{ + (?: + (?<=\n\n) # Starting after a blank line + | # or + \A\n? # the beginning of the doc + ) + ( # save in $1 + [ ]{0,$less_than_tab} + (?s: + + ) + [ \t]* + (?=\n{2,}|\Z) # followed by a blank line or end of document + ) + }{ + my $key = md5_hex($1); + $g_html_blocks{$key} = $1; + "\n\n" . $key . "\n\n"; + }egx; + + + return $text; +} + + +sub _RunBlockGamut { +# +# These are all the transformations that form block-level +# tags like paragraphs, headers, and list items. +# + my $text = shift; + + $text = _DoHeaders($text); + + # Do Horizontal Rules: + $text =~ s{^[ ]{0,2}([ ]?\*[ ]?){3,}[ \t]*$}{\n tags around block-level tags. + $text = _HashHTMLBlocks($text); + + $text = _FormParagraphs($text); + + return $text; +} + + +sub _RunSpanGamut { +# +# These are all the transformations that occur *within* block-level +# tags like paragraphs, headers, and list items. +# + my $text = shift; + + $text = _DoCodeSpans($text); + + $text = _EscapeSpecialChars($text); + + # Process anchor and image tags. Images must come first, + # because ![foo][f] looks like an anchor. + $text = _DoImages($text); + $text = _DoAnchors($text); + + # Make links out of things like `` + # Must come after _DoAnchors(), because you can use < and > + # delimiters in inline links like [this](). + $text = _DoAutoLinks($text); + + $text = _EncodeAmpsAndAngles($text); + + $text = _DoItalicsAndBold($text); + + # Do hard breaks: + $text =~ s/ {2,}\n/ or tags. +# my $tags_to_skip = qr!<(/?)(?:pre|code|kbd|script|math)[\s>]!; + + foreach my $cur_token (@$tokens) { + if ($cur_token->[0] eq "tag") { + # Within tags, encode * and _ so they don't conflict + # with their use in Markdown for italics and strong. + # We're replacing each such character with its + # corresponding MD5 checksum value; this is likely + # overkill, but it should prevent us from colliding + # with the escape values by accident. + $cur_token->[1] =~ s! \* !$g_escape_table{'*'}!gx; + $cur_token->[1] =~ s! _ !$g_escape_table{'_'}!gx; + $text .= $cur_token->[1]; + } else { + my $t = $cur_token->[1]; + $t = _EncodeBackslashEscapes($t); + $text .= $t; + } + } + return $text; +} + + +sub _DoAnchors { +# +# Turn Markdown link shortcuts into XHTML
tags. +# + my $text = shift; + + # + # First, handle reference-style links: [link text] [id] + # + $text =~ s{ + ( # wrap whole match in $1 + \[ + ($g_nested_brackets) # link text = $2 + \] + + [ ]? # one optional space + (?:\n[ ]*)? # one optional newline followed by spaces + + \[ + (.*?) # id = $3 + \] + ) + }{ + my $result; + my $whole_match = $1; + my $link_text = $2; + my $link_id = lc $3; + + if ($link_id eq "") { + $link_id = lc $link_text; # for shortcut links like [this][]. + } + + if (defined $g_urls{$link_id}) { + my $url = $g_urls{$link_id}; + $url =~ s! \* !$g_escape_table{'*'}!gx; # We've got to encode these to avoid + $url =~ s! _ !$g_escape_table{'_'}!gx; # conflicting with italics/bold. + $result = "? # href = $3 + [ \t]* + ( # $4 + (['"]) # quote char = $5 + (.*?) # Title = $6 + \5 # matching quote + )? # title is optional + \) + ) + }{ + my $result; + my $whole_match = $1; + my $link_text = $2; + my $url = $3; + my $title = $6; + + $url =~ s! \* !$g_escape_table{'*'}!gx; # We've got to encode these to avoid + $url =~ s! _ !$g_escape_table{'_'}!gx; # conflicting with italics/bold. + $result = " tags. +# + my $text = shift; + + # + # First, handle reference-style labeled images: ![alt text][id] + # + $text =~ s{ + ( # wrap whole match in $1 + !\[ + (.*?) # alt text = $2 + \] + + [ ]? # one optional space + (?:\n[ ]*)? # one optional newline followed by spaces + + \[ + (.*?) # id = $3 + \] + + ) + }{ + my $result; + my $whole_match = $1; + my $alt_text = $2; + my $link_id = lc $3; + + if ($link_id eq "") { + $link_id = lc $alt_text; # for shortcut links like ![this][]. + } + + $alt_text =~ s/"/"/g; + if (defined $g_urls{$link_id}) { + my $url = $g_urls{$link_id}; + $url =~ s! \* !$g_escape_table{'*'}!gx; # We've got to encode these to avoid + $url =~ s! _ !$g_escape_table{'_'}!gx; # conflicting with italics/bold. + $result = "\"$alt_text\"";? # src url = $3 + [ \t]* + ( # $4 + (['"]) # quote char = $5 + (.*?) # title = $6 + \5 # matching quote + [ \t]* + )? # title is optional + \) + ) + }{ + my $result; + my $whole_match = $1; + my $alt_text = $2; + my $url = $3; + my $title = ''; + if (defined($6)) { + $title = $6; + } + + $alt_text =~ s/"/"/g; + $title =~ s/"/"/g; + $url =~ s! \* !$g_escape_table{'*'}!gx; # We've got to encode these to avoid + $url =~ s! _ !$g_escape_table{'_'}!gx; # conflicting with italics/bold. + $result = "\"$alt_text\"";" . _RunSpanGamut($1) . "\n\n"; + }egmx; + + $text =~ s{ ^(.+)[ \t]*\n-+[ \t]*\n+ }{ + "

" . _RunSpanGamut($1) . "

\n\n"; + }egmx; + + + # atx-style headers: + # # Header 1 + # ## Header 2 + # ## Header 2 with closing hashes ## + # ... + # ###### Header 6 + # + $text =~ s{ + ^(\#{1,6}) # $1 = string of #'s + [ \t]* + (.+?) # $2 = Header text + [ \t]* + \#* # optional closing #'s (not counted) + \n+ + }{ + my $h_level = length($1); + "" . _RunSpanGamut($2) . "\n\n"; + }egmx; + + return $text; +} + + +sub _DoLists { +# +# Form HTML ordered (numbered) and unordered (bulleted) lists. +# + my $text = shift; + my $less_than_tab = $g_tab_width - 1; + + # Re-usable patterns to match list item bullets and number markers: + my $marker_ul = qr/[*+-]/; + my $marker_ol = qr/\d+[.]/; + my $marker_any = qr/(?:$marker_ul|$marker_ol)/; + + # Re-usable pattern to match any entirel ul or ol list: + my $whole_list = qr{ + ( # $1 = whole list + ( # $2 + [ ]{0,$less_than_tab} + (${marker_any}) # $3 = first list item marker + [ \t]+ + ) + (?s:.+?) + ( # $4 + \z + | + \n{2,} + (?=\S) + (?! # Negative lookahead for another list item marker + [ \t]* + ${marker_any}[ \t]+ + ) + ) + ) + }mx; + + # We use a different prefix before nested lists than top-level lists. + # See extended comment in _ProcessListItems(). + # + # Note: There's a bit of duplication here. My original implementation + # created a scalar regex pattern as the conditional result of the test on + # $g_list_level, and then only ran the $text =~ s{...}{...}egmx + # substitution once, using the scalar as the pattern. This worked, + # everywhere except when running under MT on my hosting account at Pair + # Networks. There, this caused all rebuilds to be killed by the reaper (or + # perhaps they crashed, but that seems incredibly unlikely given that the + # same script on the same server ran fine *except* under MT. I've spent + # more time trying to figure out why this is happening than I'd like to + # admit. My only guess, backed up by the fact that this workaround works, + # is that Perl optimizes the substition when it can figure out that the + # pattern will never change, and when this optimization isn't on, we run + # afoul of the reaper. Thus, the slightly redundant code to that uses two + # static s/// patterns rather than one conditional pattern. + + if ($g_list_level) { + $text =~ s{ + ^ + $whole_list + }{ + my $list = $1; + my $list_type = ($3 =~ m/$marker_ul/) ? "ul" : "ol"; + # Turn double returns into triple returns, so that we can make a + # paragraph for the last item in a list, if necessary: + $list =~ s/\n{2,}/\n\n\n/g; + my $result = _ProcessListItems($list, $marker_any); + $result = "<$list_type>\n" . $result . "\n"; + $result; + }egmx; + } + else { + $text =~ s{ + (?:(?<=\n\n)|\A\n?) + $whole_list + }{ + my $list = $1; + my $list_type = ($3 =~ m/$marker_ul/) ? "ul" : "ol"; + # Turn double returns into triple returns, so that we can make a + # paragraph for the last item in a list, if necessary: + $list =~ s/\n{2,}/\n\n\n/g; + my $result = _ProcessListItems($list, $marker_any); + $result = "<$list_type>\n" . $result . "\n"; + $result; + }egmx; + } + + + return $text; +} + + +sub _ProcessListItems { +# +# Process the contents of a single ordered or unordered list, splitting it +# into individual list items. +# + + my $list_str = shift; + my $marker_any = shift; + + + # The $g_list_level global keeps track of when we're inside a list. + # Each time we enter a list, we increment it; when we leave a list, + # we decrement. If it's zero, we're not in a list anymore. + # + # We do this because when we're not inside a list, we want to treat + # something like this: + # + # I recommend upgrading to version + # 8. Oops, now this line is treated + # as a sub-list. + # + # As a single paragraph, despite the fact that the second line starts + # with a digit-period-space sequence. + # + # Whereas when we're inside a list (or sub-list), that line will be + # treated as the start of a sub-list. What a kludge, huh? This is + # an aspect of Markdown's syntax that's hard to parse perfectly + # without resorting to mind-reading. Perhaps the solution is to + # change the syntax rules such that sub-lists must start with a + # starting cardinal number; e.g. "1." or "a.". + + $g_list_level++; + + # trim trailing blank lines: + $list_str =~ s/\n{2,}\z/\n/; + + + $list_str =~ s{ + (\n)? # leading line = $1 + (^[ \t]*) # leading whitespace = $2 + ($marker_any) [ \t]+ # list marker = $3 + ((?s:.+?) # list item text = $4 + (\n{1,2})) + (?= \n* (\z | \2 ($marker_any) [ \t]+)) + }{ + my $item = $4; + my $leading_line = $1; + my $leading_space = $2; + + if ($leading_line or ($item =~ m/\n{2,}/)) { + $item = _RunBlockGamut(_Outdent($item)); + } + else { + # Recursion for sub-lists: + $item = _DoLists(_Outdent($item)); + chomp $item; + $item = _RunSpanGamut($item); + } + + "
  • " . $item . "
  • \n"; + }egmx; + + $g_list_level--; + return $list_str; +} + + + +sub _DoCodeBlocks { +# +# Process Markdown `
    ` blocks.
    +#	
    +
    +	my $text = shift;
    +
    +	$text =~ s{
    +			(?:\n\n|\A)
    +			(	            # $1 = the code block -- one or more lines, starting with a space/tab
    +			  (?:
    +			    (?:[ ]{$g_tab_width} | \t)  # Lines must start with a tab or a tab-width of spaces
    +			    .*\n+
    +			  )+
    +			)
    +			((?=^[ ]{0,$g_tab_width}\S)|\Z)	# Lookahead for non-space at line-start, or end of doc
    +		}{
    +			my $codeblock = $1;
    +			my $result; # return value
    +
    +			$codeblock = _EncodeCode(_Outdent($codeblock));
    +			$codeblock = _Detab($codeblock);
    +			$codeblock =~ s/\A\n+//; # trim leading newlines
    +			$codeblock =~ s/\s+\z//; # trim trailing whitespace
    +
    +			$result = "\n\n
    " . $codeblock . "\n
    \n\n"; + + $result; + }egmx; + + return $text; +} + + +sub _DoCodeSpans { +# +# * Backtick quotes are used for spans. +# +# * You can use multiple backticks as the delimiters if you want to +# include literal backticks in the code span. So, this input: +# +# Just type ``foo `bar` baz`` at the prompt. +# +# Will translate to: +# +#

    Just type foo `bar` baz at the prompt.

    +# +# There's no arbitrary limit to the number of backticks you +# can use as delimters. If you need three consecutive backticks +# in your code, use four for delimiters, etc. +# +# * You can use spaces to get literal backticks at the edges: +# +# ... type `` `bar` `` ... +# +# Turns to: +# +# ... type `bar` ... +# + + my $text = shift; + + $text =~ s@ + (`+) # $1 = Opening run of ` + (.+?) # $2 = The code block + (?$c
    "; + @egsx; + + return $text; +} + + +sub _EncodeCode { +# +# Encode/escape certain characters inside Markdown code runs. +# The point is that in code, these characters are literals, +# and lose their special Markdown meanings. +# + local $_ = shift; + + # Encode all ampersands; HTML entities are not + # entities within a Markdown code span. + s/&/&/g; + + # Encode $'s, but only if we're running under Blosxom. + # (Blosxom interpolates Perl variables in article bodies.) + { + no warnings 'once'; + if (defined($blosxom::version)) { + s/\$/$/g; + } + } + + + # Do the angle bracket song and dance: + s! < !<!gx; + s! > !>!gx; + + # Now, escape characters that are magic in Markdown: + s! \* !$g_escape_table{'*'}!gx; + s! _ !$g_escape_table{'_'}!gx; + s! { !$g_escape_table{'{'}!gx; + s! } !$g_escape_table{'}'}!gx; + s! \[ !$g_escape_table{'['}!gx; + s! \] !$g_escape_table{']'}!gx; + s! \\ !$g_escape_table{'\\'}!gx; + + return $_; +} + + +sub _DoItalicsAndBold { + my $text = shift; + + # must go first: + $text =~ s{ (\*\*|__) (?=\S) (.+?[*_]*) (?<=\S) \1 } + {$2}gsx; + + $text =~ s{ (\*|_) (?=\S) (.+?) (?<=\S) \1 } + {$2}gsx; + + return $text; +} + + +sub _DoBlockQuotes { + my $text = shift; + + $text =~ s{ + ( # Wrap whole match in $1 + ( + ^[ \t]*>[ \t]? # '>' at the start of a line + .+\n # rest of the first line + (.+\n)* # subsequent consecutive lines + \n* # blanks + )+ + ) + }{ + my $bq = $1; + $bq =~ s/^[ \t]*>[ \t]?//gm; # trim one level of quoting + $bq =~ s/^[ \t]+$//mg; # trim whitespace-only lines + $bq = _RunBlockGamut($bq); # recurse + + $bq =~ s/^/ /g; + # These leading spaces screw with
     content, so we need to fix that:
    +			$bq =~ s{
    +					(\s*
    .+?
    ) + }{ + my $pre = $1; + $pre =~ s/^ //mg; + $pre; + }egsx; + + "
    \n$bq\n
    \n\n"; + }egmx; + + + return $text; +} + + +sub _FormParagraphs { +# +# Params: +# $text - string to process with html

    tags +# + my $text = shift; + + # Strip leading and trailing lines: + $text =~ s/\A\n+//; + $text =~ s/\n+\z//; + + my @grafs = split(/\n{2,}/, $text); + + # + # Wrap

    tags. + # + foreach (@grafs) { + unless (defined( $g_html_blocks{$_} )) { + $_ = _RunSpanGamut($_); + s/^([ \t]*)/

    /; + $_ .= "

    "; + } + } + + # + # Unhashify HTML blocks + # + foreach (@grafs) { + if (defined( $g_html_blocks{$_} )) { + $_ = $g_html_blocks{$_}; + } + } + + return join "\n\n", @grafs; +} + + +sub _EncodeAmpsAndAngles { +# Smart processing for ampersands and angle brackets that need to be encoded. + + my $text = shift; + + # Ampersand-encoding based entirely on Nat Irons's Amputator MT plugin: + # http://bumppo.net/projects/amputator/ + $text =~ s/&(?!#?[xX]?(?:[0-9a-fA-F]+|\w+);)/&/g; + + # Encode naked <'s + $text =~ s{<(?![a-z/?\$!])}{<}gi; + + return $text; +} + + +sub _EncodeBackslashEscapes { +# +# Parameter: String. +# Returns: The string, with after processing the following backslash +# escape sequences. +# + local $_ = shift; + + s! \\\\ !$g_escape_table{'\\'}!gx; # Must process escaped backslashes first. + s! \\` !$g_escape_table{'`'}!gx; + s! \\\* !$g_escape_table{'*'}!gx; + s! \\_ !$g_escape_table{'_'}!gx; + s! \\\{ !$g_escape_table{'{'}!gx; + s! \\\} !$g_escape_table{'}'}!gx; + s! \\\[ !$g_escape_table{'['}!gx; + s! \\\] !$g_escape_table{']'}!gx; + s! \\\( !$g_escape_table{'('}!gx; + s! \\\) !$g_escape_table{')'}!gx; + s! \\> !$g_escape_table{'>'}!gx; + s! \\\# !$g_escape_table{'#'}!gx; + s! \\\+ !$g_escape_table{'+'}!gx; + s! \\\- !$g_escape_table{'-'}!gx; + s! \\\. !$g_escape_table{'.'}!gx; + s{ \\! }{$g_escape_table{'!'}}gx; + + return $_; +} + + +sub _DoAutoLinks { + my $text = shift; + + $text =~ s{<((https?|ftp):[^'">\s]+)>}{
    $1}gi; + + # Email addresses: + $text =~ s{ + < + (?:mailto:)? + ( + [-.\w]+ + \@ + [-a-z0-9]+(\.[-a-z0-9]+)*\.[a-z]+ + ) + > + }{ + _EncodeEmailAddress( _UnescapeSpecialChars($1) ); + }egix; + + return $text; +} + + +sub _EncodeEmailAddress { +# +# Input: an email address, e.g. "foo@example.com" +# +# Output: the email address as a mailto link, with each character +# of the address encoded as either a decimal or hex entity, in +# the hopes of foiling most address harvesting spam bots. E.g.: +# +# foo +# @example.com +# +# Based on a filter by Matthew Wickline, posted to the BBEdit-Talk +# mailing list: +# + + my $addr = shift; + + srand; + my @encode = ( + sub { '&#' . ord(shift) . ';' }, + sub { '&#x' . sprintf( "%X", ord(shift) ) . ';' }, + sub { shift }, + ); + + $addr = "mailto:" . $addr; + + $addr =~ s{(.)}{ + my $char = $1; + if ( $char eq '@' ) { + # this *must* be encoded. I insist. + $char = $encode[int rand 1]->($char); + } elsif ( $char ne ':' ) { + # leave ':' alone (to spot mailto: later) + my $r = rand; + # roughly 10% raw, 45% hex, 45% dec + $char = ( + $r > .9 ? $encode[2]->($char) : + $r < .45 ? $encode[1]->($char) : + $encode[0]->($char) + ); + } + $char; + }gex; + + $addr = qq{$addr}; + $addr =~ s{">.+?:}{">}; # strip the mailto: from the visible part + + return $addr; +} + + +sub _UnescapeSpecialChars { +# +# Swap back in all the special characters we've hidden. +# + my $text = shift; + + while( my($char, $hash) = each(%g_escape_table) ) { + $text =~ s/$hash/$char/g; + } + return $text; +} + + +sub _TokenizeHTML { +# +# Parameter: String containing HTML markup. +# Returns: Reference to an array of the tokens comprising the input +# string. Each token is either a tag (possibly with nested, +# tags contained therein, such as , or a +# run of text between tags. Each element of the array is a +# two-element array; the first is either 'tag' or 'text'; +# the second is the actual value. +# +# +# Derived from the _tokenize() subroutine from Brad Choate's MTRegex plugin. +# +# + + my $str = shift; + my $pos = 0; + my $len = length $str; + my @tokens; + + my $depth = 6; + my $nested_tags = join('|', ('(?:<[a-z/!$](?:[^<>]') x $depth) . (')*>)' x $depth); + my $match = qr/(?s: ) | # comment + (?s: <\? .*? \?> ) | # processing instruction + $nested_tags/ix; # nested tags + + while ($str =~ m/($match)/g) { + my $whole_tag = $1; + my $sec_start = pos $str; + my $tag_start = $sec_start - length $whole_tag; + if ($pos < $tag_start) { + push @tokens, ['text', substr($str, $pos, $tag_start - $pos)]; + } + push @tokens, ['tag', $whole_tag]; + $pos = pos $str; + } + push @tokens, ['text', substr($str, $pos, $len - $pos)] if $pos < $len; + \@tokens; +} + + +sub _Outdent { +# +# Remove one level of line-leading tabs or spaces +# + my $text = shift; + + $text =~ s/^(\t|[ ]{1,$g_tab_width})//gm; + return $text; +} + + +sub _Detab { +# +# Cribbed from a post by Bart Lateur: +# +# + my $text = shift; + + $text =~ s{(.*?)\t}{$1.(' ' x ($g_tab_width - length($1) % $g_tab_width))}ge; + return $text; +} + + +1; + +__END__ + + +=pod + +=head1 NAME + +B + + +=head1 SYNOPSIS + +B [ B<--html4tags> ] [ B<--version> ] [ B<-shortversion> ] + [ I ... ] + + +=head1 DESCRIPTION + +Markdown is a text-to-HTML filter; it translates an easy-to-read / +easy-to-write structured text format into HTML. Markdown's text format +is most similar to that of plain text email, and supports features such +as headers, *emphasis*, code blocks, blockquotes, and links. + +Markdown's syntax is designed not as a generic markup language, but +specifically to serve as a front-end to (X)HTML. You can use span-level +HTML tags anywhere in a Markdown document, and you can use block level +HTML tags (like
    and as well). + +For more information about Markdown's syntax, see: + + http://daringfireball.net/projects/markdown/ + + +=head1 OPTIONS + +Use "--" to end switch parsing. For example, to open a file named "-z", use: + + Markdown.pl -- -z + +=over 4 + + +=item B<--html4tags> + +Use HTML 4 style for empty element tags, e.g.: + +
    + +instead of Markdown's default XHTML style tags, e.g.: + +
    + + +=item B<-v>, B<--version> + +Display Markdown's version number and copyright information. + + +=item B<-s>, B<--shortversion> + +Display the short-form version number. + + +=back + + + +=head1 BUGS + +To file bug reports or feature requests (other than topics listed in the +Caveats section above) please send email to: + + support@daringfireball.net + +Please include with your report: (1) the example input; (2) the output +you expected; (3) the output Markdown actually produced. + + +=head1 VERSION HISTORY + +See the readme file for detailed release notes for this version. + +1.0.1 - 14 Dec 2004 + +1.0 - 28 Aug 2004 + + +=head1 AUTHOR + + John Gruber + http://daringfireball.net + + PHP port and other contributions by Michel Fortin + http://michelf.com + + +=head1 COPYRIGHT AND LICENSE + +Copyright (c) 2003-2004 John Gruber + +All rights reserved. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are +met: + +* Redistributions of source code must retain the above copyright notice, + this list of conditions and the following disclaimer. + +* Redistributions in binary form must reproduce the above copyright + notice, this list of conditions and the following disclaimer in the + documentation and/or other materials provided with the distribution. + +* Neither the name "Markdown" nor the names of its contributors may + be used to endorse or promote products derived from this software + without specific prior written permission. + +This software is provided by the copyright holders and contributors "as +is" and any express or implied warranties, including, but not limited +to, the implied warranties of merchantability and fitness for a +particular purpose are disclaimed. In no event shall the copyright owner +or contributors be liable for any direct, indirect, incidental, special, +exemplary, or consequential damages (including, but not limited to, +procurement of substitute goods or services; loss of use, data, or +profits; or business interruption) however caused and on any theory of +liability, whether in contract, strict liability, or tort (including +negligence or otherwise) arising in any way out of the use of this +software, even if advised of the possibility of such damage. + +=cut diff --git a/doc/README.md b/doc/README.md new file mode 100644 index 000000000..0f6985592 --- /dev/null +++ b/doc/README.md @@ -0,0 +1,36 @@ + +## ドキュメント + +- Tera Term ドキュメント + - en/ + - ja/ +- プロジェクトページのコンテンツ + - web/ + +## スクリプトなど + +- makechm.bat + - chm作成スクリプト + - Windows batファイル + - conver.bat を呼び出す +- convtext.bat + - txt, html変換スクリプト +- convert_web.sh + - txt,md を txt,html へ変換、webサーバー用 + - [プロジェクトページの更新手順](https://github.com/TeraTermProject/teraterm/wiki/Update-Project-page) +- perlスクリプト + - 2sjis.pl + - txt, html変換スクリプト + - htmlhelp_index_make.pl + - hhk 生成スクリプト + - htmlhelp_update_check.pl* + - Markdown_1.0.1/ + - markdown 変換スクリプト + - https://daringfireball.net/projects/markdown/ +- linkchecker.bat + - htmlドキュメント内のリンクをチェック + - [linkchecker](https://github.com/saoyagi2/linkchecker)を使用 + - 次のパッケージを事前にインストールしておく + - cygwinのperl時 + - perl-XML-Parser + - `linkchecker.bat`を実行する diff --git a/doc/chm.cmake b/doc/chm.cmake new file mode 100644 index 000000000..89cac86c8 --- /dev/null +++ b/doc/chm.cmake @@ -0,0 +1,10 @@ +# - hhc.exe の exit code を無視する +# -https://cmake.org/pipermail/cmake/2007-October/017111.html + +set(HHP "teraterm.hhp") + +message("${HHC} ${HHP}") + +execute_process( + COMMAND ${HHC} ${HHP} +) diff --git a/doc/convert_web.sh b/doc/convert_web.sh new file mode 100644 index 000000000..d7d4465af --- /dev/null +++ b/doc/convert_web.sh @@ -0,0 +1,27 @@ +# +# convert to HTML files for web server +# +TOHTML='perl 2sjis.pl' +REF_E=en/html/reference +REF_J=ja/html/reference + +$TOHTML -i ../cygwin/cygterm/COPYING -o $REF_E/CygTerm+-LICENSE.txt -l unix +$TOHTML -i ../cygwin/cygterm/COPYING -o $REF_J/CygTerm+-LICENSE.txt -l unix + +$TOHTML -i $REF_J/build_with_cmake.md -o $REF_J/build_with_cmake.html +$TOHTML -i $REF_E/build_with_cmake.md -o $REF_E/build_with_cmake.html +$TOHTML -i $REF_J/build_library_with_cmake.md -o $REF_J/build_library_with_cmake.html +$TOHTML -i $REF_E/build_library_with_cmake.md -o $REF_E/build_library_with_cmake.html + +chmod 664 $REF_E/CygTerm+-LICENSE.txt +chmod 664 $REF_J/CygTerm+-LICENSE.txt + +chmod 664 $REF_J/build_with_cmake.html +chmod 664 $REF_E/build_with_cmake.html +chmod 664 $REF_J/build_library_with_cmake.html +chmod 664 $REF_E/build_library_with_cmake.html +chmod 664 $REF_J/menu_id.html +chmod 664 $REF_E/menu_id.html + +chmod 664 ja/html/setup/folder.html +chmod 664 en/html/setup/folder.html diff --git a/doc/convtext.bat b/doc/convtext.bat index 4e3691142..fc8cce4c2 100644 --- a/doc/convtext.bat +++ b/doc/convtext.bat @@ -1,18 +1,25 @@ -set TOSJIS=perl ..\installer\2sjis.pl -set ZLIBCP=perl ..\installer\copy-zliblicense.pl +set TOSJIS=perl 2sjis.pl set REF_E=en\html\reference set REF_J=ja\html\reference %TOSJIS% -i ..\libs\oniguruma\COPYING -o %REF_E%\Oniguruma-LICENSE.txt -l unix %TOSJIS% -i ..\libs\oniguruma\COPYING -o %REF_J%\Oniguruma-LICENSE.txt -l unix %TOSJIS% -i ..\libs\oniguruma\doc\RE -o %REF_E%\RE.txt -l unix %TOSJIS% -i ..\libs\oniguruma\doc\RE.ja -o %REF_J%\RE.txt -c utf8 -l unix -%TOSJIS% -i ..\libs\openssl\LICENSE -o %REF_E%\OpenSSL-LICENSE.txt -l unix -%TOSJIS% -i ..\libs\openssl\LICENSE -o %REF_J%\OpenSSL-LICENSE.txt -l unix -%TOSJIS% -i ..\libs\putty\LICENCE -o %REF_E%\PuTTY-LICENSE.txt -l crlf -%TOSJIS% -i ..\libs\putty\LICENCE -o %REF_J%\PuTTY-LICENSE.txt -l crlf +%TOSJIS% -i ..\libs\libressl\COPYING -o %REF_E%\LibreSSL-LICENSE.txt -l unix +%TOSJIS% -i ..\libs\libressl\COPYING -o %REF_J%\LibreSSL-LICENSE.txt -l unix %TOSJIS% -i ..\libs\SFMT\LICENSE.txt -o %REF_E%\SFMT-LICENSE.txt -l unix %TOSJIS% -i ..\libs\SFMT\LICENSE.txt -o %REF_J%\SFMT-LICENSE.txt -l unix -%TOSJIS% -i ..\cygterm\COPYING -o %REF_E%\CygTerm+-LICENSE.txt -l unix -%TOSJIS% -i ..\cygterm\COPYING -o %REF_J%\CygTerm+-LICENSE.txt -l unix -%ZLIBCP% -i ..\libs\zlib\README -o %REF_E%\zlib-LICENSE.txt -l unix -%ZLIBCP% -i ..\libs\zlib\README -o %REF_J%\zlib-LICENSE.txt -l unix +%TOSJIS% -i ..\cygwin\cygterm\COPYING -o %REF_E%\CygTerm+-LICENSE.txt -l unix +%TOSJIS% -i ..\cygwin\cygterm\COPYING -o %REF_J%\CygTerm+-LICENSE.txt -l unix +%TOSJIS% -i ..\libs\zlib\README -o %REF_E%\zlib-LICENSE.txt -l unix --zlib_special +%TOSJIS% -i ..\libs\zlib\README -o %REF_J%\zlib-LICENSE.txt -l unix --zlib_special +%TOSJIS% -i ..\libs\cJSON\LICENSE -o %REF_E%\cJSON-LICENSE.txt -l crlf +%TOSJIS% -i ..\libs\cJSON\LICENSE -o %REF_J%\cJSON-LICENSE.txt -l crlf +%TOSJIS% -i ..\libs\argon2\LICENSE -o %REF_E%\argon2-LICENSE.txt -l unix +%TOSJIS% -i ..\libs\argon2\LICENSE -o %REF_J%\argon2-LICENSE.txt -l unix + +%TOSJIS% -i %REF_J%/build_with_cmake.md -o %REF_J%/build_with_cmake.html +%TOSJIS% -i %REF_E%/build_with_cmake.md -o %REF_E%/build_with_cmake.html +%TOSJIS% -i %REF_J%/build_library_with_cmake.md -o %REF_J%/build_library_with_cmake.html +%TOSJIS% -i %REF_E%/build_library_with_cmake.md -o %REF_E%/build_library_with_cmake.html + diff --git a/doc/en/CMakeLists.txt b/doc/en/CMakeLists.txt new file mode 100644 index 000000000..094dbd53e --- /dev/null +++ b/doc/en/CMakeLists.txt @@ -0,0 +1,97 @@ + +set(PACKAGE_NAME "chm_en") +project(${PACKAGE_NAME}) + +if(NOT DEFINED BINARY_DIR) + MESSAGE(FATAL_ERROR "check BINARY_DIR") +endif() + +set(CONVERTED_FILES "") + +function(ConvertHTML output depend options) + list(APPEND CONVERTED_FILES ${CMAKE_CURRENT_LIST_DIR}/${output}) + set(SCRIPT ${CMAKE_CURRENT_LIST_DIR}/../2sjis.pl) + add_custom_command( + OUTPUT ${CMAKE_CURRENT_LIST_DIR}/${output} + DEPENDS ${CMAKE_CURRENT_LIST_DIR}/${depend} + DEPENDS ${SCRIPT} + COMMAND ${PERL} ${SCRIPT} + -i ${CMAKE_CURRENT_LIST_DIR}/${depend} + -o ${CMAKE_CURRENT_LIST_DIR}/${output} + ${options} --no_utime + WORKING_DIRECTORY ${CMAKE_CURRENT_LIST_DIR} + ) + set(CONVERTED_FILES ${CONVERTED_FILES} PARENT_SCOPE) +endfunction() + +set(REF "html/reference") +ConvertHTML(${REF}/Oniguruma-LICENSE.txt ../../libs/doc_help/Oniguruma-LICENSE.txt "-l;unix") +ConvertHTML(${REF}/RE.txt ../../libs/doc_help/en/RE "-l;unix;-c;utf8") +ConvertHTML(${REF}/LibreSSL-LICENSE.txt ../../libs/doc_help/LibreSSL-LICENSE.txt "-l;unix") +ConvertHTML(${REF}/SFMT-LICENSE.txt ../../libs/doc_help/SFMT-LICENSE.txt "-l;unix") +ConvertHTML(${REF}/argon2-LICENSE.txt ../../libs/doc_help/argon2-LICENSE.txt "-l;unix") +ConvertHTML(${REF}/zlib-LICENSE.txt ../../libs/doc_help/zlib-LICENSE.txt "-l;unix;--zlib_special") +ConvertHTML(${REF}/cJSON-LICENSE.txt ../../libs/doc_help/cJSON-LICENSE.txt "-l;crlf") +ConvertHTML(${REF}/CygTerm+-LICENSE.txt ../../cygwin/cygterm/COPYING "-l;unix") +ConvertHTML(${REF}/build_with_cmake.html ${REF}/build_with_cmake.md "") +ConvertHTML(${REF}/build_library_with_cmake.html ${REF}/build_library_with_cmake.md "") + +file( + GLOB_RECURSE + SRC + LIST_DIRECTORIES false + CONFIGURE_DEPENDS + *.html *.md *.png +) +list(FILTER SRC EXCLUDE REGEX "build_library_with_cmake.html") +list(FILTER SRC EXCLUDE REGEX "build_with_cmake.html") + +source_group(TREE ${CMAKE_CURRENT_LIST_DIR} FILES ${SRC}) + +add_custom_target( + ${PACKAGE_NAME} ALL + DEPENDS ${BINARY_DIR}/teraterm.chm + SOURCES ${SRC} + SOURCES ../htmlhelp_index_make.pl + SOURCES ../2sjis.pl + WORKING_DIRECTORY ${CMAKE_CURRENT_LIST_DIR} +) + +if(NOT("${HHC}" STREQUAL "HHC-NOTFOUND")) + set(HHC_COMMAND ${HHC}) +else() + set(HHC_COMMAND ${CHMCMD}) +endif() + +if(${CMAKE_VERSION} VERSION_GREATER_EQUAL "3.12.0") + set(RM rm) +else() + # 3.11は rm がない。remove を使用する + set(RM remove) +endif() + +add_custom_command( + OUTPUT ${BINARY_DIR}/teraterm.chm + DEPENDS ${CMAKE_CURRENT_LIST_DIR}/Index.hhk + DEPENDS ${CMAKE_CURRENT_LIST_DIR}/teraterm.hhc + DEPENDS ${CMAKE_CURRENT_LIST_DIR}/teraterm.hhp + DEPENDS ${CONVERTED_FILES} + DEPENDS ${SRC} + COMMAND ${CMAKE_COMMAND} -E ${RM} -f ${BINARY_DIR}/teraterm.chm + COMMAND ${CMAKE_COMMAND} -DHHC=${HHC_COMMAND} -P ../chm.cmake + COMMAND ${CMAKE_COMMAND} -E rename ${CMAKE_CURRENT_LIST_DIR}/teraterm.chm ${BINARY_DIR}/teraterm.chm + WORKING_DIRECTORY ${CMAKE_CURRENT_LIST_DIR} +) + +add_custom_command( + OUTPUT ${CMAKE_CURRENT_LIST_DIR}/Index.hhk + DEPENDS ${SRC} + DEPENDS ${CMAKE_CURRENT_LIST_DIR}/../htmlhelp_index_make.pl + COMMAND ${PERL} ${CMAKE_CURRENT_LIST_DIR}/../htmlhelp_index_make.pl . html -o Index.hhk + WORKING_DIRECTORY ${CMAKE_CURRENT_LIST_DIR} +) + +install( + FILES ${BINARY_DIR}/teraterm.chm + DESTINATION . +) diff --git a/doc/en/html/about/contacts.html b/doc/en/html/about/contacts.html index 7aa4a8a50..fa9bedc2b 100644 --- a/doc/en/html/about/contacts.html +++ b/doc/en/html/about/contacts.html @@ -3,63 +3,93 @@ -Contacting the author +Contact, Infomations -

    Contacting the author

    +

    Contact, Infomations

    -

    -Please do not ask the author questions about usage: network configuration, how to connect a host, -host configuration, keyboard configuration, how to write a macro file and so on. Please read the documentation included in the Tera Term package. Useful information and tools may be found at -

    +

    web

    -

    -Tera Term Home Page: -https://ttssh2.osdn.jp/ -(The address may be changed in future.) -

    - -

    -You may ask the author questions about Tera Term copyrights or a permission for a special way of distributing Tera Term. -If you want to send just a message without any question, request and bug report, it may be welcome. -

    +

      +
    • Tera Term Home Page (https://teratermproject.github.io/)
    • +
    • Tera Term (Tera Term project page)
    • +
        +
      • issues (Bug/Request)
        + Please register a bug or a request to issue. GitHub account is required.
        + In the case of a bug, + If information that there is a problem with Tera Term is in ticket, + we will fix it faster
        + example: +
          +
        • If you change a part of the environment, the behavior changes, etc.
          + The behavior of Tera Term and other terminal soft is different.
          + operating environments examples:
        • +
            +
          • Windows
          • +
          • Tera Term
          • +
          • Serial, USB-Serial device, driver
            + (If a device made by compay A has no problem and a device made by compay B has a problem, you shoud contact Compay A support.
            + If devices are different but same chip is used, the same problem may exist.)
          • +
          • Ethernet, driver
            + (If version X has no problem, but version Y has a problem, you shoud contact driver support.)
          • +
          • communication path(cable(Ehter/Serial), hub, router, access point, providor, etc)
          • +
          • destination(device, program(in server, device), OS, etc)
          • +
          +
        • reproducibility, frequency
          + It would be very helpful to know how to reproduce bug.
        • +
        • log, screen capture
        • +
        • text errors in help, website, etc
        • +
        + We can not response about something other than Tera Term or beyond volunteer work.
        + example: +
          +
        • Fix BSOD
          + Tera Term is a normal, Windows application program. + It is very difficult to show BLUE SCREEN that appears on + fatal error in Windows from normal program.
          + If normal program can stop Windows with BLUE SCREEN, there + is a vulnerability in Windows.
          -

          -Before you send bug reports or requests to the author, please read carefully the following: -

          + In most cases, probably, the cause is in the device driver.
        • +
        • network configuration, how to connect a host, host configuration, keyboard configuration
        • +
        • how to write a macro file
        • +
        • about specific devices and Windows
          + A device made by Compay A version X has problem, etc
        • +
        + Problems that cannot be made public, you can Mail
        + Ticket with more votes may respond faster
        + Ticket with patch may respond faster
        +
      • +
      • Download
      • +
      • Source/Repository
      • +
      +
    +

    help documents

    -

    -Before you report a problem, please make sure that it is not caused by bad configuring of Tera Term and Windows.
    -If other applications also have the same problem, it may not be a bug of Tera Term. When you report the problem to the author, show the version number of Tera Term and information which may be related to the problem. If possible, please also show how to reproduce the problem. -

    - -

    -The author may not be able to reply your message quickly. The author may ignore bug reports
    -already known, requests already received and questions answered by the Tera Term documentation. -

    - -
    -E-mail address of the author (Yutaka Hirata): yutakakn@gmail.com -(The address may be changed in future.) -
    +

    Mail, ML

    +
      +
    • + Tera Term ML
      + Mailing list +
    • +
    • + TeraTerm-contact
      + Mail to project members
      + For contacting matter (such as bug) that you do not want to make public
      + The Mail will be shared with project members. +
    • +
    diff --git a/doc/en/html/about/copyright.html b/doc/en/html/about/copyright.html index b18cbdffa..3bdb6dd79 100644 --- a/doc/en/html/about/copyright.html +++ b/doc/en/html/about/copyright.html @@ -22,17 +22,18 @@

    Composition Module

  • TeraTerm Menu ... 3-clause BSD license
  • TTX KanjiMenu ... 3-clause BSD license
  • Additional plugins ... 3-clause BSD license
  • -
  • Collector ... Freeware. Source code is not available.
  • -
  • LogMeTT, TTLEditor ... Freeware. Proprietary license. Source code is not available.
  • Using Library(Source Code)

    @@ -41,7 +42,7 @@

    Tera Term

    License

     Copyright (C) 1994-1998 T. Teranishi
    -(C) 2004-2019 TeraTerm Project
    +(C) 2004-2024 TeraTerm Project
     All rights reserved.
     
     Redistribution and use in source and binary forms, with or without modification,
    @@ -77,7 +78,6 @@ 
       Copyright of Cygterm belongs to NSym.
       Copyright of original TTSSH belongs to Robert O'Callahan.
       Copyright of original TeraTerm Menu to Shinpei Hayakawa.
    -  Copyright of LogMeTT to Boris Maisuradze.
       Copyright of Eterm lookfeel transparency window belongs to AKASI.
       Copyright of TTProxy to Yebisuya Hompo.
       Copyright of Japanized Tera Term belongs to Yasuhide Takahashi and Taketo Hashii.
    @@ -102,13 +102,10 @@ 
       inaccurate or losses sustained by you or third parties or a failure of the program to operate 
       with any other programs).
     
    -  URL: https://ttssh2.osdn.jp/
    -  Project: https://osdn.net/projects/ttssh2/
    -  e-mail: yutakakn@gmail.com (Yutaka Hirata)
    -  forum: http://logmett.com/support-forums
    -  ML(Japanese): http://www.freeml.com/info/teraterm@freeml.com
    +  URL: https://teratermproject.github.io/
    +  Project: https://github.com/TeraTermProject/teraterm
     
    -  Tera Term Pro(original): http://hp.vector.co.jp/authors/VA002416/
    +  Tera Term Pro(original): https://www.vector.co.jp/soft/win95/net/se067018.html
       ANSI color change & concatenating multi-line patch: http://www.sakurachan.org/ml/teraterm/msg00264.html
       IPv6 version Tera Term Pro: http://win6.jp/TeraTerm/index.html
       Eterm lookfeel transparency window patch: http://www.geocities.co.jp/SiliconValley-PaloAlto/4954/av.html
    @@ -116,10 +113,7 @@ 
     
       Special thanks to ...
       - T.Teranishi - author of original Tera Term Pro
    -    URL: http://hp.vector.co.jp/authors/VA002416/
       - Yutaka Hirata - added UTF-8 and SSH2 support
    -    e-mail: yutakakn@gmail.com
    -    URL: http://hp.vector.co.jp/authors/VA013320/
     
    @@ -128,7 +122,7 @@

    TTSSH

    License

     (C)1998-2001 Robert O'Callahan
    -(C) 2004-2019 TeraTerm Project
    +(C) 2004-2024 TeraTerm Project
     All rights reserved.
     
     Redistribution and use in source and binary forms, with or without modification,
    @@ -159,14 +153,18 @@ 
     
       Copyright of original TTSSH belongs to Robert O'Callahan.
       Copyright of TTSSH supporting SSH2 belongs to Yutaka Hirata.
    -  Copyright of OpenSSL belongs to OpenSSL project. Please see OpenSSL-LICENSE.txt for more information about license.
    -    OpenSSL is linked to this program statically.
    -  Copyright of zlib belongs to Greg Roelofs and Jean-loup Gaill. Please see OpenSSL-LICENSE.txt for more information about license.
    -    zlib is linked to this program statically.
       Copyright of OpenSSH belongs to each developers. Please see OpenSSH-LICENSE.txt for more information.
         This program uses the source code of OpenSSH.
    +  Copyright of LibreSSL belongs to OpenBSD project. Please see LibreSSL-LICENSE.txt for more information about license.
    +    LibreSSL is linked to this program statically.
    +  Copyright of zlib belongs to Greg Roelofs and Jean-loup Gaill. Please see zlib-LICENSE.txt for more information about license.
    +    zlib is linked to this program statically.
       Copyright of PuTTY belongs to Simon Tatham. Please see PuTTY-LICENSE.txt for more information about license.
         This program uses the source code of PuTTY.
    +  Copyright of RLogin belongs to Culti. Please see RLogin-LICENSE.txt for more information about license.
    +    This program is referred to the source code of RLogin.
    +  Copyright of The reference C implementation of Argon2 belongs to Daniel Dinu, Dmitry Khovratovich, Jean-Philippe Aumasson, and Samuel Neves. Please see Argon2-LICENSE.txt for more information about license.
    +    This program uses the source code of The reference C implementation of Argon2.
       Copyright of TTSSH icon file to Tatsuhiko Sakamoto.
     
       This program is provided "as is" without warranties of any kind, either expressed or 
    @@ -179,28 +177,111 @@ 
       inaccurate or losses sustained by you or third parties or a failure of the program to operate 
       with any other programs).
     
    -  URL: https://ttssh2.osdn.jp/
    -  Project: https://osdn.net/projects/ttssh2/
    -  e-mail: yutakakn@gmail.com (Yutaka Hirata)
    -  forum: http://logmett.com/support-forums
    -  ML(Japanese): http://www.freeml.com/info/teraterm@freeml.com
    +  URL: https://teratermproject.github.io/
    +  Project: https://github.com/TeraTermProject/teraterm
     
       Special thanks to ...
       - Robert O'Callahan - author of original TTSSH
       - Yutaka Hirata - added SSH2 support
    -    e-mail: yutakakn@gmail.com
    -    URL: http://hp.vector.co.jp/authors/VA013320/
     

    Technology

    -
    -TTSSH uses following technologies:
    -Key exchange method: diffie-hellman-group1-sha1, diffie-hellman-group14-sha1, diffie-hellman-group-exchange-sha1, diffie-hellman-group-exchange-sha256, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521
    -Public key algorithm of server host key: ssh-rsa1, ssh-dss, ssh-rsa, ecdsa-sha2-nistp256, ecdsa-sha2-nistp384, ecdsa-sha2-nistp521, ssh-ed25519
    -Encryption algorithm: DES, 3DES, AES(128bit,192bit,256bit), Blowfish(128bit), ARCFOUR(128bit,256bit), CAST-128(128bit). Camellia(128bit,192bit,256bit)
    -MAC algorithm: hmac-sha1, hmac-md5, hmac-sha1-96, hmac-md5-96, hmac-ripemd160@openssh.com, hmac-sha2-256, hmac-sha2-256-96, hmac-sha2-512, hmac-sha2-512-96
    -Public key algorithm of public key authentication: ssh-dss, ssh-rsa, ecdsa-sha2-nistp256, ecdsa-sha2-nistp384, ecdsa-sha2-nistp521
    -
    +

    TTSSH uses following technologies:

    +
      +
    • + KEX (Key Exchange) algorithm +
        +
      • diffie-hellman-group1-sha1
      • +
      • diffie-hellman-group14-sha1
      • +
      • diffie-hellman-group-exchange-sha1
      • +
      • diffie-hellman-group-exchange-sha256
      • +
      • ecdh-sha2-nistp256
      • +
      • ecdh-sha2-nistp384
      • +
      • ecdh-sha2-nistp521
      • +
      • diffie-hellman-group14-sha256
      • +
      • diffie-hellman-group16-sha512
      • +
      • diffie-hellman-group18-sha512
      • +
      +
    • +
    • + Public key algorithm of server host key +
        +
      • ssh-rsa1 (SSH1)
      • +
      • ssh-rsa (RSA/SHA-1)
      • +
      • rsa-sha2-256
      • +
      • rsa-sha2-512
      • +
      • ssh-dss
      • +
      • ecdsa-sha2-nistp256
      • +
      • ecdsa-sha2-nistp384
      • +
      • ecdsa-sha2-nistp521
      • +
      • ssh-ed25519
      • +
      +
    • +
    • + Cipher algorithm +
        +
      • DES (SSH1)
      • +
      • 3DES (SSH1)
      • +
      • Blowfish (SSH1)
      • +
      • 3des-cbc
      • +
      • aes128-cbc
      • +
      • aes128-cbc
      • +
      • aes256-cbc
      • +
      • blowfish-cbc
      • +
      • aes128-ctr
      • +
      • aes192-ctr
      • +
      • aes256-ctr
      • +
      • arcfour
      • +
      • arcfour128
      • +
      • arcfour256
      • +
      • cast128-cbc
      • +
      • 3des-ctr
      • +
      • blowfish-ctr
      • +
      • cast128-ctr
      • +
      • camellia128-cbc
      • +
      • camellia192-cbc
      • +
      • camellia256-cbc
      • +
      • camellia128-ctr
      • +
      • camellia192-ctr
      • +
      • camellia256-ctr
      • +
      • aes128-gcm@openssh.com
      • +
      • aes256-gcm@openssh.com
      • +
      • chacha20-poly1305@openssh.com
      • +
      +
    • +
    • + MAC (message authentication code) algorithm +
        +
      • hmac-sha1
      • +
      • hmac-md5
      • +
      • hmac-sha1-96
      • +
      • hmac-md5-96
      • +
      • hmac-ripemd160@openssh.com
      • +
      • hmac-sha2-256
      • +
      • hmac-sha2-512
      • +
      • hmac-sha1-etm@openssh.com
      • +
      • hmac-md5-etm@openssh.com
      • +
      • hmac-sha1-96-etm@openssh.com
      • +
      • hmac-md5-96-etm@openssh.com
      • +
      • hmac-ripemd160-etm@openssh.com
      • +
      • hmac-sha2-256-etm@openssh.com
      • +
      • hmac-sha2-512-etm@openssh.com
      • +
      +
    • +
    • + Public key signature algorithm of publickey authentication +
        +
      • ssh-dss
      • +
      • ssh-rsa (RSA/SHA-1)
      • +
      • rsa-sha2-256
      • +
      • rsa-sha2-512
      • +
      • ecdsa-sha2-nistp256
      • +
      • ecdsa-sha2-nistp384
      • +
      • ecdsa-sha2-nistp521
      • +
      • ssh-ed25519
      • +
      +
    • +

    CygTerm+

    @@ -209,7 +290,7 @@

    License

     Using Cygwin with a terminal emulator.
     Copyright (C) 2000-2006 NSym
    -(C) 2004-2016 TeraTerm Project
    +(C) 2004-2023 TeraTerm Project
     
     This program is free software; you can redistribute it and/or
     modify it under the terms of the GNU General Public License
    @@ -244,10 +325,8 @@ 
       inaccurate or losses sustained by you or third parties or a failure of the program to operate 
       with any other programs).
     
    -  URL: https://ttssh2.osdn.jp/
    -  Project: https://osdn.net/projects/ttssh2/
    -  e-mail: yutakakn@gmail.com (Yutaka Hirata)
    -  ML(Japanese): http://www.freeml.com/info/teraterm@freeml.com
    +  URL: https://teratermproject.github.io/
    +  Project: https://github.com/TeraTermProject/teraterm
     
       Special thanks to ...
       * NSym - author of original CygTerm
    @@ -260,7 +339,7 @@ 

    TTProxy

    License

     Copyright (C) 2003-2006 YebisuyaHompo
    -(C) 2004-2016 TeraTerm Project
    +(C) 2004-2019 TeraTerm Project
     All rights reserved.
     
     Redistribution and use in source and binary forms, with or without modification,
    @@ -302,10 +381,8 @@ 
       inaccurate or losses sustained by you or third parties or a failure of the program to operate 
       with any other programs).
     
    -  URL: https://ttssh2.osdn.jp/
    -  Project: https://osdn.net/projects/ttssh2/
    -  e-mail: yutakakn@gmail.com (Yutaka Hirata)
    -  ML(Japanese): http://www.freeml.com/info/teraterm@freeml.com
    +  URL: https://teratermproject.github.io/
    +  Project: https://github.com/TeraTermProject/teraterm
     
       Special thanks to ...
       * Yebisuya Sugoroku - author of original TTProxy
    @@ -318,7 +395,7 @@ 

    TeraTerm Menu

    License

     Copyright(C) 1997-2003 S.Hayakawa
    -(C) 2004-2016 TeraTerm Project
    +(C) 2004-2024 TeraTerm Project
     All rights reserved.
     
     Redistribution and use in source and binary forms, with or without modification,
    @@ -359,10 +436,8 @@ 
       inaccurate or losses sustained by you or third parties or a failure of the program to operate 
       with any other programs).
     
    -  URL: https://ttssh2.osdn.jp/
    -  Project: https://osdn.net/projects/ttssh2/
    -  e-mail: yutakakn@gmail.com (Yutaka Hirata)
    -  ML(Japanese): http://www.freeml.com/info/teraterm@freeml.com
    +  URL: https://teratermproject.github.io/
    +  Project: https://github.com/TeraTermProject/teraterm
     
       Special thanks to ...
       - S.Hayakawa - author of TeraTerm Menu
    @@ -375,7 +450,7 @@ 

    TTX KanjiMenu

    License

     Copyright (C) 2007 Sunao HARA
    -(C) 2004-2009 TeraTerm Project
    +(C) 2004-2024 TeraTerm Project
     All rights reserved.
     
     Redistribution and use in source and binary forms, with or without modification,
    @@ -416,10 +491,8 @@ 
       inaccurate or losses sustained by you or third parties or a failure of the program to operate 
       with any other programs).
     
    -  URL: https://ttssh2.osdn.jp/
    -  Project: https://osdn.net/projects/ttssh2/
    -  e-mail: yutakakn@gmail.com (Yutaka Hirata)
    -  ML(Japanese): http://www.freeml.com/info/teraterm@freeml.com
    +  URL: https://teratermproject.github.io/
    +  Project: https://github.com/TeraTermProject/teraterm
     
       Special thanks to ...
       - Sunao HARA - author of original TTX KanjiMenu
    diff --git a/doc/en/html/about/ctrlseq.html b/doc/en/html/about/ctrlseq.html
    index c0628960a..75596e514 100644
    --- a/doc/en/html/about/ctrlseq.html
    +++ b/doc/en/html/about/ctrlseq.html
    @@ -169,6 +169,7 @@ 

    CSI Sequence

    + - + - - + + @@ -768,8 +769,8 @@

    Modes (DEC/xterm specific)

    - - + + @@ -947,10 +948,10 @@

    OSC Sequence

    - - + + - + - - + + - +
    CSI Ps Z CBT Moves cursor to the Ps tabs backward. The default value of Ps is 1.
    CSI Ps ` HPA Moves cursor to the Ps-th column of the active line. The default value of Ps is 1.
    CSI Ps a HPR Moves cursor to the right Ps columns. The default value of Ps is 1.
    CSI Ps b REP Repeat the last output character Ps times. The default value of Ps is 1.
    CSI Ps c DA Primary Device Attribute. The default value of Ps is 0.
     Ps = 0    Asks for the terminal's architectural class and basic attributes.
    @@ -263,7 +264,7 @@ 

    CSI Sequence

    = 13 Reports window position. Ps2 = Omitted, 0, 1 Reports whole window position. - = 2 Reprots text area position. + = 2 Reports text area position. Response: CSI 3 ; x ; y t x X position of window. y Y position of window. @@ -271,7 +272,7 @@

    CSI Sequence

    = 14 Reports window size in pixels. Ps2 = Omitted, 0, 1 Reports text area size. - = 2 Reprots whole window size. + = 2 Reports whole window size. Response: CSI 4 ; y ; x t y Window height in pixels. x Window width in pixels. @@ -754,10 +755,10 @@

    Modes (DEC/xterm specific)

    Clear screen, switch to normal screen buffer, and restore cursor position.
    2004 2004 RL_BRACKET Enables Bracketed paste mode. Disables Bracketed paste mode. Enables Bracketed paste mode. Disables Bracketed paste mode.
    7727
    7786 - Enables mouse wheel - cursorkey translation. Disables mouse wheel - cursorkey translation. Enables mouse wheel - cursor key translation. Disables mouse wheel - cursor key translation.
    8200
    15 Change TEK Window's text color to Pt. Format of Pt is same as OSC 4's spec.
    16 Change TEK Window's background color to Pt. Format of Pt is same as OSC 4's spec.
    16 Change TEK Window's background color to Pt. Format of Pt is same as OSC 4's spec.
    52 Clipboard access.
     Pt = Pc ; Pd
    @@ -971,10 +972,10 @@ 

    OSC Sequence

    115 Reset TEK Window's text color.
    116 Reset TEK Window's background color.
    116 Reset TEK Window's background color.

    SOS Sequence

    @@ -994,12 +995,12 @@

    APC Sequence

    References

    diff --git a/doc/en/html/about/difference.html b/doc/en/html/about/difference.html index d581b1429..0044c3d92 100644 --- a/doc/en/html/about/difference.html +++ b/doc/en/html/about/difference.html @@ -3,727 +3,264 @@ -Differences from 2.3 +Differences between 2.3, 4 and 5 -

    Differences from 2.3

    +

    Differences between 2.3, 4 and 5

    -There are differences between Tera Term(Tera Term 4.58) and Tera Term Pro 2.3 in the following table: +Overview of difference between Teraterm 2.3 (original version) by Takashi Teranishi and Tera Term 4 and Tera Term 5.

    Feature Differences

    - - - + + + + - - - - - - + - - + + + - - - + + + + - - - + + + + - + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + - + - + + - + - - - - - - - - - - - - + + - - - + + + + + + + + - - - + + + + - - - + + + + - - - + + + + - + + - - - + + + + + + + + - - - - - - - + +
    ContentTera Term Pro 2.3Tera TermContentTera Term Pro 2.3Tera Term 4Tera Term 5
    Source code Opened Opened
    Development toolVisual C++ 5.0 / Watcom C/C++ 11.0Visual Studio 2005[*1]Opened
    LicenseProprietary[*2]Modified BSD license[*3]Proprietary*1Modified BSD license*2Modified BSD license
    IconTera Term[*4]Tera Term[*4]Development toolVisual C++ 5.0 / Watcom C/C++ 11.0Visual Studio 2005Visual Studio 2022
    TTSSH iconTTSSHTTSSH[*4]IconTera Term*3Tera TermTera Term
    Maximum COM port 1625640964096
    Serial speed from 110 to 115200from 110 to 921600
    Plugin moduleNeed to setup "TERATERM_EXTENSIONS" environmental variableNo need
    Linked librarySSLeay, zlibOpenSSL(used as the encryption library, but not used as TLS)
    zlib
    Oniguruma
    PuTTY(used for cooperation with Pageant, but not used for communication and terminal emulation)
    TTSSHSSH 1.5SSH 1.5 and 2
    support SSH protocolshell, port-forwarding, X11 forwardingshell, port-forwarding, X11 forwarding, SCP
    nonsupport SSH protocolSFTP, SCPSFTP
    SSH Symmetric key cipher algorithm3DES, DES, Blowfish3DES-CBC, Blowfish, AES128, AES192, AES256
    SSH packet compressionYesYes, and also supports SSH2 delayed compression.
    Pageant[*5] collaborationNoYesfrom 110 to 921600, and editablefrom 110 to 921600, and editable
    Japanese character code EUC-JP/Shift_JIS/JIS EUC-JP/Shift_JIS/JIS/UTF-8/UTF-8 MACEUC-JP/Shift_JIS/JIS/UTF-8
    UnicodeUnicode support Not supportedSupport single language[*6]Support single language*4Support multi language
    IPv6IPv6 support No Yes
    Transparency windowNo Yes
    Heart beat[*7]Notelnet, SSH1 and 2
    Maximize windowi18n support NoYes*5 Yes
    Scroll Lock keyNoYesLinked library*6 + +
      +
    • Oniguruma +
        +
      • used as the regular expressions library
      • +
      +
    • +
    • SFMT +
        +
      • used as the random number generator
      • +
      +
    • +
    +
    +
      +
    • Oniguruma +
        +
      • used as the regular expressions library
      • +
      +
    • +
    • SFMT +
        +
      • used as the random number generator
      • +
      +
    • +
    +
     
    Prohibit right-clickingNoYesTTSSH iconTTSSHTTSSHTTSSH
    Online help documentWinHelpHtmlHelpsupported SSH versionSSH 1.5SSH 1.5 and 2SSH 1.5 and 2
    Clickable URLNoYessupported SSH featureshell, port-forwarding, X11 forwardingshell, port-forwarding, X11 forwarding, SCPshell, port-forwarding, X11 forwarding, SCP
    Wheel mousePageant*7 collaboration No YesYes
    I18NNoYes[*8]Linked library*6 +
      +
    • SSLeay +
        +
      • used as the cryptographic library (libeay32.lib)
      • +
      • not used as SSL library (not ssleay32.lib)
      • +
      +
    • +
    • zlib +
        +
      • used as the compression library
      • +
      +
    • +
        +
    +
      +
    • OpenSSL +
        +
      • used as the cryptographic library
      • +
      • not used as TLS library
      • +
      +
    • +
    • zlib +
        +
      • used as the compression library
      • +
      +
    • +
    • argon2 +
        +
      • used for decrypt PuTTY private key file
      • +
      +
    • +
    • PuTTY +
        +
      • used for display tooltip
      • +
      • used for cooperation with Pageant
      • +
      • not used for communication and terminal emulation
      • +
      +
    • +
    +
    +
      +
    • LibreSSL +
        +
      • used as the cryptographic library, but not used as TLS
      • +
      +
    • zlib +
        +
      • used as the compression library
      • +
      +
    • +
    • argon2 +
        +
      • used for decrypt PuTTY private key file
      • +
      +
    • +
    • PuTTY +
        +
      • used for display tooltip
      • +
      • used for cooperation with Pageant
      • +
      • not used for communication and terminal emulation
      • +
      +
    • +
    • RLogin +
        +
      • used for cooperation with Pageant
      • +
      +
    • +
    +
     
    Proxy NoYes[*9](HTTP, TELNET, SOCKS4, SOCKS5)
    xterm 256 color modeNoYesYes*8 (HTTP, TELNET, SOCKS4, SOCKS5)Yes (HTTP, TELNET, SOCKS4, SOCKS5)
    -

    - -
      -
    • [*1] You can not use Visual Studio 2005 Express Edition because the partial code of source code is MFC(C++).
    • -
    • [*2] Without written permission by the author (Takashi Teranishi), you may not distribute modified versions of this package, and may not distribute this package for profit.
    • -
    • [*3] Tera Term is distributed under Modified BSD License.
    • -
    • [*4] Icon designer is Tatsuhiko Sakamoto.
    • -
    • [*5] An SSH authentication agent for PuTTY and WinSCP.
    • -
    • [*6] Tera Term can not simultaneously display multi languages because it has not completely implemented as Unicode API. Now Tera Term mutually converts between Unicode(UCS-2) and MBCS. Also, Chinese version Windows can display Chinese characters when you configure the locale for Unicode.
    • -
    • [*7] If there is no communication for a long time in NAT network, SSH session may disconnect because the router will clear NAT table.
    • -
    • [*8] You can switch the message language by using the language file(lang\*.lng). You need to re-startup Tera Term to active new message language.
    • -
    • [*9] Using TTProxy.
    • -
    - -

    -Other new features are shown below. -

    -
      -
    • ANSI color change and continued-line copy.
    • -
    • Changing mouse cursor type.
    • -
    • Adding a comment to logging file.
    • -
    • Broadcast command feature.
    • -
    • Selecting all buffer.
    • -
    • Extend the maximum length of the host name.
    • -
    • TeraTerm Menu and LogMeTT included.
    • -
    • Duplicate session.
    • -
    • Extend the maximum byte of Tera Term scroll buffer.
    • -
    • Support for a drag-and-drop operation moving the folder from explorer.
    • -
    • The second later Tera Term instance can read teraterm.ini file from not the shared memory but disk file system.
    • -
    • Support for VisualStyle(WindowsXP).
    • -
    • Add new title format.
    • -
    • Add new type of log collection.
    • -
    • Support for a default log file name(You can use strftime format).
    • -
    • Add the wizard generating SSH authentication key.
    • -
    • Add CygTerm configuration dialog.
    • -
    • Support for having tabs by using Collector.
    • -
    • Add scroll through the screen buffer to the back page when <ESC>[J escape sequence is done.
    • -
    • Add log reply menu.
    • -
    • Add New-line to `LF' type.
    • -
    • Add support for selecting a current screen buffer.
    • -
    • Add support bash style shortcut key(C-u, C-d, C-k, C-p, C-n, C-b, C-f, C-a, C-a) in "Host" drop-down on "New connection" dialog.
    • +
    • [*1] Without written permission by the author (Takashi Teranishi), you may not distribute modified versions of this package, and may not distribute this package for profit.
    • +
    • [*2] Tera Term is distributed under Modified BSD License.
    • +
    • [*3] Icon designer is Tatsuhiko Sakamoto.
    • +
    • [*4] Tera Term can not simultaneously display multi languages because it has not completely implemented as Unicode API. Now Tera Term mutually converts between Unicode(UCS-2) and MBCS. Also, Chinese version Windows can display Chinese characters when you configure the locale for Unicode.
    • +
    • [*5] You can switch the message language by using the language file(lang\*.lng). You need to re-startup Tera Term to active new message language.
    • +
    • [*6] Detail of libraries
    • +
    • [*7] An SSH authentication agent for PuTTY and WinSCP.
    • +
    • [*8] Using TTProxy.
    -
    - -

    Bug fixes: Tera Term Pro 2.3

    - -
      -
    • Tera Term window size could not be changed after the window width is smaller than 84 dot(94 dot on XP LUNA style).
    • -
    • BOF(Buffer Over Flow) problem in ttpmacro.exe program, which 256 byte longer command line parameter is specified.
    • -
    • BOF(Buffer Over Flow) problem in ttpmacro.exe program when a line of macro is longer than 256 byte.
    • -
    • The program of ttermpro.exe can not send the server data to ttpmacro.exe program with DDE transaction.
    • -
    • The 'pause' macro command had a time-lag about 1 sec.
    • -
    • The macro script might stall with logging mode.
    • -
    • The cpu scheduling of Tera Term process could occupy while macro script running.
    • -
    • The division operator of macro language does not work.
    • -
    • Tera Term would crash when the sending file size exceeded 20MB with ZMODEM protocol.
    • -
    - -
    - -

    New keyboard shortcut

    - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    KeyFunction
    ScrollLockTera Term window scroll locked or unlocked(toggle)
    Alt + EnterSwitch to Tera Term next/prev window
    Alt + DDuplicate session (SSH, telnet only)
    Alt + GCygwin connection
    Left click, Shift + Left click Select several pages of output from Tera Term window. - Or expand ans contract of text area that has been selected. -
    Shift + Mouse dragDeleted to support for above key shortcut
    Alt + MouseDrag Select rectangular block of text
    - - -
    - -

    New macro command

    - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    CommandFeature
    connecthas SSH auto login parameters
    waitregexis waitln regular expression version.
    ifdefinedcan retrieve the type of the variable value.
    mpausecan sleep per millisecond.
    sprintfcan generate the format string as like printf function of C language.
    str2intcan convert a hexadecimal string to a number.
    filereadcan read specified byte data from file.
    clipb2varcan copy data from the Clipboard.
    var2clipbcan copy data to the Clipboard.
    randomcan generate the random number.
    tolowercan translate characters to lowercase.
    touppercan translate characters to uppercase.
    breakcan exit from within a for or while loop.
    inputboxcan specify a default string which the text box contains as default text.
    rotateleftcan rotate the 32bit value toward the left per bit.
    rotaterightcan rotate the 32bit value toward the right per bit.
    setenvcan change an environment variable on Tera Term process.
    filenameboxDisplays a dialog box prompting user to input a string.
    do - loopLoop control
    until - enduntilLoop control
    callmenucan call Tera Term window menu.
    cygconnectConnects to Cygwin.
    scpsendSends a file from the host with the SCP protocol.
    scprecvReceives a file from the remote host with the SCP protocol.
    getverGet the version of Tera Term.
    setbaudCauses Tera Term to change speed of COM port.
    - - -
    - -

    New teraterm.ini entry

    - -

    -"Tera Term" sections are shown below. -

    - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    EntryFeature
    UILanguageFilecan specify the I18N language file. The default language is English.
    ConnectingTimeoutis disconnection timeout value per second while TCP connecting. - Also, this value can be specified at /timeout command line option.
    DisablePasteMouseRButtoncan disable pasting by right-click.
    ConfirmPasteMouseRButtoncan require the user to confirm an action before pasting by right-click is carried out.
    DisableAcceleratorSendBreakcan disable sending break signal by Alt+B key shortcut.
    ANSIColorcan configure ANSI color table.
    EnableContinuedLineCopycan enable concatenating the next line.
    MouseCursorcan change the kind of the mouse pointer.
    AlphaBlendcan setup the transparency value of Tera Term window.
    CygwinDirectorycan specify a folder of Cygwin installation.
    ViewlogEditorcan specify an editor program which open a log file.
    Localecan specify a locale for Unicode.
    CodePagecan specify code page for Unicode.
    UseNormalBGColorcan enable matching a character with a screen for a background color.
    KanjiReceiveadded "UTF-8" and "UTF-8m" option for Unicode.
    KanjiSendadded "UTF-8" option for Unicode. Besides, "UTF-8m" is not necessary because sending procedure is NFC at UTF-8-MAC.
    URLColorcan specify the emphasis color of Clickable URL. Actually, it does not work.
    EnableClickableUrlcan enable Clickable URL.
    LogTypePlainTextcan not include control codes in logging file.
    LogTimestampcan insert OS timestamp in the head of the line while log collection doing.
    LogDefaultNamecan specify the default file name when log collection starts. You can use strftime format.
    LogDefaultPathcan specify the default path name when log collection starts.
    LogAutoStartcan automatically start log collection when Tera Term connect to remote server.
    BroadcastCommandHistorycan record command history of Broadcast Command to teraterm.ini file.
    AcceptBroadcastdoes not send the command the user input to own window when this option is off.
    TitleFormatadded "13", "29", "45" and "61" as format ID.
    FileSendFiltercan configure filters of file name on sending dialog.
    VTCompatTabcan enable that the tab display at the end of line is VT compatible terminal.
    MaxBroadcatHistoryNumber for the history of broadcast command
    DisableAppKeypad, DisableAppCursorcan disable application keypad/cursor mode.
    ClearComBuffOnOpenDon't clear COM buffer when serial port opening.
    Send8BitCtrlSend C1 (ASCII $80-$9F) control characters.
    SelectOnlyByLButtonenables only mouse left-click to select the text by dragging.
    TelAutoDetectcontrols telnet command detection.
    ZmodemRcvCommandReceive command for ZMODEM
    XmodemRcvCommandReceive command for XMODEM
    ConfirmFileDragAndDropConfirmation of File Transfer by Drag & Drop
    TranslateWheelToCursorMouse wheel action in application cursor mode
    HostDialogOnStartupShowing "New Connection" dialog on startup
    MouseEventTrackingMouse tracking mode
    KillFocusCursorDisplay the cursor even if the window comes out of focus
    ConfirmChangePasteShow the confirmation dialog when the Clipboard includes CR/LF by pasting
    MaximizedBugTweakHow to scroll the screen when the window size is maximized
    - -

    -"TTSSH" sections are shown below. -

    - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    EntryFeature
    CipherOrderadded "7" as 3DES-CBC, "8" as AES128, "9" as AES192, ":" as AES256, ";" as BlowfishBlowfish(SSH2).
    ProtocolVersioncan be SSH protocol version.
    HeartBeatcan be keep-alive(heart-beat) interval per second.
    RememberPasswordcan configure whether the password string which the user input will preserve on memory.
    CheckAuthListFirstdisables SSH2 unsupported authentication method before trying user authentication.
    - - diff --git a/doc/en/html/about/emulations.html b/doc/en/html/about/emulations.html index 523670b40..f592c99f1 100644 --- a/doc/en/html/about/emulations.html +++ b/doc/en/html/about/emulations.html @@ -1,18 +1,21 @@ - - + + Emulations - - + +

    Emulations

      -
    • DEC VT100 and selected features of VT200/300 [*1]
    • +
    • DEC VT100 and selected features of VT200/300/400/500
    • +
    • ANSI control sequences, which are not supported by VT100 (color attribute etc.), are also supported.
    • The xterm extension sequences like as the mouse and the 256 color are supported.
    • You can enable or disable the use of bold style font for characters with the bold attribute. You can also set the color to display them.
    • @@ -21,13 +24,213 @@

      Emulations

    • Tektronix TEK4010
    +

    Color

    + +About text and background colors. + +

    Available color modes

    + +Following checkboxes can be setted in Settings - Window Settings. + +Each mode can be used simultaneously. + +
      +
    • 16 color mode (PC style) +
    • 16 color mode (aixterm style) +
    • 256 color mode (xterm style) +
    + +If all are set to disable, 8-color mode is used. + +

    Sequence which changes availability depends on color setting

    + +

    8 color mode

    +

    +When either 16 or 256 color mode is enabled, colors 1-7 are slightly darker. + +

    +When 16 and 256 color modes are disable, 8 color mode is used +and colors 1-7 are bright(primary) colors. + +

      +
    • Fore color 0-7 = SGR 30-37 +
    • Back color 0-7 = SGR 40-47 +
    + +

    16 color mode (PC style)

    + +

    +Blink attribute is Tera Term extension. + +

      +
    • Fore color 0-7 = SGR 30-37 +
    • Fore color 8-15 = Bold + SGR 30-37 +
    • Back color 0-7 = SGR 40-47 +
    • Back color 8-15 = Blink + SGR 40-47 +
    + +

    16 color mode (aixterm style)

    + +

    +When the 16-color mode (aixterm style) is disalbe, +SGR100 is "text and background colors set to default". + +

      +
    • Fore color 0-7,8-15 = SGR 30-37,90-97 +
    • Back color 0-7,8-15 = SGR 40-47,100-107 +
    + +

    256 color mode(xterm style)

    +
      +
    • Fore color 0-255 = Set color number with SGR 38 +
    • Back color 0-255 = Set color number with SGR 48 +
    + +

    16 color mode (PC style) detail

    + +

    +In Tera Term To extend fore and background 16 color simultaneously, +bold attribute is used to extend the fore color and +blink attribute is used to extend the background color. + +

    +If bold attribute is used to extend the background color, for example, +it is not possible to specify a fore color is 15 and background color +is 1. +

    -[*1] DEC special font
    -The line drawing characters by using the Linux TUI(Text User Interface) are controlled as the -DEC special font(Tera Special font). The special font is defined as the <ESC>(0 escape -sequence, and assigned to the line drawing character from 0140(0x60) to 0176(0x7f).
    -Reference: Frequently asked questions -

    +Application outputs according to TERMINFO (e.g. ncurses applications), +TERMINFO entry setab as follows: +
    +  setab=\E[%?%p1%{8}%<%t4%p1%d%e%p1%{16}%<%t5;4%p1%{8}%-%d%e48;5;%p1%d%;m,
    +
    + +

    About changing color

    + +

    +16 default colors can be changed in TERATERM.INI. + +

    +Color themes can also be changed. + +

    Change default color

    + +
      +
    • [Tera Term] section in TERATERM.INI +
    • ANSIColor key +
    • 8 bright colors from the beginning (primary color, bright version) +
    • Next 8 colors are slightly darker than first 8 colors (black is not replaced) +
    + +

    16/256 color mode

    + +Color numbers 0 through 15 are different in ANSIColor in TERATERM.INI. +first 7 colors and second 7 colors are replaced (black and gray are not replaced). + +
      +
    • 0 black +
    • 1-7 Slightly darker color +
    • 8 gray +
    • 9-15 Bright color, primary color +
    + +

    8 color mode

    + +Color numbers 0 through 8 are first 8 colors set in ANSIColor in TERATERM.INI. +
      +
    • 0-7 Bright color, primary color +
    + +

    color table

    + +
    +      TERATERM.INI            16/256 color              8 color
    + 0    "Black"                 "Black"                   "Black"
    + 1    "Bright Red"            "Red"                     "Bright Red"
    + 2    "Bright Green"          "Green"                   "Bright Green"
    + 3    "Bright Yellow"         "Yellow"                  "Bright Yellow"
    + 4    "Bright Blue"           "Blue"                    "Bright Blue"
    + 5    "Bright Magenta"        "Magenta"                 "Bright Magenta"
    + 6    "Bright Cyan"           "Cyan"                    "Bright Cyan"
    + 7    "Bright White"          "White"                   "Bright White"
    + 8    "Bright Black (Gray)"   "Bright Black (Gray)"
    + 9    "Red"                   "Bright Red"
    +10    "Green"                 "Bright Green"
    +11    "Yellow"                "Bright Yellow"
    +12    "Blue"                  "Bright Blue"
    +13    "Magenta"               "Bright Magenta"
    +14    "Cyan"                  "Bright Cyan"
    +15    "White"                 "Bright White"
    +
    + +

    Reverse color

    + +

    +Reverse color is displayed in the following cases: +

      +
    • SGR 7 +
    • When DECSCNM set +
    • When the mouse is selected +
    + +

    +When reverse attribute is enabled, text is drawn with reverse attribute fore and back colors. + +

    +When reverse attribute is disabled, the fore and back colors are replace to make the display reverse color. +(Some terminal emulators use (255-R,255-G,255-B) as (R,G,B) color invert color.) + +

    +This is for following reasons: +

      +
    • Tera Term's main emulation target is DEC VT series +
    • Same as VT525 operation, which can handle color in the VT series. +
    + +

    text foreground and background colors

    + +
      +
    • Text has attributes
    • +
        +
      • Normal attribute has no special attributes
      • +
      +
    • There may be multiple attributes (such as Reverse+Bold)
    • +
    • Attributes related to color are Reverse, Blink, Bold, Underline, and URL. When each of these attributes is enabled, attribute's colors are used.
    • +
    • The fore and back colors of the text are determined by the attributes above table
    • +
    • Attribute with goh in the gUseNormalBGColorh column uses gNormal backh when gAlways use Normal text's BGh is checked.
    • +
    + +
    +| Attribute           | Fore Color     | Back Color     | UseNormalBGColor | remark         |
    +|---------------------|----------------|----------------|------------------|----------------|
    +| Fore color          | Fore color     | -              |                  | 8/16/256 color |
    +| Back color          | -              | Back color     |                  | 8/16/256 color |
    +| Blink attribute     | Blink fore     | Blink back     | o                | SGR5           |
    +| Bold attribute      | Bold fore      | Bold back      | o                | SGR1           |
    +| Underline attribute | Underline fore | Underline back | o                | SGR4           |
    +| URL attribute       | URL fore       | URL back       | o                |                |
    +| Reverse attribute   | Reverse fore   | Reverse back   |                  | SGR7           |
    +| Normal attribute    | Normal fore    | Normal back    |                  | SGR0           |
    +
    + +
      +
    • When the Reverse attribute is enabled and the text is displayed in reverse
    • +
        +
      • Only Reverse attribute texts is seted colors of the Reverse attribute
      • +
      • For other attribute texts, Fore and Back are swapped.
      • +
      +
    • When the Reverse attribute is disabled and the text is displayed in reverse
    • +
        +
      • Fore and Back are swapped. +
      +
    • When UseTextColor=onand
      + Fore is ANSI0(black) or ANSI7(white) or ANSI15(gray), and Fore and Back are same, +
        +
      • When attribute has no Reverse, Normal attributefs Fore and Back are used.
      • +
      • When attribute has Reverse, Reverse attributefs Fore and Back are used.
      • +
      +
    • +
    - - + + diff --git a/doc/en/html/about/emulations_dec_special.html b/doc/en/html/about/emulations_dec_special.html new file mode 100644 index 000000000..4b282c4c4 --- /dev/null +++ b/doc/en/html/about/emulations_dec_special.html @@ -0,0 +1,141 @@ + + + + +DEC Special Graphics + + + + + +

    DEC Special Graphics

    + +

    +Linux TUI (Text User Interface) transmits the line drawing characters as DEC Special Graphics in some case. +

    + +

    +DEC Special Graphics is defined as the <ESC>(0 escape +sequence, and assigned to the line drawing character from 0137(0x5f,'_') to 0176(0x7e).
    +When receive code is not Japanese, such as ISO8859-1, DEC Special Graphics is designated to G1, so +SO(0x0e) can be used to display DEC Special Graphics. +

    + +

    +Tera Term can display DEC Special Graphics using its Special font(font name is "TSPECIAL1.TTF", font name is "Tera Specail").
    +All Tera Special character widths are 1cell. +

    + + +

    + Example of DEC Special Graphics:
    +

    +echo -e "_abcdefghijklmnopqrstuvwxyz\x7b\x7c\x7e\r\n\x1b(0_abcdefghijklmnopqrstuvwxyz\x7b\x7c\x7e\x0f\x1b(B"
    +echo -e "_abcdefghijklmnopqrstuvwxyz\x7b\x7c\x7e\r\n\x0e_abcdefghijklmnopqrstuvwxyz\x7b\x7c\x7e\x0f\x1b(B"
    + +
    +
    + font: Tera Special, Myrica +
    + +
    +
    SO(LS1(Locking Shift 1)) (0x0e)
    +
    G1 is invoked over GL
    +
    SI(LS0(Locking Shift 0)) (0x0f)
    +
    G0 is invoked over GL
    +
    ESC ( 0 (0x1B 0x28 0x30)
    +
    DEC Special Graphics is designated to G0, G0 is invoked over GL
    +
    ESC ( B (0x1B 0x28 0x42)
    +
    ASCII is designated to G0, G0 is invoked over GL
    +
    +

    + +

    + If you do not want to display DEC Special Graphics using SO(0x0e,LS1(Locking Shift 1)), + Change ISO2022ShiftFunction + setting. +

    + +

    + See also informations on web. +

    +

    + +

    + In CJK environment, Tera Term displays Box-drawing character and some symbols with 2 column widths. + (Character width can be changed in the settings. + Refer to Additional settings / "Encoding" tab, Ambiguous Characters width) +

    + +

    +However, some host applications may assume these characters will be displayed as 1-column wide character which results in incorrect display image.
    +In addition, a ruler may be displayed by using +-| and some unsupported characters may be displayed as ?? in English mode.
    +Tera Term can be configured to display these characters by similar code of DEC Special Graphics (if any exists) to minimize the incorrect display image. +Setting can be changed on Additional settings / "Encoding" tab, DEC Special Graphics
    +However this feature causes a side effect that characters selected by mouse will be copied as different characters in a clipboard. +

    + +

    + DEC Special Graphics can also be converted to Unicode and display with VT Window font.
    + By selecting a font, user can display any preferred design font.
    + However, glyphs are not in font (SCAN LINE(0x6f...0x73) etc), + font design is wrong, or character width do not match. +

    +DEC Special Graphic - Unicode convert table
    +
    +code Unicode
    +-----+----------------------------------------------
    +0x5f U+00A0 NO-BREAK SPACE
    +0x60 U+25C6 BLACK DIAMOND
    +0x61 U+2592 MEDIUM SHADE
    +0x62 U+2409 SYMBOL FOR HORIZONTAL TABULATION
    +0x63 U+240C SYMBOL FOR FORM FEED
    +0x64 U+240D SYMBOL FOR CARRIAGE RETURN
    +0x65 U+240A SYMBOL FOR LINE FEED
    +0x66 U+00B0 DEGREE SIGN
    +0x67 U+00B1 PLUS-MINUS SIGN
    +0x68 U+2424 SYMBOL FOR NEWLINE
    +0x69 U+240B SYMBOL FOR VERTICAL TABULATION
    +0x6a U+2518 BOX DRAWINGS LIGHT UP AND LEFT
    +0x6b U+2510 BOX DRAWINGS LIGHT DOWN AND LEFT
    +0x6c U+250C BOX DRAWINGS LIGHT DOWN AND RIGHT
    +0x6d U+2514 BOX DRAWINGS LIGHT UP AND RIGHT
    +0x6e U+253C BOX DRAWINGS LIGHT VERTICAL AND HORIZONTAL
    +0x6f U+23BA HORIZONTAL SCAN LINE-1
    +0x70 U+23BB HORIZONTAL SCAN LINE-3
    +0x71 U+2500 BOX DRAWINGS LIGHT HORIZONTAL
    +0x72 U+23BC HORIZONTAL SCAN LINE-7
    +0x73 U+23BD HORIZONTAL SCAN LINE-9
    +0x74 U+251C BOX DRAWINGS LIGHT VERTICAL AND RIGHT
    +0x75 U+2524 BOX DRAWINGS LIGHT VERTICAL AND LEFT
    +0x76 U+2534 BOX DRAWINGS LIGHT UP AND HORIZONTAL
    +0x77 U+252C BOX DRAWINGS LIGHT DOWN AND HORIZONTAL
    +0x78 U+2502 BOX DRAWINGS LIGHT VERTICAL
    +0x79 U+2264 LESS-THAN OR EQUAL TO
    +0x7a U+2265 GREATER-THAN OR EQUAL TO
    +0x7b U+03C0 GREEK SMALL LETTER PI
    +0x7c U+2260 NOT EQUAL TO
    +0x7d U+00A3 POUND SIGN
    +0x7e U+00B7 MIDDLE DOT
    +
    + +

    + See next pages. +

    +

    + + + diff --git a/doc/en/html/about/emulations_dec_special.png b/doc/en/html/about/emulations_dec_special.png new file mode 100644 index 000000000..62b67c1aa Binary files /dev/null and b/doc/en/html/about/emulations_dec_special.png differ diff --git a/doc/en/html/about/foreword.html b/doc/en/html/about/foreword.html index 0ff14eeb9..c9832ed50 100644 --- a/doc/en/html/about/foreword.html +++ b/doc/en/html/about/foreword.html @@ -51,8 +51,8 @@

    Foreword

    Takashi Teranishi stopped developing Tera Term in 1998. The latest version 2.3 was compatible with Windows 95 and Windows NT. Unusually for that time for Windows-based application, the source code of both Tera Term and TTSSH -was open. However, distribution of Tera Term binaries still required -permission from Takashi Teranishi. +was open. However, distribution of modified Tera Term binaries still +required permission from Takashi Teranishi.

    @@ -69,10 +69,12 @@

    Foreword

    Finally in September 2004 group of enthusiasts from Japan was able to contact Takashi Teranishi, obtained the permissions to develop Tera Term -further and to distribute it under BSD license. Few months later, in -November 2004 TeraTerm Project was launched on SourceForge.jp. The project -is ongoing as Tera Term succession version and is being officially recognized -by the original author. The name of the project is `Tera Term'. +further and to distribute binaries. Few months later, in November 2004 +TeraTerm Project was launched on SourceForge.jp. In 2006, TeraTerm Project +obtained the permissions to change the license to BSD license. +The project is ongoing as Tera Term succession version and is being +officially recognized by the original author. The name of the project is +`Tera Term'. The team of developers is from Japan. Support forum established in early 2005 is the place where Tera Term users can ask their questions, exchange ideas, share their experience working with the application, post diff --git a/doc/en/html/about/glossary.html b/doc/en/html/about/glossary.html new file mode 100644 index 000000000..4bdc577a4 --- /dev/null +++ b/doc/en/html/about/glossary.html @@ -0,0 +1,243 @@ + + + + +Glossary + + + + + +

    Glossary

    + +
    +
    B-Plus
    +
    File transfer protocol developed for CompuServe. In Japan This was used by NIFTY-Serve.
    + +
    Kermit
    +
    File transfer protocol developed at Columbia University in the United States. +Software supporting Kermit protocol has been developed for many PC and OS.
    + + +
    Quick-VAN
    +
    File transfer protocol developed for Japanese BBS, PC-VAN.
    + + +
    Susie
    +
    + Susie is Image viewer (web). +

    + Susie can be displayed various images by using a plug-ins (Susie Plug-in). +

    + +

    + Tera Term can use Susie Plug-in to load images. + For example, With Susie Plug-in that supports jpeg + Tera Term can use jpeg images on Windows that does not support jpeg. +

    + +

    + Tera Term tries to load images using Susie Plug-ins, + and using Windows functions such as GDI+, OleLoadPicture(), LoadImage(), + and so on. + It seems to be possible to load jpg and gif images on Windows 7 or later. +

    +
    + +
    TEK4010
    +
    Name of Tektronix terminal. This can display diagrams and graphemes, and was used widely in scientific and technical fields.
    + + +
    TEK window
    +
    The window that emulates TEK terminal. +"TEK" is displayed to right of window title string. +This window is not displayed when Tera Term is started. +[Control]-[Open TEK] command opens TEK window. +
    + +
    VT100
    +
    Name of DEC(Digital Equipment Corporation)'s terminal. +The terminal was used widely for Unix, VAX/VMS, and other computers. + +
    +VT220 and VT382 are names of upwardly compatible terminals of VT100. +
    + +
    VT window
    +
    The main window of Tera Term. +This window is displayed when Tera Term start. +"VT" is displayed to right of window title string.
    +Window for VT terminal emulation.
    + +
    XMODEM
    +
    File transfer protocol developed by Ward Christensen in 1977.
    + + +
    YMODEM
    +
    File transfer protocol extends XMODEM.
    + +
    ZMODEM
    +
    File transfer protocol extends XMODEM and YMODEM.
    + + +
    + +

    Control Sequence

    + +About Control Sequence. + +
    +
    Bracketed Paste Mode
    +
    + The bracketed paste mode is the xterm extension feature. When this feature is enabled, the pasted text is bracketed with control sequences.
    + Specifically, it is enabled by DECSET 2004(<CSI>?2004h) sequence, the program will receive: ESC [ 200 ~, followed by the pasted text, followed by ESC [ 201 ~.
    + Bracketed paste is a mode which allows programs running in the terminal such as sh to treat pasted text differently from text typed normally.
    + + For example, a pasted characters can be treated as undecided, highlighted, and confirmed by pressing the Enter key, etc. +On the other hand, when pasted characters is overwritten again to remove the highlight, it will be recorded twice in the log.
    +
    + Related Pages + +
    +
    + +

    Charactor code

    + +Glossary related to character codes. + +
    +
    CJK, CJKV, East Asian characters
    + +
    +

    + Languages with a writing system that includes Kanji characters. + CJK(CJKV) = Chinese, Japanese, Korean, (Vietnamese). +

    + +

    + CJK(CJKV) environment, Double-byte characters are used + to represent a character with two bytes, + since not all characters used can be represented with one byte.
    + Before Unicode became popular, character codes were developed for each environment. +

    + +

    + Major DBCS +

    +| Language                      | Code(CodePage)     |
    +|-------------------------------|--------------------|
    +| Chinese (Simplified Chinese)  | GB2312(CP936)      |
    +| Chinese (Traditional Chinese) | Big5(CP950)        |
    +| Japanese                      | `Shift_JIS(CP932)` |
    +|                               | EUC(EUC-JP,CP51932)|
    +| Korean                        | KS5601(CP949)      |
    +
    + + + +

    +
    + +
    SBCS
    +
    + Single-byte character set.
    + Up to 256 types of characters can be represented. +
    + +
    DBCS
    +
    + Double-byte character set.
    + DBCS is a character set that extends SBCS and can represent characters including Kanji characters.
    + Mixed 1-byte and 2-byte characters.
    + Shift_jis is one example of DBCS. +
    + +
    MBCS
    +
    + Multi-byte Character Set.
    + Characters of 3 bytes or more are used.
    + JIS, UTF-8, etc. +
    + +
    UTF-8, UTF-8m
    +
    + Character code encoded Unicode with MBCS from 1 byte to 4 bytes. + +

    + A single character to be displayed can be created from multiple Unicode characters. + ex. U+0061 + U+0302 ( a+ ^ -> â ). + Tera Term 4 uses the character code "UTF-8m", which is used in the macOS file system HFS+. +

    + +

    + "UTF-8m" has been merged into "UTF-8" on Tera Term 5. +

    +
    + +
    wide character
    +
    + A character representation in which smallest character unit is two or more bytes.
    + In C language, wchar_t type.
    + In C, type wchar_t. In C/C++ language for Windows (Visual Studio), wchar_t type is 2 bytes.
    + The Windows API uses 2-byte wide characters and the character encoding is UTF-16LE. +
    +
    + +

    Windows

    + +Glossary related to Windows. + +
    +
    Notification Center
    + +
    + Notification Center is near clock on the opposite side of start menu in taskbar.
    + Icons of running programs are displayed.
    + Following alias exists.
    +
      +
    • notification area (Windows 10)
    • +
    • task tray (Windows XP and earlier)
    • +
    +
    + +
    App notifications
    + +
    + Display notifications from applications.
    + Following alias exists.
    +
      +
    • balloon notification (Windows10 and earlier)
    • +
    • notification banner
    • +
    • toast notifications
    • +
    +

    + Notify/Tray test (click to enlarge)
    +

    +
    + + + diff --git a/doc/en/html/about/history.html b/doc/en/html/about/history.html index 2a160d0f3..326fd6f8f 100644 --- a/doc/en/html/about/history.html +++ b/doc/en/html/about/history.html @@ -25,24 +25,497 @@

    History

  • TTXttyrec
  • TTXViewMode
  • TTXRecurringCommand
  • +
  • TTXCommandLineOpt

  • Tera Term

    +

    YYYY.MM.DD (Ver 5.4 not released yet)

    +
      +
    • Changes +
        +
      • Changed to use transmit character code when sending clipboard (OSC 52).
        + Before fix, when transmit character code is not UTF-8, it used ACP. (no issue)
      • +
      • The flash time when Beep is Visual Bell is now possible to configure. #333 + +
      • +
      • Setup - General dialog was integrated into General tab of Additional settings dialog. #312
      • +
      • Renamed the Additional setting "Coding" to "Encoding" for better clarity. #312
      • +
      • Changed method of creating backup files for TERATERM.INI. #303
      • +
      • Updated Unicode information to Unicode 16.0. Before update, Unicode 15.1 compliant since Tera Term 5.0. #322
      • +
      • Supports "COM%d" style serial ports of com0com (virtual serial port driver), which are not Ports class. #365
      • +
      +
    • + +
    • Bug fixes +
        +
      • Fixed a problem that an error is displayed when a new connection is made after disconnecting during log output in the case of LogAutoStart=on. #323
      • +
      • Fixed X button of "Log" dialog doesn't work. #334
      • +
      • Fixed a problem that a left click on backgrounded terminal window makes text selection 1 char sensitively. #332
      • +
      • Fixed crash problem when Realtime mode is off and History is on, on Broadcast command dialog #314. +
      • MACRO: Improved the issue where DPI scaling was not properly adjusted when the dialog spans across monitors with different scaling factors. #277
      • +
      • Unnecessary overwrite confirmation dialog is no longer displayed when selecting a existing file as a log file at file selecting dialog box. #376
      • +
      • MACRO: Fixed TTL cannot be execute when it is UTF-8 without BOM. #368
      • +
      • Fixed to handle U+20000 to U+3FFFF of UTF-8. #386
      • +
      • Fixed display characters containing surrogate pair character when "Drawing resized font to fit cell width" #386
      • +
      +
    • + + +
    + +

    2024.09.08 (Ver 5.3)

    +
      +
    • Changes +
        +
      • Bracket paste behavior become able to adjust with BracketedSupport and BracketedControlOnly. +
          +
        • When pasting string from clipboard that does not contain control codes such as line feeds, characters are not outputted twice in the log with the default settings.
        • +
        +
      • +
      • EnableContinuedLineCopy setting is now used when dragging after selecting a word by double click.
      • +
      • Right-click(paste) is not disabled even when SelectOnActivate is off.
      • +
      • Fixed some Emoji which character widths did not change with "Override Emoji Characters width" option. (Changed referenced Emoji table.)
      • +
      • To adjust to narrow the space between characters, VTFontSpace became to be able to set negative value.
      • +
      • Only available COM ports are now listed. +
          +
        • COM ports that are disabled and failed to initialize are not included.
        • +
        +
      • +
      • General setup dialog is now shown the information from Language file which is selected. +
      • "Default port" settings is moved to General tab of Additional settings dialog from General setup dialog.
      • +
      • Removed Language setting from General setup dialog.
      • +
      • Download folder setting is moved to General tab of Additional settings dialog.
      • +
      • Added ViewlogEditor argument on Log Tab in Additional settings dialog.
      • +
      • Setup - Font was integrated into Font tab of Additional settings dialog.
      • +
      • Keyboard setup dialog is moved to Keyboard tab of Additional settings dialog.
      • +
      • TCP/IP setup dialog is moved to TCP/IP tab of Additional settings dialog.
      • +
      • Improved Broadcast command dialog: +
          +
        • Edit control now support paste by R/M mouse clicking and Shift-INS.
        • +
        • Edit control now works the same whether the IME is on or off.
        • +
        • Added context menu in window list which provides foreground/minimize the selected windows and refresh the window list itself.
        • +
        • The selection state is now keeped when the window list is refreshed.
        • +
        • Added help button and normalize Japanese button name.
        • +
        • Fixed left click behavior in the margin of window list.
        • +
        +
      • +
      • Returned the display position of the message box to its previous behavior (center of the parent window) before 4.103, excluding some message boxes.
      • +
      • Error messagebox is now shown when logging cannot be started with "LogAutoStart=on"
      • +
      • Allow users to select creating automatic backup or not by IniAutoBackup when overwriting the ini file. +
      • MACRO: send macro command check data and sends it as text or binary. Added sendtext and sendbinary macro command
      • +
      • MACRO: Added options such as size specification to the listbox command.
      • +
      • MACRO: Added the getttpos command to retrieve the display status, position, and size in the VT window of Tera Term.
      • +
      • MACRO: Added support for password file using aes-256-ctr encryption + +
      • +
      • MACRO: When TTL file is relative path, it is relative from current directory of ttpmacro.
      • +
      +
    • + +
    • Bug fixes +
        +
      • Fixed text color to be gray instead of black when received SGR 1 + SGR 30 (Bold + FG Black).
      • +
      • Fixed to repetition of surrogate pair characters correctly display when "Drawing resized font to fit cell width" is on.
      • +
      • Fixed display of combined characters was corrupted.
      • +
      • Fixed to use EnableContinuedLineCopy setting when double click to select a word. This bug was introduced in 5.2.
      • +
      • Fixed same repeated characters are selected when double click on delimiter character.(Fixed select behavior that changed in 5.2 to be same as before.)
      • +
      • Fixed wrong characters were sent when transmit character code is JIS. +
          +
        • Fixed wrong character output at end of line.
        • +
        • Fixed wrong character output when local echo is on.
        • +
        +
      • +
      • Fixed COM port detection for modem device. Modem device is also detected the same as 4.x now.
      • +
      • Fixed doesn't remember the COM port it used on new connection dialog
      • +
      • Fixed COM port list was not sorted on new connection dialog.
      • +
      • Apply changes even if only No Frame is changed at Window setup dialog.
      • +
      • Fixed the issue where specifying the /V option with ttermpro.exe would cause a crash upon exit.
      • +
      • Fixed window maximization works immediately after startup.
      • +
      • Added download folder for log saving folder same as Tera Term 4.
      • +
      • MACRO: Fixed send macro command could not send $00.
      • +
      • MACRO: Fixed clipb2var macro command is not working.
      • +
      • MACRO: Fixed path of basename and dirname macro commands were not Unicode-compatible.
      • +
      • MACRO: Fixed ttermpro.exe does not crash when file specified in the xmodemsend macro command does not exist.
      • +
      • MACRO: Fixed password file name for getpassword and delpassword macro command is not Unicode compatible.
      • +
      • MACRO: Fixed ttpmacro.exe crashes when referencing unsetted string array element.
      • +
      • MACRO: Fixed file name is garbled in status window when Kanji characters are included.
      • +
      +
    • + +
    • Misc +
        +
      • Added Tamil.lng language file.
      • +
      • Upgraded TTSSH to 3.3.
      • +
      • Upgraded TeraTerm Menu to 1.20.
      • +
      • Upgraded TTX KanjiMenu Plug-in to 0.1.9
      • +
      +
    • +
    + +

    2024.2.29 (Ver 5.2)

    +
      +
    • Changes + +
    • + +
    • Bug fixes +
        +
      • Fixed the words under mouse pointer were not selected when selecting words by drag after double click with left mouse button.
      • +
      • Fixed background transparency is not working in some case.
      • +
      • Fixed an application fault occurs when loading theme files.
      • +
      • Fixed TCP/IP setup dialog. +
          +
        • Last item in ListBox is not saved to file.
        • +
        • Fixed Remove, Down buttons behavior.
        • +
        +
      • +
      • MACRO: fixed foldersearch macro command set 0 to result system variable when folder does not exist.
      • +
      • MACRO: fixed internal processing of xmodemsend and xmodemrecv macro commands were swapped.
      • +
      +
    • + +
    • Misc +
        +
      • Upgraded TTSSH to 3.2.
      • +
      • Upgraded TeraTerm Menu to 1.19
      • +
      +
    • +
    + +

    2023.12.19 (Ver 5.1)

    +
      + + +
    • Bug fixes +
        +
      • Fixed paste from clipboard is not echoed when local echo is on.
      • +
      • Fixed when F1 key is pressed in VT window, configured sequence is not sent and dialog that can't open open HTML help file shows.
      • +
      • When a single 0x0a(LF) is received from server, do not output to log and macro.
      • +
      • Fixed application error using Japanese file names when receiving ZMODEM.
      • +
      • Fixed default values were not set in the log dialog.
      • +
      • Fixed about "Drawing resized font to fit cell width" setting. +
          +
        • Setting is not saved in TEARTERM.INI, so fixed to save.
        • +
        • Displaying Japanese in dialog when language UI is Japanese.
        • +
        +
      • +
      • MACRO: strjoin command set concatenated string to the wrong variable.
      • +
      • MACRO: fixed sendfile command stuck even if transmission is completed to send.
      • +
      • MACRO: settitle command using Kanji characters will be crashed. +
          +
        • Fixed settitle, gettitle, loadkeymap to handel string in Unicode. +
        • Currently, Tera Term handle local title strings in ANSI strings. Characters that cannot be converted are replaced by "?".
        • +
        +
      • +
      +
    • + +
    • Misc +
        +
      • Upgraded TTSSH to 3.1.
      • +
      • Upgraded TeraTerm Menu to 1.18
      • +
      • Upgraded Oniguruma to 6.9.9.
      • +
      +
    • +
    + +

    2023.10.15 (Ver 5.0)

    +
      +
    • Changes +
        +
      • Changed internal processing to Unicode.
      • +
      • Changed the folders to read setup files, the folder to save log files.
      • +
      • Changed default to on for High DPI support. +
          +
        • Same behavior as before the change when DPIAware=off add to Tera Term section in TERATERM.INI
        • +
      • +
      • Added setting Underline attribute(SGR 4) color and font
      • +
      • if log file name from command line or default log file name is not full path, now it is considered as relative path from log folder or default log save folder.
      • +
      • Exchanged foreground and background colors of characters that attributes is setted ANSIColor when colors are reversed with DECSCNM set.
      • +
      • U+00A0(NBSP) and U+2000..U+2003 are converted to SPACE and displayed. tree command output is displayed correctly.
      • +
      • XMODEM: Fix to check all received datas and process correctly, even if received datas are accumulated.
      • +
      • YMODEM: ignore continuous 'C' when waiting for sending.
      • +
      • Changed window position to specified in TERATERM.INI when duplicate a session.
      • +
      • added a setting that can disable corner rounding of VT Window and TEK Window in Windows 11. +
      • +
      • changed behavior of Binary checkbox of Send file on file drop dialog. +
          +
        • now default state is TransBin value of TERATERM.INI.
        • +
        • now state is remembered when "Do same process, next drop" is checked.
        • +
      • +
      • Invalid characters as file name contains Default log file name, are replaced with '_'.
      • +
      +
    • + +
    • Bug fixes +
        +
      • Fixed problem with color number 1-7 and 9-15 are replaced in sequence OCS 4. +
      • Fixed wrong color numbers in the color change and response sequence.
      • +
      • Fixed the area selected with the mouse does not disappear when the text is erased with the erase escape sequences.
      • +
      • Reset text colors when [Control]-[Reset terminal] is selected
      • +
      • Fixed wrong window size is set when NAWS (Negotiate About Window Size) is received on telnet (cygterm) connection.
      • +
      • Fixed mouse cursor style is changed to hand when mouse cursor hover on URL string even when clickable URL is disabled.
      • +
      • Fixed DPI adjustment does not work correctly when VT Window is moved to different DPI monitor.
      • +
      • Fixed Kermit could not receive in some case.
      • +
      • Adjusted packet size of Kermit send.
      • +
      • Fixed full color icon is not used to notify icon.
      • +
      • Fixed changed custom notify icon is not used to notify icon.
      • +
      • Fixed when SSH connected, "Do same process, next drop" is checked on "File Drag and Drop" dialog, nevertheless always "SCP" is selected.
      • +
      • Fixed current font name was empty in ChooseFont dialog when changing dialog fonts.
      • +
      • Fixed wrong color numbers were changed when the color palette change in Visual Tab in Additional settings dialog.
      • +
      • Fixed "Send file" help is appear when "Help" button is pushed on Log dialog.
      • +
      • Fixed wrong value is written to VTReverseColor when saving TERATERM.INI during reverse video.
      • +
      • Fixed when setting value of MouseCursor in TERATERM.INI is lower case, value is not loaded to "Additional settings" dialog.
      • +
      • The file handle of TELNET.LOG could not be closed.
      • +
      • MACRO: can not read from the file handle that is opened by filecreate command. This bug was introduced in 4.102.
      • +
      • MACRO: The setpassword command cause an error when password argument is a string value. Only string variable was accepted.
      • +
      • MACRO: The getpassword command updates password variable by undefined value when password from user is no input.
      • +
      +
    • + +
    • Misc +
        +
      • Changed requirements, Windows 7 or later.
      • +
      • Added about EAR (Export Administration Regulations) to Frequently asked questions.
      • +
      • Upgraded TTSSH to 3.0.
      • +
      • upgraded TeraTerm Menu to 1.17
      • +
      • upgraded TTXttyrec Plug-in to 1.05.
      • +
      • upgraded TTXResizeMenu Plug-in to 1.07.
      • +
      • NOTE: CygTerm+ binary included in the installer becomes to be supported on only 64bit Cygwin. Please build CygTerm+ from source code by using 32bit Cygwin, if CygTerm+ wants to run with 32bit Cygwin.
      • +
      • Deleted LogMeTT, TTLEditor and Collector.
      • +
      • upgraded Oniguruma to 6.9.8.
      • +
      +
    • +
    + +

    2021.6.5 (Ver 4.106)

    +
      +
    • Changes +
        +
      • Increased max width of window from 500 to 1000 chars.
      • +
      • Serial port connection +
          +
        • Removed the 1.5 stop bit in the serial port setup.
        • +
        • Removed the "1.5" name from the StopBit entry in the teraterm.ini file.
        • +
      • +
      +
    • + +
    • Bug fixes +
        +
      • The elapsed time style timestamp in the log is incorrect.
      • +
      • Fixed support for IME feedback back and forth function. This bug was introduced in 4.103.
      • +
      • Fixed an application fault occurs when VT Window and HtmlHelp Windows are closed at same time.
      • +
      • Fixed desktop images can not be displayed on background other than main display. This bug was introduced in 4.101.
      • +
      • Fixed memory leak when tool tip is shown. This bug was introduced in 4.103.
      • +
      • MACRO: the yesnobox command shows "OK" instead of "yes" without language file. This bug was introduced in 4.103.
      • +
      • MACRO: The file handle opened by filecreate, fileopen marco command is locking.
      • +
      • MACRO: When the getdate, gettime command is executed with timezone parameter, valid time may not be returned. Build mistaken in 4.105.
      • +
      +
    • + +
    • Misc +
        +
      • upgraded TTSSH to 2.92.
      • +
      • upgraded TTX KanjiMenu Plug-in to 0.1.8
      • +
      • upgraded TeraTerm Menu to 1.16
      • +
      • upgraded Oniguruma to 6.9.7.1.
      • +
      +
    • +
    + +

    2019.12.7 (Ver 4.105)

    +
      +
    • Changes +
        +
      • Added SFMT information on version dialog.
      • +
      • Changed of indication from "Protocol" to "IP version" and from "UNSPEC" to "AUTO" on New connection dialog.
      • +
      • When the opacity value of the window is temporarily changed by operating the mouse wheel on the title bar of VT window, the tooltip of the opacity value is shown.
      • +
      • The location of resizing tooltip is automatically moved to coordinates after resizing.
      • +
      • Added slider for specify the opacity values on the Visual tab of the Additional settings dialog. When transparency is not available, made opacity not changeable.
      • +
      • Eterm look-feel: Added the Mixed ThemeFile to Background configuration. Also, added the BGIgnoreThemeFile entry in the teraterm.ini file. The default value is off.
      • +
      • When the opacity values of the Additional settings dialog is input over than 255, the value is automatically changed to 255 over the dialog.
      • +
      • Added support for REP control sequence.
      • +
      • Added support for xterm ED 3 (clear scroll buffer) control sequence. +
      • +
      • Added /OSC52= command line option for change the "Clipboard access from remote" setting.
      • +
      • Added the [Pause Logging] and the [Stop Logging] menu into the [File] menu.
      • +
      • The start of the text selection with the mouse can be delayed by setting. +
      • + +
      • Serial port connection + +
      • +
      • MACRO: When setdlgpos macro command has no argument, the dialog box is located on the default position.
      • +
      • MACRO: The dialog position specified by setdlgpos becomes to not be out of range in display.
      • +
      +
    • + +
    • Bug fixes +
        +
      • The tooltip during resizing can not be displayed on the left and top edge of the desktop. This bug was introduced in 4.103.
      • +
      • Eterm look-feel: When an image file is randomly selected with the wallpaper, invalid file may be selected.
      • +
      • The help button of File-Log, File-Transfer, Setup-Font and Printer dialog does not work well. This bug was introduced in 4.104.
      • +
      • Fixed a problem that TTIMESV (Save IME status) / TTIMERS (Restore IME status) control sequences do not work.
      • +
      • The help button on the printer dialog can not be shown from Windows 2000 to 10. The help button on the printer dialog can be shown on all Windows except Windows95.
      • +
      • The macro window tries not to terminate when ESC key is pressed. This bug was introduced in 4.103.
      • +
      • Tera Term tries not to terminate when TEK window is closed. This bug was introduced in 4.103.
      • +
      • When the DPI is changed while menu bar hidden, the window size is correctly adjusted.
      • +
      • When DPI is changed, an application fault occurs on Windows 8.1.
      • +
      • The window title is garbled when receiving the window title setting control sequence which contains the kanji characters.
      • +
      • MACRO: The button of yesnobox selected with left or right arrow key is reversed.
      • +
      • The help button on the Save setup, Restore setup and Load key map dialog can not be shown.
      • +
      • Save setup dialog shows incorrectly "Open as read-only" check-box on Windows95/98/NT4.0.
      • +
      • MACRO: Error is displayed correctly when string constant is not terminated.
      • +
      +
    • + +
    • Misc +
        +
      • Bug fix: A font(TSPECIAL1.TTF) copy may fail when Tera Term installs from the installer.
      • +
      • NOTE: CygTerm+ binary included in the installer becomes to be supported on Windows Vista or later. Please build CygTerm+'s source code by using Cygwin for older Windows, if CygTerm+ wants to run on older Windows.
      • +
      • upgraded TTSSH to 2.91.
      • +
      • upgraded TTProxy to 1.0.0.26.
      • +
      • upgraded TTXResizeMenu Plug-in to 1.06.
      • +
      • upgraded TTXttyrec Plug-in to 1.04.
      • +
      • Changed e-mail address of Contacting the author.
      • +
      +
    • +
    + +

    2019.08.31 (Ver 4.104)

    +
      +
    • Changes + +
    • +
    • Bug fixes +
        +
      • When UTF-8 characters received, 4-byte UTF-8 characters are miss-decoded.
      • +
      • When the Active Window Tracking is enabled, mouse cursor won't be active in Tera Term window. This bug was introduced in 4.103.
      • +
      • The session number of window title is always 1. This bug was introduced in 4.103.
      • +
      • When the font selection dialog is used while undetermined characters of IME are displayed , the font ot IME always is changed.
      • +
      • When the locale setting is default(japanese) or invalid on English version of Windows, an application fault immediately occurs after starting Tera Term.
      • +
      • A big file can not send by using [File]/[Send file..]. This bug was introduced in 4.103.
      • +
      • Cancel printing dialog can not be shown. This bug was introduced in 4.103.
      • +
      • The plugin compiled before 4.103 can not called because the DLL's calling convention is changed in Tera Term 4.103.
      • +
      • MACRO: listbox command can not adjust the width of list according to the window size. This bug was introduced in 4.103.
      • +
      • MACRO: filecopy command may not store the result to result system variable.
      • +
      • MACRO: filelock and fileunlock command always fail. This bug was introduced in 4.101.
      • +
      • MACRO: When the first byte of the file is matched by using filestrseek2 command, the file pointer is invalid. This bug was introduced in 4.101.
      • +
      +
    • + +
    • Misc +
        +
      • upgraded TTSSH to 2.90.
      • +
      • upgraded TTProxy to 1.0.0.25.
      • +
      • upgraded Oniguruma to 6.9.3.
      • +
      +
    • +
    + +

    2019.06.15 (Ver 4.103)

    +
      +
    • Changes +
        +
      • added support for High DPI experimentally. +
          +
        • The default setting is disabled. When DPIAware=on is set in [Tera Term] of teraterm.ini file, this feature is enabled.
        • +
        • However, this is only available for Windows 10 Version 1703 or later.
        • +
      • +
      • The font submenu is newly added, and added support for configure the dialog font. +
          +
        • The default font is same as before.
        • +
      • +
      • the pop-up menu of TEK Window is not displayed correctly.
      • +
      • When the font file(TSPECIAL1.TTF) displaying ruled line is not installed, the file is loaded from same directory as ttermpro.exe.
      • +
      • When the file sending by kermit protocol, notifies the file modification time instead of creation time.
      • +
      • MACRO: Store exec command result to result variable.
      • +
      +
    • +
    • Bug fixes +
        +
      • Display position of IME's conversion candidate window can not follow cursor position. This bug was introduced in 4.102.
      • +
      • Can't display character such as U+2014 EM DASH, U+2212 MINUS SIGN, U+301C WAVE DASH etc. This bug was introduced in 4.102.
      • +
      • MACRO: Fix handle leak when exec command is executed.
      • +
      +
    • + +
    • Misc +
        +
      • upgraded TTSSH to 2.89.
      • +
      • upgraded Oniguruma to 6.9.2.
      • +
      +
    • +
    +

    2019.02.28 (Ver 4.102)

    • Changes
        -
      • The AlphaBlend VT window can be configured as a different value for each active and inative.
      • +
      • The AlphaBlend VT window can be configured as a different value for each active and inactive.
      • The value of transparency can be temporarily changed by moving the mouse wheel on the title bar of the VT window.
      • -
      • The internal implemention of the VT window was speeded up.
      • +
      • The internal implementation of the VT window was speeded up.
      • UTF-8: Four bytes character can not be shown yet but can be decoded, the impact range of character corruption was be minimized.
      • The language code(CodePage) of the "Terminal ([Setup] menu)" dialog(Unicode usage).
      • MACRO: The macro file can support UTF-8 and UTF-16(with BOM) encoding.
      • MACRO: The getfileattr command can be based on the current directory same as other command.
      • -
      • MARCO: The fileopen command can cause an error when a file is not found with read only mode.
      • +
      • MACRO: The fileopen command can cause an error when a file is not found with read only mode.
    • @@ -102,8 +575,8 @@

      2018.08.31 (Ver 4.100)

      @@ -125,7 +598,7 @@

      2018.05.31 (Ver 4.99)

  • Improved the behavior of window resizing.
  • Accept service name instead of the port number on the command line option.
  • -
  • added the /SPEED= command line option which behavior is same as the /BAUDE= command line option.
  • +
  • added the /SPEED= command line option which behavior is same as the /BAUD= command line option.
  • added the setspeed command.
  • @@ -178,7 +651,7 @@

    2017.11.30 (Ver 4.97)

  • added configuration of timestamp type at the start of log file's line.
  • @@ -189,7 +662,7 @@

    2017.11.30 (Ver 4.97)

  • The response of DECRQSS control sequence was invalid.
  • On telnet connection, the terminal size is not notified correctly if terminal width or height is 255.
  • When the [View Log] on the [File] is called, the editor does not invoked.
  • -
  • Fix the problem of the log option settings on the Log tab of Additional settings dialog +
  • Fix the problem of the log option settings on the Log tab of Additional settings dialog
    • PlainText and Timestamp setting is not applied.
    • Changes to the log option settings are applied when the dialog is cancelled.
    • @@ -226,7 +699,7 @@

      2017.08.31 (Ver 4.96)

  • Hidden font set by OS can be selected with font setting dialog.
      -
    • The setting can be configured on the General tab of Additional settings dialog.
    • +
    • The setting can be configured on the General tab of Additional settings dialog.
  • When the serial port and named pipe can not be opened, the error message contains reason or error code.
  • When the sendlnbroadcast macro command is used, the carriage return is sent one more time after last parameter.
  • @@ -284,6 +757,7 @@

    2017.05.31 (Ver 4.95)

    @@ -297,7 +771,7 @@

    2017.02.28 (Ver 4.94)

  • added `&u' parameter to log file name that can convert the logon user name.
  • added new line normalization on pasting. The default is off.
      -
    • This feature can be enabled on Copy and Paste tab of Additional settings dialog.
    • +
    • This feature can be enabled on Copy and Paste tab of Additional settings dialog.
  • added the setflowctrl command.
  • @@ -364,9 +838,9 @@

    2016.08.31 (Ver 4.92)

    • added new feature which removes carriage return from end of line with pasting. The default value is off.
    • -
    • When scroll back is used, scroll state is always reseted with user input.
    • +
    • When scroll back is used, scroll state is always reset with user input.
    • ZMODEM: The default escaped character are added LF and GS by sending.
    • The default value of MaxComPort setting is increased from 4 to 256.
    • changed macro command line behavior. @@ -420,7 +894,7 @@

      2016.05.31 (Ver 4.91)

      • The background color erase(BCE) does not work with DECFI, DECBI control sequence.
      • When AutoComPortReconnect=on is enabled, Tera Term can not recognize a part of device regarding USB serial port connection and disconnection.
      • -
      • When Log Rotate is enabled and an existing file is logged, first file can not be rotated by specified size.
      • +
      • When Log Rotate is enabled and an existing file is logged, first file can not be rotated by specified size.
      • MACRO: When if has macro command without parameter, syntax error occurs.
    • @@ -443,7 +917,7 @@

      2016.03.05 (Ver 4.90)

    • Packet size(1K) can be specified at receiving sending.
    • The xmodemrecv and xmodemsend macro argument is the same.
    -
  • Cancel from remote host at XMODEM transmitter becomes as trasnfer failure.
  • +
  • Cancel from remote host at XMODEM transmitter becomes as transfer failure.
  • When remote host sends 1K packet against Checksum at XMODEM receiving, Tera Term receives data as Checksum/1K.
  • When remote host sends NAK at XMODEM CRC sending, Tera Term sends data as Checksum.
  • added configuration for XMODEM, YMODEM and ZMODEM timeout value. @@ -492,9 +966,9 @@

    2015.12.01 (Ver 4.89)

  • -
  • Eterm look-feel: added the Image Brightness configuration.
  • +
  • Eterm look-feel: added the Image Brightness configuration.
  • added the Virtual Store path to Setup directory.
  • -
  • The cygterm.cfg is not saved on dialog closing but is saved on the Save setup when the CygTerm configuration of the Addtional settings is used.
  • +
  • The cygterm.cfg is not saved on dialog closing but is saved on the Save setup when the CygTerm configuration of the Additional settings is used.
  • The command line option can be quoted from an offset when the '"' is used.
  • When the click-able URL is not double-clicked but single-clicked on the version dialog, the browser can be launched.
  • MACRO: added new parameter which can specify an index of selected item at the listbox macro command.
  • @@ -504,7 +978,7 @@

    2015.12.01 (Ver 4.89)

  • Bug fixes
    • When the host name includes a comment on new connection dialog, it will not connect to the remote host.
    • -
    • When the USB serial cable is inserted and extracted while the serial connection is doing, new serial connection will be failed. However, this fix is supported on the Windows XP or later. +
    • When the USB serial cable is inserted and extracted while the serial connection is doing, new serial connection will be failed. However, this fix is supported on the Windows XP or later.
    • @@ -539,7 +1013,7 @@

      2015.09.01 (Ver 4.88)

    • Bug fixes
      • When the port number is not 23 on local connection, the Cygwin connection starts by Alt+D(Duplicate session) key.
      • -
      • When the Meta key is set to left or right, the combination key with the Alt and the cursor/Insert/etc edit keypad can not work well in the KEYBOARD.CNF.
      • +
      • When the Meta key is set to left or right, the combination key with the Alt and the cursor/Insert/etc edit keypad can not work well in the KEYBOARD.CNF.
    • @@ -586,7 +1060,7 @@

      2015.02.28 (Ver 4.86)

      • Changes
          -
        • When the [Reset Terminal] on the [Control] is called, the color setup with OSC 10/11 will be reseted.
        • +
        • When the [Reset Terminal] on the [Control] is called, the color setup with OSC 10/11 will be reset.
        • YMODEM: The block0 packet size meaning end of transfer is 128 byte at all time. Special thanks to mlukoshkov.
        • YMODEM: The packet of file information is not fixed size but variable size(128 or 1024byte).
        • added the dirnamebox command.
        • @@ -601,8 +1075,8 @@

          2015.02.28 (Ver 4.86)

        • YMODEM: When the data is sent, the CANCEL command from the remote host does not work well.
        • YMODEM: When the received file information contains only a file name, an end of the file name is broken.
        • YMODEM: When the received file information does not include the file size, the file data can not be recorded well.
        • -
        • The setting value of the Log Rotate will not display well.
        • -
        • When the x=0,y=0 is specified by the setdlgpos marco command, the statusbox will be newly opened and however the statusbox can not be properly shown.
        • +
        • The setting value of the Log Rotate will not display well.
        • +
        • When the x=0,y=0 is specified by the setdlgpos macro command, the statusbox will be newly opened and however the statusbox can not be properly shown.
        • When the macro filename is so longer, the currently executing line number can not be shown. And also, the macro window can be re-sizable.
      • @@ -665,7 +1139,7 @@

        2014.08.31 (Ver 4.84)

      • Changes
        • When a file is received by using YMODEM or ZMODEM protocol, the file time-stamp is updated.
        • -
        • added the log type configuration on the Log tab of the Additional settings dialog.
        • +
        • added the log type configuration on the Log tab of the Additional settings dialog.
      • @@ -716,8 +1190,8 @@

        2014.06.01 (Ver 4.83)

      • Fixed some bugs regarding Debug mode
        • When the debug mode is entered, the insertion mode and the auto-wrap mode may be changed.
        • -
        • When the debug mode is entered, the character attribute can not be reseted.
        • -
        • When the debug mode is leaved, the character attribute may be reseted.
        • +
        • When the debug mode is entered, the character attribute can not be reset.
        • +
        • When the debug mode is leaved, the character attribute may be reset.
      @@ -852,7 +1326,7 @@

      2013.09.01 (Ver 4.79)

      -
    • added the /AUTOWINCLOSE command line option to control the Auto window close.
    • +
    • added the /AUTOWINCLOSE command line option to control the Auto window close.
    • Macro
      • added the "Unknown command." new message in the Error messages.
      • @@ -861,7 +1335,7 @@

        2013.09.01 (Ver 4.79)

  • - +
  • Bug fixes
    • When the UseNomalBGColor is on, the OSC 111(Resetting standard background color) control string after the OSC 11(Setting standard background color) can not reset the background color of characters including bold attribute and so on.
    • @@ -871,7 +1345,7 @@

      2013.09.01 (Ver 4.79)

    • When second Tera Term is launched, the keyboard configuration file can not be read.
    • When the file is sent by D&D, the help button of the dialog can not be worked well.
    • MACRO exec: The show parameter will be ignored when the wait parameter is 1(4.63 later) or the parameter is not 1(4.78 later).
    • -
    +
  • Misc @@ -888,13 +1362,13 @@

    2013.05.31 (Ver 4.78)

  • Changes
    • Select "Selection" by default in the printer dialog when there is a selection. Special thanks to tentner.
    • -
    • added the Log Rotate configuration on the Additional settings dialog. +
    • added the Log Rotate configuration on the Additional settings dialog.
      • added the LogRotate, LogRotateSize, LogRotateSizeType and LogRotateStep entries in the teraterm.ini file.
    • added the Exit All under the File menu.
    • added the Cascade, Stacked and Side By Side under the Window menu.
    • -
    • added the /nolog command line option to disable the Auto start logging.
    • +
    • added the /nolog command line option to disable the Auto start logging.
    • Macro
      • added the listbox command.
      • @@ -910,7 +1384,7 @@

        2013.05.31 (Ver 4.78)

      • added the 4th argument(current directory) at the exec command.
      • The 'show 1' command brings the macro window to the top.
      • The messagebox, inputbox and listbox commands bring the macro dialog to the top.
      • -
      • The wait, waitln and waitregex commands can wait an empty strings.
      • +
      • The wait, waitln and waitregex commands can wait an empty strings.
      • When the waitregex command matches some parameters at the same time, the first matched parameter is selected.
    @@ -926,10 +1400,10 @@

    2013.05.31 (Ver 4.78)

  • When the URL string ends at the right row and return code, the URL string continues to next line by mistake.
  • The URL string on the mouse hand cursor shifts to the left with half character by mistake.
  • -
  • MACRO: The send/sendln command can be affected by the Paste delay per line configuration.
  • +
  • MACRO: The send/sendln command can be affected by the Paste delay per line configuration.
  • MACRO: When the timeout is 0, the waitn command can not wait any character.
  • -
  • MARCO: When the break command is executed after the continue command, the Invalid Control error will be occurred.
  • -
  • MARCO: The box-style macro command can not show the dialog position well on the multi display.
  • +
  • MACRO: When the break command is executed after the continue command, the Invalid Control error will be occurred.
  • +
  • MACRO: The box-style macro command can not show the dialog position well on the multi display.
  • MACRO: The wait and waitln command can not detect the right string.(ex. wait "aab" does not work against "aaab")
  • @@ -1049,7 +1523,7 @@

    2012.05.31 (Ver 4.74)

  • added the AUTO entry in the New-line(receive). Special thanks to tentner.
  • added the selection of the font quality. @@ -1226,7 +1700,7 @@

    2011.8.31 (Ver 4.71)

  • Bug fixes
    • The log file which name length is 80 bytes over can not be opened.
    • -
    • When the meta key is enabled, the Control and Meta key is redundantly inputed.
    • +
    • When the meta key is enabled, the Control and Meta key is redundantly input.
  • @@ -1314,12 +1788,12 @@

    2011.3.5 (Ver 4.69)

  • When the terminal width is 257 columns over, Tera Term does not display well.
  • When the terminal ID is VT520 and VT525, the Primary DA (DA1) reply is incorrect.
  • When the language is other than Japanese, the VT420, VT520 and VT525 on the Terminal Setup dialog do not work well.
  • -
  • When PassThruPort is specified as a local device mapping the network share, Tera Term printing does not work. cf.print with WINDOWS 7 net use LPT PERSISTENT:Yes
  • +
  • When PassThruPort is specified as a local device mapping the network share, Tera Term printing does not work. cf.print with WINDOWS 7 net use LPT PERSISTENT:Yes
  • Tera Term can not ignore the unsupported OSC control string.
  • Tera Term can not understand a character after the DCS, SOS, APC and PM Control string.
  • When a log file is opened by writable mode, the file is existing and writing by another process can be opened.
  • When 8-bit string is received, the string is recognized as the control sequence by mistake.
  • -
  • Tera Term can not properly send a broadcast message to selected windows by using the broadcast command. cf.Broadcast command issue in 4.68
  • +
  • Tera Term can not properly send a broadcast message to selected windows by using the broadcast command. cf.Broadcast command issue in 4.68
  • @@ -1451,7 +1925,7 @@

    2010.5.31 (Ver 4.66)

  • added support for specifying any baud rate of the serial port connection.
    • A user can specify any baud rate at the [Setup]-[Serial port] menu.
    • -
    • A user can specify any baud rate at the /BAUD option.
    • +
    • A user can specify any baud rate at the /BAUD option.
    • A user can specify any baud rate at the "setbaud" macro command.
  • added support for the VPB and HPB control sequence.
  • @@ -1605,11 +2079,11 @@

    2009.7.5 (Ver 4.63)

    • added support for cursor control sequences.
    • added support for the control sequences for window operation.
    • added support of "Line at a time" mode.
        @@ -1638,7 +2112,7 @@

        2009.7.5 (Ver 4.63)

        • added the character set (aka "Script") drop-down combo box.
        • moved the Enable bold style to [Setup]-[Window].
        • -
        • moved the Russian Font char set to [Setup]-[Terminal] for Russian mode.
        • +
        • moved the Russian Font char set to [Setup]-[Terminal] for Russian mode.
      • added the MSB set character by using the Alt key.
          @@ -1658,7 +2132,7 @@

          2009.7.5 (Ver 4.63)

      • added a new optional setting that can disable the accelerator key for the Duplicate session.
      • The /F command line option overwrites the other option.
      • Changed the command line specification regarding the double quotation. @@ -1667,7 +2141,7 @@

        2009.7.5 (Ver 4.63)

    • added support for specifying any strings as the ConfirmChangePaste function.
    • added the Wait4allMacroCommand entry in the teraterm.ini file. The default is off. Turn on the value to enable the "wait4all" macro command.
    • added the new option of the "exec" macro command that the application exit code is stored in the result variable.
    • @@ -1739,7 +2213,7 @@

      2009.3.22 (Ver 4.62)

  • Disabled the "Eterm lookfeel" check-box on the Additional settings dialog. If a user enables the feature, directly edit the teraterm.ini file.
  • The hidden fonts can be shown on the font selection dialog with Windows 7 beta(build7000).
  • -
  • added support for specifying the reverser color. +
  • added support for specifying the reversed color.
    • added VTReverseColor entry in teraterm.ini file.
      Notice: This function is disabled for the backward compatibility when a user selects the upgrade installation. If a user want to enable this feature, turn on the EnableReverseAttrColor entry.
    • @@ -1901,7 +2375,7 @@

      2008.6.25 (Ver 4.59)

  • added support for the configuration whether the Unicode character that Tera Term does not support treated as a wide character.
      -
    • added the UnknownUnicodeCharacterAsWide entry in teraterm.ini file. The default value is off.
    • +
    • added the UnknownUnicodeCharacterAsWide entry in teraterm.ini file. The default value is off.
  • If a received Kanji code is either UTF-8 or UTF-8m, some characters such as a ruler and special characters will be displayed by using similar characters in DEC special character set. These characters are categorized into several groups and you can specify each group to be converted or not.
      @@ -1962,9 +2436,9 @@

      2008.2.29 (Ver 4.58)

  • added support of mouse event tracking.
  • -
  • added the "Realtime mode" feature on Broadcast Command. This feature can send all user's key sequence to TeraTerm window, and then a user can use vi editor on all window. This feature takes after "TeraTerm Pro assistant" free ware in lots of ways. +
  • added the "Realtime mode" feature on Broadcast Command. This feature can send all user's key sequence to TeraTerm window, and then a user can use vi editor on all window. This feature takes after "TeraTerm Pro assistant" free ware in lots of ways.
    • added "Realtime mode" check-box in Broadcast Command dialog. The default is on.
    • added a TeraTerm window list. Also, a user can select all item or cancel all item by double-click(toggle).
    • @@ -1979,7 +2453,7 @@

      2008.2.29 (Ver 4.58)

    • added Font linking fixed patch. Special thanks to naoh.
    • added the confirmation dialog when the Clipboard includes CR/LF by right-click or Alt+V. This is a foolproof way.
    • added the configuration entry to save the window position.
        @@ -2007,7 +2481,7 @@

        2008.2.29 (Ver 4.58)

      • Bug fix: Reverse video control sequence (DECSCNM) doesn't work correctly.
      • Bug fix: When TeraTerm is the Maximize window, TerminalSize entry in relation to the window would be recorded in teraterm.ini file.
      • Bug fix: The problem that a multi-byte character string which includes 0x5C and/or 0x7C is recognized as invalid is now fixed. This problem existed in a routine to check a file name.
      • -
      • Bug fix: TeraTerm COM auto connect problem. Special thanks to Steven Yang. cf. TeraTerm com auto connect bug
      • +
      • Bug fix: TeraTerm COM auto connect problem. Special thanks to Steven Yang. cf. TeraTerm com auto connect bug
      • Bug fix: ANSI Color settings is not immediately reflected.
      • Bug fix: Too many '\' characters could be shown after changing the title string by the escape sequence.
      • added 'getver' macro command.
      • @@ -2047,7 +2521,7 @@

        2008.1.15 (Ver 4.57)

      • Bug fix: double close a local file handle when same file already exists on the remote host by sending the local file with ZMODEM protocol.
      • Bug fix: Telnet keep-alive mechanism could not been thread-safe.
      • Bug fix: New-line (transmit) of Terminal Setup would be empty when a user connects.
      • -
      • Bug fix: Up and Down key could not work with DELL USB keyboard. Added the workaround. Special thanks to chuckf.
        cf. http://www.neocom.ca/forum/viewtopic.php?p=2565
      • +
      • Bug fix: Up and Down key could not work with DELL USB keyboard. Added the workaround. Special thanks to chuckf.
        cf. http://www.neocom.ca/forum/viewtopic.php?p=2565
      • upgraded TTSSH version supporting SSH2 to 2.45
      • upgraded CygTerm+ to 1.07_14
      • upgraded Oniguruma to 5.9.1
      • @@ -2100,8 +2574,8 @@

        2007.12.4 (Ver 4.56)

      • Bug fix: the transparency of window could not change to 255.
      • Bug fix: last 1 character of title string that is sent from server is deleted.
      • Bug fix: TeraTerm would use the configuration of TCPLocalEcho/TCPCRSend when the user start telnet connection on New connection dialog.
      • -
      • Bug fix: when continued line copy is enabled, Copy Table does not work correctly
      • -
      • Bug fix: when Transmit DEL by Delete key is enabled and Num Lock status is off, Numeric Keypad "." sends DEL.
      • +
      • Bug fix: when continued line copy is enabled, Copy Table does not work correctly
      • +
      • Bug fix: when Transmit DEL by Delete key is enabled and Num Lock status is off, Numeric Keypad "." sends DEL.
      • Bug fix: 'wait' macro command can't wait a long string. This bug was introduced in 4.54.
      • Bug fix: The color value on Window setup dialog would become 255 when the value is less than 16 and the user pushes PageUP key.
      • Bug fix: COM port description would be wrong when COM port number is forced to switch another number. Special thanks to xoxo-san.
      • @@ -2893,7 +3367,7 @@

        1998.3.10 (Ver 2.3 & 1.4)

        • Serial ports larger than COM4
        • Baud rate of 14400
        • -
        • User shortcut keys "EditCLS", "EditCLS", "ControlOpenTEK" and "ControlCloseTEK".
        • +
        • User shortcut keys "EditCLS", "EditCLB", "ControlOpenTEK" and "ControlCloseTEK".
        • Macro commands "clearscreen", "code2str", "enablekeyb", "filemarkptr", "fileseekback", "filestrseek2", "findclose", "findfirst", "findnext", "getdir", "kmtfinish", "kmtget", "makepath", "sendkcode", "setdir", "setexitcode", "str2code" and "testlink".
        • Macro operator "%".
        • Macro: a comment can be placed in any line.
        • @@ -3092,6 +3566,245 @@

          1994.2.24 (Ver 0.0)

          TTSSH

          +

          YYYY.MM.DD (Ver 3.4 not released yet)

          +
            + + + + + +
          + +

          2024.09.08 (Ver 3.3)

          +
            +
          • Changes +
              +
            • Added support for multiple required authentication. +
                +
              • Auto login, connect from macro and duplicate session are not supported, because TTSSH cannot receive multiple authentication informations from command line parameters.
              • +
              +
            • +
            • If option(/f, /ssh-f, /ssh-consume, /keyfile) argument file name is not absolute path, modify it to be treated as a relative path from %APPDATA%\teraterm5\.
            • +
            • Modified to private key file name can use Unicode
            • +
            +
          • + +
          • Bug fixes + +
          • + +
          • Misc +
              +
            • Upgraded LibreSSL to 3.9.2.
            • +
            +
          • +
          + +

          2024.2.29 (Ver 3.2)

          +
            + + + + +
          • Misc +
              +
            • upgraded LibreSSL to 3.8.2.
            • +
            • upgraded zlib to 1.3.1.
            • +
            +
          • +
          + +

          2023.12.19 (Ver 3.1)

          +
            +
          • Changes + +
          • + +
          • Bug fixes +
              +
            • fixed SSH sessions can not duplicate if the private key file name includes Kanji characters.
            • +
            • fixed unicode filename could not be used in SCP.
            • +
            +
          • + + +
          + +

          2023.10.15 (Ver 3.0)

          +
            +
          • Changes +
              +
            • added support for SSH2 host key algorithms: rsa-sha2-256, rsa-sha2-512 (RSA key with SHA-2 signature)
            • +
            • added support for SSH2 public key authentication methods: rsa-sha2-256, rsa-sha2-512 (RSA key with SHA-2 signature)
            • +
            • disabled SSH2 KEX algorithm by default for RFC 9142 recommendations: diffie-hellman-group1-sha1, diffie-hellman-group-exchange-sha1
            • +
            • changed default SSH heartbeat (keep-alive) interval to 300 seconds.
            • +
            • now TTSSH icon is used when the notify caused by TTSSH.
            • +
            • changed the default key type to ED25519 on Key Generator dialog.
            • +
            +
          • + +
          • Bug fixes +
              +
            • when SSH2 dynamic port forwarding is used, an application fault occurs.
            • +
            • when receiving SCP with fast network, received data is not written until finish receiving and memory usage increases, or no response.
            • +
            • when receiving SSH_MSG_CHANNEL_EXTENDED_DATA on SCP channel, there is a possibility that cause problem because it is processed as normal SCP data. +
                +
              • a message from remote is shown by balloon notify.
              • +
            • +
            • stop discarding SSH_MSG_CHANNEL_DATA send that occurs while key re-exchange, send them after finish key exchange.
            • +
            • when Authentication Setup dialog is opened, username setting value is "Use default username" (DefaultUserType=1), nevertheless "Do not enter username" is selected.
            • +
            +
          • + +
          • Misc +
              +
            • changed cryptography library from OpenSSL to LibreSSL 3.7.3.
            • +
            • upgraded zlib to 1.3.
            • +
            +
          • +
          + +

          2021.6.5 (Ver 2.92)

          +
            +
          • Changes +
              +
            • added chacha20-poly1305@openssh.com symmetric key cipher algorithm for SSH2 protocol.
            • +
            • added support for the PuTTY private key file format version 3 (PPK3).
            • +
            +
          • + +
          • Bug fixes +
              +
            • When the Virtual Store is enabled on Windows Vista or later and the Host key rotation is enabled, the original host key is accidentally deleted from known_hosts file.
            • +
            • When the Virtual Store is enabled on Windows Vista or later and the host key type is same but key contents is different, the host key can not be deleted from known_hosts file.
            • +
            • When many files are sent in a batch by using D&D's SCP sending, an error occurs.
            • +
            • When you resize the VT window or send a break signal immediately after user authentication was completed, connection is closed by server.
            • +
            • When system memory is insufficient, invalid signature may be used as correct one well with signature verification by the host key at the time of key exchange.
            • +
            • A part of control is always enabled on SSH authentication dialog.
            • +
            +
          • + +
          • Misc +
              +
            • upgraded OpenSSL from 1.1.1d to 1.1.1k.
            • +
            +
          • +
          + +

          2019.12.7 (Ver 2.91)

          +
            +
          • Changes +
              +
            • Changed of indication from "Protocol" to "IP version" and from "UNSPEC" to "AUTO" on New connection dialog.
            • +
            • The display timing of the user authentication dialog is changed to display after the known_hosts dialog.
            • +
            • The LogLevel entry is added on the Setup dialog.
            • +
            • The help button are added on the Setup dialog, Authentication Setup dialog, Forwarding dialog and Key Generator dialog.
            • +
            • When the network is disconnected from SSH server side, the known_hosts and user authentication dialog are automatically closed while the dialog is shown.
            • +
            • Changed the error message when unable to open local file.
            • +
            +
          • + +
          • Bug fixes +
              +
            • The same messages may be included on MessageBox displaying.
            • +
            • When the network is disconnected from SSH server side, an application fault may be occurred while known_hosts dialog is shown.
            • +
            • SSH1: The /nosecuritywarning option does not work well.
            • +
            • The problem is improved in the user authentication dialog that the delay occurs when the focus is moved from the user name to passphrase by using TAB key after entering the user name.
            • +
            • When the user name is left blank in the user authentication dialog, the focus may not be moved from the user name to the pull-down menu on the right side with TAB key.
            • +
            • Fixed a port forwarding issue that closes the client connection before completing all data transmission.
            • +
            • Incorrect process ID is recorded in TTSSH.LOG before connecting.
            • +
            • Authentication banner cannot display correctly when banner string contains character other than US-ASCII.
            • +
            +
          • + +
          • Misc +
              +
            • upgraded OpenSSL from 1.0.2s to 1.1.1d.
            • +
            +
          • +
          + +

          2019.08.31 (Ver 2.90)

          +
            + + +
          • Bug fixes +
              +
            • SSH2: When SSH communication is slow by using port forwarding, an application fault is occurred due to increase memory consumption.
            • +
            • SSH2: When SCP transfer dialog is closed, the directory of file transfer setting and the SCP destination path setting may not be updated.
            • +
            • SSH2: When SCP transfer is started on Windows 95/98/Me, an application fault occurs.
            • +
            • SSH1: When the destination port number is other than 22, an application fault may be occurred after the host key is newly written to known_hosts file.
            • +
            • SSH1: The rhosts authentication could not be performed at all.
            • +
            +
          • + + +
          + +

          2019.06.15 (Ver 2.89)

          +
            +
          • Changes +
              +
            • Windows logon user name can be configured as the default user name. +
                +
              • added the DefaultUserType entry in the teraterm.ini file. The default is 1(Using a specified default user name).
              • +
            • +
            • added a selector whether to use control characters in the Inputing Password and Passphrase of the authentication dialog.
            • +
            +
          • + +
          • Bug fixes +
              +
            • garbage data is added to the CipherOrder and MacOrder settings when saving settings.
            • +
            • when echo flag is 1 in the server's authentication information message, password string is masked on the keyboard-interactive authentication dialog.
            • +
            +
          • + +
          • Misc +
              +
            • upgraded OpenSSL to 1.0.2s.
            • +
            +
          • +
          +

          2019.02.28 (Ver 2.88)

          • Changes @@ -3170,7 +3883,7 @@

            2018.02.28 (Ver 2.84)

        • The minimum group size of the Diffie-Hellman group exchange key exchange method is increased to 2048. (RFC 8270)
            -
          • To change to the previous behavior, set the GexMinimalGroupSize entry in teraterm.ini file to 1024.
          • +
          • To change to the previous behavior, set the GexMinimalGroupSize entry in teraterm.ini file to 1024.
        @@ -3202,7 +3915,7 @@

        2017.11.30 (Ver 2.83)

      • aes128-gcm@openssh.com
      • aes256-gcm@openssh.com
    • -
    • added support for SSH2 MAC algorithms:
    • +
    • added support for SSH2 MAC algorithms:
      • hmac-sha1-etm@openssh.com
      • hmac-sha2-256-etm@openssh.com
      • @@ -3339,7 +4052,7 @@

        2016.05.31 (Ver 2.77)

      • Bug fixes
          -
        • The key length of blowfish-ctr symmetric key cipher is changed to 256 bits in accordance with RFC 4344.
        • +
        • The key length of blowfish-ctr symmetric key cipher is changed to 256 bits in accordance with RFC 4344.
        • When all key exchange method are enabled, the latest method can not be used.
        • When the X11 forwarding starts, the connection error will be occurred with error code(WSANO_RECOVERY: 11003).
        @@ -3538,12 +4251,18 @@

        2014.06.01 (Ver 2.69)

        • Changes
            -
          • added support for the key exchange of Curve25519 elliptic curve DH(Diffe Hellman) algorithm. +
          • Added support for Ed25519 public key authentication.
          • +
          • Added support for Ed25519 server host key.
              -
            • Key Generator supports the ED25519 authentication key.
            • -
            • Key Generator supports the bcrypt KDF format of the RSA/DSA/ECDSA private key.
            • -
            • added the ED25519 into the Host Key algorithm, and then changed the HostKeyOrder entry in the teraterm.ini file.
            • -
          • +
          • Changed the HostKeyOrder entry in the teraterm.ini file.
          • +
          +
        • +
        • Key Generator supports the Ed25519 authentication key. +
            +
          • Ed25519 private key file is saved as bcrypt KDF format.
          • +
          +
        • +
        • Key Generator now supports save the bcrypt KDF format of the RSA/DSA/ECDSA private key.
        • added the host key's fingerprint and the random art into the "About TTSSH" dialog.
        • TTY option ONLCR can be sent to the remote server.
        @@ -3570,7 +4289,7 @@

        2014.02.28 (Ver 2.68)

      • The SCP transfer is always aborted when the Tera Term window is minimized.
    • - +
    • Misc
      • upgraded OpenSSL to 1.0.1f
      • @@ -3714,7 +4433,7 @@

        2011.12.04 (Ver 2.59)

      • Changes
        • When the SSH version of the TTSSH does not match the server protocol version, a user can not connect.
        • -
        • The control characters(^A-^_) can be inputed as the password string on the key generator dialog.
        • +
        • The control characters(^A-^_) can be input as the password string on the key generator dialog.
        • added the SSHFP RR on the Security Warning dialog.
          • added the "Verify hostkey fingerprint by DNS" check-box on the "TTSSH: Setup" dialog box.
          • @@ -3959,7 +4678,7 @@

            2008.12.16 (Ver 2.49)

            • Changes
                -
              • added AES128-CTR, AES192-CTR, AES256-CTR, Arcfour, Arcfour128, Arcfour256 and CAST128-CBC symmetric key cipher algorithm for SSH2 protocol. Security fix: CPNI-957037. +
              • added AES128-CTR, AES192-CTR, AES256-CTR, Arcfour, Arcfour128, Arcfour256 and CAST128-CBC symmetric key cipher algorithm for SSH2 protocol. Security fix: CPNI-957037.
                • added "<", "=", ">", "?", "@", "A" and "B" to CipherOrder entry in teraterm.ini file.
              • @@ -4008,7 +4727,7 @@

                2008.2.29 (Ver 2.46)

              • Directly input the receiving file name
            • -
            • added support for the public key authentication with Pageant(an SSH authentication agent for PuTTY, PSCP and Plink). +
            • added support for the public key authentication with Pageant(an SSH authentication agent for PuTTY, PSCP and Plink).
              • added "pageant" value to "/auth" command line switch.
            • @@ -4025,7 +4744,7 @@

              2008.1.15 (Ver 2.45)

            • Only support for SSH2 protocol.
            • Not supporting for SFTP(SSH File Transfer Protocol).
            -
          • Bug fix: TCP disconnection was mis-detected in the packet sending. This bug was introduced in in TSSH 1.01 because SSH heartbeat thread was not thread-safe.
          • +
          • Bug fix: TCP disconnection was mis-detected in the packet sending. This bug was introduced in in TTSSH 1.01 because SSH heartbeat thread was not thread-safe.
          • Bug fix: SSH is disabled when "/ssh1" or "/ssh2" is included in host name on New Connection dialog.
          • Bug fix: Twice sending SSH2_MSG_SERVICE_REQUEST packet when the user default is not specified and the user authentication method is challenge, /ask4passwd is specified at command line parameter.
          • Bug fix: TIS authentication dialog would not appear when CheckAuthListFirst entry is off and the user authentication method is challenge, /ask4passwd is specified at command line parameter.
          • @@ -4669,6 +5388,38 @@

            2007.8.8 (Ver 1.00)

            TTProxy

            +

            2019.12.7 (Ver 1.0.0.26)

            +
              + + +
            • Bug fixes +
                +
              • When the HTTP proxy connection fails and the status code is other than 400,401,403,405,406,407, invalid string is shown in the message box.
              • +
              +
            • +
            + +

            2019.08.31 (Ver 1.0.0.25)

            +
              +
            • Changes +
                +
              • When the negotiation is failed with SOCKS4 and 5, an error information is added to message.
              • +
              +
            • + +
            • Bug fixes +
                +
              • Bug fix: Depending on OS, setup dialog is not working correctly. This bug was introduced in 4.103.
              • +
              • Bug fix: When the hostname setting is domain, IPv6 and IPv4 fallback does not work well. And also, when you can not connect to the proxy server, Connection refused dialog is shown three times in a row.
              • +
              • Bug fix: When data can not receive from SOCKS server during negotiation with SOCKS4 and 5, the data may not be handled as an error.
              • +
              +
            • +
            +

            2016.11.30 (Ver 1.0.0.24)

            • When an authentication is used on HTTP proxy, Tera Term(TTProxy) will be crashed.
            • @@ -4774,6 +5525,45 @@

              2006.8.1 (Ver 1.0.0.8)

              TeraTerm Menu

              +

              2024.7.7 (Ver 1.20)

              +
                +
              • Added LockBox to encrypt and save passwords.
              • +
              • In the Details dialog, the "use SSH" checkbox no longer turns on when the executable file name includes "ttermpro.exe".
              • +
              • Fixed a typo in the title of the List Configuration dialog. (Cofiguration -> Configuration)
              • +
              • Added the risk of information leaks to document.
              • +
              + +

              2024.2.29 (Ver 1.19)

              +
                +
              • Fixed "(none)" is not displayed correctly when execution list is empty.
              • +
              • Do not read ttermpro.exe path from win.ini.
              • +
              + +

              2023.12.19 (Ver 1.18)

              +
                +
              • Win32 API was changed to the Unicode version, and strings were changed to Unicode.
              • +
              • Removed upper limit of argument length of the program invoked from TeraTerm Menu.
              • +
              • Copy ini files to take over settings.
              • +
                  +
                • If ttpmenu.ini exists in the same path as ttpmenu.exe and %APPDATA%\teraterm5\ttpmenu.ini does not exist.
                • +
                +
              • Support portable edition(when portable.ini exists in exe folder).
              • +
              • When %APPDATA%\teraterm5\ttpmenu.ini is 0byte, write UTF-16 LE BOM.
              • +
              • Removed upper limit of ttpmenu.ini file name length.
              • +
              • Display that settings is either registry or ini file in about dialog.
              • +
              + +

              2023.10.15 (Ver 1.17)

              +
                +
              • TeraTerm Menu can pass an argument that is over 260 bytes to ttermpro.exe now.
              • +
              + +

              2021.6.5 (Ver 1.16)

              +
                +
              • The tool chip's text of button for registering to the list are changed to "Register" and "Unregister".
              • +
              • Bug fix: The extra "\" character is displayed on the version information.
              • +
              +

              2017.11.30 (Ver 1.15)

              • When the ttpmenu.ini file is used, the buffer size including whole host setting name is expanded from 2.6KB to 10KB.
              • @@ -4864,6 +5654,16 @@

                2004.12.8 (Ver 0.94r2)

                TTX KanjiMenu

                +

                2024.9.6 (Ver 0.1.9)

                +
                  +
                • Refactoring for menu creation.
                • +
                + +

                2021.6.5 (Ver 0.1.8)

                +
                  +
                • UTF-8m setting does not shown in Korean mode.
                • +
                +

                2016.11.30 (Ver 0.1.7)

                • When Kanji code is changed, internal status regarding Kanji code of Tera Term core is cleared.
                • @@ -4924,6 +5724,18 @@

                  2008.12.16 (Ver 1.00)

                TTXResizeMenu

                +

                2022.10.15 (Ver 1.07)

                +
                  +
                • added support for Tera Term 5.0.
                • +
                • Fixed an issue when Tera Term is not connected to host, an application fault occurs.
                • +
                + +

                TTXResizeMenu

                +

                2019.12.7 (Ver 1.06)

                +
                  +
                • Fixed the access key for the 16th and subsequent entries in the menu.
                • +
                +

                2018.11.30 (Ver 1.05)

                • added menu id to increase/decrease window size. (for shortcut keys)
                • @@ -4956,6 +5768,17 @@

                  2008.12.16 (Ver 1.00)

                TTXttyrec

                +

                2023.10.15 (Ver 1.05)

                +
                  +
                • Fixed [Replay again] is not working when playing from command line.
                • +
                • added support for playing tty file while another Tera Term is playing same tty file
                • +
                + +

                2019.12.7 (Ver 1.04)

                +
                  +
                • Bug fix: Unexpected pauses and playback speed changes occur when replaying the editing by Vim.
                • +
                +

                2017.02.28 (Ver 1.03)

                • added [Replay again] entry under [File] menu that can replay again after one relaying.
                • @@ -5026,5 +5849,12 @@

                  2009.6.30 (Ver 1.00)

                • first release
                +

                TTXCommandLineOpt

                + +

                2023.10.30

                +
                  +
                • Fixed /FG=, /BG= options did not work.
                • +
                + diff --git a/doc/en/html/about/image/notify_tray_test.png b/doc/en/html/about/image/notify_tray_test.png new file mode 100644 index 000000000..65604dc39 Binary files /dev/null and b/doc/en/html/about/image/notify_tray_test.png differ diff --git a/doc/en/html/about/module.html b/doc/en/html/about/module.html index d24197bae..1640f6530 100644 --- a/doc/en/html/about/module.html +++ b/doc/en/html/about/module.html @@ -105,7 +105,7 @@

                CygTerm+

                Source code - Please see "osdn.net" page. + Please see "GitHub" page. @@ -189,38 +189,6 @@

                TTX KanjiMenu

                -

                LogMeTT

                -

                -This is a launcher software that supports automatic login, has built-in macro editor. -

                - - - - - - - - - -
                authorBoris Maisuradze(NeoCom Ltd.)
                License&CopyrightPlease see "LogMeTT_license.txt" for more details.
                - - -

                Collector

                -

                -This is Windows standalone application for doing tabbed other application. -

                - - - - - - - - - -
                authorHiroshi Takahashi
                License&CopyrightPlease see "Collector\readme.txt" for more details.
                - - diff --git a/doc/en/html/about/qanda.html b/doc/en/html/about/qanda.html index 4aede5437..520a0481d 100644 --- a/doc/en/html/about/qanda.html +++ b/doc/en/html/about/qanda.html @@ -20,14 +20,13 @@

                [About Tera Term]

                Q. Where can I find the latest version?
                A. You can find it at the following sites:
                -https://ttssh2.osdn.jp/
                -Note: These sites may be changed in future. +https://teratermproject.github.io/

                Q. When will the next version be released?
                -A. See Tera Term home page. -A. Periodical release will be done once every three months, as February, May, August and November. This release may be delayed for any reason.
                +A. See Tera Term home page.
                +A. Periodical release will be done once every six months, as February and November. This release may be delayed for any reason.
                A. When critical problem like as security hole is found, new version will be released at the timing other than periodical release.

                @@ -39,12 +38,29 @@

                [About Tera Term]

                Q. I want to participate in Tera Term development.
                -A. Anybody who would like to participate can participate. Please register your account on the OSDN and contact the author.

                +A. Anybody who would like to participate can participate. Please sign up to GitHub and contact the author.

                + +

                +Q. Can I utilize screenshots from Tera Term?
                +A. Please use at your own risk under license.

                + +

                +Q. EAR (Export Administration Regulations)
                +A. +Tera Term includes modules made in the USA. As such, it may be subject to U.S. export control laws known as ECCN-5D002, cryptograhic software. Downloading it outside of Japan will be considered as re-export because the laws applies to re-exports.
                +Tera Term distributed on TeraTerm Project has been already finished the following. +

                  +
                • A user is able to get the software without restrictions.
                • +
                • TeraTerm Project has been sent the e-email to the U.S. Bureau of Industry and Security (BIS) and the ENC Encryption Request Coordinator.
                • +
                +When you download and use Tera Term, you must refer to above information, components and libraries at your own risk. You are solely responsible for compliance with Export Laws.
                +For more information, see the project wiki page "About EAR (Export Administration Regulations)." +

                [Basic usage]

                -Q. I can not connect to a host.
                +Q. I can not connect to a host.
                A. Please check the following things:

                  @@ -53,27 +69,65 @@

                  [Basic usage]

                • Is the host name or IP address correct?
                • Can you connect to the host from other machines?
                +

                -Please do not ask the author how to configure network properties. Please read books and magazines or ask the network administrator. +Please read message and confirm followings:

                +
                +
                Invalid host
                +
                + Connection destination was not resolved from host name.
                + Confirm that host name is valid and host name is able to resolve. +
                + +
                Connection refused
                +
                + Connection destination does not up a service.
                + Confirm service status. +
                + +
                Connection timed out
                +
                + No response from destination.
                + Check network, host startup, firefall, etc. +
                + +
                Network cannot be reached
                +
                + Unable to reach destination.
                + Check network adapter settings of PC on which Tera Term is running, or route to destination. +
                + +
                +

                -Q. How do I connect to a host with dial-up TCP/IP (PPP)?
                -A. Before you run Tera Term, establish the PPP connection. In the case of Win 95, you should use "Dial-Up Networking".
                -After the dial-up (PPP) connection is established, run Tera Term. Enter the host name or IP address at the [File] New connection dialog box. If you don't know the name or IP address of the host, ask the network administrator.
                -In the case of PPP connection, the serial port is controlled by the PPP connection utility. Serial port functions of Tera Term are for non-PPP connections and nothing to do with the PPP connection. +Please ask the network administrator how to configure network properties.

                Q. Tera Term automatically closes when I logout a telnet host. How to disable closing?
                -A. Turn "Auto window close" off in the [Setup] TCP/IP dialog box. +A. Turn "Auto window close" off in the [Setup] Additional settings "TCP/IP" tab.

                Q. I want to connect to a telnet host, but a serial port is always opened when Tera Term is started.
                -A. Set "Default port" to "TCP/IP" in the [Setup] General dialog box. +A. Set "Default port" to "TCP/IP" in the [Setup] Additional settings "TCP/IP" tab. +

                + +

                +Q. How do I connect to a host with dial-up TCP/IP (PPP)?
                +A. Before you run Tera Term, establish the PPP connection. In the case of Win 95, you should use "Dial-Up Networking".
                +After the dial-up (PPP) connection is established, run Tera Term. Enter the host name or IP address at the [File] New connection dialog box. If you don't know the name or IP address of the host, ask the network administrator.
                +In the case of PPP connection, the serial port is controlled by the PPP connection utility. Serial port functions of Tera Term are for non-PPP connections and nothing to do with the PPP connection. +

                + +

                + Q. I changed setup item, but it is not kept. Exit Tera Term and start Tera Term, changed setup item value is restored to original value.
                + A. Tera Term does not save setup values automatically. To keep it, you have to explicitly save by [Setup] Save setup.

                +

                [Keyboard]

                Q. How to set the Backspace or Delete key to work for the backspace function.
                @@ -93,40 +147,58 @@

                [Keyboard]

                Q. F1 (or whatever) key does not work. How to configure the keyboard?
                -A. In most cases, I can not answer this kind of question because I don't know how the key works. If you know what character (string) should be sent or what function should be performed by pressing the key, you can make the key work by editing the keyboard setup file. Read KEYCODE.TXT. +A. In most cases, I can not answer this kind of question because I don't know how the key works. If you know what character (string) should be sent or what function should be performed by pressing the key, you can make the key work by editing the keyboard setup file. Read Keyboard setup file.

                Q. How to change the keyboard shortcut for the [Edit] Paste (Copy) command to Ctrl+V (Ctrl+C)?
                -A. See "User shortcut keys" and KEYCODE.TXT. +A. See "User shortcut keys" and "Keyboard setup file". +

                + + +

                [SSH]

                +

                + Q. passphrase input box on SSH Authentication dialog can not paste by Ctrl+v key.
                + A. Tera Term does not support paste by Ctrl+v key, because of support for input control character by "Ctrl+some key."
                + To paste passphrase, use Shift+Ins key.

                +

                + Q. I sent a file by SCP without specifying destination folder, but file was not saved to shell current directory.
                + A. SCP can not save to shell current directory.
                +Terminal emulator does not know shell current directory of remote side. If prompt indicate current directory, a text from remote side is only displaying. Current directory is not shown always, in some shell or setting. User is able to understand current directory because he construct in his head from prompt text, result of `cmd' command or result of `cd' command. +

                + +

                [Miscellaneous]

                Q. What is "Tera Term extension interface"?
                A. It is the interface between Tera Term and add-on modules. An add-on module is provided as a DLL which can hook Tera Term user interface functions, setup functions and Winsock functions. At the point of Mar 1998, no add-on module has been developed. Projects of developing add-on modules which support ssh and SSL are in progress. See Tera Term home page for currently available add-on modules.

                -

                -Q. Line drawing characters ("Tera Special" font characters) are not displayed properly.
                -A. Remove the "Tera Special" font from "Fonts" of Control Panel, restart the system and reinstall the "Tera Special" font manually at "Fonts" of Control Panel. +

                +Q. DEC Special Graphics (like Box-drawing characters) ("Tera Special" font characters) are not displayed properly.
                +A. Refer to DEC Special Graphics
                +If "Tera Special" font does not display properly, reinstall it.
                +Remove the "Tera Special" font from "Fonts" of Control Panel, restart the system and reinstall the "Tera Special" font manually at "Fonts" of Control Panel.

                -Q. When line drawing characters are displayed, a "line" character does not match with an "angle" character smoothly.
                -A. Tera Term provides the original font "Tera Special" font to display line drawing characters. The font is scaled to fit the size of normal character font. Depending on the scaling factor, this mismatch problem may occur. Please find a good choice of font and size for normal characters which does not cause this problem. +Q. When Box-drawing characters in DEC Special Graphics ("Tera Special" font characters) are displayed, a "line" character does not match with an "angle" character smoothly.
                +A. Refer to DEC Special Graphics
                +When "Tera Special" font is used to display Box-drwing characters, the font is scaled to fit the size of normal character font. Depending on the scaling factor, this mismatch problem may occur. Please find a good choice of font and size for normal characters which does not cause this problem.

                -Q. Why number of fonts in the list of [Setup] Font dialog box is so small?
                -Q. Why I can not select the "Times" font at the [Setup] Font dialog box?
                +Q. Why number of fonts in the list of [Setup] Font dialog box is so small?
                +Q. Why I can not select the "Times" font at the [Setup] Font dialog box?
                A. Tera Term uses only fixed-pitch fonts such as "Terminal" and "Courier" because characters should be displayed with equal spacing in order to emulate the VT terminal properly. Displaying proportional font characters with equal spacing is in principle possible but it makes program complicated and slow. So Tera Term does not use proportional fonts.
                A.On Windows7, the font dialog uses the current user's show/hide font settings to determine the font list to display. This will result in the display of fewer font lists in most instances. To disable font hiding, users should go to the Font Settings page in the Fonts CPL and no-select the "Hide fonts based on language settings" check-box.

                Q. How to change the behavior of text selection by mouse double clicking?
                -A. See "Delimiters of a word selected by double clicking". +A. See "Delimiters of a word selected by double clicking".

                @@ -142,8 +214,75 @@

                [Miscellaneous]

                • A user configures the user's shell settings to disable sending the control sequence for the window title changing.
                • -
                • A user turns off the "Accept Window Title Change Request" on the General tab of the [Setup]Additional Setting dialog.
                • +
                • A user turns off the "Accept Window Title Change Request" on the General tab of the [Setup]Additional Setting "General" tab.
                +

                + Q. Window content is cleared when window is resized.
                + A. To prevent this behavior, turn off [Setup]-[Additional settings]-[General]-[Clear display when window resized]. +

                + +

                + Q. Content of log file is not same as displayed in VTWindow. Character that is not able to displayed is outputted.
                + A. VTWindow displays result of received data which is parsed by control sequence. On the other hand, log file is a record of received data.
                + Therefore "content of log file" is not become same as "displayed content in VTWindow." It is similar that "HTML file" and "result of rendering by web browser" is different. +

                +Example:
                +keyboard input
                +- type `l'
                +- type `s'
                +- type BS
                +- type ` '(SPACE)
                +- type BS
                +- type `s'
                +- type ENTER
                +
                +display to VTWindow
                +```
                +ls
                +CMakeLists.txt  Makefile  README-j     cygterm.cpp  cygterm_cfg.cpp  sub.cpp
                +COPYING         README    cygterm.cfg  cygterm.ico  cygterm_cfg.h    sub.h
                +sf-usr-shell:~/cygterm+$ 
                +```
                +
                +Text log (BS from keyboard input is not displayed, but SPACE is displayed. TAB is displayed as it is.)
                +```
                +ls s
                +CMakeLists.txt	Makefile  README-j     cygterm.cpp  cygterm_cfg.cpp  sub.cpp
                +COPYING		README	  cygterm.cfg  cygterm.ico  cygterm_cfg.h    sub.h
                +sf-usr-shell:~/cygterm+$ 
                +
                +Binary log (All keyboard input is displayed. TAB is displayed as it is.)
                +```
                +ls s
                +CMakeLists.txt	Makefile  README-j     cygterm.cpp  cygterm_cfg.cpp  sub.cpp
                +COPYING		README	  cygterm.cfg  cygterm.ico  cygterm_cfg.h    sub.h
                +sf-usr-shell:~/cygterm+$ 
                +```
                +
                +

                + + +

                [About Tera Term 5]

                + +

                +Q. Can the configuration file(TERATERM.INI) be shared with Tera Term 4?
                +A. +Tera Term 5 can read TERATERM.INI for Tera Term 4. + +Tera Term 5 converts TERATERM.INI to UTF-16 with LE BOM(UTF-16LE BOM). + +Tera Term 4 using the ANSI(not Unicode) API can also read/write +Unicode ini files because the OS converts the character encoding. + +But, if the characters cannot be converted in ANSI/Unicode, +characters will be breaked. + +And, Windows 9x does not have a character code conversion function in API, +Unicode version ini files cannot be used. + +Please also refer to the API behavior. +

                + diff --git a/doc/en/html/about/requests.html b/doc/en/html/about/requests.html index 680af5b53..60a1295d4 100644 --- a/doc/en/html/about/requests.html +++ b/doc/en/html/about/requests.html @@ -12,9 +12,8 @@

                Requests

                -Please read this page carefully before you contact the author.
                -This page summarizes requests frequently asked by users. Please do not ask the author about these things and the schedule for them.
                -Requests not listed here may have already been supported. Please read this help, MACRO help, README.TXT, KEYCODE.TXT and Tera Term home page carefully. +This page summarizes requests frequently asked by users.(In other words, this list is not implemented items.)
                +When your question cannot be resolved by referring to help (MACRO Help, Keycode), please contact us.

                Items which may be supported in future

                @@ -29,22 +28,19 @@

                Items which may be supported in future

              • Word search.
              • Screen buffer and scroll bar for TEK window.
              • Improving resolution of TEK window printing.
              • -
              • In file transfers, displaying a progress bar[1], time to finish and the transfer speed.
              • +
              • In file transfers, displaying a progress bar[1], time to finish and the transfer speed.
              • ZMODEM recovery function.
              • -
              • Chinese and Korean[2] character code sets.
              • [File] Print setup command
              • -
              • Saving selected text or text in the scroll buffer to a file.[3]
              • +
              • Saving selected text or text in the scroll buffer to a file.[2]
              • Selecting the text/background color by using color pallets.
              • Switching to a small font when the screen mode is switched to the 132-column mode.
              • -
              • Displaying Chinese/Japanese/Korean characters in non-Chinese/Japanese/Korean Windows.
              • -
              • Unicode supporting in the Tera Term internal design
              • SFTP(SSH File Transfer Protocol)
              • OpenSSH: ProxyCommand

              Items which may be supported in future (MACRO related items)

                -
              • Array variables.[4]
              • +
              • Array variables.[3]
              • Supporting the redirection by the "exec" command.
              • Waiting for binary data by the "wait" command.
              • Connect to Tera Term that is already running.
              • @@ -57,7 +53,7 @@

                Items which may be supported in very far future

              • TN3270
              • Sharing a serial port with other applications at the same time.
              • Line input mode and a window for line input.
              • -
              • Improving the speed of Kermit transfer.[5]
              • +
              • Improving the speed of Kermit transfer.[4]
              • Proportional fonts.
              • ANSI/AVATAR
              • ReGIS
              • @@ -69,10 +65,9 @@

                Items which may be supported in very far future

                Note

                1. ^ Displaying a progress bar is supported since rev. 4.60.
                2. -
                3. ^ Korean character set(KS5601) is supported since rev. 4.60.
                4. -
                5. ^ see screencapture.ttl.
                6. -
                7. ^ Supported since rev. 4.72.
                8. -
                9. ^ Kermit Long Packet is supported since rev. 4.73.
                10. +
                11. ^ see screencapture.ttl.
                12. +
                13. ^ Supported since rev. 4.72.
                14. +
                15. ^ Kermit Long Packet is supported since rev. 4.73.
                diff --git a/doc/en/html/about/requirements.html b/doc/en/html/about/requirements.html index 65d024244..9fc9b82c6 100644 --- a/doc/en/html/about/requirements.html +++ b/doc/en/html/about/requirements.html @@ -14,31 +14,14 @@

                Requirements

                Supported operating systems:

                  -
                • Microsoft Windows 95 (*1) (*2) (*3) (*4)
                • -
                • Microsoft Windows 98, 98 Second Edition
                • -
                • Microsoft Windows Me
                • -
                • Microsoft Windows NT 4.0 SP6 (*2) (*4)
                • -
                • Microsoft Windows 2000
                • -
                • Microsoft Windows XP
                • -
                • Microsoft Windows Vista
                • -
                • Microsoft Windows Server 2003, 2003 R2
                • -
                • Microsoft Windows Server 2008, 2008 R2
                • Microsoft Windows 7
                • Microsoft Windows 8
                • Microsoft Windows Server 2012
                • Microsoft Windows 8.1
                • Microsoft Windows Server 2012 R2
                • Microsoft Windows 10
                • +
                • Microsoft Windows 11
                -

                -NOTE1: Not supporting Microsoft Windows 3.1.
                -NOTE2: Supporting x64 and IA-64 Windows.(by WOW64)
                -(*1) Windows Sockets2.0 requirement
                -(*2) Internet Explorer 5 later requirement
                -(*3) LogMeTT and TTLEditor can not work.
                -(*4) Tahoma font is recommended. -

                - diff --git a/doc/en/html/about/writer.html b/doc/en/html/about/writer.html index 2b223cfc0..6729adc49 100644 --- a/doc/en/html/about/writer.html +++ b/doc/en/html/about/writer.html @@ -12,10 +12,10 @@

                Document writer

                  -
                • Masateru KUWATA mkuwata at excite.co.jp
                • -
                • Yutaka Hirata yutakakn at gmail.com
                • +
                • Masateru KUWATA mkuwata at excite.co.jp
                • +
                • Yutaka Hirata
                • IWAMOTO Kouichi sue at iwmt.org
                • -
                • NAGATA Shinya maya.negeta at gmail.com
                • +
                • NAGATA Shinya
                • 2Y -Yuta Yamashita- yuta at user.osdn.me
                diff --git a/doc/en/html/commandline/teraterm.html b/doc/en/html/commandline/teraterm.html index 802adacc1..ce3122171 100644 --- a/doc/en/html/commandline/teraterm.html +++ b/doc/en/html/commandline/teraterm.html @@ -22,8 +22,8 @@

                Tera Term command line

                [/P=<TCP port#>] [/R=<replay file>] [/SPEED=<speed>] [/T=<telnet flag>] [/TEKICON=<icon name>] [/TIMEOUT=<connecting timeout value>] [/V] [/VTICON=<icon name>] [/W="<window title>"] [/WAITCOM] - [/X=<window pos (x)] [/Y=<window pos (y)] [/PIPE] - [/AUTOWINCLOSE=<flag>] + [/X=<window pos (x)>] [/Y=<window pos (y)>] [/PIPE] + [/AUTOWINCLOSE=<flag>] [/OSC52=<operations to permit>] [;<comment>]
  • @@ -72,7 +72,62 @@

    Options

  • /C=3 COM3
  • :
  • /C=256 COM256
  • - + + By default, maximum serial port number is 256. It is configurable in MaxComPort setting. + + +
    /CDATABIT=<value>
    +
    Data bit of serial port +
      +
    • /CDATABIT=7 7bit
    • +
    • /CDATABIT=8 8bit
    • +
    +
    + +
    /CPARITY=<value>
    +
    Parity of serial port +
      +
    • /CPARITY=none none
    • +
    • /CPARITY=odd odd
    • +
    • /CPARITY=even even
    • +
    • /CPARITY=mark mark
    • +
    • /CPARITY=space space
    • +
    +
    + +
    /CSTOPBIT=<value>
    +
    Stop bit of serial port +
      +
    • /CSTOPBIT=1 1bit
    • +
    • /CSTOPBIT=1.5 1.5bit
    • +
    • /CSTOPBIT=2 2bit
    • +
    +
    + +
    /CFLOWCTRL=<value>
    +
    Flow control of serial port +
      +
    • /CFLOWCTRL=x Xon/Xoff
    • +
    • /CFLOWCTRL=hard RTS/CTS
    • +
    • /CFLOWCTRL=rtscts RTS/CTS
    • +
    • /CFLOWCTRL=none none
    • +
    • /CFLOWCTRL=dsrdtr DSR/DTR
    • +
    +
    + +
    /CDELAYPERCHAR=<value>
    +
    Transmission delay time per character of serial port(msec) +
      +
    • /CDELAYPERCHAR=n n millisecond
    • +
    +
    + +
    /CDELAYPERLINE=<value>
    +
    Transmission delay time per line of serial port(msec) +
      +
    • /CDELAYPERLINE=n nmillisecond
    • +
    +
    +
  • Glossary
  • Document writer
  • @@ -63,14 +64,12 @@

    Tera Term Help Index

    -Also, when Auto window close configuration is enabled, a user uses the unlink command. Refer to in the following code: +Also, when Auto window close configuration is enabled, a user uses the unlink command. Refer to in the following code:

    diff --git a/doc/en/html/macro/appendixes/errormessages.html b/doc/en/html/macro/appendixes/errormessages.html
    index 512dfa9ee..168b4c704 100644
    --- a/doc/en/html/macro/appendixes/errormessages.html
    +++ b/doc/en/html/macro/appendixes/errormessages.html
    @@ -97,7 +97,6 @@ 

    Error messages

    The macro command can not be supported in Tera Term current version. - diff --git a/doc/en/html/macro/appendixes/negative.html b/doc/en/html/macro/appendixes/negative.html index 5b37dc010..2a790bbd5 100644 --- a/doc/en/html/macro/appendixes/negative.html +++ b/doc/en/html/macro/appendixes/negative.html @@ -15,20 +15,25 @@

    Note on negative integer constants

    Using a negative integer constant may cause a problem like the following: For example,

    -
    for i -10 0
    +
    for i 5 -1

    -causes the syntax error, because the second parameter is regarded as "i-10" instead of "i". To avoid this problem, take one of the following solutions: +causes the syntax error, because the second parameter is regarded as "5-1" instead of "5" and the third parameter is empty. To avoid this problem, take one of the following solutions:

    1. Put "0" before "-". -
      for i 0-10 0
      +
      for i 5 0-1
      +
    2. + +
    3. Add parenthese. +
      for i 5 (-1)
    4. Assign the negative constant to a variable. -
      A = -10
      -for i A 0
      +
      
      +A = -1
      +for i 5 A
       
    diff --git a/doc/en/html/macro/command/basename.html b/doc/en/html/macro/command/basename.html index d9c6e9be6..6121a4022 100644 --- a/doc/en/html/macro/command/basename.html +++ b/doc/en/html/macro/command/basename.html @@ -14,7 +14,7 @@

    basename

    -Returns trailing name component of path +Returns trailing name component of path. (version 4.69 or later)

    diff --git a/doc/en/html/macro/command/break.html b/doc/en/html/macro/command/break.html
    index 94e640f3c..64e91984b 100644
    --- a/doc/en/html/macro/command/break.html
    +++ b/doc/en/html/macro/command/break.html
    @@ -14,7 +14,7 @@
     

    break

    -Quit from loop. +Quit from loop. (version 4.53 or later)

    diff --git a/doc/en/html/macro/command/bringupbox.html b/doc/en/html/macro/command/bringupbox.html
    index e0adb02c3..e7242d15f 100644
    --- a/doc/en/html/macro/command/bringupbox.html
    +++ b/doc/en/html/macro/command/bringupbox.html
    @@ -14,7 +14,7 @@
     

    bringupbox

    -Brings the status box to the top of the Z order. +Brings the status box to the top of the Z order. (version 4.78 or later)

    @@ -53,6 +53,8 @@ 

    Example

    See also

    diff --git a/doc/en/html/macro/command/callmenu.html b/doc/en/html/macro/command/callmenu.html index ce074f5dc..03a31f445 100644 --- a/doc/en/html/macro/command/callmenu.html +++ b/doc/en/html/macro/command/callmenu.html @@ -14,7 +14,7 @@

    callmenu

    -Executes a menu of window. +Executes a menu of window. (version 4.56 or later)

    @@ -90,7 +90,6 @@ 

    Example

    ;callmenu 54112 ; [KanjiCode] Send: JIS callmenu 54013 ; [KanjiCode] Recv: UTF-8 callmenu 54113 ; [KanjiCode] Send: UTF-8 -;callmenu 54014 ; [KanjiCode] Recv: UTF-8m
    diff --git a/doc/en/html/macro/command/changedir.html b/doc/en/html/macro/command/changedir.html index 200810a2e..21a482d87 100644 --- a/doc/en/html/macro/command/changedir.html +++ b/doc/en/html/macro/command/changedir.html @@ -14,7 +14,7 @@

    changedir

    -Changes the current directory. +Changes the Download directory.

    @@ -24,15 +24,20 @@ 

    changedir

    Remarks

    -Changes the current directory for Tera Term to <path>. +Changes the Download directory for Tera Term to <path>.

    -Note: the setdir command changes the current directory for MACRO. File names specified for the communication commands (e.g. kmtsend) are based on the current directory for Tera Term. File names specified for other commands (e.g. fileopen) are based on the current directory for MACRO. +File names specified for the communication commands (e.g. kmtsend) are based on the current directory for Tera Term.

    -Complement: You must specify a fullpath name to the communication commands (e.g. sendfile, kmtsend) because these commands are not affected by `changedir' command. +You must specify a fullpath name to the communication commands (e.g. sendfile, kmtsend) because these commands are not affected by `changedir' command. +

    + +

    +The download folder also affects log storage. +Reffer to Folder to put setup files.

    Example

    @@ -42,5 +47,10 @@

    Example

    sendfile 'd:\source\code.dat' 1
    +

    See also

    + + diff --git a/doc/en/html/macro/command/checksum16.html b/doc/en/html/macro/command/checksum16.html index 9a820d344..48183f97f 100644 --- a/doc/en/html/macro/command/checksum16.html +++ b/doc/en/html/macro/command/checksum16.html @@ -14,7 +14,7 @@

    checksum16, checksum16file

    -Calculates the 16bit-checksum of a string or a file. +Calculates the 16bit-checksum of a string or a file. (version 4.78 or later)

    diff --git a/doc/en/html/macro/command/checksum32.html b/doc/en/html/macro/command/checksum32.html
    index 4acce8f4e..d57a197ff 100644
    --- a/doc/en/html/macro/command/checksum32.html
    +++ b/doc/en/html/macro/command/checksum32.html
    @@ -14,7 +14,7 @@
     

    checksum32, checksum32file

    -Calculates the 32bit-checksum of a string or a file. +Calculates the 32bit-checksum of a string or a file. (version 4.78 or later)

    diff --git a/doc/en/html/macro/command/checksum8.html b/doc/en/html/macro/command/checksum8.html
    index cc7319dbf..a8d3a425e 100644
    --- a/doc/en/html/macro/command/checksum8.html
    +++ b/doc/en/html/macro/command/checksum8.html
    @@ -14,7 +14,7 @@
     

    checksum8, checksum8file

    -Calculates the 8bit-checksum of a string or a file. +Calculates the 8bit-checksum of a string or a file. (version 4.78 or later)

    diff --git a/doc/en/html/macro/command/clipb2var.html b/doc/en/html/macro/command/clipb2var.html
    index 668bf3386..690f17710 100644
    --- a/doc/en/html/macro/command/clipb2var.html
    +++ b/doc/en/html/macro/command/clipb2var.html
    @@ -14,7 +14,7 @@
     

    clipb2var

    -Copies the text data of clipboard. +Copies the text data of clipboard. (version 4.46 or later)

    diff --git a/doc/en/html/macro/command/connect.html b/doc/en/html/macro/command/connect.html
    index 196324b44..2519f3f6a 100644
    --- a/doc/en/html/macro/command/connect.html
    +++ b/doc/en/html/macro/command/connect.html
    @@ -210,7 +210,7 @@ 

    Examples

    ; authentication, and not prompt for user name and password and use private key file. connect 'myserver /ssh /auth=pageant /user=username' -; Run Tera Term and open serial port connection. Port number is x=1..256 +; Run Tera Term and open serial port connection. Port number is x=1..Maximum value(MaxComPort). connect '/C=x' CommandLine = '111.111.11.11' diff --git a/doc/en/html/macro/command/continue.html b/doc/en/html/macro/command/continue.html index cc0c54e7d..bf4b1a172 100644 --- a/doc/en/html/macro/command/continue.html +++ b/doc/en/html/macro/command/continue.html @@ -14,7 +14,7 @@

    continue

    -Transfers control immediately to the next iteration of a loop. +Transfers control immediately to the next iteration of a loop. (version 4.77 or later)

    diff --git a/doc/en/html/macro/command/crc16.html b/doc/en/html/macro/command/crc16.html
    index 1d56a8977..6f3de3ee2 100644
    --- a/doc/en/html/macro/command/crc16.html
    +++ b/doc/en/html/macro/command/crc16.html
    @@ -14,7 +14,7 @@
     

    crc16, crc16file

    -Calculates the CRC-16-IBM of a string or a file. +Calculates the CRC-16-CCITT of a string or a file. (version 4.78 or later)

    @@ -28,7 +28,7 @@ 

    Remarks

    This macro function calculates the CRC(Cyclic Redundancy Checking) of a string or a file. The polynomial expression(right rotation) is as follows:

    -0xA001 (x16+x15+x2+x0) +10001000000100001 (x16+x12+x5+x0)

    The calculated value stores the variable "intvar" as mathematical value.
    @@ -40,8 +40,8 @@

    Remarks

    static unsigned int crc16(int n, unsigned char c[]) { +#define CRC16POLY1 0x1021U #define CRC16POLY2 0x8408U /* left-right reversal */ - int i, j; unsigned long r; @@ -60,19 +60,19 @@

    Remarks

    Example

    -str = 'this is a test string to be crc16ed'
    +str = 'this is a test string to be CRC16ed'
     crc16 crc str
     
    -; Display crc16 result asHEX
    +; Display CRC16 result asHEX
     sprintf '0x%08X' crc
    -messagebox inputstr 'crc16 = '
    +messagebox inputstr 'CRC16 = '
     
     crc16file crc 'foo.bin'
     if result = -1 then
    -    messagebox 'file open error' 'crc16 = '
    +    messagebox 'file open error' 'CRC16 = '
     else
         sprintf '0x%08X' crc
    -    messagebox inputstr 'crc16 = '
    +    messagebox inputstr 'CRC16 = '
     endif
     
    diff --git a/doc/en/html/macro/command/crc32.html b/doc/en/html/macro/command/crc32.html index 89683605f..0f79f5ddf 100644 --- a/doc/en/html/macro/command/crc32.html +++ b/doc/en/html/macro/command/crc32.html @@ -14,7 +14,7 @@

    crc32, crc32file

    -Calculates the CRC-32 of a string or a file. +Calculates the CRC-32 of a string or a file. (version 4.60 or later)

    @@ -39,10 +39,10 @@ 

    Remarks

    This algorithm is often used as the Ethernet FCS(Frame Check Sequence).
     
    -#define CRCPOLY2 0xEDB88320UL  /* left-right reversal */
    -
    -static unsigned long crc2(int n, unsigned char c[])
    +static unsigned long crc32(int n, unsigned char c[])
     {
    +#define CRC32POLY1 0x04C11DB7UL
    +#define CRC32POLY2 0xEDB88320UL  /* left-right reversal */
     	int i, j;
     	unsigned long r;
     
    @@ -50,7 +50,7 @@ 

    Remarks

    for (i = 0; i < n; i++) { r ^= c[i]; for (j = 0; j < CHAR_BIT; j++) - if (r & 1) r = (r >> 1) ^ CRCPOLY2; + if (r & 1) r = (r >> 1) ^ CRC32POLY2; else r >>= 1; } return r ^ 0xFFFFFFFFUL; diff --git a/doc/en/html/macro/command/cygconnect.html b/doc/en/html/macro/command/cygconnect.html index 5412cd2a5..0af9afe29 100644 --- a/doc/en/html/macro/command/cygconnect.html +++ b/doc/en/html/macro/command/cygconnect.html @@ -14,7 +14,7 @@

    cygconnect

    -Connects to Cygwin. +Connects to Cygwin. (version 4.57 or later)

    @@ -85,7 +85,7 @@ 

    See also

  • disconnect
  • testlink
  • unlink
  • -
  • Cygwin Information and Installation
  • +
  • Cygwin Information and Installation
  • diff --git a/doc/en/html/macro/command/delpassword.html b/doc/en/html/macro/command/delpassword.html index 01ee1f52b..177d2552f 100644 --- a/doc/en/html/macro/command/delpassword.html +++ b/doc/en/html/macro/command/delpassword.html @@ -21,6 +21,16 @@

    delpassword

    delpassword <filename> <password name>
    +

    Parameters

    + +
    +
    string <filename>
    +
    Password file name.
    + +
    string <password name>
    +
    Password identifier.
    +
    +

    Remarks

    @@ -31,12 +41,14 @@

    Remarks

    Example

    -delpassword 'password.dat' 'mypassword'
    +delpassword 'password.dat' 'foo'
     

    See also

    diff --git a/doc/en/html/macro/command/delpassword2.html b/doc/en/html/macro/command/delpassword2.html new file mode 100644 index 000000000..ec6fa2259 --- /dev/null +++ b/doc/en/html/macro/command/delpassword2.html @@ -0,0 +1,55 @@ + + + + + delpassword2 + + + + + + + +

    delpassword2

    + +

    +Deletes the password. (version 5.3 or later) +

    + +
    +delpassword2 <filename> <password name>
    +
    + +

    Parameters

    + +
    +
    string <filename>
    +
    Password file name.
    + +
    string <password name>
    +
    Password identifier.
    +
    + +

    Remarks

    + +

    +Deletes the password specified by <password name> in the password file <filename> created by the setpassword2 or getpassword2 command.
    +If <password name> is a blank string, all passwords in the file are deleted. +

    + +

    Example

    + +
    +delpassword2 'password2.dat' 'foo'
    +
    + +

    See also

    + + + + diff --git a/doc/en/html/macro/command/dirname.html b/doc/en/html/macro/command/dirname.html index 0462c8dda..b3f2eceb2 100644 --- a/doc/en/html/macro/command/dirname.html +++ b/doc/en/html/macro/command/dirname.html @@ -14,7 +14,7 @@

    dirname

    -Returns the directory name from a path name. +Returns the directory name from a path name. (version 4.69 or later)

    @@ -41,7 +41,7 @@ 

    Example

    See also

    diff --git a/doc/en/html/macro/command/dirnamebox.html b/doc/en/html/macro/command/dirnamebox.html index 71b19a7c5..2322488a6 100644 --- a/doc/en/html/macro/command/dirnamebox.html +++ b/doc/en/html/macro/command/dirnamebox.html @@ -14,7 +14,7 @@

    dirnamebox

    -Open a dialog can be selected a directory. +Open a dialog can be selected a directory. (version 4.86 or later)

    diff --git a/doc/en/html/macro/command/dispstr.html b/doc/en/html/macro/command/dispstr.html
    index 447c6f8b0..5f2ce314b 100644
    --- a/doc/en/html/macro/command/dispstr.html
    +++ b/doc/en/html/macro/command/dispstr.html
    @@ -14,7 +14,7 @@
     

    dispstr

    -Displays character on the client terminal screen. +Displays character on the client terminal screen. (version 4.67 or later)

    diff --git a/doc/en/html/macro/command/doloop.html b/doc/en/html/macro/command/doloop.html
    index e4b72f6d9..3d3c676ee 100644
    --- a/doc/en/html/macro/command/doloop.html
    +++ b/doc/en/html/macro/command/doloop.html
    @@ -14,7 +14,7 @@
     

    do, loop

    -Repeats. +Repeats. (version 4.56 or later)

    diff --git a/doc/en/html/macro/command/exec.html b/doc/en/html/macro/command/exec.html
    index c41842835..a833995dc 100644
    --- a/doc/en/html/macro/command/exec.html
    +++ b/doc/en/html/macro/command/exec.html
    @@ -21,25 +21,80 @@ 

    exec

    exec <command line> [<show> [<wait> [<current directory>]]]
    +

    Remarks

    Runs an application specified by <command line>.

    -
    -here show command: 
    -hide
    -minimize
    -maximize
    -show ;default parameters when no show command specified. 
    -
    - -When a user specifies the 1 at the <wait> argument, Tera Term waits to finish the launched application. The exit code of the application stores the `result' system variable. (version 4.63 or later) -

    -A current directory can be specified at the <current directory> argument. (version 4.78 or later) -

    +

    Parameters

    +
    +
    string <show> (optional default="show")
    +
    The following are display style: +
      +
    • hide
    • +
    • minimize
    • +
    • maximize
    • +
    • show
    • +
    +
    + +
    integer <wait> (optional default=0) (version 4.63 or later)
    +
    If it is 1, macro waits to finish the launched application. The exit code of the application stores the `result' system variable.
    + If it is not 1, macro launches the application and control is returned to macro.
    + +
    string <current directory> (optional default="") (version 4.78 or later)
    +
    A current directory can be specified.
    +
    + + +

    Return Value

    + +
    +
    System variable <result>
    +
    +
    +
    version 4.63 to 4.102
    +
    If integer value <wait> is 1, the exit code of the application is stored.
    +
    version 4.103 or later
    +
    + If integer value <wait> is 1 + + + + + + + + + + + + + +
    ValueMeaning
    -1Failed to execute the application.
    not -1The exit code of the application

    + + If integer value <wait> is not 1 + + + + + + + + + + + + + +
    ValueMeaning
    -1Failed to execute the application.
    0Succeeded to execute the application.
    +
    +
    +
    +

    Example

    diff --git a/doc/en/html/macro/command/expandenv.html b/doc/en/html/macro/command/expandenv.html index e626503e2..4fa82ff7a 100644 --- a/doc/en/html/macro/command/expandenv.html +++ b/doc/en/html/macro/command/expandenv.html @@ -14,7 +14,7 @@

    expandenv

    -Expands environment-variable strings. +Expands environment-variable strings. (version 4.71 or later)

    Format

    diff --git a/doc/en/html/macro/command/filecopy.html b/doc/en/html/macro/command/filecopy.html index 9d97ba028..9313cec16 100644 --- a/doc/en/html/macro/command/filecopy.html +++ b/doc/en/html/macro/command/filecopy.html @@ -26,9 +26,42 @@

    Remarks

    Copies file <file1> to file <file2>.
    If <file2> already exists, it is overwritten. <file1> and <file2> must not be same.
    -If the file is deleted successfully, the system variable "result" is set to 0. Otherwise, "result" is set to non-zero. +If the file is copy successfully, the system variable "result" is set to 0. Otherwise, "result" is set to non-zero. (version 4.104 or later)

    +

    Value of the system variable "result"

    + +

    +As a result of this command, the system variable "result" is set to one of the following values depending on the copy status: +

    + + + + + + + + + + + + + + + + + + + + + + + + + + +
    ValueStatus
    -4Copy failed.
    -3A file <file1> and file <file2> is same of name.
    -2Be used invalid characters to file <file2>.
    -1Be used invalid characters to file <file1>.
    0Copy succeeded.
    +

    Example

    diff --git a/doc/en/html/macro/command/filelock.html b/doc/en/html/macro/command/filelock.html
    index f365b9688..9a781323c 100644
    --- a/doc/en/html/macro/command/filelock.html
    +++ b/doc/en/html/macro/command/filelock.html
    @@ -14,7 +14,7 @@
     

    filelock

    -Locks the specified file. +Locks the specified file. (version 4.74 or later)

    diff --git a/doc/en/html/macro/command/filenamebox.html b/doc/en/html/macro/command/filenamebox.html
    index a7a1a0926..56b01c62d 100644
    --- a/doc/en/html/macro/command/filenamebox.html
    +++ b/doc/en/html/macro/command/filenamebox.html
    @@ -14,7 +14,7 @@
     

    filenamebox

    -Open a dialog can be selected a file. +Open a dialog can be selected a file. (version 4.54 or later)

    diff --git a/doc/en/html/macro/command/fileopen.html b/doc/en/html/macro/command/fileopen.html
    index 1aad1b0d4..545f4324a 100644
    --- a/doc/en/html/macro/command/fileopen.html
    +++ b/doc/en/html/macro/command/fileopen.html
    @@ -26,7 +26,8 @@ 

    Parameters

    integer variable <file handle>
    If the file is successfully opened, the file handle is returned in this variable.
    - Otherwise, <file handle> is set to -1.
    + version 4.101 or earlier, and 4.104 or later: Otherwise, <file handle> is set to -1. The macro error does not cause.
    + version 4.102 and 4.103: Otherwise, <file handle> is set to -1. The macro script is halted after the macro eror causes.
    string <filename>
    Specify an opened file name
    diff --git a/doc/en/html/macro/command/fileread.html b/doc/en/html/macro/command/fileread.html index 9be1879a3..7773e95ff 100644 --- a/doc/en/html/macro/command/fileread.html +++ b/doc/en/html/macro/command/fileread.html @@ -14,7 +14,7 @@

    fileread

    -Reads a file. +Reads a file. (version 4.48 or later)

    diff --git a/doc/en/html/macro/command/filestat.html b/doc/en/html/macro/command/filestat.html
    index d6c70522a..af40298f0 100644
    --- a/doc/en/html/macro/command/filestat.html
    +++ b/doc/en/html/macro/command/filestat.html
    @@ -14,7 +14,7 @@
     

    filestat

    -Gets status information on a file or folder. +Gets status information on a file or folder. (version 4.66 or later)

    diff --git a/doc/en/html/macro/command/filetruncate.html b/doc/en/html/macro/command/filetruncate.html
    index 11ec7b28b..0fac83278 100644
    --- a/doc/en/html/macro/command/filetruncate.html
    +++ b/doc/en/html/macro/command/filetruncate.html
    @@ -14,7 +14,7 @@
     

    filetruncate

    -Changes the size of a file. +Changes the size of a file. (version 4.67 or later)

    @@ -26,8 +26,9 @@ 

    Remarks

    Changes the <size> bytes of a <filename> file.
    Null characters('\0') are appended if the file is extended.
    -
    +

    +

    The system variable "result" value is set to 0 if the file size is successfully changed. The system variable "result" value of -1 indicates an error.

    diff --git a/doc/en/html/macro/command/fileunlock.html b/doc/en/html/macro/command/fileunlock.html index f82479aa4..29d7ac652 100644 --- a/doc/en/html/macro/command/fileunlock.html +++ b/doc/en/html/macro/command/fileunlock.html @@ -14,7 +14,7 @@

    fileunlock

    -Unlocks the specified file. +Unlocks the specified file. (version 4.74 or later)

    diff --git a/doc/en/html/macro/command/foldercreate.html b/doc/en/html/macro/command/foldercreate.html
    index 117be31dd..131237bd8 100644
    --- a/doc/en/html/macro/command/foldercreate.html
    +++ b/doc/en/html/macro/command/foldercreate.html
    @@ -14,7 +14,7 @@
     

    foldercreate

    -Creates a folder. +Creates a folder. (version 4.69 or later)

    diff --git a/doc/en/html/macro/command/folderdelete.html b/doc/en/html/macro/command/folderdelete.html
    index f435e90c8..83dbbd045 100644
    --- a/doc/en/html/macro/command/folderdelete.html
    +++ b/doc/en/html/macro/command/folderdelete.html
    @@ -14,7 +14,7 @@
     

    folderdelete

    -Deletes a folder. +Deletes a folder. (version 4.69 or later)

    diff --git a/doc/en/html/macro/command/foldersearch.html b/doc/en/html/macro/command/foldersearch.html
    index 83156caa6..0fe9f3395 100644
    --- a/doc/en/html/macro/command/foldersearch.html
    +++ b/doc/en/html/macro/command/foldersearch.html
    @@ -14,7 +14,7 @@
     

    foldersearch

    -Search a folder. +Search a folder. (version 4.69 or later)

    diff --git a/doc/en/html/macro/command/getdate.html b/doc/en/html/macro/command/getdate.html
    index 8884bd247..d85f26fe9 100644
    --- a/doc/en/html/macro/command/getdate.html
    +++ b/doc/en/html/macro/command/getdate.html
    @@ -25,7 +25,7 @@ 

    Remarks

    Returns the current date in the string variable <strvar>, with the default format "YYYY-MM-DD". -The user can specify the format same as strftime. And also, the default format equals "%Y-%m-%d" at the <format> argument. +The user can specify the format same as strftime. And also, the default format equals "%Y-%m-%d" at the <format> argument.

    @@ -93,7 +93,7 @@

    Example

    See also

    diff --git a/doc/en/html/macro/command/getfileattr.html b/doc/en/html/macro/command/getfileattr.html index deb5ad67d..4d93fe892 100644 --- a/doc/en/html/macro/command/getfileattr.html +++ b/doc/en/html/macro/command/getfileattr.html @@ -14,7 +14,7 @@

    getfileattr

    -Returns the attributes of a file or directory. +Returns the attributes of a file or directory. (version 4.69 or later)

    @@ -124,8 +124,8 @@ 

    Example

    See also

    diff --git a/doc/en/html/macro/command/gethostname.html b/doc/en/html/macro/command/gethostname.html index 0816e8857..42eb30b58 100644 --- a/doc/en/html/macro/command/gethostname.html +++ b/doc/en/html/macro/command/gethostname.html @@ -14,7 +14,7 @@

    gethostname

    -Gets the hostname or IP address. +Gets the hostname or IP address. (version 4.61 or later)

    diff --git a/doc/en/html/macro/command/getipv4addr.html b/doc/en/html/macro/command/getipv4addr.html
    index d3f58b49a..5af608d3b 100644
    --- a/doc/en/html/macro/command/getipv4addr.html
    +++ b/doc/en/html/macro/command/getipv4addr.html
    @@ -14,11 +14,11 @@
     

    getipv4addr

    -Retrieves local IPv4 address(es) +Retrieves local IPv4 address(es). (version 4.78 or later)

    -getipv4addr <string array> <num>
    +getipv4addr <string array> <intvar>
     

    Parameters

    @@ -27,7 +27,7 @@

    Parameters

    String array <string array>
    IP addresses are stored in the string array.
    -
    Integer variable <num>
    +
    Integer variable <intvar>
    IP address counts. If the IP address is none, it is set to 0.
    diff --git a/doc/en/html/macro/command/getipv6addr.html b/doc/en/html/macro/command/getipv6addr.html index 63645512c..c91d1819d 100644 --- a/doc/en/html/macro/command/getipv6addr.html +++ b/doc/en/html/macro/command/getipv6addr.html @@ -14,11 +14,11 @@

    getipv6addr

    -Retrieves local IPv6 address(es) +Retrieves local IPv6 address(es). (version 4.78 or later)

    -getipv6addr <string array> <num>
    +getipv6addr <string array> <intvar>
     

    Parameters

    @@ -27,7 +27,7 @@

    Parameters

    Array <string array>
    IP addresses are stored in the string array.
    -
    Integer variable <num>
    +
    Integer variable <intvar>
    IP address counts. If the IP address is none, it is set to 0.
    diff --git a/doc/en/html/macro/command/getmodemstatus.html b/doc/en/html/macro/command/getmodemstatus.html index 893d7b552..bad1e49c5 100644 --- a/doc/en/html/macro/command/getmodemstatus.html +++ b/doc/en/html/macro/command/getmodemstatus.html @@ -14,7 +14,7 @@

    getmodemstatus

    -Retrieves the modem control-register values. +Retrieves the modem control-register values. (version 4.86 or later)

    diff --git a/doc/en/html/macro/command/getpassword.html b/doc/en/html/macro/command/getpassword.html
    index fb43cbcf0..f64335e40 100644
    --- a/doc/en/html/macro/command/getpassword.html
    +++ b/doc/en/html/macro/command/getpassword.html
    @@ -20,9 +20,30 @@ 

    getpassword

    Format

    -getpassword <filename> <password name> <strvar>
    +getpassword <filename> <password name> <password var>
     
    +

    Parameters

    + +
    +
    string <filename>
    +
    Password file name.
    + +
    string <password name>
    +
    Password identifier.
    + +
    string variable <password var>
    +
    Variable to store the password.
    +
    + +

    Return Value

    + +
    +
    System variable <result> (version 4.71 or later)
    +
    When the password file can not be written, it is set to 0.
    + Otherwise, it is set to 1.
    +
    +

    Remarks

    @@ -41,15 +62,10 @@

    Remarks

    Each of them is identified by the password identifier.

    -

    -(version 4.71 or later)
    -When the password file can not be written, the system variable "result" is set to 0. Otherwise, "result" is set to 1. -

    -

    Example

    -getpassword 'password.dat' 'mypassword' password
    +getpassword 'password.dat' 'foo' password
     connect 'myhost'
     wait 'login:'
     sendln 'myname'
    @@ -58,8 +74,8 @@ 

    Example

    -expandenv str "%USERPROFILE%\myfile.dat"
    -getpassword str 'mypassword' password
    +expandenv str "%USERPROFILE%\password.dat"
    +getpassword str 'foo' password
     if !result then
     	messagebox 'Password was not saved' 'ERROR'
     endif
    @@ -67,8 +83,10 @@ 

    Example

    See also

    - - + + diff --git a/doc/en/html/macro/command/getpassword2.html b/doc/en/html/macro/command/getpassword2.html new file mode 100644 index 000000000..bfebad7da --- /dev/null +++ b/doc/en/html/macro/command/getpassword2.html @@ -0,0 +1,96 @@ + + + + + getpassword2 + + + + + + + +

    getpassword2

    + +

    +Reads a password. (version 5.3 or later) +

    + +

    Format

    + +
    +getpassword2 <filename> <password name> <password var> <encrypt str>
    +
    + +

    Parameters

    + +
    +
    string <filename>
    +
    Password file name.
    + +
    string <password name>
    +
    Password identifier.
    + +
    string variable <password var>
    +
    Variable to store the password.
    + +
    string <encrypt str>
    +
    Password for decrypt <password>.
    +
    + +

    Return Value

    + +
    +
    System variable <result>
    +
    When the password file can not be written, it is set to 0.
    + Otherwise, it is set to 1.
    +
    + +

    Remarks

    + +

    +Retrieves an encrypted password identified by <password name> from the password file <filename>.
    +The password is decrypted using <encrypt str> and stored in the string variable <password var>.
    +The same string specified in getpassword2 or setpassword2 command must be specified in <encrypt str>. +

    + +

    +If the specified file does not exist, it is newly created.
    +If the specified password is not stored in the file, the password dialog box appears and the entered password is stored in <password var>.
    +At the same time, the new password is encrypted and written in the file with the identifier <password name>. +

    + +

    +A password file can contain multiple passwords.
    +Each of them is identified by the password identifier. +

    + +

    Example

    + +
    +getpassword2 'password2.dat' 'foo' password 'Sesame!'
    +connect 'myhost'
    +wait 'login:'
    +sendln 'myname'
    +wait 'password:'
    +sendln password
    +
    + +
    +expandenv str "%USERPROFILE%\password2.dat"
    +getpassword2 str 'foo' password 'Sesame!'
    +if !result then
    +	messagebox 'Password was not saved' 'ERROR'
    +endif
    +
    + +

    See also

    + + + + diff --git a/doc/en/html/macro/command/getspecialfolder.html b/doc/en/html/macro/command/getspecialfolder.html index 93dd5ec0c..33af49141 100644 --- a/doc/en/html/macro/command/getspecialfolder.html +++ b/doc/en/html/macro/command/getspecialfolder.html @@ -14,7 +14,7 @@

    getspecialfolder

    -Retrieves the path of a special folder. +Retrieves the path of a special folder. (version 4.72 or later)

    Format

    @@ -103,7 +103,7 @@

    Parameters

    directory that serves as a common repository for document templates - cf. CSIDL(MSDN library) + cf. CSIDL(MSDN library) diff --git a/doc/en/html/macro/command/gettime.html b/doc/en/html/macro/command/gettime.html index 85dd53396..ff54b2b30 100644 --- a/doc/en/html/macro/command/gettime.html +++ b/doc/en/html/macro/command/gettime.html @@ -25,7 +25,7 @@

    Remarks

    Returns the current time in the string variable <strvar>, with the default format "HH:MM:SS". -The user can specify the format same as strftime. And also, the default format equals "%H:%M:%S" at the <format> argument. +The user can specify the format same as strftime. And also, the default format equals "%H:%M:%S" at the <format> argument.

    @@ -93,7 +93,7 @@

    Example

    See also

    diff --git a/doc/en/html/macro/command/getttdir.html b/doc/en/html/macro/command/getttdir.html index 6b4e0e794..18d0d4b5e 100644 --- a/doc/en/html/macro/command/getttdir.html +++ b/doc/en/html/macro/command/getttdir.html @@ -14,7 +14,7 @@

    getttdir

    -Gets the current working directory for ttpmacro.exe. +Gets the current working directory for ttpmacro.exe. (version 4.60 or later)

    diff --git a/doc/en/html/macro/command/getttpos.html b/doc/en/html/macro/command/getttpos.html
    new file mode 100644
    index 000000000..44597ff1e
    --- /dev/null
    +++ b/doc/en/html/macro/command/getttpos.html
    @@ -0,0 +1,108 @@
    +
    +
    +
    +  
    +  getttpos
    +  
    +  
    +
    +
    +
    +
    +
    +

    getttpos

    + +

    +Retrieve the display status, position, and size of the VT window in Tera Term. (version 5.3 or later) +

    + +

    Format

    + +
    +getttpos <showflag> <window x> <window y> <window width> <window height> <client x> <client y> <client width> <client height>
    +
    + +

    Parameters

    + +
    +
    Integer variable <showflag>
    +
    The display status of the VT window is stored.
    + 0 : Normal
    + 1 : Minimized (Iconified)
    + 2 : Maximized
    + 3 : Hidden
    + +
    Integer variable <window x>
    +
    The X coordinate of the top-left corner of the window area is stored.
    + +
    Integer variable <window y>
    +
    The Y coordinate of the top-left corner of the window area is stored.
    + +
    Integer variable <window width>
    +
    The width of the window area is stored.
    + +
    Integer variable <window height>
    +
    The height of the window area is stored.
    + +
    Integer variable <client x>
    +
    The X coordinate of the top-left corner of the client area is stored.
    + +
    Integer variable <client y>
    +
    The Y coordinate of the top-left corner of the client area is stored.
    + +
    Integer variable <client width>
    +
    The width of the client area is stored.
    + +
    Integer variable <client height>
    +
    The height of the client area is stored.
    + + +
    + +

    Return Value

    + +
    +
    System variable <result>
    +
    If the information retrieval is successful, the value 0 is stored.
    + If it fails, the value -1 is stored.
    +
    + +

    Remarks

    + +

    +The units for coordinates, width, and height are pixels.
    +The origin (0,0) refers to the top-left corner of the main display (primary display).
    +The window area refers to the entire application window, while the client area refers to the text display area excluding the title bar, menu bar, frame etc from the window area.
    +If the VT window is in a minimized or hidden state, the stored values for coordinates, width, and height are incorrect.
    +If the MACRO is not linked to Tera Term, it will result in a macro error and the execution of the macro will be temporarily paused. +

    + +

    Example

    + +
    +testlink
    +if result > 0 then
    +  :start
    +  getttpos showflag w_x w_y w_width w_height c_x c_y c_width c_height
    +  if showflag != 3 then
    +    if showflag = 1 then
    +      showtt 1
    +      goto start
    +    endif
    +    setdlgpos c_x c_y
    +    sprintf2 str 'x=%d, y=%d, width=%d, height=%d' c_x c_y c_width c_height
    +    messagebox str 'Client Area'
    +  endif
    +endif
    +
    + +

    See also

    + + + + diff --git a/doc/en/html/macro/command/getver.html b/doc/en/html/macro/command/getver.html index 02fe3d122..6a4d6f99d 100644 --- a/doc/en/html/macro/command/getver.html +++ b/doc/en/html/macro/command/getver.html @@ -14,7 +14,7 @@

    getver

    -Get the version of Tera Term. +Get the version of Tera Term. (version 4.58 or later)

    diff --git a/doc/en/html/macro/command/ifdefined.html b/doc/en/html/macro/command/ifdefined.html
    index deb8fbdb4..5e241cb4d 100644
    --- a/doc/en/html/macro/command/ifdefined.html
    +++ b/doc/en/html/macro/command/ifdefined.html
    @@ -14,7 +14,7 @@
     

    ifdefined

    -Checks the type. +Checks the type. (version 4.46 or later)

    diff --git a/doc/en/html/macro/command/index.html b/doc/en/html/macro/command/index.html
    index 12c9525a4..19b10905d 100644
    --- a/doc/en/html/macro/command/index.html
    +++ b/doc/en/html/macro/command/index.html
    @@ -34,6 +34,7 @@ 

    Communication commands

  • gethostname (version 4.61 or later)
  • getmodemstatus (version 4.86 or later)
  • gettitle +
  • getttpos (version 5.3 or later)
  • kmtfinish
  • kmtget
  • kmtrecv @@ -54,6 +55,7 @@

    Communication commands

  • scprecv (version 4.57 or later)
  • scpsend (version 4.57 or later)
  • send +
  • sendbinary (version 5.3 or later)
  • sendbreak
  • sendbroadcast (version 4.62 or later)
  • sendfile @@ -61,6 +63,7 @@

    Communication commands

  • sendln
  • sendlnbroadcast (version 4.62 or later)
  • sendlnmulticast (version 4.96 or later) +
  • sendtext (version 5.3 or later)
  • sendmulticast (version 4.62 or later)
  • setbaud (version 4.58 or later)
  • setdebug (version 4.64 or later) @@ -80,7 +83,7 @@

    Communication commands

  • waitevent
  • waitln
  • waitn (version 4.62 or later) -
  • waitrecv +
  • waitrecv
  • waitregex (version 4.21 or later)
  • xmodemrecv
  • xmodemsend @@ -180,10 +183,14 @@

    File operation commands

    Password commands

    diff --git a/doc/en/html/macro/command/inputbox.html b/doc/en/html/macro/command/inputbox.html index e0b86f8ab..88dbdc762 100644 --- a/doc/en/html/macro/command/inputbox.html +++ b/doc/en/html/macro/command/inputbox.html @@ -74,7 +74,11 @@

    Example

    See also

    diff --git a/doc/en/html/macro/command/intdim.html b/doc/en/html/macro/command/intdim.html index 525db4bbd..9e9f4d184 100644 --- a/doc/en/html/macro/command/intdim.html +++ b/doc/en/html/macro/command/intdim.html @@ -14,7 +14,7 @@

    intdim

    -Declare integer array variable. +Declare integer array variable. (version 4.72 or later)

    @@ -95,12 +95,12 @@ 

    Example

    ; sieve of Eratosthenes ; ; Example of execution result -; 3 5 7 11 13 17 19 23 29 31 37 41 43 47 53 59 61 [18 primes] +; 3 5 7 11 13 17 19 23 29 31 37 41 43 47 53 59 61 [17 primes] ; N = 30 intdim flag N+1 -count = 1 +count = 0 for i 0 N flag[i] = 1 next diff --git a/doc/en/html/macro/command/ispassword.html b/doc/en/html/macro/command/ispassword.html index c139fdc55..be44049d8 100644 --- a/doc/en/html/macro/command/ispassword.html +++ b/doc/en/html/macro/command/ispassword.html @@ -14,7 +14,7 @@

    ispassword

    -Determines if a password is stored. +Determines if a password is stored. (version 4.75 or later)

    Format

    @@ -23,25 +23,39 @@

    Format

    ispassword <filename> <password name>
    +

    Parameters

    + +
    +
    string <filename>
    +
    Password file name.
    + +
    string <password name>
    +
    Password identifier.
    +
    + +

    Return Value

    + +
    +
    System variable <result>
    +
    When a password identified by <password name> exists in the password file, it is set to 1.
    + Otherwise, it is set to 0.
    +
    +

    Remarks

    A password identified by <password name> from the password file <filename> is determined if the password is stored in the file.

    -

    -When a password identified by <password name> exists in the password file, the system variable "result" is set to 1. Otherwise, "result" is set to 0. -

    -

    Example

     strdim pw 2
    -username = 'yutaka'
    +username = 'foo'
     
    -ispassword 'pw.dat' username ; result: 0=false; 1=true
    +ispassword 'password.dat' username ; result: 0=false; 1=true
     if result = 1 then
    -  getpassword 'pw.dat' username pw[0]
    +  getpassword 'password.dat' username pw[0]
       pw[1] = pw[0]
     else
       msg = 'What is your password for '
    @@ -50,14 +64,15 @@ 

    Example

    passwordbox msg 'Enter your password' pw[0] = inputstr pw[1] = pw[0] - setpassword 'pw.dat' username pw[0] + setpassword 'password.dat' username pw[0] endif

    See also

    diff --git a/doc/en/html/macro/command/ispassword2.html b/doc/en/html/macro/command/ispassword2.html new file mode 100644 index 000000000..18e33ebe6 --- /dev/null +++ b/doc/en/html/macro/command/ispassword2.html @@ -0,0 +1,80 @@ + + + + + ispassword2 + + + + + + + +

    ispassword2

    + +

    +Checks whether the password is stored. (version 5.3 or later) +

    + +

    Format

    + +
    +ispassword2 <filename> <password name>
    +
    + +

    Parameters

    + +
    +
    string <filename>
    +
    Password file name.
    + +
    string <password name>
    +
    Password identifier.
    +
    + +

    Return Value

    + +
    +
    System variable <result>
    +
    When a password identified by <password name> exists in the password file, it is set to 1.
    + Otherwise, it is set to 0.
    +
    + +

    Remarks

    + +

    +Checks whether the password identified by <password name> exists in the password file <filename> created by the setpassword2 or getpassword2 command. +

    + +

    Example

    + +
    +strdim pw 2
    +username = 'foo'
    +encryptstr = 'Sesame!'
    +
    +ispassword2 'password2.dat' username ; result: 0=false; 1=true
    +if result = 1 then
    +  getpassword2 'password2.dat' username pw[0] encryptstr
    +  pw[1] = pw[0]
    +else
    +  msg = 'What is your password for '
    +  strconcat msg username
    +  strconcat msg '?'
    +  passwordbox msg 'Enter your password'
    +  pw[0] = inputstr
    +  pw[1] = pw[0]
    +  setpassword2 'password2.dat' username pw[0] encryptstr
    +endif
    +
    + +

    See also

    + + + + diff --git a/doc/en/html/macro/command/listbox.html b/doc/en/html/macro/command/listbox.html index 54cf607de..cbc7ff2e1 100644 --- a/doc/en/html/macro/command/listbox.html +++ b/doc/en/html/macro/command/listbox.html @@ -14,27 +14,47 @@

    listbox

    -Displays a list box, and ask an item to user. +Displays a dialog box with a list box, and ask an item to user. (version 4.78 or later) +

    -listbox <message> <title> <string array> [<selected>]
    +listbox <message> <title> <string array> [<selected>] [<keyword parameter>...]
     

    Parameters

    string <message>
    -
    It is displayed in the list box.
    - +
    It is displayed in the dialog box.
    +
    string <title>
    -
    It is displayed as the list box title.
    - +
    It is displayed as the dialog box title.
    +
    array <string array>
    It is displayed as the list box items.
    integer <selected> (version 4.89 or later)
    -
    It is selected first item by specifying the zero-based index of the array. This argument is optional.
    +
    It is selected first item by specifying the zero-based index of the array. This argument is optional. When this option is omitted, no item is selected.
    + +

    keyword parameters : optional, multiple allowed, random order
    +
    +
    string 'dblclick=on' (default=off) (version 5.3 or later)
    +
    Enable item selection by double-clicking.
    + +
    string 'minmaxbutton=on' (default=off) (version 5.3 or later)
    +
    Enable Minimize/Maximize button.
    + +
    string 'minimize=on' (default=off) (version 5.3 or later)
    +
    Display in minimized state.
    + +
    string 'maximize=on' (default=off) (version 5.3 or later)
    +
    Display in maximized state.
    + +
    string 'listboxsize=WxH' (default=26x6) (version 5.3 or later)
    +
    Specify the size of the list box. W:width (horizontal character count), H:height (vertical character count).
    + Example 'listboxsize=60x20' (for 60 characters horizontally and 20 characters vertically)
    +

    Return Value

    @@ -43,21 +63,20 @@

    Return Value

    System variable <result>
    If the user selects one of items, it is set to from 0 to N-1.
    If the user cancels, it is set to -1.
    -

    Remarks

    -The listbox macro command shows all selected items of the <string array> array.
    -If the <string array> is defined as bigger entries than selected numbers as follows, +The listbox macro command shows all selected items of the <string array> array.
    +If the <string array> is defined as bigger entries than selected numbers as follows, the empty string will be shown at last.

     strdim msg 4
    -msg[0] = 'Banana' 
    -msg[1] = 'Apple' 
    +msg[0] = 'Banana'
    +msg[1] = 'Apple'
     msg[2] = 'Orange'
     listbox 'Select your favorite food.' 'Confirmation' msg
     
    @@ -70,17 +89,16 @@ 

    Remarks

    (version 4.89 or later)
    -When the <selected> parameter is specified, an item of the list box can be selected at first.
    +When the <selected> parameter is specified, an item of the list box can be selected at first.
    If the parameter is omitted, the default value is 0.

    -

    Example

     strdim msg 3
    -msg[0] = 'Banana' 
    -msg[1] = 'Apple' 
    +msg[0] = 'Banana'
    +msg[1] = 'Apple'
     msg[2] = 'Orange'
     listbox 'Select your favorite food.' 'Confirmation' msg
     sprintf2 var "%d" result
    @@ -94,8 +112,8 @@ 

    Example

     strdim msg 7
    -msg[0] = 'Sunny' 
    -msg[1] = 'Cloudy' 
    +msg[0] = 'Sunny'
    +msg[1] = 'Cloudy'
     msg[2] = 'Rainy'
     msg[3] = 'Windy'
     msg[4] = 'Snowy'
    @@ -107,8 +125,33 @@ 

    Example

    messagebox var "result"
    +
    +strdim msg 9
    +selected = 0
    +msg[0] = "listbox msg[selected] title msg selected 'listboxsize=70x10'"
    +msg[1] = "listbox msg[selected] title msg selected 'listboxsize=70x10' 'dblclick=on'"
    +msg[2] = "listbox msg[selected] title msg selected 'listboxsize=70x10' 'minmaxbutton=on'"
    +msg[3] = "listbox msg[selected] title msg selected 'listboxsize=70x10' 'minimize=on'"
    +msg[4] = "listbox msg[selected] title msg selected 'listboxsize=70x10' 'maximize=on'"
    +msg[5] = "listbox msg[selected] title msg selected 'listboxsize=70x10' 'minmaxbutton=on' 'dblclick=on'"
    +msg[6] = "listbox msg[selected] title msg selected 'listboxsize=100x5'"
    +msg[7] = "listbox msg[selected] title msg selected 'listboxsize=10x20'"
    +msg[8] = "listbox msg[selected] title msg selected"
    +:select
    +sprintf2 title 'selected = %d' selected
    +execcmnd msg[selected]
    +selected=result
    +if selected = -1 then
    +  exit
    +endif
    +goto select
    +
    +

    See also

    diff --git a/doc/en/html/macro/command/logautoclosemode.html b/doc/en/html/macro/command/logautoclosemode.html index 174a0630e..9dec96d7f 100644 --- a/doc/en/html/macro/command/logautoclosemode.html +++ b/doc/en/html/macro/command/logautoclosemode.html @@ -14,7 +14,7 @@

    logautoclosemode

    -Closes a log file automatically when macro ends. +Closes a log file automatically when macro ends. (version 4.79 or later)

    diff --git a/doc/en/html/macro/command/loginfo.html b/doc/en/html/macro/command/loginfo.html
    index 544ffcfe9..d43b992ae 100644
    --- a/doc/en/html/macro/command/loginfo.html
    +++ b/doc/en/html/macro/command/loginfo.html
    @@ -14,7 +14,7 @@
     

    loginfo

    -Retrieves Tera Term log status. +Retrieves Tera Term log status. (version 4.73 or later)

    diff --git a/doc/en/html/macro/command/logopen.html b/doc/en/html/macro/command/logopen.html
    index 9a541136b..cb27953ad 100644
    --- a/doc/en/html/macro/command/logopen.html
    +++ b/doc/en/html/macro/command/logopen.html
    @@ -59,7 +59,7 @@ 

    Remarks

    - diff --git a/doc/en/html/macro/command/logrotate.html b/doc/en/html/macro/command/logrotate.html index a66d4229e..1a0cd4213 100644 --- a/doc/en/html/macro/command/logrotate.html +++ b/doc/en/html/macro/command/logrotate.html @@ -14,7 +14,7 @@

    logrotate

    -Rotates a log file. +Rotates a log file. (version 4.78 or later)

    diff --git a/doc/en/html/macro/command/messagebox.html b/doc/en/html/macro/command/messagebox.html
    index d11c41368..d8d5ec61c 100644
    --- a/doc/en/html/macro/command/messagebox.html
    +++ b/doc/en/html/macro/command/messagebox.html
    @@ -74,6 +74,8 @@ 

    Example

    See also

    diff --git a/doc/en/html/macro/command/mpause.html b/doc/en/html/macro/command/mpause.html index 485500b4b..9b1f3fa13 100644 --- a/doc/en/html/macro/command/mpause.html +++ b/doc/en/html/macro/command/mpause.html @@ -14,7 +14,7 @@

    mpause

    -Pauses. +Pauses. (version 4.27 or later)

    diff --git a/doc/en/html/macro/command/passwordbox.html b/doc/en/html/macro/command/passwordbox.html
    index 1be2baab9..8da6cd1cf 100644
    --- a/doc/en/html/macro/command/passwordbox.html
    +++ b/doc/en/html/macro/command/passwordbox.html
    @@ -75,7 +75,11 @@ 

    Example

    See also

    diff --git a/doc/en/html/macro/command/random.html b/doc/en/html/macro/command/random.html index dfc7824ea..b5aa6898e 100644 --- a/doc/en/html/macro/command/random.html +++ b/doc/en/html/macro/command/random.html @@ -14,7 +14,7 @@

    random

    -Generates random number. +Generates random number. (version 4.27 or later)

    diff --git a/doc/en/html/macro/command/regexoption.html b/doc/en/html/macro/command/regexoption.html
    index 9cc1fd9fb..2d3141572 100644
    --- a/doc/en/html/macro/command/regexoption.html
    +++ b/doc/en/html/macro/command/regexoption.html
    @@ -14,7 +14,7 @@
     

    regexoption

    -Specifies the syntax, character encoding and option of regular expression. +Specifies the syntax, character encoding and option of regular expression. (version 4.78 or later)

    @@ -28,8 +28,19 @@ 

    Remarks

    -The option1 [option2 ...] can specify one of below syntaxes or encodings, some options.
    -These default value are the Syntax:SYNTAX_RUBY, the Encoding: ENCODING_ASCII and the Option: OPTION_NONE. +The option1 [option2 ...] can specify one of below syntaxes or encodings, some options. +

    + +

    +default value +

    +
    Syntax:
    +
    SYNTAX_RUBY
    +
    Encoding:
    +
    ENCODING_UTF8
    (ENCODING_ASCII less than version 5.0)
    +
    Options:
    +
    OPTION_NONE
    +

    valueMeaning + Meaning
    @@ -308,13 +319,13 @@

    Example

    string="test string" pattern="" -regexoption "IGNORECASE" +regexoption "OPTION_NONE" strmatch string pattern -messagebox result "ASCII" ; result -> 0 (Not Match) +messagebox result "OPTION_NONE" ; result -> 0 (Not Match) -regexoption "ISO_8859_1" "IGNORECASE" +regexoption "IGNORECASE" strmatch string pattern -messagebox result "ISO_8859_1" ; result -> 6 (Match) +messagebox result "IGNORECASE" ; result -> 6 (Match)
    diff --git a/doc/en/html/macro/command/rotateleft.html b/doc/en/html/macro/command/rotateleft.html
    index d09c023f3..5ba98a537 100644
    --- a/doc/en/html/macro/command/rotateleft.html
    +++ b/doc/en/html/macro/command/rotateleft.html
    @@ -14,7 +14,7 @@
     

    rotateleft

    -Rotates (circular shifts) to left. +Rotates (circular shifts) to left. (version 4.54 or later)

    diff --git a/doc/en/html/macro/command/rotateright.html b/doc/en/html/macro/command/rotateright.html
    index 7baae134a..74358fbd0 100644
    --- a/doc/en/html/macro/command/rotateright.html
    +++ b/doc/en/html/macro/command/rotateright.html
    @@ -14,7 +14,7 @@
     

    rotateright

    -Rotates (circular shifts) to right. +Rotates (circular shifts) to right. (version 4.54 or later)

    diff --git a/doc/en/html/macro/command/scprecv.html b/doc/en/html/macro/command/scprecv.html
    index 6c5f0285a..4e893897e 100644
    --- a/doc/en/html/macro/command/scprecv.html
    +++ b/doc/en/html/macro/command/scprecv.html
    @@ -14,7 +14,7 @@
     

    scprecv

    -Receives a file from the remote host with the SCP protocol. +Receives a file from the remote host with the SCP protocol. (version 4.57 or later)

    diff --git a/doc/en/html/macro/command/scpsend.html b/doc/en/html/macro/command/scpsend.html
    index 57a2cda98..5b38db090 100644
    --- a/doc/en/html/macro/command/scpsend.html
    +++ b/doc/en/html/macro/command/scpsend.html
    @@ -14,7 +14,7 @@
     

    scpsend

    -Sends a file from the host with the SCP protocol. +Sends a file from the host with the SCP protocol. (version 4.57 or later)

    diff --git a/doc/en/html/macro/command/send.html b/doc/en/html/macro/command/send.html
    index 018446320..89220b046 100644
    --- a/doc/en/html/macro/command/send.html
    +++ b/doc/en/html/macro/command/send.html
    @@ -29,6 +29,10 @@ 

    Remarks

    If <data> is an integer, its lowest-order byte (0-255) is regarded as an ASCII code of the character, and the character is sent to the host.

    +

    + The datas are checked, and when data is judged to be text, data is sent in same as "sendtext"; when data is judged to be binary, data is sent in same as "sendbinary". +

    +

    Example

    @@ -73,6 +77,8 @@ 

    Example

    See also

    diff --git a/doc/en/html/macro/command/sendbinary.html b/doc/en/html/macro/command/sendbinary.html new file mode 100644 index 000000000..2b220d053 --- /dev/null +++ b/doc/en/html/macro/command/sendbinary.html @@ -0,0 +1,45 @@ + + + + + sendbinary + + + + + + + +

    sendbinary

    + +

    +Sends binary data. (version 5.3 or lator) +

    + +
    +sendbinary <data1> <data2>....
    +
    + +

    Remarks

    + +

    +Causes Tera Term to send characters to the host.
    +If <data> is a string, the string is sent to the host.
    +If <data> is an integer, its lowest-order byte (0-255) is regarded as an ASCII code of the character, and the character is sent to the host. +

    + +

    + Data sent by ttpmacro.exe is received by ttermpro.exe and sent as is. Character encoding of the string type is UTF-8, strings are sent in UTF-8. Use gsendtexth to convert character code. +

    + +

    See also

    + + + + diff --git a/doc/en/html/macro/command/sendbroadcast.html b/doc/en/html/macro/command/sendbroadcast.html index 0aa4cefa3..279d321b8 100644 --- a/doc/en/html/macro/command/sendbroadcast.html +++ b/doc/en/html/macro/command/sendbroadcast.html @@ -14,7 +14,7 @@

    sendbroadcast

    -Broadcasts the data. +Broadcasts the data. (version 4.62 or later)

    diff --git a/doc/en/html/macro/command/sendkcode.html b/doc/en/html/macro/command/sendkcode.html
    index 240c9889e..6dd549242 100644
    --- a/doc/en/html/macro/command/sendkcode.html
    +++ b/doc/en/html/macro/command/sendkcode.html
    @@ -30,7 +30,7 @@ 

    Remarks

    Usually the function means sending a character string to the host. The function can be defined in the keyboard setup file of Tera Term.
    -See KEYCODE.TXT. +See Keyboard setup file.

    Example

    diff --git a/doc/en/html/macro/command/sendlnbroadcast.html b/doc/en/html/macro/command/sendlnbroadcast.html index 772e0fcdb..6624ce403 100644 --- a/doc/en/html/macro/command/sendlnbroadcast.html +++ b/doc/en/html/macro/command/sendlnbroadcast.html @@ -14,7 +14,7 @@

    sendlnbroadcast

    -Broadcasts the data. +Broadcasts the data. (version 4.62 or later)

    diff --git a/doc/en/html/macro/command/sendlnmulticast.html b/doc/en/html/macro/command/sendlnmulticast.html
    index 5300b8b45..1b9891afa 100644
    --- a/doc/en/html/macro/command/sendlnmulticast.html
    +++ b/doc/en/html/macro/command/sendlnmulticast.html
    @@ -14,7 +14,7 @@
     

    sendlnmulticast

    -Multicast the data with new-line. +Multicast the data with new-line. (version 4.96 or later)

    diff --git a/doc/en/html/macro/command/sendmulticast.html b/doc/en/html/macro/command/sendmulticast.html
    index 3b025e066..72c3b1e9b 100644
    --- a/doc/en/html/macro/command/sendmulticast.html
    +++ b/doc/en/html/macro/command/sendmulticast.html
    @@ -14,7 +14,7 @@
     

    sendmulticast

    -Sends the data to the multicast host. +Sends the data to the multicast host. (version 4.62 or later)

    diff --git a/doc/en/html/macro/command/sendtext.html b/doc/en/html/macro/command/sendtext.html
    new file mode 100644
    index 000000000..f78714000
    --- /dev/null
    +++ b/doc/en/html/macro/command/sendtext.html
    @@ -0,0 +1,44 @@
    +
    +
    +
    +  
    +  sendtext
    +  
    +  
    +
    +
    +
    +
    +
    +

    sendtext

    + +

    +Sends text data. (Version 5.3 or lator) +

    + +
    +sendtext <data1> <data2>....
    +
    + +

    Remarks

    + +

    +Causes Tera Term to send characters to the host.
    +If <data> is a string, the string is sent to the host.
    +If <data> is an integer, its lowest-order byte (0-255) is regarded as an ASCII code of the character, and the character is sent to the host. +

    + +

    + String sent by ttpmacro.exe is received by ttermpro.exe, converted to character code and sent. Use "sendbinary" to send without conversion. +

    + +

    See also

    + + + + diff --git a/doc/en/html/macro/command/setbaud.html b/doc/en/html/macro/command/setbaud.html index dd1542971..555ac6963 100644 --- a/doc/en/html/macro/command/setbaud.html +++ b/doc/en/html/macro/command/setbaud.html @@ -14,7 +14,7 @@

    setbaud

    -Causes Tera Term to change speed of serial port. +Causes Tera Term to change speed of serial port. (version 4.58 or later)

    diff --git a/doc/en/html/macro/command/setdebug.html b/doc/en/html/macro/command/setdebug.html
    index d68f820a5..7e974287b 100644
    --- a/doc/en/html/macro/command/setdebug.html
    +++ b/doc/en/html/macro/command/setdebug.html
    @@ -14,7 +14,7 @@
     

    setdebug

    -Configures the debug mode to Tera Term. +Configures the debug mode to Tera Term. (version 4.64 or later)

    diff --git a/doc/en/html/macro/command/setdir.html b/doc/en/html/macro/command/setdir.html
    index cc613f987..b2e4e98e9 100644
    --- a/doc/en/html/macro/command/setdir.html
    +++ b/doc/en/html/macro/command/setdir.html
    @@ -28,8 +28,6 @@ 

    Remarks

    -Note: the changedir command changes the current directory for Tera Term.
    -File names specified for the communication commands (e.g. kmtsend) are based on the current directory for Tera Term.
    File names specified for other commands (e.g. fileopen) are based on the current directory for MACRO.

    @@ -39,5 +37,10 @@

    Example

    setdir 'c:\'
    +

    See also

    + + diff --git a/doc/en/html/macro/command/setdlgpos.html b/doc/en/html/macro/command/setdlgpos.html index 1ed56f880..e9c85e3bc 100644 --- a/doc/en/html/macro/command/setdlgpos.html +++ b/doc/en/html/macro/command/setdlgpos.html @@ -18,15 +18,17 @@

    setdlgpos

    -setdlgpos <x> <y>
    +setdlgpos [<x> <y>]
     

    Remarks

    -Changes the initial position for dialog boxes opened by the "inputbox", "messagebox", "passwordbox", "statusbox" and "listbox" commands. If the status dialog box is displayed, the "setdlgpos" command also moves the dialog box.
    + Changes the initial position for dialog boxes opened by the "inputbox", "listbox", "messagebox", "passwordbox", "statusbox", "yesnobox" commands and error dialogbox. If the status dialog box is displayed, the "setdlgpos" command also moves the dialog box.
    +Set dialog box position to default in main(primary) display when no argument is given. (version 4.105 or later)
    <x> and <y> specify the position (x,y) in the screen coordinate.
    -The origin (0,0) is upper left corner of the screen. +The origin (0,0) is upper left corner of the screen(primary display).
    +Move into display, if dialog box position is outside display. (version 4.105 or later)

    Example

    diff --git a/doc/en/html/macro/command/setdtr.html b/doc/en/html/macro/command/setdtr.html index 31624cfd4..85bae11c1 100644 --- a/doc/en/html/macro/command/setdtr.html +++ b/doc/en/html/macro/command/setdtr.html @@ -14,7 +14,7 @@

    setdtr

    -Changes the DTR(Data Terminal Ready) status of Tera Term. +Changes the DTR(Data Terminal Ready) status of Tera Term. (version 4.59 or later)

    diff --git a/doc/en/html/macro/command/setenv.html b/doc/en/html/macro/command/setenv.html
    index 83fbaa298..7db891480 100644
    --- a/doc/en/html/macro/command/setenv.html
    +++ b/doc/en/html/macro/command/setenv.html
    @@ -14,7 +14,7 @@
     

    setenv

    -Sets an environment variable. +Sets an environment variable. (version 4.54 or later)

    Format

    diff --git a/doc/en/html/macro/command/setfileattr.html b/doc/en/html/macro/command/setfileattr.html index 8867e16f2..0a69aad73 100644 --- a/doc/en/html/macro/command/setfileattr.html +++ b/doc/en/html/macro/command/setfileattr.html @@ -14,7 +14,7 @@

    setfileattr

    -Sets attributes of a file or directory. +Sets attributes of a file or directory. (version 4.69 or later)

    @@ -92,8 +92,8 @@ 

    Example

    See also

    diff --git a/doc/en/html/macro/command/setflowctrl.html b/doc/en/html/macro/command/setflowctrl.html index de4934400..141b5db2c 100644 --- a/doc/en/html/macro/command/setflowctrl.html +++ b/doc/en/html/macro/command/setflowctrl.html @@ -14,7 +14,7 @@

    setflowctrl

    -Causes Tera Term to change flow control. +Causes Tera Term to change flow control. (version 4.94 or later)

    @@ -38,12 +38,16 @@ 

    Parameters

    - + + + + +
    2hardwarehardware(RTS/CTS)
    3 none
    4hardware(DSR/DTR) (version 4.105 or later)
    diff --git a/doc/en/html/macro/command/setmulticastname.html b/doc/en/html/macro/command/setmulticastname.html index 7b645ddad..7329b7c99 100644 --- a/doc/en/html/macro/command/setmulticastname.html +++ b/doc/en/html/macro/command/setmulticastname.html @@ -14,7 +14,7 @@

    setmulticastname

    -Configures a name of terminal identification for the multicast transmission. +Configures a name of terminal identification for the multicast transmission. (version 4.62 or later)

    diff --git a/doc/en/html/macro/command/setpassword.html b/doc/en/html/macro/command/setpassword.html
    index c90c400a5..c0e450899 100644
    --- a/doc/en/html/macro/command/setpassword.html
    +++ b/doc/en/html/macro/command/setpassword.html
    @@ -14,20 +14,41 @@
     

    setpassword

    -Adds or Overwrites a password. +Adds or Overwrites a password. (version 4.75 or later)

    Format

    -setpassword <filename> <password name> <strvar>
    +setpassword <filename> <password name> <password>
     
    +

    Parameters

    + +
    +
    string <filename>
    +
    Password file name.
    + +
    string <password name>
    +
    Password identifier.
    + +
    string <password>
    +
    Password to be saved.
    +
    + +

    Return Value

    + +
    +
    System variable <result>
    +
    When the password file can not be written, it is set to 0.
    + Otherwise, it is set to 1.
    +
    +

    Remarks

    A password identified by <password name> from the password file <filename> is updated.
    -The string variable <strvar> 's password is encrypted and stored into the file. +<password> is encrypted and stored into the file.

    @@ -39,15 +60,11 @@

    Remarks

    Each of them is identified by the password identifier.

    -

    -When the password file can not be written, the system variable "result" is set to 0. Otherwise, "result" is set to 1. -

    -

    Example

    -newpasswd = 'hoge'
    -setpassword 'password.dat' 'yutaka' newpasswd
    +newpasswd = 'bar'
    +setpassword 'password.dat' 'foo' newpasswd
     if result then
       messagebox 'Password updated successfully.' 'Result'
     endif
    @@ -57,7 +74,8 @@ 

    See also

    - - + + diff --git a/doc/en/html/macro/command/setpassword2.html b/doc/en/html/macro/command/setpassword2.html new file mode 100644 index 000000000..bc86e66c4 --- /dev/null +++ b/doc/en/html/macro/command/setpassword2.html @@ -0,0 +1,86 @@ + + + + + setpassword2 + + + + + + + +

    setpassword2

    + +

    +Adds or Overwrites a password. (version 5.3 or later) +

    + +

    Format

    + +
    +setpassword2 <filename> <password name> <password> <encrypt str>
    +
    + +

    Parameters

    + +
    +
    string <filename>
    +
    Password file name.
    + +
    string <password name>
    +
    Password identifier.
    + +
    string <password>
    +
    Password to be saved.
    + +
    string <encrypt str>
    +
    Password for encrypt <password>.
    +
    + +

    Return Value

    + +
    +
    System variable <result>
    +
    When the password file can not be written, it is set to 0.
    + Otherwise, it is set to 1.
    +
    + +

    Remarks

    + +

    +A password identified by <password name> from the password file <filename> is updated.
    +<password> is encrypted with aes-256-ctr using the string <encrypt str> and saved to the file.
    +Since <password> is encrypted with <encrypt str>, the risk of password leakage to a third party who does not know <encrypt str> is reduced. +

    + +

    +If the specified file does not exist, it is newly created.
    +

    + +

    +A password file can contain multiple passwords.
    +Each of them is identified by the password identifier.
    +It is not compatible with password files created with the setpassword or getpassword commands. +

    + +

    Example

    + +
    +newpasswd = 'bar'
    +setpassword2 'password2.dat' 'foo' newpasswd 'Sesame!'
    +if result then
    +  messagebox 'Password updated successfully.' 'Result'
    +endif
    +
    + +

    See also

    + + + + diff --git a/doc/en/html/macro/command/setrts.html b/doc/en/html/macro/command/setrts.html index 896af595d..e6532b66f 100644 --- a/doc/en/html/macro/command/setrts.html +++ b/doc/en/html/macro/command/setrts.html @@ -14,7 +14,7 @@

    setrts

    -Changes the RTS(Request To Send) status of Tera Term. +Changes the RTS(Request To Send) status of Tera Term. (version 4.59 or later)

    diff --git a/doc/en/html/macro/command/setspeed.html b/doc/en/html/macro/command/setspeed.html
    index 75ddce5ef..9a8e84bd4 100644
    --- a/doc/en/html/macro/command/setspeed.html
    +++ b/doc/en/html/macro/command/setspeed.html
    @@ -14,7 +14,7 @@
     

    setspeed

    -Causes Tera Term to change speed of serial port. +Causes Tera Term to change speed of serial port. (version 4.99 or later)

    diff --git a/doc/en/html/macro/command/sprintf.html b/doc/en/html/macro/command/sprintf.html
    index 259e350d6..35305ca63 100644
    --- a/doc/en/html/macro/command/sprintf.html
    +++ b/doc/en/html/macro/command/sprintf.html
    @@ -14,7 +14,7 @@
     

    sprintf

    -Returns formatted output. +Returns formatted output. (version 4.52 or later)

    diff --git a/doc/en/html/macro/command/sprintf2.html b/doc/en/html/macro/command/sprintf2.html
    index 299735947..2b25769cc 100644
    --- a/doc/en/html/macro/command/sprintf2.html
    +++ b/doc/en/html/macro/command/sprintf2.html
    @@ -14,7 +14,7 @@
     

    sprintf2

    -Returns formatted output. +Returns formatted output. (version 4.62 or later)

    diff --git a/doc/en/html/macro/command/statusbox.html b/doc/en/html/macro/command/statusbox.html
    index 1a71db4f7..201014794 100644
    --- a/doc/en/html/macro/command/statusbox.html
    +++ b/doc/en/html/macro/command/statusbox.html
    @@ -106,6 +106,7 @@ 

    See also

  • strspecial
  • closesbox
  • bringupbox
  • +
  • setdlgpos
  • diff --git a/doc/en/html/macro/command/strdim.html b/doc/en/html/macro/command/strdim.html index 491eb1b7d..a4c3211eb 100644 --- a/doc/en/html/macro/command/strdim.html +++ b/doc/en/html/macro/command/strdim.html @@ -14,7 +14,7 @@

    strdim

    -Declare string array variable. +Declare string array variable. (version 4.72 or later)

    diff --git a/doc/en/html/macro/command/strinsert.html b/doc/en/html/macro/command/strinsert.html
    index 9f7f9ebaf..e16bc4859 100644
    --- a/doc/en/html/macro/command/strinsert.html
    +++ b/doc/en/html/macro/command/strinsert.html
    @@ -14,7 +14,7 @@
     

    strinsert

    -Inserts a string. +Inserts a string. (version 4.67 or later)

    Format

    diff --git a/doc/en/html/macro/command/strjoin.html b/doc/en/html/macro/command/strjoin.html index 91cf6892a..3456b73d2 100644 --- a/doc/en/html/macro/command/strjoin.html +++ b/doc/en/html/macro/command/strjoin.html @@ -14,7 +14,7 @@

    strjoin

    -Concatenates a string with delimiters. +Concatenates a string with delimiters. (version 4.67 or later)

    Format

    diff --git a/doc/en/html/macro/command/strmatch.html b/doc/en/html/macro/command/strmatch.html index f552213fa..0cd6561ad 100644 --- a/doc/en/html/macro/command/strmatch.html +++ b/doc/en/html/macro/command/strmatch.html @@ -14,7 +14,7 @@

    strmatch

    -Matches the target string with the regular expression. +Matches the target string with the regular expression. (version 4.59 or later)

    Format

    diff --git a/doc/en/html/macro/command/strremove.html b/doc/en/html/macro/command/strremove.html index 301706dfc..9b0aa908f 100644 --- a/doc/en/html/macro/command/strremove.html +++ b/doc/en/html/macro/command/strremove.html @@ -14,7 +14,7 @@

    strremove

    -Deletes a string. +Deletes a string. (version 4.67 or later)

    Format

    diff --git a/doc/en/html/macro/command/strreplace.html b/doc/en/html/macro/command/strreplace.html index cffe569b0..1fd8233e3 100644 --- a/doc/en/html/macro/command/strreplace.html +++ b/doc/en/html/macro/command/strreplace.html @@ -14,7 +14,7 @@

    strreplace

    -Replaces a string, with another string. +Replaces a string, with another string. (version 4.67 or later)

    Format

    diff --git a/doc/en/html/macro/command/strspecial.html b/doc/en/html/macro/command/strspecial.html index 19fd0d416..113684175 100644 --- a/doc/en/html/macro/command/strspecial.html +++ b/doc/en/html/macro/command/strspecial.html @@ -14,7 +14,7 @@

    strspecial

    -Converts special characters. +Converts special characters. (version 4.67 or later)

    Format

    diff --git a/doc/en/html/macro/command/strsplit.html b/doc/en/html/macro/command/strsplit.html index 24be13ec7..157fb857d 100644 --- a/doc/en/html/macro/command/strsplit.html +++ b/doc/en/html/macro/command/strsplit.html @@ -14,7 +14,7 @@

    strsplit

    -Splits a string by delimiters. +Splits a string by delimiters. (version 4.67 or later)

    Format

    diff --git a/doc/en/html/macro/command/strtrim.html b/doc/en/html/macro/command/strtrim.html index 936eeb727..0a61acb1d 100644 --- a/doc/en/html/macro/command/strtrim.html +++ b/doc/en/html/macro/command/strtrim.html @@ -14,7 +14,7 @@

    strtrim

    -Trims characters from beginning and end of string. +Trims characters from beginning and end of string. (version 4.67 or later)

    Format

    diff --git a/doc/en/html/macro/command/tolower.html b/doc/en/html/macro/command/tolower.html index f376833a8..72584876a 100644 --- a/doc/en/html/macro/command/tolower.html +++ b/doc/en/html/macro/command/tolower.html @@ -14,7 +14,7 @@

    tolower

    -Converts all of alphabetic characters to lower-case. +Converts all of alphabetic characters to lower-case. (version 4.53 or later)

    diff --git a/doc/en/html/macro/command/toupper.html b/doc/en/html/macro/command/toupper.html
    index ee6ab368a..fa6a08a8a 100644
    --- a/doc/en/html/macro/command/toupper.html
    +++ b/doc/en/html/macro/command/toupper.html
    @@ -14,7 +14,7 @@
     

    toupper

    -Converts all of alphabetic characters to upper-case. +Converts all of alphabetic characters to upper-case. (version 4.53 or later)

    diff --git a/doc/en/html/macro/command/until.html b/doc/en/html/macro/command/until.html
    index 4f2c9e503..94f1d5ee4 100644
    --- a/doc/en/html/macro/command/until.html
    +++ b/doc/en/html/macro/command/until.html
    @@ -14,7 +14,7 @@
     

    until, enduntil

    -Repeats. +Repeats. (version 4.56 or later)

    diff --git a/doc/en/html/macro/command/uptime.html b/doc/en/html/macro/command/uptime.html
    index 004c73dc0..94df65479 100644
    --- a/doc/en/html/macro/command/uptime.html
    +++ b/doc/en/html/macro/command/uptime.html
    @@ -14,7 +14,7 @@
     

    uptime

    -Gets System Up Time. +Gets System Up Time. (version 4.81 or later)

    diff --git a/doc/en/html/macro/command/var2clipb.html b/doc/en/html/macro/command/var2clipb.html
    index f9d81db4d..3c7e4d096 100644
    --- a/doc/en/html/macro/command/var2clipb.html
    +++ b/doc/en/html/macro/command/var2clipb.html
    @@ -14,7 +14,7 @@
     

    var2clipb

    -Copies the text data to clipboard. +Copies the text data to clipboard. (version 4.46 or later)

    diff --git a/doc/en/html/macro/command/wait4all.html b/doc/en/html/macro/command/wait4all.html
    index 4edd9c186..cd286b680 100644
    --- a/doc/en/html/macro/command/wait4all.html
    +++ b/doc/en/html/macro/command/wait4all.html
    @@ -14,7 +14,7 @@
     

    wait4all

    -Waits string for all macro linked terminals. +Waits string for all macro linked terminals. (version 4.63 or later)

    diff --git a/doc/en/html/macro/command/waitn.html b/doc/en/html/macro/command/waitn.html
    index 592fdfa37..fbfade00f 100644
    --- a/doc/en/html/macro/command/waitn.html
    +++ b/doc/en/html/macro/command/waitn.html
    @@ -14,7 +14,7 @@
     

    waitn

    -Waits for the given number of bytes to be put into TeraTerm macro received buffer. +Waits for the given number of bytes to be put into TeraTerm macro received buffer. (version 4.62 or later)

    diff --git a/doc/en/html/macro/command/waitregex.html b/doc/en/html/macro/command/waitregex.html
    index 3deaba488..4ce79f6fc 100644
    --- a/doc/en/html/macro/command/waitregex.html
    +++ b/doc/en/html/macro/command/waitregex.html
    @@ -14,7 +14,7 @@
     

    waitregex

    -Waits a line that contains string with regular expression. +Waits a line that contains string with regular expression. (version 4.21 or later)

    diff --git a/doc/en/html/macro/command/yesnobox.html b/doc/en/html/macro/command/yesnobox.html
    index 56957ad70..b2b09b212 100644
    --- a/doc/en/html/macro/command/yesnobox.html
    +++ b/doc/en/html/macro/command/yesnobox.html
    @@ -74,6 +74,10 @@ 

    Example

    See also

    diff --git a/doc/en/html/macro/command/ymodemrecv.html b/doc/en/html/macro/command/ymodemrecv.html index 20fba0aa6..49dc274ea 100644 --- a/doc/en/html/macro/command/ymodemrecv.html +++ b/doc/en/html/macro/command/ymodemrecv.html @@ -14,7 +14,7 @@

    ymodemrecv

    -Receives a file from the host with the YMODEM protocol. +Receives a file from the host with the YMODEM protocol. (version 4.66 or later)

    diff --git a/doc/en/html/macro/command/ymodemsend.html b/doc/en/html/macro/command/ymodemsend.html
    index 2b608ca50..db7a6c09c 100644
    --- a/doc/en/html/macro/command/ymodemsend.html
    +++ b/doc/en/html/macro/command/ymodemsend.html
    @@ -14,7 +14,7 @@
     

    ymodemsend

    -Sends a file from the host with the YMODEM protocol. +Sends a file from the host with the YMODEM protocol. (version 4.66 or later)

    diff --git a/doc/en/html/macro/commandline.html b/doc/en/html/macro/commandline.html
    index 5e5415417..657a87abd 100644
    --- a/doc/en/html/macro/commandline.html
    +++ b/doc/en/html/macro/commandline.html
    @@ -28,8 +28,9 @@ 

    Options

    <macro file>
    Macro filename.
    - If this value is not a full path, it is understood as a relative path from ttpmacro.exe.
    - The filename(path excluded) is stored in the system variable "param1" and "params[1]". + If this value is not a full path, it is understood as a relative path from current folder.
    + The filename(path excluded) is stored in the system variable "param1" and "params[1]".
    + When macro file is not specified or is "*", ttpmacro open dialog to select ttl file.
    <parameters>
    diff --git a/doc/en/html/macro/index.html b/doc/en/html/macro/index.html index 10c0a6c01..0825eb583 100644 --- a/doc/en/html/macro/index.html +++ b/doc/en/html/macro/index.html @@ -13,7 +13,7 @@

    MACRO for Tera Term

    Copyright (C) 1994-1998 T. Teranishi
    -(C) 2004-2016 TeraTerm Project
    +(C) 2004-2024 TeraTerm Project
    All Rights Reserved.

    diff --git a/doc/en/html/macro/syntax/file.html b/doc/en/html/macro/syntax/file.html index bdddb9f91..1da6a1b33 100644 --- a/doc/en/html/macro/syntax/file.html +++ b/doc/en/html/macro/syntax/file.html @@ -19,7 +19,7 @@

    Encoding

    The TTL file was processed as ANSI CodePage in previous version.

    -

    Supporting encoding

    +

    1) Supporting encoding

    @@ -60,7 +60,7 @@

    Supporting encoding

    -

    Encoding determination

    +

    2) Encoding determination

    Tera Term determines the encoding as follows. diff --git a/doc/en/html/macro/syntax/formats.html b/doc/en/html/macro/syntax/formats.html index 9fd39249c..677dba0a7 100644 --- a/doc/en/html/macro/syntax/formats.html +++ b/doc/en/html/macro/syntax/formats.html @@ -34,7 +34,7 @@

    1) Integer-type constants

    2) String-type constants

    -There are two ways of expressing a string-type constant.

    +There are two ways of expressing a string-type constant.

    diff --git a/doc/en/html/macro/syntax/identifiers.html b/doc/en/html/macro/syntax/identifiers.html index e2c0c5f9e..f839e0412 100644 --- a/doc/en/html/macro/syntax/identifiers.html +++ b/doc/en/html/macro/syntax/identifiers.html @@ -11,10 +11,10 @@

    Identifiers and reserved words

    -

    Variable identifiers

    +

    1) Variable identifiers

    -The first character must be an alphabetic (A-Z, a-z) or an underscore character "_". Subsequent characters can be alphabetic, underscore or numeric (0-9). Variable identifiers are not case-sensitive. The maximum length is 32. +The first character must be an alphabetic (A-Z, a-z) or an underscore character "_". Subsequent characters can be alphabetic, underscore or numeric (0-9). Variable identifiers are not case-sensitive. The maximum length is 31.

    @@ -23,10 +23,10 @@ 

    Variable identifiers

    _flag
    -

    Label identifiers

    +

    2) Label identifiers

    -Label identifiers consist of alphabetic, underscore or numeric characters, and are not case-sensitive. The maximum length is 32. +Label identifiers consist of alphabetic, underscore or numeric characters, and are not case-sensitive. The maximum length is 31.

    @@ -35,7 +35,7 @@ 

    Label identifiers

    100
    -

    Reserved words

    +

    3) Reserved words

    The following words are reserved: diff --git a/doc/en/html/macro/syntax/index.html b/doc/en/html/macro/syntax/index.html index 50e337300..5f0e1c32b 100644 --- a/doc/en/html/macro/syntax/index.html +++ b/doc/en/html/macro/syntax/index.html @@ -23,6 +23,7 @@

    Tera Term Language (TTL)

  • Variables
  • Expressions and operators
  • Line formats
  • +
  • Parameter formats
  • diff --git a/doc/en/html/macro/syntax/parameter.html b/doc/en/html/macro/syntax/parameter.html new file mode 100644 index 000000000..1e8e82bb6 --- /dev/null +++ b/doc/en/html/macro/syntax/parameter.html @@ -0,0 +1,68 @@ + + + + +Parameter formats + + + + + +

    Parameter formats

    + +There are three parameter formats.
    +Which format can be used depends on the TTL command, So please check the command reference. + +

    1) Positional parameter

    + +

    +Specify the parameters in order.
    +Parameters not explicitly listed as "Keyword parameter" in the command reference are "Positional parameter". +

    + +
    +:
    +  ttlcommand 10 20
    +  1st : width
    +  2nd : height
    +
    + +

    2) Keyword parameter

    + +

    +Passing keyword/value pairs as parameter.
    +Parameter can be passed in any order. +

    + +
    +:
    +  ttlcommand 'width=10' 'height=20'
    +  width keyword  : width
    +  height keyword : height
    +
    + +

    3) Positional parameter + Keyword parameter

    + +

    +The first few are "Positional parameter", the rest are "Keyword parameter".
    +"Positional parameter" order is fixed, "Keyword parameter" is in no particular order. +

    + +
    +:
    +  ttlcommand 'Terminal' 'green' 'width=10' 'height=20'
    +  1st            : font
    +  2nd            : color
    +  width keyword  : width
    +  height keyword : height
    +
    + +

    Background

    + +

    +"Keyword parameters" was introduced in Tera Term version 5.3 when the listbox command enhance to pass many parameters, and besides, to minimize the number of parameters to be specified. +

    + + + diff --git a/doc/en/html/macro/syntax/types.html b/doc/en/html/macro/syntax/types.html index 0c4b57e1e..311723a18 100644 --- a/doc/en/html/macro/syntax/types.html +++ b/doc/en/html/macro/syntax/types.html @@ -15,32 +15,30 @@

    Types

    TTL have four kinds of data types:

    -

    Integer

    +

    1) Integer

    Signed 32 bit, from -2147483648 to 2147483647.
    Floating point operation is not supported.

    -

    Character string

    +

    2) Character string

    A sequence containing any character except NUL. The maximum length of a string is 511.
    - +Since character encoding of string literals and macro commands is UTF-8, character encoding of string variables is also naturally UTF-8.

    -

    Integer Array

    +

    3) Integer Array

    The integer array can be used by using the intdim macro command. The maximum index is 65536.
    -The element of the array equals to the integer.
    -The maximum number of the array is 256. +The element of the array equals to the integer.

    -

    String Array

    +

    4) String Array

    The string array can be used by using the strdim macro command. The maximum index is 65536.
    -The element of the array equals to the string.
    -The maximum number of the array is 256. +The element of the array equals to the string.

    diff --git a/doc/en/html/macro/syntax/variables.html b/doc/en/html/macro/syntax/variables.html index 65c60b03a..dc7eed328 100644 --- a/doc/en/html/macro/syntax/variables.html +++ b/doc/en/html/macro/syntax/variables.html @@ -87,58 +87,85 @@

    Variables

    0 bplusrecv, bplussend, + checksum8file, + checksum16file, + checksum32file, + clipb2var, connect, + crc16file, + crc32file, cygconnect, - kmtfinish, - kmtget, - kmtrecv, - kmtsend, - logopen, - quickvanrecv, - quickvansend, - recvln, - testlink, - wait, - waitevent, - waitln, - waitn, - waitrecv, - waitregex, - xmodemrecv, - xmodemsend, - zmodemrecv, - zmodemsend, - sprintf, - str2int, - strcompare, - strlen, - strmatch, - strscan, + dirnamebox, + exec, fileconcat, filecopy, filecreate, filedelete, + filelock, + filenamebox, fileread, filereadln, filerename, filesearch, + filestat, filestrseek, filestrseek2, + filetruncate, + fileunlock, findfirst, findnext, - clipb2var, - crc32file, getdate, + getfileattr, + getipv4addr, + getipv6addr, + getmodemstatus, + getpassword, + getspecialfolder, gettime, + getttdir, getver, ifdefined, - var2clipb, - yesnobox, - getfileattr, - setfileattr, + ispassword, + kmtfinish, + kmtget, + kmtrecv, + kmtsend, + listbox, + loginfo, + logopen, + quickvanrecv, + quickvansend, + recvln, foldercreate, folderdelete, - foldersearch + foldersearch, + setfileattr, + setpassword, + sprintf, + sprintf2, + str2int, + strcompare, + strlen, + strmatch, + strreplace, + strscan, + strsplit, + testlink, + var2clipb, + wait, + wait4all, + waitevent, + waitln, + waitn, + waitrecv, + waitregex, + xmodemrecv, + xmodemsend, + yesnobox, + ymodemrecv, + ymodemsend, + zmodemrecv, + zmodemsend timeout diff --git a/doc/en/html/menu/control-broadcast.html b/doc/en/html/menu/control-broadcast.html index e6e772d06..527df3fab 100644 --- a/doc/en/html/menu/control-broadcast.html +++ b/doc/en/html/menu/control-broadcast.html @@ -10,54 +10,64 @@

    Broadcast command([Control] Menu)

    - +

    If "Realtime mode" is off

    - +
    Command input control
    Input the command to be sent to each window.
    - +
    Enter key
    - Choose an option whether new line is added or not after the transmission of the control command specified in above. A New line code can be chosen from the list of "CRLF", "CR", "LF". + Choose an option whether new line is added or not after the transmission of the command specified in above. A New line code can be chosen from the list of "CRLF", "CR", "LF".
    - +
    Submit
    Transmit the command. If "AcceptBroadcast" of the window is effective, the command will be received.
    - +
    History
    Choose an option whether to save the history of transmitted commands. A maximum number of history to be saved can be specified by "MaxBroadcatHistory" .
    - +
    Send to this process only
    - If this option is chosen, the command will be transmitted only to the Tera Term window where "Broadcast command" dialog is specified. + If this option is chosen, the command will be transmitted only to the Tera Term window where the "Broadcast command" dialog is invoked regardless of the selection status in the window list.
    - -
    Windows List
    + +
    Window List
    - Choose the windows where the commands will be transmitted. + List of Tera Term windows. + Choose the windows by left click where the commands will be transmitted. + Right-click on the list to operate on the selected windows or to refresh the list.
    +
    - - + +

    If "Realtime mode" is on

    - +
    Command input control
    Keys entered with this control focused will be transmitted to the windows that are chosen in the following window list. The command will be received by the window where "AcceptBroadcast" is even disabled. + However, Alt-V and Alt-R will work as paste in the Tera Term window where the "Broadcast command" dialog is invoked. + Use Shift-INS to send the clipboard contents to the window selected in the window list. + You can also send the clipboard contents to a selected window by right- or middle-clicking the mouse on this control. + Settings such as "DisablePasteMouseRButton", "DisablePasteMouseMButton", and "ConfirmChangePaste" affect when the clipboard contents are sent.
    - -
    Windows List
    + +
    Window List
    - Choose the windows where the commands will be transmitted. + List of Tera Term windows. + Choose the windows by left click where the commands will be transmitted. + Right-click on the list to operate on the selected windows or to refresh the list.
    +
    diff --git a/doc/en/html/menu/control.html b/doc/en/html/menu/control.html index 0b233a024..76e653ac5 100644 --- a/doc/en/html/menu/control.html +++ b/doc/en/html/menu/control.html @@ -16,6 +16,11 @@

    [Control] menu

    Resets various terminal modes. +
    Reset remote title
    +
    + Reset remote title. +
    +
    Are you there
    Sends a AYT (Are You There) telnet signal. Usually, the host diff --git a/doc/en/html/menu/file-chdir.html b/doc/en/html/menu/file-chdir.html index 0aa06332c..cb2e5a2cd 100644 --- a/doc/en/html/menu/file-chdir.html +++ b/doc/en/html/menu/file-chdir.html @@ -11,12 +11,7 @@

    Change directory ([File] menu)

    - Changes the current directory for file transfers. -

    - -

    "Change directory" dialog box

    -

    - Enter a new directory name. + Open General tab of Additional settings dialog.

    diff --git a/doc/en/html/menu/file-log.html b/doc/en/html/menu/file-log.html index 060687da4..3d5a222e9 100644 --- a/doc/en/html/menu/file-log.html +++ b/doc/en/html/menu/file-log.html @@ -11,21 +11,28 @@

    Log ([File] menu)

    - Logs received characters to a file. + Logs received characters to a file.
    + Default values can be set in + [Setup] Menu / Additional settings / "Log" Tab

    "Log" dialog box (to input the log file name)

    File Name
    - Enter or select the log file name. + Enter or select the log file name.
    + Or drop file in this dialog.
    + When relative path is specified, Terminal log folder is used.
    + When this dialog opens, file name is set based on the following settings and behaviors. +
    -
    Binary
    +
    New / Overwrite
    - If you select this option, received characters are written without - any modifications. Otherwise, new-line codes are converted and - escape sequences are stripped out. + New or Overwrite file.
    Append
    @@ -35,26 +42,32 @@

    "Log" dialog box (to input the log file name)

    overwritten.
    -
    Plain text
    +
    Text
    - If you select this option, ASCII non-printable characters are not written.
    - NOTE: When the Binary option is enabled, this option can not be checked and the value will be disabled. + Output text file.
    -
    Hide dialog
    +
    BOM
    - If you select this option, "Log" dialog box is not displayed. + Output BOM (Byte Oder Mark) at beginning of log file.
    -
    Include screen buffer
    +
    UTF-8/UTF-16LE/UTF-16BE
    - If you select this option, the logging starts after current all buffer is written into a log file. + Select character code to output. +
    + +
    Plain text
    +
    + If you select this option, ASCII non-printable characters are not written.
    + NOTE: When the Binary option is enabled, this option can not be checked and the value will be disabled.
    Timestamp
    If you select this option, a timestamp is added on top of each log line. The timestamp is added when the first character of the line appears.
    The timestamp type can be selected from following. +
    Local Time
    @@ -82,6 +95,23 @@

    "Log" dialog box (to input the log file name)

    +
    Binary
    +
    + If you select this option, received characters are written without + any modifications. Otherwise, new-line codes are converted and + escape sequences are stripped out. +
    + +
    Hide dialog
    +
    + If you select this option, "Log" dialog box is not displayed. +
    + +
    Include screen buffer
    +
    + If you select this option, the logging starts after current all buffer is written into a log file. +
    +

    "Log" dialog box (displayed while logging)

    Close
    diff --git a/doc/en/html/menu/file-new.html b/doc/en/html/menu/file-new.html index e2b2be5db..b910c699a 100644 --- a/doc/en/html/menu/file-new.html +++ b/doc/en/html/menu/file-new.html @@ -23,8 +23,8 @@

    TCP/IP

    Enter the host name or IP address(IPv4 and IPv6) or named pipe, or select one from the host list. To edit the host list, use the - [Setup] TCP/IP command.
    - The IPv6 address is surround with the bracket. (Refer to RFC3986 / RFC5952)
    + [Setup] Additional setting "TCP/IP" tab Edit History or select "< Edit History... >" in list.
    + The IPv6 address is surround with the bracket. (Refer to RFC3986 / RFC5952)
    You can enter not only the host name or address, but also the command line parameters like the following:
    @@ -41,23 +41,80 @@

    TCP/IP

    ssh://user@myhost.example.com SSH connection to the SSH protocol(ssh://) \\.\pipe\vmware-serial-port Named pipe connection
    - + This edit control can support the Ctrl+a(Home key), Ctrl+e(End key), Ctrl+b(left-arrow), Ctrl+f(right-arrow), Ctrl+n(down-arrow), Ctrl+p(up-arrow), Ctrl+d(delete the character at point), Ctrl+k(kill the text from point to the end of the line) and Ctrl+u(kill backward from point to the beginning of the line). +
    History
    +
    + Displayed when TTSSH is enabled.
    + This option is select, the entered hostname will be added to the top of the host list when connecting to the input host. + This checkbox uses function of History in the [Setup] menu. +
    +
    Telnet
    - Enables the telnet protocol. Usually, you should select this - option. + Enables the telnet protocol. +
    + +
    SSH
    +
    + Default selected option. Displayed when TTSSH is enabled.
    + Enables the SSH protocol. +
    + +
    Other
    +
    + Displayed when TTSSH is enabled.
    + Enables other protocol from except telnet and SSH.
    TCP port#
    - Normally, you should use the TCP port number 23 for the telnet - protocol. + Specify the port number according to the selected service.
    + The default is as follows.
    + + + + + + + + + + + + + + + + + + + + + + + + + +
    ServiceTCP port#etc.
    Telnet23well-known ports
    SSH22well-known ports
    Displayed when TTSSH is enabled.
    Other(Optional)Displayed when TTSSH is enabled.
    +
    + +
    SSH version
    +
    + Displayed when TTSSH is enabled.
    + Uses for connection by selected from version ssh1 or ssh2.
    - +
    IP version
    +
    + Selects as an IP version from AUTO or IPv6 or IPv4.
    + The AUTO try to connect to the IP address associated with the hostname.
    + Either IPv6 or IPv4 using depends on the OS setting(priority of IP version). +
    + +

    Note:
    Only if <telnet flag> is on and <TCP port#> is 23, @@ -75,7 +132,7 @@

    Serial

    Port
    - Select a port from the list. + Select a port from the list. By default, maximum serial port number in the list is 256. Also, the serial port does not show when there is no available port. It is configurable in MaxComPort setting.
    diff --git a/doc/en/html/menu/file-sendfile.html b/doc/en/html/menu/file-sendfile.html index 7a826eb43..3a4f6cd89 100644 --- a/doc/en/html/menu/file-sendfile.html +++ b/doc/en/html/menu/file-sendfile.html @@ -18,7 +18,23 @@

    "Send file" dialog box (to input the file name)

    File Name
    - Enter or select the file name of an existing file. + Enter or select a filename to be sent.
    + By dropping a file into dialog, You can also enter file name. +
    + +
    Send in same way as Tera Term 4
    +
    +
    +
    Checked(same way as Tera Term 4)
    +
    + Send while reading from a file.
    + Textfile is read as ACP encoding and is not automatically determined. +
    +
    Unchecked
    +
    + File is read into memory and then sent.
    + Encoding of text files is automatically determined. +
    Binary
    @@ -27,8 +43,110 @@

    "Send file" dialog box (to input the file name)

    modifications. Otherwise, new-line codes are converted and control characters (except TAB, LF and CR) are stripped out. + +
    delay type
    +
    +
    +
    no delay
    +
    + Without delay processing +
    + +
    per character
    +
    + Delay processing for each character +
    + +
    per line
    +
    + Delay processing for each line. +
    + +
    per sendsize
    +
    + Delay processing for each specified transmission size. +
    +
    + +
    + +
    send size
    +
    + Send size (valid when delay type is "per sendsize") +
    + +
    delay time(ms)
    +
    + Delay time (valid when delay type is not "no delay") +
    +
    + +

    Send size

    + +

    + Considering receiver's receive buffer size and processing speed, + by inserting a delay for each specified send size, + file send can be performed more efficiently than by inserting a delay for each character or each line. +

    + +

    + Dropping of transmitted data may occur at following part. +

    + +
    +                     s1            s2                 s3                s4                         program
    +Tera Term ---> Send buffer  ---> Windows ---> (sshd,telnet,pipe) ---> OS,driver      ---> pty + shell, other program
    +               in Tera Term                   (serial          )      UART chip,ext       Embedded programs, etc.
    +
    +               receive bufer <--         <---                    <---                <---
    +                     r1            r2                 r3                r4
    +    
    + +
    +
    s1 Sned buffer in Tera Term
    +
    + It is unlikely to drop.
    + Data is sended while watching free size of send buffer. +
    +
    s2 Windows
    +
    + It is unlikely to drop.
    + Depending on hardware and driver version, various problems may occur, including BSoD.
    + You can see details of driver in Tera Term serial port settings. +
    +
    s3 transmission path
    +
    + In serial, there is no resend process with error. If error occurs in data, data is dropped.
    + For TCP/IP, pipe, it is unlikely to drop. +
    +
    s4 OS,UART chip(receiver)
    +
    + Receiving data beyond processing capacity of PC (CPU) (when PROGRAM does not pick up received data from OS or chip) or other causes, + Receive buffer of OS (driver) or UART chip are overflows and data is dropped.
    + OS (driver) or program handles flow control depends on implementation.
    + In TCP/IP, flow control and resend on error are performed, and in most cases, + protocol stack in OS handles these processes.
    + In serial, user can decide whether flow control is used or not, and resend are not automatically performed in case of overflow or other errors. +
    +
    program
    +
    + Dropped due to receive buffer overflow, etc. in program.
    + When receive buffer is about to overflow in pseudo terminal(pty), 0x07(BEL) is sent and Tera Term will ring bell. +
    + Receive buffer size of main UART chips and drivers +
    +      8250 UART                 no FIFO
    +      16550 UART                16 Byte FIFO
    +      FT232R                    256 Byte receive buffer
    +      TTY drive(Linux 2.6.26)   4KB  (SSH Design and Implementation in TTSSH)
    +
    + +

    + If echo of sent data is not returned, it is possible that received data has been dropped somewhere. +

    +

    "Send file" dialog box (displayed while sending)

    Close
    diff --git a/doc/en/html/menu/file-transfer-bplus-send.html b/doc/en/html/menu/file-transfer-bplus-send.html index d202c4bae..8042f6710 100644 --- a/doc/en/html/menu/file-transfer-bplus-send.html +++ b/doc/en/html/menu/file-transfer-bplus-send.html @@ -21,7 +21,7 @@

    "B-Plus Send" dialog box

    - Tips on B-Plus + Tips on B-Plus

    diff --git a/doc/en/html/menu/file-transfer-bplus.html b/doc/en/html/menu/file-transfer-bplus.html index 97f6bb0d1..ff791ec09 100644 --- a/doc/en/html/menu/file-transfer-bplus.html +++ b/doc/en/html/menu/file-transfer-bplus.html @@ -1,4 +1,4 @@ - @@ -29,7 +29,7 @@

    B-Plus ([File] Transfer menu)

    - Tips on B-Plus + Tips on B-Plus

    diff --git a/doc/en/html/menu/file-transfer-xmodem-recv.html b/doc/en/html/menu/file-transfer-xmodem-recv.html index 3adda3f2d..70b9658b4 100644 --- a/doc/en/html/menu/file-transfer-xmodem-recv.html +++ b/doc/en/html/menu/file-transfer-xmodem-recv.html @@ -32,8 +32,25 @@

    Option

    Binary
    - The binary file transfer option. If you want to receive a text file, - don't select this option. +
      +
    • + Checkd: Received data is treated as binary and saved in a file without modification.
      + The last received packet is packed with padding(EOF,$1A). + For this reason, the end of file cannot be known when the end of the sent file is $1A. +
    • +
    • Unchecked: Received data is treated as text and saved in a file.
      + following processes are performed: +
        +
      • + Newline code conversion
        + A single CR($0D) or LF($0A) is converted to CR+LF($0D+$0A). +
      • +
      • + Remove padding(EOF,$0A) of each reciving packet
        + EOF($1A) does not appear in the text. So $1A at the end of the file will be removed. +
      • +
      +
    diff --git a/doc/en/html/menu/file.html b/doc/en/html/menu/file.html index d8e89cec5..3cea363a2 100644 --- a/doc/en/html/menu/file.html +++ b/doc/en/html/menu/file.html @@ -27,6 +27,11 @@

    [File] menu

    Logs received characters to a file. +
    Pause Logging
    +
    + Pause logging. +
    +
    Comment to Log...
    Adds comment to the log file. @@ -43,6 +48,11 @@

    [File] menu

    Displays the log dialog.
    +
    Stop Logging
    +
    + Stop logging and closes the log file. +
    +
    Send file...
    Sends a file to the host. @@ -77,7 +87,7 @@

    [File] menu

    Disconnect
    Closes the connection. If the connection type is TCP/IP and the - Auto window close option is selected, + Auto window close option is selected, Tera Term is also closed.
    diff --git a/doc/en/html/menu/setup-additional-coding.html b/doc/en/html/menu/setup-additional-coding.html new file mode 100644 index 000000000..3b0e412f3 --- /dev/null +++ b/doc/en/html/menu/setup-additional-coding.html @@ -0,0 +1,268 @@ + + + + + Additional settings / "Encoding" tab ([Setup] menu) + + + + + +

    Additional settings / "Encoding" tab ([Setup] menu)

    + +

    Encoding

    + +
    +
    receive
    +
    + Kanji character that is received from host. +
    +
    transmit
    +
    + Kanji character that is sent from client. +
    +
    + +

    Unicode

    + +

    Ambiguous Characters width

    + + Select 1 Cell or 2 Cell.
    + Specify character width assumed by Tera Term connecting destination.
    + Refer to East_Asian_Width and width (cells).
    + Refer to Drawing resized font to fit cell width for Tera Term drawing character width. + If you change Encoding-receive by pull-down, width is changed to typical characte witdh of that code automatically. Nevertheless, that width is not absolutely recommend, you can choose the width what you want for font or other reasons. + +

    Override Emoji Characters width

    + + When checked, Overrides characters width from East_Asian_Width.
    + Refer to About Emoji width (cells). +
      +
    • Emoji with U+1F000 and above are 2Cell (full-width). +
    • Emoji less than U+1F000: +
      +
      selected 2call
      +
      2Cell(full-width)
      +
      selected 1call
      +
      1Cell(half-width)
      +
      +
    + +

    DEC Special Graphics

    + + Select display method for DEC Special Graphics + +
    +
    Mapping Unicode to DEC Special Grahpics
    +
    + Unicode is converted to DEC Special Graphic, displays with "Tera Special" font.
    + Character width of DEC Special Graphic is 1 cell (half-width).
    + Select character type to be converted. + See Mapping of Unicode to DEC special character +
    +
    Line drawing characters(U+2500-U+257F)
    +
    Punctuation, Block Elements, Shade
    +
    Middle dots(U+00B7,U+2024,U+2219)
    +
    +
    +
    Mapping DEC Special Grahpics to Unicode
    +
    + DEC Special Graphic is converted to Unicode, displays with VT Window font. + The character width displayed in Unicode differs for each character. + It changes depending on Ambiguous Characters width setting. +
    +
    + +

    Japanese JIS

    + +

    Reveive

    + +
    +
    Half-width kana
    +
    + When "HANKAKU" katakana code from host is described for 7bit + (Shift control with SO/SI is using), please select this entry. + This is only enabled when Kanji (receive) is JIS. +
    +
    + +

    Transmit

    + +
    +
    Half-width kana
    +
    + When "HANKAKU" katakana code from host is described for 7bit + (Shift control with SO/SI is using), please select this entry. + This is only enabled when Kanji (transmit) is JIS. +
    +
    Kanji-in
    +
    + The escape sequence is used when Kanji (transmit) is JIS. + (Sequence regarding Kanji character is specified to G0. + ^[$@ or ^[$B). + The escape sequence from host can use any sequence. +
    +
    Kanji-out
    +
    + The escape sequence is used when Kanji (transmit) is JIS. + (Sequence regarding ASCII and JIS Roman code is specified to G0. + ^[(B or ^[(J ). + The escape sequence from host can use any sequence. +

    + NOTICE: ^[(H can not be selected on initial setting.
    + +

    +
    +
    + +
    + +

    Unicode setting

    + +

    Charactor width (cells)

    + +

    + Character width for single-byte character code such as Latin-1 is 1 cell. +

    + +

    + Character width for double-byte character code such as Shift_JIS is 1 cell for 1-byte characters and 2 cells for 2-byte characters. +

    + +

    + In Unicode, character width of a single character changes case-by-case. +

    + + Example, "§" (section sign, section mark) +
    +| code               | character code(code point) | cell   |
    +|--------------------|----------------------------|--------|
    +| ISO8859-1(Latin-1) | 0xA7                       | 1      |
    +| Shift_JIS(CP932)   | 0x8198                     | 2      |
    +| KS5601(CP949)      | 0xA1D7                     | 2      |
    +| Big5(CP950)        | 0xA1B1                     | 2      |
    +| BG2312(CP936)      | 0xA1EC                     | 2      |
    +| Unicode            | 0xA7 (U+00A7)              | 1 or 2 |
    +
    + +

    + In a multibyte character code environment (CJK), character width should be 2 cell, and in other environments it should be 1 cell for natural use. + Type of character whose width changes are called Ambiguous. + + Refer to East_Asian_Width and width (cells) for detail. + +

    About displayed characters

    + test text in Tera Term repository can be displayed and checked. +
      +
    • Unicode (Kanji) width
      + "wget https://github.com/TeraTermProject/teraterm/raw/main/tests/unicodebuf-east_asian_width.txt -O -" +
    • Unicode Emoji width
      + "wget https://raw.githubusercontent.com/TeraTermProject/teraterm/main/tests/unicodebuf-text-emoji.txt -O -" +
    + Please note the following: +
      +
    • Font is displayed unchanged or resized.
      + See Font setting. +
    • +
    • Character width handled by Tera Term and intended by host may differ.
      + Programs, library examples +
        +
      • Text editor(vim,emacs,nano etc) +
      • viewer(more,less,lv etc) +
      • readline library linked to bash, etc. +
      • curses library linked to aptitude, etc. +
      +
    • +
    • Character to be displayed may not be stored in font file. +
        +
      • If the character to be displayed (glyph) does not exist,
        + a black dot will be drawn by OS. + Depending on the version of OS, other character may be used. +
      • Some OS versions automatically draw using other fonts.
        + This feature is called font linking. +
      +
    • +
    + +

    East_Asian_Width and width (cells)

    + +

    + Each characters are assigned East_Asian_Width property. +

    + +

    + 5 types exsit, each types are defined character width. +

    + +

    + In addition, there are two types of interpretation of character width +

      +
    1. In an East Asian context
    2. +
    3. in a non-East Asian context
    4. +
    +

    + +

    + The following table +

    + +
    +cells(2=full/1=half)
    +|              | East Asian | non-East Asian |
    +| property     | context    | context        |
    +| F(Fullwidth) | 2          | 2              |
    +| H(Halfwidth) | 1          | 1              |
    +| W(Wide)      | 2          | 2              |
    +| Na(Narrow)   | 1          | 1              |
    +| A(Ambiguous) | 2          | 1              |
    +| N(Neutral)   | 1          | 1              |
    +
    + +

    + In CJK environment, it is more natural to set the Ambiguous character width to 2Cell.
    + In addition, most Japanese fonts are designed in 2Cell. +

    + +

    + Attributes are determined based on the following data
    + http://www.unicode.org/Public/UCD/latest/ucd/EastAsianWidth.txt +

    + +

    About Emoji width (cells)

    + +

    + Emoji property is other propery from East Asian Width property. +

    + +

    + In the CJK environment, as with the East_Asian_Width property, + Characters that are 2 byte in DBCS, 2 cell is more natural. +

    + +

    + In non-CJK environments, many characters handling 1 cell is natural, because 2 cell characters did not exist in traditional character codes. + Emoji with code points U+1F000 or higher that did not exist before Unicode, so they may be handled as 2 cell characters. +

    + +

    + The following information is used to determine Emoji.
    + https://www.unicode.org/Public/UCD/latest/ucd/emoji/emoji-data.txt
    + However, code points less than U+0080 are not treated as Emoji +

    + +

    + Neutral contains Emoji, that Emoji is unnatural in Japan when rendered in 1cell. + Emoji's width can be changed to make them appear more natural. +

    + +

    Example

    +
    +
    "☺", U+263A
    +
    WHITE SMILING FACE
    +
    "❤", U+2764
    +
    HEAVY BLACK HEART
    +
    + + + diff --git a/doc/en/html/menu/setup-additional-copy-and-paste.html b/doc/en/html/menu/setup-additional-copy-and-paste.html new file mode 100644 index 000000000..d26465e1c --- /dev/null +++ b/doc/en/html/menu/setup-additional-copy-and-paste.html @@ -0,0 +1,82 @@ + + + + + Additional settings / "Copy and Paste" tab ([Setup] Menu) + + + + + +

    Additional settings / "Copy and Paste" tab ([Setup] Menu)

    + +

    "Copy and Paste" Tab

    +
    +
    Enable continued line copy
    +
    + Concatenates current line with the next line including word + characters when the whole line is stepped over.
    + This is also effective for double clicking the left button and dragging after double clicking the left button.
    + Please refer to mouse page. +
    + +
    Disable mouse R button paste
    +
    + Disables pasting clipboard data when mouse right button is clicked. +
    + +
    Confirm mouse R button paste
    +
    + Displays popup menu and confirm pasting clipboard data when mouse + right button is clicked. +
    + +
    Select only by L button
    +
    + Enable selection by mouse drag only with left button. +
    + +
    Trim trailing new line character when pasting
    +
    + Remove trailing new line character when pasting. +
    + +
    Confirm change paste
    +
    + When the Clipboard includes CR/LF, the confirmation + dialog can be shown to paste by right-click or Alt+V. + This is a foolproof way. +
    + +
    String file
    +
    + When the Clipboard includes any strings in the specified file, + the confirmation dialog can be shown to paste by right-click or Alt+V. + This is a foolproof way.
    + This function works when the ConfirmChangePaste is enabled. +
    + +
    Delimiter characters
    +
    + Includes delimiter characters for the word selection. +
    + +
    Paste delay per line
    +
    + A user can delay to send a line data to the remote host when the user pastes multiple lines. The delay time can be specified by this option on the millisecond time scale. +
    + +
    Enabling text selection when the window is activated by mouse
    +
    + When an inactive window is activated by clicking the text area with the mouse, the text selection is disabled. +
    + +
    Copy to windows clipboard when text is selected
    +
    + Automatic copy to windows clipboard when text is selected. +
    + +
    + + diff --git a/doc/en/html/menu/setup-additional-ctrlseq.html b/doc/en/html/menu/setup-additional-ctrlseq.html new file mode 100644 index 000000000..d5f0c26c0 --- /dev/null +++ b/doc/en/html/menu/setup-additional-ctrlseq.html @@ -0,0 +1,150 @@ + + + + + Additional settings / "Control Sequence" Tab ([Setup] Menu) + + + + + +

    Additional settings / "Control Sequence" Tab ([Setup] Menu)

    + +
    +
    Accept mouse event tracking
    +
    + Tera Term would send the escape sequence of the mouse operation when VT window is changed to the mouse tracking mode by the host application.
    + However, TERM environment variable should be "xterm" type. +
    + +
    Disable mouse event tracking when Control is pressed
    +
    + The mouse tracking mode is enabled, TeraTerm does not send the mouse operation while the control key is pressed. +
    + +
    Accept window title change request
    +
    + Configures whether a user accepts the window title changing. +
    +
    off
    +
    Do not accept it.
    +
    overwrite
    +
    Accept it, and then display only the window tile.
    +
    ahead
    +
    Accept it, and then insert the window title before the canonical title.
    +
    last
    +
    Accept it, and then insert the window title after the canonical title.
    +
    +
    + +
    Window title report
    +
    + A user can configure how Tera Term can respond to the dtterm window title and icon label reporting request. +
    +
    ignore
    +
    Ignore a window title reporting request.
    +
    accept
    +
    Tera Term reports the current window title. However, be careful about using this feature because the security problem will occur.
    +
    empty
    +
    Report empty string.
    +
    +
    + +
    Window control sequence
    +
    + added support for the position moving, the minimization, the maximization, the most front, the most back, the refresh and the window size changing(per pixel and character) control sequences regarding the dtterm window operation. +
    + +
    Window report sequence
    +
    + This function enables the dtterm control sequence such as the window status reporting, the window position reporting, the window size(in pixel and character) reporting and the root window size reporting, among the window information reporting features.
    + If you do not want window information to be sent to remote host by some reason such as security, please disable this setting. +
    + +
    Cursor control sequence
    +
    + Enables the control sequence for the cursor shape.
    + This function enables cursor shape change by cursor change sequence of DECSCUSR(cursor shape change), WYSTCURM(Wyse no-blinking cursor), WYULCURM(Wyse underlined cursor) and AT&T 610 blinking cursor. + +

    + If a user uses the vim editor, write below entries in the ~/.vimrc to enable this feature. +

    + +
    +set t_SI=^[[3\ q
    +set t_EI=^[[1\ q
    +NOTE: Input ^[ by using Control-V Control-[.
    +
    + + If the cursor periodically blinks after an application exits, a user should configure as follows.
    + In the ncurses 5.7 terminfo, the invisible(civis)/normal display(cnorm)/highlighting(cvvis) of the xterm cursor are as follows: + +
    +civis=\E[?25l
    +cnorm=\E[?12l\E[?25h
    +cvvis=\E[?12;25h
    +
    + + When the upper configuration is enabled, the normal cursor displays with the non-blinking mode and the emphasis cursor displays with the blinking mode. + So, the cursor does not blink when the terminfo application displays the own cursor.
    + If a user want to blink the cursor, turn off the CursorCtrlSequence entry or do in the following commands: + +
    +% infocmp xterm > xterm.ti
    +Open the xterm.ti file, change from a value of cnorm and cvvis to \E?25h.
    +% tic -o ~/.terminfo xterm.ti
    +Execute the tic command.
    +# tic xterm.ti
    +If the configuration is enabled as whole system, execute the upper command with a root user.
    +
    +
    + +
    Clipboard access from remote
    +
    + permits the host to access the clipboard. +
    +
    off
    +
    can not permit
    +
    write only
    +
    can permit a clipboard to write
    +
    read only
    +
    can permit a clipboard to read
    +
    read/write
    +
    can permit a clipboard to write and read
    +
    +
    + +
    Notify clipboard access from remote
    +
    + Notifies the access of clipboard from remote host. +
    + +
    Accept clearing scroll buffer from remote
    +
    + Enables the control sequence for clearing the scroll buffer. When enabled, the clear command clears the scroll buffer. +
    + +
    Disable print start sequence
    +
    + Disable print start by the control sequence. + (see also) +
    + +
    Bell
    +
    + Select bell(BEL, ASCII $07) behavior. +
    +
    disable
    +
    sound
    +
    Output windows default beep sound.
    +
    visiualbell
    +
    Flash screen.
    +
    + (see also) +
    + +
    + + + diff --git a/doc/en/html/menu/setup-additional-cygwin.html b/doc/en/html/menu/setup-additional-cygwin.html new file mode 100644 index 000000000..4252f72e4 --- /dev/null +++ b/doc/en/html/menu/setup-additional-cygwin.html @@ -0,0 +1,31 @@ + + + + + Additional settings / "Cygwin" Tab ([Setup] Menu) + + + + + +

    Additional settings / "Cygwin" Tab ([Setup] Menu)

    + +
    +
    Cygwin install path
    +
    + Specify the install directory of Cygwin. +
    + +
    CygTerm
    +
    + Configure CygTerm settings. Please refer to CygTerm+ setup file for details. +

    + NOTE: The cygterm.cfg file is automatically updated after configuration on version 4.88 or earlier, + however the file is not automatically updated on version 4.89 or later.
    + Please do Setup - Save Setup to update the cygterm.cfg file. +

    +
    +
    + + diff --git a/doc/en/html/menu/setup-additional-font.html b/doc/en/html/menu/setup-additional-font.html new file mode 100644 index 000000000..cfab7ab1b --- /dev/null +++ b/doc/en/html/menu/setup-additional-font.html @@ -0,0 +1,118 @@ + + + + + Additional settings / "Font" tab ([Setup] menu) + + + + + +

    Additional settings / "Font" tab ([Setup] menu)

    + +
    +
    terminal font
    +
    + Specify VTWin font. +
    +
    Unicode API
    +
    + User Unicode Draw API.
    + Normally not used. +
    + +
    ANSI API
    +
    + Use ANSI(not Unicode) Draw API.
    + Codepage needs to convert Unicode to ANSI character. + Some fonts need to use ANSI Draw API.
    + Normally not used. +
    + +
    Drawing resized font to fit cell width
    +
    + Charactor width to be displayed, such as "©"(U+00A9), + can be either 1 or 2cell, and depending on the font design (font file), + the font width can also be either 1 or 2cell.
    + Depending on the language and font, font width may not match width to display.
    + When the text is drawn to fit the cell width, looks natural, + but drawing may be slower and the font design may differ from the font developer's intent.
    + And refer to + Ambiguous Characters width, + East_Asian_Width and width (cells) + for character width assumed by Tera Term connecting destination. +
    +
    ON
    +
    + When the width to be displayed and the width of the font to be drawn are different, + text is drawn with resizing font to the cell width. +
    + +
    OFF
    +
    + Displays the design of the font file as it is. +
      +
    • When Tera Term displays as 2Cell and the font design is 1Cell, + 1Cell character and 1Cell space are drawn. +
    • When Tera Term displays as 1Cell and the font design is 2Cell, + The left half of 2Cell is drawn. +
    +
    +
    +
    + +
    Character space
    +
    + Under construction.
    + see Space between characters (lines). +
    +
    +
    + +
    Dialog font
    +
    Specify Dialog font. +
    +
    default button
    +
    + Set default font
    + SystemParametersInfo(SPI_GETNONCLIENTMETRICS) API is used to get font from Windows. +
    +
    +
    + +
    List hidden fonts in font dialog
    +
    + A feature that some fonts can be shown or not on the font list is added on Windows 7 or later. + When this setting is enabled, whole fonts can be selected on the Font setting dialog. +
    + +
    List proportional font in font dialog
    +
    + Under construction. +
    + +
    + +

    Note:

    +
      +
    • + "Tera Special" font, which is included in the distribution package, + is used for displaying DEC Special Graphics. + It can not be selected in this dialog box. +
    • +
    • + Hidden fonts specified by OS can not be shown on font list by default. + Please enable the List hidden fonts to select hidden fonts. +
    • +
    • + The font quality can be selected by using the Font quality on the Visual tab of Additional settings dialog. +
    • +
    • + When the dialog font is set to very large size and wide font, + displayed font may be corrupted, and also you may not press [ok] button because the dialog goes out of screen. +
    • +
    + + + diff --git a/doc/en/html/menu/setup-additional-general.html b/doc/en/html/menu/setup-additional-general.html new file mode 100644 index 000000000..cb290bb4e --- /dev/null +++ b/doc/en/html/menu/setup-additional-general.html @@ -0,0 +1,135 @@ + + + + + Additional settings / "General" Tab ([Setup] Menu) + + + + + +

    Additional settings / "General" Tab ([Setup] Menu)

    + +
    +
    Disable accelerator send break
    +
    + Disables accelerator key of send break. +
    + +
    Accept broadcast
    +
    + Accept the broadcast command.
    + Can be only enabled when the "Realtime mode" is off. However, this option is always ignored when the "Realtime mode" is on. +
    + +
    Auto scroll only in bottom line
    +
    + Stop auto scrolling except when the bottom line is displayed. +
    + +
    Clear display when window resized
    +
    + The current screen is cleared when the VT window resizes. +
    + +
    Change cursor shape with IME state
    +
    + When the IME is enabled, the caret is gray. +
    + +
    UI Language
    +
    + The message catalog(menu and dialog message) can be changed by specifying the language file(lang\*.lng). + Refer to Language file. +
    + +
    Default port
    +
    + Default port type (TCP/IP or Serial) to be used when Tera Term is + run without command line parameter. +
    + +
    Title format
    +
    Configures the window title format. +
    +
    Display host/port name
    +
    Displays hostname or serial port name
    + +
    Display session number
    +
    Displays session number
    + +
    Display VT/TEK
    +
    Displays VT or TEK
    + +
    Swap hostname and title position
    +
    Swaps the hostname and title text, displays hostname first.
    + +
    Display tcp port number
    +
    Displays tcp port number (TCP/IP connection only)
    + +
    Display serial port speed
    +
    Displays speed of serial port (serial connection only)
    +
    +
    + +
    Notification
    + +
    + Notification Center settings and test. + +

    + If notification setting is turn off, no notification such as icons or messages will be displayed.
    + If sound setting is no sound (mute), no notification sound will be output.
    + You can check the behavior with test buttons. +

    + +
    +
    Notify sound
    +
    + Enable notification sound.
    + Sound can not be muted before Windows XP. +
    + +
    Notify Test button
    +
    + Test Notification.
    + The following behaviors can be checked. +
      +
    • Icon is displayed in Notification Center.
    • +
    • App notification is displayed.
    • +
    +
    + +
    Tray Test button
    +
    + Icon is displayed in Notification Center.
    + The following behaviors can be checked. +
      +
    • + Icon is displayed in Notification Center.
      + The icon disappears when messagebox is closed. +
    • +
    + When turn off all notifications for Tera Term, + "Tera Term" will not appear in Windows notification settings + and you may not be able to change the settings. + + By pushing this button, you can change Windows notification settings + when icon is displayed in Notification Center. +
    +
    +
    + +
    Download Folder
    +
    + Sets directory for file transfer.
    + Environment variables (ex "%USERPROFILE%\Downloads") are expanded when included.
    + If not set, default download folder is used.
    + The current folder can be check in Setup Directory.
    + This can be change with changedir macro command. +
    +
    + + + diff --git a/doc/en/html/menu/setup-additional-keyboard.html b/doc/en/html/menu/setup-additional-keyboard.html new file mode 100644 index 000000000..b00520a27 --- /dev/null +++ b/doc/en/html/menu/setup-additional-keyboard.html @@ -0,0 +1,88 @@ + + + + + Additional settings / "Keyboard" tab ([Setup] menu) + + + + + +

    Additional settings / "Keyboard" tab ([Setup] menu)

    + +
    +
    Transmit DEL by:
    +
    +
    +
    Backspace key
    +
    + If this option is checked, pressing the backspace key sends + the DEL character (ASCII 0x7F). If not checked, the BS character + (ASCII 0x08) is sent. Even if this option is (not) checked, + the BS (DEL) character can be sent by pressing the + Ctrl+backspace key. +
    + +
    Delete key
    +
    + If this option is checked, pressing the Delete key sends the + DEL character. If not checked, the function assigned for the + Delete key is determined by the + keyboard setupfile. +
    +
    +
    + +
    Keyboard
    +
    + Russian keyboard driver type.
    + Enabled when Russian Windows and ANSI (non-Unicode) mode.
    + Select next value. +
    +
    Windows
    +
    + keyboard driver which comes with Russian Windows +
    +
    KOI8-R
    +
    + using a driver which generates KOI8-R code +
    +
    +
    + +
    Meta key
    +
    + Enables the meta-key mode. The Alt key is used as the meta key. + For example, the sequence ESC A is sent by pressing the Alt+A key. + Shortcut keys which use the Alt key (such as Alt+C) are disabled.
    + Please set the "left" value to input the character with AltGr key and the Meta key is enabled. However, this value can be enabled with Windows NT 4.0 later. +
    + +
    Disabled mode:
    +
    +
    +
    Application Keypad
    +
    + This option disables Application Keypad mode.
    + If this option is selected, you can prevent a problem of a + numeric keypad from being unavailable due to an accidental + transition to Application Keypad mode.
    + Note that some application which uses application keypad mode + may encounter other problems when this option is selected. +
    + +
    Application Cursor
    +
    + This option disables Application Cursor mode. +
    +
    +
    +
    + +

    + You can modify key assignments by editing the + keyboard setupfile. +

    + + diff --git a/doc/en/html/menu/setup-additional-log.html b/doc/en/html/menu/setup-additional-log.html new file mode 100644 index 000000000..13cb9807e --- /dev/null +++ b/doc/en/html/menu/setup-additional-log.html @@ -0,0 +1,176 @@ + + + + + Additional settings ([Setup] Menu) + + + + + +

    Additional settings / "Log" Tab ([Setup] Menu)

    + +
    +
    View log editor
    +
    +
    +
    exe file
    +
    + Specify program that is used for display log file.
    + When program is relative path, program is searched from folder in ttermpro.exe and in PATH environment variable.
    + If blank, program associated with file extension is used. +
    +
    args
    +
    + Specify program args.
    +
    +
    +
    + +
    Default log file name
    +
    + Specify default log file name.
    + It can include Tera Term's original format and strftime similar format. + +
    +SYNOPSIS of Tera Term original format:
    +&h      Host name(or empty when not connecting)
    +&p      TCP port number(or empty when not connecting, not TCP connection)
    +&u      Windows logon username
    +
    +SYNOPSIS of strftime similar format:
    +%a      Abbreviated weekday name
    +%A      Full weekday name
    +%b      Abbreviated month name
    +%B      Full month name
    +%c      Date and time representation appropriate for locale
    +%d      Day of month as decimal number (01 - 31)
    +%H      Hour in 24-hour format (00 - 23)
    +%I      Hour in 12-hour format (01 - 12)
    +%j      Day of year as decimal number (001 - 366)
    +%m      Month as decimal number (01 - 12)
    +%M      Minute as decimal number (00 -  59)
    +%p      Current locale's A.M./P.M. indicator for 12-hour clock
    +%S      Second as decimal number (00 - 59)
    +%U      Week of year as decimal number, with Sunday as first day of week (00 - 53)
    +%w      Weekday as decimal number (0 - 6; Sunday is 0)
    +%W      Week of year as decimal number, with Monday as first day of week (00 - 53)
    +%x      Date representation for current locale
    +%X      Time representation for current locale
    +%y      Year without century, as decimal number (00 - 99)
    +%Y      Year with century, as decimal number
    +%z, %Z  Either the time-zone name or time zone abbreviation, depending on registry settings;
    +	no characters if time zone is unknown
    +%%      Percent sign
    +
    +
    +
    When log file name is not a full path
    + Tera Term scans value following order. If a value found, file name is understood as a relative path from that folder. + +
    +
    + +
    Default log save folder
    +
    + Specify default Terminal log save folder.
    + Refer to Terminal log folder for information where terminal logs are stored.
    + The current folder can be check in Setup Directory. +
    + +
    Auto start logging
    +
    + Start logging automatically when connecting. Default Log File Name is used for log file name.
    + When the /nolog command line is specified, this feature is always disabled. +
    + +
    Log Rotate
    +
    + The log rotation is enabled. The extension of the rotated file is added .1, .2, .3 etc. +
    +
    Size
    +
    + The log file is rotated when it grows bigger than Size bytes. If the size is followed by KB, + the size is assumed to be in kilobytes. If the MB is used, the size is in megabytes. +
    + +
    Rotate
    +
    + The log file is rotated Rotate times before being removed. If the Rotate is 0, + the old version is not removed rather than rotated. +
    +
    +
    + +
    Log option
    +
    + Specify the log type. +
    +
    Binary
    +
    + If you select this option, received characters are written without + any modifications. Otherwise, new-line codes are converted and + escape sequences are stripped out. +
    + +
    Append
    +
    + If you select this option and the specified log file already exists, + received characters are appended to the file. Otherwise, the file is + overwritten. +
    + +
    Plain text
    +
    + If you select this option, ASCII non-printable characters are not written.
    + NOTE: When the Binary option is enabled, this option can not be checked and the value will be disabled. +
    + +
    Hide dialog
    +
    + If you select this option, "Log" dialog box is not displayed. +
    + +
    Include screen buffer
    +
    + If you select this option, the logging starts after current all buffer is written into a log file. +
    + +
    Timestamp
    +
    + If you select this option, a timestamp is added on top of each log line. The timestamp is added when the first character of the line appears.
    + The timestamp type can be selected from following. +
    +
    Local Time
    +
    + Record the time in local time. +
    + +
    UTC
    +
    + Record the time in UTC. +
    + +
    Elapsed Time (Logging)
    +
    + Record the elapsed time from the start of logging. +
    + +
    Elapsed Time (Connection)
    +
    + Record the elapsed time from the start of connection. +
    +
    + The timestamp format is specified with LogTimestampFormat when the timestamp type is "Local Time" and "UTC".
    + The LogTimestampFormat is ignored when the timestamp type is "Elapsed Time (Logging)" or "Elapsed Time (Connection)".
    + NOTE: When the Binary option is enabled, this option can not be checked and the value will be disabled. +
    +
    +
    +
    + + + diff --git a/doc/en/html/menu/setup-additional-mouse.html b/doc/en/html/menu/setup-additional-mouse.html new file mode 100644 index 000000000..c0fd97ace --- /dev/null +++ b/doc/en/html/menu/setup-additional-mouse.html @@ -0,0 +1,26 @@ + + + + + Additional settings / "Mouse" tab ([Setup] menu) + + + + + +

    Additional settings / "Mouse" tab ([Setup] menu)

    + +
    +
    Enable clickable URL
    +
    + Launches the web browser by clicking URL string. +
    + +
    Mouse wheel scroll line
    +
    + Configures the mouse wheel scroll line. +
    +
    + + diff --git a/doc/en/html/menu/setup-additional-tcpip.html b/doc/en/html/menu/setup-additional-tcpip.html new file mode 100644 index 000000000..42a59197d --- /dev/null +++ b/doc/en/html/menu/setup-additional-tcpip.html @@ -0,0 +1,59 @@ + + + + + Additional settings / "TCP/IP" tab ([Setup] menu) + + + + + +

    Additional settings / "TCP/IP" tab ([Setup] menu)

    + +
    + +
    Save history when new connection
    +
    + If this option is selected, a host name entered in the + [File] New connection dialog box + is appended to the top of host list. +
    + +
    Edit history
    +
    + Edit History. +
    + +
    Telnet
    +
    + Use the telnet protocol. Usually, you should select this option. +
    + +
    TCP/IP Port#
    +
    + TCP port number.
    + 22: SSH
    + 23: Telnet +
    + +
    Keep alive
    +
    + This feature is called by Telnet keep-alive(heart-beat) mechanism. If this feature is enabled, Tera Term will send NOP message(IAC NOP: 255 241) periodically. 0 to turn off. The default value is 300 seconds. +
    + +
    Auto window close
    +
    + Closes Tera Term when the connection is closed. +
    + +
    Terminal type
    +
    + Terminal type to be reported to the host when the telnet connection + is established.
    + When TermType is set to "xterm" the applications (e.g. vim6) supporting ANSI color will appear in color. This function is from the original Tera Term.
    + You should specify "vt100" or "ANSI" for Windows Telnet Server. "xterm" will cause a problem. +
    +
    + + diff --git a/doc/en/html/menu/setup-additional-theme.html b/doc/en/html/menu/setup-additional-theme.html new file mode 100644 index 000000000..03fe335b4 --- /dev/null +++ b/doc/en/html/menu/setup-additional-theme.html @@ -0,0 +1,63 @@ + + + + + Additional settings / "Theme" tab ([Setup] menu) + + + + + +

    Additional settings / "Theme" tab ([Setup] menu)

    + +

    Theme

    + +

    + Looks of Tera Term can be changed.
    + It is not a Windows theme (dark theme, etc.) setting. + +

    +
    Theme Editor
    +
    Open Theme editor.
    + +
    FastSizeMove
    +
    + Faster drawing by omitting drawing of the window background (BG theme) + during window resizing, moving, and Z-order changes.
    + This can be used when using the BG theme. +
    + +
    Startup
    +
    + Sets the theme to be used at startup. +
    +
    no use
    +
    No theme is used
    +
    Fixed theme file
    +
    Loads a specific theme file
    +
    Random Theme file
    +
    Randomly load themes from theme files folder
    +
    +
    + +
    Susie Plug-in path
    +
    + Path where plugin file is stored.
    + Susie Plug-in is an external file to load various image files + using mage viewer software Susie.
    + Following information was referenced. +
    + +
    + + + diff --git a/doc/en/html/menu/setup-additional-visual-theme-alpha.png b/doc/en/html/menu/setup-additional-visual-theme-alpha.png new file mode 100644 index 000000000..0cda1a914 Binary files /dev/null and b/doc/en/html/menu/setup-additional-visual-theme-alpha.png differ diff --git a/doc/en/html/menu/setup-additional-visual-theme.html b/doc/en/html/menu/setup-additional-visual-theme.html new file mode 100644 index 000000000..1fc9d4d0c --- /dev/null +++ b/doc/en/html/menu/setup-additional-visual-theme.html @@ -0,0 +1,244 @@ + + + + + Theme Editor + + + + + +

    Theme Editor

    + + Theme is a framework that handles background image, text color, or both at once.
    + Theme Editor is able to edit the theme.
    + Multiple tabs are for settings.
    + The change is reflected in the running Tera Term to push [OK] button, + and The change discarded to [Cancel] button. + +
    +
    Preview/File tab
    +
    Temporary theme settings(preview), loading and saveing theme files.
    +
    Background tab
    +
    BG(Backgroud) related settings.
    +
    Background alpha tab
    +
    Transparency of the background image and text background color.
    +
    Color tab
    +
    Settings related to the text color.
    +
    + + About theme file + +
    + +

    Preview/File

    + + preview
    + Temporarily set (preview), undo a theme. + +
    +
    [preview]
    +
    Temporarily set (preview) theme.
    +
    [undo]
    +
    Undo changed theme before opening the dialog
    +
    + + file
    + Load a theme from a theme file and save theme. + +
    +
    [load]
    +
    Load theme file.
    +
    [save]
    +
    + Export theme to a file.
    + Export a BG theme, a Color theme, or both. +
    +
    + +
    + +

    Background (Background theme)

    + +

    background

    + + Background images are merged from the bottom up.
    + See Overview of background. + +
    +
    Simple color plane
    +
    + Alphablend with a single color.
    + For example, if you want to slightly darker the blended image background image and desktop wallpaper, Alphablend black with half value(128). +
    +
    Color
    +
    Plane color
    + +
    alpha
    +
    Alpha blend value
    +
    +
    + +
    Background Image
    +
    + Background image.
    + Some image files support per-pixel alpha values. +
    +
    Image file name
    +
    + bmp, png, gif, jpg etc
    + 32-bit bmp and transparent png has 8-bit alpha channel.
    + Transparent gif file treat one color as transparent. +
    + +
    Pattern
    +
    + How to draw background images. +
      +
    • stretch
    • +
    • tile
    • +
    • center
    • +
    • fit_withh
    • +
    • fit_height
    • +
    • autofit
    • +
    • autofill
    • +
    + TODO check details and write them. +
    + +
    Color
    +
    + If there are areas where the background image is not drawn, + the area will be painted with this color.
    + If there are transparent areas in the image and the Windows wallpaper image is not blended, + the area will be patinted with this color too. +
    + +
    alpha
    +
    + Alpha blend value with desktop wallpaper image
    + Setting values from transparent to opaque
    +
    +
    +
    + +
    desktop wallpaper image
    +
    + Windows Wallpaper Images +
    + +
    + +
    + +

    Transparency for background image and text background color

    + +
    +
    Transparency of normal text background color
    +
    + Transparency of background image and normal text background color
    + Setting values from transparent to opaque
    + (1) in the image +
    +
    transparency of reverse text background color
    +
    + Transparency of background image and reverse text background color
    + Setting values from transparent to opaque
    + (2) in the image +
    +
    Transparency of other text background colors
    +
    + transparency of Background image and other text background colors
    + Setting values from transparent to opaque
    + (3) in the image +
    +
    +
    +
    + When 1 and 3 are transparent, It will be the same as Tera Term 4. + +
    + +

    Color (color theme)

    + +

    + The color theme sets colors overriding default colors.
    + Default colors are set in TERATERM.INI.
    + Colors not set in the color theme ini file will be the default colors. + +

    + On this tab, you can configure following settings
    +

      +
    • Color settings +
    • Restore default colors +
    + +

    + Select a color in the list and right-clicking (or double-clicking) on it to change color. + +

    + commctrl color picker is used now.
    + (TODO change color picker in Tera Term) + +

    + Example of displaying the set color +

    +wget https://raw.githubusercontent.com/TeraTermProject/teraterm/main/tests/256colors2.pl -O - | perl
    +wget https://raw.githubusercontent.com/TeraTermProject/teraterm/main/tests/colortable16.sh -O - | sh
    +wget https://raw.githubusercontent.com/TeraTermProject/teraterm/main/tests/color-sgr-decscnm.pl -O - | perl
    + +
    +
    [default]
    +
    Set default color
    +
    + +
    +

    Background Theme Overview

    + + The background image is created as follows.
    +
    + +
    + +

    Color setting Overview

    + +When Tera Term 5 alpha version + +
    ++------------+          +-----------------------------------+         +---------+        +----------+
    +|TERATERM.INI| read     |Tera Term                          |         |Theme    |        |Theme File|
    +|            | (Startup)| +---------+          +----------+ |(launch) |Editor   |  Save  | INI      |
    +| Default    +------------>         | Startup  |          +----------->         +------->+          |
    +|  Colors    |          | | Default +----------> Draw     | |         |         |        | Colors   |
    +|            <------------+  Colors | Load     |  Colors  <-----------+         +<-------+          |
    +|            |  Write   | |         | Default  |          | |   OK    |         |  Load  |          |
    +|            |          | +---------+          +----------+ |         |         |        |          |
    ++------------+          +-----------------------------------+         +---------+        +----------+
    +
    + +
      +
    • Tera Term default colors are read from TERATERM.INI
      + Drawing colors will be the default color.
      + If themefile is loaded at startup and it contains a color theme, Drawing colors will be colors in theme. +
    • Load or edit the color in the Theme Editor and press "ok" button to change drawinge colors. +
    • Saving to TERATERM.INI saves default colors. +
    • Cannot copy drawing color to default colors. +
    + +

    About default colors

    + + Default colors and fonts can be set with the following keywords in TERATERM.INI +
    +| Attr \ ini    | font on/off       | color on/off           | color(R,G,B,R,G,B) |
    +|---------------|-------------------|------------------------|--------------------|
    +| Normal        | -                 | -                      | VTColor            |
    +| Bold          | EnableBold        | EnableBoldAttrColor    | VTBoldColor        |
    +| Blink         | -                 | EnableBlinkAttrColor   | VTBlinkColor       |
    +| Reverse       | -                 | EnableReverseAttrColor | VTReverseColor     |
    +| URL Underline | URLUnderline      | EnableURLColor         | URLColor           |
    +| Underline     | UnderlineAttrFont | UnderlineAttrColor     | VTUnderlineColor   |
    +
    + + + diff --git a/doc/en/html/menu/setup-additional-visual-theme.png b/doc/en/html/menu/setup-additional-visual-theme.png new file mode 100644 index 000000000..91ae6d584 Binary files /dev/null and b/doc/en/html/menu/setup-additional-visual-theme.png differ diff --git a/doc/en/html/menu/setup-additional-visual.html b/doc/en/html/menu/setup-additional-visual.html new file mode 100644 index 000000000..08cf8b691 --- /dev/null +++ b/doc/en/html/menu/setup-additional-visual.html @@ -0,0 +1,77 @@ + + + + + Additional settings / "Visual" tab ([Setup] menu) + + + + + +

    Additional settings / "Visual" tab ([Setup] menu)

    + +
    +
    Window Opacity / Active
    +
    Window Opacity / Inactive
    +
    + You can set up the value of opacity when the window is active (on focus) and not active (non-focus). + The range of opacity is from 0 to 255. The more reduces the this value, the more + window transparency is blinding.
    + See Background transparency. +
    + +
    MouseCursor
    +
    + Mouse cursor can have one of the 4 shapes listed below: +
    +ARROW = standard arrow cursor
    +IBEAM = ibeam cursor(default)
    +CROSS = cross cursor
    +HAND  = hand cursor
    +
    +
    + +
    Font quality
    +
    + Specifies the font quality. This feature will work well only if the operating system supports. +
    +Default         = Dependent on OS configuration(Smooth edges of screen fonts).
    +Non-Antialiased = Disable the anti-aliasing.
    +Antialiased     = Enable the anti-aliasing.
    +ClearType       = Use the ClearType.
    +
    +
    + +
    ANSI color
    +
    Specifies the RGB value of the color for PC style and aixterm style 16 colors mode.
    + +
    Enable Bold attribute color
    +
    Enable Bold attribute font
    +
    Enable Underline attribute color
    +
    Enable Underline attribute font
    +
    Enable Blink attribute color
    +
    Enable Reverse attribute color
    +
    Enable URL attribute color
    +
    Enable URL attribute font
    +
    + Enables each color attributes and color setting. +
    + +
    Enable ANSI color
    +
    + If ANSI color is disabled, 16 colors and 256 colors modes are also disabled. +
    + +
    Flickerless move
    +
    + Reduces flicker of drawing in a window when window is moved or resized.
    + Implementation:
    + Set SWP_NOCOPYBITS in flags of the WINDOWPOS structure (lParam) + in WM_WINDOWPOSCHANGING message. +
    + +
    + + + diff --git a/doc/en/html/menu/setup-additional.html b/doc/en/html/menu/setup-additional.html index 3064aff27..275e6d371 100644 --- a/doc/en/html/menu/setup-additional.html +++ b/doc/en/html/menu/setup-additional.html @@ -11,481 +11,21 @@

    Additional settings([Setup] Menu)

    +

    tabs

    + -

    "General" Tab

    -
    -
    Enable clickable URL
    -
    - Launches the web browser by clicking URL string. -
    - -
    Disable accelerator send break
    -
    - Disables accelerator key of send break. -
    - -
    Accept broadcast
    -
    - Accept the broadcast command.
    - Can be only enabled when the "Realtime mode" is off. However, this option is always ignored when the "Realtime mode" is on. -
    - -
    Mouse wheel scroll line
    -
    - Configures the mouse wheel scroll line. -
    - -
    Auto scroll only in bottom line
    -
    - Stop auto scrolling except when the bottom line is displayed. -
    - -
    Clear display when window resized
    -
    - The current screen is cleared when the VT window resizes. -
    - -
    Change cursor shape with IME state
    -
    - When the IME is enabled, the caret is gray. -
    - -
    List hidden fonts in font dialog
    -
    - A feature that some fonts can be shown or not on the font list is added on Windows 7 or later. - When this setting is enabled, whole fonts can be selected on the Font setting dialog. -
    - -
    Title format
    -
    Configures the window title format. -
    -
    Display host/port name
    -
    Displays hostname or serial port name
    - -
    Display session number
    -
    Displays session number - -
    Display VT/TEK
    -
    Displays VT or TEK - -
    Swap hostname and title position
    -
    Swaps the hostname and title text, displays hostname first.
    - -
    Display tcp port number
    -
    Displays tcp port number (TCP/IP connection only)
    - -
    Display serial port speed
    -
    Displays speed of serial port (serial connection only)
    -
    -
    -
    - - -

    "Control Sequence" Tab

    -
    -
    Accept mouse event tracking
    -
    - Tera Term would send the escape sequence of the mouse operation when VT window is changed to the mouse tracking mode by the host application.
    - However, TERM environment variable should be "xterm" type. -
    - -
    Disable mouse event tracking when Control is pressed
    -
    - The mouse tracking mode is enabled, TeraTerm does not send the mouse operation while the control key is pressed. -
    - -
    Accept window title change request
    -
    - Configures whether a user accepts the window title changing. -
    -
    off
    -
    Do not accept it.
    -
    overwrite
    -
    Accept it, and then display only the window tile.
    -
    ahead
    -
    Accept it, and then insert the window title before the canonical title.
    -
    last
    -
    Accept it, and then insert the window title after the canonical title.
    -
    -
    - -
    Window title report
    -
    - A user can configure how Tera Term can respond to the dtterm window title and icon label reporting request. -
    -
    ignore
    -
    Ignore a window title reporting request.
    -
    accept
    -
    Tera Term reports the current window title. However, be careful about using this feature because the security problem will occur.
    -
    empty
    -
    Report empty string.
    -
    -
    - -
    Window control sequence
    -
    - added support for the position moving, the minimization, the maximization, the most front, the most back, the refresh and the window size changing(per pixel and character) control sequences regarding the dtterm window operation. -
    - -
    Window report sequence
    -
    - This function enables the dtterm control sequence such as the window status reporting, the window position reporting, the window size(in pixel and character) reporting and the root window size reporting, among the window information reporting features.
    - If you do not want window information to be sent to remote host by some reason such as security, please disable this setting. -
    - -
    Cursor control sequence
    -
    - Enables the control sequence for the cursor shape.
    - This function enables cursor shape change by cursor change sequence of DECSCUSR(cursor shape change), WYSTCURM(Wyse no-blinking cursor), WYULCURM(Wyse underlined cursor) and AT&T 610 blinking cursor. - -

    - If a user uses the vim editor, write below entries in the ~/.vimrc to enable this feature. -

    - -
    -set t_SI=^[[3\ q
    -set t_EI=^[[1\ q
    -NOTE: Input ^[ by using Control-V Control-[.
    -
    - - If the cursor periodically blinks after an application exits, a user should configure as follows.
    - In the ncurses 5.7 terminfo, the invisible(civis)/normal display(cnorm)/highlighting(cvvis) of the xterm cursor are as follows: - -
    -civis=\E[?25l
    -cnorm=\E[?12l\E[?25h
    -cvvis=\E[?12;25h
    -
    - - When the upper configuration is enabled, the normal cursor displays with the non-blinking mode and the emphasis cursor displays with the blinking mode. - So, the cursor does not blink when the terminfo application displays the own cursor.
    - If a user want to blink the cursor, turn off the CursorCtrlSequence entry or do in the following commands: - -
    -% infocmp xterm > xterm.ti
    -Open the xterm.ti file, change from a value of cnorm and cvvis to \E?25h.
    -% tic -o ~/.terminfo xterm.ti
    -Execute the tic command.
    -# tic xterm.ti
    -If the configuration is enabled as whole system, execute the upper command with a root user.
    -
    -
    - -
    Clipboard access from remote
    -
    - permits the host to access the clipboard. -
    -
    off
    -
    can not permit
    -
    write only
    -
    can permit a clipboard to write
    -
    read only
    -
    can permit a clipboard to read
    -
    read/write
    -
    can permit a clipboard to write and read
    -
    -
    - -
    Notify clipboard access from remote
    -
    - Notifies the access of clipboard from remote host. -
    - -
    - - -

    "Copy and Paste" Tab

    -
    -
    Enable continued line copy
    -
    - Concatenates current line with the next line including word - characters when the whole line is stepped over. -
    - -
    Disable mouse R button paste
    -
    - Disables pasting clipboard data when mouse right button is clicked. -
    - -
    Confirm mouse R button paste
    -
    - Displays popup menu and confirm pasting clipboard data when mouse - right button is clicked. -
    - -
    Select only by L button
    -
    - Enable selection by mouse drag only with left button. -
    - -
    Trim trailing new line character when pasting
    -
    - Remove trailing new line character when pasting. -
    - -
    Normalize line break when pasting
    -
    - Normalize new line on pasting. When new line of clipboard is CR and LF, every new line is changed to CR+LF. -
    - -
    Confirm change paste
    -
    - When the Clipboard includes CR/LF, the confirmation - dialog can be shown to paste by right-click or Alt+V. - This is a foolproof way. -
    - -
    String file
    -
    - When the Clipboard includes any strings in the specified file, - the confirmation dialog can be shown to paste by right-click or Alt+V. - This is a foolproof way.
    - This function works when the ConfirmChangePaste is enabled. -
    - -
    Delimiter characters
    -
    - Includes delimiter characters for the word selection. -
    - -
    Paste delay per line
    -
    - A user can delay to send a line data to the remote host when the user pastes multiple lines. The delay time can be specified by this option on the millisecond time scale. -
    - -
    - - -

    "Visual" tab

    -
    -
    Window Transparency / Active
    -
    Window Transparency / Inactive
    -
    - You can set up the value of transparency when the window is active (on focus) and not active (non-focus). - The range of transparency is from 0 to 255. The more transparency reduces the value, the more - window transparency is blinding. -
    - -
    Eterm lookfeel
    -
    - Tera Term window looks like Eterm look-feel background transparency. -
    - -
    Background Image
    -
    - When the Eterm look-feel feature is enabled, an image file can be specified as background. -
    - -
    Image Brightness
    -
    - When the Eterm look-feel feature is enabled, the brightness of an image file can be specified. - The range of value is from 0 to 255.
    - The more brightness reduces the value, the more image brightens. -
    - -
    -

    - See also Background transparency. -

    - -
    -
    MouseCursor
    -
    - Mouse cursor can have one of the 4 shapes listed below: -
    -ARROW = standard arrow cursor
    -IBEAM = ibeam cursor(default)
    -CROSS = cross cursor
    -HAND  = hand cursor
    -
    -
    - -
    Font quality
    -
    - Specifies the font quality. This feature will work well only if the operating system supports. -
    -Default         = Dependent on OS configuration(Smooth edges of screen fonts).
    -Non-Antialiased = Disable the anti-aliasing.
    -Antialiased     = Enable the anti-aliasing.
    -ClearType       = Use the ClearType.
    -
    -
    - -
    ANSI color
    -
    Specifies the RGB value of the color for PC style and aixterm style 16 colors mode.
    - -
    Enable Bold attribute color
    -
    Enable Blink attribute color
    -
    Enable Reverse attribute color
    -
    Enable URL attribute color
    -
    Enable ANSI color
    -
    - Enables each color attributes and color setting.
    - If ANSI color is disabled, 16 colors and 256 colors modes are also disabled. -
    - -
    Underline URL string
    -
    - Enables Underline attribute on URL string. -
    - -
    - - -

    "Log" tab

    -
    -
    View log editor
    -
    - Specify the editor that is used for display log file -
    - -
    Default log file name(strftime format)
    -
    - Specify default log file name. It can include a format of strftime. -
    -SYNOPSIS:
    -&h      Host name(or empty when not connecting)
    -&p      TCP port number(or empty when not connecting, not TCP connection)
    -&u      Logon user name
    -%a      Abbreviated weekday name
    -%A      Full weekday name
    -%b      Abbreviated month name
    -%B      Full month name
    -%c      Date and time representation appropriate for locale
    -%d      Day of month as decimal number (01 - 31)
    -%H      Hour in 24-hour format (00 - 23)
    -%I      Hour in 12-hour format (01 - 12)
    -%j      Day of year as decimal number (001 - 366)
    -%m      Month as decimal number (01 - 12)
    -%M      Minute as decimal number (00 -  59)
    -%p      Current locale's A.M./P.M. indicator for 12-hour clock
    -%S      Second as decimal number (00 - 59)
    -%U      Week of year as decimal number, with Sunday as first day of week (00 - 53)
    -%w      Weekday as decimal number (0 - 6; Sunday is 0)
    -%W      Week of year as decimal number, with Monday as first day of week (00 - 53)
    -%x      Date representation for current locale
    -%X      Time representation for current locale
    -%y      Year without century, as decimal number (00 - 99)
    -%Y      Year with century, as decimal number
    -%z, %Z  Either the time-zone name or time zone abbreviation, depending on registry settings;
    -	no characters if time zone is unknown
    -%%      Percent sign
    -
    -
    - -
    Default log save folder
    -
    - Specify default path to save log file. It is used when the log file name is not a full path. -
    - -
    Auto start logging
    -
    - Start logging automatically when connecting. Default Log File Name is used for log file name.
    - When the /nolog command line is specified, this feature is always disabled. -
    - -
    Log Rotate
    -
    - The log rotation is enabled. The extension of the rotated file is added .1, .2, .3 etc. -
    -
    Size
    -
    - The log file is rotated when it grows bigger than Size bytes. If the size is followed by KB, - the size is assumed to be in kilobytes. If the MB is used, the size is in megabytes. -
    - -
    Rotate
    -
    - The log file is rotated Rotate times before being removed. If the Rotate is 0, - the old version is not removed rather than rotated. -
    -
    -
    - -
    Log option
    -
    - Specify the log type. -
    -
    Binary
    -
    - If you select this option, received characters are written without - any modifications. Otherwise, new-line codes are converted and - escape sequences are stripped out. -
    - -
    Append
    -
    - If you select this option and the specified log file already exists, - received characters are appended to the file. Otherwise, the file is - overwritten. -
    - -
    Plain text
    -
    - If you select this option, ASCII non-printable characters are not written.
    - NOTE: When the Binary option is enabled, this option can not be checked and the value will be disabled. -
    - -
    Hide dialog
    -
    - If you select this option, "Log" dialog box is not displayed. -
    - -
    Include screen buffer
    -
    - If you select this option, the logging starts after current all buffer is written into a log file. -
    - -
    Timestamp
    -
    - If you select this option, a timestamp is added on top of each log line. The timestamp is added when the first character of the line appears.
    - The timestamp type can be selected from following. -
    -
    Local Time
    -
    - Record the time in local time. -
    - -
    UTC
    -
    - Record the time in UTC. -
    - -
    Elapsed Time (Logging)
    -
    - Record the elapsed time from the start of logging. -
    - -
    Elapsed Time (Connection)
    -
    - Record the elapsed time from the start of connection. -
    -
    - The timestamp format is specified with LogTimestampFormat when the timestamp type is "Local Time" and "UTC".
    - The LogTimestampFormat is ignored when the timestamp type is "Elapsed Time (Logging)" or "Elapsed Time (Connection)".
    - NOTE: When the Binary option is enabled, this option can not be checked and the value will be disabled. -
    -
    -
    -
    - - -

    "Cygwin" tab

    -
    -
    Cygwin install path
    -
    - Specify the install directory of Cygwin. -
    - -
    CygTerm
    -
    - Configure CygTerm settings. Please refer to CygTerm+ setup file for details. -

    - NOTE: The cygterm.cfg file is automatically updated after configuration on version 4.88 or ealier, - however the file is not automatically updated on version 4.89 or later.
    - Please do Setup - Save Setup to update the cygterm.cfg file. -

    -
    -
    diff --git a/doc/en/html/menu/setup-directory.html b/doc/en/html/menu/setup-directory.html index 6ec13f98d..054b6e8d5 100644 --- a/doc/en/html/menu/setup-directory.html +++ b/doc/en/html/menu/setup-directory.html @@ -11,23 +11,27 @@

    Setup directory ([Setup] menu)

    - The path to the configuration file stored in the memory is opened with the explorer. + The configuration file that Tera Term is storing in the memory can be below operated.

    - The configuration file that Tera Term is storing in the memory can be below operated.
    - When the Virtual Store(Windows Vista or later) is enabled, the operation object is the Virtual Store directory. + The path to the configuration file stored in the memory is opened with the explorer.

    -
    ...
    +
    Open File
    +
    + The configuration file is opened with the application specified by the View log editor. +
    + +
    Open Folder(with Explorer)
    The path to the configuration file is opened with the explorer.
    - -
    Open File
    + +
    Send path to clipboard
    - The configuration file is opened with the application specified by the View log editor. + Send the path to the configuration file to clipboard
    diff --git a/doc/en/html/menu/setup-font.html b/doc/en/html/menu/setup-font.html index 4ddded513..8f7b9a570 100644 --- a/doc/en/html/menu/setup-font.html +++ b/doc/en/html/menu/setup-font.html @@ -11,45 +11,7 @@

    Font ([Setup] menu)

    - Changes the font. + Open Font tab of Additional settings dialog.

    - -

    "Font" dialog box

    -
    -
    Font
    -
    - Select a font from the list. -
    - -
    Font style
    -
    - Ignored. -
    - -
    Size
    -
    - Select a font size in points. -
    - -
    Script
    -
    - Select a character set from the list. -
    -
    - -

    Note:

    -
      -
    • - The Tera Special font, which is included in the distribution package, - can not be selected in this dialog box. It is used automatically by - Tera Term. -
    • -
    • - Hidden fonts specified by OS can not be shown on font list by default. - Please enable the List hidden fonts in font dialog setting on the General tab of Additiona settings dialog to select hidden fonts. -
    • -
    • - The font quality can be selected by using the Font quality on the Visual tab of Additional settings dialog. -
    • diff --git a/doc/en/html/menu/setup-general.html b/doc/en/html/menu/setup-general.html index 0f7c6f985..b3f4370f1 100644 --- a/doc/en/html/menu/setup-general.html +++ b/doc/en/html/menu/setup-general.html @@ -10,25 +10,8 @@

      General ([Setup] menu)

      - -

      "General setup" dialog box

      -
      -
      Default port
      -
      - Default port type (TCP/IP or Serial) to be used when Tera Term is - run without command line parameter. -
      - -
      Language
      -
      - Language mode (English, Japanese, Korean, Russian or UTF-8) of the terminal emulation. -
      - -
      LanguageUI
      -
      - The message catalog(menu and dialog message) can be changed by specifying the language file(lang\*.lng). - Refer to Language file. -
      -
      +

      + Open General tab of Additional settings dialog. +

      diff --git a/doc/en/html/menu/setup-keyboard.html b/doc/en/html/menu/setup-keyboard.html index dbcb8453a..370d09573 100644 --- a/doc/en/html/menu/setup-keyboard.html +++ b/doc/en/html/menu/setup-keyboard.html @@ -10,67 +10,8 @@

      Keyboard ([Setup] menu)

      - -

      "Keyboard setup" dialog box

      -
      -
      Transmit DEL by:
      -
      -
      -
      Backspace key
      -
      - If this option is checked, pressing the backspace key sends - the DEL character (ASCII 0x7F). If not checked, the BS character - (ASCII 0x08) is sent. Even if this option is (not) checked, - the BS (DEL) character can be sent by pressing the - Ctrl+backspace key. -
      - -
      Delete key
      -
      - If this option is checked, pressing the Delete key sends the - DEL character. If not checked, the function assigned for the - Delete key is determined by the - keyboard setupfile. -
      -
      -
      - -
      Meta key
      -
      - Enables the meta-key mode. The Alt key is used as the meta key. - For example, the sequence ESC A is sent by pressing the Alt+A key. - Shortcut keys which use the Alt key (such as Alt+C) are disabled.
      - Please set the "left" value to input the character with AltGr key and the Meta key is enabled. However, this value can be enabled with Windows NT 4.0 later. -
      - -
      Disabled mode:
      -
      -
      -
      Application Keypad
      -
      - This option disables Application Keypad mode.
      - If this option is selected, you can prevent a problem of a - numeric keypad from being unavailable due to an accidental - transition to Application Keypad mode.
      - Note that some application which uses application keypad mode - may encounter other problems when this option is selected. -
      - -
      Application Cursor
      -
      - This option disables Application Cursor mode. -
      -
      -
      -
      - -

      - You can modify key assignments by editing the - keyboard setupfile. -

      -

      - Help for Russian mode + Open Keyboard tab of Additional settings dialog.

      diff --git a/doc/en/html/menu/setup-keyboard_ru.html b/doc/en/html/menu/setup-keyboard_ru.html deleted file mode 100644 index 7a8bd466b..000000000 --- a/doc/en/html/menu/setup-keyboard_ru.html +++ /dev/null @@ -1,80 +0,0 @@ - - - - - Keyboard ([Setup] menu; Russian mode) - - - - - -

      Keyboard ([Setup] menu; Russian mode)

      - -

      "Keyboard setup" dialog box

      -
      -
      Transmit DEL by:
      -
      -
      -
      Backspace key
      -
      - If this option is checked, pressing the backspace key sends - the DEL character (ASCII 0x7F). If not checked, the BS character - (ASCII 0x08) is sent. Even if this option is (not) checked, - the BS (DEL) character can be sent by pressing the - Ctrl+backspace key. -
      - -
      Delete key
      -
      - If this option is checked, pressing the Delete key sends the - DEL character. If not checked, the function assigned for the - Delete key is determined by the - keyboard setupfile. -
      -
      -
      - -
      Keyboard
      -
      - Russian keyboard driver type. If you are using the standard - keyboard driver which comes with Russian Windows, select Windows. - If you are using non-Russian Windows and using a driver which - generates KOI8-R code, select KOI8-R. -
      - -
      Meta key
      -
      - Enables the meta-key mode. The Alt key is used as the meta key. - For example, the sequence ESC A is sent by pressing the Alt+A key. - Shortcut keys which use the Alt key (such as Alt+C) are disabled.
      - Please set the "left" value to input the character with AltGr key and the Meta key is enabled. However, this value can be enabled with Windows NT 4.0 later. -
      - -
      Disabled mode:
      -
      -
      -
      Application Keypad
      -
      - This option disables Application Keypad mode.
      - If this option is selected, you can prevent a problem of a - numeric keypad from being unavailable due to an accidental - transition to Application Keypad mode.
      - Note that some application which uses application keypad mode - may encounter other problems when this option is selected. -
      - -
      Application Cursor
      -
      - This option disables Application Cursor mode. -
      -
      -
      -
      - -

      - You can modify key assignments by editing the - keyboard setupfile. -

      - - diff --git a/doc/en/html/menu/setup-proxy.html b/doc/en/html/menu/setup-proxy.html index d22a598d0..87824811f 100644 --- a/doc/en/html/menu/setup-proxy.html +++ b/doc/en/html/menu/setup-proxy.html @@ -11,6 +11,8 @@

      Proxy([Setup] menu)

      +NOTICE: You need to save setup and restart Tera Term for enabling proxy settings. +

      "Proxy Setup" dialog box

      Type
      @@ -28,6 +30,11 @@

      "Proxy Setup" dialog box

      Hostname
      Specify Proxy Server + +

      + The host name, IPv4 and IPv6 address can be specified.
      + The IPv6 address need not to be surround with the bracket. +

      Port number
      diff --git a/doc/en/html/menu/setup-serialport.html b/doc/en/html/menu/setup-serialport.html index d392819da..9815403c3 100644 --- a/doc/en/html/menu/setup-serialport.html +++ b/doc/en/html/menu/setup-serialport.html @@ -12,10 +12,31 @@

      Serial port ([Setup] menu)

      "Serial port setup" dialog box

      +
      + +
      OK button
      +
      + The label of OK button is changed according to the connection state.
      + Connect with New window ... Serial connection is launched with new window since TCP/IP connection is using.
      + New open ... Serial connection starts.
      + Close and New open ... Current COM port is closed and serial connection starts with new COM port.
      + New setting ... The setting of current COM port is changed.
      +
      + +
      Cancel button
      +
      + Discards the setting change and closes the dialog. +
      + +
      Help button
      +
      + Displays the help file. +
      +
      Port
      - Serial port to be used. + Serial port to be used. By default, maximum serial port number in the list is 256. It is configurable in MaxComPort setting.
      Speed, Data, Parity, Stop bits, Flow control
      @@ -25,17 +46,35 @@

      "Serial port setup" dialog box

      The Speed can be specified with any number. Actually, the serial port driver may not reflect your speed.

      +

      + Flow control can be configured in the following:
      + Xon/Xoff ... Software flow
      + RTS/CTS ... Hardware flow(RTS/CTS)
      + DSR/DTR ... Hardware flow(DSR/DTR)
      + none ... No flow control
      +

      Note: If Data is 7 bit, the XMODEM, ZMODEM, B PLUS and Quick-VAN protocols are disabled. If Flow control is Xon/Xoff, the XMODEM and Quick-VAN protocols are disabled.

      +

      + Note: The "hardware" prior to version 4.104 applies to RTS/CTS. +

      Transmit delay
      Time intervals between characters (lines) being sent, in milliseconds.
      + +
      Detail information of COM port
      +
      + The detail information of selected port is shown in the text box.
      + You can select all data by using CTRL+A. + You can scroll horizontally by using CTRL/SHIFT + wheel. +
      +
      diff --git a/doc/en/html/menu/setup-ssh.html b/doc/en/html/menu/setup-ssh.html index d30ac7979..44a80154d 100644 --- a/doc/en/html/menu/setup-ssh.html +++ b/doc/en/html/menu/setup-ssh.html @@ -22,14 +22,14 @@

      "TTSSH: Setup" Dialog box

      aes256-gcm@openssh.com not RFC5647, PROTOCOL of OpenSSH - - aes128-gcm@openssh.com - not RFC5647, PROTOCOL of OpenSSH - camellia256-ctr draft-kanno-secsh-camellia-02 + + chacha20-poly1305@openssh.com + PROTOCOL.chacha20poly1305 of OpenSSH + aes256-ctr RFC4344 @@ -58,6 +58,10 @@

      "TTSSH: Setup" Dialog box

      aes192-cbc RFC4253 + + aes128-gcm@openssh.com + not RFC5647, PROTOCOL of OpenSSH + camellia128-ctr draft-kanno-secsh-camellia-02 @@ -116,11 +120,11 @@

      "TTSSH: Setup" Dialog box

      Blowfish(SSH1) - + DES(SSH1) - + @@ -232,6 +236,18 @@

      "TTSSH: Setup" Dialog box

      Specify the type of MAC for SSH2 with the order.
      <MACs below this line are disabled> + + + + + + + + + + + + @@ -244,14 +260,30 @@

      "TTSSH: Setup" Dialog box

      + + + + + + + + + + + + + + + + @@ -282,7 +314,15 @@

      "TTSSH: Setup" Dialog box

      - + + + + + + + + + @@ -302,14 +342,17 @@

      "TTSSH: Setup" Dialog box

      hmac-sha2-512-etm@openssh.com
      hmac-sha2-256-etm@openssh.com
      hmac-sha1-etm@openssh.com
      hmac-sha2-512 RFC6668 hmac-sha1 RFC4253
      hmac-ripemd160-etm@openssh.com
      hmac-ripemd160@openssh.com
      hmac-md5-etm@openssh.com
      hmac-md5 RFC4253
      hmac-sha1-96-etm@openssh.com
      hmac-md5-96-etm@openssh.com
      hmac-sha1-96 RFC4253
      ssh-ed25519draft-ietf-curdle-ssh-ed25519-02RFC8709
      rsa-sha2-512RFC8332
      rsa-sha2-256RFC8332
      ssh-rsa
      - + + + +
      zlib@openssh.comDelayed compression(Starts compressing after authentication)PROTOCOL of OpenSSHDelayed compression (Starts compressing after authentication)
      zlibRFC4253
      noneRFC4253 No compression
      @@ -323,6 +366,52 @@

      "TTSSH: Setup" Dialog box

      By using SSH1 protocol, when the Compression level is 0, the packet compression is disabled, or the Compression level is over 1, the compression is enabled.
      By using SSH2 protocol, use the Compression order to enable the packet compression. And then, set the Compression level to 1 over. + +
      LogLevel
      +
      + Specify the debug level of TTSSH module.
      + When the debug level is greater than 0, the debug data is recorded in "TTSSH.LOG", + "ssh2connect.log" and "ssh2packet.log" under Log folder.
      + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
      ValueMeaning
      0Disabled
      5Fatal
      10Error
      30Warning
      50Notice
      80Information
      100Verbose
      200SSH Dump
      +
      +
      diff --git a/doc/en/html/menu/setup-sshauth.html b/doc/en/html/menu/setup-sshauth.html index e7132979d..485e16522 100644 --- a/doc/en/html/menu/setup-sshauth.html +++ b/doc/en/html/menu/setup-sshauth.html @@ -12,94 +12,96 @@

      SSH Authentication([Setup] Menu)

      "TTSSH: Authentication Setup" Dialog box

      -
      +
      User name
      - Specify user name to be used for SSH connection. + Specify user name to be used for SSH connection.
      + When Check the supported authentication methods before login was checked, you can not change user name. + +
      +
      Do not enter username
      +
      + Do not enter username. +
      + +
      Use default username
      +
      + Use default username.
      + Default username is entered in the edit box.
      + However, nothing will be input if the edit box is empty. +
      + +
      Use logon username
      +
      + Use Windows logon username. +
      +
      +
      Specify default authentication method.
      -
        -
      • +
        +
        Use plain password to log in
        +
        + Specify Password if a password authentication is used. +
        + +
        Use RSA/DSA/ECDSA/ED25519 key to login
        +
        + Choose an authentication method using RSA/DSA/ECDSA/ED25519 key which are previously generated.
        -
        Use plain password to log in
        +
        Private key file
        - Specify Password if a password authentication is used. + Specify OpenSSH format private key file.
        + TTSSH 2.63(Tera Term 4.76) later can support the PuTTY format and SECSH(ssh.com) format of the SSH2 private key.
        -
      • - -
      • +
      + +
      Use rhost to login (SSH1)
      +
      + Specify if rhost connection is allowed by Host.
      -
      Use RSA/DSA/ECDSA/ED25519 key to login
      +
      Local user name
      - Choose an authentication method using RSA/DSA/ECDSA/ED25519 key which are previously generated.
      -
      -
      Private key file
      -
      - Specify OpenSSH format private key file.
      - TTSSH 2.63(Tera Term 4.76) later can support the PuTTY format and SECSH(ssh.com) format of the SSH2 private key. -
      -
      + Specify user name.
      -
      - - -
    • -
      -
      Use rhost to login (SSH1)
      +
      Host private key file
      - Specify if rhost connection is allowed by Host. -
      -
      Local user name
      -
      - Specify user name. -
      -
      Host private key file
      -
      - Specify OpenSSH format private key file. -
      -
      + Specify OpenSSH format private key file.
      -
    • - -
    • +
    • + +
      Use SSH1:challenge/response(TIS) / SSH2:keyboard-interactive to log in
      +
      -
      Use SSH1:challenge/response(TIS) / SSH2:keyboard-interactive to log in
      +
      SSH1
      -
      -
      SSH1
      -
      - Choose if Challenge/Response authentication is available. - It may be S/Key authentication depending on the server. -
      -
      SSH2
      -
      - Choose if keyboard-interactive authentication is available. - This authentication method is used to log in to the server by using your password - that has disabled password authentication such as FreeBSD.
      - Encrypted input data are sent to the server with the method. - When a password is input for authentication, same as password authentication, - encrypted password passes through. - -
      -
      + Choose if Challenge/Response authentication is available. + It may be S/Key authentication depending on the server.
      -
      - - -
    • -
      -
      Use Pageant
      +
      SSH2
      - Choose an authentication method using RSA/DSA key with Pageant.
      - TTSSH does not handle a private key file. + Choose if keyboard-interactive authentication is available. + This authentication method is used to log in to the server by using your password + that has disabled password authentication such as FreeBSD.
      + Encrypted input data are sent to the server with the method. + When a password is input for authentication, same as password authentication, + encrypted password passes through. +
      -
    • +
      + +
      Use Pageant
      +
      + Choose an authentication method using RSA/DSA key with Pageant.
      + TTSSH does not handle a private key file. +
      +
      diff --git a/doc/en/html/menu/setup-sshkeygenerator.html b/doc/en/html/menu/setup-sshkeygenerator.html index 0acbaaeab..6a60210a0 100644 --- a/doc/en/html/menu/setup-sshkeygenerator.html +++ b/doc/en/html/menu/setup-sshkeygenerator.html @@ -70,6 +70,6 @@

      "TTSSH: Key Generator" Dialog box

      Save private key
      The private key is encrypted by the AES-128 algorithm. The key is encrypted by the 3DES into the Tera Term 4.76(TTSSH 2.63) before.
      -
      +
      diff --git a/doc/en/html/menu/setup-tcpip.html b/doc/en/html/menu/setup-tcpip.html index de30f65cd..15a8d8cd3 100644 --- a/doc/en/html/menu/setup-tcpip.html +++ b/doc/en/html/menu/setup-tcpip.html @@ -10,64 +10,8 @@

      TCP/IP ([Setup] menu)

      - -

      "TCP/IP setup" dialog box

      -
      -
      Host list
      -
      - You can edit here the host list to be displayed in the - [File] New connection dialog box. - It is convenient to add your favorite hosts to the list. - You can add not only host names and IP addresses, but also the - command line parameters - like the following: - -
      -      myhost.mydomain                   Host name only.
      -      myhost.mydomain:23                Host name with a port number.
      -      foohost.foodomain /F=FOOHOST.INI  Host name & setup file name.
      -      /C=1                              Specifies the serial port connection.
      -      /R=LOG.DAT                        Replays the log file.
      -      
      - -
      -
      History
      -
      - If this option is selected, a host name entered in the - [File] New connection dialog box - is appended to the top of host list. -
      -
      -
      - -
      Auto window close
      -
      - Closes Tera Term when the connection is closed. -
      - -
      TCP port#
      -
      - TCP port number. Normally, port number 23 is used for the telnet - protocol. -
      - -
      Telnet
      -
      - Enables the telnet protocol. Usually, you should select this option. -
      - -
      Keep alive
      -
      - This feature is called by Telnet keep-alive(heart-beat) mechanism. If this feature is enabled, Tera Term will send NOP message(IAC NOP: 255 241) periodically. 0 to turn off. The default value is 300 seconds. -
      - -
      Terminal type
      -
      - Terminal type to be reported to the host when the telnet connection - is established.
      - When TermType is set to "xterm" the applications (e.g. vim6) supporting ANSI color will appear in color. This function is from the original Tera Term.
      - You should specify "vt100" or "ANSI" for Windows Telnet Server. "xterm" will cause a problem. -
      -
      +

      + Open TCP/IP tab of Additional settings dialog. +

      diff --git a/doc/en/html/menu/setup-terminal.html b/doc/en/html/menu/setup-terminal.html index de063812f..ac243261e 100644 --- a/doc/en/html/menu/setup-terminal.html +++ b/doc/en/html/menu/setup-terminal.html @@ -3,25 +3,13 @@ - Terminal ([Setup] menu; English mode) + Terminal ([Setup] menu) -

      Terminal ([Setup] menu; English mode)

      - -

      - This page is described when the Language is selected to English on the Setup - General dialog. - Please refer to below page if another language mode is used. -

      - - +

      Terminal ([Setup] menu)

      "Terminal setup" dialog box

      @@ -84,7 +72,7 @@

      "Terminal setup" dialog box

      Terminal ID to be reported to the host when the host requests it. Note that the terminal ID is not identical to the telnet terminal type. To change the telnet terminal type, use the - [Setup] TCP/IP command. + Terminal type in [Setup] Addtional Setting "TCP/IP" tab.
      Local echo
      @@ -108,6 +96,57 @@

      "Terminal setup" dialog box

      Enables auto switching between VT and TEK emulations.
      + +
      + +
      + +
      + +
      Kanji (receive)
      +
      + Kanji character that is received from host(SJIS, EUC, JIS and UTF-8). +
      + +
      7bit katakana (receive)
      +
      + When "HANKAKU" katakana code from host is described for 7bit + (Shift control with SO/SI is using), please select this entry. + This is only enabled when Kanji (receive) is JIS. +
      + +
      Kanji (transmit)
      +
      + Kanji character that is sent from client(SJIS, EUC, JIS and UTF-8). +
      + +
      7bit katakana (transmit)
      +
      + When "HANKAKU" katakana code from host is described for 7bit + (Shift control with SO/SI is using), please select this entry. + This is only enabled when Kanji (transmit) is JIS. +
      + +
      Kanji-in (transmit)
      +
      + The escape sequence is used when Kanji (transmit) is JIS. + (Sequence regarding Kanji character is specified to G0. + ^[$@ or ^[$B). + The escape sequence from host can use any sequence. +
      + +
      Kanji-out (transmit)
      +
      + The escape sequence is used when Kanji (transmit) is JIS. + (Sequence regarding ASCII and JIS Roman code is specified to G0. + ^[(B or ^[(J ). + The escape sequence from host can use any sequence. +

      + NOTICE: ^[(H can not be selected on initial setting.
      + +

      +
      +
      diff --git a/doc/en/html/menu/setup-terminal_ja.html b/doc/en/html/menu/setup-terminal_ja.html deleted file mode 100644 index ffd5d4ffc..000000000 --- a/doc/en/html/menu/setup-terminal_ja.html +++ /dev/null @@ -1,164 +0,0 @@ - - - - - Terminal ([Setup] menu; Japanese mode) - - - - - -

      Terminal ([Setup] menu; Japanese mode)

      - -

      - This page is described when the Language is selected to Japanese on the Setup - General dialog. - Please refer to below page if another language mode is used. -

      - - - -

      "Terminal setup" dialog box

      -
      -
      Terminal size
      -
      - The logical size of the terminal (numbers of columns and lines). - Note that the window size (real screen size) is not necessarily - equal to the terminal size. -
      - -
      Term size = win size
      -
      - Forces the terminal size to be always equal to the window size. -
      - -
      Auto window resize
      -
      - When the terminal size is changed, resizes the window to the - terminal size. -
      - -
      New-line (receive)
      -
      -
      -
      CR
      -
      Tera Term doesn't convert it.
      - -
      CR+LF
      -
      Received CR ($0D) character is converted to CR+LF ($0D $0A) pairs.
      - e.g.) If "CR LF" is received, it is converted to "CR LF LF."
      - -
      LF
      -
      Received LF ($0A) character is converted to CR+LF ($0D $0A) pairs.
      - e.g.) If "CR LF" is received, it is converted to "CR CR LF."
      - -
      AUTO
      -
      Received CR ($0D) or LF ($0A) character is converted to CR+LF ($0D $0A) pairs.
      - e.g.) If "CR+LF" are received, it is not converted.
      - If "CR" is received, it is converted to "CR LF."
      - If "LF" is received, it is converted to "CR LF."
      -
      -
      - -
      New-line (transmit)
      -
      -
      -
      CR
      -
      Tera Term doesn't convert it.
      - -
      CR+LF
      -
      CR ($0D) character to be sent is converted to CR+LF ($0D $0A) pairs before it is actually sent.
      - -
      LF
      -
      CR ($0D) character to be sent is converted to LF ($0A) before it is actually sent.
      -
      -
      - -
      Terminal ID
      -
      - Terminal ID to be reported to the host when the host requests it. - Note that the terminal ID is not identical to the telnet terminal - type. To change the telnet terminal type, use the - [Setup] TCP/IP command. -
      - -
      Local echo
      -
      - Enables local echoing of characters sent. -
      - -
      Answerback
      -
      - The string to be answered back to the host, when the ENQ ($05) - character is received. Each non-printable character in the string - can be expressed as a "$" and ASCII code in two-character hex number. - For example, the string "ABC<CR><LF>" is expressed as - the following: -

      - ABC$0D$0A -

      -
      - -
      Auto switch (VT<->TEK)
      -
      - Enables auto switching between VT and TEK emulations. -
      - -
      Kanji (receive)
      -
      - Kanji character that is received from host(SJIS, EUC, JIS, UTF-8 and UTF-8m). -
      - -
      7bit katakana (receive)
      -
      - When "HANKAKU" katakana code from host is described for 7bit - (Shift control with SO/SI is using), please select this entry. - This is only enabled when Kanji (receive) is JIS. -
      - -
      Kanji (transmit)
      -
      - Kanji character that is sent from client(SJIS, EUC, JIS and UTF-8). -
      - -
      7bit katakana (transmit)
      -
      - When "HANKAKU" katakana code from host is described for 7bit - (Shift control with SO/SI is using), please select this entry. - This is only enabled when Kanji (transmit) is JIS. -
      - -
      Kanji-in (transmit)
      -
      - The escape sequence is used when Kanji (transmit) is JIS. - (Sequence regarding Kanji character is specified to G0. - ^[$@ or ^[$B). - The escape sequence from host can use any sequence. -
      - -
      Kanji-out (transmit)
      -
      - The escape sequence is used when Kanji (transmit) is JIS. - (Sequence regarding ASCII and JIS Roman code is specified to G0. - ^[(B or ^[(J ). - The escape sequence from host can use any sequence. -

      - NOTICE: ^[(H can not be selected on initial setting.
      - -

      -
      - -
      locale
      -
      - Locale setting. - Refer to Unicode for details. -
      - -
      - - diff --git a/doc/en/html/menu/setup-terminal_ko.html b/doc/en/html/menu/setup-terminal_ko.html deleted file mode 100644 index 89dcad173..000000000 --- a/doc/en/html/menu/setup-terminal_ko.html +++ /dev/null @@ -1,130 +0,0 @@ - - - - - Terminal ([Setup] menu; Korean mode) - - - - - -

      Terminal ([Setup] menu; Korean mode)

      - -

      - This page is described when the Language is selected to Korean on the Setup - General dialog. - Please refer to below page if another language mode is used. -

      - - - -

      "Terminal setup" dialog box

      -
      -
      Terminal size
      -
      - The logical size of the terminal (numbers of columns and lines). - Note that the window size (real screen size) is not necessarily - equal to the terminal size. -
      - -
      Term size = win size
      -
      - Forces the terminal size to be always equal to the window size. -
      - -
      Auto window resize
      -
      - When the terminal size is changed, resizes the window to the - terminal size. -
      - -
      New-line (receive)
      -
      -
      -
      CR
      -
      Tera Term doesn't convert it.
      - -
      CR+LF
      -
      Received CR ($0D) character is converted to CR+LF ($0D $0A) pairs.
      - e.g.) If "CR LF" is received, it is converted to "CR LF LF."
      - -
      LF
      -
      Received LF ($0A) character is converted to CR+LF ($0D $0A) pairs.
      - e.g.) If "CR LF" is received, it is converted to "CR CR LF."
      - -
      AUTO
      -
      Received CR ($0D) or LF ($0A) character is converted to CR+LF ($0D $0A) pairs.
      - e.g.) If "CR+LF" are received, it is not converted.
      - If "CR" is received, it is converted to "CR LF."
      - If "LF" is received, it is converted to "CR LF."
      -
      -
      - -
      New-line (transmit)
      -
      -
      -
      CR
      -
      Tera Term doesn't convert it.
      - -
      CR+LF
      -
      CR ($0D) character to be sent is converted to CR+LF ($0D $0A) pairs before it is actually sent.
      - -
      LF
      -
      CR ($0D) character to be sent is converted to LF ($0A) before it is actually sent.
      -
      -
      - -
      Terminal ID
      -
      - Terminal ID to be reported to the host when the host requests it. - Note that the terminal ID is not identical to the telnet terminal - type. To change the telnet terminal type, use the - [Setup] TCP/IP command. -
      - -
      Local echo
      -
      - Enables local echoing of characters sent. -
      - -
      Answerback
      -
      - The string to be answered back to the host, when the ENQ ($05) - character is received. Each non-printable character in the string - can be expressed as a "$" and ASCII code in two-character hex number. - For example, the string "ABC<CR><LF>" is expressed as - the following: -

      - ABC$0D$0A -

      -
      - -
      Auto switch (VT<->TEK)
      -
      - Enables auto switching between VT and TEK emulations. -
      - -
      Coding (receive)
      -
      - Character code that is received from host(KS5601, UTF-8 and UTF-8m). -
      - -
      Coding (transmit)
      -
      - Character code that is sent from client(KS5601 and UTF-8). -
      - -
      locale
      -
      - Locale setting. - Refer to Unicode for details. -
      - -
      - - diff --git a/doc/en/html/menu/setup-terminal_ru.html b/doc/en/html/menu/setup-terminal_ru.html deleted file mode 100644 index ae1b1c86a..000000000 --- a/doc/en/html/menu/setup-terminal_ru.html +++ /dev/null @@ -1,134 +0,0 @@ - - - - - Terminal ([Setup] menu; Russian mode) - - - - - -

      Terminal ([Setup] menu; Russian mode)

      - -

      - This page is described when the Language is selected to Russian on the Setup - General dialog. - Please refer to below page if another language mode is used. -

      - - - -

      "Terminal setup" dialog box

      -
      -
      Terminal size
      -
      - The logical size of the terminal (numbers of columns and lines). - Note that the window size (real screen size) is not necessarily - equal to the terminal size. -
      - -
      Term size = win size
      -
      - Forces the terminal size to be always equal to the window size. -
      - -
      Auto window resize
      -
      - When the terminal size is changed, resizes the window to the - terminal size. -
      - -
      New-line (receive)
      -
      -
      -
      CR
      -
      Tera Term doesn't convert it.
      - -
      CR+LF
      -
      Received CR ($0D) character is converted to CR+LF ($0D $0A) pairs.
      - e.g.) If "CR LF" is received, it is converted to "CR LF LF."
      - -
      LF
      -
      Received LF ($0A) character is converted to CR+LF ($0D $0A) pairs.
      - e.g.) If "CR LF" is received, it is converted to "CR CR LF."
      - -
      AUTO
      -
      Received CR ($0D) or LF ($0A) character is converted to CR+LF ($0D $0A) pairs.
      - e.g.) If "CR+LF" are received, it is not converted.
      - If "CR" is received, it is converted to "CR LF."
      - If "LF" is received, it is converted to "CR LF."
      -
      -
      - -
      New-line (transmit)
      -
      -
      -
      CR
      -
      Tera Term doesn't convert it.
      - -
      CR+LF
      -
      CR ($0D) character to be sent is converted to CR+LF ($0D $0A) pairs before it is actually sent.
      -
      -
      - -
      Terminal ID
      -
      - Terminal ID to be reported to the host when the host requests it. - Note that the terminal ID is not identical to the telnet terminal - type. To change the telnet terminal type, use the - [Setup] TCP/IP command. -
      - -
      Local echo
      -
      - Enables local echoing of characters sent. -
      - -
      Answerback
      -
      - The string to be answered back to the host, when the ENQ ($05) - character is received. Each non-printable character in the string - can be expressed as a "$" and ASCII code in two-character hex number. - For example, the string "ABC<CR><LF>" is expressed as - the following: -

      - ABC$0D$0A -

      -
      - -
      Auto switch (VT<->TEK)
      -
      - Enables auto switching between VT and TEK emulations. -
      - -
      Character set
      -
      -
      -
      Host
      -
      - Russian character set used in the host computer. - Windows (CP 1251), KOI8-R, CP 866 or ISO 8859-5. -
      - -
      Client
      -
      - Russian character set used in your PC. Windows (CP 1251), - KOI8-R, CP 866 or ISO 8859-5. If you are using Russian version - of Windows, you should select Windows. -
      - -
      Font
      -
      - Character code set of the specified font, Windows (CP 1251), - KOI8-R, CP 866 or ISO 8859-5. -
      -
      -
      -
      - - diff --git a/doc/en/html/menu/setup-terminal_utf8.html b/doc/en/html/menu/setup-terminal_utf8.html deleted file mode 100644 index da7923142..000000000 --- a/doc/en/html/menu/setup-terminal_utf8.html +++ /dev/null @@ -1,130 +0,0 @@ - - - - - Terminal ([Setup] menu; UTF-8 mode) - - - - - -

      Terminal ([Setup] menu; UTF-8 mode)

      - -

      - This page is described when the Language is selected to UTF-8 on the Setup - General dialog. - Please refer to below page if another language mode is used. -

      - - - -

      "Terminal setup" dialog box

      -
      -
      Terminal size
      -
      - The logical size of the terminal (numbers of columns and lines). - Note that the window size (real screen size) is not necessarily - equal to the terminal size. -
      - -
      Term size = win size
      -
      - Forces the terminal size to be always equal to the window size. -
      - -
      Auto window resize
      -
      - When the terminal size is changed, resizes the window to the - terminal size. -
      - -
      New-line (receive)
      -
      -
      -
      CR
      -
      Tera Term doesn't convert it.
      - -
      CR+LF
      -
      Received CR ($0D) character is converted to CR+LF ($0D $0A) pairs.
      - e.g.) If "CR LF" is received, it is converted to "CR LF LF."
      - -
      LF
      -
      Received LF ($0A) character is converted to CR+LF ($0D $0A) pairs.
      - e.g.) If "CR LF" is received, it is converted to "CR CR LF."
      - -
      AUTO
      -
      Received CR ($0D) or LF ($0A) character is converted to CR+LF ($0D $0A) pairs.
      - e.g.) If "CR+LF" are received, it is not converted.
      - If "CR" is received, it is converted to "CR LF."
      - If "LF" is received, it is converted to "CR LF."
      -
      -
      - -
      New-line (transmit)
      -
      -
      -
      CR
      -
      Tera Term doesn't convert it.
      - -
      CR+LF
      -
      CR ($0D) character to be sent is converted to CR+LF ($0D $0A) pairs before it is actually sent.
      - -
      LF
      -
      CR ($0D) character to be sent is converted to LF ($0A) before it is actually sent.
      -
      -
      - -
      Terminal ID
      -
      - Terminal ID to be reported to the host when the host requests it. - Note that the terminal ID is not identical to the telnet terminal - type. To change the telnet terminal type, use the - [Setup] TCP/IP command. -
      - -
      Local echo
      -
      - Enables local echoing of characters sent. -
      - -
      Answerback
      -
      - The string to be answered back to the host, when the ENQ ($05) - character is received. Each non-printable character in the string - can be expressed as a "$" and ASCII code in two-character hex number. - For example, the string "ABC<CR><LF>" is expressed as - the following: -

      - ABC$0D$0A -

      -
      - -
      Auto switch (VT<->TEK)
      -
      - Enables auto switching between VT and TEK emulations. -
      - -
      Coding (receive)
      -
      - Character code that is received from host(UTF-8 and UTF-8m). -
      - -
      Coding (transmit)
      -
      - Character code that is sent from client(UTF-8). -
      - -
      locale
      -
      - Locale setting. - Refer to Unicode for details. -
      - -
      - - diff --git a/doc/en/html/menu/setup-window.html b/doc/en/html/menu/setup-window.html index 596ded46e..7320293bd 100644 --- a/doc/en/html/menu/setup-window.html +++ b/doc/en/html/menu/setup-window.html @@ -15,7 +15,9 @@

      "Window setup" dialog box

      Title
      - Text displayed in the window title. + Text displayed in the window title.
      + See Accept window title change request for behavior when a remote title is set.
      + The remote title can be reset with Reset Remote Title.
      Cursor shape
      @@ -32,15 +34,23 @@

      "Window setup" dialog box

      Hides the title bar and menu bar. You can move the window by dragging it with the left mouse button while pressing the Alt key. + Rectangle selection will not be available. You can minimize the window by clicking the right mouse button while pressing the Alt key. Clicking the left mouse button while pressing the Ctrl key causes the pop-up menu to appear. + You can also resize the window by holding down the Shift and Alt keys and dragging the window with the left mouse button. +
      + +
      No Frame
      +
      + Hides the window frame. It is no longer possible to resize the window using the window frame. + To resize the window, drag the window with the left mouse button while pressing the Shift and Alt keys.
      Hide menu bar
      - Hides the menu bar. Clicking the left mouse button while pressing - the Ctrl key causes the pop-up menu to appear. + Hides the menu bar. Menus with no shortcut key set will not be accessible with the accelerator key. + Clicking the left mouse button while pressing the Ctrl key causes the pop-up menu to appear.
      16 Colors (PC style)
      @@ -93,9 +103,15 @@

      "Window setup" dialog box

      Attribute
      - Attribute of characters (Normal, Bold, Blink, Reverse or URL) whose colors - are being changed.
      - Note: Currently, the function URL attribute is disabled. + Attribute of characters whose colors are being changed. +
        +
      • Normal
      • +
      • Bold
      • +
      • Blink
      • +
      • Reverse
      • +
      • URL
      • +
      • Underline
      • +
      Reverse
      @@ -108,7 +124,7 @@

      "Window setup" dialog box

      Specifies the RGB value of the character color. -
      Always use Normal text's BG +
      Always use Normal text's BG
      If this option is ON, Tera Term uses Normal background color instead of Bold, Blink and URL's background color.
      diff --git a/doc/en/html/menu/setup.html b/doc/en/html/menu/setup.html index 2625a62c7..d618a08c2 100644 --- a/doc/en/html/menu/setup.html +++ b/doc/en/html/menu/setup.html @@ -25,14 +25,14 @@

      [Setup] menu

      Setting up screen display -
      Font...
      +
      Font...
      - changing FONT + Open Additional setting "Font" tab.
      -
      Keyboard...
      +
      Keyboard...
      - Setting up keyboard + Open Additional setting "keyboard" tab.
      Serial port...
      @@ -65,9 +65,9 @@

      [Setup] menu

      Generating key to be used by SSH key-pair authentication -
      TCP/IP...
      +
      TCP/IP...
      - Setting up TCP/IP + Open Additional setting "TCP/IP" tab.
      General...
      @@ -77,7 +77,7 @@

      [Setup] menu

      Additional settings...
      - Setting up the new Tera Term options introduced by the UTF-8 package. + Open Additional setting.
      Save setup...
      diff --git a/doc/en/html/reference/.gitignore b/doc/en/html/reference/.gitignore new file mode 100644 index 000000000..60df1b166 --- /dev/null +++ b/doc/en/html/reference/.gitignore @@ -0,0 +1,14 @@ +CygTerm+-LICENSE.txt +Oniguruma-LICENSE.txt +OpenSSL-LICENSE.txt +LibreSSL-LICENSE.txt +PuTTY-LICENSE.txt +RE.txt +SFMT-LICENSE.txt +build_library_with_cmake.html +build_library_with_cmake_no_bom.md +build_library_with_cmake_utf8.html +build_with_cmake.html +build_with_cmake_no_bom.md +build_with_cmake_utf8.html +zlib-LICENSE.txt diff --git a/doc/en/html/reference/PuTTY-LICENSE.txt b/doc/en/html/reference/PuTTY-LICENSE.txt new file mode 100644 index 000000000..57ea292be --- /dev/null +++ b/doc/en/html/reference/PuTTY-LICENSE.txt @@ -0,0 +1,28 @@ +PuTTY is copyright 1997-2022 Simon Tatham. + +Portions copyright Robert de Bath, Joris van Rantwijk, Delian +Delchev, Andreas Schultz, Jeroen Massar, Wez Furlong, Nicolas Barry, +Justin Bradford, Ben Harris, Malcolm Smith, Ahmad Khalifa, Markus +Kuhn, Colin Watson, Christopher Staite, Lorenz Diener, Christian +Brabandt, Jeff Smith, Pavel Kryukov, Maxim Kuznetsov, Svyatoslav +Kuzmich, Nico Williams, Viktor Dukhovni, Josh Dersch, Lars Brinkhoff, +and CORE SDI S.A. + +Permission is hereby granted, free of charge, to any person +obtaining a copy of this software and associated documentation files +(the "Software"), to deal in the Software without restriction, +including without limitation the rights to use, copy, modify, merge, +publish, distribute, sublicense, and/or sell copies of the Software, +and to permit persons to whom the Software is furnished to do so, +subject to the following conditions: + +The above copyright notice and this permission notice shall be +included in all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, +EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF +MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND +NONINFRINGEMENT. IN NO EVENT SHALL THE COPYRIGHT HOLDERS BE LIABLE +FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF +CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION +WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. diff --git a/doc/en/html/reference/RLogin-LICENSE.txt b/doc/en/html/reference/RLogin-LICENSE.txt new file mode 100644 index 000000000..488730f19 --- /dev/null +++ b/doc/en/html/reference/RLogin-LICENSE.txt @@ -0,0 +1,21 @@ +MIT License + +Copyright (c) 2017 Culti + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. diff --git a/doc/en/html/reference/build_library_with_cmake.md b/doc/en/html/reference/build_library_with_cmake.md new file mode 100644 index 000000000..a78c0b0c3 --- /dev/null +++ b/doc/en/html/reference/build_library_with_cmake.md @@ -0,0 +1,92 @@ + +# libs directory + +- This directory for storing external libraries to build Tera Term. +- Source, library and executable file are stored for each compiler. +- Library is generated only once in advance. + +# Preparing + +## Visual Studio + +- cmake + - It is OK if PATH is passed. + - Do not use Cygwin's cmake(Not supporting for Visual Studio). + - Use cmake 3.11.4 when Visual Studio 2005 is used. +- perl + - It is necessary for converting character code of document and code of carriage return. + - compiling OpenSSL (Tera Term 5 does not link OpenSSL because it switched to LibreSSL) + - ActivePerl 5.8 or later, also cygwin perl. + - It will be searched automatically if PATH is not passed. + +## MinGW common (experimental) + +- Can be built with MinGW on Cygwin,MSYS2,linux(wsl). +- The cmake,make,(MinGW)gcc,(clang) and perl that work in each environment are required. + +# How to build + +You need to use Internet service because some archives are automatically downloaded. + +## Case of Visual Studio + +### By using batch file + +Execute libs/buildall_cmake.bat, and select Visual Studio. + + 1. Visual Studio 17 2022 Win32 + 2. Visual Studio 17 2022 x64 + 3. Visual Studio 17 2022 arm64 + 4. Visual Studio 16 2019 Win32 + 5. Visual Studio 16 2019 x64 + 6. Visual Studio 15 2017 + 7. Visual Studio 14 2015 + 8. Visual Studio 12 2013 + 9. Visual Studio 11 2012 + a. Visual Studio 10 2010 + b. Visual Studio 9 2008 + select no + +### By using cmake + +Case of Visual Studio 2022 x86 + + cmake -DCMAKE_GENERATOR="Visual Studio 17 2022" -DARCHITECTURE=win32 -P buildall.cmake + +Case of Visual Studio 2022 x64 + + cmake -DCMAKE_GENERATOR="Visual Studio 17 2022" -DARCHITECTURE=x64 -P buildall.cmake` + +Case of Visual Studio 2022 arm64 + + cmake -DCMAKE_GENERATOR="Visual Studio 17 2022" -DARCHITECTURE=arm64 -P buildall.cmake` + +## MinGW common + +Using cmake in each environment. + + cmake -DCMAKE_GENERATOR="Unix Makefiles" -DARCHITECTURE=32 -P buildall.cmake + +# Regarding each directory + +## Library directory generated + +- Library `*.h` and `*.lib` are created in the following: + - `oniguruma_{compiler}` + - `libressl_{compiler}` + - `putty` + - `SFMT_{compiler}` + - `zlib_{compiler}` + +## Downloaded archive directory + +- Downloaded archives are stored. +- Downloading automatically. +- Re-use these archives downloaded already. +- Can be removed if these archives do not need after building. + +## Build directory + +- Building under `build/oniguruma/{compiler}/`. +- Remove it in advance if rebuliding. +- Can be removed if this do not need after building. diff --git a/doc/en/html/reference/build_with_cmake.md b/doc/en/html/reference/build_with_cmake.md new file mode 100644 index 000000000..a7e644dc0 --- /dev/null +++ b/doc/en/html/reference/build_with_cmake.md @@ -0,0 +1,64 @@ +# How to build by using cmake + +- You can build Tera Term by using [cmake]()(EXPERIMENTAL). +- You can bulid using Visual Studio, NMake, MinGW + +## cmake version + +- 3.11.4+ +- When the cmake option is selected on Visual Studio 2017,2019,2022 installer, the cmake can be installed. +- The final version of cmake supporting for Visual Studio 2005 is 3.11.4. + +## How to build library + +- You can prepare libraries used by Tera Term. +- Refer to [`build_library_with_cmake.html`](). +- Refet to [`develop.html`](). + +## How to build Tera Term + +### Visual Studio + +Please execute below commands on the top of source tree. +Use Visual Studio IDE +(`-A win32` specifies x86; `-A x64` for x64, `-A arm64` for ARM64) + + mkdir build_vs2022 + cd build_vs2022 + cmake .. -G "Visual Stuido 17 2022" -A Win32 + cmake --build . --config Release -j + +To build installer + + cmake --build . --config Release --target Install + cmake --build . --config Release --target inno_setup + cmake --build . --config Release --target zip + +### NMake (Visual Studio, very experimental) + +Execute vcvars32.bat,etc to prepare an environment where nmake, cl are avaiable, +Run next commands. + + mkdir build_nmake + cd build_nmake + cmake .. -G "NMake Makefiles" -DCMAKE_BUILD_TYPE=Release + cmake --build . -j + +### MinGW (very experimental) + +- You can create the binary file by using MinGW. +- EXPERIMENTAL + +Please execute below commands on the top of source tree by using the cmake available on MinGW. + + mkdir build_mingw + cd build_mingw + cmake .. -G "Unix Makefiles" -DCMAKE_BUILD_TYPE=Release + cmake --build . -j + +When cygwin, linux + + mkdir build_mingw_cygwin + cd build_mingw_cygwin + cmake .. -G "Unix Makefiles" -DCMAKE_TOOLCHAIN_FILE=../mingw.toolchain.cmake -DCMAKE_BUILD_TYPE=Release + cmake --build . -j diff --git a/doc/en/html/reference/dev/unicode.html b/doc/en/html/reference/dev/unicode.html new file mode 100644 index 000000000..4fdd0715c --- /dev/null +++ b/doc/en/html/reference/dev/unicode.html @@ -0,0 +1,73 @@ + + + + +Internal block diagram + + + + + +

      Internal block diagram

      + +

      + Before Tera Term 5, the character set of the internal buffer was DBCS (Double byte Character Set). + For example, when "Language" is set to "Japanese", character coding in internal buffer was Shift_JIS. +

      + +

      + The character encoding of Tera Term 5 internal buffer is Unicode. +

      + +

      + The data flow is as follows. +

      + + +
      +                                                                              +--------------+
      +                              +------------------------+ Code:Unicode         |              |
      +                              |                        +--------------------->+  Window      |
      +                              |  buffer@buffer.c       |                      |   Display    |
      +                              |   Code:Unicode         | Code:Unicode         |   Print      |
      +                              |                        |  BuffPutUnicode()    |              |                                         +----------+
      +                              |                        +<------------------+  +--------------+          +-----------------------+      |          |
      +                              +------------------------+                   |                            |                       |      |Log File  |
      +                                                                           +----------------------------+ VTParse()@vtterm.c    +----->+          |
      +                              +------------------------+ CommRead1Byte()                                |  Terminal             |      |          |
      +                              |                        +----------------------------------------------->+                       |      +----------+
      +                              |  Input buffer@ttpcmn   |                                                |                       |
      ++-----------+                 |   Code:Input           | Code:                                          +----+------------------+
      +|           |                 |                        |  Unicode to Input    +--------------+               |
      +|  Socket   +---------------->+                        +<---------------------+              |               |
      +|  Serial   |  CommReceive()  +------------------------+  CommTextEchoW()     |  Talker      |               |
      +|  Pipe     |                                             CommBinaryEcho()    |   Keyboard   |               | Code:Unicode(UTF-8)
      +|  Plugin   |                 +------------------------+                      |   SendMem    |               |  DDEPut1()
      +|           +<----------------+                        | Code:                |    File      |               |
      ++-----------+  CommSend()     |  Output buffer@ttpcmn  |  Unicode to Output   |    Clipboard |               |
      +                              |   Code:Output          +<---------------------+    macro     +<---------+    |
      +                              |                        |  CommTextOutW()      |              |          |    |
      +                              |                        |  CommBinaryOut()     +--------------+          |    |
      +                              +------------------------+  CommRawOut()                                  |    |
      +                                                                                                        |    |
      +                                                                                                        |    |
      +                                                                                                        |    |
      +                                                                                                        |    v
      +                                           +-------------------+      DDE, UTF-8/binary               +-+----+-----------+
      +                                           |                   +------------------------------------->+                  |
      +                                           |  ttpmacro.exe     |                                      |  ttdde.c         |
      +                                           |                   |                                      |                  |
      +                                           |                   |      DDE, UTF-8                      |                  |
      +                                           |                   +<-------------------------------------+                  |
      +                                           +-------------------+                                      +------------------+
      +
      + + +

      + On Windows 95/98/Me, key input is converted to Unicode before processing. + When drawing, characters are converted from Unicode to MBCS. +

      + + + diff --git a/doc/en/html/reference/dev/win32api.html b/doc/en/html/reference/dev/win32api.html new file mode 100644 index 000000000..800cfc1ce --- /dev/null +++ b/doc/en/html/reference/dev/win32api.html @@ -0,0 +1,94 @@ + + + + +Win32API + + + + + +

      Win32 API

      + +Notes on Win32 API + +

      ini file

      + +

      +ini file has two type that is classified by character code, ACP (Shift_JIS in Japanese) and Unicode (UTF-16 with LE BOM).
      +And there are two version Win32 APIs for read/write ini file. ANSI version (GetPrivateProfileStringA, WritePrivateProfileStringA etc) with char * arguments, and wide character version (GetPrivateProfileStringW, WritePrivateProfileStringW etc) with wchar_t * arguments.
      +Combination of ini file (ACP, Unicode) and API (ANSI version, wide character version) makes 4 patterns. +

      + +
        +
      • ACP ini file : Get/WritePrivateProfileStringA
      • +
      • ACP ini file : Get/WritePrivateProfileStringW
      • +
      • Unicode (UTF-16LE) ini file : Get/WritePrivateProfileStringA
      • +
      • Unicode (UTF-16LE) ini file : Get/WritePrivateProfileStringW
      • +
      + +

      +If Windows 2000 or later, conversion is automatically performed inside API, fit to character code of ini file. +

      + +
        +
      • When ANSI API read/write a Unicode ini file, conversion is automatically performed.
      • +
      • When wide character API read/write a ACP ini file, conversion is automatically performed.
      • +
      • So possible to use the API transparently regardless of the character encoding of the ini file.
      • +
      • If Unicode characters that cannot be represented by ACP are written to a non-Unicode ini file, they are replaced by "?" and written to the file.
      • +
      • If the file has a UTF-16LE BOM (0xff 0xfe) at the beginning, the ini file is regarded as Unicode file. +
          +
        • When a file is not exist. When It is created with the WritePrivateProfileStringA/W, it will be written in ACP.
        • +
        • When a file is already exist that only included BOM (0xff 0xfe), write by WritePrivateProfileStringA/W, it will be written in Unicode.
        • +
        +
      • +
      + +

      +If Windows NT 4, "ANSI API and ACP ini file" and "wide character API and ACP ini file" combination will works fine.
      +When Wide character API read/write a ACP ini file, conversion is automatically performed. +

      + +

      +If Windows 95, 98, Me, only "ANSI API and ACP ini file" combination will works fine.
      +Automatically conversion does not seem to be work. +

      + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
      Windows 2000-Windows NT 4Windows 95, 98, Me
      ANSI APIWide APIANSI APIWide APIANSI APIWide API
      ACP ini fileOKOKOKOKOKNG
      Unicode (UTF-16LE) ini fileOKOKNGNGNGNG
      + + diff --git a/doc/en/html/reference/develop-build.html b/doc/en/html/reference/develop-build.html new file mode 100644 index 000000000..fa15acc73 --- /dev/null +++ b/doc/en/html/reference/develop-build.html @@ -0,0 +1,280 @@ + + + + +Development environment & Libraries + + + + + +

      Development environment & Libraries

      + +
        +
      1. Build environment
      2. +
      3. How to build (Quick Start) +
          +
        1. Checkout source code
        2. +
        3. Build
        4. +
        +
      4. +
      5. How to build (Detail) +
          +
        1. Clone source code
        2. +
        3. Build libaries
        4. +
        5. Build Tera Term
        6. +
        7. Build TTSSH
        8. +
        9. Build TTProxy
        10. +
        11. Build TTXKanjiMenu
        12. +
        13. Build TTXSamples
        14. +
        15. Build TeraTerm Menu
        16. +
        17. Build CygTerm
        18. +
        19. Build Cyglaunch
        20. +
        21. Build HTML help file
        22. +
        23. Create installer
        24. +
        +
      6. +
      + +
      + +

      Build environment

      + +
        +
      • Install Visual Studio Community 2022 +
          +
        • Desktop development with C++
        • +
        • C++ v14.30 (17.0) MFC for v143 build tools (x86 & x64)
          + HTML Help Compiler (hhc.exe) is installed. +
        • +
        +
      • +
      • Install Cygwin
        + You can run buildtools\install_cygwin.bat to install Cygwin environment only for CygTerm+ compile.
        + Please read this page to use existing Cygwin environment. +
      • +
      • Install Perl
      • +
      • Install Git for Windows
      • +
      • Install CMake
      • +
      • Install Inno Setup
      • +
      + +

      +You can install new tools for Tera Term, but you can also choice using existing tools for build Tera Term.
      +If installer\release.bat cannot find a installed tool, copy installer\toolinfo_sample.bat as installer\toolinfo.bat, and edit it.
      +And if necessary, copy buildtools\svnrev\toolinfo_sample.txt as buildtools\svnrev\toolinfo.txt, and edit it. +

      + +

      How to build (Quick Start)

      + +

      Checkout source code

      + +

      +Clone source code from GitHub (https://github.com/TeraTermProject/teraterm). +

      + +

      Build

      + +

      +Run installer\release.bat, and select 3. +

      + +

      How to build (Detail)

      + +

      Clone source code

      + +

      +Clone source code from GitHub (https://github.com/TeraTermProject/teraterm). +

      + +

      Build libaries

      + +

      +Launch "x86 Native Tools Command Prompt for VS 2022" batch file from start menu, or set appropriate directory to PATH.
      +You can run libs\buildall.bat to build all libraries instead of run each batch files. * +

      + +
        +
      • Oniguruma +
          +
        1. Extract oniguruma source into libs/oniguruma directory.
        2. +
        3. Run libs\buildoniguruma6.bat. *
        4. +
        +
      • +
      • SFMT +
          +
        1. Extract SFMT source into libs/SFMT directory.
        2. +
        3. Run libs\buildSFMT.bat. *
        4. +
        5. Modify version information in libs/SFMT/SFMT_version_for_teraterm.h if necessary.
        6. +
        +
      • +
      • LibreSSL +
          +
        1. Extract LibreSSL source into libs/libressl directory.
          +
        2. Run buildlibressl.bat. *
        3. +
        +
      • +
      • Zlib +
          +
        1. Extract zlib source into libs/zlib directory.
        2. +
        3. Run buildzlib.bat. *
        4. +
        +
      • + +
      • The reference C implementation of Argon2 +
          +
        1. Extract argon2 source into libs/argon2 directory.
        2. +
        +
      • +
      • cJSON +
          +
        1. Extract cJSON source into libs/cJSON directory.
        2. +
        +
      • +
      + +

      Build Tera Term

      + +
        +
      1. Open teraterm\ttermpro.sln with Visual Studio.
        + The linefeed code of .sln file must be "CR+LF".
      2. +
      3. Build Tera Term solution.
      4. +
      5. Tera Term execution program files will be generated in teraterm\Debug / teraterm\Release directory if the building is successful.
      6. +
      + +

      Build TTSSH

      + +common_static.lib must be built beforehand by teraterm\ttermpro.sln. + +
        +
      1. Open ttssh2\ttssh.sln with Visual Studio.
      2. +
      3. Build TTSSH solution.
      4. +
      5. TTSSH DLL module will be generated in ttssh2\ttxssh\Debug / ttssh2\ttxssh\Release directory if the building is successful.
      6. +
      + +

      Build TTProxy

      + +common_static.lib must be built beforehand by teraterm\ttermpro.sln. + +
        +
      1. Open TTProxy\TTProxy.sln with Visual Studio.
      2. +
      3. Build TTProxy solution.
      4. +
      5. TTProxy DLL module will be generated in TTProxy\Debug / TTProxy\Release directory if the building is successful.
      6. +
      + +

      Build TTXKanjiMenu

      + +common_static.lib must be built beforehand by teraterm\ttermpro.sln. + +
        +
      1. Open TTXKanjiMenu\ttxkanjimenu.sln with Visual Studio.
      2. +
      3. Build TTXKanjiMenu solution.
      4. +
      5. Ttxkanjimenu DLL module will be generated in TTXKanjiMenu\Debug / TTXKanjiMenu\Release directory if the building is successful.
      6. +
      + +

      Build TTXSamples

      + + + +common_static.lib must be built beforehand by teraterm\ttermpro.sln. + +
        +
      1. Open TTXSamples\TTXSamples.sln with Visual Studio.
      2. +
      3. Build TTXSamples solution.
      4. +
      5. DLL modules will be generated in TTXSamples\Debug / TTXSamples\Release directory if the building is successful.
      6. +
      + + + +

      Build TeraTerm Menu

      + +common_static.lib must be built beforehand by teraterm\ttermpro.sln. + +
        +
      1. Open ttpmenu\ttpmenu.sln with Visual Studio.
      2. +
      3. Build ttpmenu solution.
      4. +
      5. ttpmenu.exe will be generated in ttpmenu\Debug / ttpmenu\Release directory if the building is successful.
      6. +
      + +

      Build CygTerm+

      + +
        +
      1. Launch Cygwin shell and go to cygterm directory. +
        +# cd cygterm
        +
        +
      2. +
      3. Compile CygTerm+. +
        +# make
        +
        +
      4. +
      5. cygterm.exe will be generated.
      6. +
      + +

      Build Cyglaunch

      + +common_static.lib must be built beforehand by teraterm\ttermpro.sln. + +
        +
      1. Open cygwin\cygwin.sln with Visual Studio.
      2. +
      3. Build cygwin solution.
      4. +
      5. cyglaunch.exe will be generated in cygwin\Debug / cygwin\Release directory if the building is successful.
      6. +
      + +

      Build HTML help file

      + +
        +
      1. Run doc\makechm.bat.
      2. +
      + +

      Create installer

      + +
      +
      When use AppVeyor
      +
      + Run "NEW BUILD" in AppVeyor.
      + installer\release.bat is called. +
      +
      When use installer\release.bat
      +
      + Run installer\release.bat to create installer and zip.
      + File name is constructed from buildtool\svnrev\sourcetree_info.bat. It is written by buildtools\svnrev\svnrev.bat from teraterm\common\tt-version.h. +
        +
      • + Run installer\release.bat.
        + Create installer in installer\iscc.bat called installer\release.bat. +
      • +
      • A installer and zipped portable version is generated in installer\Output folder.
      • +
      +
      +
      When use Inno Script Studio
      +
      + It is easier to use installer\release.bat when create an RC,release.
      + Debugging installer is easy to use Inno Script Studio. + File name of installer is constructed from definition of installer\teraterm.iss. File name of portable version is constructed from buildtool\svnrev\sourcetree_info.bat. +
        +
      • Open installer\teraterm.iss with Inno Script Studio, and create installer by "Project"-"Compile."
      • +
      • A installer and portable version is generated in installer\Output folder.
      • +
      • Compress portable version with zip.
      • +
      +
      +
      + + + diff --git a/doc/en/html/reference/develop-environment.html b/doc/en/html/reference/develop-environment.html new file mode 100644 index 000000000..29e4efcb3 --- /dev/null +++ b/doc/en/html/reference/develop-environment.html @@ -0,0 +1,103 @@ + + + + +Create development environment & Build + + + + + +

      Create development environment & Build

      + +
        +
      1. Compiler, Tools
      2. +
      3. Libraries
      4. +
      + +
      + +

      Compiler, Tools

      + +

      +Compiler and tools used for release in Tera Term Project: +

      + + + +

      +Following tools are needed to build Tera Term: +

      + + + +

      Libraries

      + + + + + diff --git a/doc/en/html/reference/develop-memo.html b/doc/en/html/reference/develop-memo.html new file mode 100644 index 000000000..5c5b271a5 --- /dev/null +++ b/doc/en/html/reference/develop-memo.html @@ -0,0 +1,622 @@ + + + + +Note for development + + + + + +

      Note for development

      + +
        +
      1. Add entry to TERATERM.INI
      2. +
      3. Support i18n message
      4. +
      5. What to do when new macro command is added?
      6. +
      7. Naming rule to add menu ID
      8. +
      9. Icon
      10. +
      11. Parts that need to be corrected when update a library
      12. +
      13. Dump
      14. +
      + +
      + +

      Add entry to TERATERM.INI

      + +

      When a new entry is added

      + +

      +When a new feature is add, the behavior is changed. +But some users don't hope new behavior, they hopes traditional behavior.
      +Provide a way to select the behavior by adding a new entry to TERATERM.INI. +

      + +

      Default value

      + +

      +For almost users, if new behavior is useful, safety and doesn't make confuse, default value will be `on.'
      +Otherwise it should to be 'off.' +

      + +

      Entry name

      + +

      +Unfortunately, the confusing entries such as EnableFoo... and DisableBar... are included.
      +It recommends that the new name like as Baz.... +

      + +

      Changes

      + +
        +
      • source code +
          +
        • read/write INI file
          + teraterm\ttpset\ttset.c
        • +
        • struct tttset
          + teraterm\common\tttypes.h
        • + To make a plugin work in both Tera Term 4 (TT4) and Tera Term 5 (TT5), it is necessary to ensure compatibility with the structure of TT4.
          + Therefore, new members should be added at the end.
          + Similarly, any members that are no longer needed should not be deleted but renamed to reserve_XXX and kept. +
        +
      • +
      • Document +
          +
        • All items of Tera Term setup file
          + setup/teraterm-ini.html
        • +
        • help for setup dialog (when UI for change is present in a dialog)
          + dialog page under menu
        • +
        • help for setup item (when UI for change is not present in a dialog)
          + category page under setup
        • +
        +
      • +
      • Default INI file
        + installer\release\TERATERM.INI
      • +
      + + +

      Support i18n message

      + +

      Add new i18n message

      + +
        +
      • Source code
        + Read langage file
      • +
      • If a message is on dialog, put English message as default text
      • +
      • Modify language file
        + Modify files under installer/release/lang_utf8 folder. +
          +
        • English.lng (English) +
            +
          • Add English message.
          • +
          • Describe today as message update date.
          • +
          • Last translate date is not present in this file.
          • +
          • This language file is not read from program. This is a reference for translate to other language.
          • +
          +
        • +
        • Japanese.lng (Japanese) +
            +
          • Add Japanese message.
          • +
          • Describe today as message update date.
          • +
          • Last translate date is not present in this file.
          • +
          +
        • +
        • Modify other language file +
            +
          • Add English message
          • +
          • Describe today as message update date.
          • +
          • Do not update last translate date, because translation is not updated.
          • +
          +
        • +
        +
      • +
      + +

      Translate i18n message

      + +
        +
      • Modify language file +
          +
        • Translate English message in language file to target language.
        • +
        • Do not update update date.
        • +
        • Describe today as last translate date.
        • +
        +
      • +
      + + +

      What to do when new macro command is added?

      + +
        +
      • Coding +
          +
        • get a new number of command internal ID.
          + ... teraterm/ttmacro/ttmparse.h
        • +
        • add a if statement to below function.
          + ... CheckReservedWord@teraterm/ttmacro/ttmparse.c
        • +
        • add a caller doing the macro command.
          + ... ExecCmnd@teraterm/ttmacro/ttl.c
        • +
        • make a function code for the macro command.
        • +
        +
      • +
      • Help topic +
          +
        • make the command help file.
          + ... doc/LANG/html/macro/command/hogefunc.html
        • +
        • add to command index page.
          + ... doc/LANG/html/macro/command/index.html
        • +
        • add the file to help topic.
          + ... doc/LANG/teraterm.hhc
        • +
        • get a new number of context ID in help page.
          + The value is internal ID + 92000.
          + ... teraterm/common/helpid.h
        • +
        • make the alias between context ID and calling file.
          + Open the .hhp file by using Text Editor, added a html line in [ALIAS] tag.
          + ... doc/LANG/teraterm.hhp
        • +
        +
      • +
      + + + + +
      +The first digit is 5.
      +
      +
      +The second digit is:
      +  Tera Term VT window          0
      +  Tera Term TEK window         1
      +  TTSSH                        2
      +  TTProxy                      3
      +  TTXKanjiMenu                 4
      +
      +
      +The third digit is:
      +  [File] menu                  1
      +  [Edit] menu                  2
      +  [Setup] menu                 3
      +  [Control] menu               4
      +  [Window] menu                8
      +  [Help] menu                  9
      +
      + +

      +Example: adding a TTSSH menu under File menu +

      +
      +#define ID_SSHSCPMENU       52110
      +
      + + +

      Icon

      + +

      +Icon file includes 4bit 32px and 16px images, 32bit 256px, 48px, 32px and 16px images.
      +Each icon files include following kind images. +

      + +T (Tera Term) + + + + + + + + + + + + + + + + +
      icon file icon name 4bit 32px4bit 16px32bit 256px32bit 48px32bit 32px32bit 16px
      teraterm\common\teraterm.ico TTERM (Default)BMP BMP PNG BMP BMP BMP
      teraterm\common\teraterm_classic.icoTTERM_CLASSIC BMP BMP - - - -
      teraterm\common\teraterm_3d.ico TTERM_3D BMP BMP PNG BMP BMP BMP
      teraterm\common\teraterm_flat.ico TTERM_FLAT BMP BMP PNG BMP BMP BMP
      + +VT (VT Window) + + + + + + + + + + + + + + + + +
      icon file icon name 4bit 32px4bit 16px32bit 256px32bit 48px32bit 32px32bit 16px
      teraterm\common\vt.ico VT (Default)BMP BMP PNG BMP BMP BMP
      teraterm\common\vt_classic.icoVT_CLASSIC BMP BMP - - - -
      teraterm\common\vt_3d.ico VT_3D BMP BMP PNG BMP BMP BMP
      teraterm\common\vt_flat.ico VT_FLAT BMP BMP PNG BMP BMP BMP
      + +TEK (TEK Windows) + + + + + + + +
      icon file icon name4bit 32px4bit 16px32bit 256px32bit 48px32bit 32px32bit 16px
      teraterm\common\tek.icoTEK BMP BMP - - - -
      + +M (Macro) + + + + + + + + + + + + + +
      icon file icon name4bit 32px4bit 16px32bit 256px32bit 48px32bit 32px32bit 16px
      teraterm\ttpmacro\ttmacro.ico - BMP BMP PNG BMP BMP BMP
      teraterm\ttpmacro\ttmacro_3d.ico - BMP BMP PNG BMP BMP BMP
      teraterm\ttpmacro\ttmacro_flat.ico- BMP BMP PNG BMP BMP BMP
      + +MF (Macro File) + + + + + + + +
      icon file icon name4bit 32px4bit 16px32bit 256px32bit 48px32bit 32px32bit 16px
      teraterm\ttpmacro\ttmacrof.ico- BMP BMP PNG BMP BMP BMP
      + +keycode + + + + + + + +
      icon file icon name4bit 32px4bit 16px32bit 256px32bit 48px32bit 32px32bit 16px
      teraterm\keycode\keycode.ico- BMP BMP - BMP - -
      + +TTSSH + + + + + + + + + + + + + + + + + + + +
      icon file icon name 4bit 32px4bit 16px32bit 256px32bit 48px32bit 32px32bit 16px
      teraterm\ttpmacro\ttsecure.ico flat2 (Default)BMP BMP PNG BMP BMP BMP
      teraterm\ttpmacro\ttsecure_classic.icoclassic BMP BMP - - - -
      teraterm\ttpmacro\ttsecure_yellow.ico yellow BMP BMP PNG BMP BMP BMP
      teraterm\ttpmacro\ttsecure_green.ico green BMP BMP PNG BMP BMP BMP
      teraterm\ttpmacro\ttsecure_flat.ico flat BMP BMP PNG BMP BMP BMP
      + +TeraTerm Menu + + + + + + + +
      icon file icon name 4bit 32px4bit 16px32bit 256px32bit 48px32bit 32px32bit 16px
      ttpmenu\teraterm.ico- BMP BMP - BMP BMP BMP
      + +Cygterm+ + + + + + + + +
      icon file icon name 4bit 32px4bit 16px32bit 256px32bit 48px32bit 32px32bit 16px
      cygwin\cygterm\cygterm.icoCYGTERM BMP BMP - BMP BMP BMP
      + +

      +The store order of image files in icon file is "bit depth ASC", "pixel size DESC."
      +Otherwise, when a program load an icon image without specifying pixel size for get maximum size image, API returns first image. +

      + +

      +Icon file include 4-bit images.
      +Windows NT 4.0 supports only 4-bit icon. And notification area icon on Windows 2000 supports only 4-bit icon.
      +4-bit color palette is followings: +

      + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
        #000000(0,0,0)
        #800000(128,0,0)
        #ff0000(255,0,0)
        #ff00ff(255,0,255)
        #008080(0,128,128)
        #008000(0,128,0)
        #00ff00(0,255,0)
        #00ffff(0,255,255)
        #000080(0,0,128)
        #800080(128,0,128)
        #0000ff(0,0,255)
        #c0c0c0(192,192,192)
        #808080(128,128,128)
        #808000(128,128,0)
        #ffff00(255,255,0)
        #ffffff255,255,255
      + +

      +Source file of each icon images are followings: +

      + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
      source filebitTVTMacroSSHCygwin
      teraterm\common\flat_icon_16.psd4bitvvvvv
      32bitvvvvv
      teraterm\common\flat_icon_32.psd4bitvvvvv
      32bitvvvvv
      teraterm\common\flat_icon_48.psd32bitvvvvv
      teraterm\common\flat_icon_256.psd32bitvvvv-
      + + + + + + + + + + + +
      source filebitKeycode
      teraterm\common\keycode_48.psd4bitv
      + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
      source filebitTVTMacroMacro FileSSHCygwin
      teraterm\common\flat2_icon_16.psd4bitvvvvvv
      32bitvvvvvv
      teraterm\common\flat2_icon_32.psd4bitvvvvvv
      32bitvvvvvv
      teraterm\common\flat2_icon_48.psd32bitvvvvvv
      teraterm\common\flat2_icon_256.psd32bitvvvvv-
      + + +

      Parts that need to be corrected when update a library

      + +

      Files

      + +
        +
      • doc/(en|ja)/html/about/history.html +
          +
        • Add to "Misc" section of a component which uses the library.
        • +
        +
      • +
      • doc/(en|ja)/html/reference/develop.html +
          +
        • Modify library version.
        • +
        +
      • +
      • libs/download.cmake +
          +
        • Modify version in SRC_URL
        • +
        • Modify version in DIR_IN_ARC
        • +
        • Modify ARC_HASH (for check corruption due to download) +
            +
          • Use hash from official site. (LibreSSL, Oniguruma, zlib)
          • +
          • If official site does not post hash, calc it. (argon2, cJSON, SFMT)
          • +
          +
        • +
        • Modify CHECK_HASH (for check version) +
            +
          • Calc hash of a file for version check.
          • +
          +
        • +
        +
      • +
      • Under add/manual folder of TeraTermProject/update_website repository +
          +
        • License files for web site is managed in TeraTermProject/update_website repository.
          + Replace a license file when it is cahnged.
        • +
        +
      • +
      + + +

      Calc hash

      + +
      +% sha256sum foo.bar
      +% openssl dgst -sha256 foo.bar
      +
      + + +

      Dump

      + +About debug with dump file. + +

      +Required Files +

      +
      dmp file(mini dump file)
      +
      + Output to folder %LOCALAPPDATA%\teraterm5 + when ttermpro.exe crash.
      + File name will be teraterm_YYYMMDD-HHMMSS_HASH.dmp. +
      + +
      pdb file
      +
      + pdb = program database files (symbol files)
      + debug infomation file for exe file +
      + +
      exe file
      +
      + ttermpro.exe +
      +
      + +

      +How to use + +

        +
      • click dump file to start Visual Studio
      • +
      • click [Debugging in native only]
      • +
      + + + + diff --git a/doc/en/html/reference/develop-release.html b/doc/en/html/reference/develop-release.html new file mode 100644 index 000000000..0811612f2 --- /dev/null +++ b/doc/en/html/reference/develop-release.html @@ -0,0 +1,300 @@ + + + + +How to release Tera Term installation package + + + + + +

      How to release Tera Term installation package

      + +
        +
      1. From start release until create RC
      2. +
      3. From create RC until release
      4. +
      5. Release
      6. +
      7. About code freeze
      8. +
      + +
      + +

      +To release Tera Term installation package is shown in the following step: +

      + +

      From start release until create RC

      + +
        +
      1. Confirm ticket and branches. +
          +
        • Confirm in project team. +
            +
          • Organize / decide whether to include bug fix / feature in this release or defer.
          • +
          +
        • +
        • Merge branches +
            +
          • Verify trunk / 4-stable and working branches.
          • +
          +
        • +
        • Close tickets. +
            + +
          +
        • + +
        +
      2. +
      3. Confirm tools, libraries, import sources. + + +
      4. + +
      + +

      From create RC until release

      + +
        +
      1. Confirm documents. +
          + +
        +
      2. +
      3. Increment the version while RC release process. +
          +
        • + teraterm\common\tt-version.h
          + set TT_VERSION_SUBSTR to "RC". +
          +  #define TT_VERSION_MAJOR             5
          +  #define TT_VERSION_MINOR             0
          +- #define TT_VERSION_SUBSTR            "dev"
          ++ #define TT_VERSION_SUBSTR            "RC"
          +
          + TT_VERSION_MINOR is already incremented yet. It is incremented immediately after previous release. +
        • +
        • ttssh2\ttxssh\ttxssh-version.h
          + TTSSH_VERSION_MINOR is already incremented yet. It is incremented immediately after previous release. +
        • +
        • ttpmenu\ttpmenu.rc // only modifying
        • +
        • TTProxy\TTProxy.rc // only modifying
        • +
        • TTXKanjiMenu\ttxkanjimenu.rc // only modifying
        • +
        • + installer\teraterm.iss
          + Change to "RC" and enable create archive. +
          +- #define AppVer "5.0-dev"
          ++ #define AppVer "5.0-RC"
          +
          +  [PreCompile]
          +  Name: makechm.bat
          +- Name: build.bat
          +- ;Name: build.bat; Parameters: rebuild
          ++ ;Name: build.bat
          ++ Name: build.bat; Parameters: rebuild
          +  
          +  [PostCompile]
          +- ;Name: makearchive.bat; Parameters: release
          ++ Name: makearchive.bat; Parameters: release
          +
          +
        • +
        +

        + By way of exception, CygTerm+ always upgrades not regarding Tera Term release process when the patch is committed.
        + The release date is the day committed by a developer.
        + Because user can get gcc compiler for free. +

        +
      4. +
      5. Increment the year of last publication of copyright notice if it is first release in this year. +
          +
        • teraterm\keycode\keycode-version.rc // VERSIONINFO
        • +
        • teraterm\teraterm\tt-version.rc // VERSIONINFO
        • +
        • teraterm\ttpcmn\ttpcmn-version.rc // VERSIONINFO
        • +
        • teraterm\ttpdlg\ttpdlg.rc // dialog
        • +
        • teraterm\ttpmacro\ttm-version.rc // VERSIONINFO
        • +
        • ttssh2\ttxssh\ttxssh.rc // dialog
        • +
        • ttssh2\ttxssh\ttxssh-version.rc // VERSIONINFO
        • +
        • ttpmenu\ttpmenu.rc // dialog, VERSIONINFO
        • +
        • TTProxy\TTProxy.rc // dialog, VERSIONINFO(en), VERSIONINFO(ja)
        • +
        • TTXKanjiMenu\ttxkanjimenu.rc // VERSIONINFO
        • +
        • installer\teraterm.iss
        • +
        • installer\release\license.txt // Tera Term, TTSSH, Cygterm+, TTProxy, TeraTerm Menu, TTX KanjiMenu
        • +
        • doc\en\html\index.html
        • +
        • doc\en\html\about\copyright.html // Tera Term, TTSSH, Cygterm+, TTProxy, TeraTerm Menu, TTX KanjiMenu
        • +
        • doc\en\html\macro\index.html
        • +
        • doc\ja\html\index.html
        • +
        • doc\ja\html\about\copyright.html // Tera Term, TTSSH, Cygterm+, TTProxy, TeraTerm Menu, TTX KanjiMenu
        • +
        • doc\ja\html\macro\index.html
        • +
        +
      6. +
      7. Commit this state.
      8. +
      9. Create installer.
      10. +
      11. Test run installer, run and connect in all supported OS.
      12. +
      13. Push and build on AppVeyor
      14. +
      15. Announce RC release. + +
      16. +
      17. Get feedbacks. +

        If changed source code, redo "Confirm documents" and "Test run and connect in all supported OS."

        +
      18. +
      + +

      Release

      + +
        +
      1. Confirm documents. (same as above)
      2. +
      3. Remove "RC" string. +
          +
        • + teraterm\common\tt-version.h +
          +  #define TT_VERSION_MAJOR             5
          +  #define TT_VERSION_MINOR             0
          +- #define TT_VERSION_SUBSTR            "RC"
          ++ #undef TT_VERSION_SUBSTR
          +
          +
        • +
        • + installer\teraterm.iss
          +
          +- #define AppVer "5.0-RC"
          ++ #define AppVer "5.0"
          +
          +
        • +
        +
      4. +
      5. Modify release date. +
          +
        • html/about/history.html
        • +
        +
      6. +
      7. Create installer. +

        + Check that build and installer generation without error. +

        +
      8. +
      9. Commit this state.
      10. +
      11. Create SVN tag. +

        + Use annotated tags. + The naming rule is `v(version)' (e.g. v5.0). +

        +
        +git tag -a v5.0 -m "Release 5.0"
        +git push origin v5.0
        +
        +
      12. +
      13. Create installer. +

        use "github-release" project on AppVeyor.

        +
      14. +
      15. Add to GitHub "Releases." +
          +
        • select a new tag.
        • +
        • put installer and portable zip file.
        • +
        • write summary of release note (in Japanese and English) from changelog of document.
        • +
        +
      16. +
      17. Check anti-virus software +
          +
        • download by Chrome
        • +
        • download by Edge
          + Edge has "Defender SmartScreen", it notices "Uncommonly downloaded." Report it as incorrectly detected. +
        • +
        +
      18. +
      19. Update project web page (https://teratermproject.github.io). +

        How to update project home page (in Japanese).

        +
      20. +
      21. Announce release. + +
      22. +
      23. Increment the version +
          +
        • + teraterm/common/tt-version.h
          + Increment TT_VERSION_MINOR and set SUBSTR to "dev". +
          +  #define TT_VERSION_MAJOR             5
          +- #define TT_VERSION_MINOR             0
          +- #undef TT_VERSION_SUBSTR
          ++ #define TT_VERSION_MINOR             1
          ++ #define TT_VERSION_SUBSTR            "dev"
          +
          +
        • +
        • + ttssh2/ttssh/ttxssh-version.h
          + Increment TT_VERSION_MINOR. +
          +  #define TTSSH_VERSION_MAJOR             3
          +- #define TTSSH_VERSION_MINOR             0
          ++ #define TTSSH_VERSION_MINOR             1
          +
          +
        • +
        • + installer\teraterm.iss
          + Set AppVer to [next version]-dev. +
          +- #define AppVer "5.0"
          ++ #define AppVer "5.1-dev"
          +
          +  [PreCompile]
          +  Name: makechm.bat
          +- ;Name: build.bat
          +- Name: build.bat; Parameters: rebuild
          ++ Name: build.bat
          ++ ;Name: build.bat; Parameters: rebuild
          +  
          +  [PostCompile]
          +- Name: makearchive.bat; Parameters: release
          ++ ;Name: makearchive.bat; Parameters: release
          +
          +
        • +
        +
      24. +
      25. Update Chocolatey.
      26. +
      + +

      About code freeze.

      + +

      +After code freeze, only critical bug fix is able to committed.
      +Code freeze start with RC commit in development branch, and end with version increment commit.. +

      + + + diff --git a/doc/en/html/reference/develop.html b/doc/en/html/reference/develop.html new file mode 100644 index 000000000..da40c07f3 --- /dev/null +++ b/doc/en/html/reference/develop.html @@ -0,0 +1,25 @@ + + + + +Tera Term Development + + + + + +

      Tera Term Development

      + +
        +
      1. Development environment & Libraries
      2. +
      3. Create development environment & Build
      4. +
      5. Note for development
      6. +
      7. How to release Tera Term installation package
      8. +
      9. Source Code Overview
      10. +
      11. Notes on Win32 API
      12. +
      13. Internal block diagram
      14. +
      + + + diff --git a/doc/en/html/reference/develop.txt b/doc/en/html/reference/develop.txt deleted file mode 100644 index e6858ef6f..000000000 --- a/doc/en/html/reference/develop.txt +++ /dev/null @@ -1,323 +0,0 @@ -* Development Environment -- OS - Windows XP Professional / Windows 8 Pro / Windows 8.1 Pro / Windows 10 Pro -- Compiler used for release in Tera Term Project --- Visual Studio 2005 SP1 Standard Edition (or higher edition) - Microsoft Visual Studio 2005 Service Pack 1 MFC Security Update - Windows Server 2003 R2 Platform SDK(Microsoft Windows SDK for Windows 7 and .NET Framework 3.5 SP1) - Note: The OpenSSL will not able to build by using the Visual Studio 2005 Standard Edition. So, install the Windows Server 2003 R2 Platform SDK to link the "Crypt32.Lib" library. - Configure the INCLUDE and LIB environment variables to be given priority for the SDK installation directory. - e.g. INCLUDE "C:\Program Files\Microsoft Platform SDK for Windows Server 2003 R2\Include" - LIB "C:\Program Files\Microsoft Platform SDK for Windows Server 2003 R2\Lib" -- Supported Compiler --- Visual Studio 2008 SP1 Standard Edition (or higher edition) - Note: The executable program which was compiled by this version does not work on Windows NT 4.0, 95, 98 and Me. --- Visual Studio 2010 SP1 Professional Edition (or higher edition) - Note: The executable program which was compiled by this version does not work on Windows 2000, NT 4.0, 95, 98 and Me. --- Visual Studio 2012 Update 4 Professional Edition (or higher edition) - Note: The executable program which was compiled by this version does not work on Windows Vista, XP, 2000, NT 4.0, 95, 98 and Me. --- Visual Studio Community 2013 Update 5 - MFC MBCS DLL Add-on - Note: The executable program which was compiled by this version does not work on Windows Vista, XP, 2000, NT 4.0, 95, 98 and Me. --- Visual Studio Community 2015 Update 3 - Note: The executable program which was compiled by this version does not work on Windows Vista, XP, 2000, NT 4.0, 95, 98 and Me. --- Visual Studio Community 2017 - Note: The executable program which was compiled by this version does not work on Windows Vista, XP, 2000, NT 4.0, 95, 98 and Me. -- How to build with batch file - Please execute the batch file on command prompt of Visual Studio. Otherwise, please configure below environment variables. - Please call "(x86) Native Tools Command Prompt" of your Visual Studio to register new PATH regarding the compiler path and VSINSTALLDIR variable. - Example: INCLUDE C:\Program Files (x86)\Microsoft Visual Studio 12.0\VC\INCLUDE;C:\Program Files (x86)\Microsoft Visual Studio 12.0\VC\ATLMFC\INCLUDE;C:\Program Files (x86)\Windows Kits\8.1\include\shared;C:\Program Files (x86)\Windows Kits\8.1\include\um; - LIB C:\Program Files (x86)\Microsoft Visual Studio 12.0\VC\LIB;C:\Program Files (x86)\Microsoft Visual Studio 12.0\VC\ATLMFC\LIB;C:\Program Files (x86)\Windows Kits\8.1\lib\winv6.3\um\x86; - PATH C:\Program Files (x86)\Microsoft Visual Studio 12.0\Common7\IDE;C:\Program Files (x86)\Microsoft Visual Studio 12.0\VC\BIN;C:\Program Files (x86)\Windows Kits\8.1\bin\x86 - VSINSTALLDIR C:\Program Files (x86)\Microsoft Visual Studio 12.0\VC -- Installer - Inno Setup 5.6.1 ANSI (http://www.jrsoftware.org/isinfo.php) - Inno Setup Preprocessor - ISTool 5.3.0.1 (https://sourceforge.net/projects/istool/) -- others - Cygwin 1.5.x (1.7.x doesn't support Windows 9x) - ActivePerl 5.8 or later version - converts character-code and return-code of documents for building OpenSSL. - Subversion for Windows (http://sourceforge.net/projects/win32svn/) - Use the compatible version for check-outed svn version. - Extract into libs\svn. ("svnversion.exe" is located in libs\svn\bin directory.) - - -* Libraries -- Oniguruma 6.9.1 (https://github.com/kkos/oniguruma) -- OpenSSL 1.0.2r (http://www.openssl.org/) -- zlib 1.2.11 (http://www.zlib.net/) -- PuTTY 0.70 (http://www.chiark.greenend.org.uk/~sgtatham/putty/) -- SFMT 1.5.1 (http://www.math.sci.hiroshima-u.ac.jp/~m-mat/MT/SFMT/index.html) - - -* Notice for SVN commiter -- SVN repository for commiter is followings: - svn+ssh://svn.osdn.net/svnroot/ttssh2/trunk - -- Should not edit checkout file in copying directory. - The other modification code may be deleted in SVN server when you commit checkout file. Also, fix it carefully when the conflicting occurs. - -- Should not have opened checkout file. - SVN commit procedure may be failure while checkout file will have been opened. - -- Edit language files - Use the text editor supporting multi languages(vim, EmEditor, Notepad++, etc) to edit the language files(installer\release\lang\*.lng). - - -* Add entry to TERATERM.INI -- Entry name -Unfortunately, the confusing entries such as EnableFoo... and DisableBar... are included. It recommends that the new name like as Baz.... - - - -* Naming rule to add menu ID - -The first digit is 5. - -The second digit is: - Tera Term VT window 0 - Tera Term TEK window 1 - TTSSH 2 - TTProxy 3 - TTXKanjiMenu 4 - -The third digit is: - [File] menu 1 - [Edit] menu 2 - [Setup] menu 3 - [Control] menu 4 - [Window] menu 8 - [Help] menu 9 - - -Example: adding a TTSSH menu under File menu - -#define ID_SSHSCPMENU 52110 - - -* What to do when new macro command is added? - -- Coding --- get a new number of command internal ID. - ... teraterm/ttmacro/ttmparse.h --- add a if statement to below function. - ... CheckReservedWord@teraterm/ttmacro/ttmparse.c --- add a caller doing the macro command. - ... ExecCmnd@teraterm/ttmacro/ttl.c --- make a function code for the macro command. - -- Help topic --- make the command help file. - ... doc/LANG/html/macro/command/hogefunc.html --- add the file to help topic. - ... doc/LANG/teraterm.hhc --- get a new number of context ID in help page. - The value is internal ID + 92000. - ... teraterm/common/helpid.h --- make the alias between context ID and calling file. - Open the .hhp file by using Text Editor, added a html line in [ALIAS] tag. - ... doc/LANG/teraterm.hhp - - -* How to build Libraries - 1. PuTTY (used by TTSSH) - (1) Extract putty source into libs/putty directory. - - 2. Oniguruma (used by Tera Term Macro) - (1) Extract oniguruma source into libs/oniguruma directory. - (2) Launch 'Visual Studio 2005 Command Prompt' batch file from start menu. - (3) Move 'libs' directory on the command prompt. And run buildoniguruma6.bat. - - 3. OpenSSL (used by TTSSH) - (1) Extract openssl source into libs/openssl directory. - (2) When the libs/openssl/Makefile.bak file exists on the OpenSSL 1.0.0e or later, delete the file only once - (3) Launch 'Visual Studio 2005 Command Prompt' batch file from start menu. - (4) Move 'libs' directory on the command prompt. And run buildopenssl.bat. - - 4. Zlib (used by TTSSH) - (1) Extract zlib source into libs/zlib directory. - (2) Launch 'Visual Studio 2005 Command Prompt' batch file from start menu. - (3) Move 'libs' directory on the command prompt. And run buildzlib.bat. - - 5. SFMT (used by Tera Term Macro) - (1) Extract SFMT source into libs/SFMT directory. - (2) Launch 'Visual Studio 2005 Command Prompt' batch file from start menu. - (3) Move 'libs' directory on the command prompt. And run buildSFMT.bat. - - -* How to build Tera Term - To build Tera Term source code is shown in the following step: - And you should use Visual Studio 2005 Standard Edition later version to build Tera Term because Tera Term program links MFC library (Visual Studio 2005 Express Edition can't be used). - - 1. Checkout Tera Term source code from OSDN(https://osdn.net/projects/ttssh2/). - 2. Open teraterm\visualc\ttermpro.sln with Visual Studio. - The linefeed code of .sln file must be "CR+LF". - 3. Build Tera Term solution. - 4. Tera Term execution program will be generated in teraterm\visualc\bin directory if the building is successful. - - -* How to build TeraTerm Menu - 1. Checkout TeraTerm Menu source code from OSDN(https://osdn.net/projects/ttssh2/). - 2. Open ttpmenu\ttpmenu.sln with Visual Studio. - 3. Build ttpmenu solution. - 4. ttpmenu.exe will be generated in Release directory if the building is successful. - - -* How to build TTXKanjiMenu - 1. Checkout TTXKanjiMenu source code from OSDN(https://osdn.net/projects/ttssh2/). - 2. Open TTXKanjiMenu\ttxkanjimenu.sln with Visual Studio. - 3. Build ttpmenu solution. - 4. ttxkanjimenu.dll will be generated in TTXKanjiMenu directory if the building is successful. - - -* How to build TTProxy - To build TTProxy source code is shown in the following step: - And you need Visual Studio 2005(VC++8.0) to build. - - 1. Checkout TTProxy source code from OSDN(https://osdn.net/projects/ttssh2/). - 2. Open TTProxy\TTProxy.sln with Visual Studio. - 3. Build TTProxy solution. - 4. TTProxy DLL module will be generated in TTProxy directory if the building is successful. - - -* How to build TTSSH - To build TTSSH source code is shown in the following step: - And you need Visual Studio 2005(VC++8.0) and ActivePerl to build. - - * VS2005 Express Edition is able to build TTSSH. TTSSH links to ttpcmn.lib and it must be created beforehand. VS2005 Express Edition cannot build Tera Term, but it can create ttpcmn.lib - - * On VS2008 Express Edition, following error occurs: - .\ttxssh.rc(10) : fatal error RC1015: cannot open include file 'afxres.h'. - - To avoid this error, edit ttxssh.rc file. Delete the line of "afxres.h", and add 2 lines. - - - #include "afxres.h" - + #include - + #define IDC_STATIC -1 - - 1. Checkout TTSSH source code from OSDN(https://osdn.net/projects/ttssh2/). - 2. Open ttssh2\ttssh.sln with Visual Studio. - 3. Build TTSSH solution. - 4. TTSSH DLL will be generated in ttssh2\ttxssh directory if the building is successful. - - -* How to build CygTerm - To build CygTerm source code is shown in the following step: - - 1. Install Cygwin(http://www.cygwin.com/win-9x.html) to your PC. - Note: 1.7.x doesn't support Windows 9x. Use version 1.5.x. - 1.5.x doesn't seem support Windows 7. But a binary that is compiled by 1.5.x can execute in 1.7.x environment. - 2. Launch Cygwin shell and go to cygterm directory. - # cd cygterm - 3. Compile Cygterm. - # make - - -* How to build TTXSamples - To build TTXSamples source code is shown in the following step: - And you need Visual Studio 2005(VC++8.0) to build. - VS2005 Express Edition is able to build TTXSamples. - - 1. Checkout TTXSamples source code from OSDN(https://osdn.net/projects/ttssh2/). - 2. Open TTXSamples\TTXSamples.sln with Visual Studio. - 3. Build TTXSamples solution. - 4. TTXSamples DLL module will be generated in TTXSamples directory if the building is successful. - - -* How to build HTML help file - To build HTML help file is shown in the following step: - - 1. Intall HTML Help Workshop from below site: - http://www.microsoft.com/en-us/download/details.aspx?id=21138 - - 2. Copy document files with batch file on command prompt. - > cd teraterm\insatller - > convtext.bat - - 3. Select Open of File menu and open doc\en\teraterm.hhp file or doc\jp\teratermj.hhp. - - 4. Select Compile of File menu and HTML help file will be created. - - -* How to release Tera Term installation package - To release Tera Term installation package is shown in the following step: - - 0. Increment the version while RC release process. - - teraterm\common\tt-version.h - - ttssh2\ttxssh\ttxssh-version.h - - ttpmenu.rc // only modifying - - TTProxy.rc // only modifying - - ttxkanjimenu.rc // only modifying - - teraterm.iss - version up AppVer and add "RC" - comment out snapshot - change called batch files - - 1. Check latest libraries and tools. - Visual Studio - http://www.microsoft.com/japan/msdn/vstudio/downloads/default.aspx - Inno Setup - http://www.jrsoftware.org/isdl.php - Oniguruma - https://github.com/kkos/oniguruma - OpenSSL - http://www.openssl.org/ - zlib - http://www.zlib.net/ - PuTTY - http://www.chiark.greenend.org.uk/~sgtatham/putty/ - SFMT - http://www.math.sci.hiroshima-u.ac.jp/~m-mat/MT/SFMT/index.html - CygTerm - https://googledrive.com/host/0B1s-dM6d6yC4fmhEZ3c0VTNFWEFtV3daUlRGQmFHVnBmVHRybUNnUVliNWktNDRlZ2NnZTQ/index-e.html - LogMeTT - http://logmett.com/logmett-freeware - http://logmett.com/ttleditor - - 2. Check the document files. - - 3. Increase the software version and modify date. - - teraterm.iss - remove "RC" from AppVer - - html/about/hisotry.html - - Note: Don't update the version number until the release, because the installer does not overwrite file when versions are same. - - Note: By way of exception, CygTerm+ always upgrades not regarding Tera Term release process when the patch is committed. The release date is the day committed by a developer. The suffix of CygTerm+ version is patchlevel, and then a user can get gcc compiler for free. - - 4. Evaluate executable program file. - - Make installer package - Open "teraterm\installer\teraterm.iss" with ISTool and call [Project]-[Compile Setup] with InnoSetup. - - Test Tera Term installation and evaluate it. - - 5. Create SVN tag. - The naming rule is `teraterm-version'(ex. teraterm-4_82). - svn copy -m "Release 4.82" svn+ssh://svn.osdn.net/svnroot/ttssh2/trunk svn+ssh://svn.osdn.net/svnroot/ttssh2/tags/teraterm-4_82 - - 6. Re-checkout from svn tag. - - 7. Make installer package - Open "teraterm\installer\teraterm.iss" with ISTool and call [Project]-[Compile Setup] with InnoSetup. - - 8. Update OSDN project site. - - Add new release. - - Submit news. - - 9. Announce release to mailing list(in Japan). - - 10. Update OSDN project home page. - - 11. Delete snapshots. - - 12. Announce release to forum(in Canada). - - Announcements http://logmett.com/support-forums/5 - Create new topic in `Announcements' entry. - Change the type of previous Announcement from Announcement to Normal. - Delete third previous Announcement. - - 13. Announce release to Twitter. - https://twitter.com/Tera_Term - Post release announcement and pin. - - 14. Update Chocolatey diff --git a/doc/en/html/reference/image/ssh2_connect1_version.png b/doc/en/html/reference/image/ssh2_connect1_version.png new file mode 100644 index 000000000..6b715e5f5 Binary files /dev/null and b/doc/en/html/reference/image/ssh2_connect1_version.png differ diff --git a/doc/en/html/reference/image/ssh2_connect2_kex.png b/doc/en/html/reference/image/ssh2_connect2_kex.png new file mode 100644 index 000000000..44712dbc7 Binary files /dev/null and b/doc/en/html/reference/image/ssh2_connect2_kex.png differ diff --git a/doc/en/html/reference/image/ssh2_connect3_auth.png b/doc/en/html/reference/image/ssh2_connect3_auth.png new file mode 100644 index 000000000..d28583f4a Binary files /dev/null and b/doc/en/html/reference/image/ssh2_connect3_auth.png differ diff --git a/doc/en/html/reference/image/ssh2_connect4_channel.png b/doc/en/html/reference/image/ssh2_connect4_channel.png new file mode 100644 index 000000000..738c03448 Binary files /dev/null and b/doc/en/html/reference/image/ssh2_connect4_channel.png differ diff --git a/doc/en/html/reference/image/ssh2_disconnect.png b/doc/en/html/reference/image/ssh2_disconnect.png new file mode 100644 index 000000000..7e21c35a6 Binary files /dev/null and b/doc/en/html/reference/image/ssh2_disconnect.png differ diff --git a/doc/en/html/reference/image/ssh2_plantuml.txt b/doc/en/html/reference/image/ssh2_plantuml.txt new file mode 100644 index 000000000..ce87957e4 --- /dev/null +++ b/doc/en/html/reference/image/ssh2_plantuml.txt @@ -0,0 +1,479 @@ +https://www.plantuml.com/plantuml + +* ssh2_connect1_version.png +@startuml +right footer cf. RFC 4253 Section 4, Section 5 + +participant client as C +participant server as S + +C -> S: connect + +group Protocol Version Exchange + C <- S: identification string + note right: e.g. "SSH-1.99-OpenSSH_4.3p2 Debian-9\\n" + + C -> S: identification string + note left: e.g. "SSH-2.00-TTSSH/2.46 Win32\\n" + + note over C, S #ffffff: server using 1.99 and client using 2.0, then 2.0\n cf. RFC 4253 Section 5.1 + +end +@startuml + + + +* ssh2_connect2_kex.png +@startuml +right footer cf. RFC 4253 Section 7 + +participant client as C +participant server as S + +group Key Exhnage + group Algorithm Negotiation [cf. RFC 4253 Section 7.1] + note over C, S #ffffff + structure of supported algorithms: + name-list kex_algorithms + name-list server_host_key_algorithms + name-list encryption_algorithms_client_to_server + name-list encryption_algorithms_server_to_client + name-list mac_algorithms_client_to_server + name-list mac_algorithms_server_to_client + name-list compression_algorithms_client_to_server + name-list compression_algorithms_server_to_client + name-list languages_client_to_server + name-list languages_server_to_client + each algorithm is listed in order of preference + end note + + C -> S: SSH_MSG_KEXINIT + note left: client's supported algorithms + + C <- S: SSH_MSG_KEXINIT + note right: server's supported algorithms + + note over C, S #ffffff: decided to\n- supported by both side\n- highest priority at client side + end + + group process that corresponds to\nthe key exchange method [Diffie-Hellman key exchange\ncf. RFC 4253 Section 8] + + note over C, S #ffffff + everyone knows: + p ... prime + g ... generator + end note + + note over C, S #ffffff + both know: + V_C ... the client's identification string + V_S ... the server's identification string + I_C ... the payload of the client's SSH_MSG_KEXINIT + I_S ... the payload of the server's SSH_MSG_KEXINIT + end note + + note over C #ffffff: generates a random number x\ncomputes e = g^x mod p + + C -> S: SSH_MSG_KEXDH_INIT + note left: e + + note over S #ffffff + generates a random number y + computes f = g^y mod p + computes K = e^y mod p + H = hash(V_C || V_S || I_C || I_S || K_S || + e || f || K) + K_S ... public key of server's host key + s = signature of H with private key of server's host key + end note + + C <- S: SSH_MSG_KEXDH_REPLY + note right: K_S\nf\ns + + note over C #ffffff + verifies K_S is really the host key + (e.g. compare with known_hosts) + computes K = f^x mod p + H = hash(V_C || V_S || I_C || I_S || K_S || + e || f || K) + verifies the signature s on H + (decrypt s with K_S, and compare to H) + end note + + note over C, S #ffffff + both have: + shared secret ... K + exchange hash ... H + session identifier ... H from first exchange + end note + + else Diffie-Hellman Group Exchange\ncf. RFC 4419 + + note over C, S #ffffff + both know: + V_C ... the client's identification string + V_S ... the server's identification string + I_C ... the payload of the client's SSH_MSG_KEXINIT + I_S ... the payload of the server's SSH_MSG_KEXINIT + end note + + note over C #ffffff + min ... minimal size of p acceptable + n ... size of the modulus p that would like to receive + max ... maximal size of p acceptable + end note + + C -> S: SSH_MSG_KEX_DH_GEX_REQUEST + note left: min\nn\nmax + + note over S #ffffff: finds group that matchs client request size\n p ... prime\n g ... generator + + C <- S: SSH_MSG_KEX_DH_GEX_GROUP + note right: p\ng + + note over C #ffffff: generates a random number x\ncomputes e = g^x mod p + + C -> S: SSH_MSG_KEX_DH_GEX_INIT + note left: e + + note over S #ffffff + generates a random number y + computes f = g^y mod p + computes K = e^y mod p + H = hash(V_C || V_S || I_C || I_S || K_S || + min || n || max || g || e || f || K) + K_S ... public key of server's host key + s = signature of H with private key of server's host key + end note + + C <- S: SSH_MSG_KEX_DH_GEX_REPLY + note right: K_S\nf\ns + + note over C #ffffff + verifies K_S is really the host key + (e.g. compare with known_hosts) + computes K = f^x mod p + H = hash(V_C || V_S || I_C || I_S || K_S || + min || n || max || g || e || f || K) + verifies the signature s on H + (decrypt s with K_S, and compare to H) + end note + + note over C, S #ffffff + both have: + shared secret ... K + exchange hash ... H + session identifier ... H from first exchange + end note + + else Elliptic Curve Diffie-Hellman Key Exchange\ncf. RFC 5656 + + note over C, S #ffffff + everyone knows: + elliptic curve + G ... base point + end note + + note over C, S #ffffff + both know: + V_C ... the client's identification string + V_S ... the server's identification string + I_C ... the payload of the client's SSH_MSG_KEXINIT + I_S ... the payload of the server's SSH_MSG_KEXINIT + end note + + note over C #ffffff + generates a EC key pair + d_C ... private key + Q_C ... public key + Q_C = d_C * G + end note + + C -> S: SSH_MSG_KEX_ECDH_INIT + note left: Q_C + + note over S #ffffff + verifies Q_C is a valid key + generates a EC key pair + d_S ... private key + Q_S ... public key + Q_S = d_S * G + computes K + (x, y) = d_S * Q_C + K = x + H = hash(V_C || V_S || I_C || I_S || K_S || + Q_C || Q_S || K) + K_S ... public key of server's host key + s = signature of H with private key of server's host key + end note + + C <- S: SSH_MSG_KEX_ECDH_REPLY + note right: K_S\nQ_S\ns + + note over C #ffffff + verifies K_S is really the host key + (e.g. compare with known_hosts) + verifies Q_S is a valid key + computes K + (x', y') = d_C * Q_S + K = x' + H = hash(V_C || V_S || I_C || I_S || K_S || + Q_C || Q_S || K) + verifies the signature s on H + (decrypt s with K_S, and compare to H) + end note + + note over C, S #ffffff + both have: + shared secret ... K + exchange hash ... H + session identifier ... H from first exchange + end note + + end + + C -> S: SSH_MSG_NEWKEYS + + C <- S: SSH_MSG_NEWKEYS +end + +== Starting from here communication is encrypted. == + +@enduml + + + +* ssh2_connect3_auth.png +@startuml +right footer cf. RFC 4252, RFC 4253 + +actor user as U +participant Pageant as P +participant client as C +participant server as S + +group Service Request [cf. RFC 4253 Section 10] + + C -> S: SSH_MSG_SERVICE_REQUEST + note left: "ssh-userauth" + + C <- S: SSH_MSG_SERVICE_ACCEPT + note right: "ssh-userauth" + +end + +group Authentication + + C -> U: display Authentication dialog + + alt If CheckAuthListFirst is enabled, immediately after the Authentication dialog is displayed.\nOtherwise, after the OK button in the Authentication dialog is pressed. + + U -> C: + note left: user name + + C -> S: SSH_MSG_USERAUTH_REQUEST + note left: user name\n"ssh-connection"\n"none" + + C <- S: SSH_MSG_USERAUTH_FAILURE + note right: supported autentication methods + + end + + group process that corresponds to\nthe authentication method [password\ncf. RFC 4252 Section 8] + + U -> C: + note left: user name\npassword + + C -> S: SSH_MSG_USERAUTH_REQUEST + note left: user name\n"ssh-connection"\n"password"\npassword + + alt authentication success + C <- S: SSH_MSG_USERAUTH_SUCCESS + else authentication fail + C <- S: SSH_MSG_USERAUTH_FAILURE + end + + else publickey\ncf. RFC 4252 Section 7 + + U -> C: + note left: user name\nkey file for authentication\npassphrase + note over C #ffffff: read public key and private key from the file + + C -> S: SSH_MSG_USERAUTH_REQUEST + note left: user name\n"ssh-connection"\n"publickey"\nFALSE\npublic key algorithm name\npublic key + + note over S #ffffff: confirm that received public key is acceptable\n(included in authorized_keys, etc.j + + alt acceptable + C <- S: SSH_MSG_USERAUTH_PK_OK + else not acceptable + C <- S: SSH_MSG_USERAUTH_FAILURE + end + + note over C #ffffff: sign data that has session identifier,\npublic key, etc with private key + + C -> S: SSH_MSG_USERAUTH_REQUEST + note left: user name\n"ssh-connection"\n"publickey"\nTRUE\npublic key algorithm name\npublic key\nsignature + + note over S #ffffff: verifies public key and signature + + alt authentication success + C <- S: SSH_MSG_USERAUTH_SUCCESS + else authentication fail + C <- S: SSH_MSG_USERAUTH_FAILURE + end + + else keyboard-interactive\ncf. RFC 4256 + + U -> C: + note left: user name + + C -> S: SSH_MSG_USERAUTH_REQUEST + note left: user name\n"ssh-connection"\n"keyboard-interactive" + + C <- S: SSH_MSG_USERAUTH_INFO_REQUEST + note right: prompt + + loop authentication success or fail + + U -> C: + note left: response + + C -> S: SSH_MSG_USERAUTH_INFO_RESPONSE + note left: response + + alt have a request to client + C <- S: SSH_MSG_USERAUTH_INFO_REQUEST + note right: prompt + else authentication success + C <- S: SSH_MSG_USERAUTH_SUCCESS + else authentication fail + C <- S: SSH_MSG_USERAUTH_FAILURE + end + + end + + else publickey with Pageant + + U -> P: + note left: (preliminarily)\nkey file for authentication\npassphrase + + U -> C: + note left: user name + + P <- C: SSH2_AGENTC_REQUEST_IDENTITIES + note right #ffffff: request for public keys + + P -> C: SSH2_AGENTC_REQUEST_ANSWER + note left: all public keys that is added + + loop all public keys, until receive PK_OK or reach to limit of failure + C -> S: SSH_MSG_USERAUTH_REQUEST + note left: user name\n"ssh-connection"\n"publickey"\nFALSE\npublic key algorithm name\npublic key + + note over S #ffffff: confirm that received public key is acceptable\n(included in authorized_keys, etc.j + + alt acceptable + C <- S: SSH_MSG_USERAUTH_PK_OK + else not acceptable + C <- S: SSH_MSG_USERAUTH_FAILURE + end + end + + P <- C: SSH2_AGENTC_SIGN_REQUEST + note right: data that has session identifier,\npublic key, etc\n cf. RFC 4252 Section 7 + + note over P #ffffff: sign received data with the correspond private key + + P -> C: SSH2_AGENTC_SIGN_RESPONSE + note left: signature + + + C -> S: SSH_MSG_USERAUTH_REQUEST + note left: user name\n"ssh-connection"\n"publickey"\nTRUE\npublic key algorithm name\npublic key\nsignature + + note over S #ffffff: verifies public key and signature + + alt authentication success + C <- S: SSH_MSG_USERAUTH_SUCCESS + else authentication fail + C <- S: SSH_MSG_USERAUTH_FAILURE + end + + end +end + +@enduml + + + +* ssh2_connect4_channel.png +@startuml +right footer cf. RFC 4254 + +participant client as C +participant server as S + +group Channel Open + C -> S: SSH_MSG_CHANNEL_OPEN + note left: "session"\n cf. RFC 4254 Section 6.1 + + C <- S: SSH_MSG_CHANNEL_OPEN_CONFIRMATION + + alt ForwardAgent is enabled + C -> S: SSH_MSG_CHANNEL_REQUEST + note left: "auth-agent-req@openssh.com" + + C <- S: SSH_MSG_CHANNEL_SUCCESS + end + + C -> S: SSH_MSG_CHANNEL_REQUEST + note left: "pty-req" \n Pseudo-Terminal\n cf. RFC 4254 Section 6.2 + + C <- S: SSH_MSG_CHANNEL_SUCCESS + + C -> S: SSH_MSG_CHANNEL_REQUEST + note left: "shell" \n Shell\n cf. RFC 4254 Section 6.5 + + C <- S: SSH_MSG_CHANNEL_WINDOW_ADJUST + note right: SSH server's window size\n cf. RFC 4254 Section 5.2 + + C <- S: SSH_MSG_CHANNEL_SUCCESS + + C <- S: SSH_MSG_CHANNEL_DATA + note right: shell information + + note over C #ffffff: Passed to Tera Term core. \nTera Term then waits for recv() to return data. +end + +@enduml + + + +* ssh2_disconnect.png +@startuml +right footer cf. RFC 4254 Section 5.3 + +actor user as U +participant client as C +participant server as S +participant shell as SHELL + +U -> SHELL: logout + +S <-- SHELL: + +C <- S: SSH_MSG_CHANNEL_EOF + +C <- S: SSH_MSG_CHANNEL_REQUEST +note right: "exit-status"\n cf. RFC 4254 Section 6.10 + +C <- S: SSH_MSG_CHANNEL_CLOSE + +C -> S: SSH_MSG_CHANNEL_CLOSE + +C -> S: SSH_MSG_DISCONNECT +note left #ffffff: cf. RFC 4253 Section 11.1 + +note over C #ffffff: Closing TCP session and notifying Tera Term core\nthat session was closed. +@enduml diff --git a/doc/en/html/reference/keycode.html b/doc/en/html/reference/keycode.html new file mode 100644 index 000000000..e4c174610 --- /dev/null +++ b/doc/en/html/reference/keycode.html @@ -0,0 +1,37 @@ + + + + +KEYCODE.EXE for Tera Term + + + + + +

      KEYCODE.EXE for Tera Term

      + +

      +Copyright(C) 1994-1998 T. Teranishi
      +(C) 2004- TeraTerm Project
      +All Rights Reserved. +

      + +

      +KEYCODE.EXE is a utility which displays key codes used in the Tera Term's keyboard setup file. This text describes the usage of KEYCODE.EXE and the format of keyboard setup file.
      +Please read this text and Tera Term help for changing the keyboard configuration. Please do not ask the author questions about the keyboard configuration. +

      + +
      USAGE
      + +

      +When you run KEYCODE.EXE, the message "Push any key" will be displayed in the window.
      +When you press a key or a combination of keys (such as Ctrl+key), the message "Key code is XXXX." will be displayed. XXXX is a decimal number. +

      + +

      +PC key code is used in keyboard setup file. +

      + + + diff --git a/doc/en/html/reference/keycode.txt b/doc/en/html/reference/keycode.txt index 124084b58..4a294fc76 100644 --- a/doc/en/html/reference/keycode.txt +++ b/doc/en/html/reference/keycode.txt @@ -2,6 +2,7 @@ T. Teranishi Copyright (C) 1994-1998 T. Teranishi + (C) 2004- TeraTerm Project All Rights Reserved. KEYCODE.EXE is a utility which displays key codes used in the @@ -12,512 +13,9 @@ Please read this text and Tera Term help for changing the keyboard configuration. Please do not ask the author questions about the keyboard configuration. -------------------------------------------------------------------------------- -1. INSTALLATION - -If you are using Windows 3.1 or NT 3.X, install KEYCODE.EXE -in Program Manager with its icon. If you are using Windows 95 -or Windows NT 4.0, create a shortcut for KEYCODE.EXE in a folder -of your choice, in the Start menu or on the desktop. - -------------------------------------------------------------------------------- -2. USAGE +USAGE When you run KEYCODE.EXE, the message "Push any key" will be displayed in the window. When you press a key or a combination of keys (such as Ctrl+key), the message "Key code is XXXX." will be displayed. XXXX is a decimal number. - -------------------------------------------------------------------------------- -3. ABOUT THE KEYBOARD SETUP FILE - -The keyboard setup file assigns keys on PC keyboard for various functions -such as VT terminal functions, sending user defined character strings, -executing Tera Term commands and executing macro files. - -The default keyboard setup stored in the file KEYBOARD.CNF is almost -compatible with VT terminal keyboard. You can modify key assignments -by editing the file. - -The file name of keyboard setup file to be loaded by Tera Term can be -specified as a command line parameter of Tera Term (see Tera Term help). -If you omit the file name extension, the default extension ".CNF" is used. -If you omit the file name, the default file KEYBOARD.CNF is loaded. - -............................................................................... -3.1 FORMAT OF THE KEYBOARD SETUP FILE - -Each key or key combination has a unique key code, which is called -"PC key code". - -The keyboard setup file has six sections: [VT editor keypad], -[VT numeric keypad], [VT function keys], [X function keys], [Shortcut keys] -and [User keys]. - -1) [VT editor keypad] section -In this section, VT editor keys are assigned to PC keys. - - Format: - = - - where: - - - Up, Down, Right, Left, Find, Insert, Remove, Select, - Prev, Next - - - PC key code (decimal number) - - Example: - Up=328 - -2) [VT numeric keypad] section -In this section, VT numeric keys are assigned to PC keys. - - Format: - = - - where: - - - Num0, Num1, Num2, Num3, Num4, Num5, Num6, Num7, Num8, - Num9, NumMinus, NumComma, NumPeriod, NumEnter, PF1, - PF2, PF3, PF4 - - - PC key code (decimal number) - - Example: - Num0=82 - -3) [VT function keys] section -In this section, VT function keys are assigned to PC keys. - - Format: - = - - where: - - - (Function keys of VT terminal) - Hold, Print, Break, F6, F7, F8, F9, F10, F11, F12, - F13, F14, Help, Do, F17, F18, F19, F20 - ("User defined keys" of VT terminal) - UDK6, UDK7, UDK8, UDK9, UDK10, UDK11, UDK12, UDK13, - UDK14, UDK15, UDK16, UDK17, UDK18, UDK19, UDK20 - - - PC key code (decimal number) - - Example: - F6=64 - -4) [X function keys] section -In this section, Xterm F1-F5 keys and BackTab key are assigned to PC keys. - - Format: - = - - where: - - - XF1, XF2, XF3, XF4, XF5, XBackTab - - - PC key code (decimal number) - - Example: - XF1=59 - -5) [Shortcut keys] section -In this section, Tera Term functions are assigned to PC keys. - - Format: - = - - where: - Function - -------------------------------------------- - EditCopy [Edit] Copy command - EditPaste [Edit] Paste command - EditPasteCR [Edit] Paste command - EditCLS [Edit] Clear screen command - EditCLB [Edit] Clear buffer command - ControlOpenTEK [Control] Open TEK command - ControlCloseTEK [Control] Close TEK command - LineUp Scrolls up screen by 1 line - LineDown Scrolls down by 1 line - PageUp Scrolls up by 1 page - PageDown Scrolls down by 1 page - BuffTop Scrolls screen to buffer top - BuffBottom Scrolls screen to buffer bottom - NextWin Moves to the next Tera Term window - PrevWin Moves to the previous Tera Term window - NextShownWin Moves to the next Tera Term window (except minimized) - PrevShownWin Moves to the previous Tera Term window (except minimized) - LocalEcho Toggles the local echo status - - - PC key code (decimal number) - - Example: - LineUp=1352 - -6) [User keys] section -This section defines user keys for functions, sending a character -string, executing a macro file or executing a menu command. - - Format: - =,, - - - where: - - - User1, User2, User3,...., User99 - Maximum number of user keys is 99. - For example, if you want to define ten user keys, - you must use the first ten names, from "User1" to "User10". - - - PC key code (decimal number) - - - Control flag which specifies how - is treated when the PC key is pressed. - 0 is sent as it is. - 1 New-line codes in - are converted by Tera Term and - the converted string is sent. - 2 A macro file which has the name of - is executed. - 3 A Tera Term menu command specified - by the menu ID is - executed. - - - If is 0 or 1, - represents the character string to be sent. - A non-printable character (control character) in - the string can be expressed as a "$" and ASCII code - in two-character hex number. For example, CR character - is expressed as "$0D". "$" itself is expressed as "$24". - See "Appendix A ASCII CODE TABLE". - - If is 2, specifies - the macro file name to be executed. - - If is 3, is the menu - ID which specifies the menu command to be executed. - The menu ID should be expressed as a decimal number. - See "Appendix B LIST OF MENU IDs". - - Example: - User1=1083,0,telnet myhost - User2=1084,0,$0D$0A - User3=1085,1,$0D - User4=1086,2,test.ttl - User5=1087,3,50110 - -............................................................................... -3.2 NOTE - -You can use a PC key code only once in the setup file. -If you use a PC key code for multiple key assignments, -the warning message "Key code XXX is used more than once" is -displayed when the file is loaded by Tera Term. In this case, -one of the assignments becomes effective and others are ignored. - -If you don't want to assign a key item to any PC key, -use the word "off" like the following: - -EditCopy=off - -............................................................................... -3.3 KEY COMBINATIONS - -The following key combinations are acceptable to Tera Term and KEYCODE.EXE: - - Shift+key - Ctrl+key - Shift+Ctrl+key - Shift+Alt+key - Ctrl+Alt+key - Shift+Ctrl+Alt+key - -Since some combinations (such as Alt+key) are used as shortcut keys of -Tera Term and Windows, they don't have PC key codes and can't be specified -in the keyboard setup file. - -[NOTE] -You can specify `Alt+key' combination when Alt key uses meta key. Check -`Meta key' under Keyboard of Setup menu. The key code can be obtained by -KEYCODE.EXE, unfortunately the key code of `Alt+key' combination can not -be obtained. Also, you obtain the key code and add 2048 on the value. - -For example, the `V' key code is 47, also `Alt+V' key code is 2095. - -; Shift + Insert -EditPaste=850 - -If you change above entry to `EditPaste=2095', you can paste by using -`Alt+V' on condition that Meta key is pass through. - -You add in the following entry to [User keys] section in KEYBOARD.CNF if -you wan to paster by using `Alt+V' remaining `Shift+Insert' function. - -User1=2095,3,50230 - -............................................................................... -3.4 Q & A - -If you are in trouble with the keyboard configuration, please -read this text and Tera Term help carefully. -Please do not ask the author questions about the keyboard configuration. - -Q. Every time I run Tera Term, the warning message - "Key code XXX is used more than once" is displayed. -A. See "3.2 NOTE". - -Q. I want to use the PC "F1" key as the VT100 PF1 key. I edit the - keyboard setup file like the following but it does not work: - - [VT function keys] - F1=PF1 (This is wrong.) - -A. The left hand side can not be the name of a **PC key** but - the name of a **VT terminal key**. The right hand side can not be - the name of a key but a PC key code. - See "3.1 FORMAT OF THE KEYBOARD SETUP FILE". - You should also be careful not to specify a PC key code more than - once in the setup file (see "3.2 NOTE"). - - Edit the keyboard setup file like the following: - - [VT function keys] - PF1=59 (59 is the keycode for the F1 key.) - [X function keys] - ;XF1=59 (Avoid specifying 59 twice.) - XF1=off (Replace 59 by "off".) - -Q. How to edit the keyboard setup file to assign the F1 key - for sending the escape sequence "ESC [ A"? -A. You can send any character string by using a user key. - See "3.1 FORMAT OF THE KEYBOARD SETUP FILE". - You should also be careful not to specify a PC keycode more than - once in the setup file (see "3.2 NOTE"). - - Edit the keyboard setup file like the following: - - [X function keys] - ;XF1=59 (59 is the keycode for the F1 key.) - (Avoid specifying 59 twice.) - XF1=off (Replace 59 by "off".) - [User keys] - User1=59,0,$1B[A (The ASCII code for ESC is $1B.) - -------------------------------------------------------------------------------- -APPENDIX A ASCII CODE TABLE (HEXADECIMAL REPRESENTATION) - -For example, the ASCII code for "A" is $41. - ------------------------------------------------------------- - Char Code | Char Code | Char Code | Char Code | ------------------------------------------------------------- - NUL (^@) $00 | DLE (^P) $10 | SPACE $20 | 0 $30 | - SOH (^A) $01 | DC1 (^Q) $11 | ! $21 | 1 $31 | - STX (^B) $02 | DC2 (^R) $12 | " $22 | 2 $32 | - ETX (^C) $03 | DC3 (^S) $13 | # $23 | 3 $33 | - EOT (^D) $04 | DC4 (^T) $14 | $ $24 | 4 $34 | - ENQ (^E) $05 | NAK (^U) $15 | % $25 | 5 $35 | - ACK (^F) $06 | SYN (^V) $16 | & $26 | 6 $36 | - BEL (^G) $07 | ETB (^W) $17 | ' $27 | 7 $37 | - BS (^H) $08 | CAN (^X) $18 | ( $28 | 8 $38 | - HT (^I) $09 | EM (^Y) $19 | ) $29 | 9 $39 | - LF (^J) $0A | SUB (^Z) $1A | * $2A | : $3A | - VT (^K) $0B | ESC (^[) $1B | + $2B | ; $3B | - FF (^L) $0C | FS (^\) $1C | , $2C | < $3C | - CR (^M) $0D | GS (^]) $1D | - $2D | = $3D | - SO (^N) $0E | RS (^^) $1E | . $2E | > $3E | - SI (^O) $0F | US (^_) $1F | / $2F | ? $3F | ------------------------------------------------------------- - Char Code | Char Code | Char Code | Char Code | ------------------------------------------------------------- - @ $40 | P $50 | ` $60 | p $70 | - A $41 | Q $51 | a $61 | q $71 | - B $42 | R $52 | b $62 | r $72 | - C $43 | S $53 | c $63 | s $73 | - D $44 | T $54 | d $64 | t $74 | - E $45 | U $55 | e $65 | u $75 | - F $46 | V $56 | f $66 | v $76 | - G $47 | W $57 | g $67 | w $77 | - H $48 | X $58 | h $68 | x $78 | - I $49 | Y $59 | I $69 | y $79 | - J $4A | Z $5A | j $6A | z $7A | - K $4B | [ $5B | k $6B | { $7B | - L $4C | \ $5C | l $6C | | $7C | - M $4D | ] $5D | m $6D | } $7D | - N $4E | ^ $5E | n $6E | ~ $7E | - O $4F | _ $5F | o $6F | DEL $7F | ------------------------------------------------------------- - -............................................................................... -APPENDIX B LIST OF MENU IDs - -See "3.1 FORMAT OF THE KEYBOARD SETUP FILE" for specifying a menu ID. -Menu IDs may be changed in future. - -1) VT window - -Menu command ID ------------------------------------------ -[File] New connection 50110 -[File] Duplicate session 50111 -[File] Cygwin connection 50112 -[File] Log 50120 -[File] Comment to Log 50121 -[File] View Log 50122 -[File] Show Log dialog 50123 -[File] Send file 50130 -[File] Transfer/Kermit/Receive 50141 -[File] Transfer/Kermit/Get 50142 -[File] Transfer/Kermit/Send 50143 -[File] Transfer/Kermit/Finish 50144 -[File] Transfer/XMODEM/Receive 50145 -[File] Transfer/XMODEM/Send 50146 -[File] Transfer/YMODEM/Receive 50157 -[File] Transfer/YMODEM/Send 50158 -[File] Transfer/ZMODEM/Receive 50151 -[File] Transfer/ZMODEM/Send 50152 -[File] Transfer/B-Plus/Receive 50153 -[File] Transfer/B-Plus/Send 50154 -[File] Transfer/Quick-VAN/Receive 50155 -[File] Transfer/Quick-VAN/Send 50156 -[File] Change dir 50170 -[File] Replay Log 50171 -[File] LogMeTT 50172 -[File] Print 50180 -[File] Disconnect 50190 -[File] Exit 50199 -[File] Exit All 50200 -[Edit] Copy 50210 -[Edit] Copy table 50220 -[Edit] Paste 50230 -[Edit] PasteCR 50240 -[Edit] Clear screen 50250 -[Edit] Clear buffer 50260 -[Edit] Cancel selection 50270 -[Edit] Select screen 50280 -[Edit] Select all 50290 -[Setup] Terminal 50310 -[Setup] Window 50320 -[Setup] Font 50330 -[Setup] Keyboard 50340 -[Setup] Serial port 50350 -[Setup] TCPIP 50360 -[Setup] General 50370 -[Setup] Additional settings 50375 -[Setup] Save setup 50380 -[Setup] Restore setup 50390 -[Setup] Setup directory 50391 -[Setup] Load key map 50395 -[Control] Reset terminal 50410 -[Control] Are you there 50420 -[Control] Send break 50430 -[Control] Reset port 50440 -[Control] Broadcast command 50445 -[Control] Open TEK 50450 -[Control] Close TEK 50460 -[Control] Macro 50470 -[Control] Show Macro Window 50480 -[Window] Window 50810 -[Window] Minimize All 50811 -[Window] Restore All 50812 -[Window] Cascade 50813 -[Window] Stacked 50814 -[Window] Side by Side 50815 -[Window] Undo - XXX 50816 -[Help] Index 50910 -[Help] About Tera Term 50990 - -TTSSH Menu command ID ------------------------------------------ -[Setup] SSH 52310 -[Setup] SSH Authentication 52320 -[Setup] SSH Forwarding 52330 -[Setup] SSH KeyGenerator 52340 -[Help] About TTSSH 52910 - -TTProxy Menu command ID ------------------------------------------ -[Setup] Proxy 53310 -[Help] About TTProxy 53910 - -TTXKanjiMenu Menu command ID ------------------------------------------ -[KanjiCode] Recv: Shift_JIS 54010 -[KanjiCode] Recv: EUC-JP 54011 -[KanjiCode] Recv: JIS 54012 -[KanjiCode] Recv: UTF-8 54013 -[KanjiCode] Recv: UTF-8m 54014 -[KanjiCode] Send: Shift_JIS 54110 -[KanjiCode] Send: EUC-JP 54111 -[KanjiCode] Send: JIS 54112 -[KanjiCode] Send: UTF-8 54113 -[KanjiCode] Use one setting 54200 - -TTXAlwaysOnTop Menu command ID ------------------------------------------ -[Control] Always on top 55000 --- SetWindowPos(HWND_TOP) 55001 (not in menu) --- SetWindowPos(HWND_BOTTOM) 55002 (not in menu) --- SetWindowPos(HWND_TOPMOST) 55003 (not in menu) --- SetWindowPos(HWND_NOTOPMOST) 55004 (not in menu) - -TTXResizeMenu Menu command ID ------------------------------------------ -[Resize] Menu(1) - Menu(20) 55101 - 55120 --- Increase window width 55151 (not in menu) --- Decrease window width 55152 (not in menu) --- Increase window height 55153 (not in menu) --- Decrease window height 55154 (not in menu) - -TTXViewMode Menu command ID ------------------------------------------ -[Setup] ViewMode password 55200 -[Control] View mode 55210 - -TTXttyrec Menu command ID ------------------------------------------ -[File] TTY Record 55301 - -TTXttyplay Menu command ID ------------------------------------------ -[File] TTY Replay 55302 - -TTXRecurringCommand Menu command ID ------------------------------------------ -[Setup] Recurring Command 55500 -[Control] Recurring Command 55501 --- Enable Recurring Command 55502 (not in menu) --- Disable Recurring Command 55503 (not in menu) - - -2) TEK window - -Menu command ID ------------------------------------------ -[File] Print 51110 -[File] Exit 51190 -[Edit] Copy 51210 -[Edit] Copy screen 51220 -[Edit] Paste 51230 -[Edit] PasteCR 51240 -[Edit] Clear screen 51250 -[Setup] Window 51310 -[Setup] Font 51320 -[VTWin] 51410 -[Window] Window 51810 -[HELP] Index 51910 -[HELP] About Tera Term 51990 diff --git a/doc/en/html/reference/menu_id.html b/doc/en/html/reference/menu_id.html new file mode 100644 index 000000000..3157fbc34 --- /dev/null +++ b/doc/en/html/reference/menu_id.html @@ -0,0 +1,562 @@ + + + + +LIST OF MENU IDs + + + + + +

      LIST OF MENU IDs

      + + +

      +Menu ID is used in a keyboard setup file. +

      + +

      VT window

      + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
      Menu commandID
      [File] New connection50110
      [File] Duplicate session50111
      [File] Cygwin connection50112
      [File] Log50120
      [File] Comment to Log50121
      [File] View Log50122
      [File] Show Log dialog50123
      [File] Send file50130
      [File] Transfer/Kermit/Receive50141
      [File] Transfer/Kermit/Get50142
      [File] Transfer/Kermit/Send50143
      [File] Transfer/Kermit/Finish50144
      [File] Transfer/XMODEM/Receive50145
      [File] Transfer/XMODEM/Send50146
      [File] Transfer/YMODEM/Receive50157
      [File] Transfer/YMODEM/Send50158
      [File] Transfer/ZMODEM/Receive50151
      [File] Transfer/ZMODEM/Send50152
      [File] Transfer/B-Plus/Receive50153
      [File] Transfer/B-Plus/Send50154
      [File] Transfer/Quick-VAN/Receive50155
      [File] Transfer/Quick-VAN/Send50156
      [File] Change dir50170
      [File] Replay Log50171
      [File] LogMeTT50172
      [File] Print50180
      [File] Disconnect50190
      [File] Exit50199
      [File] Exit All50200
      [Edit] Copy50210
      [Edit] Copy table50220
      [Edit] Paste50230
      [Edit] PasteCR50240
      [Edit] Clear screen50250
      [Edit] Clear buffer50260
      [Edit] Cancel selection50270
      [Edit] Select screen50280
      [Edit] Select all50290
      [Setup] Terminal50310
      [Setup] Window50320
      [Setup] Font50330
      [Setup] Keyboard50340
      [Setup] Serial port50350
      [Setup] TCPIP50360
      [Setup] General50370
      [Setup] Additional settings50375
      [Setup] Save setup50380
      [Setup] Restore setup50390
      [Setup] Setup directory50391
      [Setup] Load key map50395
      [Control] Reset terminal50410
      [Control] Are you there50420
      [Control] Send break50430
      [Control] Reset port50440
      [Control] Broadcast command50445
      [Control] Open TEK50450
      [Control] Close TEK50460
      [Control] Macro50470
      [Control] Show Macro Window50480
      [Window] Window50810
      [Window] Minimize All50811
      [Window] Restore All50812
      [Window] Cascade50813
      [Window] Stacked50814
      [Window] Side by Side50815
      [Window] Undo - XXX50816
      [Help] Index50910
      [Help] About Tera Term50990
      + + + + + + + + + + + + + + + + + + + + + + + + + + +
      TTSSH Menu commandID
      [Setup] SSH52310
      [Setup] SSH Authentication52320
      [Setup] SSH Forwarding52330
      [Setup] SSH KeyGenerator52340
      [Help] About TTSSH52910
      + + + + + + + + + + + + + + +
      TTProxy Menu commandID
      [Setup] Proxy53310
      [Help] About TTProxy53910
      + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
      TTXKanjiMenu Menu commandID
      [KanjiCode] Recv: Shift_JIS54010
      [KanjiCode] Recv: EUC-JP54011
      [KanjiCode] Recv: JIS54012
      [KanjiCode] Recv: UTF-854013
      [KanjiCode] Send: Shift_JIS54110
      [KanjiCode] Send: EUC-JP54111
      [KanjiCode] Send: JIS54112
      [KanjiCode] Send: UTF-854113
      [KanjiCode] Use one setting54200
      + + + + + + + + + + + + + + + + + + + + + + + + + + +
      TTXAlwaysOnTop Menu commandID
      [Control] Always on top55000
      -- SetWindowPos(HWND_TOP)55001 (not in menu)
      -- SetWindowPos(HWND_BOTTOM)55002 (not in menu)
      -- SetWindowPos(HWND_TOPMOST)55003 (not in menu)
      -- SetWindowPos(HWND_NOTOPMOST)55004 (not in menu)
      + + + + + + + + + + + + + + + + + + + + + + + + + + +
      TTXResizeMenu Menu commandID
      [Resize] Menu(1) - Menu(20)55101 - 55120
      -- Increase window width55151 (not in menu)
      -- Decrease window width55152 (not in menu)
      -- Increase window height55153 (not in menu)
      -- Decrease window height55154 (not in menu)
      + + + + + + + + + + + + + + +
      TTXViewMode Menu commandID
      [Setup] ViewMode password55200
      [Control] View mode55210
      + + + + + + + + + + +
      TTXttyrec Menu commandID
      [File] TTY Record55301
      + + + + + + + + + + +
      TTXttyplay Menu commandID
      [File] TTY Replay55302
      + + + + + + + + + + + + + + + + + + + + + + +
      TTXRecurringCommand Menu commandID
      [Setup] Recurring Command55500
      [Control] Recurring Command55501
      -- Enable Recurring Command55502 (not in menu)
      -- Disable Recurring Command55503 (not in menu)
      + + +

      TEK window

      + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
      Menu commandID
      [File] Print51110
      [File] Exit51190
      [Edit] Copy51210
      [Edit] Copy screen51220
      [Edit] Paste51230
      [Edit] PasteCR51240
      [Edit] Clear screen51250
      [Setup] Window51310
      [Setup] Font51320
      [VTWin]51410
      [Window] Window51810
      [HELP] Index51910
      [HELP] About Tera Term51990
      + + + diff --git a/doc/en/html/reference/sourcecode.html b/doc/en/html/reference/sourcecode.html index 483fe230e..0cf18be6f 100644 --- a/doc/en/html/reference/sourcecode.html +++ b/doc/en/html/reference/sourcecode.html @@ -50,8 +50,8 @@

      Required Skill Sets

      The main source of information about programming for Windows is MSDN Library provided by Microsoft. Tera Term developers often use MSDN Library as a reference.

      @@ -79,7 +79,7 @@

      Tera Term Package Content

      Plug-in DLL-s, like TTSSH, TTProxy and TTXKanjiMenu, are dynamically loaded by LoadLibrary() API call at Tera Term startup. DLL filename should follow the pattern "TTX*.DLL" defined in TTXInit()#ttplug.c function.

      - The "keycode.exe", "ttpmenu.exe", "LogMeTT.exe" and "TTLEdit.exe" are separate applications that are not in direct communication with Tera Term. + The "keycode.exe", "ttpmenu.exe" are separate applications that are not in direct communication with Tera Term.
      @@ -99,7 +99,7 @@

      Third Party Libraries

      The macro program is linked to pseudorandom number generator "SFMT", which allows to generate random number in "random" macro command.

      - "TTSSH" module is linkd to "OpenSSL" library to perform cryptography related operations. One may think that OpenSSL library contains only Secure Socket Layer (SSL) protocol related functions used for secure web access, however that is wrong assumption. OpenSSL library also supports basic cipher algorithms, which are utilized by "TTSSH" module. Since Secure Layer related functions of the library are not used, it is very unlikely that "TTSSH" module will be compromised if a SSL related security hole is found in OpenSSL library. + "TTSSH" module is linkd to "LibreSSL" library to perform cryptography related operations. One may think that LibreSSL library contains only Secure Socket Layer (SSL) protocol related functions used for secure web access, however that is wrong assumption. LibreSSL library also supports basic cipher algorithms, which are utilized by "TTSSH" module. Since Secure Layer related functions of the library are not used, it is very unlikely that "TTSSH" module will be compromised if a SSL related security hole is found in LibreSSL library.

      "TTSSH" module is linkd to compression Library "zlib" to compress SSH packets. Packet compression is effective on low speed networks like for example with dial-up connections, however in high speed networks it may slow down communication. That's why packet compression function is disabled by default.
      @@ -275,10 +275,9 @@

      Plug-in Support

      Reading and Writing Configuration File

      Modern Windows applications use system Registry to store their settings. Tera Term, however, stores its configuration in .ini file because that was the common practice back in the days when Tera Term was created.
      -LogMeTT and TTLEdit programs included in Tera Term package store their configurations in system Registry.
      -Collector and CygTerm programs included in Tera Term package store their configurations in the local file.
      +CygTerm programsincluded in Tera Term package store their configurations in the local file.
      -Unlike other applications, Tera Term Menu stores its configuration in Registry, but if current directory contains "ttpmenu.ini" file, it will try to read configuration from this file even if the file is empty (0 bytes in size). Note that the tool does not migrate settings from Registry to .ini file, so you may need to re-create them if you decide to use .ini file.
      +Unlike other applications, TeraTerm Menu stores its configuration in Registry, but if current directory contains "ttpmenu.ini" file, it will try to read configuration from this file even if the file is empty (0 bytes in size). Note that the tool does not migrate settings from Registry to .ini file, so you may need to re-create them if you decide to use .ini file.

      When new entry is added to TERATERM.INI file it can be read with ReadIniFile()#ttset.c @@ -309,7 +308,7 @@

      String Operation



      @@ -415,7 +414,7 @@

      Windows 95

      Currently Tera Term can run on Windows 95 despite the fact that it is compiled using Visual Studio 2005. The binary program built by Visual Studio 2005 by default contains link to IsDebuggerPresent function. This causes program to fail under Windows 95 because this function was first introduced in Windows 98. To resolve this issue dummy symbol replacing IsDebuggerPresent function was defined. This is certainly "unofficial" method not supported by Microsoft. For more details please check the header file comapt_w95.h.

      @@ -434,7 +433,7 @@

      Debug printf

      char tmp[1024]; va_list arg; va_start(arg, fmt); - _vsnprintf(tmp, sizeof(tmp), fmt, arg); + _vsnprintf_s(tmp, sizeof(tmp), _TRUNCATE, fmt, arg); OutputDebugString(tmp); }
    @@ -515,7 +514,7 @@

    Multithreading

     #define WM_SEND_HEARTBEAT (WM_USER + 1)
     
    -static LRESULT CALLBACK telnet_heartbeat_dlg_proc(HWND hWnd, UINT msg, WPARAM wp, LPARAM lp)
    +static INT_PTR CALLBACK telnet_heartbeat_dlg_proc(HWND hWnd, UINT msg, WPARAM wp, LPARAM lp)
     {
     
     	switch (msg) {
    @@ -566,11 +565,12 @@ 

    Multithreading

    if (ts.TelKeepAliveInterval > 0) { nop_interval = ts.TelKeepAliveInterval; - keepalive_dialog = CreateDialog(hInst, MAKEINTRESOURCE(IDD_BROADCAST_DIALOG), - HVTWin, (DLGPROC)telnet_heartbeat_dlg_proc); + keepalive_dialog = CreateDialog(hInst, MAKEINTRESOURCE(IDD_BROADCAST_DIALOG), + HVTWin, telnet_heartbeat_dlg_proc); keepalive_thread = (HANDLE)_beginthreadex(NULL, 0, TelKeepAliveThread, NULL, 0, &tid); - if (keepalive_thread == (HANDLE)-1) { + if (keepalive_thread == 0) { + keepalive_thread = INVALID_HANDLE_VALUE; nop_interval = 0; } } @@ -592,8 +592,8 @@

    Overview

    @@ -781,11 +781,11 @@

    Buffer Management

    SSH Design and Implementation in TTSSH

    Overview

    -Original TTSSH plugin for Tera Term was developed by Robert O'Callahan (currently works as Former Mozilla hacker). It was supporting SSH1, packet compression and port forwarding. However, it did not support SSH2, SCP or SFTP. Development of the original Tera Term stopped in 1998 and its maintenance ended in 2001.
    +Original TTSSH plugin for Tera Term was developed by Robert O'Callahan (currently works as Former Mozilla hacker). It was supporting SSH1, packet compression and port forwarding. However, it did not support SSH2, SCP or SFTP. Development of the original Tera Term stopped in 1998 and its maintenance ended in 2001.
    In 2004 newly formed Tera Term Project team resumed development of TTSSH and added SSH2 support to TTSSH. Over the next 3 year period the team implemented full support of SSH2 and SCP. Tera Term Project team is planning to eventually add SFTP support.
    -Initial TTTSH design was based on OpenSSH code. However, the main differences were that OpenSSH was written for UNIX command line interface, while TTSSH should work under Microsoft Windows and also communicate with Tera Term. As TTSSH developed, the amount of the differences with OpenSSH was increasing and currently the code of these two programs has very significant differences.
    +Initial TTTSH design was based on OpenSSH code. However, the main differences were that OpenSSH was written for UNIX command line interface, while TTSSH should work under Microsoft Windows and also communicate with Tera Term. As TTSSH developed, the amount of the differences with OpenSSH was increasing and currently the code of these two programs has very significant differences.

    SSH Protocol

    @@ -795,15 +795,21 @@

    SSH Protocol

    @@ -911,36 +917,32 @@

    Receiving Packets

    Sequence Control

    SSH protocol allows to encrypt client-server communication by using encryption key. Public-key based encryption (asymmetric) provides higher level of security, however it is more resource intensive and not used with SSH. SSH2 utilizes symmetric encryption algorithms with shared key - AES (Advanced Encryption Standard: Rijndael algorithm) and 3DES (Triple Data Encryption Standard).
    - -The key is securely shared between two parties establishing connection and is unknown to a third party. As per SSH2 protocol, when client opens TCP connection to a remote host (SSH server), unique DH key is generated based on "Diffie-Hellman" algorithm. This key is only known to the client and to the server.
    -Prior to creation of DH key, network packets are transmitted unencrypted (as a clear text) and can be captured by a third party, however DH algorithm allows to establish a shared secret between two parties in such a way that it cannot be compromised.
    - -Once shared key has been generated, it can be used to encrypt and decrypt the packets. SSH2 protocol assigns each packet the Message Number in the range 1 to 255. Message number describes the payload of the packet. RFC4250 contains the list of all supported message numbers. SSH messages also have names that start with "SSH2_MSG_". They are defined as macros in TTSSH source code.
    - +The key is securely shared between two parties establishing connection and is unknown to a third party. As per SSH2 protocol, when client opens TCP connection to a remote host (SSH server), a shared key is shared based on "Diffie-Hellman" algorithm. This key is only known to the client and to the server.
    +Prior to finish share of shared key, network packets are transmitted unencrypted (as a clear text) and can be captured by a third party, however DH algorithm allows to share a shared key between two parties in such a way that it cannot be compromised.
    +Once shared key has been shared, it can be used to encrypt and decrypt the packets. SSH2 protocol assigns each packet the Message Number in the range 1 to 255. Message number describes the payload of the packet. RFC4250 contains the list of all supported message numbers. SSH messages also have names that start with "SSH2_MSG_". They are defined as macros in TTSSH source code.
    The drawing below shows the packet flow for TCP connection from a client to a server on the default SSH port 22 with password based user authentication.
    - +
    - +
    -The next drawing shows the flow of the packets when client explicitly closes the connection, i.e. enters "exit" or "logout" command in the remote shell.
    -
    - +
    -In addition to password based SSH authentication, TTSSH also supports keyboard-interactive, public key based and public key with Pageant authentication methods. Packet flows for each of these methods are shown below.
    -
    - +
    + +The next drawing shows the flow of the packets when client explicitly closes the connection, i.e. enters "exit" or "logout" command in the remote shell.
    +
    - +
    @@ -1199,7 +1201,7 @@

    System Caret

  • ShowCaret
  • -According to MSDN Library description of CreateCaret function, +According to MSDN Library description of CreateCaret function,
     The system provides one caret per queue. A window should create 
    @@ -1506,7 +1508,7 @@ 

    Entry Points

    Testing Connectivity

    - Binary transfer protocols are usually used with serial connections. Modern PC-s are rarely equipped with serial ports, which makes testing of these protocols more challenging. One on the options is to use Null-modem emulator like com0com. It will generate two virtual COM ports on a single PC. Then we can use 2 instances of Tera Term to connect these virtual serial ports, or use Tera Term and another software terminal emulator for this purpose. + Binary transfer protocols are usually used with serial connections. Modern PC-s are rarely equipped with serial ports, which makes testing of these protocols more challenging. One on the options is to use Null-modem emulator like com0com. It will generate two virtual COM ports on a single PC. Then we can use 2 instances of Tera Term to connect these virtual serial ports, or use Tera Term and another software terminal emulator for this purpose.
    @@ -1538,7 +1540,7 @@

    XMODEM

    More information about XMODEM protocol can be found on Wikipedia.
    @@ -1549,7 +1551,7 @@

    XMODEM

    XmodemLog=on
    -Sample log file where Tera Term (COM10) sends to RLogin (COM11) 67-byte long file using XMODEM protocol is shown below.
    +Sample log file where Tera Term (COM10) sends to RLogin (COM11) 67-byte long file using XMODEM protocol is shown below.
    "<<<" indicates the data Tera Term received from the host, ">>>" shows the data Tera Term sent to the host.
    @@ -1674,7 +1676,7 @@ 

    YMODEM

    More information about YMODEM protocol can be found on Wikipedia.
    @@ -1685,7 +1687,7 @@

    YMODEM

    YmodemLog=on
    -Sample log file where Tera Term (COM10) sends to RLogin (COM11) 67-byte long file using YMODEM protocol is shown below.
    +Sample log file where Tera Term (COM10) sends to RLogin (COM11) 67-byte long file using YMODEM protocol is shown below.
    "<<<" indicates the data Tera Term received from the host, ">>>" shows the data Tera Term sent to the host.
    @@ -1939,7 +1941,7 @@ 

    KERMIT

    More information about KERMIT project can be found on KERMIT project website.
    diff --git a/doc/en/html/setup/cygterm.html b/doc/en/html/setup/cygterm.html index f0d57acfa..676c699eb 100644 --- a/doc/en/html/setup/cygterm.html +++ b/doc/en/html/setup/cygterm.html @@ -20,13 +20,12 @@

    CygTerm+ setup file

    An example of cygterm.cfg

    -TERM = C:\program files\ttermpro\ttermpro.exe %s %d /KR=SJIS /KT=SJIS
    +TERM = C:\program files\ttermpro\ttermpro.exe %s %d /KR=UTF8 /KT=UTF8
     TERM_TYPE = vt100
     PORT_START = 20000
     PORT_RANGE = 40
     SHELL = /bin/bash
    -ENV_1 = MAKE_MODE=unix
    -ENV_2 = HOME=/home
    +ENV_1 = HOME=/home
       :         :
     
    diff --git a/doc/en/html/setup/folder.html b/doc/en/html/setup/folder.html new file mode 100644 index 000000000..c48d91e8e --- /dev/null +++ b/doc/en/html/setup/folder.html @@ -0,0 +1,192 @@ + + + + +Folder used by Tera Term + + + + + +

    Folders used by Tera Term

    + +
      +
    • installer edition +
        +
      • setup files +
          +
        • %APPDATA%\teraterm5
        • +
        +
      • +
      • log files, dump files +
          +
        • %LOCALAPPDATA%\teraterm5
        • +
        +
      • +
      • download folder(Priority order, below is used when not set) +
          +
        1. download folder
        2. +
        3. %USERPROFILE%\Downloads
        4. +
        +
      • +
      • Terminal log folder(Priority order, below is used when not set) +
          +
        1. Default log save folder
        2. +
        3. download folder
        4. +
        5. %LOCALAPPDATA%\teraterm5
        6. +
        +
      • +
      +
    • + +
    • portable edition +
        +
      • setup files +
          +
        • a folder which is exist exe file
        • +
        +
      • +
      • log files, dump files +
          +
        • a folder which is exist exe file + \log
        • +
        +
      • +
      • download folder(Priority order, below is used when not set) +
          +
        1. download folder
        2. +
        3. %USERPROFILE%\Downloads
        4. +
        +
      • +
      • Terminal log folder(Priority order, below is used when not set) +
          +
        1. Default log save folder
        2. +
        3. download folder
        4. +
        5. a folder which is exist exe file + \log
        6. +
        +
      • +
      +
    • +
    + +

    about portable edition

    + +
      +
    • Program is not affected environment (system or personal setting) +
        +
      • + Assumed usage +
          +
        • Copy program to USB stick, and run from it
        • +
        • Run without install (only copy program)
        • +
        +
      • +
      +
    • +
    • Put portable.ini file in a folder which is ttermpro.exe is exist, then program is start as portable edition.
    • +
    • Content of portable.ini file does not matter. (zero size file is accepted)
    • +
    + +

    folders and files which is used by insaller edition

    + +

    Example for Windows Vista or later

    + +
      +
    • + setup files +
        +
      • C:\Users\[username]\AppData\Roaming\teraterm5
      • +
      +
    • +
    • + log files, dump files +
        +
      • C:\Users\[username]\AppData\Local\teraterm5
      • +
      +
    • +
    + +

    Example for Windows 2000, XP

    + +
      +
    • + setup files +
        +
      • C:\Documents and Settings\[username]\AppData\Roaming\teraterm5
      • +
      +
    • +
    • + log files, dump files (undefined) +
        +
      • C:\Documents and Settings\[username]\Application Data\teraterm5
      • +
      +
    • +
    + + + +

    Reference

    + + + +

    If a file name is specified

    + +

    If full path of a file is specified by command line option, it is used preferentially.

    + +
      +
    • TERATERM.INI
    • +
    • KEYBOARD.CNF
    • +
    • broadcast.log
    • +
    + +

    When setup files is not exist

    + +

    ttermpro.exe behaves followings:

    + +
      +
    • create a folder to put setup files
    • +
    • copy a setup file which is exist in ttermpro.exe folder to "setup file folder"
    • +
    + + + diff --git a/doc/en/html/setup/keyboard.html b/doc/en/html/setup/keyboard.html index 2f04266d9..2b2d943c1 100644 --- a/doc/en/html/setup/keyboard.html +++ b/doc/en/html/setup/keyboard.html @@ -12,13 +12,8 @@

    Keyboard setup file

    -The keyboard setup file assigns keys on PC keyboard for various functions such as VT terminal functions, sending user defined character strings, Tera Term commands and executing macro files. -

    - -

    -The default keyboard setup stored in the file KEYBOARD.CNF is almost compatible with VT terminal keyboard. +The keyboard setup file assigns keys on PC keyboard for various functions such as VT terminal functions, sending user defined character strings, Tera Term commands and executing macro files.
    You can modify key assignments by editing the file. -See KEYCODE.TXT for the format of keyboard setup file.

    @@ -34,45 +29,475 @@

    Keyboard setup file

    IBMKEYB.CNF
    Sample file for the IBM-PC/AT 101-key keyboard
    -
    PC98KEYB.CNF
    -
    Sample file for the NEC PC 98 keyboard (Japanese Windows 95)
    +
    VT200.CNF
    +
    The location of these keys on VT220 is different from a generic 101(106) keyboard. + For example if "End" key is pressed, the key code of "Page up" (when IBMKEYB.CNF is used) is sent.
    + +
    KEYBOARD.CNF
    +
    Default keyboard setup file (copy of IBMKEYB.CNF at the moment just after the installation)
    + + +

    +The installer will copy IBMKEYB.CNF on KEYBOARD.CNF. +If you want to use a different key map, copy an appropriate file on KEYBOARD.CNF to meet your need. +

    + +

    +The key code can be obtained by KEYCODE.EXE. See Keycode. +

    + +

    Keyboard Layout

    -
    NT98KEYB.CNF
    -
    Sample file for the NEC PC 98 keyboard (Japanese Windows NT)
    +

    Editing keypad

    -
    FUNCTION.CNF
    -
    A customize sample based on IBMKEYB.CNF
    -
      -
    • F1-F10 are modified
    • -
    • Editor keypad(*1) and Special keys(*2) are used to send a character sequence which displays a symbol on the key top of each VT200 terminal keyboard(*3).
    • -
    +
    + + + + + + + + + + + +
    InsertHomePage
    Up
    DeleteEndPage
    Down
    + 101 Keyboard +
    +
    + + + + + + + + + + + +
    FindInsert
    Here
    Re-
    move
    SelectPrev
    Screen
    Next
    Screen
    + VT200 Keyboard +
    +
    -
    EDITOR.CNF
    -
    A customize sample based on IBMKEYB.CNF
    -
      -
    • Editor keypad(*1) are used to send a character sequence which displays a symbol on the key top of each VT200 terminal keyboard(*3).
    • -
    +

    Numeric keypad

    -
    KEYBOARD.CNF
    -
    Default keyboard setup file (copy of EDITOR.CNF at the moment just after the installation)
    - +
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Num
    Lock
    /*-
    789+
    456
    123Enter
    0.
    + 101 Keyboard +
    +
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    PF1PF2PF3PF4
    789-
    456,
    123Enter
    0.
    + VT200 Keyboard +
    +
    + + + +

    ABOUT THE KEYBOARD SETUP FILE

    + +

    FORMAT OF THE KEYBOARD SETUP FILE

    -(*1) Editor keypad mentioned here are Ins, Del, Home, End, PageUp and PageDown.
    -(*2) Special keys mentioned here are *, /, +, -, Ctrl+"+" on a Ten-Key pad.
    -(*3) The location of these keys on VT220 is different from a generic 101(106) keyboard. With a keyboard setup file other than FUNCTION.CNF and EDITOR.CNF, a character sequence to be sent is same as one of 101(106) keyboard. This is derived from the specification of original Tera Term Pro.
    -On the other hand, FUNCTION.CNF and EDITOR.CNF defines a character sequence which displays a symbol of each key top "as-is". By using this, special keys will behave as each symbol of key top when an application which utilizes special keys is run. +Each key or key combination has a unique key code, which is called +"PC key code".

    -The installer will copy EDITOR.CNF on KEYBOARD.CNF. -If you want to use a different key map, copy an appropriate file on KEYBOARD.CNF to meet your need. +The keyboard setup file has six sections. +

    + +
      +
    • [VT editor keypad] +
    • [VT numeric keypad] +
    • [VT function keys] +
    • [X function keys] +
    • [Shortcut keys] +
    • [User keys] +
    + +

    [VT editor keypad] section

    + +

    +In this section, VT editor keys are assigned to PC keys. +

    + +
    +	Format:
    +		<VT editor key name>=<PC key code>
    +
    +	where:
    +
    +	<VT editor key name>
    +		Up, Down, Right, Left, Find, Insert, Remove, Select,
    +		Prev, Next
    +
    +	  <PC key code>
    +		PC key code (decimal number)
    +
    +	Example:
    +		Up=328
    +
    + +

    [VT numeric keypad] section

    + +

    +In this section, VT numeric keys are assigned to PC keys.

    +
    +	Format:
    +		<VT numeric key name>=<PC key code>
    +
    +	where:
    +
    +	  <VT numeric key name>
    +		Num0, Num1, Num2, Num3, Num4, Num5, Num6, Num7, Num8,
    +		Num9, NumMinus, NumComma, NumPeriod, NumEnter, PF1,
    +		PF2, PF3, PF4
    +
    +	  <PC key code>
    +		PC key code (decimal number)
    +
    +	Example:
    +		Num0=82
    +
    + +

    [VT function keys] section

    +

    -If you want to use PC98 NX key map, use IBMKEYB.CNF. +In this section, VT function keys are assigned to PC keys.

    +
    +	Format:
    +		<VT function key name>=<PC key code>
    +
    +	where:
    +
    +	  <VT function key name>
    +		(Function keys of VT terminal)
    +		Hold, Print, Break, F6, F7, F8, F9, F10, F11, F12,
    +		F13, F14, Help, Do, F17, F18, F19, F20
    +		("User defined keys" of VT terminal)
    +		UDK6, UDK7, UDK8, UDK9, UDK10, UDK11, UDK12, UDK13,
    +		UDK14, UDK15, UDK16, UDK17, UDK18, UDK19, UDK20
    +
    +	  <PC key code>
    +		PC key code (decimal number)
    +
    +	Example:
    +		F6=64
    +
    + +

    [X function keys] section

    + +

    +In this section, Xterm F1-F5 keys and BackTab key are assigned to PC keys. +

    + +
    +	Format:
    +		<Xterm function key name>=<PC key code>
    +
    +	where:
    +
    +	  <Xterm function key name>
    +		XF1, XF2, XF3, XF4, XF5, XBackTab
    +
    +	  <PC key code>
    +		PC key code (decimal number)
    +
    +	Example:
    +		XF1=59
    +
    + +

    [Shortcut keys] section

    + +

    +In this section, Tera Term functions are assigned to PC keys. +

    + +
    +	Format:
    +		<Shortcut key name>=<PC key code>
    +
    +	where:
    +	  <Shortcut key name>	Function
    +	  --------------------------------------------
    +	  EditCopy		[Edit] Copy command
    +	  EditPaste		[Edit] Paste command
    +	  EditPasteCR		[Edit] Paste<CR> command
    +	  EditCLS		[Edit] Clear screen command
    +	  EditCLB		[Edit] Clear buffer command
    +	  ControlOpenTEK	[Control] Open TEK command
    +	  ControlCloseTEK	[Control] Close TEK command
    +	  LineUp		Scrolls up screen by 1 line
    +	  LineDown		Scrolls down by 1 line
    +	  PageUp		Scrolls up by 1 page
    +	  PageDown		Scrolls down by 1 page
    +	  BuffTop		Scrolls screen to buffer top
    +	  BuffBottom		Scrolls screen to buffer bottom
    +	  NextWin		Moves to the next Tera Term window
    +	  PrevWin		Moves to the previous Tera Term window
    +	  NextShownWin		Moves to the next Tera Term window (except minimized)
    +	  PrevShownWin		Moves to the previous Tera Term window (except minimized)
    +	  LocalEcho		Toggles the local echo status
    +
    +	  <PC key code>
    +		PC key code (decimal number)
    +
    +	Example:
    +		LineUp=1352
    +
    + +

    [User keys] section

    + +

    +This section defines user keys for functions, sending a character +string, executing a macro file or executing a menu command. +

    + +
    +	Format:
    +		<User key name>=<PC key code>,<Control flag>,
    +				<Character string>
    +
    +	where:
    +
    +	  <User key name>
    +		User1, User2, User3,...., User99
    +		Maximum number of user keys is 99. 
    +		For example, if you want to define ten user keys,
    +		you must use the first ten names, from "User1" to "User10".
    +
    +	  <PC key code>
    +		PC key code (decimal number)
    +
    +	  <Control flag>
    +		Control flag which specifies how <character string>
    +		is treated when the PC key is pressed.
    +			0	<Character string> is sent as it is.
    +			1	New-line codes in <Character string>
    +				are converted by Tera Term and
    +				the converted string is sent.
    +			2	A macro file which has the name of
    +				<Character string> is executed.
    +			3	A Tera Term menu command specified
    +				by the menu ID <Character string> is
    +				executed.
    +
    +	  <Character string>
    +		If <Control flag> is 0 or 1, <Character string>
    +		represents the character string to be sent.
    +		A non-printable character (control character) in
    +		the string can be expressed as a "$" and ASCII code
    +		in two-character hex number. For example, CR character
    +		is expressed as "$0D". "$" itself is expressed as "$24".
    +		See "Appendix A  ASCII CODE TABLE".
    +
    +		If <Control flag> is 2, <Character string> specifies
    +		the macro file name to be executed.
    +
    +		If <Control flag> is 3, <Character string> is the menu
    +		ID which specifies the menu command to be executed.
    +		The menu ID should be expressed as a decimal number.
    +
    +	Example:
    +		User1=1083,0,telnet myhost
    +		User2=1084,0,$0D$0A
    +		User3=1085,1,$0D
    +		User4=1086,2,test.ttl
    +		User5=1087,3,50110
    +
    + +

    +About menu IDs, see LIST OF MENU IDs. +

    + +

    NOTE

    + +

    +You can use a PC key code only once in the setup file. +If you use a PC key code for multiple key assignments, +the warning message "Key code XXX is used more than once" is +displayed when the file is loaded by Tera Term. In this case, +one of the assignments becomes effective and others are ignored. +

    + +

    +If you don't want to assign a key item to any PC key, +use the word "off" like the following: +

    + +
    +    EditCopy=off
    +
    + +

    KEY COMBINATIONS

    + +

    +The following key combinations are acceptable to Tera Term and KEYCODE.EXE: +

    + +
    +	Shift+key
    +	Ctrl+key
    +	Shift+Ctrl+key
    +	Shift+Alt+key
    +	Ctrl+Alt+key
    +	Shift+Ctrl+Alt+key
    +
    + +

    +Since some combinations (such as Alt+key) are used as shortcut keys of +Tera Term and Windows, they don't have PC key codes and can't be specified +in the keyboard setup file. +

    + +

    +[NOTE] +You can specify `Alt+key' combination when Alt key uses meta key. Check +`Meta key' under Keyboard of Setup menu. The key code can be obtained by +KEYCODE.EXE, unfortunately the key code of `Alt+key' combination can not +be obtained. Also, you obtain the key code and add 2048 on the value. +

    + +

    +For example, the `V' key code is 47, also `Alt+V' key code is 2095. +

    + +
    +; Shift + Insert
    +EditPaste=850
    +
    + +

    +If you change above entry to `EditPaste=2095', you can paste by using +`Alt+V' on condition that Meta key is pass through. +

    + +

    +You add in the following entry to [User keys] section in KEYBOARD.CNF if +you wan to paster by using `Alt+V' remaining `Shift+Insert' function. +

    + +
    +User1=2095,3,50230
    +
    + +

    Q & A

    + +

    +Q. Every time I run Tera Term, the warning message + "Key code XXX is used more than once" is displayed.
    +A. See NOTE. +

    + +

    +Q. I want to use the PC "F1" key as the VT100 PF1 key. I edit the + keyboard setup file like the following but it does not work:
    + +

    +	[VT function keys]
    +	F1=PF1		(This is wrong.)
    +
    + +A. The left hand side can not be the name of a PC key but + the name of a VT terminal key. The right hand side can not be + the name of a key but a PC key code. + See "3.1 FORMAT OF THE KEYBOARD SETUP FILE". + You should also be careful not to specify a PC key code more than + once in the setup file (see NOTE).
    + + Edit the keyboard setup file like the following:
    + +
    +	[VT function keys]
    +	PF1=59			(59 is the keycode for the F1 key.)
    +	[X function keys]
    +	;XF1=59			(Avoid specifying 59 twice.)
    +	XF1=off			(Replace 59 by "off".)
    +
    +

    + +

    +Q. How to edit the keyboard setup file to assign the F1 key + for sending the escape sequence "ESC [ A"?
    +A. You can send any character string by using a user key. + See FORMAT OF THE KEYBOARD SETUP FILE. + You should also be careful not to specify a PC keycode more than + once in the setup file (see NOTE).
    + + Edit the keyboard setup file like the following: +

    +	[X function keys]
    +	;XF1=59			(59 is the keycode for the F1 key.)
    +					(Avoid specifying 59 twice.)
    +	XF1=off			(Replace 59 by "off".)
    +	[User keys]
    +	User1=59,0,$1B[A		(The ASCII code for ESC is $1B.)
    +
    +

    diff --git a/doc/en/html/setup/lng.html b/doc/en/html/setup/lng.html index b92e83ed5..ff0d58363 100644 --- a/doc/en/html/setup/lng.html +++ b/doc/en/html/setup/lng.html @@ -18,7 +18,7 @@

    Language file

    -Tera Term installer will copy Japanese, German, French, Russian, Korean and Chinese language file into the lang directory.
    +Tera Term installer will copy Japanese, German, French, Russian, Korean, Chinese, Spanish and Tamil language file into the lang directory.
    And also, the installer will write the language file name into the UILanguageFile entry in the TERATERM.INI file.

    @@ -71,7 +71,7 @@

    Font Settings

    -Refer to the lfCharSet member of the LOGFONT Structure for complete information. +Refer to the lfCharSet member of the LOGFONT Structure for complete information.

    diff --git a/doc/en/html/setup/teraterm-com.html b/doc/en/html/setup/teraterm-com.html index 60c1c188b..f3115dd85 100644 --- a/doc/en/html/setup/teraterm-com.html +++ b/doc/en/html/setup/teraterm-com.html @@ -20,7 +20,12 @@

    Maximum serial port number

    -The maximum serial port number can not be less than 4 even if the actual maximum number is less than 4. +The maximum serial port number can not be less than 4 even if the actual maximum number is less than 4.
    +Configurable maximum number is in the following:
    + 4096 (version 4.65 or later)
    + 256 (version 4.55 or later)
    + 99 (version 4.24 or later)
    + 16 (version less than 4.24)

    diff --git a/doc/en/html/setup/teraterm-ini.html b/doc/en/html/setup/teraterm-ini.html
    index 8853f35ef..b3435b4d5 100644
    --- a/doc/en/html/setup/teraterm-ini.html
    +++ b/doc/en/html/setup/teraterm-ini.html
    @@ -11,7 +11,7 @@
     
     

    All items of Tera Term setup file

    -

    BG

    +

    BG

    @@ -56,6 +56,12 @@

    BG

    + + + + + +
    <-
    BGThemeFiletheme\*.ini<-

    Tera Term

    @@ -86,13 +92,13 @@

    Tera Term

    - AcceptBroadcast + AcceptBroadcast on <- - AcceptTitleChangeRequest + AcceptTitleChangeRequest overwrite <- @@ -110,7 +116,13 @@

    Tera Term

    - AlphaBlend + AlphaBlendActive + 255 + * + * the value of AlphaBlend setting is used. + + + AlphaBlend 255 * * the value of AlphaBlend setting is used. @@ -122,7 +134,7 @@

    Tera Term

    - ANSIColor + ANSIColor 0,0,0,0, 1,255,0,0, 2,0,255,0, 3,255,255,0, 4,128,128,255, 5,255,0,255, 6,0,255,255, 7,255,255,255, 8,64,64,64, 9,192,0,0, 10,0,192,0, 11,192,192,0, 12,64,64,192, 13,192,0,192, 14,0,192,192, 15,192,192,192 0,0,0,0, 1,255,0,0, 2,0,255,0, 3,255,255,0, 4,0,0,255, 5,255,0,255, 6,0,255,255, 7,255,255,255, 8,128,128,128, 9,128,0,0, 10,0,128,0, 11,128,128,0, 12,0,0,128, 13,128,0,128, 14,0,128,128, 15,192,192,192 @@ -146,7 +158,7 @@

    Tera Term

    - AutoScrollOnlyInBottomLine + AutoScrollOnlyInBottomLine on off @@ -158,7 +170,7 @@

    Tera Term

    - AutoWinClose + AutoWinClose on <- @@ -217,6 +229,12 @@

    Tera Term

    <- + + BeepVBellWait + 10 + <- + + BPAuto off @@ -242,7 +260,7 @@

    Tera Term

    - BSKey + BSKey BS <- @@ -254,8 +272,8 @@

    Tera Term

    - ClearOnResize - on + ClearOnResize + off <- @@ -278,7 +296,7 @@

    Tera Term

    - ClipboardAccessFromRemote + ClipboardAccessFromRemote off <- @@ -290,7 +308,7 @@

    Tera Term

    - ConfirmChangePaste + ConfirmChangePaste on <- @@ -302,7 +320,7 @@

    Tera Term

    - ConfirmChangePasteStringFile + ConfirmChangePasteStringFile <- @@ -320,7 +338,7 @@

    Tera Term

    - ConfirmPasteMouseRButton + ConfirmPasteMouseRButton off <- @@ -350,7 +368,7 @@

    Tera Term

    - CursorCtrlSequence + CursorCtrlSequence off <- @@ -362,7 +380,7 @@

    Tera Term

    - CygwinDirectory + CygwinDirectory c:\cygwin <- @@ -404,7 +422,7 @@

    Tera Term

    - DeleteKey + DeleteKey on off @@ -428,19 +446,19 @@

    Tera Term

    - DisableAcceleratorSendBreak + DisableAcceleratorSendBreak off <- - DisableAppCursor + DisableAppCursor off <- - DisableAppKeypad + DisableAppKeypad off <- @@ -464,7 +482,7 @@

    Tera Term

    - DisableMouseTrackingByCtrl + DisableMouseTrackingByCtrl on <- @@ -476,7 +494,7 @@

    Tera Term

    - DisablePasteMouseRButton + DisablePasteMouseRButton off <- @@ -488,13 +506,31 @@

    Tera Term

    - EnableANSIColor + DlgFont + + <- + + + + DpiAware + on + <- + + + + DrawingResizedFont + on + <- + + + + EnableANSIColor on <- - EnableBlinkAttrColor + EnableBlinkAttrColor on <- @@ -506,23 +542,29 @@

    Tera Term

    - EnableBoldAttrColor + EnableBoldAttrColor on <- - EnableClickableUrl + EnableClickableUrl on off - EnableContinuedLineCopy + EnableContinuedLineCopy on off + + IniAutoBackup + on + <- + + EnableLineMode on @@ -536,7 +578,7 @@

    Tera Term

    - EnableReverseAttrColor + EnableReverseAttrColor on off @@ -560,16 +602,16 @@

    Tera Term

    - EnableURLColor + EnableURLColor on <- FileDir - *1 - *2 - *1 by the installer *2 install directory + + <- + If value is "", program uses "Download folder." FileSendFilter @@ -583,6 +625,12 @@

    Tera Term

    <- + + FixedJIS + off + <- + + FlowCtrl none @@ -590,7 +638,7 @@

    Tera Term

    - FontQuality + FontQuality default <- @@ -608,7 +656,7 @@

    Tera Term

    - HistoryList + HistoryList on off @@ -632,7 +680,7 @@

    Tera Term

    - IMERelatedCursor + IMERelatedCursor off <- @@ -722,29 +770,17 @@

    Tera Term

    - Language + Language * English * by the installer - LanguageSelection - on - <- - - - - ListHiddenFonts + ListHiddenFonts off <- - - Locale - * - japanese - * by the installer - LocalEcho off @@ -758,37 +794,37 @@

    Tera Term

    - LogAppend + LogAppend on off - LogAutoStart + LogAutoStart off <- - LogBinary + LogBinary off <- - LogDefaultName + LogDefaultName teraterm.log <- - LogDefaultPath + LogDefaultPath <- - LogHideDialog + LogHideDialog off <- @@ -806,13 +842,13 @@

    Tera Term

    - LogRotate + LogRotate 0 <- - LogRotateSize + LogRotateSize 0 <- @@ -824,13 +860,13 @@

    Tera Term

    - LogRotateStep + LogRotateStep 0 <- - LogTimestamp + LogTimestamp off <- @@ -842,7 +878,7 @@

    Tera Term

    - LogTimestampType + LogTimestampType Local <- @@ -854,7 +890,7 @@

    Tera Term

    - LogTypePlainText + LogTypePlainText on off @@ -896,25 +932,25 @@

    Tera Term

    - MetaKey + MetaKey off <- - MouseCursor - ibeam + MouseCursor + IBEAM <- - MouseEventTracking + MouseEventTracking on <- - MouseWheelScrollLine + MouseWheelScrollLine 3 <- @@ -926,13 +962,13 @@

    Tera Term

    - NormalizeLineBreakOnPaste - off + NotifyClipboardAccess + on <- - NotifyClipboardAccess + NotifySound on <- @@ -956,7 +992,7 @@

    Tera Term

    - PasteDelayPerLine + PasteDelayPerLine 10 <- @@ -980,14 +1016,14 @@

    Tera Term

    - Port + Port tcpip <- PrinterCtrlSequence - on + off <- @@ -1022,31 +1058,7 @@

    Tera Term

    - RussClient - Windows - <- - - - - RussFont - Windows - <- - - - - RussHost - Windows - KOI8-R - - - - RussKeyb - Windows - <- - - - - RussPrint + RussKeyb Windows <- @@ -1088,7 +1100,7 @@

    Tera Term

    - SelectOnlyByLButton + SelectOnlyByLButton on <- @@ -1142,7 +1154,7 @@

    Tera Term

    - TCPPort + TCPPort *1 *2 *1 by the installer *2 value of TelPort @@ -1208,7 +1220,7 @@

    Tera Term

    - TelKeepAliveInterval + TelKeepAliveInterval 300 <- @@ -1220,7 +1232,7 @@

    Tera Term

    - Telnet + Telnet on <- @@ -1262,7 +1274,7 @@

    Tera Term

    - TermType + TermType xterm <- @@ -1280,7 +1292,7 @@

    Tera Term

    - TitleReportSequence + TitleReportSequence empty <- @@ -1298,13 +1310,13 @@

    Tera Term

    - TrimTrailingNLonPaste + TrimTrailingNLonPaste off <- - UILanguageFile + UILanguageFile * lang\\Default.lng * by the installer @@ -1316,8 +1328,14 @@

    Tera Term

    - UnknownUnicodeCharacterAsWide - off + UnderlineAttrColor + on + <- + + + + UnderlineAttrFont + on <- @@ -1328,7 +1346,7 @@

    Tera Term

    - URLUnderline + URLUnderline on <- @@ -1345,6 +1363,12 @@

    Tera Term

    <- + + FallbackToCP932 + off + <- + + Version 2.3 @@ -1352,11 +1376,17 @@

    Tera Term

    * not used - ViewlogEditor + ViewlogEditor * <- * full path of notepad.exe in Windows folder + + ViewlogEditorArg + + <- + + VTBlinkColor 255,0,0,0,0,0 @@ -1382,7 +1412,7 @@

    Tera Term

    - VTFont + VTFont * Terminal,0,-13,1 * by the installer @@ -1417,6 +1447,12 @@

    Tera Term

    255,255,255,0,0,0 + + VTUnderlineColor + 0,255,0,0,0,0 + 255,0,255,255,255,255 + + Wait4allMacroCommand off @@ -1430,7 +1466,13 @@

    Tera Term

    - WindowCtrlSequence + WindowCornerDontround + off + <- + + + + WindowCtrlSequence on <- @@ -1442,7 +1484,7 @@

    Tera Term

    - WindowReportSequence + WindowReportSequence on <- @@ -1484,7 +1526,7 @@

    Tera Term

    - YmodemLog + YmodemLog off <- @@ -1556,7 +1598,7 @@

    TTSSH

    AuthBanner - 1 + 3 <- @@ -1620,6 +1662,12 @@

    TTSSH

    <- + + DefaultUserType + 1 + <- + + DisablePopupMessage 0 @@ -1658,13 +1706,13 @@

    TTSSH

    HeartBeat - 60 + 300 <- HostKeyOrder - 4567230 + 456798230 <- @@ -1704,6 +1752,12 @@

    TTSSH

    <- + + RSAPubkeySignAlgorithmOrder + 3210 + <- + + SSHIcon Default diff --git a/doc/en/html/setup/teraterm-misc.html b/doc/en/html/setup/teraterm-misc.html index 8bc886ee6..de91a2d4c 100644 --- a/doc/en/html/setup/teraterm-misc.html +++ b/doc/en/html/setup/teraterm-misc.html @@ -24,6 +24,33 @@

    Beep sound on connection

    BeepOnConnect=off
    +

    IME (Multi-byte character input system) control

    + +

    +To disable inline IME input, edit the IMEInline line in the [Tera Term] section of the setup file like the following: +

    +
    +IMEInline=off
    +
    + +
    +Default:
    +IMEInline=on
    +
    + +

    +To Prevent Tera Term from controlling IME to avoid IME-related problems, edit the IME line in the [Tera Term] section of the setup file like the following: +

    + +
    +IME=off
    +
    + +
    +Default:
    +IME=on
    +
    +

    Executing a macro on startup

    @@ -280,9 +307,9 @@

    URL string concatenated of split line

    When the end of URL string continues to the next line, basically the whole string is recognized as a URL string. -However, when the carriage return is inserted into the URL string by the end of a line, the whole string +However, when the carriage return is inserted into the URL string by the end of a line, the whole string can not work well.
    -The URL string split by a carriage return can work well to configure the JoinSplitURL entry of the +The URL string split by a carriage return can work well to configure the JoinSplitURL entry of the [Tera Term] section in the teraterm.ini file.

    @@ -291,7 +318,7 @@

    URL string concatenated of split line

    -By using the emacs editor, a special character will be displayed at the end of the line when +By using the emacs editor, a special character will be displayed at the end of the line when the line continues to next line. If this character is recognized with a part of URL string, the whole string can not work well with the URL format.
    So, Tera Term can ignore the special character to configure the JoinSplitURLIgnoreEOLChar entry @@ -339,7 +366,7 @@

    Exclusive-lock log file

    Deferred log write mode

    -The log file is written on the thread procedure to avoid Tera Term slows down +The log file is written on the thread procedure to avoid Tera Term slows down when the log file is recorded on the network drive.

    @@ -406,6 +433,73 @@

    UTC is used as timestamp at the start of log file's lin LogTimestampUTC=off

    +

    High DPI Aware

    + +

    +The High DPI feature is supported. +Tera Term works as the Per-monitor DPI Aware application. +

    + +

    +Tera Term works as the DPI Unaware application when "DPIAware=off" entry is added to [Tera Term] section in teraterm.ini. +

    + +

    +Scaling results become smooth at High DPI when you choose a TrueType font for the Font. +

    +

    +High DPI aware has some modes. For more reference, see the DPI AwarenessMode section on the High DPI Desktop Application Development on Windows DPI AwarenessMode. +

    +

    +Tera Term is using the Per-monitor DPI awareness V2 feature that is supported on the Windows 10 Version 1703 or later. For more details of the Per-monitor DPI awareness V2, see the High-DPI Scaling Improvements for Desktop Applications in the Windows 10 Creators Update (1703). +

    + +

    Auto backup of Tera Term setup file

    + +

    +When overwriting an existing setup file, a backup file is created automatically. +If you do not need a backup file, change the IniAutoBackup entry of [Tera Term] section as the following: +

    + +
    +IniAutoBackup=off
    +
    + +
    +Default:
    +IniAutoBackup=on
    +
    + +

    Supports bracketed paste

    + +

    +If you do not need Bracketed paste, change the BracketedSupport entry of [Tera Term] section as the following: +

    + +
    +BracketedSupport=off
    +
    + +
    +Default:
    +BracketedSupport=on
    +
    + +

    Limit bracketed pasting to cases containing control characters

    +

    +Bracket pasting is useful because it allows the pasted content to be confirmed before fixateing it, +but it requires two steps of pasting and fixating even if the pasted content does not include control characters such as line changings. +If you want to enable bracket pasting only when control characters are included, change the BracketedControlOnly entry of [Tera Term] section as the following: +

    + +
    +BracketedControlOnly=on
    +
    + +
    +Default:
    +BracketedControlOnly=off
    +
    diff --git a/doc/en/html/setup/teraterm-prn.html b/doc/en/html/setup/teraterm-prn.html index 36381d176..a90879ab1 100644 --- a/doc/en/html/setup/teraterm-prn.html +++ b/doc/en/html/setup/teraterm-prn.html @@ -50,24 +50,19 @@

    Path-through printing directly to a port

    PassThruPort=
    -

    -For Russian mode, you should see also Russian code set of the printer font -

    - -

    Disabling the printing by the control sequence

    -You can disable the which invoked by the control sequence. To do this, edit the PrinterCtrlSequence line in the [Tera Term] section of the setup file like the following: +You can enable the which invoked by the control sequence. To do this, edit the PrinterCtrlSequence line in the [Tera Term] section of the setup file like the following:

    -PrinterCtrlSequence=off
    +PrinterCtrlSequence=on
     
     Default:
    -PrinterCtrlSequence=on
    +PrinterCtrlSequence=off
     
    @@ -118,11 +113,6 @@

    Printer font

    PrnFont=
    -

    -For Russian mode, you should see also Russian code set of the printer font -

    - -

    Page margins

    @@ -171,29 +161,5 @@

    Scaling factors for printing

    -

    Russian code set of the printer font (Russian mode only)

    - -

    -When you specify a printer font or a printer device, you should specify also the character set for the printer font or device. Otherwise, Russian characters may not be printed correctly. To specify the character set, edit the RussPrint line in the [Tera Term] section of the setup file like the following: -

    - -
    -RussFont=<char set>
    -
    - -
    -where <char set> should be one of the following:
    -  Windows
    -  KOI8-R
    -  CP-866
    -  ISO-8859-5
    -
    - -
    -Default:
    -RussPrint=Windows
    -
    - - diff --git a/doc/en/html/setup/teraterm-ssh.html b/doc/en/html/setup/teraterm-ssh.html index 6a647fde1..256714750 100644 --- a/doc/en/html/setup/teraterm-ssh.html +++ b/doc/en/html/setup/teraterm-ssh.html @@ -52,11 +52,11 @@

    Suppressing message box

    -DisablePopupMessage=<Display Method>
    +DisablePopupMessage=<Suppress Message>
     

    -The display method can be specified with 0 or 1. +The "Suppress Message" can be specified with the sum value of suppressing message type. Meaning of each value is as follows.

    @@ -66,7 +66,8 @@

    Suppressing message box

    0 Not suppress pop-up window - 1 Suppress pop-up window + 1 Suppress "sending forwarded data to a local port error" pop-up message + 2 Suppress "SSH channel open error" pop-up window @@ -130,7 +131,7 @@

    Minimum group size for Diffie-Hellman Group Exchang

    The minimum size of group can be specified with 0 and 1024 to 8192.
    When the value is 0, TTSSH uses the optimal value. Current TTSSH sends 2048 -in accordance with RFC 8270. +in accordance with RFC 8270. The value will be changed in the future.
    When the value is specified from 1024 to 8192, the value is used necessarily.

    @@ -173,6 +174,46 @@

    Log Level

    +

    Sign algorithm order of RSA publickey authentication

    + +

    +When publickey authentication with RSA key, some hash algorithms are available for generate sign.
    +You can configure the priority of sign algorithm.
    +Among the sign algorithms supported by server and client, highest priority algorithm in client is used. +

    + +

    +Below setting takes priority rsa-sha2-256 lather than rsa-sha2-512. +

    + +
    +RSAPubkeySignAlgorithmOrder=2310
    +
    + + + + + + + + + + + +
    value sign algorithm hash algorithm for generate sign
    3 rsa-sha2-512 SHA-512
    2 rsa-sha2-256 SHA-256
    1 ssh-rsa SHA1
    0 below this line are disabled.
    + +

    +Note:
    +This config is for the priority of publickey authentication sign algorithm. Not for the priority of server hostkey sign algorithm.
    +Also this config is for publickey authentication sign algorithm with RSA key. Not for other type keys. +

    + +
    +Default:
    +RSAPubkeySignAlgorithmOrder=3210
    +
    + +

    Destination display for X11 transfer

    diff --git a/doc/en/html/setup/teraterm-term.html b/doc/en/html/setup/teraterm-term.html index 550f62563..9b89fdfb2 100644 --- a/doc/en/html/setup/teraterm-term.html +++ b/doc/en/html/setup/teraterm-term.html @@ -1,8 +1,8 @@ - - + Terminal emulation (Tera Term setup file) @@ -95,6 +95,48 @@

    Send C1 (ASCII $80-$9F) control characters

    Send8BitCtrl=off
    +

    Enable incorrect "kanji-out"

    + +

    +The "kanji-out" sequence ^[(H used in some systems does not comply with JIS/ISO standards. Do not use it unless it is really necessary. Bay default, ^[(H can not be selected in the [Setup] terminal dialog box to prevent mistakes. +

    + +

    +To select ^[(H as "kanji-out" sequence, edit the AllowWrongSequence line in the [Tera Term] section of the setup file like the following: +

    + +
    +AllowWrongSequence=on
    +
    + +
    +Default:
    +AllowWrongSequence=off
    +
    + + +

    Invalidate first character of a 2-byte character(Kanji) when a control character is placed between the first and second bytes

    + +

    +Even if a control character (e.g. line feed character) is placed between the first and second bytes of a 2-byte character (Kanji) sent from the host, both the 2-byte character and the control character will be handled correctly by Tera Term's default settings. +

    + +

    +To invalidate the first character of a 2-byte character(Kanji) when a control character is placed between the first and second bytes, edit the CtrlInKanji line in the [Tera Term] section of the setup file like the following: +

    + +
    +CtrlInKanji=off
    +
    + +

    +If a second byte comes after this, it will be shown as garbage. For applications that do not handle 2-byte characters correctly, this may result in fewer garbled screen characters. For example, if there is an application that produces a newline character after the first byte of a Kanji character, but not the second byte after it, the Kanji character will be discarded, but the characters that come after the newline character will not be garbled. +

    + +
    +Default:
    +CtrlInKanji=on
    +

    Displaying all received characters

    @@ -228,29 +270,19 @@

    Scroll down the current buffer when the screen

    -

    Display unsupported Unicode character as wide character

    +

    Mapping of Unicode to DEC special character

    -When the received KANJI code is UTF-8 or UTF-8m, a user can configure the behavior of the Unicode characters which Tera Term does not support as the pure Unicode.
    - -If this configuration value is on, the unsupported Unicode character is displayed as "??".
    -If this configuration value is off, the unsupported Unicode character is displayed as "?". -

    - -
    -Default:
    -UnknownUnicodeCharacterAsWide=off
    -
    - - -

    Mapping of Unicode to DEC special character

    + This section describes the settings. +

    -Tera Term in Japanese mode will display a ruled line and some symbols as 2-columns wide. However, some host applications may assume these characters will be displayed as 1-column wide character which results in incorrect display image.
    -In addition, a ruler may be displayed by using +-| and some unsupported characters may be displayed as ?? in English mode.
    -Tera Term can be configured to display these characters by similar code of DEC special characters (if any exists) to minimize the incorrect display image.
    -However this feature causes a side effect that characters selected by mouse will be copied as different characters in a clipboard.
    -This configuration takes effect only when received Kanji code are either UTF-8 or UTF-8. + See next pages. +

    @@ -467,6 +499,27 @@

    Limited BELL Over

    +

    Flash time when Beep is Visual Bell

    +

    +When the BEL character(ASCII $07) is sent from the host server, Tera Term can blink a screen. +

    + +

    +Blinking is inpremented by reverse terminal and wait for a certain time, and revser terminal again.
    +A user can configure the wait time. +

    + +
    +; Wait time (ms) when Beep is Visual Bell
    +BeepVBellWait=100
    +
    + +
    +省略時:
    +BeepVBellWait=10
    +
    + +

    OSC string buffer size

    Tera Term will expand the buffer size of the OSC string when the buffer size is lack. @@ -544,5 +597,67 @@

    Disabling ISO/IEC 2022 shift function

    +

    Use as 7-bit JIS KATAKANA (dedicated) terminal

    + +

    In the following configuration: +

      +
    • General Settings/Language: Japanese
    • +
    • Terminal/Kanji Receive: JIS
    • +
    • Terminal/Kanji Receive/Half-Width Kana: On
    • +
    +In Japanese mode, by default, G1 is designated to JIS X 0201 half-width katakana. +If using JIS X 0201 half-width katakana with 7-bit encoding, G1 is invoked to GL using SO to use it. +

    + +

    +For example, if you execute the following, it will display as "テラターム". +

    +
    +echo -e '\016CW@0Q\017'
    +# => テラターム
    +
    + +

    +However, when G1 is designated another character set, JIS X 0201 half-width katakana is not displayed using SO. +

    + +
    +# G1 is designated US-ASCII.
    +echo -e '\033)B'
    +
    +# Even when G1 is invoked to GL using SO, JIS X 0201 half-width katakana cannot be displayed.
    +echo -e '\016CW@0Q\017'
    +# => CW@0Q
    +
    + +

    +When FixedJIS=on, G1 is invoked to GL using SO, G1 is designated JIS X 0201 half-width katakana. So JIS X 0201 katakana is always displayed. +

    + +

    +"FixedJIS=on" is a setting to lock G1 to JIS X 0201 half-width katakana. This allows the terminal is always a 7-bit JIS katakana terminal. +

    + +
    +Default:
    +FixedJIS=off
    +
    + +

    Decode invalid UTF-8 characters as CP932

    + +

    +Decode invalid UTF-8 characters as CP932. This is an experimental implementation. +

    + +

    +When using a Cygwin connection and the output character code of Windows command is CP932, +it can be displayed correctly. +

    + +
    +Default:
    +FallbackToCP932=off
    +
    + diff --git a/doc/en/html/setup/teraterm-trans.html b/doc/en/html/setup/teraterm-trans.html index b82b9356f..a3f556748 100644 --- a/doc/en/html/setup/teraterm-trans.html +++ b/doc/en/html/setup/teraterm-trans.html @@ -137,6 +137,45 @@

    Kermit File Attributes

    +

    Logging of Quick-VAN

    + +

    +To make the contents of the exchanged packets are recorded in the file QUICKVAN.LOG while transferring between the host and Tera Term using Quick-VAN, edit the QVLog line in the [Tera Term] section of the setup file like the following: +

    + +
    +QVLog=on
    +
    + +
    +Default:
    +QVLog=off
    +
    + + +

    Window size of Quick-VAN

    + +

    +To set the parameter Window Size used in the Quick-VAN protocol, edit the QVWinSize line in the [Tera Term] section of the setup file like the following: +

    + +
    +QVWinSize=<window size (Decimal(positive))>
    +
    + +

    +Possible window size values are from 1 to 99. In general, if the line is fast enough and error-free, the larger the window size, the faster the transfer rate. However, if a slow or error-prone line is used, or if the host or PC is not able to retrieve data, too large a window size will adversely affect the transfer rate. +

    + +

    +The window size value actually used is the smaller of the Tera Term setting and the host (PC-VAN) setting. Therefore, if the Tera Term setting value is set larger than a certain value, the transfer rate will not change any more. +

    + +
    +Default:
    +QVWinSize=8
    +
    +

    XMODEM log

    @@ -193,6 +232,22 @@

    Timeout settings for XMODEM

    +

    YMODEM log

    + +

    +To log data packets of YMODEM to the file YMODEM.LOG, edit the YmodemLog line in the [Tera Term] section of the setup file like the following: +

    + +
    +YmodemLog=on
    +
    + +
    +Default:
    +YmodemLog=off
    +
    + +

    Timeout settings for YMODEM

    diff --git a/doc/en/html/setup/teraterm-win.html b/doc/en/html/setup/teraterm-win.html index 4f117fbdf..5fee9d99f 100644 --- a/doc/en/html/setup/teraterm-win.html +++ b/doc/en/html/setup/teraterm-win.html @@ -9,10 +9,10 @@ -

    Disabling auto text copying

    +

    Auto text copying

    -If you select text by mouse, it is copied to the clipboard at the same time. To disable the auto text copying, edit the AutoTextCopy line in the [Tera Term] section of the setup file like the following: +If you select text by mouse, it is copied to Windows clipboard at the same time. To enable/disable the auto text copying, edit the AutoTextCopy line in the [Tera Term] section of the setup file like the following:

    @@ -58,7 +58,8 @@ 

    Delimiters of a word selected by double clicking

    -In the DelimList line, only singe-byte code characters can be specified. Double-byte code characters (Japanese kanji) are regarded as delimiters. You can make them be non-delimiters by editing the DelimDBCS line like the following: +By default, delimit between one cell characters and two cells or more characters (such as kanji or emojis).
    +Setting off DelimDBCS in the [Tera Term] section of the configuration file will disable the delimiter.

    @@ -112,22 +113,6 @@ 

    Hiding the "Show menu bar" command

    -

    Disabling the language mode selection

    - -

    -To disable the language mode selection in the [Setup] General dialog box, edit the LanguageSelection line in the [Tera Term] section of the setup file like the following: -

    - -
    -LanguageSelection=off
    -
    - -
    -Default:
    -LanguageSelection=on
    -
    - -

    Maximum scroll buffer size

    @@ -184,7 +169,7 @@

    Maximum number of lines to move in a jump scrolling

    Disabling text selection when the window is activated by mouse

    -When the window is inactive, you can activate the window by clicking the text area of window. In the default setup, the text selection is started by this mouse clicking at the same time. To disable the text selection when the window is activated by mouse, edit the SelectOnActive line in the [Tera Term] section of the setup file like the following: +When the window is inactive, you can activate the window by clicking the text area of window. In the default setup, if mouse L button is clicked, the text selection is started by this mouse clicking at the same time. To disable the text selection when the window is activated by mouse Left click, edit the SelectOnActivate line in the [Tera Term] section of the setup file like the following:

    @@ -316,8 +301,9 @@ 

    Space between characters (lines)

     Example:
    -VTFontSpace=0,1,0,0    1 pixel of right side space for each character.
    -VTFontSpace=0,0,1,0    1 pixel of space above each line.
    +VTFontSpace=0,1,0,0    expand 1 pixel of right side space for each character.
    +VTFontSpace=0,0,1,0    expand 1 pixel of space above each line.
    +VTFontSpace=0,0,-1,-1  reduce 1 pixel of space above and bellow each line.
     
    @@ -341,161 +327,6 @@ 

    Hiding the [Window] menu

    WindowMenu=on
    - -

    Eterm lookfeel window

    - -

    -To specify the detailed settings for Eterm lookfeel window, edit the [BG] section of the setup file like the following: -

    - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    BGSPIPathfolder nameThis option can specify Susie plugin path to load the image. Susie is Japanese free software.
    BGFastSizeMoveOn / OffThis option enables Tera Term window moving and resizing to more faster. This feature is valid in Windows dragging mode.
    BGFlickerlessMoveOn / OffThis option can reduce the flicker of window moving.
    BGUseAlphaBlendAPIOn / OffFor debug. Tera Term does not use AlphaBlend API when this option is off.
    BGNoFrameOn / OffTera Term window is without frame when this option is on and HideTitle option is on. - If so, you can resize window with Alt + Shift + LeftDrag.
    BGThemeFilefile nameYou can specify the theme file.
    - Tera Term will randomly select one of files when the theme file is specify with wildcard.
    - -
    -Default:
    -BGUseAlphaBlendAPI = On
    -BGSPIPath = plugin
    -BGFastSizeMove = On
    -BGFlickerlessMove = On
    -BGNoFrame = Off
    -BGThemeFile = theme\*.ini
    -
    - -

    Configure of theme file

    - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    BGReverseTextTone0 - 255The transparency value of the reverse text.
    BGPictureFilefile nameYou can specify the image file name merging with the wall paper.
    - Tera Term will randomly select one of files when the wild card is specified.
    - Please specify the relative path from the theme file when you want to use the relative path.
    - The kind of file that Tera Term can load is depend the plugin stored in BGSPIPath.
    - Tera Term can load the bitmap file when there is not plugin.
    -
    BGPicturePatternStretch
    - Tile
    - Center
    - FitWidth
    - FitHeight
    - AutoFit
    You can specify the painting method of the image file.
    - Both FitWidth and FitHeight can expand or reduce the image while the aspect ratio of the image preserves.
    - AutoFit can exchange FitWidth for FitHeight not to generate the space between the window and the image. -
    BGPictureBaseColorR, G, BThis color can paint between the image file and the window.
    BGPictureTone0 - 255The transparency value of the image file.
    BGFadeTone0 - 255This option can enable the whole background to fade.
    BGFadeColorR, G, BThis option can configure the fade color.
    VTFore, Red ...R, G, BThis option can configure the text color.
    - - -

    Extension of theme file

    - -

    -A user can configure the extension of the theme file based on the theme\Advanced.sample file.
    -For example, an image file(sample.jpg) can be drawn in the Tera Term background. -Please specify the .ini file at the BGThemeFile entry of the teraterm.ini file. -

    - -
    -[BG]
    -; Advanced Setting
    -; Image source setting
    -; Type      : Color / Picture / Wallpaper
    -: Pattern   : Stretch / Tile / Center / FitWidth / FitHeight / AutoFit
    -; AntiAlias : On / Off
    -; Color     : R,G,B (0-255)
    -; Alpha     : 0-255
    -; File      : wildcard => random select
    -; Dest = (Src1  * Src1Alpha + Dest * (255 - Src1Alpha)) / 255
    -; Dest = (Src2  * Src2Alpha + Dest * (255 - Src2Alpha)) / 255
    -BGReverseTextAlpha = 192
    -;
    -BGDestType      = Picture
    -BGDestFile      = sample.jpg
    -BGDestPattern   = AutoFit
    -BGDestAntiAlias = On
    -BGDestColor     = 0,0,0
    -;
    -BGSrc1Type      = Color
    -BGSrc1File      = 
    -BGSrc1Pattern   = 
    -BGSrc1AntiAlias = 
    -BGSrc1Color     = 32,32,32
    -BGSrc1Alpha     = 64
    -;
    -BGSrc2Type      = Color
    -BGSrc2File      = 
    -BGSrc2Pattern   = 
    -BGSrc2AntiAlias = 
    -BGSrc2Color     = 32,32,32
    -BGSrc2Alpha     = 64
    -
    - -

    How to scroll the screen when the window size is maximized

    The screen scrolling method can be specified when the window size is maximized. @@ -617,14 +448,16 @@

    Change the window icon

    - TTERM Icon of TTERM - VT Icon of VT - TEK Icon of TEK - TTERM_CLASSIC Icon of TTERM_CLASSIC - VT_CLASSIC Icon of VT_CLASSIC - TTERM_3D Icon of TTERM_3D - VT_3D Icon of VT_3D - CYGTERM Icon of CYGTERM + TTERM Icon of TTERM + VT Icon of VT + TEK Icon of TEK + TTERM_CLASSIC Icon of TTERM_CLASSIC + VT_CLASSIC Icon of VT_CLASSIC + TTERM_3D Icon of TTERM_3D + VT_3D Icon of VT_3D + TTERM_FLAT Icon of TTERM_FLAT + VT_FLAT Icon of VT_FLAT + CYGTERM Icon of CYGTERM Default Default("VT" at VT window, "TEK" at TEK window) @@ -647,10 +480,12 @@

    Change the window icon

    - flat flat ttssh icon - green green ttssh icon - yellow yellow ttssh icon - Default A default icon(equal to flat) + flat2 flat2 ttssh icon + classic original ttssh icon + yellow yellow ttssh icon + green green ttssh icon + flat flat ttssh icon + Default A default icon(equal to flat2) @@ -662,5 +497,38 @@

    Change the window icon

    +

    Delay for stating of text selection

    +

    +You can configure the delay for the start of text selection with the mouse and treat it as a click if the time you drag with the mouse is short.
    +For example, to handle as a click when the mouse drag time is shorter than 200 msecs, edit the MouseSelectStartDelay line in the [Tera Term] section of the setup file like the following: +

    + +
    +MouseSelectStartDelay=200
    +
    + +
    +Default:
    +MouseSelectStartDelay=0
    +
    + + +

    Don't round window corners

    + +

    +On Windows 11 the corners of window are rounded, so some areas are not shown. +To prevent rounding the corners of the VT and TEK window, change the WindowCornerDontround line in [Tera Term] section of the setup file like the following: +

    + +
    +WindowCornerDontround=on
    +
    + +
    +Default:
    +WindowCornerDontround=off
    +
    + + diff --git a/doc/en/html/setup/teraterm.html b/doc/en/html/setup/teraterm.html index 63c961a72..f5d5a608e 100644 --- a/doc/en/html/setup/teraterm.html +++ b/doc/en/html/setup/teraterm.html @@ -73,7 +73,6 @@

    Terminal emulation

  • Mouse code in TEK GIN report
  • Displaying tab at end of line like VT terminal
  • Scroll down the current buffer when the screen is clear
  • -
  • Display unsupported Unicode character as wide character
  • Mapping of Unicode to DEC special character
  • Mapping of the function key
  • Sending MSB set character with Alt key
  • @@ -81,8 +80,11 @@

    Terminal emulation

  • Configure Terminal Unique ID
  • Changing Terminal Unique ID
  • Disabling tabstop modification
  • -
  • Limited BEL Over
  • +
  • Limited BEL Over
  • +
  • Flash time when Beep is Visual Bell
  • Disabling ISO/IEC 2022 shift function
  • +
  • Use as 7-bit JIS KATAKANA (dedicated) terminal
  • +
  • Decode invalid UTF-8 characters as CP932
  • Window

    @@ -91,7 +93,6 @@

    Window

  • Delimiters of a word selected by double clicking
  • Disabling the pop-up menu
  • Hiding the "Show menu bar" command
  • -
  • Disabling the language mode selection
  • Maximum scroll buffer size
  • Nonblinking cursor
  • Maximum number of lines to move in a jump scrolling
  • @@ -100,12 +101,13 @@

    Window

  • Actual colors of "white" and "black" colored text
  • Space between characters (lines)
  • Hiding the [Window] menu
  • -
  • Eterm lookfeel window
  • How to scroll the screen when the window size is maximized
  • Display the cursor even if the window comes out of focus
  • Fix the initial window position
  • Save the window position
  • Change the window icon
  • +
  • Delay for starting of text selection.
  • +
  • Don't round window corners
  • Communication

    @@ -134,6 +136,7 @@

    File transfer

  • XMODEM log
  • Receive command for XMODEM
  • Timeout settings for XMODEM
  • +
  • YMODEM log
  • Timeout settings for YMODEM
  • Auto activation of ZMODEM Receive / Send
  • Parameters for ZMODEM sending
  • @@ -156,7 +159,6 @@

    Printing

  • Printer font
  • Page margins
  • Scaling factors for printing
  • -
  • Russian code set of the printer font (Russian mode only)
  • Miscellaneous

    @@ -179,7 +181,11 @@

    Miscellaneous

  • Exclusive-lock log file
  • Deferred log write mode
  • Specify timestamp format at the start of log file's line
  • -
  • UTC is used at timestamp format of the start of log file's line +
  • UTC is used at timestamp format of the start of log file's line
  • +
  • High DPI Aware
  • +
  • Auto backup of Tera Term setup file
  • +
  • Support bracketed paste
  • +
  • Limit bracketed pasting to cases containing control characters
  • TTSSH

    @@ -189,6 +195,7 @@

    TTSSH

  • Minimum group size for Diffie-Hellman Group Exchange
  • log level
  • +
  • Sign algorithm order of RSA publickey authentication
  • Destination display for X11 transfer
  • diff --git a/doc/en/html/setup/theme.html b/doc/en/html/setup/theme.html new file mode 100644 index 000000000..0d7cb5b52 --- /dev/null +++ b/doc/en/html/setup/theme.html @@ -0,0 +1,254 @@ + + + + +Theme setup file + + + + + +

    Theme setup file

    + + + +

    TODO

    +
      +
    • Determine theme file specifications +
    • Modify color picker to match theme file specifications +
    + +

    About theme file

    + + There are several types of theme file. + +
    +
    BG(Backgroup) theme
    +
    + File containing [BG Theme] section
    + This section is background image settings +
    +
    Color theme
    +
    + File containing [Color Theme] section
    + This section is text color settings +
    +
    Old Color Theme (obsolete)
    +
    + The [BG] section contains the text color settings.
    + Color themes supported in Tera Term 4
    + Loading this file is supported. But this will be deprecated +
    +
    + + BG (background) themes and color themes may be saved in separate files, + also save both in one file. + + File format is Windows ini file. + +

    BG(Background) theme

    + +

    section

    + + "BG theme"
    + + The "BG" section can also be read (but will be deprecated). + If both are present, "BG theme" has priority. + +
    +
    BGDestColor
    +
    + If no background image is used, it will be filled with this color.
    + Areas where the background image is not drawn are also filled with this color. +
    + +
    BGDestFile
    +
    + background image
    + If a wildcard is containd in the file name, one of the matching files will be selected at random.
    + If it is a relative path, specify a path relative to the theme file.
    + The type of files that can be read depends on plugin stored in the BGSPIPath.
    + Bitmaps(bmp) can be loaded without plugins. +
    + +
    BGDestPattern
    +
    Background pattern +
    +
    stretch
    +
    tile
    +
    center
    +
    fit_width
    +
    fit_height
    +
    autofit
    +
    autofill
    +
    + FitWidth, FitHeight resizes image with aspect ratio maintained.
    + AutoFit switches between FitWidth and FitHeight to adjust window and image size + to avoid gaps. +
    +
    +
    + +
    BGSrc1Alpha
    +
    + Alphablend the wallpaper image in Windows.
    + This value to alpha blend value the desktop image (Src1) onto the background image (Dest).
    + When value is 0, the wallpaper will not be blended. +
    + + +
    BGSrc2Color
    +
    + The color to alpha-blend entire background image. +
    + +
    BGSrc2Alpha
    +
    + Alphablend value
    + How much to blend a solid color (Src2) onto the image of Dest and Src1. +
    + +
    BGTextBackAlpha
    +
    + 0 - 255
    + AlphaBlend value for the normal text background color. 255 is full opacity. +
    + +
    BGReverseTextAlpha
    +
    + 0 - 255
    + AlphaBlend value for reverse text background color. 255 is full opacity. +
    + +
    BGTextAlpha
    +
    + 0 - 255
    + AlphaBlend value for other text background colors. 255 is full opacity. +
    +
    + +

    color theme

    + +

    section

    + + "Color Theme" + +

    name

    + +
    +
    Theme
    +
    Theme name, value is a string.
    +
    + +

    attribute color

    + +
    +
    VTColor
    +
    normal text background color, SGR 0
    + +
    BoldColor
    +
    SGR 1
    + +
    VTUnderlineColor
    +
    SGR 4
    + +
    BlinkColor
    +
    SGR 5
    + +
    ReverseColor
    +
    SGR 7
    + +
    URLColor
    +
    + URL text color
    + Text color added when Tera Term detects a URL string +
    + +
    values (0 or 1), (0 or 1), (fore red), (fore green), (fore blue), (back red), (back green), (back blue)
    +
    values (0 or 1), (0 or 1), (fore), (back)
    +
    +
    +
    (0 or 1)
    +
    + 1=Changing from the default color.
    + 0=No change.
    + (Not referenced in VTColor) +
    +
    (0 or 1)
    +
    + 1=Enable custom colors for text attributes (such as Bold attribute).
    + 0=Disable.
    + (Not referenced in VTColor) +
    + +
    (fore red), (fore green), (fore blue)
    +
    Text color, each value from 0 to 255.
    + +
    (back red), (back green), (back blue)
    +
    Background color, each from 0 to 255.
    + +
    (fore), (back)
    +
    + #RRBBGG format, each value from 0 to ff +
    +
    +
    +
    + +

    ANSI color

    + + First 16 colors when 256 ANSI colors or 16 ANSI colors.
    + Dark colors are not used when 8 colors. + +
    +
    ANSIColor=(0 or 1)
    +
    + 1=Changing from the default color.
    + 0=No change. +
    +
    + +
    +
    Fore
    +
    256 ANSI color 15
    + Normal text color(VTColor is used) +
    + +
    Back
    +
    256 ANSI color 0
    + Normal background color(VTColor is used) +
    + +
    Red
    +
    Green
    +
    Yellow
    +
    Blue
    +
    Magenta
    +
    Cyan
    +
    DarkFore
    +
    DarkBack
    +
    DarkRed
    +
    DarkGreen
    +
    DarkYellow
    +
    DarkBlue
    +
    DarkMagenta
    +
    DarkCyan
    +
    Each color
    + +
    Values are (red), (green), (blue)
    +
    from 0 to 255
    + +
    value (color)
    +
    + #RRBBGG format, from 00 to ff +
    + +
    + + + diff --git a/doc/en/html/style.css b/doc/en/html/style.css index 6b086a8b0..eb9ee14cc 100644 --- a/doc/en/html/style.css +++ b/doc/en/html/style.css @@ -5,15 +5,19 @@ body { } h1 { - font-size: x-large; + font-size: 150%; } h2 { - font-size: large; + font-size: 135%; } h3 { - font-size: medium; + font-size: 120%; +} + +h4 { + font-size: 100%; } .center { diff --git a/doc/en/html/uninstall.html b/doc/en/html/uninstall.html index 2e2d682b4..c434e3209 100644 --- a/doc/en/html/uninstall.html +++ b/doc/en/html/uninstall.html @@ -10,14 +10,25 @@

    Uninstallation

    +

    Case installed from the installer

    + +

    +To uninstall Tera Term, run "Programs and Features" in Control Panel, or run unins000.exe in the Tera Term directory.
    +Next, remove the "Tera Special" font from "Fonts" in Control Panel.
    +If the uninstaller does not work, you can uninstall Tera Term manually.
    +

    + +

    Case used ZIP archive

    +

    -To uninstall Tera Term, run "Programs and Features" in Control Panel, or run unins000.exe in the Tera Term directory. +Please uninstall Tera Term manually.

    +

    Manual uninstallation

    +

    -If the uninstaller does not work, you can uninstall Tera Term Pro manually. Delete all Tera Term files in the Tera Term directory and remove the "Tera Special" font from "Fonts" in Control Panel.
    -If a user uses the Tera Term Menu, delete the HKEY_CURRENT_USER\Software\ShinpeiTools\TTermMenu registry. +If a user uses the TeraTerm Menu, delete the HKEY_CURRENT_USER\Software\ShinpeiTools\TTermMenu registry.

    diff --git a/doc/en/html/usage/LogMeTT/LogMeTTTutorial.htm b/doc/en/html/usage/LogMeTT/LogMeTTTutorial.htm deleted file mode 100644 index 6c0b85057..000000000 --- a/doc/en/html/usage/LogMeTT/LogMeTTTutorial.htm +++ /dev/null @@ -1,285 +0,0 @@ - - - - - - -LogMeTT Tutorial - - - - -

    LogMeTT Tutorial

    - -

    1. What is LogMeTT?

    - -

    -LogMeTT is a launcher application for TeraTerm -terminal emulator- macro. A user can automate login procedure to the remote host as well as running any process on the server. Though `TeraTerm Menu' is already available as auto-login application, LogMeTT has more feature than TeraTerm Menu. These features include SSH2 connection, scheduling, auto logging, color setup per the remote host and so on. In addition, LogMeTT supports the tree repository per a macro file. LogMeTT author is Boris living in USA. LogMeTT has been included in TeraTerm package. -

    - - -

    2. What can LogMeTT do?

    - -

    -A user can manage an automated connection to remote hosts by using LogMeTT. Also a user can effectively administrate these configuration files because these host information can be registered as a tree repository. However, LogMeTT lacks the feature such as quick launching by keyboard shortcut which is supported by TeraTerm Menu. -

    - - -

    3. How to launch

    - -

    -LogMeTT can be launched from File menu of TeraTerm. When it is activated, LogMeTT icon will appear in the notification area, far right of a taskbar. -

    - -
    tasktray
    - - -

    4. Configuration

    - -

    -We will explain LogMeTT configurations in this chapter. A user will realize an easy-to-use automated procedure using TeraTerm. -

    - -

    -1. Right-click LogMeTT icon in the notification area (see upper 3. figure), and then select "Configure...". -

    - -

    -2. Configuration dialog will appear. Click the "Settings" tab, and then select the "Run at log on to Windows" check box on the "Settings" tab. LogMeTT will be automatically launched immediately after logon to Windows. -

    - -

    -3. When "Start logging" is checked on New Connections tab under Settings tab, auto logging will start by launching LogMeTT from TeraTerm macro (The log file is located in `TeraTerm installation directory\Logs\LogMeTTmenu name_timestamp.log'). -

    - -
    logon
    - -

    -4. When a user selects "Add Child" under "Connection" menubar, an entry will be added. A user can also select "Add Child" by right-click "This computer" on screen left. -

    - -

    -5. Next, "Unnamed connection #1" icon will be added under "This computer". Then select the icon and rename by pressing F2 key. -

    - -
    add
    - -

    -6. Select "Macro" tab, and then enter a description of macro script to login to the remote host. If you want User Name to be fixed and Password to be entered via dialog box, refer to the following macro script. Alternatively, you can directly write the user's password in the macro file although it is not recommended.
    -*NOTICE* Refer to 5. section about the security conscious macro. -

    - -
    
    -username = 'nike'
    -hostname = '192.168.1.3'
    -
    -;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
    -
    -msg = 'Enter password for user '
    -strconcat msg username
    -passwordbox msg 'Get password'
    -
    -msg = hostname
    -strconcat msg ':22 /ssh /auth=password /user='
    -strconcat msg username
    -strconcat msg ' /passwd='
    -strconcat msg inputstr
    -
    -connect msg
    -
    - -
    macro
    - -

    -7. Press F9 key for your macro script to be verified. If it is confirmed, save the macro script to the file by pressing Apply button at upper right direction. -

    - -

    -8. A user can select the user's registered remote host configuration in the notification area. -

    - -

    -9. If a user specifies some messages on "Popup" tab in the following window: -

    - -
    popup
    - -

    -Then below popup message will be shown. -

    - -
    popup
    - -

    -Popup dialog can be used to confirm a notice when a user connects to an important host or a user switches the privilege level to the super user level. When a user presses OK button on the popup message, then the macro script will be run. Otherwise when a user presses Cancel button, then the macro script will be cancelled. -

    - -

    -10. On "Colors" tab, a user can modify TeraTerm coloration for each connection. Like as Popup dialog, this tab can be used to change coloration. It prevents a user miss operation. -

    - -
    color
    - -

    -11. On "Schedule" tab, a user can automatically run the macro script. By using this feature, a user can do as follows. -

    - -
      -
    • Power cycle
    • -
    • Send e-mail or call upon failure by combination "Settings" tab and "User Data" tab.
    • -
    • Periodically backup or status check
    • -
    - -

    -NOTICE: If a user puts a child tree in schedule, all parent tree will be run. If a user want to run it as an independent task, a child tree should be moved under "This computer" top tree. Also, please be careful of the difference of timestamp between remote host and local host. -

    - -

    -RECOMMENDATION: If a user utilizes scheduling feature, turn on auto-logging mode. -

    - - -

    5. Security-conscious macro script

    - -

    -This section is to discuss the topic about TeraTerm macro. -

    - -

    -Although the user name is directly described in the macro script in an example of Section 4, this is not appropriate for security policy. Therefore, a new procedure for encrypting the user name and the password is described below. -

    - - -

    1. sample macro for auto-login with encrypting the user's password.

    - -

    -The user name is scott, the host name is remote.host, and the destination of the password file is located in C:\mydata\filename.dat. -

    - -
    
    -; setting
    -hostname = 'remote.host'
    -username = 'scott'
    -getpassword 'C:\mydata\filename.dat' 'usrpass' inputstr
    -
    -; connection & login
    -msg = hostname
    -strconcat msg ':22 /ssh /2 /auth=password /user='
    -strconcat msg username
    -strconcat msg ' /passwd='
    -strconcat msg inputstr
    -connect msg
    -
    - -

    -getpassword 'filepath\filename' 'IDENTIFICATION' $stored variable -

    - -

    -A user can save the encrypted password with multiple identifications in a sample file. -

    - -

    -This macro script confirms the user password for the first time. After this, the encrypted password in "C:\mydata\filename.dat" is used for auto-login. -

    - - -

    2. Sample macro script of auto-login saving the encrypted user name and the password file are located in C:\mydata\filename.dat.

    - -

    -The host name is remote.host, and the destination of the user name and the password file are specified on C:\mydata\filename.dat. -

    - -
    
    -; setting
    -hostname = 'remote.host'
    -getpassword 'C:\mydata\filename.dat' 'usrid' username
    -getpassword 'C:\mydata\filename.dat' 'usrpass' inputstr
    -
    -; connection & login
    -msg = hostname
    -strconcat msg ':22 /ssh /2 /auth=password /user='
    -strconcat msg username
    -strconcat msg ' /passwd='
    -strconcat msg inputstr
    -connect msg
    -
    - -

    -getpassword 'filepath\filename' 'IDENTIFICATION' $stored variable -

    - -

    -The user names are also stored as "usrid" identification in this macro script. A user must input both the user name and password for the first time, however a user no longer needs to input these information for the second time or later. A user can encrypt the host name in a same manner, however a user must be careful of adding the host name to TeraTerm history buffer for security policy. -

    - - -

    3. Using telnet protocol

    - -

    -Be advised that the macro script by using telnet -port23- protocol is different from the above. The reason is that telnet protocol authenticates the user after connection established. -

    - -
    
    -; setting
    -hostname = 'remote.host'
    -getpassword 'C:\mydata\filename.dat' 'usrid' username
    -getpassword 'C:\mydata\filename.dat' 'usrpass' inputstr
    -;; login session [*]
    -UsernamePrompt = 'Please login:'
    -PasswordPrompt = 'Please Enter password:'
    -
    -; connection
    -msg = hostname
    -strconcat msg ':23'
    -strconcat msg ' /nossh'
    -connect msg
    -
    -; login
    -wait   UsernamePrompt
    -sendln username
    -wait   PasswordPrompt
    -sendln inputstr
    -
    - -

    -[*] A user may change these prompt strings for the corresponding remote host. -

    - - -

    Caution of the file saving encryption data

    - -

    -A user can maintain the password file stored in secure location and it is available for root user to be prompted for this password. For instance, an administrator configures a long password string for the first time, then he/she can delete the file after save in the password file. -

    - -

    -As above stated, when the password is saved in the local file, it is a good idea to add a batch which deletes the password file on LogMeTT startup so that a user only needs to be authenticated for the first time. -

    - -

    -There is no complete security solution in the world, may these topics help you to tighten the security. -

    - - -

    6. Latest download

    - -

    -Basically, we will include LogMeTT latest version at the time of TeraTerm release. However, it is not necessarily the case that TeraTerm installation package includes LogMeTT latest version because LogMeTT project is different from TeraTerm project. Sure, the latest version is here. -

    - -

    -Also, the user can get LogMeTT latest version by selecting "Check for updates" on "Help" menu. -

    - - -

    7. Contact address

    - -

    -e-mail: boris at logmett.com
    -LogMeTT web page -

    - - - diff --git a/doc/en/html/usage/LogMeTT/color.jpg b/doc/en/html/usage/LogMeTT/color.jpg deleted file mode 100644 index 6905ee74f..000000000 Binary files a/doc/en/html/usage/LogMeTT/color.jpg and /dev/null differ diff --git a/doc/en/html/usage/LogMeTT/macro.jpg b/doc/en/html/usage/LogMeTT/macro.jpg deleted file mode 100644 index 37936b69a..000000000 Binary files a/doc/en/html/usage/LogMeTT/macro.jpg and /dev/null differ diff --git a/doc/en/html/usage/LogMeTT/popup.jpg b/doc/en/html/usage/LogMeTT/popup.jpg deleted file mode 100644 index 235b4d19d..000000000 Binary files a/doc/en/html/usage/LogMeTT/popup.jpg and /dev/null differ diff --git a/doc/en/html/usage/LogMeTT/popup2.jpg b/doc/en/html/usage/LogMeTT/popup2.jpg deleted file mode 100644 index f365834f0..000000000 Binary files a/doc/en/html/usage/LogMeTT/popup2.jpg and /dev/null differ diff --git a/doc/en/html/usage/LogMeTT/setting_add.jpg b/doc/en/html/usage/LogMeTT/setting_add.jpg deleted file mode 100644 index 1a94a96c6..000000000 Binary files a/doc/en/html/usage/LogMeTT/setting_add.jpg and /dev/null differ diff --git a/doc/en/html/usage/LogMeTT/setting_log.jpg b/doc/en/html/usage/LogMeTT/setting_log.jpg deleted file mode 100644 index 735538131..000000000 Binary files a/doc/en/html/usage/LogMeTT/setting_log.jpg and /dev/null differ diff --git a/doc/en/html/usage/LogMeTT/setting_logon.jpg b/doc/en/html/usage/LogMeTT/setting_logon.jpg deleted file mode 100644 index 480e393a6..000000000 Binary files a/doc/en/html/usage/LogMeTT/setting_logon.jpg and /dev/null differ diff --git a/doc/en/html/usage/LogMeTT/tasktray.jpg b/doc/en/html/usage/LogMeTT/tasktray.jpg deleted file mode 100644 index 72768efce..000000000 Binary files a/doc/en/html/usage/LogMeTT/tasktray.jpg and /dev/null differ diff --git a/doc/en/html/usage/TTMenu/TTMenu.html b/doc/en/html/usage/TTMenu/TTMenu.html index ab4b5579c..c6ce0e152 100644 --- a/doc/en/html/usage/TTMenu/TTMenu.html +++ b/doc/en/html/usage/TTMenu/TTMenu.html @@ -5,28 +5,34 @@ -Tera Term Menu Tutorial +TeraTerm Menu Tutorial -

    Tera Term Menu Tutorial

    +

    TeraTerm Menu Tutorial

    -

    1. About Tera Term Menu

    +

    1. About TeraTerm Menu

    -Tera Term Menu(ttpmenu.exe) is a launcher tool which can kick the Tera Term easily. -Tera Term Menu copyright belongs to S.Hayakawa, however the Tera Term Menu is currently maintained by TeraTerm Project and this is included into the Tera Term installation package. +TeraTerm Menu(ttpmenu.exe) is a launcher tool which can kick the Tera Term easily. +TeraTerm Menu copyright belongs to S.Hayakawa, however the TeraTerm Menu is currently maintained by TeraTerm Project and this is included into the Tera Term installation package.

    + +NOTE: Users with administrator privileges can use tools such as Process Explorer to display arguments such as the user name and password of Tera Term started from the TeraTerm Menu.
    +Please refrain from using TeraTerm Menu in environments where there is a risk of information leakage. +
    +

    2. Registry

    -Tera Term Menu configuration is recorded into the registry(HKEY_CURRENT_USER\Software\ShinpeiTools\TTermMenu). +TeraTerm Menu configuration is recorded into the registry(HKEY_CURRENT_USER\Software\ShinpeiTools\TTermMenu). If the ini file wants to be used instead of the registry, please put the "ttpmenu.ini"(empty size) in the "ttpmenu.exe" directory in advance.
    -NOTE: The registry database can not be exported into the ini file automatically. Please use the converting script. +NOTE: The registry database can not be exported into the ini file automatically. Please use the converting script.
    +User names, passwords, etc. are saved in the registry or ini file, so please handle them with care.

    @@ -34,7 +40,7 @@

    2. Registry

    3. How to launch

    -When the Tera Term Menu is launched, the application be shown on the tasktray. When the tasktray icon is clicked by the left mouse button, a user can kick the Tera Term from the menulist. And when the icon is clicked by the right mouse button, the user can register the menu list and configure the behavior of the Tera Term Menu. +When the TeraTerm Menu is launched, the application be shown on the tasktray. When the tasktray icon is clicked by the left mouse button, a user can kick the Tera Term from the menulist. And when the icon is clicked by the right mouse button, the user can register the menu list and configure the behavior of the TeraTerm Menu.

    tasktray
    @@ -43,7 +49,7 @@

    3. How to launch

    4. Configuration

    -When a user uses the Tera Term Menu for the first time, the menu list is empty. First, please make the menu list. Click the tasktray icon by the right mouse button, and select the "List Configuration". Next, input some entries on the "Configuration" and push the left arrow button. So, your menu list will be registered on the "List Item" at the left side. +When a user uses the TeraTerm Menu for the first time, the menu list is empty. First, please make the menu list. Click the tasktray icon by the right mouse button, and select the "List Configuration". Next, input some entries on the "Configuration" and push the left arrow button. So, your menu list will be registered on the "List Item" at the left side.

    Menu list
    @@ -69,7 +75,7 @@

    4. Configuration

    -When the menu list is completely registered, a user can click the Tera Term Menu icon by the left mouse button and then the menu list will be shown. At the result, the user can launch the Tera Term easily. +When the menu list is completely registered, a user can click the TeraTerm Menu icon by the left mouse button and then the menu list will be shown. At the result, the user can launch the Tera Term easily.

    Menu list
    diff --git a/doc/en/html/usage/TTMenu/menulist1.png b/doc/en/html/usage/TTMenu/menulist1.png index 6495a4327..d1e3833b0 100644 Binary files a/doc/en/html/usage/TTMenu/menulist1.png and b/doc/en/html/usage/TTMenu/menulist1.png differ diff --git a/doc/en/html/usage/TTMenu/menulist2.png b/doc/en/html/usage/TTMenu/menulist2.png index 5c3a8c0c4..cc7208f1c 100644 Binary files a/doc/en/html/usage/TTMenu/menulist2.png and b/doc/en/html/usage/TTMenu/menulist2.png differ diff --git a/doc/en/html/usage/cygwin.html b/doc/en/html/usage/cygwin.html index 1e2181dee..0b5ad034a 100644 --- a/doc/en/html/usage/cygwin.html +++ b/doc/en/html/usage/cygwin.html @@ -13,12 +13,12 @@

    Cygwin connection

    Tera Term can connect to local Cygwin environment.
    -Cygwin is a Linux-like environment for Windows.
    +Cygwin is a Linux-like environment for Windows.
    Cygwin is open source software.

    -[NOTE] Cygwin 1.5.x doesn't seem support Windows 7. Please use Cygwin 1.7.x on Windows 7 or later. +[NOTE] Cygwin 1.5.x doesn't seem support Windows 7. Please use Cygwin 1.7.x or later on Windows 7 or later.

    @@ -80,22 +80,24 @@

    How to search Cygwin

    ----------------------------
    -

    64bit Cygwin

    +

    32bit Cygwin and 64bit Cygwin

    -A user needs an execution file by -Tera Term needs the cygterm+ program built on the 64bit Cygwin environment to connect 64bit Cygwin. +A user needs an execution file by Tera Term needs the CygTerm+ program built +on the 32bit Cygwin environment to connect 32bit Cygwin. +And a user needs an execution file by Tera Term needs the CygTerm+ program +built on the 64bit Cygwin environment to connect 64bit Cygwin.
    Basically, Tera Term installation program will recognize the installed Cygwin version and copy an -appropriate cygterm+ program.
    +appropriate CygTerm+ program.
    If the Tera Term installer makes an error in determination, please overwrite the cygterm.exe in the cygterm+-x86_64 directory to the Tera Term installation directory. Moreover, please rebuild the Cygterm+ source code.

    -

    Build Cygterm+

    +

    Build CygTerm+

    -When the cygterm.exe program can not work well, please rebuild the Cygterm+ source code.
    +When the cygterm.exe program can not work well, please rebuild the CygTerm+ source code.
    Latest source code is included as cygterm+.tar.gz.

    @@ -103,15 +105,18 @@

    Build Cygterm+

    Packages that will need to be built 32bit Cygwin + Build 64bit Cygwin binary
    on 32bit Cygwin 64bit Cygwin + Build 32bit Cygwin binary
    on 64bit Cygwin - Devel/gcc-g++
    - Devel/make
    - Devel/mingw-gcc-core - Devel/gcc-g++
    - Devel/make
    - Devel/mingw64-x86_64-gcc-core + Devel/make + + + Devel/gcc-g++ + Devel/cygwin64-gcc-g++ + Devel/gcc-g++ + Devel/cygwin32-gcc-g++ diff --git a/doc/en/html/usage/image/teraterm_alpha.png b/doc/en/html/usage/image/teraterm_alpha.png deleted file mode 100644 index a56b91950..000000000 Binary files a/doc/en/html/usage/image/teraterm_alpha.png and /dev/null differ diff --git a/doc/en/html/usage/image/teraterm_backimg.png b/doc/en/html/usage/image/teraterm_backimg.png deleted file mode 100644 index 56b3dcec6..000000000 Binary files a/doc/en/html/usage/image/teraterm_backimg.png and /dev/null differ diff --git a/doc/en/html/usage/image/teraterm_eterm.png b/doc/en/html/usage/image/teraterm_eterm.png deleted file mode 100644 index a40567f28..000000000 Binary files a/doc/en/html/usage/image/teraterm_eterm.png and /dev/null differ diff --git a/doc/en/html/usage/image/theme-bg-bg.png b/doc/en/html/usage/image/theme-bg-bg.png new file mode 100644 index 000000000..6108813de Binary files /dev/null and b/doc/en/html/usage/image/theme-bg-bg.png differ diff --git a/doc/en/html/usage/image/theme-bg-desktop+bg.png b/doc/en/html/usage/image/theme-bg-desktop+bg.png new file mode 100644 index 000000000..5a89f2f25 Binary files /dev/null and b/doc/en/html/usage/image/theme-bg-desktop+bg.png differ diff --git a/doc/en/html/usage/image/theme-bg-desktop.png b/doc/en/html/usage/image/theme-bg-desktop.png new file mode 100644 index 000000000..fe5f106d6 Binary files /dev/null and b/doc/en/html/usage/image/theme-bg-desktop.png differ diff --git a/doc/en/html/usage/image/transparent-api.png b/doc/en/html/usage/image/transparent-api.png new file mode 100644 index 000000000..33aa52b78 Binary files /dev/null and b/doc/en/html/usage/image/transparent-api.png differ diff --git a/doc/en/html/usage/keyboard.html b/doc/en/html/usage/keyboard.html index d78e1496f..cab4edb61 100644 --- a/doc/en/html/usage/keyboard.html +++ b/doc/en/html/usage/keyboard.html @@ -16,7 +16,7 @@

    Keyboard

    -You can modify key assignments by editing the keyboard setup file. See also KEYCODE.TXT. +You can modify key assignments by editing the keyboard setup file. See also keyboard (overview).

    Shortcut keys

    @@ -27,11 +27,13 @@

    VT window

    Alt+B
    Sends a break signal to the host.
    -
    Alt+C
    -
    Copies selected text to the clipboard.
    +
    Alt+C, Ctrl+Insert
    +
    Copies selected text to the clipboard. +If AutoTextCopy is enabled, text is copied when selected with the mouse.
    +
    Alt+D
    -
    Duplicates the current session.
    +
    Duplicates the current session (SSH, telnet only).
    Alt+G
    Connects to the local Cygwin.
    @@ -54,11 +56,47 @@

    VT window

    Alt+T
    Sends a AYT (Are You There) telnet signal to the host. Usually, the host sends back some message responding to it. This key is available only with a telnet connection.
    -
    Alt+V
    -
    Sends text in the clipboard to the host.
    +
    Alt+V, Shift+Insert
    +
    Sends text in the clipboard to the host. +You can also use right-click on the mouse. +If DisablePasteMouseMButton is set to off, You can also use middle-click on the mouse. +
    + +
    Ctrl+Tab, Ctrl+Shift+Tab
    +
    Switch to Tera Term next/prev window.
    + +
    Ctrl+Up/Down cursor
    +
    LineUp or LineDown.
    + +
    Ctrl+PageUp/PageDown
    +
    PageUp or PageDown.
    + +
    Ctrl+Home
    +
    Move to top of buffer.
    + +
    Ctrl+End
    +
    Move to bottom of buffer.
    -
    Ctrl+Esc
    -
    Switches to another window.
    +
    ScrollLock
    +
    Tera Term window scroll locked or unlocked(toggle)
    + +
    Alt+Enter
    +
    Maximize Tera Term window(toggle). +Unless the title bar is hidden with HideTitle, +you can also use Alt+X from the context menu of the active window with Alt+Space. +
    + +
    F1 key
    +
    Push Num pad NumLock key.
    + +
    F2 key
    +
    Push Num pad '/'.
    + +
    F3 key
    +
    Push Num pad '*'.
    + +
    F4 key
    +
    Push Num pad '-'.
    @@ -83,8 +121,8 @@

    TEK window

    Alt+V
    Same as VT window.
    -
    Ctrl+Esc
    -
    Switches to another window.
    +
    Ctrl+Tab
    +
    Same as VT window.
    diff --git a/doc/en/html/usage/migrate_to_5.html b/doc/en/html/usage/migrate_to_5.html new file mode 100644 index 000000000..2509a0f12 --- /dev/null +++ b/doc/en/html/usage/migrate_to_5.html @@ -0,0 +1,187 @@ + + + + + Migration to Tera Term 5 + + + + + +

    About Tera Term 5

    + Tera Term 5 is the next version of Tera Term 4 with Unicode supporting. + +

    feature

    +
      +
    • Terminal (internal buffers, drawing and key input) is supported Unicode. +
        +
      • Multiple languages Display is possible.
        + In Tera Term 4, Chinese could not be displayed when Japanese is displayed.
      • +
      • ISO8859-1...16 are supported.
      • +
      • Locale settings are no longer required.
      • +
      +
    • +
    • Windows UI(Menu, Dialogs) are supported Unicode
      + Menus and Dialogs will display correctly in the language you set in the following cases +
        +
      • When a language other "Current system locale" is set.
      • +
      • When "Use Unicode UTF-8 for worldwide language support" is checked.
      • +
      +
    • +
    • Switching to Unicode from ANSI versions of Windows APIs
      + Unicode file names can be used. +
    • +
    • Macro +
        +
      • Internal code is Unicode (UTF-8)
        + Internal code in Tera Term 4 is ACP (CP932,Shift_JIS by default in Japanese Windows).
      • +
      • GUI(dialogs) can be displayed in multiple languages.
      • +
      +
    • +
    + +

    requirements

    +
      +
    • + See requirements page.
      + Windows versions that is not targeted by Visual Studio 2022 are not supported. +
    • +
    + +

    misc

    + + +

    Migrate to Tera Term 5

    + +

    Tera Term 5 can install with Tera Term 4. However, ony one of them can be associated to a macro file(.TTL).

    + +

    configuration files

    + +
      +
    • Tera Term 5 can use the setup file for Tera Term 4 without modification.
    • +
        +
      • Configuration files became Unicode. +
          +
        • character encoding of TERATERM.INI and KEYBOARD.CNF.cfg is UTF-16 (with LE BOM).
        • +
        • character encoding of cygterm.cfg is UTF-8 in Cygwin 3.3.4.
        • +
        +
      • +
      • Tera Term 5 suports UTF-16 (with LE BOM) ini file.
        +
          +
        • Win32APIs for ini files are used Unicode version. cf. Win32API/ini file
          + Tera Term 4 does not use the Unicode version of the API. the item in ini file could not be handled correctly if non ACP characters are included.
        • +
        • cygterm.cfg is not using Win32API.
        • +
        +
      • +
      • Tera Term 5 automatically converts character encoding of TERATERM.INI files to UTF-16 (with LE BOM) when Tera Term 5 starts if TERATERM.INI is not UTF-16 (with LE BOM).
        + Before conversion, original ini file is backed up.
      • +
      • Tera Term 5 uses UTF-16 (with LE BOM) character encoding saving setup file (TERATERM.INI).
      • +
      +
    • Tera Term 4 can read ini files saved by Tera Term 5.
    • +
        +
      • Tera Term 4 can read UTF-16 (with LE BOM) ini files (on Windows 2000 or later). cf. Win32API/ini file
        + Item in ini file cannot be handled correctly if non ACP characters are included.
      • +
      +
    • The default folder for configuration files has been changed. +
        +
      • Now %APPDATA%\teraterm5 (C:\Users\[username]\AppData\Roaming\teraterm5) +
          +
        • cf. about folder
        • +
        • In Tera Term 4, the folder of the configuration files were the same as the folder where the executable file was placed.
        • +
        • In Tera Term 5, "My Documents\TERATERM.INI" does not read.
        • +
        +
      • +
      • Copy Tera Term 4 setup files for use existing settings. +
          +
        • TERATERM.INI
        • +
        • KEYBOARD.CNF
        • +
        • cygterm.cfg
        • +
        +
      • +
      • If the files are not exists, the default configuration file is copied when ttermpro.exe start. +
      +
    • +
    • Default values have been changed. + +
    • +
    + + +

    macro

    + +
      +
    • UTF-8 is recommended for the character encoding of the ttl file.
    • +
    • When reading a ttl file, it automatically determines the character encoding of the file and read while converting to UTF-8. However, the automatic determination of encoding can be incorrect.
      + Adding the BOM it will be read as UTF-8.
    • +
    • The maximum number of labels and variables (numeric, string, numeric array, and string array) is unlimited from 256.
    • +
    • The maximum string length for character variables is 511 bytes, the same as Tera Term 4.
    • +
    • Character encoding of string literals in ttl file is UTF-8, which is ACP (Shift_JIS(CP932) in Japanese environment) in Tera Term 4.
    • +
    • When string is assigned to string variable, character encoding is UTF-8, which is ACP in Tera Term 4.
    • +
    • For example, Kanji character increase the number of bytets per character. (example "©" is 0xc2,0xa9 in UTF-8, 0xa9 in iso-8859-1.) String that could be set in Tera Term 4 may be corrupted in Tera Term 5.
    • +
    • The unit of character length and character position (index, pos) for macro commands that handle characters is byte. This is the same as Tera Term 4.
      + However, the value is different from that of Tera Term 4 because the internal character encoding is different.
    • +
    • Performing a string operation that breaks a sequence of bytes will break the character (string).This is the same as Tera Term 4.
    • +
    • If there are any specifications or missing features that do not fit the Unicode, Please let us know
      + The following commands will be fix +
      +
      code2str, str2code
      +
      Change ASCII code to Unicode code points
      +
      +
    • +
    + +

    plugin

    + +
      +
    • compat_w95.h is no longer needed. + +
    • +
    • Changed plugin API + +
    • +
    • Common functions for reading and writing ini files have been added. + +
    • +
    • Change member in struct tttset (tttypes.h) +
        +
      • Unicode versions of filename, path, and string members with W have been added.
      • +
      • Character length for file names and paths is unlimited (independent of MAX_PATH).
      • +
      • Modifications will continue(member name, order, size, type, etc...).
      • +
      +
    • +
    • Changed The API for notification icons + +
    • +
    • Add Help API + +
    • +
    + + + diff --git a/doc/en/html/usage/mouse.html b/doc/en/html/usage/mouse.html index bde7ee477..40e6bd8a0 100644 --- a/doc/en/html/usage/mouse.html +++ b/doc/en/html/usage/mouse.html @@ -21,19 +21,31 @@

    Mouse wheel on title bar
    The value of transparency can be temporarily changed by moving the mouse wheel on the title bar (NOTE: This value can not be recorded).
    - When active status of the window is changed, the value of transparency switches to set value.
    + When active status of the window is changed, the value of transparency switches to set value.
    Dragging with the left button
    -
    Selects text, and copies it to the clipboard.
    +
    Selects text.
    + Depending setting, Selected text is copied to the clipboard.
    Dragging with the left button while pressing the Alt key
    -
    Selects text in a rectangular region of the screen, and copies it to the clipboard.
    +
    Selects text in a rectangular region of the screen.
    + Depending setting, Selected text is copied to the clipboard.
    Double clicking the left button
    -
    Selects a word, and copies it to the clipboard.
    +
    Selects a word.
    + Depending setting, Selected text is copied to the clipboard.
    + Word delimiter characters are specified by Delimiter characters setting.
    + (ref DelimDBCS) +
    Triple clicking the left button
    -
    Selects a line, and copies it to the clipboard.
    +
    Selects a line,
    + Depending setting, Selected text is copied to the clipboard.
    + +
    Left click , then Shift + Left click
    +
    Select several pages of output from Tera Term window, and stretch or shrink the selected text area. +The first click is the start position and the next Shift+click is the end position. +
    Dragging with the right button
    Selects text, copies it to the clipboard, and then sends it to the host.
    @@ -43,6 +55,10 @@

    Sends text in the clipboard to the host.
    It is effective when DisableMouseRButtonPaste is disabled.
    +
    Clicking the middle button
    +
    Sends text in the clipboard to the host.
    + It is effective when DisableMouseMButtonPaste is disabled.
    +
    Double clicking the left button on the title bar
    The behaviour is changed according to the "Term size = win size" setting. @@ -55,10 +71,13 @@

    Clicking the left button while pressing the Ctrl key
    -
    If the menu bar is hidden, the pop-up menu appears. To hide the menu bar, check the Hide menu bar option in the [Setup] Window dialog box.
    +
    If the menu bar is hidden, the pop-up menu appears. To hide the menu bar, check the Hide menu bar option in the [Setup] Window dialog box.
    Dragging the window by the left button while pressing the Alt key
    -
    Moves the window, if the title bar is hidden. To hide the title bar, check the Hide title bar option in the [Setup] Window dialog box.
    +
    Moves the window, if the title bar is hidden. To hide the title bar, check the Hide title bar option in the [Setup] Window dialog box.
    + +
    Dragging the window by the left button while pressing the Alt+Shift key
    +
    Resizes the window, if the title bar or window frame is hidden. To hide the window frame, check the No Frame option in the [Setup] Window dialog box.
    Clicking the right button while pressing the Alt key
    Minimizes the window, if the title bar is hidden.
    @@ -129,7 +148,13 @@

    Do this for the next N files
    When this option is checked, remaining files and folders are processed the same way.
    Do same process, next drop
    -
    The dialog setting is recorded into memory, and then the setting is reused by using next action.(When the dialog is shown, the dialog setting is update. Otherwise same action is done without confirmation.)
    +
    + The dialog setting is recorded into memory, and then the setting is reused by using next action. + When the dialog is shown, the dialog setting is update. + Otherwise same action is done without confirmation. + There are no configuration items and they are not saved file (TERATERM.INI).
    + The type of processing (SCP/Send File/Paste Filename) is recorded. +
    Do not display this dialog, next drop
    When this option is checked, the dialog is not shown on next file dropping and the action is done without confirmation.
    @@ -138,11 +163,53 @@

    For example, when "Do same process, next drop" and SCP are selected, a folder is dropped. Next, when the action can not be done(needing confirmation) or dropping by using CTRL key pressing, the dialog is shown.

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    itemread from / write tocondition of write
    Drop type (SCP/Send File/Paste Filename)Configuration of dialog (on memory)When "Do same process, next drop" is "on" and proceeded.
    SCP
      dest
    Configuration of Tera Term (ScpSendDir of TERATERM.INI)When Drop type is "SCP" and proceeded.
    Send File
      Binary
    Configuration of Tera Term (TransBin of TERATERM.INI)When Drop type is "Send File" and proceeded.
    Paste Filename
      Escape
      Separator (Space/NewLine)
    Configuration of dialog (on memory)When Drop type is "Paste Filename" and proceeded.
    Do this for the next N filesnone
    Do same process, next dropConfiguration of dialog (on memory)
    Do not display this dialog, next dropConfiguration of dialog (on memory)

    -
    Dragging with the middle button, Clicking the middle button
    +
    Dragging with the middle button
    These actions are no longer supported.
    diff --git a/doc/en/html/usage/recurringcommand.html b/doc/en/html/usage/recurringcommand.html index db452815c..d328b71ab 100644 --- a/doc/en/html/usage/recurringcommand.html +++ b/doc/en/html/usage/recurringcommand.html @@ -48,7 +48,7 @@

    Setting dialog

    Specify sending command(string). When the command includes below string, the string is replaced to corresponding character. - + diff --git a/doc/en/html/usage/shortcut.html b/doc/en/html/usage/shortcut.html deleted file mode 100644 index 2f803060b..000000000 --- a/doc/en/html/usage/shortcut.html +++ /dev/null @@ -1,84 +0,0 @@ - - - - -Shortcut - - - - - -

    Shortcut

    - -
    -
    ScrollLock -
    Tera Term window scroll locked or unlocked(toggle)
    - -
    Ctrl + Tab, Ctrl + Shift + Tab
    -
    Switch to Tera Term next/prev window
    - -
    Alt + Enter
    -
    Maximize Tera Term window(toggle)
    - -
    Alt + Space Alt + X
    -
    Maximize Tera Term window
    - -
    Alt + N
    -
    New connection
    - -
    Alt + D
    -
    Duplicate session (SSH, telnet only)
    - -
    Alt + G
    -
    Cygwin connection
    - -
    Ctrl + Up/Down cursor
    -
    LineUp or LineDown
    - -
    Ctrl + PageUp/PageDown
    -
    PageUp or PageDown
    - -
    Ctrl + Home
    -
    Move to buffer top
    - -
    Ctrl + End
    -
    Move to buffer bottom
    - -
    Alt + C, Ctrl + Insert, MouseDrag
    -
    Copy selected string to the clipboard
    - -
    Alt + V, Shift + Insert, Mouse Middle/Right button
    -
    Paste from the clipboard
    - -
    F1 key
    -
    Push Num pad NumLock key
    - -
    F2 key
    -
    Push Num pad '/'
    - -
    F3 key
    -
    Push Num pad '*'
    - -
    F4 key
    -
    Push Num pad '-'
    - -
    Alt + MouseDrag
    -
    Select rectangular block of text
    - -
    Left click Shift + Left click
    -
    Select several pages of output from Tera Term window.
    -Or expand ans contract of text area that has been selected.
    - -
    Mouse wheel button scrolling
    -
    LineUp or LineDown
    - -
    Dragging a text file and dropping it into the window
    -
    Sends text in the file to the host.
    - -
    Dragging a folder and dropping it into the window
    -
    Sends the folder full-path to the host.
    -
    - - - diff --git a/doc/en/html/usage/ssh.html b/doc/en/html/usage/ssh.html index 92bd15b14..7c3752ea8 100644 --- a/doc/en/html/usage/ssh.html +++ b/doc/en/html/usage/ssh.html @@ -23,7 +23,8 @@

    Prerequisite

    - There are several ways of connection of SSH as follows + There are several ways of authentication methods of SSH as follows +

    • Password authentication
    • Public Key (and Private key pair) authentication @@ -33,28 +34,30 @@

      Prerequisite

    • rhosts authentication for SSH1
    • challenge/response(TIS) authentication for SSH1
    • -
    • keyboard-interactive authentication for SSH2
    • +
    • keyboard-interactive authentication for SSH2
    +

    In this document, we will describe Password authentication and Key-pair authentication which would be most widely used.

    Procedure of connection

    - When Tera Term is activated, the following dialog will let you choose login procedure. + When Tera Term is activated, the following dialog will let you choose a way of connecting.

    connection dialog

    - When using SSH, you should change SSH version in a default parameter. Make sure that it is synchronized to the host to be connected. + When using SSH, you should match SSH version to the host to be connected.

    - Once connected, then you will be prompted to select authentication method in a dialog. + Once connected, then you will be prompted to select authentication method in a dialog.
    + You can change default value of this dialog in "TTSSH: Authentication Setup" dialog

    Authentication method

    The TTSSH can support some authentication methods and a user should select one of methods. When an authentication method is failed, the TTSSH does not retry to authenticate another method.
    - For example, the OpenSSH client will be able to login to the server without regard to the difference the password and the keyboard-interactive authentication. However, the TTSSH can not login to the server with the keyboard-interactive and public key authentication by using the password authentication. + For example, the OpenSSH client will be able to login to the server without regard to the difference the password and the keyboard-interactive authentication. However, the TTSSH can not login to the server which only enabled keyboard-interactive and public key authentication by using the password authentication.

    • If you want to use Password authentication, then make sure that [Use plain password to log in] is chcked and type in username and password. If they are correct, you can login.
      @@ -66,6 +69,32 @@

      Procedure of connection

    • When the Pageant is used, check the [Use Pageant] and input your user name.
    +

    Inputing Username

    +

    + When this dialog is displayed, + username was entered according the setting. +

    +

    + In addition, when the username is entered, or when the focus is moved from the input field after inputing username, + the server is accessed according to the setting. +

    +

    + You can select an option by pushing the button next to the username box. + If username is empty, tab key moves focus to this button. + If username was enterd, tab key moves focus to password and passphrase input box. +

    +
    Use default usename
    +
    Default username was entered according the setting. + You can not select when default username is empty. +
    +
    + +
    +
    Use logon usename
    +
    Windows logon username was entered
    +
    +

    +

    Inputing Password and Passphrase

    The password and passphrase input box differs from normal dialog box. @@ -74,6 +103,26 @@

    Inputing Password and Passphrase

  • Control character(0x01 - 0x1F) can be inputted by Control + A - Z, [, \, ], ^ and _.
  • Control + V can not be used because the key equals SYN (0x16). Please use Shift + Insert combination for pasting.
  • +

    + You can select an option by pushing the button next to the username field. +

    +
    Paste from clipboard
    +
    Paste from clipboard to password input box
    + +
    Paste from clipboard and clear clipboard
    +
    Paste from clipboard to password input box, And clear clipboard
    + +
    Use control characters
    +
    If checked, you can enter control characters, + but you can not perform operations such as paste clipboard paste with Control + V. + If it is not checked, you can not enter control characters, + but you can perform operations such as paste the clipboard with Control + V. +
    + +
    Show passphrase
    +
    You can choose to display the passphrase or not
    +
    +

    Security Warning

    diff --git a/doc/en/html/usage/tips/about_tenkey.html b/doc/en/html/usage/tips/about_tenkey.html index f07692ace..a40753a11 100644 --- a/doc/en/html/usage/tips/about_tenkey.html +++ b/doc/en/html/usage/tips/about_tenkey.html @@ -18,7 +18,7 @@

    Numeric keypad

    and use numeric keys in normal way, edit the keyboard setup file KEYBOARD.CNF to disable every items in the [VT numeric keypad] section by using the word "off", like the following (see also -KEYCODE.TXT): +Keyboard setup file):

    diff --git a/doc/en/html/usage/tips/double-click.html b/doc/en/html/usage/tips/double-click.html
    deleted file mode 100644
    index 31dcdc342..000000000
    --- a/doc/en/html/usage/tips/double-click.html
    +++ /dev/null
    @@ -1,70 +0,0 @@
    -
    -
    -
    -
    -Delimiter character of word selected by double-click
    -
    -
    -
    -
    -
    -

    Delimiter character of word selected by double-click

    - -

    -When a user double-clicks a word with the mouse, the word can be selected.
    -A delimiter character can be changed by using the DelimList entry in the [Tera Term] -section of the teraterm.in file. -

    - -
    -DelimList=<delimiter characters>
    -
    - -

    -For example, -

    - -
    -DelimList=<>()[]
    -
    - -

    -can specify six delimiters("<", ">", "(", ")", "[", "]"). -However, the space character and "$" character must be specified the "$20", "$24". -

    - -
    -DelimList=$20 ; space character
    -
    -Default value:
    -DelimList=$20!"#$24%&'()*+,-./:;<=>?@[\]^`{|}~
    -
    - -

    -The "DelimList" entry can be specified only one-byte character(what is called half-size character). -The two-bytes character(what is called double-byte character) is treated as the delimiter character.
    -If the two-bytes character is not treated as the delimiter, please configure the DelimDBCS entry in the following: -

    - -
    -DelimDBCS=off
    -
    -Default value:
    -DelimDBCS=on
    -
    - -

    -For your reference, here is the older Tera Term configuration. -

    - -
    -DelimList=$20
    -DelimDBCS=off
    -
    - -

    -

    - - - diff --git a/doc/en/html/usage/tips/forwarding-files.html b/doc/en/html/usage/tips/forwarding-files.html index ddb6449b2..53643897b 100644 --- a/doc/en/html/usage/tips/forwarding-files.html +++ b/doc/en/html/usage/tips/forwarding-files.html @@ -2,7 +2,7 @@ "http://www.w3.org/TR/html4/strict.dtd"> - + Transfer the file via the intermediate server diff --git a/doc/en/html/usage/tips/index.html b/doc/en/html/usage/tips/index.html index 2fc23fa5e..2c71fb2f8 100644 --- a/doc/en/html/usage/tips/index.html +++ b/doc/en/html/usage/tips/index.html @@ -24,10 +24,9 @@

    Tips

  • Tips on XMODEM
  • Tips on ZMODEM
  • Tips on B-Plus
  • - +
  • Quick-VAN hint
  • Transfer the file via the intermediate server
  • Tips on TCP/IP connection with a port other than 23
  • -
  • Delimiter character of word selected by double-click
  • Associate with TELNET protocol
  • @@ -35,6 +34,7 @@

    Tips

  • Named pipe
  • Virtual Store
  • +
  • VT100 Wrap process
  • diff --git a/doc/en/html/usage/tips/pf1-pf4key_vt100.html b/doc/en/html/usage/tips/pf1-pf4key_vt100.html index 9336a2b25..f9fa7e8a0 100644 --- a/doc/en/html/usage/tips/pf1-pf4key_vt100.html +++ b/doc/en/html/usage/tips/pf1-pf4key_vt100.html @@ -12,7 +12,7 @@

    PF1-PF4 keys of VT100

    -In the default setup, PF1-PF4 keys of VT100 are emulated by "Num Lock", "/", "*" and "-" keys of numeric keypad. To emulate PF1-PF4 keys by F1-F4 keys of PC keyboard, edit the keyboard setup file KEYBOARD.CNF like the following (see also KEYCODE.TXT): +In the default setup, PF1-PF4 keys of VT100 are emulated by "Num Lock", "/", "*" and "-" keys of numeric keypad. To emulate PF1-PF4 keys by F1-F4 keys of PC keyboard, edit the keyboard setup file KEYBOARD.CNF like the following (see also Keyboard setup file):

    diff --git a/doc/en/html/usage/tips/quick_van.html b/doc/en/html/usage/tips/quick_van.html
    new file mode 100644
    index 000000000..69fa217e8
    --- /dev/null
    +++ b/doc/en/html/usage/tips/quick_van.html
    @@ -0,0 +1,53 @@
    +
    +
    +
    +
    +Tips for Quick-VAN
    +
    +
    +
    +
    +
    +

    Tips for Quick-VAN

    + +

    +Quick-VAN is a file transfer protocol used in a BBS called PC-VAN. Quick-VAN cannot be used with 7-bit lines. +

    + +

    Using serial port

    + +
    +

    +If Data is 7 bit, Quick-VAN cannot be used. Set Data to 8 bitin the [Setup] Serial port. The settings on the modem (host) side should be the same. +

    +
    + +

    Using telnet

    + +
    +

    +When connecting to PC-VAN, be sure to specify the binary option (as of December 1995). To set it binary, +

    + +
    + +

    +In addition, the following settings may improve the transfer rate.
    +see Window size of Quick-VAN +

    + +

    +If you are unable to transfer the data successfully, please make sure that you have correctly specified the Quick-VAN command on the host side, then capture the log of the Quick-VAN and send it to the author. +

    + +

    +see also: Transfer the file via the intermediate server +

    + + + diff --git a/doc/en/html/usage/tips/teraterm_config_howto.html b/doc/en/html/usage/tips/teraterm_config_howto.html index a729ac519..e2da224e9 100644 --- a/doc/en/html/usage/tips/teraterm_config_howto.html +++ b/doc/en/html/usage/tips/teraterm_config_howto.html @@ -18,7 +18,7 @@

    How to configure Tera Term

    You can modify key assignments by editing the keyboard setup file.
    -See also KEYCODE.TXT. +See also Keycode.

    diff --git a/doc/en/html/usage/tips/user-shortcutkey.html b/doc/en/html/usage/tips/user-shortcutkey.html index 22a1e7fee..acd1b8e7a 100644 --- a/doc/en/html/usage/tips/user-shortcutkey.html +++ b/doc/en/html/usage/tips/user-shortcutkey.html @@ -12,7 +12,7 @@

    User shortcut keys

    -You can define shortcut keys for the following functions by editing items in the [Shortcut keys] and [VT function keys] sections of the keyboard setup file see also KEYCODE.TXT): +You can define shortcut keys for the following functions by editing items in the [Shortcut keys] and [VT function keys] sections of the keyboard setup file:

    diff --git a/doc/en/html/usage/tips/vim.html b/doc/en/html/usage/tips/vim.html
    index 151d425b0..5c6a5c17c 100644
    --- a/doc/en/html/usage/tips/vim.html
    +++ b/doc/en/html/usage/tips/vim.html
    @@ -65,13 +65,13 @@ 

    Changing cursor shape on entering and leaving into insert m

    Auto indent can be disabled on pasting from clipboard

    -NOTE: When text is pasted by using Vim 8.0.0238 or later , auto indent and completion are disabled not below configuration becasue the vim editor supports Bracketed Paste Mode.
    +NOTE: When text is pasted by using Vim 8.0.0238 or later, auto indent and completion are disabled not below configuration because the vim editor supports Bracketed Paste Mode.
    However, when tmux is used, below configuration is needed because Bracketed Paste Mode is not enabled.

    Basically, the host application can not recognize the difference between the user input and pasting from clipboard. -However, when a user uses the Bracketed Paste Mode as the xterm extension, the application can recognize its difference and a user can change the behavior of pasting from clipboard. +However, when a user uses the Bracketed Paste Mode as the xterm extension, the application can recognize its difference and a user can change the behavior of pasting from clipboard.

    @@ -137,12 +137,6 @@

    Auto indent can be disabled on pasting from clipboard

    endif
    -

    About Bracketed Paste mode

    -

    -The bracketed paste mode is the xterm extension feature. When this feature is enabled, the pasted text is bracketed with control sequences so that the program can differentiate the pasted text from typed-in text.
    -The program will receive: ESC [ 200 ~, followed by the pasted text, followed by ESC [ 201 ~. -

    -

    Controlling IME

    diff --git a/doc/en/html/usage/tips/vt100_wrap.html b/doc/en/html/usage/tips/vt100_wrap.html new file mode 100644 index 000000000..40ef80925 --- /dev/null +++ b/doc/en/html/usage/tips/vt100_wrap.html @@ -0,0 +1,58 @@ + + + + +VT100 Wrap process + + + + + +

    VT100 Wrap process

    + +

    +Normally, when outputting a single character, +following processes are performed: + +

    +1. Output a character at current cursor position.
    +2. Move cursor position to next cell.
    +
    + +When cursor is at the end of a line, If this behavior is applied, +result is as follows (When autowrap mode is enabled): + +
    +1. Output a character at current cursor position.
    +2. If current cursor position is at the bottom (no next line), scroll one line to make blank line.
    +3. Moves cursor to the beginning of next line.
    +
    + +

    +Some terminals actually behave this way. +This behavior makes it difficult to output character at the lower right corner of the screen. + +

    +Therefore, when the cursor is at the end of a line, VT100 has the following character output behavior: + +

    +1. Output characters at current cursor position (end of line).
    +2. Cursor position is unchanged at the end of the line.
    +
    + +

    +Output one character in this state: + +

    +3. If current cursor position is at the bottom (no next line), scroll one line to make blank line.
    +4. Moves cursor to the beginning of next line.
    +5. Output a character at current cursor position.
    +6. Move cursor position to next cell.
    +
    + +

    +Delay automatic line break when outputting character following character at the end of the line. + + + diff --git a/doc/en/html/usage/tips/xmodem.html b/doc/en/html/usage/tips/xmodem.html index 1a7afab61..4ebc31365 100644 --- a/doc/en/html/usage/tips/xmodem.html +++ b/doc/en/html/usage/tips/xmodem.html @@ -11,11 +11,13 @@

    Tips on XMODEM

    +

    8bit clean

    +

    The XMODEM file transfer protocol requires the communication lines to be transparent to all 8 bit characters, from $00 to $FF.

    -

    For serial port:

    +

    For serial port:

    @@ -23,19 +25,44 @@

    For serial port:

    -

    For telnet:

    +

    For telnet:

    -If file transfers fail, try connecting to the host with the binary option. To connect with the binary option: +If file transfers fail, try connecting to the host with the binary option.
    +To connect with the binary option:

    +

    +If file transfers still fail, please check that you have correctly configured and used the XMODEM command on the host side.
    +After confirming the above, take the log of the XMODEM transfer and send it to the Tera Term project.
    +
    +Reference: Transfer the file via the intermediate server +

    + +

    padding at end of file

    + +

    +The XMODEM file transfer protocol handles files in blocks of 128 or +1024 bytes, and file lengths cannot be exchanged. + +The received data length is always a multiple of 128 or 1024 bytes. +

    + +

    +Sender puts padding in the last block that is longer than the length +of the transmitted file. + +The padding is $1A according to the XMODEM specification. +But it may be some other value depending on the XMODEM sending program. +

    + diff --git a/doc/en/html/usage/tips/zmodem.html b/doc/en/html/usage/tips/zmodem.html index 4ce6d2dba..3606938ae 100644 --- a/doc/en/html/usage/tips/zmodem.html +++ b/doc/en/html/usage/tips/zmodem.html @@ -13,7 +13,7 @@

    Tips on ZMODEM

    The ZMODEM protocol implemented in Tera Term does not support 7 bit communication lines. -

    +

    For serial port:

    @@ -27,16 +27,23 @@

    For telnet:

    -If file transfers fail, try to escape all control characters. If that does not work, try connecting to the host with the binary option. To connect with the binary option: +If file transfers fail, try to escape all control characters. If that does not work, try connecting to the host with the binary option.
    +To connect with the binary option:

    +If file transfers still fail, please check that you have correctly configured and used the ZMODEM command on the host side.
    +After confirming the above, take the log of the ZMODEM transfer and send it to the Tera Term project.
    +

    + +

    +Additionally, the following settings are also possible.
    Setup items for ZMODEM:

    @@ -63,9 +70,9 @@

    Communication software

    Modem communication program

    diff --git a/doc/en/html/usage/transparent.html b/doc/en/html/usage/transparent.html index 375d3c555..ed4b4b33e 100644 --- a/doc/en/html/usage/transparent.html +++ b/doc/en/html/usage/transparent.html @@ -3,55 +3,111 @@ -Background transparency +Change look and feel -

    Background transparency

    +

    Change look and feel

    -Tera Term supports window background transparency. Now Tera Term has two types of transparency function. You can select either function. +You can change the look and feel of Tera Term by using transparent window and theme. Transparent window and theme can be used at the same time.

    -

    (1) AlphaBlend window

    + + +

    (1) Transparent window

    -In this type Tera Term window can be background transparency. As a point that should be noted, this function is enabled on only Windows2000 later.
    -You can configure the value in "Visual" tab on [Setup] Additional settings.
    -You can set up the value of transparency. The range of transparency is from 0 to 255. The more transparency reduces the value, the more window transparency is blinding. Default value is 255 (opaque). +Tera Term window can make transparent. The transparent window is available on Windows 2000 or later.
    +Settings can change on Visual tab of [Setup] - [Additional settings].
    + +Transparency can be specified as a value from 0 to 255. +Smaller values are transparent, and opacity is 255. The default value is 255. +Transparency can be specified for the active and inactive windows. +

    + +

    +Rotate the wheel on the taskbar to change the transparency temporarily.

    - + +

    (2) theme

    +

    +Theme can change the background image and text color at once. +

    -

    (2) Eterm lookfeel window

    +

    +Theme settings are made on theme tab in [Setup] Additional settings. +

    + +

    (2)-1 Theme/BG (backgroup)

    + +

    +Tera Term can display a desktop image (Windows background image) or a specified image as the background. +The desktop image and the specified image can be blended. +

    -In this type Tera Term window looks like Eterm background transparency. If this function is enabled, Tera Term window becomes background transparency and mixes the wallpaper with your specified image file(*.jpg).
    -Please edit the "BGEnable=on" in the teraterm.ini file, or you can configure the value in "Visual" tab on [Setup] Additional settings. +Theme/BG(background) is a replacement of Eterm lookfeel in Tera Term 4. +Eterm(GitHub) is a vt102 terminal emulator intended to replace xterm.

    +

    Use desktop image

    -Please refer to "Eterm lookfeel window" for more detailed settings. + Displays a desktop image in the background of Tera Term.

    - + + + +

    Use background image

    + +

    + Display specified image in the background of Tera Term. + Images with alpha channel can also be used. +

    + -

    (3) Background image

    +

    Use background and desktop images

    -When both Eterm lookfeel and Background Image is enabled, an image file can be drawn into the terminal background.
    -And then, the background window does not make transparent. + Displays a blended image of the desktop image and the specified image on background of Tera Term.

    - + + + +

    (2)-2 Theme/Color (character and background)

    + +

    + Color theme can change character and background color at once. +

    +

    Images

    + diff --git a/doc/en/html/usage/ttyrec.html b/doc/en/html/usage/ttyrec.html index ae4c7f17b..92bfe4b9d 100644 --- a/doc/en/html/usage/ttyrec.html +++ b/doc/en/html/usage/ttyrec.html @@ -2,7 +2,7 @@ "http://www.w3.org/TR/html4/strict.dtd"> - + TTY Recorder and Player @@ -34,7 +34,7 @@

    Feature

    - The data format is same as the ttyrec. The data recorded by the TTXttyrec plug-in can replay by using the ttyplay command. The data recorded by the ttyrec command can replay by using the TTXttyplay plug-in. + The data format is same as the ttyrec. The data recorded by the TTXttyrec plug-in can replay by using the ttyplay command. The data recorded by the ttyrec command can replay by using the TTXttyplay plug-in.

    Description

    diff --git a/doc/en/html/usage/unicode.html b/doc/en/html/usage/unicode.html index 938c22186..78d5781ed 100644 --- a/doc/en/html/usage/unicode.html +++ b/doc/en/html/usage/unicode.html @@ -9,365 +9,43 @@ -

    Unicode

    +

    Unicode Settings

    -

    -To use UTF-8, changed from English to "UTF-8" or "Japanese" or "Korean" under Setup->General menu.
    - -

    -When the Language "UTF-8" is selected, below function can not be used beside Japanese setting. -

    -
      -
    • The JIS, EUC and SJIS character code except for UTF-8
    • -
    • Specifying Japanese character set of ISO/IEC 2022
    • -
    • TTXKanjiMenu plug-in
    • -
    - -

    - -If you set the Language "Japanese" or "Korean", select "Terminal" from the Tera Term "Setup" menu. Inside the dialog-box, -select "UTF-8" from "Kanji(receive)" or "Kanji(transmit)". -There is no need to restart Tera Term to activate these configuration changes.
    - -When "UTF8" is specified with '/KT' or '/KR' option in the command line, -UTF-8 encoding/decoding can be used during transmitting and receiving of data. -

    - -

    -Actually, Tera Term does not support completely Unicode language because -the internal design is based on MBCS(Multiple Byte Character Set). -So, the Unicode characters are two-step conversion as follows. -

    - -
    -UTF-8 <-----> Unicode(UTF-16LE) <-----> MBCS
    -        (1)                       (2)
    -
    - -

    -(1): Tera Term can not support the surrogate pair and the combining character - - because the application does not convert UTF-8 byte sequence over three - bytes.
    - -(2): A user must specify the locale to convert the characters between - Unicode and MBCS. -

    +To use Unicode, set character to "UTF-8" in Additional settings / "Encoding" tab.

    -To enable Unicode character sets with the localized language, you have to -set properly the locale parameters in the 'teraterm.ini' file. -See example of these values below. -

    - -
    -; Locale for Unicode
    -Locale = japanese
    -
    +By default, Ambiguous Characters width is 2 and Emoji Characters width is 2. +in CJK environment.

    -To change this value, you can use [Locale] in "Terminal setup" dialog-box. -

    +In other cases, Ambiguous Characters width is 1 and Emoji Characters width is 1. -

    -Check the following web-sites to learn more about setting of locale in Tera Term: -

    - +

    TTXKanjiMenu plug-in

    -

    Example of WindowsXP Simplified Chinese

    +TTXKanjiMenu plug-in is available only for the following character encodings. +It is not displayed for other character codes.
      -
    • On Setup -> Terminal dialog, select locale=chs.
    • -
    • On Setup -> Font dialog, select FontName=NSimSun, CharacterSet=CHINESE_GB2312 and Size=9.
    • +
    • "Japanese/UTF-8"
    • +
    • "Japanese/SJIS (CP932)"
    • +
    • "Japanese/JIS"
    • +
    • "Japanese/EUC"
    • +
    • "Korean/KS5601 (CP949)"
    • +
    • "Korean/UTF-8"
    +

    Language

    -

    Example of WindowsXP USA

    -
    -; Locale for Unicode
    -Locale = american
    -
    +String from the beginning of the character code to "/" (eg. "Japanese") corresponds to "Language" +that was existed in "Setup" menu - "General" dialog In Tera Term 5.2 or earlier.

    -And you have to configure the font setting correctly to display MBCS.
    -You can choose a font from Setup->Font dialog-box. -Select a font that include characters what you want to display. And select "Script" what you want to display.
    - -Tera Term can display other language characters if locale and font settings are correct. -For example "Japanese" characters on "English" Windows, "Korean" characters on "Japanese" Windows.
    -But Tera Term doesn't support the multilingual display, -and therefore it can't display "Japanese" and "Korean" at the same time on one Tera Term window. -

    - - -

    [NOTE] for Mac OS X users

    -

    -For Mac OS X(HFS+) use "UTF-8m" encoding. -Currently it only supports receiving mode.
    -To use this mode specify "UTF8m" as the value of the command line -parameter '/KR'. -

    - -

    [NOTE] Language Strings for Locale

    -
    Sequence Sending character
    Sequence Sending character
    \\ \
    \n Line feed (LF)
    \t Horizontal tab (HT)
    - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + Tera Term has a restriction that sending and receiving character codes must be selected same language. - - - - - +

    command line

    - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    Primary languageSub-languageLanguage string
    ChineseChinese"chinese"
    ChineseChinese (simplified)"chinese-simplified" or "chs"
    ChineseChinese (traditional)"chinese-traditional" or "cht"
    CzechCzech"csy" or "czech"
    DanishDanish"dan" or "danish"
    DutchDutch (default)"dutch" or "nld"
    DutchDutch (Belgium)"belgian", "dutch-belgian", or "nlb"
    EnglishEnglish (default)"english"
    EnglishEnglish (Australia)"australian", "ena", or "english-aus"
    EnglishEnglish (Canada)"canadian", "enc", or "english-can"
    EnglishEnglish (New Zealand)"english-nz" or "enz"
    EnglishEnglish (United Kingdom)"eng", "english-uk", or "uk"
    EnglishEnglish (United States)"american", "american english", "american-english", "english-american", "english-us", "english-usa", "enu", "us", or "usa"
    FinnishFinnish"fin" or "finnish"
    FrenchFrench (default)"fra" or "french"
    FrenchFrench (Belgium)"frb" or "french-belgian"
    FrenchFrench (Canada)"frc" or "french-canadian"
    FrenchFrench (Switzerland)"french-swiss" or "frs"
    GermanGerman (default)"deu" or "german"
    GermanGerman (Austria)"dea" or "german-austrian"
    GermanGerman (Switzerland)"des", "german-swiss", or "swiss"
    GreekGreek"ell" or "greek"
    HungarianHungarian"hun" or "hungarian"
    IcelandicIcelandic"icelandic" or "isl"
    ItalianItalian (default)"ita" or "italian"
    ItalianItalian (Switzerland)"italian-swiss" or "its"
    JapaneseJapanese"japanese" or "jpn"
    KoreanKorean"kor" or "korean"
    NorwegianNorwegian (default)"norwegian"
    NorwegianNorwegian (Bokmal)"nor" or "norwegian-bokmal"
    NorwegianNorwegian (Nynorsk)"non" or "norwegian-nynorsk"
    PolishPolish"plk" or "polish"
    PortuguesePortuguese (default)"portuguese" or "ptg"
    PortuguesePortuguese (Brazil)"portuguese-brazilian" or "ptb"
    RussianRussian (default)"rus" or "russian"
    SlovakSlovak"sky" or "slovak"
    SpanishSpanish (default)"esp" or "spanish"
    SpanishSpanish (Mexico)"esm" or "spanish-mexican"
    SpanishSpanish (Modern)"esn" or "spanish-modern"
    SwedishSwedish"sve" or "swedish"
    TurkishTurkish"trk" or "turkish"
    +When "UTF8" is specified with '/KT' or '/KR' option in the command line, +UTF-8 encoding/decoding can be used during transmitting and receiving of data. diff --git a/doc/en/teraterm.hhc b/doc/en/teraterm.hhc index 9843c8a76..7c023f675 100644 --- a/doc/en/teraterm.hhc +++ b/doc/en/teraterm.hhc @@ -29,10 +29,15 @@
  • - + +
  • + + + +
  • @@ -53,6 +58,13 @@ +
      +
    • + + + + +
  • @@ -73,6 +85,11 @@ +
  • + + + +
  • @@ -88,17 +105,12 @@ - +
  • -
  • - - - -
  • @@ -115,12 +127,7 @@
  • - - - - -
  • - + @@ -137,8 +144,96 @@
  • - + +
      +
    • + + + + +
    • + + + + +
    • + + + + +
    • + + + + +
    • + + + + +
    • + + + + +
    • + + + + +
    • + + + + +
    • + + + + +
    • + + + + +
    • + + + + +
    • + + + + +
    • + + + + +
    • + + + + +
    • + + + + + +
    • + + + + +
    • + + + + +
  • @@ -335,6 +430,73 @@ +
      +
    • + + + + +
    • + + + + +
    • + + + + +
    • + + + + +
    • + + + + +
    • + + + + +
    • + + + + +
    • + + + + +
    • + + + + +
    • + + + + +
    • + + + + +
    • + + + + +
    • + + + + +
  • @@ -386,7 +548,7 @@
  • - +
      @@ -504,8 +666,50 @@ +
        +
      • + + + + +
      • + + + + +
      • + + + + +
      • + + + + +
      • + + + + +
      • + + + + +
      • + + + + +
      • + + + + +
    • - + @@ -524,6 +728,11 @@ +
    • + + + +
  • @@ -531,58 +740,66 @@
    • - - + +
    • - + +
    +
  • + + + + +
    • - - - - -
    • - - - - -
    • - - + +
    • - - + +
    • - - + +
    • - - + +
    • - - + +
        +
      • + + + + +
      • + + + + +
    • - - + +
    • - - + +
    @@ -654,6 +871,11 @@ +
  • + + + +
  • @@ -741,6 +963,11 @@ +
  • + + + +
  • @@ -841,6 +1068,11 @@ +
  • + + + +
  • @@ -881,6 +1113,11 @@ +
  • + + + +
  • @@ -1395,16 +1632,31 @@ +
  • + + + +
  • +
  • + + + +
  • +
  • + + + +
  • @@ -1415,6 +1667,11 @@ +
  • + + + +
  • @@ -1681,6 +1938,11 @@ +
  • + + + +
  • diff --git a/doc/en/teraterm.hhp b/doc/en/teraterm.hhp index d5aa435d2..32d4b5c1d 100644 --- a/doc/en/teraterm.hhp +++ b/doc/en/teraterm.hhp @@ -28,19 +28,11 @@ HlpFileXmodemSend=html\menu\file-transfer-xmodem-send.html HlpFileZmodemSend=html\menu\file-transfer-zmodem-send.html HlpFileBPlusSend=html\menu\file-transfer-bplus-send.html HlpFileQVSend=html\menu\file-transfer-qv-send.html -HlpFileChangeDir=html\menu\file-chdir.html HlpFilePrint=html\menu\file-print.html HlpSetupTerminal=html\menu\setup-terminal.html -HlpSetupTerminalRuss=html\menu\setup-terminal_ru.html -HlpSetupTerminalEn=html\menu\setup-terminal.html -HlpSetupTerminalJa=html\menu\setup-terminal_ja.html -HlpSetupTerminalKo=html\menu\setup-terminal_ko.html -HlpSetupTerminalRu=html\menu\setup-terminal_ru.html -HlpSetupTerminalUtf8=html\menu\setup-terminal_utf8.html HlpSetupWindow=html\menu\setup-window.html HlpSetupFont=html\menu\setup-font.html HlpSetupKeyboard=html\menu\setup-keyboard.html -HlpSetupKeyboardRuss=html\menu\setup-keyboard_ru.html HlpSetupSerialPort=html\menu\setup-serialport.html HlpSetupTCPIP=html\menu\setup-tcpip.html HlpSetupGeneral=html\menu\setup-general.html @@ -58,6 +50,7 @@ HlpAboutRequirements=html\about\requirements.html HlpAboutEmulations=html\about\emulations.html HlpAboutHistory=html\about\history.html HlpAboutQanda=html\about\qanda.html +HlpAboutQandaConnection=html\about\qanda.html#connection HlpAboutRequests=html\about\requests.html HlpAboutContacts=html\about\contacts.html HlpAboutWriter=html\about\writer.html @@ -81,7 +74,6 @@ HlpUsageTipsZmodem=html\usage\tips\zmodem.html HlpUsageTipsBplus=html\usage\tips\b-plus.html HlpUsageTipsForward=html\usage\tips\forwarding-files.html HlpUsageTipsNotport23=html\usage\tips\not_port23.html -HlpUsageTipsDoubleclick=html\usage\tips\double-click.html HlpUsageTipsAppkeypad=html\usage\tips\appkeypad.html HlpUsageTipsNamedpipe=html\usage\tips\namedpipe.html HlpUsageTipsTelnetprotocol=html\usage\tips\telnet_protocol.html @@ -127,6 +119,19 @@ HlpMenuSetupSshforward=html\menu\setup-sshforward.html HlpMenuSetupSshkeygen=html\menu\setup-sshkeygenerator.html HlpMenuSetupTcpip=html\menu\setup-tcpip.html HlpMenuSetupAdditional=html\menu\setup-additional.html +HlpMenuSetupAdditionalGeneral=html\menu\setup-additional-general.html +HlpMenuSetupAdditionalCopyAndPaste=html\menu\setup-additional-copy-and-paste.html +HlpMenuSetupAdditionalCoding=html\menu\setup-additional-coding.html +HlpMenuSetupAdditionalLog=html\menu\setup-additional-log.html +HlpMenuSetupAdditionalVisual=html\menu\setup-additional-visual.html +HlpMenuSetupAdditionalFont=html\menu\setup-additional-font.html +HlpMenuSetupAdditionalTheme=html\menu\setup-additional-theme.html +HlpMenuSetupAdditionalKeyboard=html\menu\setup-additional-keyboard.html +HlpMenuSetupAdditionalMouse=html\menu\setup-additional-Mouse.html +HlpMenuSetupAdditionalTCPIP=html\menu\setup-additional-tcpip.html +HlpMenuSetupAdditionalCtrlSeq=html\menu\setup-additional-ctrlseq.html +HlpMenuSetupAdditionalCygwin=html\menu\setup-additional-cygwin.html +HlpMenuSetupThemeEditor=html\menu\setup-additional-visual-theme.html HlpMenuSetupSave=html\menu\setup-save.html HlpMenuSetupRestore=html\menu\setup-restore.html HlpMenuSetupDir=html\menu\setup-directory.html @@ -166,17 +171,23 @@ HlpSetupKbd=html\setup\keyboard.html HlpSetupSshknownhosts=html\setup\knownfiles.html HlpSetupCygterm=html\setup\cygterm.html HlpSetupLang=html\setup\lng.html -HlpRefKeycode=html\reference\keycode.txt +HlpRefKeycode=html\reference\keycode.html HlpRefRe=html\reference\RE.txt -HlpRefOpenssl=html\reference\OpenSSL-LICENSE.txt +HlpRefOpenssl=html\reference\LibreSSL-LICENSE.txt HlpRefOpenssh=html\reference\OpenSSH-LICENSE.txt -HlpRefDev=html\reference\develop.txt +HlpRefDev=html\reference\develop.html +HlpRefDevEnv=html\reference\develop-environment.html +HlpRefDevBuild=html\reference\develop-build.html +HlpRefDevMemo=html\reference\develop-memo.html +HlpRefDevRelease=html\reference\develop-release.html HlpRefPutty=html\reference\PuTTY-LICENSE.txt HlpRefSource=html\reference\sourcecode.html HlpRefOniguruma=html\reference\Oniguruma-LICENSE.txt HlpRefSFMT=html\reference\SFMT-LICENSE.txt HlpRefCygterm=html\reference\CygTerm+-LICENSE.txt HlpRefZlib=html\reference\zlib-LICENSE.txt +HlpRefArgon2=html\reference\argon2-LICENSE.txt +HlpRefCjson=html\reference\cJSON-LICENSE.txt HlpMacro=html\macro\index.html HlpMacroExec=html\macro\howtorun.html HlpMacroCommandline=html\macro\commandline.html @@ -218,6 +229,7 @@ HlpMacroCommandCrc32=html\macro\command\crc32.html HlpMacroCommandCrc32File=html\macro\command\crc32.html HlpMacroCommandCygConnect=html\macro\command\cygconnect.html HlpMacroCommandDelpassword=html\macro\command\delpassword.html +HlpMacroCommandDelpassword2=html\macro\command\delpassword2.html HlpMacroCommandDirname=html\macro\command\dirname.html HlpMacroCommandDirnamebox=html\macro\command\dirnamebox.html HlpMacroCommandDisconnect=html\macro\command\disconnect.html @@ -267,10 +279,12 @@ HlpMacroCommandGetipv4addr=html\macro\command\getipv4addr.html HlpMacroCommandGetipv6addr=html\macro\command\getipv6addr.html HlpMacroCommandGetmodemstatus=html\macro\command\getmodemstatus.html HlpMacroCommandGetpassword=html\macro\command\getpassword.html +HlpMacroCommandGetpassword2=html\macro\command\getpassword2.html HlpMacroCommandGetspecialfolder=html\macro\command\getspecialfolder.html HlpMacroCommandGettime=html\macro\command\gettime.html HlpMacroCommandGettitle=html\macro\command\gettitle.html HlpMacroCommandGetttdir=html\macro\command\getttdir.html +HlpMacroCommandGetttpos=html\macro\command\getttpos.html HlpMacroCommandGetver=html\macro\command\getver.html HlpMacroCommandGoto=html\macro\command\goto.html HlpMacroCommandIfdefined=html\macro\command\ifdefined.html @@ -281,6 +295,7 @@ HlpMacroCommandInputbox=html\macro\command\inputbox.html HlpMacroCommandInt2str=html\macro\command\int2str.html HlpMacroCommandIntdim=html\macro\command\intdim.html HlpMacroCommandIsPassword=html\macro\command\ispassword.html +HlpMacroCommandIsPassword2=html\macro\command\ispassword2.html HlpMacroCommandKmtfinish=html\macro\command\kmtfinish.html HlpMacroCommandKmtget=html\macro\command\kmtget.html HlpMacroCommandKmtrecv=html\macro\command\kmtrecv.html @@ -313,6 +328,7 @@ HlpMacroCommandRotateright=html\macro\command\rotateright.html HlpMacroCommandScprecv=html\macro\command\scprecv.html HlpMacroCommandScpsend=html\macro\command\scpsend.html HlpMacroCommandSend=html\macro\command\send.html +HlpMacroCommandSendbinary=html\macro\command\sendbinary.html HlpMacroCommandSendbreak=html\macro\command\sendbreak.html HlpMacroCommandSendbroadcast=html\macro\command\sendbroadcast.html HlpMacroCommandSendfile=html\macro\command\sendfile.html @@ -321,6 +337,7 @@ HlpMacroCommandSendln=html\macro\command\sendln.html HlpMacroCommandSendlnbroadcast=html\macro\command\sendlnbroadcast.html HlpMacroCommandSendlnmulticast=html\macro\command\sendlnmulticast.html HlpMacroCommandSendmulticast=html\macro\command\sendmulticast.html +HlpMacroCommandSendtext=html\macro\command\sendtext.html HlpMacroCommandSetdate=html\macro\command\setdate.html HlpMacroCommandSetdir=html\macro\command\setdir.html HlpMacroCommandSetdlgpos=html\macro\command\setdlgpos.html @@ -334,6 +351,7 @@ HlpMacroCommandSetfileattr=html\macro\command\setfileattr.html HlpMacroCommandSetflowctrl=html\macro\command\setflowctrl.html HlpMacroCommandSetMulticastName=html\macro\command\setmulticastname.html HlpMacroCommandSetPassword=html\macro\command\setpassword.html +HlpMacroCommandSetPassword2=html\macro\command\setpassword2.html HlpMacroCommandSetrts=html\macro\command\setrts.html HlpMacroCommandSetspeed=html\macro\command\setspeed.html HlpMacroCommandSetsync=html\macro\command\setsync.html diff --git a/doc/htmlhelp_index_make.pl b/doc/htmlhelp_index_make.pl index 553ad8c3e..737bb2a34 100644 --- a/doc/htmlhelp_index_make.pl +++ b/doc/htmlhelp_index_make.pl @@ -1,83 +1,96 @@ #! /usr/bin/perl # -# HTMLwṽCfbNXt@C𐶐 +# HTMLヘルプのインデックスファイルを生成する # -# Usage(ActivePerl): -# perl htmlhelp_index_make.pl ja html > ja\Index.hhk +# Usage: +# perl htmlhelp_index_make.pl ja html -o ja\Index.hhk # -use Cwd; -@dirstack = (); +require 5.8.0; +use strict; +use warnings; +use utf8; +use Cwd; +use Getopt::Long + +binmode STDOUT, ":utf8"; + +my $out = "index.hhk"; +my $verbose = 0; +my $result = GetOptions( + 'out|o=s' => \$out, + 'verbose' => \$verbose + ); + +my $OUT; +open ($OUT, '>:crlf:encoding(shiftjis)', $out); + +my @dirstack = (); do_main($ARGV[0], $ARGV[1]); +close $OUT; exit(0); sub do_main { my($path, $body) = @_; - print << 'EOD'; - - - - - -
      + print $OUT <<'EOD'; + + + + + +
        EOD - push @dirstack, getcwd; - chdir $path; + push @dirstack, getcwd; + chdir $path or die "cannot chdir to $path $!"; get_file_paths($body); - chdir pop @dirstack; + chdir pop @dirstack; - print << 'EOD'; -
      + print $OUT <<'EOD'; +
    EOD } -sub get_file_paths { - my ($top_dir)= @_; - my @paths=(); - my @temp = (); - - #-- Jg̈ꗗ擾 --# - opendir(DIR, $top_dir); - @temp = readdir(DIR); - closedir(DIR); - foreach my $path (sort @temp) { - next if( $path =~ /^\.{1,2}$/ ); # '.' '..' ̓XLbv - next if( $path =~ /^\.svn$/ ); # '.svn' ̓XLbv - +sub get_file_paths { + my ($top_dir)= @_; + my @temp = (); + + #-- カレントの一覧を取得 --# + opendir(DIR, $top_dir); + @temp = readdir(DIR); + closedir(DIR); + foreach my $path (sort @temp) { + next if( $path =~ /^\.{1,2}$/ ); # '.' と '..' はスキップ + next if( $path =~ /^\.svn$/ ); # '.svn' はスキップ + my $full_path = "$top_dir" . '/' . "$path"; - next if (-B $full_path); # oCit@C̓XLbv - -# print "$full_path\r\n"; # \ȂSĂ\Ă------- - push(@paths, $full_path); # f[^ƂĎ荞łO̎荞݂ - if( -d "$top_dir/$path" ){ #-- fBNg̏ꍇ͎gĂяo + + if ($verbose != 0) { + print "$full_path\r\n"; + } + if( -d "$top_dir/$path" ){ #-- ディレクトリの場合は自分自身を呼び出す &get_file_paths("$full_path"); - + } else { check_html_file($full_path); - - } - } - return \@paths; -} -sub check_html_file { - my($filename) = shift; - local(*FP); - my($line, $no, $val); - - if ($filename !~ /.html$/) { - return; + } } - - open(FP, "<$filename") || return; +} + +sub get_title { + my $filename = $_[0]; + my $title = ""; + my($line, $no, $val); + + open(FP, "<:crlf:encoding(sjis)", "$filename") || return; $no = 1; while ($line = ) { # $line = chomp($line); @@ -86,25 +99,46 @@ sub check_html_file { # print "$filename:$no: $1\n"; # print "$line\n"; $val = $1; - $val =~ s/"/"/g; # dpGXP[v - write_add_index($filename, $val); + $val =~ s/"/"/g; # 二重引用符をエスケープする + $title = $val; last; } $no++; } close(FP); + + return $title; +} + +sub check_html_file { + my($filename) = shift; + + if ($filename !~ /.html$/) { + return; + } + if ($filename =~ /#/) { + die "bad filename '$filename'"; + } + + my $title = &get_title($filename); + if ($title eq "") { + # タイトルがないhtmlのときファイル名をタイトルとする + $filename =~ /\/([^\/]+)\.html$/; + $title = $1; + } + + write_add_index($filename, $title); } sub write_add_index { my($filename, $title) = @_; - - print << "EOD"; -
  • - - + + print $OUT <<"EOD"; +
  • + + EOD } - diff --git a/doc/ja/CMakeLists.txt b/doc/ja/CMakeLists.txt new file mode 100644 index 000000000..6be14da84 --- /dev/null +++ b/doc/ja/CMakeLists.txt @@ -0,0 +1,97 @@ + +set(PACKAGE_NAME "chm_ja") +project(${PACKAGE_NAME}) + +if(NOT DEFINED BINARY_DIR) + MESSAGE(FATAL_ERROR "check BINARY_DIR") +endif() + +set(CONVERTED_FILES "") + +function(ConvertHTML output depend options) + list(APPEND CONVERTED_FILES ${CMAKE_CURRENT_LIST_DIR}/${output}) + set(SCRIPT ${CMAKE_CURRENT_LIST_DIR}/../2sjis.pl) + add_custom_command( + OUTPUT ${CMAKE_CURRENT_LIST_DIR}/${output} + DEPENDS ${CMAKE_CURRENT_LIST_DIR}/${depend} + DEPENDS ${SCRIPT} + COMMAND ${PERL} ${SCRIPT} + -i ${CMAKE_CURRENT_LIST_DIR}/${depend} + -o ${CMAKE_CURRENT_LIST_DIR}/${output} + ${options} --no_utime + WORKING_DIRECTORY ${CMAKE_CURRENT_LIST_DIR} + ) + set(CONVERTED_FILES ${CONVERTED_FILES} PARENT_SCOPE) +endfunction() + +set(REF "html/reference") +ConvertHTML(${REF}/Oniguruma-LICENSE.txt ../../libs/doc_help/Oniguruma-LICENSE.txt "-l;unix") +ConvertHTML(${REF}/RE.txt ../../libs/doc_help/ja/RE "-l;unix;-c;utf8") +ConvertHTML(${REF}/LibreSSL-LICENSE.txt ../../libs/doc_help/LibreSSL-LICENSE.txt "-l;unix") +ConvertHTML(${REF}/SFMT-LICENSE.txt ../../libs/doc_help/SFMT-LICENSE.txt "-l;unix") +ConvertHTML(${REF}/argon2-LICENSE.txt ../../libs/doc_help/argon2-LICENSE.txt "-l;unix") +ConvertHTML(${REF}/zlib-LICENSE.txt ../../libs/doc_help/zlib-LICENSE.txt "-l;unix;--zlib_special") +ConvertHTML(${REF}/cJSON-LICENSE.txt ../../libs/doc_help/cJSON-LICENSE.txt "-l;crlf") +ConvertHTML(${REF}/CygTerm+-LICENSE.txt ../../cygwin/cygterm/COPYING "-l;unix") +ConvertHTML(${REF}/build_with_cmake.html ${REF}/build_with_cmake.md "") +ConvertHTML(${REF}/build_library_with_cmake.html ${REF}/build_library_with_cmake.md "") + +file( + GLOB_RECURSE + SRC + LIST_DIRECTORIES false + CONFIGURE_DEPENDS + *.html *.md *.png +) +list(FILTER SRC EXCLUDE REGEX "build_library_with_cmake.html") +list(FILTER SRC EXCLUDE REGEX "build_with_cmake.html") + +source_group(TREE ${CMAKE_CURRENT_LIST_DIR} FILES ${SRC}) + +add_custom_target( + ${PACKAGE_NAME} ALL + DEPENDS ${BINARY_DIR}/teratermj.chm + SOURCES ${SRC} + SOURCES ../htmlhelp_index_make.pl + SOURCES ../2sjis.pl + WORKING_DIRECTORY ${CMAKE_CURRENT_LIST_DIR} +) + +if(NOT("${HHC}" STREQUAL "HHC-NOTFOUND")) + set(HHC_COMMAND ${HHC}) +else() + set(HHC_COMMAND ${CHMCMD}) +endif() + +if(${CMAKE_VERSION} VERSION_GREATER_EQUAL "3.12.0") + set(RM rm) +else() + # 3.11は rm がない。remove を使用する + set(RM remove) +endif() + +add_custom_command( + OUTPUT ${BINARY_DIR}/teratermj.chm + DEPENDS ${CMAKE_CURRENT_LIST_DIR}/Index.hhk + DEPENDS ${CMAKE_CURRENT_LIST_DIR}/teraterm.hhc + DEPENDS ${CMAKE_CURRENT_LIST_DIR}/teraterm.hhp + DEPENDS ${CONVERTED_FILES} + DEPENDS ${SRC} + COMMAND ${CMAKE_COMMAND} -E ${RM} -f ${BINARY_DIR}/teratermj.chm + COMMAND ${CMAKE_COMMAND} -DHHC=${HHC_COMMAND} -P ../chm.cmake + COMMAND ${CMAKE_COMMAND} -E rename ${CMAKE_CURRENT_LIST_DIR}/teratermj.chm ${BINARY_DIR}/teratermj.chm + WORKING_DIRECTORY ${CMAKE_CURRENT_LIST_DIR} +) + +add_custom_command( + OUTPUT ${CMAKE_CURRENT_LIST_DIR}/Index.hhk + DEPENDS ${SRC} + DEPENDS ${CMAKE_CURRENT_LIST_DIR}/../htmlhelp_index_make.pl + COMMAND ${PERL} ${CMAKE_CURRENT_LIST_DIR}/../htmlhelp_index_make.pl . html -o Index.hhk + WORKING_DIRECTORY ${CMAKE_CURRENT_LIST_DIR} +) + +install( + FILES ${BINARY_DIR}/teratermj.chm + DESTINATION . +) diff --git a/doc/ja/html/about/contacts.html b/doc/ja/html/about/contacts.html index 4e0b1e1d8..01ad0b155 100644 --- a/doc/ja/html/about/contacts.html +++ b/doc/ja/html/about/contacts.html @@ -3,63 +3,91 @@ -҂ւ̘A +A,eփN -

    ҂ւ̘A

    +

    A,eփN

    -

    -lbg[NݒAڑ@AzXg̐ݒAL[{[hݒ@A}Nt@C쐬@ATera Term ̎gɊւ鎿҂ɂȂłB -ǂtBŐVA֗ȏEc[ Tera Term Home Page Ō‚邩܂B -

    +

    web

    -

    -Tera Term Home Page: -https://ttssh2.osdn.jp/ -(ύX邩܂B) -

    - -

    -쌠gpɊւ鎿AʂȎgpєzz`ԂɊւ鋖‚̐\͂ǂ[ĂB -oO񍐂v]ł͂ȂPɃbZ[W𑗂肽ꍇǂB -

    - -

    -oO̕񍐂v]ꍇ͈ȉK悭ǂł: -

    +
      +
    • Tera Term Home Page (https://teratermproject.github.io/)
    • +
    • Tera Term (Tera Term project page)
    • +
        +
      • issue (oO/v])
        + oOAv] issue ֓o^ĂBGitHub AJEgKvłB
        + oȌꍇ Tera Term ɖ肪Ɣfł񂪂ƉȂ܂B
        + ̓Iɂ͎̂悤Ȃ̂łB
      • +
          +
        • ‹̈ꕔύXē삪ςȂǂ̏
          + ႦTera TermƓ̃vOƔrē삪قȂAOS̃o[WύXƔAȂǂ̏B
          + ‹ƂĂ͎̂悤Ȃ̂l܂B
        • +
            +
          • Windows
          • +
          • Tera Term{
          • +
          • SerialAUSB-Serial @AhCo
            + (A[J[͐B[J[͖肠ȂAB[J[̃T|[gւ̖₢킹Ó܂B
            + [J[قȂĂĂgp`bvꍇ͓肪݂”\܂)
          • +
          • EthernetAhCo
            + (o[WX͐Ńo[WYɖ肠ȂAi[J[̃T|[gւ̖₢킹Ół傤)
          • +
          • ʐMoH(P[u(Ehter/Serial)AnuA[^[AANZX|CgAvoC_Ȃ)
          • +
          • ڑ(@AvO(T[o[A[)AOSȂ)
          • +
          +
        • ČApx
          + Č@킩ƂƂĂ܂B
        • +
        • ̃OAʂ̃Lv`
        • +
        • ̑AwvAwebTCg͂̌̕Ȃ
        • +
        + Tera Term ȊO̓eA{eBA̔e𒴂T|[gɂ͂łȂƂ܂B
        + ̓Iɂ͎̂悤Ȃ̂łB +
          +
        • u[XN[̏C
          + Tera Term Windows ̕ʂ̃vOłB + Windows ŒvIȃG[Ƃɕ\u[XN[A + ʂ̃vO甭邱Ƃ͂܂łȂł傤B
          + Au[XN[𔭐 Windows ~߂邱ƂłȂA + ̕ɐƎ㐫邱ƂɂȂ܂B
          + قƂǂ̏ꍇAgpĂfoCX̃foCXhCoŔ܂B
        • +
        • lbg[NݒAڑ@AzXg̐ݒAL[{[hݒ@Ȃ
        • +
        • ...}N̍쐬
        • +
        • ̋@WindowsɊւ邱
          + A[J[̋@̃o[WXł͖肪N܂AȂ
        • +
        + ɂƖ肠ꍇ[pł܂B
        + [̑`Pbg͑ΉȂ邩܂B
        + `Pbgɑ΂ăpb`ƑΉȂ邩܂B + +
      • _E[h
      • +
      • \[X/|Wg
      • +
      +
    +

    wvt@C

    -

    -܂oO񍐂̏ꍇ́Aꂪݒ̖ł͂ȂƂƁATera Term ŗL̖łƂƁAł邾mFĂ݂ĂB
    -Tera Term ł͂Ȃ̃AvP[V(Ⴆ Windows 95/NT Wt telnet.exe) ł肪Nꍇ Tera Term ̃oOł͂ȂꍇłBl錴₻̖肪KN悤ȏ‚Ăƍ҂͔ɏ܂B񍐂̍ۂ́ATera Term ̃o[W֌WƎvĂB -

    - -

    -҂Ƀ[𑗂ĂꍇAԎȂxꂽAoȂꍇ悭܂̂łB
    -܂Ałɕ񍐂ĂoOoĂv]ATera Term tɓĂ鎿ⓙ͕ԎȗĂ܂([Ă̂ɖ{ɂ݂܂)B -

    - -
    -(c L)̃[AhX: yutakakn@gmail.com -(ύX邩܂B) -
    +

    [,[OXg

    + diff --git a/doc/ja/html/about/copyright.html b/doc/ja/html/about/copyright.html index 200882af2..2603db60c 100644 --- a/doc/ja/html/about/copyright.html +++ b/doc/ja/html/about/copyright.html @@ -22,17 +22,18 @@
  • TeraTerm Menu ... OBSDCZX
  • TTX KanjiMenu ... OBSDCZX
  • ljvOC ... OBSDCZX
  • -
  • Collector ... t[EFA \[XR[h񋟂Ȃ
  • -
  • LogMeTT, TTLEditor ... t[EFA vvCG^ECZX \[XR[h񋟂Ȃ
  • gpĂ郉Cu(\[XR[h)

    @@ -41,7 +42,7 @@

    Tera Term

    CZX

     Copyright (C) 1994-1998 T. Teranishi
    -(C) 2004-2019 TeraTerm Project
    +(C) 2004-2024 TeraTerm Project
     All rights reserved.
     
     Redistribution and use in source and binary forms, with or without modification,
    @@ -77,7 +78,6 @@ 

    Tera Term

    CygtermNSym̒앨łB TTSSHRobert O'Callahan̒앨łB TeraTerm Menu͑M̒앨łB - LogMeTTBoris Maisuradze̒앨łB Eterm߃EBhE@\AKASIɒ쌠܂B TTProxy͕gqoZ̒앨łB {Tera Term͍pы䌒lɒ쌠܂B @@ -95,13 +95,10 @@

    Tera Term

    {vO͏pp킸ŗpł܂A҂͖{vO̎gpɂ Qɑ΂Ĉ؂̐ӔC𕉂܂B - URL: https://ttssh2.osdn.jp/ - Project: https://ja.osdn.net/projects/ttssh2/ - e-mail: yutakakn@gmail.com (cL) - forum(p): http://logmett.com/support-forums - ML: http://www.freeml.com/info/teraterm@freeml.com + URL: https://teratermproject.github.io/ + Project: https://github.com/TeraTermProject/teraterm - Tera Term Pro(IWi): http://hp.vector.co.jp/authors/VA002416/ + Tera Term Pro(IWi): https://www.vector.co.jp/soft/win95/net/se067018.html ANSIJ[FύXsApb`: http://www.sakurachan.org/ml/teraterm/msg00264.html IPv6Tera Term Pro: http://win6.jp/TeraTerm/index.html Eterm߃EBhE@\pb`Fhttp://www.geocities.co.jp/SiliconValley-PaloAlto/4954/av.html @@ -109,10 +106,7 @@

    Tera Term

    Special thanks to ... (h̗) E (T.Teranishi) - IWi Tera Term Pro ̍ - URL: http://hp.vector.co.jp/authors/VA002416/ EcL (Yutaka Hirata) - UTF-8Ή & SSH2Ή - e-mail: yutakakn@gmail.com - URL: http://hp.vector.co.jp/authors/VA013320/
    @@ -121,7 +115,7 @@

    Tera Term

    CZX

     (C)1998-2001 Robert O'Callahan
    -(C) 2004-2019 TeraTerm Project
    +(C) 2004-2024 TeraTerm Project
     All rights reserved.
     
     Redistribution and use in source and binary forms, with or without modification,
    @@ -152,42 +146,129 @@ 

    Tera Term

    TTSSHRobert O'Callahan̒앨łB TTSSHSSH2̃R[hɂ‚ẮA쌠͕cLɂ܂B - OpenSSLOpenSSL Project̒앨łBCZXɂ‚Ă͓OpenSSL-LICENSE.txtB - {vÓAOpenSSLƐÓINĂ܂B - zlibGreg RoelofsJean-loup Gailly̒앨łBCZXɂ‚Ă͓zlib-LICENSE.txtB - {vÓAzlibƐÓINĂ܂B OpenSSH̒쌠́AeJ҂ɂ܂Bڂ͓OpenSSH-LICENSE.txtB {vÓAOpenSSH̃\[XR[hgpĂ܂B + LibreSSLOpenBSD Project̒앨łBCZXɂ‚Ă͓LibreSSL-LICENSE.txtB + {vÓALibreSSLƐÓINĂ܂B + zlibGreg RoelofsJean-loup Gailly̒앨łBCZXɂ‚Ă͓zlib-LICENSE.txtB + {vÓAzlibƐÓINĂ܂B PuTTYSimon Tatham̒앨łBCZXɂ‚Ă͓PuTTY-LICENCE.txtB {vÓAPuTTỸ\[XR[hgpĂ܂B + RLoginCulti̒앨łBCZXɂ‚Ă͓RLogin-LICENCE.txtB + {vÓARLogiñ\[XR[hQlɂĂ܂B + The reference C implementation of Argon2 Daniel Dinu, Dmitry Khovratovich, Jean-Philippe Aumasson, Samuel Neves e̒앨łBCZXɂ‚Ă͓Argon2-LICENCE.txtB + {vÓAThe reference C implementation of Argon2 ̃\[XR[hgpĂ܂B TTSSHɊւpb`̈ꕔ͉ic^ɒ쌠܂B TTSSH̃ACR͍{Fɒ쌠܂B {vO͖ŗpł܂A҂͖{vO̎gpɂ Qɑ΂Ĉ؂̐ӔC𕉂܂B - URL: https://ttssh2.osdn.jp/ - Project: https://ja.osdn.net/projects/ttssh2/ - e-mail: yutakakn@gmail.com (cL) - forum(p): http://logmett.com/support-forums - ML: http://www.freeml.com/info/teraterm@freeml.com + URL: https://teratermproject.github.io/ + Project: https://github.com/TeraTermProject/teraterm Special thanks to ... (h̗) ERobert O'Callahan - IWi TTSSH ̍ EcL (Yutaka Hirata) - SSH2Ή - e-mail: yutakakn@gmail.com - URL: http://hp.vector.co.jp/authors/VA013320/

    Zp

    -
    -TTSSH͈ȉ̋Zp𗘗pĂ܂:
    -: diffie-hellman-group1-sha1, diffie-hellman-group14-sha1, diffie-hellman-group-exchange-sha1, diffie-hellman-group-exchange-sha256, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521
    -T[ozXǧJASY: ssh-rsa1, ssh-dss, ssh-rsa, ecdsa-sha2-nistp256, ecdsa-sha2-nistp384, ecdsa-sha2-nistp521, ssh-ed25519
    -ÍASY: DES, 3DES, AES(128bit,192bit,256bit), Blowfish(128bit), ARCFOUR(128bit,256bit), CAST-128(128bit), Camellia(128bit,192bit,256bit)
    -MACASY: hmac-sha1, hmac-md5, hmac-sha1-96, hmac-md5-96, hmac-ripemd160@openssh.com, hmac-sha2-256, hmac-sha2-256-96, hmac-sha2-512, hmac-sha2-512-96
    -JF؂̌JASY: ssh-dss, ssh-rsa, ecdsa-sha2-nistp256, ecdsa-sha2-nistp384, ecdsa-sha2-nistp521
    -
    +

    TTSSH͈ȉ̋Zp𗘗pĂ܂:

    +
      +
    • + KEX()ASY +
        +
      • diffie-hellman-group1-sha1
      • +
      • diffie-hellman-group14-sha1
      • +
      • diffie-hellman-group-exchange-sha1
      • +
      • diffie-hellman-group-exchange-sha256
      • +
      • ecdh-sha2-nistp256
      • +
      • ecdh-sha2-nistp384
      • +
      • ecdh-sha2-nistp521
      • +
      • diffie-hellman-group14-sha256
      • +
      • diffie-hellman-group16-sha512
      • +
      • diffie-hellman-group18-sha512
      • +
      +
    • +
    • + T[ozXgASY +
        +
      • ssh-rsa1 (SSH1)
      • +
      • ssh-rsa (RSA/SHA-1)
      • +
      • rsa-sha2-256
      • +
      • rsa-sha2-512
      • +
      • ssh-dss
      • +
      • ecdsa-sha2-nistp256
      • +
      • ecdsa-sha2-nistp384
      • +
      • ecdsa-sha2-nistp521
      • +
      • ssh-ed25519
      • +
      +
    • +
    • + ÍASY +
        +
      • DES (SSH1)
      • +
      • 3DES (SSH1)
      • +
      • Blowfish (SSH1)
      • +
      • 3des-cbc
      • +
      • aes128-cbc
      • +
      • aes128-cbc
      • +
      • aes256-cbc
      • +
      • blowfish-cbc
      • +
      • aes128-ctr
      • +
      • aes192-ctr
      • +
      • aes256-ctr
      • +
      • arcfour
      • +
      • arcfour128
      • +
      • arcfour256
      • +
      • cast128-cbc
      • +
      • 3des-ctr
      • +
      • blowfish-ctr
      • +
      • cast128-ctr
      • +
      • camellia128-cbc
      • +
      • camellia192-cbc
      • +
      • camellia256-cbc
      • +
      • camellia128-ctr
      • +
      • camellia192-ctr
      • +
      • camellia256-ctr
      • +
      • aes128-gcm@openssh.com
      • +
      • aes256-gcm@openssh.com
      • +
      • chacha20-poly1305@openssh.com
      • +
      +
    • +
    • + MAC(bZ[WF؃R[h)ASY +
        +
      • hmac-sha1
      • +
      • hmac-md5
      • +
      • hmac-sha1-96
      • +
      • hmac-md5-96
      • +
      • hmac-ripemd160@openssh.com
      • +
      • hmac-sha2-256
      • +
      • hmac-sha2-512
      • +
      • hmac-sha1-etm@openssh.com
      • +
      • hmac-md5-etm@openssh.com
      • +
      • hmac-sha1-96-etm@openssh.com
      • +
      • hmac-md5-96-etm@openssh.com
      • +
      • hmac-ripemd160-etm@openssh.com
      • +
      • hmac-sha2-256-etm@openssh.com
      • +
      • hmac-sha2-512-etm@openssh.com
      • +
      +
    • +
    • + JF؂̏ASY +
        +
      • ssh-dss
      • +
      • ssh-rsa (RSA/SHA-1)
      • +
      • rsa-sha2-256
      • +
      • rsa-sha2-512
      • +
      • ecdsa-sha2-nistp256
      • +
      • ecdsa-sha2-nistp384
      • +
      • ecdsa-sha2-nistp521
      • +
      • ssh-ed25519
      • +
      +
    • +

    CygTerm+

    @@ -196,7 +277,7 @@

    CygTerm+

     Using Cygwin with a terminal emulator.
     Copyright (C) 2000-2006 NSym
    -(C) 2004-2016 TeraTerm Project
    +(C) 2004-2023 TeraTerm Project
     
     This program is free software; you can redistribute it and/or
     modify it under the terms of the GNU General Public License
    @@ -224,10 +305,8 @@ 

    CygTerm+

    {vO͖ŗpł܂A҂͖{vO̎gpɂ Qɑ΂Ĉ؂̐ӔC𕉂܂B - URL: https://ttssh2.osdn.jp/ - Project: https://ja.osdn.net/projects/ttssh2/ - e-mail: yutakakn@gmail.com (cL) - ML: http://www.freeml.com/info/teraterm@freeml.com + URL: https://teratermproject.github.io/ + Project: https://github.com/TeraTermProject/teraterm Special thanks to ... (h̗) ENSym - IWi CygTerm ̍ @@ -240,7 +319,7 @@

    TTProxy

    CZX

     Copyright (C) 2003-2006 gq{
    -(C) 2004-2016 TeraTerm Project
    +(C) 2004-2019 TeraTerm Project
     All rights reserved.
     
     Redistribution and use in source and binary forms, with or without modification,
    @@ -275,10 +354,8 @@ 

    TTProxy

    {vO͖ŗpł܂A҂͖{vO̎gpɂ Qɑ΂Ĉ؂̐ӔC𕉂܂B - URL: https://ttssh2.osdn.jp/ - Project: https://ja.osdn.net/projects/ttssh2/ - e-mail: yutakakn@gmail.com (cL) - ML: http://www.freeml.com/info/teraterm@freeml.com + URL: https://teratermproject.github.io/ + Project: https://github.com/TeraTermProject/teraterm Special thanks to ... (h̗) EgqoZ - IWi TTProxy ̍ @@ -291,7 +368,7 @@

    TeraTerm Menu

    CZX

     Copyright(C) 1997-2003 S.Hayakawa
    -(C) 2004-2016 TeraTerm Project
    +(C) 2004-2024 TeraTerm Project
     All rights reserved.
     
     Redistribution and use in source and binary forms, with or without modification,
    @@ -325,10 +402,8 @@ 

    TeraTerm Menu

    {vO͖ŗpł܂A҂͖{vO̎gpɂ Qɑ΂Ĉ؂̐ӔC𕉂܂B - URL: https://ttssh2.osdn.jp/ - Project: https://ja.osdn.net/projects/ttssh2/ - e-mail: yutakakn@gmail.com (cL) - ML: http://www.freeml.com/info/teraterm@freeml.com + URL: https://teratermproject.github.io/ + Project: https://github.com/TeraTermProject/teraterm Special thanks to ... (h̗) ES.Hayakawa - TeraTerm Menu ̍ @@ -341,7 +416,7 @@

    TTX KanjiMenu

    CZX

     Copyright (C) 2007 Sunao HARA
    -(C) 2004-2009 TeraTerm Project
    +(C) 2004-2024 TeraTerm Project
     All rights reserved.
     
     Redistribution and use in source and binary forms, with or without modification,
    @@ -375,10 +450,8 @@ 

    TTX KanjiMenu

    {vO͖ŗpł܂A҂͖{vO̎gpɂ Qɑ΂Ĉ؂̐ӔC𕉂܂B - URL: https://ttssh2.osdn.jp/ - Project: https://ja.osdn.net/projects/ttssh2/ - e-mail: yutakakn@gmail.com (cL) - ML: http://www.freeml.com/info/teraterm@freeml.com + URL: https://teratermproject.github.io/ + Project: https://github.com/TeraTermProject/teraterm Special thanks to ... (h̗) E (Sunao HARA) - IWi TTX KanjiMenu ̍ diff --git a/doc/ja/html/about/ctrlseq.html b/doc/ja/html/about/ctrlseq.html index 5d90c1280..4c800ddad 100644 --- a/doc/ja/html/about/ctrlseq.html +++ b/doc/ja/html/about/ctrlseq.html @@ -162,6 +162,7 @@ CSI Ps Z CBT J[\ Ps ‘Õ^uXgbvɈړBPs ̏ȗ̒l 1B CSI Ps ` HPA J[\݂̍s Ps ڂɈړBPs ̏ȗ̒l 1B CSI Ps a HPR J[\ Ps EɈړBPs ̏ȗ̒l 1B +CSI Ps b REP Ōɏo͂ Ps JԂBPs ̏ȗ̒l 1B CSI Ps c DA [񍐁Bȗ Ps ̒l 0B
     Ps = 0    [vB
    @@ -760,10 +761,10 @@
     	 ʑŜAWʃobt@ɐ؂ւAۑJ[\ʒu𕜌B 
         
         
    -	 2004 
    +	 2004 
     	 RL_BRACKET 
    -	 Bracketed paste mode LɂB 
    -	 Bracketed paste mode 𖳌ɂB 
    +	 Bracketed paste mode LɂB 
    +	 Bracketed paste mode 𖳌ɂB 
         
         
     	 7727 
    @@ -991,12 +992,12 @@
     
     

    Ql

    diff --git a/doc/ja/html/about/difference.html b/doc/ja/html/about/difference.html index 0d13d8c58..0e39f4065 100644 --- a/doc/ja/html/about/difference.html +++ b/doc/ja/html/about/difference.html @@ -3,724 +3,265 @@ -Tera Term Pro 2.3Ƃ̍ +Tera Term 2.3, 4, 5 ̔r -

    Tera Term Pro 2.3Ƃ̍

    +

    Tera Term 2.3, 4, 5 ̔r

    -Tera Term(Tera Term 4.58)Tera Term Pro 2.3Ƃ̋@\ɂ‚ĈȉɎ܂B +Tera Term ɂ Tera Term Pro 2.3 (IWio[W) ƁATera Term 4 ƁATera Term 5 Ƃ̍ɂ‚ĊT܂B

    @\ꗗ

    - - - + + + + - - - - - - + - - + + + - - - + + + + - - - + + + + - + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + - + - + + - + - - - - - - - - - - - - + + - - - + + + + + + + + - - - + + + + - - - + + + + - - - + + + + - + + - - - - - - - - - - - - - + + + + + + + + + + + + - + +
    Tera Term Pro 2.3Tera TermTera Term Pro 2.3Tera Term 4Tera Term 5
    \[XR[h J J
    Visual C++ 5.0 / Watcom C/C++ 11.0Visual Studio 2005[*1]J
    CZXvvCG^[*2]CBSDCZX[*3]vvCG^*1CBSDCZX*2CBSDCZX
    ACRTera Term[*4]Tera Term[*4]Visual C++ 5.0 / Watcom C/C++ 11.0Visual Studio 2005Visual Studio 2022
    TTSSHACRTTSSHTTSSH[*4]ACRTera Term*3Tera TermTera Term
    őCOM|[g 1625640964096
    VAXs[h 110`115200110`921600
    vOCgݍ‹ϐ"TERATERM_EXTENSIONS"̐ݒ肪Kvݒsv
    NCuSSLeay, zlibOpenSSL(ÍCuƂĎgpBTLŜ߂ɂ͎gpĂȂ)
    zlib
    Oniguruma
    PuTTY(PageantƂ̘Aĝ߂ɎgpBʐM[G~[V̂߂ɂ͎gpĂȂ)
    TTSSHSSH 1.5SSH 1.5 and 2
    T|[gSSHvgRVFA|[g]AX11]VFA|[g]AX11]ASCP
    T|[gSSHvgRSFTP, SCPSFTP
    SSHʌÍASY3DES, DES, Blowfish3DES-CBC, Blowfish, AES128, AES192, AES256
    SSHpPbgkYesYesBSSH2xpPbgkT|[gB
    Pageant[*5]Ƃ̘AgNoYes110`921600 R͂”\110`921600 R͂”\
    {ꕶR[h EUC-JP/Shift_JIS/JIS EUC-JP/Shift_JIS/JIS/UTF-8/UTF-8 MACEUC-JP/Shift_JIS/JIS/UTF-8
    UnicodeUnicode Ή T|[gPꌾT|[g[*6]PꌾT|[g*4T|[g
    IPv6IPv6 Ή No Yes
    EBhENo Yes
    n[gr[g[*7]Notelnet, SSH1 and 2
    EBhE̍ő剻ۉΉ NoYes*5 Yes
    XN[bNL[NoYesNCu*6 + +
      +
    • Oniguruma +
        +
      • K\CuƂĎgp
      • +
      +
    • +
    • SFMT +
        +
      • ƂĎgp
      • +
      +
    • +
    +
    +
      +
    • Oniguruma +
        +
      • K\CuƂĎgp
      • +
      +
    • +
    • SFMT +
        +
      • ƂĎgp
      • +
      +
    • +
    +
     
    ENbN̋֎~NoYesTTSSHACRTTSSHTTSSHTTSSH
    ICwvWinHelpHtmlHelpΉ SSH o[WSSH 1.5SSH 1.5 and 2SSH 1.5 and 2
    NbJuURLNoYesΉ SSH @\VFA|[g]AX11]VFA|[g]AX11]ASCPVFA|[g]AX11]ASCP
    zC[}EXPageant*7 Ƃ̘Ag No YesYes
    ۉΉNoYes[*8]
    vLVNoYes[*9](HTTP, TELNET, SOCKS4, SOCKS5)
    xterm 256F[hNCu*6 +
      +
    • SSLeay +
        +
      • ÍCuƂĎgp (libeay32.lib)
      • +
      • SSL̂߂ɂ͎gpĂȂ (not ssleay32.lib)
      • +
      +
    • +
    • zlib +
        +
      • kCuƂĎgp
      • +
      +
    • +
        +
    +
      +
    • OpenSSL +
        +
      • ÍCuƂĎgp (libcrypto.lib)
      • +
      • TLŜ߂ɂ͎gpĂȂ (not libssl.lib)
      • +
      +
    • +
    • zlib +
        +
      • kCuƂĎgp
      • +
      +
    • +
    • argon2 +
        +
      • PuTTY 閧t@C̕Ɏgp
      • +
      +
    • +
    • PuTTY +
        +
      • c[`bv\\[XR[h𗬗p
      • +
      • PageantƂ̘Aĝ߂Ƀ\[XR[h𗬗p
      • +
      • ʐM[G~[V̂߂ɂ͎gpĂȂ
      • +
      +
    • +
    +
    +
      +
    • LibreSSL +
        +
      • ÍCuƂĎgp (crypto-xx.lib)
      • +
      • TLŜ߂ɂ͎gpĂȂ (not ssl-xx.lib)
      • +
      +
    • zlib +
        +
      • kCuƂĎgp
      • +
      +
    • +
    • argon2 +
        +
      • PuTTY 閧t@C̕Ɏgp
      • +
      +
    • +
    • PuTTY +
        +
      • c[`bv\\[XR[h𗬗p
      • +
      • PageantƂ̘Aĝ߂Ƀ\[XR[h𗬗p
      • +
      • ʐM[G~[V̂߂ɂ͎gpĂȂ
      • +
      +
    • +
    • RLogin +
        +
      • PageantƂ̘Aĝ߂Ƀ\[XR[hQlɂĂ
      • +
      +
    • +
    +
     
    vLVڑΉ NoYesYes*8 (HTTP, TELNET, SOCKS4, SOCKS5)Yes (HTTP, TELNET, SOCKS4, SOCKS5)
    -

    - -
      -
    • [*1] ꕔMFC(C++)gpĂ邽߁AExpress Editionł̓rhłȂB
    • -
    • [*2] Tera Term s葽̐lɔzzꍇɂ͍ҁij̋‚KvBAvOC͏BȂꍇɂĂKIv𓾂邽߂Tera Termzzɂ͍ҁij̋‚KvB
    • -
    • [*3] CBSDCZXɏB
    • -
    • [*4] ACR͍̐{FɂB
    • -
    • [*5] PuTTYWinSCPȂǂŎgSSHF؃G[WFg
    • -
    • [*6] Unicode(UCS-2)MBCSƂ̑ݕϊsĂ邽߁Aꓯ\͕sBȂ킿A{Windowsœ{ȊǑ\邱Ƃ͂łȂBP[ݒɂAWindowsUTF-8ɂ钆Ƃ͉”\B
    • -
    • [*7] NAT‹ɂĈ莞ԒʐMȂƁA[^ʐMoHe[uNAĂ܂߂ɁASSHZbVؒfĂ܂Ƃۂɑ΂āAn[gr[g@\ɂ茻ۂ邱ƂłB
    • -
    • [*8] t@C(lang\*.lng)ɂ胁j[⃁bZ[W̕\؂ւ邱ƂłB؂ւ̗LɂTera Term̍ċNKvB
    • -
    • [*9] TTProxygpB
    • -
    - -

    -̂قׂ̍ȐV@\ɂ‚ĈȉɎ܂B -

    -
      -
    • ANSIJ[FύX&sA@\
    • -
    • }EXJ[\̎ʕύX
    • -
    • Ot@Cւ̃Rglj
    • -
    • Broadcast command@\
    • -
    • obt@̑SI
    • -
    • zXg̍ő咷g
    • -
    • TeraTerm Menu, LogMeTT̓
    • -
    • ZbV̕
    • -
    • XN[obt@̍ő咷g
    • -
    • GNXv[̃fBNg̃hbO&hbvɑΉ
    • -
    • 2‚߈ȍ~Tera Term̋NɂfBXN teraterm.ini ǂ
    • -
    • VisualStyle(WindowsXP)Ή
    • -
    • V^CgtH[}bg
    • -
    • O̎̐V^Cvlj
    • -
    • ftHgOt@CistrftimetH[}bggpj
    • -
    • SSHF،쐬EBU[h
    • -
    • CygTerm_CAOݒ
    • -
    • Collectorɂ^u
    • -
    • <ESC>[JɂʃNAɃJgobt@XN[AEg
    • -
    • OĐj[̒lj
    • -
    • sR[h LF ̃T|[g
    • -
    • obt@̉ʕ\̑I
    • -
    • ڑ_CAOHosthbv_Ebash styleV[gJbgL[(C-u, C-d, C-k, C-p, C-n, C-b, C-f, C-a, C-a)lj
    • +
    • [*1] Tera Term s葽̐lɔzzꍇɂ͍ҁij̋‚KvBAvOC͏BȂꍇɂĂKIv𓾂邽߂Tera Termzzɂ͍ҁij̋‚KvB
    • +
    • [*2] CBSDCZXɏB
    • +
    • [*3] ACR͍̐{FɂB
    • +
    • [*4] Unicode(UCS-2)MBCSƂ̑ݕϊsĂ邽߁Aꓯ\͕sBȂ킿A{Windowsœ{ȊǑ\邱Ƃ͂łȂBP[ݒɂAWindowsUTF-8ɂ钆Ƃ͉”\B
    • +
    • [*5] t@C(lang\*.lng)ɂ胁j[⃁bZ[W̕\؂ւ邱ƂłB
    • +
    • [*6] Cȕڍ
    • +
    • [*7] PuTTYWinSCPȂǂŎgSSHF؃G[WFg
    • +
    • [*8] TTProxygpB
    -
    - -

    CꂽIWioO

    - -
      -
    • EBhE̕84hbgiXPLUNAX^Cł94hbgj菬ƁAEBhETCYύXłȂȂ邱ƂB
    • -
    • ttpmacro.exe256oCgȏ̃R}hCp[^w肪ƁABOF(Buffer Over Flow)ŗB
    • -
    • }Nt@C 256 oCgz钷sƁABOF(Buffer Over Flow)ŗB
    • -
    • }NsɁAT[o̎Mf[^}NDDEMȂƂisetsyncR}hɂ铯ttermpro.exettpmacro.exeԂDDEʐM݂̂ɓKp邽߁jB
    • -
    • }N pause R}h̑҂Ԃ 1 bx̒x邱ƂB
    • -
    • O̎撆̃}N̎s~邱ƂB
    • -
    • }NsCPUgp100%ƂȂ邱ƂB
    • -
    • }N̏ZʂsƂȂB
    • -
    • ZMODEM̑MɂāAt@CTCY20MB𒴂ƃNbVB
    • -
    - -
    - -

    VV[gJbgL[

    - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    L[@\
    ScrollLockTera TermEBhẼXN[bN/bNigOj
    Alt + EnterEBhE̍ő剻igOj
    Alt + DZbV̕iSSH, telnet̂݁j
    Alt + GCygwinڑ
    NbN Shift+NbNy[W܂eLXgIAIς݃eLXg̈̐Lk
    Shift + }EXhbOp~iy[W܂eLXgIT|[ĝ߁j
    Alt + }EXhbOubNI
    - - -
    - -

    V݂ꂽ}NR}h

    - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    R}h@\
    connectSSHɂ鎩OCpp[^ljB
    waitregexwaitlnR}h̐K\o[WB1‚̍sɑ΂p^[}b`𐳋K\ōsƂłB
    ifdefinedϐ̃^Cv𒲂ׂ邱ƂłB
    mpause~bPʂł̃X[vsB
    sprintfCprintfCNɏw̕𐶐łB
    str2int16i̕l֕ϊł悤ɂB
    filereadt@Cw肵oCg̃f[^ǂݍށB
    clipb2varNbv{[hf[^ǂݏoB
    var2clipbNbv{[hփf[^oB
    random𐶐B
    tolowerAt@xbgɂB
    toupperAt@xbg啶ɂB
    breakforwhile[v甲B
    inputboxftHgwł悤ɂB
    rotateleftɃrbg[e[gB
    rotaterightEɃrbg[e[gB
    setenv‹ϐ̐ݒ肨ѕύXB
    filenameboxt@CI_CAO{bNXJB
    do - loop[v
    until - enduntil[v
    callmenuTera TermEChẼj[ĂяoB
    cygconnectCygwin֐ڑB
    scpsendSCPvgRŃt@C𑗐MB
    scprecvSCPvgRŃt@CMB
    getverTera Term̃o[W擾B
    setbaudVA|[g̃Xs[hύXB
    - - -
    - -

    V݂ꂽteraterm.inĩGg

    - -

    -"Tera Term"ZNVɂ‚ĈȉɎ܂B -

    - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    GgӖ
    UILanguageFileI18Ňt@C̎wBftHgEnglishB
    ConnectingTimeoutTCPڑԂŁAؒf܂ł̃^CAEgԁibjBTera Term/timeoutR}hCIvVłύX”\B
    DisablePasteMouseRButton}EX̉ENbNł̃y[Xg֎~B
    ConfirmPasteMouseRButton}EX̉ENbNł̃y[XgOɖ₢킹_CAO\B
    DisableAcceleratorSendBreakVAR\[ɂ Alt+B ɂBreakM𖳌ɂB
    ANSIColor16F̃J[e[u̐ݒB
    EnableContinuedLineCopysA@\LɂB
    MouseCursor}EXJ[\̎ʂύXB
    AlphaBlendEBhE̔xݒ肷B
    CygwinDirectoryCygwiñCXg[w肷B
    ViewlogEditorOJGfB^w肷B
    LocaleUnicode߂OS̃P[w肷B
    CodePageUnicode߂OS̃R[hy[Ww肷B
    UseNormalBGColor̔wiFXN[̔wiFƈvB
    KanjiReceive"UTF-8""UTF-8m"̒ljB
    KanjiSend"UTF-8"̒ljBUTF-8-MACł͑MNFCł悢̂"UTF-8m"͕svB
    URLColorNbJuURL̋\̐FBۂɂ͓삵ȂB
    EnableClickableUrlNbJuURLLɂB
    LogTypePlainTextO̎̃t@C` plain text iR[h܂܂ȂjɂB
    LogTimestampO̎掞ɍs̐擪ɁA̎掞OS̃^CX^v}B
    LogDefaultNameO̎掞̃ftHg̃t@Cݒ肷Bstrftime`gp”\B
    LogDefaultPathO̎掞̃ftHgpXݒ肷B
    LogAutoStartڑɎIɃO̎sB
    BroadcastCommandHistoryBroadcast Command̃R}hteraterm.ini֕ۑB
    AcceptBroadcast"off"̏ꍇABroadcast Command_CAOĂяoEBhEɂ̓R}h𑗏oȂB
    TitleFormattH[}bgID"13", "29", "45", "61"ljB
    FileSendFilterM_CAÕt@CtB^ݒ肷B
    VTCompatTabs̃^u\ VT [݊ɂB
    MaxBroadcatHistoryu[hLXgR}h̗̕ۑ
    DisableAppKeypad, DisableAppCursorAvP[VL[pbh/J[\[h𖳌ɂł悤ɂB
    ClearComBuffOnOpenVA|[g̃obt@NAȂB
    Send8BitCtrlC1 䕶 ($80-$9F) 𑗐MɎgpB
    SelectOnlyByLButton}EXhbOɂIA{^ł̂ݗLɂB
    TelAutoDetectTelnetR}ho̖
    ZmodemRcvCommandZMODEM ̎MR}h
    XmodemRcvCommandXMODEM ̎MR}h
    ConfirmFileDragAndDrophbO&hbvɂt@CM̊mF
    TranslateWheelToCursorAvP[VJ[\[h̃}EXzC[̓
    HostDialogOnStartupN "New Connection" _CAO̕\
    MouseEventTracking}EX̒ʒm
    KillFocusCursortH[JXOꂽɂJ[\\
    ConfirmChangePastes܂ރNbv{[h̃y[XgɊmF_CAO\
    MaximizedBugTweakEBhEő剻̉ʃXN[@
    - -

    -"TTSSH"ZNVɂ‚ĈȉɎ܂B -

    - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    GgӖ
    CipherOrder3DES-CBC"7"AAES128"8"AAES192"9"AAES256":"ABlowfish(SSH2)";"ljB
    ProtocolVersionSSHvgRo[W
    HeartBeatL[vACuin[gr[gjԊu
    RememberPasswordpX[h֕ێ邩ǂB
    CheckAuthListFirstF؂sOɁAT|[gĂȂFؕ𖳌ɂB
    - - diff --git a/doc/ja/html/about/emulations.html b/doc/ja/html/about/emulations.html index b3eca8cb8..80ba040c1 100644 --- a/doc/ja/html/about/emulations.html +++ b/doc/ja/html/about/emulations.html @@ -1,4 +1,4 @@ - @@ -12,7 +12,10 @@

    G~[V

      -
    • DEC VT100 VT200/300/400/500 ̈ꕔ [*1]
    • +
    • DEC VT100 VT200/300/400/500 ̈ꕔ
    • +
    • VT100 ł͑ΉĂȂ ANSI V[PX(J[w蓙)ɂΉĂ܂B
    • xtermg̐V[PX(}EXΉ256F\)ɂΉĂ܂B
    • Bold ()̕ɑ΂āAbold X^C̃tHg̎gp/sgpIłA܂Ftĕ\邱Ƃł܂B
    • @@ -21,13 +24,213 @@
    • Tektronix TEK4010 Əʋ@̈ꕔ
    +

    F

    + +Ɣwi̐Fɂ‚āB + +

    gpłF[h

    + +ݒ-EBhE̐ݒ̎̃`FbN{bNXŐݒł܂B + +e[h͓Ɏgp邱Ƃł܂B + +
      +
    • 16 color mode (PC style) / 16F[h(PC`) +
    • 16 color mode (aixterm style) / 16F[h(aixterm`) +
    • 256 color mode (xterm style) / 256F[h(xterm`) +
    + +ׂĂdisableɂ8F[hƂȂ܂B + +

    F̐ݒԂɂĎgp•s‚ωV[PX

    + +

    8F[h

    +

    +16F܂256F[ĥꂩenable̎́A1-7̐F͏ÂFƂȂĂ܂B + +

    +16F256F[ĥׂĂdisable̎8F[hƂȂA +1-7̐F͖邢F(F)ƂȂ܂B + +

      +
    • F0-7 = SGR 30-37 +
    • wiF0-7 = SGR 40-47 +
    + +

    16F[h(PC`)

    + +

    +BlinkTera TermgłB + +

      +
    • F0-7 = SGR 30-37 +
    • F8-15 = Bold + SGR 30-37 +
    • wiF0-7 = SGR 40-47 +
    • wiF8-15 = Blink + SGR 40-47 +
    + +

    16F[h(aixterm`)

    + +

    +16F[h(aixterm`) disalbe SGR100 uFƔwiF +ftHgɖ߂vƂȂ܂B + +

      +
    • F0-7,8-15 = SGR 30-37,90-97 +
    • wiF0-7,8-15 = SGR 40-47,100-107 +
    + +

    256F[h(xterm`)

    +
      +
    • F0-255 = SGR 38ŐFԍw +
    • wiF0-255 = SGR 48ŐFԍw +
    + +

    16F[h(PC`)ڍ

    + +

    +Tera Termł +FƔwiF𓯎16Fg邽߁A +F̊gBoldAwiF̊gBlinkgp܂B + +

    +wiF̊gɂBoldgĂ܂ƁA +F15+wiF1̂悤Ȏw肪s”\ɂȂ܂B + +

    +TERMINFOɏ]ďo͂Av(ncursespAv)ȂA +TERMINFO̒[Ggsetab̂悤ɂƗp”\ƂȂ܂B +

    +  setab=\E[%?%p1%{8}%<%t4%p1%d%e%p1%{16}%<%t5;4%p1%{8}%-%d%e48;5;%p1%d%;m,
    +
    + +

    F̕ύXɂ‚

    + +

    +16F̃ftHglTERATERM.INIŕύX邱Ƃł܂B +

    -[*1] DECtHg
    -LinuxTUI(Text User Interface)ȂǂŎgŕADECtHg(Tera Special font)Ƃď܂B -DECtHǵA<ESC>(0 ƂȃGXP[vV[PXŒ`ĂA -0140(0x60) ` 0176(0x7f) ɌrŃATCĂ܂B
    -Q: Q & AW -

    +J[e[}gĕύX邱Ƃł܂B + +

    ftHgF̕ύX

    + +
      +
    • TERATERM.INI [Tera Term] section +
    • ANSIColor key +
    • ŏ8F邢F(F,bright version) +
    • 8Fŏ8FÂF(͓ւȂ) + +
    + +

    16/256F[h

    + +Fԍ015́ATERATERM.INIANSIColorŐݒ肵F̕тƈقȂĂ܂B +O7Fƌ㔼7FւĂ܂(gray͓ւ܂)B +
      +
    • 0͍ +
    • 1-7͏ÂF +
    • 8gray +
    • 9-15Bright(邢)FAF +
    + +

    8F[h

    + +Fԍ08́ATERATERM.INIANSIColorŐݒ肵ŏ8FƂȂ܂B +
      +
    • 0-7͌F +
    + +

    FΉ\

    + +
    +      TERATERM.INI            16/256 color              8 color
    + 0    "Black"                 "Black"                   "Black"
    + 1    "Bright Red"            "Red"                     "Bright Red"
    + 2    "Bright Green"          "Green"                   "Bright Green"
    + 3    "Bright Yellow"         "Yellow"                  "Bright Yellow"
    + 4    "Bright Blue"           "Blue"                    "Bright Blue"
    + 5    "Bright Magenta"        "Magenta"                 "Bright Magenta"
    + 6    "Bright Cyan"           "Cyan"                    "Bright Cyan"
    + 7    "Bright White"          "White"                   "Bright White"
    + 8    "Bright Black (Gray)"   "Bright Black (Gray)"
    + 9    "Red"                   "Bright Red"
    +10    "Green"                 "Bright Green"
    +11    "Yellow"                "Bright Yellow"
    +12    "Blue"                  "Bright Blue"
    +13    "Magenta"               "Bright Magenta"
    +14    "Cyan"                  "Bright Cyan"
    +15    "White"                 "Bright White"
    +
    + +

    ]\

    + +

    +̂ƂA]\ƂȂ܂B +

      +
    • SGR 7 +
    • DECSCNM set +
    • }EXI +
    + +

    +]Lȏꍇ́A]̑OiFƔwiFŕ`悵܂B + +

    +]ȏꍇ́AOiFƔwiFւĕ`悵܂B +((R,G,B)F̔]Ƃ(255-R,255-G,255-B)gpĂ[G~[^܂) + +

    +͎̂悤ȗRł +

      +
    • Tera Term̎ȃG~[VΏۂDEC VTV[Y +
    • VTV[YŃJ[VT525̓Ɠ +
    + +

    ̑OiƔwi̐F

    + +
      +
    • ɂ͑‚Ă
    • +
        +
      • ʂȑȂ̂Normal
      • +
      +
    • ̑‚Ƃ(Reverse+BoldȂ)
    • +
    • FɊ֘A鑮́AReverse,Blink,Bold,Underline,URLA + eX̑̐Fenable̎AƎ̐Fgp
    • +
    • ̑OiƔwi̐F́A\̏̑D悳Č肷
    • +
    • UseNormalBGColor"o"‚Ă鑮́AuɕW̔wiFgvɃ`FbNĂƔwiFNormal backgp
    • +
    + +
    +| Attribute           | Fore Color     | Back Color     | UseNormalBGColor | remark         |
    +|---------------------|----------------|----------------|------------------|----------------|
    +| Fore color          | Fore color     | -              |                  | 8/16/256 color |
    +| Back color          | -              | Back color     |                  | 8/16/256 color |
    +| Blink attribute     | Blink fore     | Blink back     | o                | SGR5           |
    +| Bold attribute      | Bold fore      | Bold back      | o                | SGR1           |
    +| Underline attribute | Underline fore | Underline back | o                | SGR4           |
    +| URL attribute       | URL fore       | URL back       | o                |                |
    +| Reverse attribute   | Reverse fore   | Reverse back   |                  | SGR7           |
    +| Normal attribute    | Normal fore    | Normal back    |                  | SGR0           |
    +
    + +
      +
    • ReverseenableA]\
    • +
        +
      • Reversé̕AReverse̐Fݒ肳
      • +
      • ̑̑́̕AForeBackւ
      • +
      +
    • ReversedisablêƂA]\
    • +
        +
      • ForeBackւ
      • +
      +
    • UseTextColor=on̂ƂA
      + OiFANSI0()ANSI7()ANSI15(GRAY)ŁAwiFƓƂ +
        +
      • ReverseȂꍇ́ANormal̑OiFƔwiFgp
      • +
      • Reversȅꍇ́AReversȇOiFƔwiFgp
      • +
      +
    • +
    diff --git a/doc/ja/html/about/emulations_dec_special.html b/doc/ja/html/about/emulations_dec_special.html new file mode 100644 index 000000000..92b072d84 --- /dev/null +++ b/doc/ja/html/about/emulations_dec_special.html @@ -0,0 +1,139 @@ + + + + +DEC Special Graphics(DECOtBbN) + + + + + +

    DEC Special Graphics(DECOtBbN)

    + +

    +LinuxȂǂTUI(Text User Interface)ł́ArȂǂ̕DEC Special Graphics(DECOtBbN)Ƃđo邱Ƃ܂B +

    + +

    +DEC Special GraphicśA<ESC>(0 ƂȃGXP[vV[PXŒ`ĂA +0137(0x5f,'_') ` 0176(0x7e) ɃATCĂ܂B
    +MR[hISO8859-1ȂǓ{ȊO̎AG1DEC Special GraphicswĂ̂ŁASO(0x0e)DEC Special Graphics\邱Ƃł܂B +

    + +

    +Tera Term͓Ǝ̃tHg(t@C "TSPECIAL1.TTF", tHg "Tera Special")gpDEC Special Graphics\邱Ƃł܂B
    +Tera Specialׂ͂̕1cellłB +

    + +

    + DEC Special Graphics̕\:
    +

    +echo -e "_abcdefghijklmnopqrstuvwxyz\x7b\x7c\x7e\r\n\x1b(0_abcdefghijklmnopqrstuvwxyz\x7b\x7c\x7e\x0f\x1b(B"
    +echo -e "_abcdefghijklmnopqrstuvwxyz\x7b\x7c\x7e\r\n\x0e_abcdefghijklmnopqrstuvwxyz\x7b\x7c\x7e\x0f\x1b(B"
    + +
    +
    + gptHg: Tera Special, Myrica +
    + +
    +
    SO(LS1(Locking Shift 1)) (0x0e)
    +
    GL G1 Ăяo
    +
    SI(LS0(Locking Shift 0)) (0x0f)
    +
    GL G0 Ăяo
    +
    ESC ( 0 (0x1B 0x28 0x30)
    +
    G0 DEC Special Graphics w, GL G0 Ăяo
    +
    ESC ( B (0x1B 0x28 0x42)
    +
    G0 ASCII w, GL G0 ɌĂяo
    +
    +

    + +

    + SO(0x0e,LS1(Locking Shift 1))ŁADEC Special Graphics\Ȃꍇ́A + ISO2022ShiftFunction̐ݒ + ύXĂB +

    + +

    + web̏QƂB +

    +

    + +

    + CJK({)‹łTera Term͌rꕔ̋L2Jŕ\܂B + (͐̕ݒŕύXł܂BAdditional settings / "Encoding" ^u, Ambiguous Characters widthQƂB) +

    + +

    + AzXg̃AvP[VɂĂUTF-8GR[fBOɂ͂̕1Jŕ\Ɗ҂o͂sǍʉʏo͂ꍇ܂B
    +܂p‹ł͌r+-|gĕ\AΉĂȂ??ƕ\肵܂B
    +Tera Termł́A̕DEC Special Graphicsɋ߂镨́Agĕ\悤ɂ鎖łAɂĕ\̕y鎖ł܂B +Additional settings / "Encoding" ^u, DEC Special GraphicsŐݒł܂B
    +A}EXőIɃNbv{[hɃRs[镶{Ƃ͕ʂ̕ɂȂĂ܂Ƃp܂B +

    + +

    + DEC Special GraphicsUnicode֒uAVTEBhẼtHggpĕ\邱Ƃł܂B
    + tHgI邱ƂŁA[U[̍D݂̃fUC̕\邱Ƃł܂B
    + AtHgɃOtɓĂȂ(SCAN LINE(0x6f...0x73)Ȃ)AfUCAȂƂ܂B +

    +DEC Special Graphic - Unicode convert table
    +
    +code Unicode
    +-----+----------------------------------------------
    +0x5f U+00A0 NO-BREAK SPACE
    +0x60 U+25C6 BLACK DIAMOND
    +0x61 U+2592 MEDIUM SHADE
    +0x62 U+2409 SYMBOL FOR HORIZONTAL TABULATION
    +0x63 U+240C SYMBOL FOR FORM FEED
    +0x64 U+240D SYMBOL FOR CARRIAGE RETURN
    +0x65 U+240A SYMBOL FOR LINE FEED
    +0x66 U+00B0 DEGREE SIGN
    +0x67 U+00B1 PLUS-MINUS SIGN
    +0x68 U+2424 SYMBOL FOR NEWLINE
    +0x69 U+240B SYMBOL FOR VERTICAL TABULATION
    +0x6a U+2518 BOX DRAWINGS LIGHT UP AND LEFT
    +0x6b U+2510 BOX DRAWINGS LIGHT DOWN AND LEFT
    +0x6c U+250C BOX DRAWINGS LIGHT DOWN AND RIGHT
    +0x6d U+2514 BOX DRAWINGS LIGHT UP AND RIGHT
    +0x6e U+253C BOX DRAWINGS LIGHT VERTICAL AND HORIZONTAL
    +0x6f U+23BA HORIZONTAL SCAN LINE-1
    +0x70 U+23BB HORIZONTAL SCAN LINE-3
    +0x71 U+2500 BOX DRAWINGS LIGHT HORIZONTAL
    +0x72 U+23BC HORIZONTAL SCAN LINE-7
    +0x73 U+23BD HORIZONTAL SCAN LINE-9
    +0x74 U+251C BOX DRAWINGS LIGHT VERTICAL AND RIGHT
    +0x75 U+2524 BOX DRAWINGS LIGHT VERTICAL AND LEFT
    +0x76 U+2534 BOX DRAWINGS LIGHT UP AND HORIZONTAL
    +0x77 U+252C BOX DRAWINGS LIGHT DOWN AND HORIZONTAL
    +0x78 U+2502 BOX DRAWINGS LIGHT VERTICAL
    +0x79 U+2264 LESS-THAN OR EQUAL TO
    +0x7a U+2265 GREATER-THAN OR EQUAL TO
    +0x7b U+03C0 GREEK SMALL LETTER PI
    +0x7c U+2260 NOT EQUAL TO
    +0x7d U+00A3 POUND SIGN
    +0x7e U+00B7 MIDDLE DOT
    +
    +

    + +

    + ̃y[WQƂB +

    +

    + + + diff --git a/doc/ja/html/about/emulations_dec_special.png b/doc/ja/html/about/emulations_dec_special.png new file mode 100644 index 000000000..62b67c1aa Binary files /dev/null and b/doc/ja/html/about/emulations_dec_special.png differ diff --git a/doc/ja/html/about/foreword.html b/doc/ja/html/about/foreword.html index 50b5de803..e98f8d958 100644 --- a/doc/ja/html/about/foreword.html +++ b/doc/ja/html/about/foreword.html @@ -34,7 +34,7 @@

    -2004N9ɎɘAAN11SourceForge.jpփvWFNg𗧂グATera Term̃I[v\[X܂BTera TermI[v\[XE\tgEFAłƂ邽߂ɁABSDCZX̉"TeraTerm Project"܂B̃vWFNgTera TermpłƂĊJi߂ĂAuTera TermvƌĂ΂Ă܂B
    +2004N9ɎɘAACł̃oCizz鋖‚܂BN11SourceForge.jpփvWFNg𗧂グA"TeraTerm Project"܂B2006NɁATera TermI[v\[XE\tgEFAł邽߂ɁABSDCZX֕ύX鋖󂯂܂B̃vWFNgTera TermpłƂĊJi߂ĂAuTera TermvƌĂ΂Ă܂B
    Tera Term̃R~jeB͓{ł͂ȂACOiJi_jɂ݂A{̐E֌I[v\[XE\tgEFAƂĊĂ܂B

    diff --git a/doc/ja/html/about/glossary.html b/doc/ja/html/about/glossary.html new file mode 100644 index 000000000..b88fe7b47 --- /dev/null +++ b/doc/ja/html/about/glossary.html @@ -0,0 +1,219 @@ + + + + +pW + + + + + +

    pW

    + +
    +
    B-Plus
    +
    AJ BBSACompuServe ̂߂ɊJꂽt@C]vgRB{ł NIFTY-Serve ŎgpĂ܂B
    + +
    Kermit
    +
    AJ̃RrAwŊJꂽt@C]vgRBKermit vgRɑΉ\tgA PC, OS pɊJĂ܂B
    +Tera Term Kermit ͍̂Ƃ{I@\ĂȂ̂ŁA{Ƃ Kermit ɔׂƓ]x܂葬܂B
    + +
    Quick-VAN
    +
    { BBSAPC-VAN ̂߂ɊJꂽt@C]vgRBXMODEM vgRx[XɂĂ悤łA +]x邽߂̍HvȂĂ܂B
    + +
    Susie
    +
    + Susie ͉摜r[[ł (web)B +

    + Susie ̓vOC(Susie Plug-in)gp邱ƂŗlXȉ摜\邱Ƃł܂B +

    + +

    + Tera Term ͉摜̓ǂݍ݂ Susie Plug-in 𗘗p邱Ƃł܂B + Ⴆ΁Ajpeg ɑΉ Susie Plug-in gp΁A + jpeg ɑΉĂȂ Windowsł jpeg 摜𗘗pł܂B +

    + +

    + Tera Term Susie Plug-in ݂̂A + GDI+, OleLoadPicture(), LoadImage() + Windows ̋@\𗘗pĉ摜̓ǂݍ݂݂܂B + Windows 7 ȍ~ł Windows̋@\ jpg, gif ̓ǂݍ݂”\̂悤łB +

    +
    + +
    TEK4010
    +
    Tektronix Ђ̒[̖OłB}OvȂǂ\邱ƂłA‚Ă͉ȊwZpn̕ōLpĂ悤łB
    +݂́AX Window ‹ȂǂɎđւ‚‚܂ATEK G~[^[gpĂl͂܂܂܂(҂܂߂)B
    +啔̃[U[ Tera Term TEK G~[V@\gƂ͂Ȃł傤B
    + +
    TEK window
    +
    TEK [̃G~[VEBhEŁA^Cg̈ԉEɁuTEKvƕ\Ă܂BTera Term NƂ͕\܂B +[Control] Open TEK R}hŁATEK window JƂł܂B
    + +
    VT100
    +
    DEC Ђ̒[̖OłB‚āAUnix VAX/VMS ̃Rs[^[̒[ƂčLpĂ܂B݂́A VT100 ̂̂͂قƂ +gpĂ܂񂪁A̎dl̕WƂȂĂ邽߁APC [NXe[Vœ VT100 G~[^[Ă܂B
    +VT220 VT382 Ȃǂ́AVT100̏ʌ݊[̖OłB
    + +
    VT window
    +
    Tera Term ̃CEBhÊƂłBNƂɌEBhEŁA^Cg̈ԉEɁuVTvƕ\Ă܂B
    +VT [̃G~[V܂B
    + +
    XMODEM
    +
    1977 N Ward Christensen ɂĊJꂽt@C]vgRB̌ XMODEM/CRC, XMODEM-1k Ȃǂ̊gvgRJ܂B
    +]xxA8-bit R[hׂĂʂʐMłȂΎgpłȂȂǂ̐܂B +
    + +
    YMODEM
    +
    XMODEM gt@C]vgRB Tera Term ł͑ΉĂ܂łAVer 4.66 Ή܂B
    + +
    ZMODEM
    +
    XMODEM, YMODEM (̌`Ƃǂ߂Ȃقǂ)ǂt@C]vgRBG[@\A䕶̈ꕔʂȂɂΉA]x邽߂̍HvȂĂ܂B
    + +
    + +

    V[PX

    + +V[PXɊւp + +
    +
    Bracketed Paste Mode
    +
    + xterm gŁALANbv{[h\tɕ̑OTera Term ʂȃV[PXt܂B
    + ̓Iɂ́ADECSET 2004(<CSI>?2004h) ŗLɂȂA\tɕ̑O <ESC>200~, <ESC>201~ t悤ɂȂ܂B
    + sh ̂悤ȃVFʂɃ^Cvꂽƃy[Xgꂽʂ邱Ƃł悤ɂȂ܂B
    + Ⴆ΁A\t𖢊mƂĈnCCgŕ\AEnterL[Ŋm肷邱Ƃł܂BŃnCCg߂ɃnCCgItōēx㏑o͂ƃOɂ͓dɋL^邱ƂɂȂ܂B +
    + ֘Ay[W + +
    +
    + +

    R[h

    + +R[hɊ֘Ap + +
    +
    CJK, CJKV, AWA(East Asian)̕R[h
    + +
    +

    + ܂ޕ̌nŒB + CJK(CJKV) = Chinese(), Japanese({), Korean(؍), (Vietnamese(xgi))B +

    + +

    + CJK(CJKV)‹ł́AgpSĂ̕1oCgł͕\łȂ߁A + 12oCgŕ\_uoCggp܂B
    + UnicodeyOAeX̊‹ɍ킹R[h肳܂B +

    + +

    + DBCS +

    +| Language                      | Code(CodePage)     |
    +|-------------------------------|--------------------|
    +| Chinese (Simplified Chinese)  | GB2312(CP936)      |
    +| Chinese (Traditional Chinese) | Big5(CP950)        |
    +| Japanese                      | `Shift_JIS(CP932)` |
    +|                               | EUC(EUC-JP,CP51932)|
    +| Korean                        | KS5601(CP949)      |
    +
    + +

    + Tera Term̓xgiꊿ(`m)Ǝ̕R[hT|[gĂ܂B
    + Unicodegp\ɂ͑ΉĂ܂B +

    +TODO xgiꊿVisual StudioT|[gĂȂ? CodePageȂǂ𒲂ׂĂR[h킩Ȃ + + +

    +
    + +
    SBCS
    +
    + Single-byte character set, 1oCgZbgB
    + ő256̕\łB +
    + +
    DBCS
    +
    + Double-byte character set, 2 oCgZbgB
    + SBCSgĊȂǂ܂߂\łB
    + 1oCg̕2oCg݁̕B
    + Shift_jisDBCS1B +
    + +
    MBCS
    +
    + Multi-byte Character SetB
    + 3oCgȏ̕gpB
    + JIS, UTF-8B +
    + +
    UTF-8, UTF-8m
    +
    + UnicodeMBCSɕR[hB1byte4byteɕ܂B + +

    + U+307B + U+309A ( + (܂) = )ȂǁA + Unicodegݍ킹āA\1\邱Ƃł܂B + Tera Term 4 ł macOS̃t@CVXeHFS+ŎgpĂ + \@𕶎R[h"UTF-8m"ƂĂ܂B +

    + +

    + Tera Term 5 ł "UTF-8m" "UTF-8" ɓ܂B +

    +
    + +
    wide character, Ch
    +
    + ŏPʂ2oCgȏƂ镶\B
    + Cłwchar_t^BWindowspC/C++(Visual Studio)łwchar_t^2byteB
    + WindowsAPIł2bytẽChAR[hUTF-16LEgpB +
    +
    + +

    Windows

    + +WindowsɊ֘Ap + +
    +
    ʒmZ^[
    + +
    + ^XNo[̃X^[gj[̔Α̎vt߂̗̈łB
    + 삵ĂvÕACR\Ă܂B
    + ̕ʖ܂
    +
      +
    • ʒm̈ (Windows 10)
    • +
    • ^XNgC (Windows XPȑO)
    • +
    +
    + +
    Avʒm
    + +
    + AvP[V̒ʒm\܂B
    + ̕ʖ܂
    +
      +
    • o[ʒm (Windows10O)
    • +
    • ʒmoi[
    • +
    • g[Xgʒm
    • +
    +

    + Notify/Tray test (click to enlarge)
    +

    +
    + + + diff --git a/doc/ja/html/about/history.html b/doc/ja/html/about/history.html index 1a806b95a..5314fae36 100644 --- a/doc/ja/html/about/history.html +++ b/doc/ja/html/about/history.html @@ -25,12 +25,485 @@
  • TTXttyrec
  • TTXViewMode
  • TTXRecurringCommand
  • +
  • TTXCommandLineOpt

  • Tera Term

    +

    YYYY.MM.DD (Ver 5.4 not released yet)

    +
      +
    • ύX +
        +
      • Nbv{[h̑M(OSC 52)AMR[hőM悤ɕύXB
        + COUTF-8 ȊO̎AACPőMĂB (no issue)
      • +
      • Beep Visual Bell ̂Ƃ̃tbVԂݒł悤ɂB #333 + +
      • +
      • Setup-General ݒ Additional settings General ^u֓B #312
      • +
      • Additional settings "Coding" AʓI "Encoding" ɉ߂B #312
      • +
      • TERATERM.INI ̃obNAbvt@C̍쐬@ύXB #303
      • +
      • Unicode ̕ Unicode 16.0 ɍXVBXVOATera Term 5.0 Unicode 15.1 B #322
      • +
      • com0com(virtual serial port driver) Ports class ł͂Ȃ "COM%d" `̃VA|[gIł悤ɂB #365
      • +
      +
    • + +
    • oOC +
        +
      • LogAutoStart=on AutoWinClose=off ̎AOo͒ɐؒfĐVKڑƃG[\CB #323
      • +
      • "Log" _CAÓu~v{^삵ȂCB #334
      • +
      • obNOEhɂ teraterm EBhENbNőOʉɉߕq 1LN^IĂ܂CB #332
      • +
      • Broadcast command _CAOŃA^C[h off AqXg on ̂ƂAR}h̗ۑ鎞ɃNbVCB #314
      • +
      • MACRO: _CAOg/k̈قȂ郂j^܂ADPI܂sȂPB #277
      • +
      • Ot@CƂăt@CI_CAOŊ̃t@Cw肵ɏ㏑mF_CAO\Ȃ悤ɂB #376
      • +
      • MACRO: TTL t@C BOM Ȃ UTF-8 ̏ꍇAsłȂCB #368
      • +
      • UTF-8 U+20000 U+3FFFF 𐳂悤CB #386
      • +
      • "Drawing resized font to fit cell width" on ̂ƂATQ[gyA݂̕Ƃ\悤CB #386
      • +
      +
    • + + +
    + +

    2024.09.08 (Ver 5.3)

    +
      +
    • ύX +
        +
      • uPbgy[Xg̓ BracketedSupport BracketedControlOnly Œł悤ɂB +
          +
        • ftHgݒʼnsȂǂ܂܂ȂNbv{[hy[XgƂdɃOɏo͂ȂȂB
        • +
        +
      • +
      • _uNbNŃ[hĨhbOAEnableContinuedLineCopy 𔽉f悤ɂB
      • +
      • SelectOnActivate off łENbNɂ\t͍s悤ɂB
      • +
      • "Override Emoji Characters width" ŕωȂĜŏCB(QƂGe[uύXB)
      • +
      • ]傫tHgŕԂ邽߁AVTFontSpace ɕ̒lݒł悤ɂB
      • +
      • gp”\COM|[ĝ݂ꗗɕ\悤ɂB +
          +
        • AɎsCOM|[g͊܂܂ȂȂB
        • +
        +
      • +
      • General setup _CAOŁAIĂ t@C̏\悤ɂB
      • +
      • General setup _CAO Language ݒ폜B
      • +
      • "Default port" ݒ General setup _CAO Additional settings General ^uֈړB
      • +
      • _E[htH_̐ݒ Additional settings General ^uֈړB
      • +
      • ViewlogEditor ̈ Additional settings Log ^uɒljB
      • +
      • Setup-Font ݒ Additional settings Font ^u֓B
      • +
      • Keyboard setup _CAO Additional settings Keyboard ^uֈړB
      • +
      • TCP/IP setup _CAO Additional settings TCP/IP ^uֈړB
      • +
      • Broadcast command _CAŐPB +
          +
        • A^C[hł́AR}h̓Rg[ }EXENbNENbN 邢 Shift-INS ɂy[Xgł悤ɂB܂A̎̉s̊mF͊eEBhEł͂Ȃ_CAOōs悤ɂB
        • +
        • A^C[hł́AR}h̓Rg[ IME ON/OFF Ɋւ炸悤ɂB
        • +
        • EBhEXgɃReLXgj[AIEBhEOʂɏo ܂ ŏA EBhEXĝXV@\ljB
        • +
        • EBhEXgXVۂIԂێ悤ɂB
        • +
        • wv{^ljA{̃{^̂B
        • +
        • EBhEXg̗]ōNbN̋CB
        • +
        +
      • +
      • bZ[W{bNX̕\ʒu4.103O̓(eEBhE)ɖ߂B(ꕔ̃bZ[W{bNX)
      • +
      • "LogAutoStart=on" ŃOL^JnłȂƂAG[bZ[W\悤ɂB
      • +
      • init@C㏑ۂɎobNAbv쐬邩ǂ IniAutoBackup Őݒł悤ɂB
      • +
      • MACRO: send }NR}h͑Mf[^𔻒肵ăeLXg̓oCiƂđMBsendtext sendbinary }NR}hljB
      • +
      • MACRO: listbox R}hɃTCYw蓙̃IvVljB
      • +
      • MACRO: Tera Term VT window ̕\ԁAʒuATCY擾 getttpos R}hljB
      • +
      • MACRO: aes-256-ctr ÍgppX[ht@CT|[g + +
      • +
      • MACRO: TTLt@C𑊑΃pXŎw肵ƂAttpmacrõJgfBNg΂ň悤ɂB
      • +
      +
    • + +
    • oOC +
        +
      • SGR 1 + SGR 30 (+F)MƂAFł͂ȂDFŕ\悤CB
      • +
      • "Drawing resized font to fit cell width" on ̂ƂATQ[gyA̕Aꍇł\悤CB
      • +
      • ̕\邱Ƃ̂ŏCB
      • +
      • _uNbNŃ[hIAEnableContinuedLineCopy 𔽉f悤CB5.2ŃGoOB
      • +
      • ؂蕶_uNbNƂAAꕶI悤C(5.2ŕςĂ܂I𓮍]ƓƂȂ悤C)B
      • +
      • MR[hJIS̎A𑗐M邱Ƃ̂CB +
          +
        • s̕o͂̌CB
        • +
        • [JGR[ONAGR[Ȃ̂CB
        • +
        +
      • +
      • ffoCXCOM|[goCB4.x ƓlɃffoCXoł悤ɂȂB
      • +
      • Vڑ_CAOŁAOɎgpCOM|[gIȂ̂CB
      • +
      • Vڑ_CAOŁACOM|[gXg\[gĂȂ̂CB
      • +
      • Window setup _CAO No Frame ύXꂽꍇύXKp悤ɂB
      • +
      • ttermpro.exe /V IvVgpƏINbVCB
      • +
      • ÑEBhEő剻삷悤CB
      • +
      • OۑtH_ɁATera Term 4 ƓlɃ_E[htH_ljB
      • +
      • MACRO: send }NR}h $00 𑗐MłȂ̂ŏCB
      • +
      • MACRO: clipb2var }NR}h삵Ȃ̂ŏCB
      • +
      • MACRO: basename, dirname }NR}h̃pXUnicodeɑΉĂȂ̂ŏCB
      • +
      • MACRO: getpassword, delpassword }NR}h̃pX[ht@CUnicodeɑΉĂȂ̂ŏCB
      • +
      • MACRO: xmodemsend }NR}hŎw肵t@C݂ȂAttermpro.exe NbVȂ悤CB
      • +
      • MACRO: z̖ݒvfQƂ ttpmacro.exe NbV̂ŏCB
      • +
      • MACRO: Xe[^XEBhẼ}Nt@Cꍇ̂ŏCB
      • +
      +
    • + +
    • ̑ + +
    • +
    + +

    2024.2.29 (Ver 5.2)

    + + +

    2023.12.19 (Ver 5.1)

    +
      + + +
    • oOC +
        +
      • [JGR[ON̎ANbv{[h̃y[Xg[JGR[ȂCB
      • +
      • VT EBhEF1L[ƂAݒ肵V[PXMꂸAwvJȂ_CAOoCB
      • +
      • ڑ悩PƂ0x0a(LF)MɁAOƃ}Nɏo͂Ȃ悤ɂB
      • +
      • ZMODEM̎Mɓ{t@CgpƃAvP[VG[̂ŏCB
      • +
      • O_CAOŃftHglZbgĂȂCB
      • +
      • "Drawing resized font to fit cell width"̐ݒCB +
          +
        • ݒTERATERM.INI֕ۑĂȂ̂ŕۑ悤CB
        • +
        • UI{̂ƂA_CAO"`敝ɍ킹ăTCYtHg`"ƕ\悤ɂB +
        +
      • +
      • strjoin }NR}hŁAAϐփZbgĂCB
      • +
      • sendfile }NR}hőMĂR}hIȂCB
      • +
      • settitle }NR}hŊgpƃNbVCB + +
      • +
      +
    • + +
    • ̑ + +
    • +
    + +

    2023.10.15 (Ver 5.0)

    +
      +
    • ύX +
        +
      • Unicode B
      • +
      • ݒt@C̓ǂݍ݃tH_EOt@C̕ۑtH_ύXB
      • +
      • DPIΉ̃ftHgONɕύXB +
          +
        • TERATERM.INI Tera Term ZNV DPIAware=off Ə]ʂ̓ƂȂB
        • +
      • +
      • Underline(SGR 4)̐FƃtHgݒł悤ɂB
      • +
      • R}hCŎw肳ꂽOt@C܂͕W̃Ot@CtpXłȂꍇɂ́AOtH_܂W̃Oۑ̑΃pXƂ݂Ȃ悤ɂB
      • +
      • DECSCNM setŐF]ɁAANSIColorݒ肵̑OiFƔwiFւ悤ɂB
      • +
      • U+00A0(NBSP),U+2000..U+2003U+0020(SPACE)ɕϊĕ\悤ɂBɂtreeR}hŕȂȂB
      • +
      • XMODEM Mf[^~ςĂŜ𒲂ׂĐ悤ɏCB
      • +
      • YMODEM M҂̎AA 'C' 𖳎悤ɂB
      • +
      • ZbV𕡐Ƃɕ\EBhËʒuATERATERM.INI Ŏw肳ĂʒuɕύXB
      • +
      • Windows 11 VT EBhE TEK EBhE̊pۂȂȂ悤ɂݒljB +
      • +
      • t@Chbv_CAO Send file Binary ̃`FbN{bNX̓ύXB +
          +
        • ftHgɁATERATERM.INI TransBinݒ𔽉f悤ɂB
        • +
        • "̃hbvAs"`FbNɁAL悤ɂB
        • +
      • +
      • WOt@CɃt@CƂĕsȕ܂܂ĂꍇA'_'ɒu悤ɂB
      • +
      +
    • + +
    • oOC +
        +
      • V[PX OSC 4 ̐Fԍ 1-79-15ւĂCB
      • +
      • J[pbgύXA擾V[PXŁAFԍĂCB
      • +
      • V[PXŕꂽƂA}EXőÏ悪Ȃ悤ɏC
      • +
      • [Control]-[Reset terminal]ŕF悤CB
      • +
      • telnet(cygterm)ڑANAWS(Negotiate About Window Size)ĂƂEBhETCYĐݒ肷”\̂ŏCB
      • +
      • NbJu URL ȂƂł URL Ƀ}EXJ[\Ăƃnȟ`ɕςCB
      • +
      • VT EBhEقȂ郂j^܂ADPI܂sȂCB
      • +
      • Kermit Ńt@CMłȂƂCB
      • +
      • Kermit ̑MpPbg̃TCY𒲐B
      • +
      • ʒmACRɃtJ[̃ACRgȂCB
      • +
      • JX^ʒmACRύXĂʒmACRύXȂCB
      • +
      • SSHڑAt@Chbv̏s悤w肵ĂASCPICB
      • +
      • _CAOtHgύXAtHgI_CAOɌ݂̃tHg\ȂC
      • +
      • ̑̐ݒ_CAO̕\^ũJ[pbgύXŐȂFԍύXCB
      • +
      • O擾ɕ\郍O_CAÕwv{^ Send File ̃wv\CB
      • +
      • ]\TERATERM.INIۑƁAVTReverseColor Ɍl܂CB
      • +
      • TERATERM.INI MouseCursor ̐ݒl Additional settings _CAOɔfȂCB
      • +
      • TELNET.LOG̃t@CnhN[YłĂȂCB
      • +
      • filecreate }NR}hŊJt@Cnhǂݍ݂łȂCB4.102ŃGoOB
      • +
      • setpassword }NR}hŁApX[h𕶎œn Syntax Error ɂȂCBϐœnȂƎ󂯕tȂB
      • +
      • getpassword }NR}hŃ[UɃpX[h₢킹ē͂ȂꍇApX[hi[ϐ̓esɂȂCB
      • +
      +
    • + +
    • ̑ + +
    • +
    + +

    2021.6.5 (Ver 4.106)

    +
      +
    • ύX +
        +
      • [̍ől5001000ɕύXB
      • +
      • VA|[gڑ +
          +
        • VA|[gݒŁA1.5Xgbvrbg̃T|[g폜B
        • +
        • teraterm.ini StopBit Gg"1.5"폜B
        • +
      • +
      +
    • + +
    • oOC +
        +
      • ǑoߎԌ`̃^CX^v̌`ȂCB
      • +
      • IMȆOQƕϊ@\삷悤CB4.103ł̃GoOB
      • +
      • VT EBhE HtmlwvEBhE𓯎ɕ‚ƃAvP[VtH[gsCB
      • +
      • CfBXvCȊOŃfXNgbv摜wiɕ\łȂ̂CB4.101ł̃GoOB
      • +
      • c[`bv\̃[NCB4.103ł̃GoOB
      • +
      • yesnobox }NR}hŁAt@Cǂݍ܂ȂƂ "OK" \ĂB"yes" ɏCB4.103ŃGoOB
      • +
      • filecreate, fileopen }NR}hŊJt@CnhbNĂCB
      • +
      • getdate, gettime }NR}h timezone ‚ŌĂяoƐԂȂCBv4.105ł̃rh~XB
      • +
      +
    • + +
    • ̑ + +
    • +
    + +

    2019.12.7 (Ver 4.105)

    + + +

    2019.08.31 (Ver 4.104)

    +
      +
    • ύX + +
    • +
    • oOC +
        +
      • UTF-8MA4byteUTF-8̃fR[hĂ̂ŏCB
      • +
      • Active Window Tracking LA}EXJ[\ Tera Term ̃EBhEɈړĂAANeBuɂȂȂCB4.103ł̃GoOB
      • +
      • EBhE^Cg̃ZbVԍ1ƂȂCB4.103ł̃GoOB
      • +
      • IME̖m蕶\ĂԂŃtHgI_CAOgpIMẼtHgωCB
      • +
      • pWindowsŁAP[ݒ肪ftHg(japanese)͕sK؂ȏꍇATera TermNĂɃAvP[VtHgƂȂCB
      • +
      • [File]/[Send file..]傫ȃt@C܂MłȂCB4.103ł̃GoOB
      • +
      • 󎚒~_CAOoȂȂĂCB4.103ł̃GoOB
      • +
      • 4.103 DLL ̌ĂяoKςƂŁAȑOɃRpCꂽvOCĂяoȂȂĂCB
      • +
      • listbox }NR}hŁAEBhETCYɍ킹ăXg̉𒲐łĂȂCB4.103ł̃GoOB
      • +
      • filecopy }NR}ȟʂ result VXeϐɊi[ȂƂCB
      • +
      • filelock, fileunlock }NR}hɎsĂB4.101ł̃GoOB
      • +
      • filestrseek2}NR}hŁAt@C1oCgڂvƂAt@C|C^擪ɂȂĂȂCB4.101ł̃GoOB
      • +
      +
    • + +
    • ̑ + +
    • +
    + +

    2019.06.15 (Ver 4.103)

    +
      +
    • ύX +
        +
      • IDPIΉB +
          +
        • ftHgdisableBteraterm.ini[Tera Term]ZNVDPIAware=onƂƗLƂȂB
        • +
        • Windows 10 Version 1703ȍ~̂ݗLB
        • +
      • +
      • tHgTuj[ljA_CAÕtHgݒł悤ɂB +
          +
        • _CAOtHg̃ftHg͏]ƓtHgƂȂB
        • +
      • +
      • TEK EBhẼ|bvAbvj[\ȂCB
      • +
      • r\邽߂̃tHgt@C(TSPECIAL1.TTF)CXg[ĂȂꍇAttermpro.exeƓtH_ǂݍނ悤ɂB
      • +
      • Kermit vgRł̃t@CMAt@C쐬ł͂ȂXVʒm悤ɂB
      • +
      • MACRO: exec }NR}h̎sʂ result VXeϐɑ悤ɂB
      • +
      +
    • +
    • oOC +
        +
      • IME̕ϊEBhE̕\ʒuJ[\ʒuɒǏ]ȂCB4.102ł̃GoOB
      • +
      • U+2014 EM DASH, U+2212 MINUS SIGN, U+301C WAVE DASH ̕\łȂCB4.102ł̃GoOB
      • +
      • MACRO: exec }NR}hsƃnh[NCB
      • +
      +
    • + +
    • ̑ + +
    • +
    +

    2019.02.28 (Ver 4.102)

    @@ -189,7 +662,7 @@

    2017.11.30 (Ver 4.97)

  • DECRQSS V[PXւ̉ԈĂCB
  • Telnet ڑA[̕܂͍ 255 ̎ɃT[o֒[̃TCY`ȂCB
  • [File] j[ [View Log] ŃGfB^NȂCB
  • -
  • Additional settings _CAO Log ^uŁALog Option ݒɊւCB +
  • Additional settings _CAO Log ^uŁALog Option ݒɊւCB
    • PlainText, Timestamp ݒ肪fȂCB
    • _CAOLZɁALog Option ݒ̕ύXfCB
    • @@ -226,7 +699,7 @@

      2017.08.31 (Ver 4.96)

  • OSŔ\ɐݒ肳ĂtHgtHgݒ_CAOőIł悤ɂݒljB
  • VA|[gіOtpCvJȂAG[bZ[WŗRG[R[h\悤ɂB
  • sendlnbroadcast }NR}hŁAs𑗐M̂Ō̃p[^̌̈񂾂ɕύXB
  • @@ -284,6 +757,7 @@

    2017.05.31 (Ver 4.95)

    @@ -297,7 +771,7 @@

    2017.02.28 (Ver 4.94)

  • Ot@C &u AOĨ[Uɕϊ@\ljB
  • \tɉs𐳋K@\ljBftHgł͖B
  • setflowctrl }NR}hljB
  • @@ -364,7 +838,7 @@

    2016.08.31 (Ver 4.92)

    • \tɖ̉s폜@\ljBftHgł͖B
    • XN[obNĂ鎞AL[͂ŏɃXN[ԂZbg悤ɂB
    • ZMODEM MŁAftHg̃GXP[vΏە LF GS ljB
    • @@ -420,7 +894,7 @@

      2016.05.31 (Ver 4.91)

      • DECFI, DECBI V[PXŁAwiF(BCE)KpȂCB
      • AutoComPortReconnect=on̏ꍇɂāAꕔ̋@USBVA|[g̐ڑEؒfołȂCB
      • -
      • OE[e[gLŁÃt@CO̎悷ꍇAŏ̃t@Cw肵TCYʼn]ȂCB
      • +
      • OE[e[gLŁÃt@CO̎悷ꍇAŏ̃t@Cw肵TCYʼn]ȂCB
      • }NR}h 1 s` if ŁAp[^̖}NR}hG[ƂȂCB
      @@ -492,9 +966,9 @@

      2015.12.01 (Ver 4.89)

      -
    • Eterm look-feel: wi摜̖邳ݒł悤ɂB
    • +
    • Eterm look-feel: wi摜̖邳ݒł悤ɂB
    • ݒtH_(Setup directory) Virtual Store pXljB
    • -
    • Addtional settingsCygTermݒŁA_CAO‚ɐݒۑ̂ł͂ȂASave setup cygterm.cfg ۑ悤ɕύXB
    • +
    • Additional settingsCygTermݒŁA_CAO‚ɐݒۑ̂ł͂ȂASave setup cygterm.cfg ۑ悤ɕύXB
    • R}hCIvṼp[XύXAp[^̓rł '"' ɂNI[g”\ɂB
    • o[W_CAOURLVONbNŃuEUN悤ɂB
    • listbox }NR}hŁAԂőIĂ鍀ڂwł悤ɂB
    • @@ -539,7 +1013,7 @@

      2015.09.01 (Ver 4.88)

    • oOC
      • localhost23ԃ|[gȊȌꍇAZbV̕(Alt+D)CygwinڑƂȂCB
      • -
      • MetaL[ݒleft܂rightɐݒ肵Ă鎞ɁAKEYBOARD.CNFŐݒ肵AltL[ƃJ[\L[Insert̕ҏWL[pbhƂ̑gݍ킹gȂCB
      • +
      • MetaL[ݒleft܂rightɐݒ肵Ă鎞ɁAKEYBOARD.CNFŐݒ肵AltL[ƃJ[\L[Insert̕ҏWL[pbhƂ̑gݍ킹gȂCB
    • @@ -601,7 +1075,7 @@

      2015.02.28 (Ver 4.86)

    • YMODEM MɃ[g̃LZ𐳂ȂC
    • YMODEM ŎMt@C񂪍Ō܂Ńt@CꍇɁAۑt@C̏I[C
    • YMODEM ŎMt@CɃt@CTCYȂꍇɁAt@C̒gۑȂC
    • -
    • OE[e[g̐ݒlݒɐ\ȂCB
    • +
    • OE[e[g̐ݒlݒɐ\ȂCB
    • setdlgpos }NR}h x=0,y=0 w肵 statusbox VKɊJƁAw肵ʒuŊJȂCB
    • }Nt@CꍇɂĂA}NEBhEɍsԍ\悤ɂB܂A}NEBhETCY”\ƂB
    @@ -665,7 +1139,7 @@

    2014.08.31 (Ver 4.84)

  • ύX
  • @@ -797,7 +1271,7 @@

    2013.11.30 (Ver 4.80)

  • "New connection" _CAO\ /ES R}hCIvVljB
  • URL̓rʼnsĂ鎞ɁAqĂ̂ƂĈݒljB
  • }N
      @@ -806,7 +1280,7 @@

      2013.11.30 (Ver 4.80)

  • - +
  • oOC
  • - +
  • oOC
    • UseNomalBGColor=on̎AOSC 11(WwiFݒ)䕶̌OSC 111(WwiFZbg)䕶ő̑t̔wiFZbgȂCB
    • @@ -888,13 +1362,13 @@

      2013.05.31 (Ver 4.78)

    • ύX
    • @@ -1450,7 +1924,7 @@

      2010.5.31 (Ver 4.66)

    • VA|[gڑ̃{[[gIȊO͏o悤ɂB
    • VPB, HPB V[PXɑΉB
    • @@ -1604,11 +2078,11 @@

      2009.7.5 (Ver 4.63)

    • ΉĂȂUnicode̕ChƂĈݒł悤ɂB
    • MR[hUTF-8܂UTF-8m̎Arꕔ̋LDECꕶ̋߂ő֕\ł悤ɂB֕\镶͊‚̎ނɕނAޖɕϊ邩ݒłB
        @@ -1960,9 +2434,11 @@

        2008.2.29 (Ver 4.58)

    • }EX̒ʒmɑΉB
    • -
    • Broadcast CommandɃA^C[hljBTeraTermEBhEɂׂẴL[͂𑗂邱Ƃł邽߁AviȂǂ”\ƂȂBTeraTerm ProAVX^gɋ߂@\B +
    • Broadcast CommandɃA^C[hljBTeraTermEBhEɂׂẴL[͂𑗂邱Ƃł邽߁AviȂǂ”\ƂȂBTeraTerm ProAVX^gɋ߂@\B
      • Broadcast Command_CAO"Realtime mode"`FbN{bNXljBftHgonB
      • TeraTermEBhEI”\ȃXg{bNXljB_uNbNŃACȇSIёS”\igOjB
      • @@ -1977,7 +2453,7 @@

        2008.2.29 (Ver 4.58)

      • Font linking 듮̃pb`ljBnaohɊӂ܂B
      • }EX̉ENbNAlt+VŃNbv{[h̓e\tƂɁAsR[h܂܂ĂAmF_CAOo悤ɂB둀ɂA[֗\ʃR}hhƂłB
      • EBhËʒuۑIvVljB
          @@ -2005,7 +2481,7 @@

          2008.2.29 (Ver 4.58)

        • o[XrfIV[PX(DECSCNM)Ȃ̂CB
        • EBhEő剻ԂŁAteraterm.ini֕ۑsƁAő剻TerminalSizeۑĂoOCB
        • t@C`FbN郋[`ŁA0x5C 0x7C Ȃǂ܂ރ}`oCgsȕƔ肷CB
        • -
        • |[g^Cv"serial"̏ꍇATeraTerm̋NɎڑȂoOCBSteven YangɊӂ܂Bcf. TeraTerm com auto connect bug
        • +
        • |[g^Cv"serial"̏ꍇATeraTerm̋NɎڑȂoOCBSteven YangɊӂ܂Bcf. TeraTerm com auto connect bug
        • ANSI Color ݒ̕ύXɔfȂ̂CB
        • GXP[vV[PXɂ^CgύXA]v'\'\ꍇ̂CB
        • }NR}h 'getver' ljB
        • @@ -2036,7 +2512,7 @@

          2008.1.15 (Ver 4.57)

        • }NR}h 'cygconnect' ljB
        • }NR}h 'getdate, gettime ŁAwł悤ɂB
        • }NR}h 'scpsend' ljB
        • -
        • }NR}h 'scpsrecv' ljB
        • +
        • }NR}h 'scprecv' ljB
        • t@C̃hbOAhhbvɊmF邩ǂIł悤ɂB
          • teraterm.ini ConfirmFileDragAndDrop ljBftHgonB
          • @@ -2046,7 +2522,7 @@

            2008.1.15 (Ver 4.57)

          • ZMODEMɂt@CMɁAłɃT[oɓt@C݂ꍇAt@Cnh̓dN[YĂoOCB
          • telnet L[vACu thread-safe ɂȂĂȂCB
          • Terminal Setup New-line (transmit) 󗓂ɂȂCB
          • -
          • Dell USB L[{[hŖL[ȂƂɑΉB
            cf. http://www.neocom.ca/forum/viewtopic.php?p=2565
          • +
          • Dell USB L[{[hŖL[ȂƂɑΉB
            cf. http://www.neocom.ca/forum/viewtopic.php?p=2565
          • SSH2ΉTTSSH(2.45)֍ւ
          • CygTerm+ 1.07_14֍ւ
          • Oniguruma 5.9.1֍ւ
          • @@ -2099,8 +2575,8 @@

            2007.12.4 (Ver 4.56)

          • EBhE̓x 255 ɕύXłȂCB
          • T[o瑗M^Cg̖ 1 CB
          • New connection _CAO Telnet ڑJnƂATCPLocalEcho/TCPCRSend ̐ݒ肪gpĂ܂ƂCB
          • -
          • psARs[Lɐݒ肵Ă鎞Ae[uRs[삵ȂꍇCB
          • -
          • DeleteL[DEL𑗐Mݒ Num Lock ̏Ԃ Off ̎AlL[pbh"."DELMĂ̂CB
          • +
          • psARs[Lɐݒ肵Ă鎞Ae[uRs[삵ȂꍇCB
          • +
          • DeleteL[DEL𑗐Mݒ Num Lock ̏Ԃ Off ̎AlL[pbh"."DELMĂ̂CB
          • }N wait R}h҂ĂȂȂĂ̂CB4.54ł̃GoOB
          • EBhE̐ݒ_CAÕJ[ݒŁAl15ȉ̎PageUpL[255ɂȂ̂CB
          • COM|[gԍtւꍇɁAWXgɎcĂÂFriendlyName\Ă܂CBpb`쐬Ɋӂ܂xoxo
          • @@ -3098,6 +3574,245 @@

            1994.2.24 (Ver 0.0)

            TTSSH

            +

            YYYY.MM.DD (Ver 3.4 not released yet)

            +
              + + + + + +
            + +

            2024.09.08 (Ver 3.3)

            +
              +
            • ύX +
                +
              • FؗvɑΉB +
                  +
                • R}hCIvVŕ̔F؏󂯎Ȃ߁AOCE}N̐ڑEZbV̕ɂ͑ΉĂȂB
                • +
                +
              • +
              • IvV(/f, /ssh-f, /ssh-consume, /keyfile)̃t@C΃pXłȂƂ́A%APPDATA%\teraterm5\ ̑΃pXƂĈ悤ɕύXB
              • +
              • 閧t@CUnicodegpł悤CB
              • +
              +
            • + +
            • oOC + +
            • + +
            • ̑ +
                +
              • LibreSSL 3.9.2 ֍ւB
              • +
              +
            • +
            + +

            2024.2.29 (Ver 3.2)

            +
              + + + + +
            • ̑ +
                +
              • LibreSSL 3.8.2 ֍ւB
              • +
              • zlib 1.3.1 ֍ւB
              • +
              +
            • +
            + +

            2023.12.19 (Ver 3.1)

            +
              +
            • ύX + +
            • + +
            • oOC +
                +
              • 閧̃t@CɊ܂܂ĂSSHZbV𕡐łȂCB
              • +
              • SCPMt@CUnicodeɑΉĂȂCB
              • +
              +
            • + + +
            + +

            2023.10.15 (Ver 3.0)

            +
              +
            • ύX +
                +
              • SSH2 rsa-sha2-256, rsa-sha2-512 zXgiRSA / SHA-2 jT|[gB
              • +
              • SSH2 rsa-sha2-256, rsa-sha2-512 JFؕiRSA / SHA-2 jT|[gB
              • +
              • RFC 9142 ̊ɂASSH2 diffie-hellman-group1-sha1, diffie-hellman-group-exchange-sha1 ASYftHgŖɂB
              • +
              • L[vACupPbg̑MԊũftHg 300 bɕύXB
              • +
              • TTSSH ʒmƂɂ TTSSH ̃ACRg悤ɂB
              • +
              • SSH_CAÕftHǧ` ED25519 ɕύXB
              • +
              +
            • + +
            • oOC +
                +
              • SSH2_Ci~bN|[gtH[fBOgpƈُICB
              • +
              • lbg[NȏꍇɁASCP ̎MI܂Ńt@Cւ݂̏sꂸAgpʂ艞ȂȂCB
              • +
              • SCP ̃`l SSH_MSG_CHANNEL_EXTENDED_DATA MƂAʏ SCP f[^ƂďsN”\CB +
                  +
                • [g̃bZ[We̓o[ʒmŕ\悤ɂB
                • +
              • +
              • Č̍Œɔ SSH_MSG_CHANNEL_DATA ̑MjAɂ܂Ƃ߂đM悤ɂB
              • +
              • Authentication Setup _CAOJƂɁASSH F؂Ɏgp郆[Uݒ肪 "Use default username" (DefaultUserType=1) Ȃ̂ "Do not enter username" ICB
              • +
              +
            • + +
            • ̑ +
                +
              • ÍCu OpenSSL LibreSSL 3.7.3 ֕ύXB
              • +
              • zlib 1.3֍ւB
              • +
              +
            • +
            + +

            2021.6.5 (Ver 2.92)

            +
              +
            • ύX +
                +
              • SSH2 ̋ʌÍ chacha20-poly1305@openssh.com ljB
              • +
              • PuTTY ̔閧t@C`o[W3 (PPK3) ɑΉB
              • +
              +
            • + +
            • oOC +
                +
              • Windows Vistaȍ~Virtual StoreL̏ꍇłHost key rotationL̏ꍇAknown_hosts猳XzXg폜Ă܂CB
              • +
              • Windows Vistaȍ~Virtual StoreL̏ꍇAzXg̎ނŁA̓eقȂƂɁAknown_hostš폜łȂCB
              • +
              • D&DɂSCPMŁÃt@CꊇMƃG[ɂȂCB
              • +
              • [UF؂VTEBhẼTCYύX Send break 𑗐M肷ƁAT[oؒfCB
              • +
              • VXẽsĂ鎞ÃzXgɂ鏐؂ŕsȏ𐳂ƂĈ”\LCB
              • +
              • SSHF؃_CAOňꕔ̃Rg[ɗLɂȂCB
              • +
              +
            • + +
            • ̑ +
                +
              • OpenSSL 1.1.1d1.1.1k֍ւB
              • +
              +
            • +
            + +

            2019.12.7 (Ver 2.91)

            +
              +
            • ύX + +
            • + +
            • oOC +
                +
              • bZ[W{bNX̕\ɓꃁbZ[W܂܂邱ƂCB
              • +
              • known_hosts_CAO̕\SSHT[olbg[NؒfƁAAvNbV邱ƂCB
              • +
              • SSH1: /nosecuritywarningIvV@\ĂȂCB
              • +
              • [UF؃_CAOŁA[U͌TABL[ŃpXt[Yւ̈ړɒxPB
              • +
              • [UF؃_CAOŁA[U󗓂ɂATABL[ʼnẼv_Ej[ɃtH[JXړȂƂCB
              • +
              • |[g]ŁANCAgɃf[^𑗂IOɐڑؒfꍇCB
              • +
              • ڑ܂ł̊ԁAȂvZXIDTTSSH.LOGɋL^CB
              • +
              • F؃oi[US-ASCIIȊO̕܂܂鎞ɐ\łȂCB
              • +
              +
            • + +
            • ̑ +
                +
              • OpenSSL 1.0.2s1.1.1d֍ւB
              • +
              +
            • +
            + +

            2019.08.31 (Ver 2.90)

            +
              + + +
            • oOC +
                +
              • SSH2: |[g]SSHʐMxꍇɂāA剻ăAvCB
              • +
              • SSH2: SCP ]_CAO‚ƂɁAt@C]fBNgݒESCPMpXݒ肪XVȂƂCB
              • +
              • SSH2: Windows95/98/MeSCPʐMJnƁAAvCB
              • +
              • SSH1: ڑ̃|[gԍ22ȊOŁAVKknown_hostst@CփzXgގAAv邱ƂCB
              • +
              • SSH1: rhostsF؂łȂȂĂCB
              • +
              +
            • + + +
            + +

            2019.06.15 (Ver 2.89)

            +
              +
            • ύX +
                +
              • ftHg̃[U Windows ̃OI[Uݒł悤ɂB +
              • +
              • F؃_CAOpXt[Y͗Ő䕶gp邩ǂIł悤ɂB
              • +
              +
            • + +
            • oOC +
                +
              • ݒ̕ۑACipherOrder, MacOrder ݒɃS~tCB
              • +
              • T[o̔F؏񃁃bZ[W echo tO 1 ̎ɂL[{[hC^NeBuF؃_CAOŃpX[h}XNCB
              • +
              +
            • + +
            • ̑ +
                +
              • OpenSSL 1.0.2s֍ւB
              • +
              +
            • +
            +

            2019.02.28 (Ver 2.88)

            • ύX @@ -3174,7 +3889,7 @@

              2018.02.28 (Ver 2.84)

              • teraterm.ini AuthBanner GgljBftHg 1B(VTEBhEŕ\)
            • -
            • Diffie-Hellman group exchane ł̍ŏO[vTCY 2048 ɕύXB(RFC 8270) +
            • Diffie-Hellman group exchange ł̍ŏO[vTCY 2048 ɕύXB(RFC 8270)
              • ȑO̓ɖ߂ɂ́Ateraterm.ini GexMinimalGroupSize Gg 1024 ɂB
            • @@ -3345,7 +4060,7 @@

              2016.05.31 (Ver 2.77)

            • oOC
                -
              • blowfish-ctr ʌÍŎgp錮̌ RFC 4344 ɍ킹 256 rbgɕύXB
              • +
              • blowfish-ctr ʌÍŎgp錮̌ RFC 4344 ɍ킹 256 rbgɕύXB
              • łׂĂ̕LɂĂ鎞ɍŌ̕gȂCB
              • X11]̊JnڑG[(WSANO_RECOVERY: 11003)Ŏs邱ƂCB
              @@ -3543,12 +4258,18 @@

              2014.06.01 (Ver 2.69)

              • ύX
                  -
                • Curve25519ȉ~ȐDHiDiffe HellmanjASYgT|[gB +
                • Ed25519 ɂJF؂T|[gB
                • +
                • Ed25519 T[ozXgT|[gB
                    -
                  • Key Generator ED25519 ̍쐬ɑΉB
                  • -
                  • Key Generator RSA/DSA/ECDSA 閧t@C bcrypt KDF `I”\ƂB
                  • -
                  • Host Key algorithm ED25519 ljBteraterm.ini HostKeyOrder GgύXB
                  • -
                • +
                • teraterm.ini HostKeyOrder GgύXB
                • +
                +
              • +
              • Key Generator ED25519 ̍쐬ɑΉB +
                  +
                • Ed25519 閧t@C bcrypt KDF `ŕۑ܂B
                • +
                +
              • +
              • Key Generator RSA/DSA/ECDSA 閧t@CۑƂ bcrypt KDF `I”\ƂB
              • "About TTSSH" _CAOɃzXgJ̎w䂨у_A[g\悤ɂB
              • [IvVONLCRݒT[oɒʒm悤ɂB
              @@ -3575,7 +4296,7 @@

              2014.02.28 (Ver 2.68)

            • SCPŃt@C] Tera Term EBhE̍ŏŒfB
            - +
          • ̑
            • OpenSSL 1.0.1f֍ւ
            • @@ -3600,7 +4321,7 @@

              2013.09.01 (Ver 2.66)

            • SSH SCP: SCPt@CMfBNgύXہAteraterm.ini FileDir GgXV悤ɂB
          • - +
          • ̑
            • PuTTY 0.63֍ւ
            • @@ -3964,7 +4685,7 @@

              2008.12.16 (Ver 2.49)

              • ύX
                  -
                • SSH2 ̋ʌÍ AES128-CTR, AES192-CTR, AES256-CTR, Arcfour, Arcfour128, Arcfour256, CAST128-CBC ljBZLeBΉ: CPNI-957037 +
                • SSH2 ̋ʌÍ AES128-CTR, AES192-CTR, AES256-CTR, Arcfour, Arcfour128, Arcfour256, CAST128-CBC ljBZLeBΉ: CPNI-957037
                  • teraterm.ini CipherOrder Gg"<", "=", ">", "?", "@", "A", "B" ljB
                • @@ -4013,7 +4734,7 @@

                  2008.2.29 (Ver 2.46)

                • Mt@C͒ړ
              • -
              • Pageant(an SSH authentication agent for PuTTY, PSCP and Plink) gpJF؂ɑΉB +
              • Pageant(an SSH authentication agent for PuTTY, PSCP and Plink) gpJF؂ɑΉB
                • R}hCIvV /auth pageant ljB
              • @@ -4083,7 +4804,7 @@

                2007.10.14 (Ver 2.43)

                2007.9.30 (Ver 2.42)

                • New connection _CAOŎgp̃VA|[g\Ȃ悤ɂB
                • -
                • pX[hF؂IĂƂ keyboard-interactive F؂gp̂߂BɔAAuthentication Setup _CAO keyboard-interactive `FbN{bNX폜Bkeyboard-interactive F؂gp邽߂ɂ́Achallange/response IKvB
                • +
                • pX[hF؂IĂƂ keyboard-interactive F؂gp̂߂BɔAAuthentication Setup _CAO keyboard-interactive `FbN{bNX폜Bkeyboard-interactive F؂gp邽߂ɂ́Achallenge/response IKvB
                • New connection _CAO Host hbv_EŁACtrl+p, Ctrl+n, Ctrl+b, Ctrl+f, Ctrl+a, Ctrl+e V[gJbgL[T|[gBꂼꁪ, , , , Home, End L[ɑΉB
                • pPbgMTCPRlNVؒf̌댟oȂ悤ɂB
                • ŎgpĂ镶n֐̃ZLAo[Wւ̑Su{B @@ -4571,7 +5292,7 @@

                  v1.06_03 2006/08/15 (by doda)

                  v1.06_02 2006/02/09 (by babydamons@yahoo.co.jp)

                  • CygTerm̃ACR쐬܂Bi"DotWork 2.50"ɂč쐬j
                    - DotWork 2.50" ͉ELURL”\łB http://www5a.biglobe.ne.jp/~suuta/.
                    + DotWork 2.50 ͉ELURL”\łB http://www5a.biglobe.ne.jp/~suuta/.
                    ΂炵\tgEFAJĂA"suuta at hamal dot freemal dot ne dot jp"ɊӒv܂B
                  • MakefileC܂B"clean"^[Qbgcygterm.ico폜Ȃ悤ɁB
                  @@ -4674,6 +5395,38 @@

                  2007.8.8 (Ver 1.00)

                  TTProxy

                  +

                  2019.12.7 (Ver 1.0.0.26)

                  +
                    + + +
                  • oOC +
                      +
                    • HTTPvLVڑG[ƂȂAXe[^XR[h400,401,403,405,406,407ȊOꍇAbZ[W{bNXɃS~\CB
                    • +
                    +
                  • +
                  + +

                  2019.08.31 (Ver 1.0.0.25)

                  +
                    +
                  • ύX +
                      +
                    • SOCKS4/5ƃlSVG[VsꍇAG[bZ[WɒljB
                    • +
                    +
                  • + +
                  • oOC +
                      +
                    • OSɂĐݒ_CAO삵ȂsCBteraterm 4.103ł̃GoOB
                    • +
                    • zXg̐ݒ肪hC̏ꍇɂāAIPv6/IPv4tH[obN삵ȂCBAvLVT[oɐڑłȂꍇAConnection refused_CAO3A\CB
                    • +
                    • SOCKS4/5ƃlSVG[VɁASOCKST[of[^MłȂꍇAG[ɂłĂȂƂCB
                    • +
                    +
                  • +
                  +

                  2016.11.30 (Ver 1.0.0.24)

                  • HTTP vLVŔF؂gpƐڑɗCB
                  • @@ -4781,6 +5534,46 @@

                    2006.8.1 (Ver 1.0.0.8)

                    TeraTerm Menu

                    +

                    2024.7.7(Ver 1.20)

                    +
                      +
                    • pX[hÍĕۑLockBoxljB
                    • +
                    • Details_CAOŎst@C"ttermpro.exe"܂܂Ăꍇ"use SSH"̃`FbN{bNXONɂȂ鏈ȂB
                    • +
                    • List Configuration_CAÕ^Cǧ뎚CB(Cofiguration -> Configuration)
                    • +
                    • hLgɏRk̃XNMB
                    • +
                    + +

                    2024.2.29 (Ver 1.19)

                    +
                      +
                    • ڑ悪o^ĂȂƂA"(none)"\Ȃ̂ŏCB
                    • +
                    • ttermpro.exe ̃pX Win.ini ǂݍ܂Ȃ悤CB
                    • +
                    + +

                    2023.12.19 (Ver 1.18)

                    +
                      +
                    • gpĂWin32 API UnicodełɕύXAUnicodeɕύXB
                    • +
                    • TeraTerm MenuNvÖ̏ȂB
                    • +
                    • ]̐ݒp悤init@CRs[悤ɂB
                    • +
                        +
                      • ttpmenu.exeƓpX ttpmenu.ini ݂ + %APPDATA%\teraterm5\ttpmenu.ini ݂Ȃꍇ
                      • +
                      +
                    • |[^uœ(exetH_portable.ini݂)ɑΉB
                    • +
                    • %APPDATA%\teraterm5\ttpmenu.ini 0byte̎AUTF-16 LE BOM ނ悤ɂB
                    • +
                    • ttpmenu.inĩt@C̏ȂB
                    • +
                    • o[W\ɐݒ肪WXg/inîǂ炩\悤ɂB
                    • +
                    + +

                    2023.10.15 (Ver 1.17)

                    +
                      +
                    • 260 ȏ̈ ttermpro.exe ɓn悤ɂB
                    • +
                    + +

                    2021.6.5 (Ver 1.16)

                    +
                      +
                    • Xg֓o^{^̃c[`bv̕Register, UnregisterɕύXB
                    • +
                    • o[Wɗ]vȁ\ĂCB
                    • +
                    +

                    2017.11.30 (Ver 1.15)

                    • ttpmenu.ini gĂꍇɂׂẴzXgݒ薼i[obt@TCYg(2.6KB -> 10KB)B
                    • @@ -4871,6 +5664,16 @@

                      2004.12.8 (Ver 0.94r2)

                      TTX KanjiMenu

                      +

                      2024.9.6 (Ver 0.1.9)

                      +
                        +
                      • j[̍쐬̃R[hB
                      • +
                      + +

                      2021.6.5 (Ver 0.1.8)

                      +
                        +
                      • ؍ꃂ[h UTF-8m \ȂCB
                      • +
                      +

                      2016.11.30 (Ver 0.1.7)

                      • R[hύXATera Term̓̊R[h֘ȀԂNA悤ɂB
                      • @@ -4931,9 +5734,21 @@

                        2008.12.16 (Ver 1.00)

                      TTXResizeMenu

                      +

                      2022.10.15 (Ver 1.07)

                      +
                        +
                      • Tera Term 5.0ɑΉB
                      • +
                      • zXgɐڑĂȂԂŐ삵ȂCB
                      • +
                      + +

                      TTXResizeMenu

                      +

                      2019.12.7 (Ver 1.06)

                      +
                        +
                      • j[16Ԗڈȍ~̃ANZXL[Ă̂CB
                      • +
                      +

                      2018.11.30 (Ver 1.05)

                        -
                      • EChETCY𑝌ׂ̃j[IDljB(V[gJbgL[`p)
                      • +
                      • EBhETCY𑝌ׂ̃j[IDljB(V[gJbgL[`p)

                      2018.08.31 (Ver 1.04)

                      @@ -4963,6 +5778,17 @@

                      2008.12.16 (Ver 1.00)

                    TTXttyrec

                    +

                    2023.10.15 (Ver 1.05)

                    +
                      +
                    • R}hCĐƂA[Replay again] gȂCB
                    • +
                    • ttyt@CĐɁAʂTera Term瓯ttyt@CĐł悤ɂB
                    • +
                    + +

                    2019.12.7 (Ver 1.04)

                    +
                      +
                    • Vim ̕ҏWʂĐA\Ȃ Pause Đx̕ύXNCB
                    • +
                    +

                    2017.02.28 (Ver 1.03)

                    • ĐIAēxĐׂ [Replay again] [File] j[ɒlj悤ɂB
                    • @@ -5033,5 +5859,12 @@

                      2009.6.30 (Ver 1.00)

                    • ŁB
                    +

                    TTXCommandLineOpt

                    + +

                    2023.10.30

                    +
                      +
                    • /FG=, /BG= IvVȂ̂ŏC
                    • +
                    + diff --git a/doc/ja/html/about/image/notify_tray_test.png b/doc/ja/html/about/image/notify_tray_test.png new file mode 100644 index 000000000..65604dc39 Binary files /dev/null and b/doc/ja/html/about/image/notify_tray_test.png differ diff --git a/doc/ja/html/about/jargons.html b/doc/ja/html/about/jargons.html deleted file mode 100644 index 557032d8d..000000000 --- a/doc/ja/html/about/jargons.html +++ /dev/null @@ -1,100 +0,0 @@ - - - - -pW - - - - - -

                    pW

                    - -
                    -
                    zXg
                    -
                    ̃wvł́Aڑ̃Rs[^(zXgERs[^)̂ƂzXgƂ܂B
                    - -
                    zXg
                    -
                    Telnet Őڑ̃zXgw肷邽߂Ɏgp閼OłB"." ŋ؂ꂽ̕ō\܂(: "host.domain.xx.jp")B
                    -ԍŏ̓̕zXgERs[^̖O\Aȍ~͂̃Rs[^lbg[N⍑\܂B -zXgɂ͂ɑΉ IP AhX܂B
                    - -
                    vgR
                    -
                    ̃wvł́uKvAuKivƂӖł̌tgĂ܂B
                    - -
                    B-Plus
                    -
                    AJ BBSACompuServe ̂߂ɊJꂽt@C]vgRB{ł NIFTY-Serve ŎgpĂ܂B
                    - -
                    BBS
                    -
                    Bulletin Board System (fƒVXe)̗BNiftyServe ̂悤ȁAp\RʐMT[rX̂ƂłB
                    - -
                    DOS/V (hXEuCj
                    -
                    {ACEr[EGJ{ DOS (fBXNIy[eBOVXe)BuDOS/V p\Rv DOS/V ɑΉ IBM PC/AT ݊@̑̂ł(O̐lɁuDOS/VvƂĂĂʂ܂)B
                    - -
                    IBM PC/AT
                    -
                    IBM Ђ PC ̖OłB PC/AT ̂̂͐Ă܂񂪁Aƌ݊‚\コ PC (IBM PC/AT ݊@)݂ł -EōLgp‚ÂĂ܂B
                    - -
                    IP AhX
                    -
                    Telnet ŐڑzXgw肷邽߂Ɏgp4‚̗̐łB4‚̐ "." ŋ؂܂(: 11.11.11.11)BIP AhX͊oɂ̂ŁA -ɃzXgw肵Đڑ֗łB
                    - -
                    Kermit
                    -
                    AJ̃RrAwŊJꂽt@C]vgRBKermit vgRɑΉ\tgA PC, OS pɊJĂ܂B
                    -Tera Term Kermit ͍̂Ƃ{I@\ĂȂ̂ŁA{Ƃ Kermit ɔׂƓ]x܂葬܂B
                    - -
                    PC98
                    -
                    ‚ẮANEC PC98XX V[Y PC ̗ƂĎgĂ܂Aŋ߂ł̓}CN\tg̍肵 PC ̃n[hEFAdl̖OƂĂgĂ܂(҂͊֌W܂)B܂ 1997 N̖琢ɂł NEC PC98 NX V[Y PC ́A҂̎dlɂ̂ IBM PC/AT ݊@( uDOS/V p\Rv)Ƃقړ̂ƍlĂ悢ł傤BPC98 NX Tera Term CXg[鎞̓L[{[h̎ނ uIBM PC/AT L[{[hvw肵ĂB
                    - -
                    PPP (_CAAbvڑ)
                    -
                    Point-to-Point Protocol ̗ŁAVAdb̂悤ȈΈɂ TCP/IP ̃lbg[NvgR邽߂̋KiłB -dbƂāuC^[lbgvꍇɒʏ PPP g܂B
                    - -
                    Quick-VAN
                    -
                    { BBSAPC-VAN ̂߂ɊJꂽt@C]vgRBXMODEM vgRx[XɂĂ悤łA -]x邽߂̍HvȂĂ܂B
                    - -
                    TCP/IP
                    -
                    C^[lbgŎgpĂf[^]𐧌䂷邽߂̃vgRB
                    - -
                    TEK4010
                    -
                    Tektronix Ђ̒[̖OłB}OvȂǂ\邱ƂłA‚Ă͉ȊwZpn̕ōLpĂ悤łB
                    -݂́AX Window ‹ȂǂɎđւ‚‚܂ATEK G~[^[gpĂl͂܂܂܂(҂܂߂)B
                    -啔̃[U[ Tera Term TEK G~[V@\gƂ͂Ȃł傤B
                    - -
                    TEK window
                    -
                    TEK [̃G~[VEBhEŁA^Cg̈ԉEɁuTEKvƕ\Ă܂BTera Term NƂ͕\܂B -[Control] Open TEK R}hŁATEK window JƂł܂B
                    - -
                    Telnet
                    -
                    TCP/IP gpAzXgRs[^ƒ[ڑ邽߂̃vgRBŋ߂́ANifty-Serve Ȃǂ BBS ɐڑ邽߂ɂgpĂ܂B
                    - -
                    VT100
                    -
                    DEC Ђ̒[̖OłB‚āAUnix VAX/VMS ̃Rs[^[̒[ƂčLpĂ܂B݂́A VT100 ̂̂͂قƂ -gpĂ܂񂪁A̎dl̕WƂȂĂ邽߁APC [NXe[Vœ VT100 G~[^[Ă܂B
                    -VT220 VT382 Ȃǂ́AVT100̏ʌ݊[̖OłB
                    - -
                    VT window
                    -
                    Tera Term ̃CEBhÊƂłBNƂɌEBhEŁA^Cg̈ԉEɁuVTvƕ\Ă܂B
                    -VT [̃G~[V܂B
                    - -
                    Winsock
                    -
                    Windows Sockets ̗BMS-Windows TCP/IP ‹邽߂̃\tgEGA̋KiBWINSOCK.DLL ܂ WSOCK32.DLL Ƃt@C܂ރ\tg Windows ɃCXg[ƁAtelnet, WWW, ftp Ȃǂ TCP/IP gpAvP[Vgp”\ɂȂ܂B
                    -Windows 95 Windows NT ɂ Winsock Ή\tg(hCo[)WYtĂ܂B
                    - -
                    XMODEM
                    -
                    1977 N Ward Christensen ɂĊJꂽt@C]vgRB̌ XMODEM/CRC, XMODEM-1k Ȃǂ̊gvgRJ܂B
                    -]xxA8-bit R[hׂĂʂʐMłȂΎgpłȂȂǂ̐܂B -
                    - -
                    YMODEM
                    -
                    XMODEM gt@C]vgRB Tera Term ł͑ΉĂ܂łAVer 4.66 Ή܂B
                    - -
                    ZMODEM
                    -
                    XMODEM, YMODEM (̌`Ƃǂ߂Ȃقǂ)ǂt@C]vgRBG[@\A䕶̈ꕔʂȂɂΉA]x邽߂̍HvȂĂ܂B
                    - -
                    - - - diff --git a/doc/ja/html/about/module.html b/doc/ja/html/about/module.html index 1cde61095..a3f6ae759 100644 --- a/doc/ja/html/about/module.html +++ b/doc/ja/html/about/module.html @@ -104,7 +104,7 @@

                    CygTerm+

                    \[XR[h - ja.osdn.net QƂĂB + GitHub QƂĂB @@ -188,38 +188,5 @@

                    TTX KanjiMenu

                    -

                    LogMeTT

                    -

                    -}NgĂ̎cx郉`[\tgłB -

                    - - - - - - - - - -
                    JBoris Maisuradze(NeoCom Ltd.)
                    CZXE쌠 LogMeTT_license.txt QƂĂB
                    - - -

                    Collector

                    -

                    -AvP[V^u\tgłB -

                    - - - - - - - - - -
                    JHiroshi Takahashi
                    CZXE쌠 Collector\readme.txt QƂĂB
                    - - - diff --git a/doc/ja/html/about/qanda.html b/doc/ja/html/about/qanda.html index edfb70f89..efe6b0127 100644 --- a/doc/ja/html/about/qanda.html +++ b/doc/ja/html/about/qanda.html @@ -19,13 +19,12 @@

                    Q. Tera Term ̍ŐVł͂ǂœ”\?
                    -A. https://ttssh2.osdn.jp/ł܂B
                    -(L̃TCgAfBNg͏ύX”\܂B) +A. https://teratermproject.github.io/ł܂B

                    Q. Tera Term ̎̃o[W͂ô?
                    -A. [X 3 ɈA2/5/8/11̖ɏo܂BX̗Rɂ葽xꍇL܂B
                    +A. [X 6 ɈA2/8̖ɏo܂BX̗Rɂ葽xꍇL܂B
                    A. ZLeBz[̒vIȖ肪‚ꍇA[XȊÕ^C~OłVo[Wo鎖L܂B

                    @@ -35,13 +34,32 @@

                    Q. Tera Term ̊JɎQB
                    -A. NłQRłBOSDN AJEg쐬ŁA҂ɘA肢܂B

                    +A. NłQRłBGitHub ɓo^҂ɘA肢܂B

                    + +

                    +Q. Tera Term ̃XN[Vbg𗘗pĂłH
                    +A. CZXɏ]āA[U̎ȐӔCłgB

                    + +

                    +Q. COւ̗AoK(EAR)ɂ‚
                    +A. +Tera Term ɂ͕č̃W[܂܂Ă܂B +̂߁AECCN-5D002iÍ\tgEFAjɕނčAoǗ@̋K󂯂ꍇ܂B +̗AoǗK͍ėAoɂ‚ĂKĂāATera Term{Oփ_E[h邱Ƃ͍ėAoƂ݂Ȃ܂B
                    +TeraTerm Project ŔzzĂ Tera Term ́Aȉ̂ƂsĂ܂B +

                      +
                    • ȂIɓ”\łB
                    • +
                    • TeraTerm Project AčYƈSۏ (BIS) ENC ÍR[fBl[^[ɑ΂AE [ɂʒm𑗐Mς݂łB
                    • +
                    +Tera Term_E[hEgp郆[U[́AL̏A\vf, gpĂ郉CuQƂAg̔fɂƂÂAAoǗ@炷邱ƂɍŏIIȐӔC𕉂܂B
                    +ڍׂ̓vWFNg wiki LuEAR(čAoǗK, Export Administration Regulations) ɂ‚vQƂĂB +

                    [{IȎg]

                    -Q. zXgɐڑłȂB
                    +Q. zXgɐڑłȂB
                    A. ȉ̂ƂmFĂ݂ĂB

                      @@ -50,27 +68,65 @@
                    • zXg܂ IP AhX͂Ă܂?
                    • ̃}Vł̃zXgɐڑł܂?
                    +

                    -lbg[NɊւݒ@ɂ‚č҂Ɏ₵ȂłBC^[lbg֌W̓发GǂނAlbg[N(voC_[)̊Ǘ҂ɕĂB +\ꂽbZ[WɁÂƂmFĂB

                    +
                    +
                    ȃzXg(Invalid host)
                    +
                    + zXggĐڑ邱Ƃł܂łB
                    + zXgLzXg̉”\mFĂB +
                    + +
                    ڑۂ܂(Connection refused)
                    +
                    + ڑ̃T[rX삵ĂȂߐڑłȂԂłB
                    + T[rX̋NmFĂB +
                    + +
                    ڑ^CAEg܂(Connection timed out)
                    +
                    + ڑ悩牞܂
                    + lbg[NAzXg̋NAt@CAtH[ȂǂmFĂB +
                    + +
                    lbg[NɓBł܂(Network cannot be reached)
                    +
                    + ڑɓBł܂B
                    + Tera Term삵ĂPC̃lbg[NA_v^̐ݒAڑ܂ł̌oHmFĂ +
                    + +
                    +

                    -Q. _CAAbv TCP/IP (PPP) ڑŁATera Term gɂ͂ǂ悢? (dbŁAuC^[lbgvl̏ꍇ)
                    -A. Tera Term NOɁA_CAAbv(PPP)ڑmĂBWindows 95 ̏ꍇ́Au_CAAbv lbg[Nvgp܂B
                    -_CAAbv(PPP)ڑm Tera Term NA[File] New connection _CAO{bNXŁAzXg܂̓zXg IP AhX͂ăzXg telnet ڑ܂BzXg܂ IP AhX킩Ȃꍇ́AzXg̊Ǘ҂ɕĂB
                    -PPP ڑ̏ꍇAVA|[g Tera Term ł͂Ȃ PPP ڑ\tgɂĐ䂳܂B Tera Term ̃VA|[gڑ@\́A]̃p\RʐMIڑ̂߂̂̂ŁAPPP ڑƂ͊֌W܂B +lbg[NɊւݒɂ‚Ă̓lbg[N̊Ǘ҂ɖ₢킹ĂB

                    Q. Telnet ŃzXgɐڑǍネOAEgƂ Tera Term ɏIĂ܂B
                    -A. [Setup] TCP/IP Auto window close off ɂĂB +A. [Setup] Additional settings / "TCP/IP" ^u Auto window close off ɂĂB

                    Q. Telnet ڑ̂ɁANƏɃVA|[gJĂ܂B
                    -A. [Setup] General Default port "TCP/IP" ɂĂB +A. [Setup] Additional settings / "TCP/IP" ^u Default port "TCP/IP" ɂĂB +

                    + +

                    +Q. _CAAbv TCP/IP (PPP) ڑŁATera Term gɂ͂ǂ悢? (dbŁAuC^[lbgvl̏ꍇ)
                    +A. Tera Term NOɁA_CAAbv(PPP)ڑmĂBWindows 95 ̏ꍇ́Au_CAAbv lbg[Nvgp܂B
                    +_CAAbv(PPP)ڑm Tera Term NA[File] New connection _CAO{bNXŁAzXg܂̓zXg IP AhX͂ăzXg telnet ڑ܂BzXg܂ IP AhX킩Ȃꍇ́AzXg̊Ǘ҂ɕĂB
                    +PPP ڑ̏ꍇAVA|[g Tera Term ł͂Ȃ PPP ڑ\tgɂĐ䂳܂B Tera Term ̃VA|[gڑ@\́A]̃p\RʐMIڑ̂߂̂̂ŁAPPP ڑƂ͊֌W܂B

                    +

                    + Q. ύXݒ肪ێȂBTera Term IĂӂыNƌɖ߂ĂB
                    + A. Tera Term ͕ύXꂽݒIɕۑ܂B[Setup] Save setup ŖIɕۑKv܂B +

                    + +

                    [{]

                    Q. {ꂪ/\łȂB
                    @@ -130,7 +186,7 @@

                    Q. XL[gȂB
                    -A. ̎̎͂Ă̏ꍇ܂B̃L[ɑoׂ()邢͎sׂ@\킩ȂƂłBꂪ킩ꍇ́AL[{[hݒt@Cݒ肷邱ƂɂẴL[g悤ɂ邱Ƃł܂B KEYCODE.TXTǂłB +A. ̎̎͂Ă̏ꍇ܂B̃L[ɑoׂ()邢͎sׂ@\킩ȂƂłBꂪ킩ꍇ́AL[{[hݒt@Cݒ肷邱ƂɂẴL[g悤ɂ邱Ƃł܂BL[{[hݒt@CǂłB

                    Q. ^Ђ unix ɐڑADEL L[Ďs̃vO𒆒f悤ƂłȂB
                    @@ -140,7 +196,7 @@

                    Q. [Edit] Paste (Copy) V[gJbgL[ Alt+V (Alt+C) ɂȂĂ邪ÃAvP[VƓ Ctrl+V (Ctrl+C) ɂB
                    A. Ctrl+V ́AzXg ^V 𑗏o邽߂ɎgƂ̂ŁAݒł́AV[gJbgL[ɂȂĂ܂BCtrl+V -[Edit] Paste ̃V[gJbgL[ɂ@́Au[U[EV[gJbgEL[v KEYCODE.TXT +[Edit] Paste ̃V[gJbgL[ɂ@́Au[U[EV[gJbgEL[v uL[{[hݒt@Cv ǂłB

                    @@ -156,20 +212,38 @@ A. uԃzXgoRăzXgɐڑꍇ̃t@C]v QlɂĂB

                    + +

                    [SSH]

                    +

                    + Q. SSH F؃_CAO [pXt[Y] Ctrl+v L[œ\tłȂB
                    + A. uCtrl+Ȃɂ̃L[vȂɂ̑Ɋ蓖ĂƐ䕶pXt[YɎgȂ߁ACtrl+v ł͓\tł܂B
                    + pXt[Y\tƂɂ Shift+Ins L[gpĂB +

                    + +

                    + Q. MtH_w肹 SCP Ńt@C𑗐MAVF̃JgfBNgɕۑȂB
                    + A. dgݏセ̂悤ɑM邱Ƃ͂ł܂B
                    +[G~[^̓[g̃VF̃JgfBNgm܂Bvvgɕ\ĂƂĂ[go͂eLXĝ܂ܕ\Ăɉ߂܂񂵁AvvgJgfBNg\ȂƂ܂B[UJgfBNgcł̂́Avvg̕\Apwd R}h̕\ s cd R}hȂǂƂɃ[U̒ō\zĂ邩łB +

                    + +

                    [̑]

                    Q. Tera Term extension interface Ƃ͉?
                    A. Tera Term add-on W[̊Ԃ̃C^[tFCXłBAdd-on W[ DLL ̌`ō쐬ATera Term ̃[U[C^[tFCX֐Aݒ֐AWinsock ֐tbN邱Ƃł܂Bݗp”\ add-on W[ɂ‚ẮATera Term home page ĂB

                    -

                    -Q. r ("Tera Special" tHg) ɕ\ȂB
                    -A. Rg[pĺutHgvŁA"Tera Special" tHg폜AVXeċNA"Tera Special" tHgRg[pĺutHgvŎ蓮ōăCXg[ĂB +

                    +Q. rȂǂ DEC Special Graphics ("Tera Special" tHg̕) ɕ\ȂB
                    +A. DEC Special Graphics(DECOtBbN)QƂĂB
                    +"Tera Special" tHg\Ȃꍇ͍ăCXg[ĂB
                    +Rg[pĺutHgvŁA"Tera Special" tHg폜AVXeċNA"Tera Special" tHgRg[pĺutHgvŎ蓮ōăCXg[ĂB

                    -Q. r (DEC tHg) \ƁAɌԂłAӂƊpȂ߂炩ɂ‚ȂȂ肷B
                    -A. Tera Term ł DEC tHg\邽߁AƎ True Type tHg "Tera Special" (TSPECIAL.TTF) p܂Bʂɕ\Ƃ́Aʂ̃̕tHgƓ傫ɃXP[܂A̔{ɂẮArɌԂłȂǂ̖肪܂B܂܂ȑ傫Ac̃tHg "Tera Special" SɓK͕̂s”\Ȃ̂ŁAʂ̃̕tHg̎ނ傫낢ςāA肪NȂ̂gpĂB +Q. DEC Special Graphics ("Tera Special" tHg) ̌r\ƁAɌԂłAӂƊpȂ߂炩ɂ‚ȂȂ肷B
                    +A. DEC Special Graphics(DECOtBbN)QƂĂB
                    +r̕\ "Tera Special" tHggpĂƂAʂ̃̕tHgƓ傫ɃXP[܂A̔{ɂẮArɌԂłȂǂ̖肪܂B܂܂ȑ傫Ac̃tHg "Tera Special" SɓK͕̂s”\Ȃ̂ŁAʂ̃̕tHg̎ނ傫낢ςāA肪NȂ̂gpĂB

                    @@ -180,8 +254,8 @@

                    -Q. _uNbNŒPIƂ̒P̋؂ȑÕo[W Tera Term ƓɂĂقB
                    -A. u_uNbNɂPI̋؂蕶vǂłB +Q. _uNbNŒPIƂ̒P̋؂ Tera Term 2.3 ƓɂB
                    +A. u_uNbNɂPI̋؂蕶vǂłB

                    @@ -211,8 +285,74 @@

                    +

                    + Q. EBhETCYƉʂNAB
                    + A. NAȂꍇ́A[Setup]-[Additional settings]-[General]-[Clear display when window resized] uoffvɂĂB +

                    + +

                    + Q. Ot@C̓e VTWindow ɕ\ꂽeƈقȂB\łȂo͂ĂB
                    + A. VTWindow ɕ\̂́AMf[^Ɋ܂܂鐧V[PX͂ʂłB Tera Term ̃Ot@C͎Mf[^L^̂łB
                    + ̂߁AOt@C̏o͂ VTWindow ɕ\錋ʂ͓ɂ͂Ȃ܂BuHTML t@CvƁuWeb uEU_Oʁv̂悤ɈقȂ̂łB +

                    +:
                    +L[{[h
                    +- type `l'
                    +- type `s'
                    +- type BS
                    +- type ` '(SPACE)
                    +- type BS
                    +- type `s'
                    +- type ENTER
                    +
                    +VTWindow ̕\
                    +```
                    +ls
                    +CMakeLists.txt  Makefile  README-j     cygterm.cpp  cygterm_cfg.cpp  sub.cpp
                    +COPYING         README    cygterm.cfg  cygterm.ico  cygterm_cfg.h    sub.h
                    +sf-usr-shell:~/cygterm+$ 
                    +```
                    +
                    +eLXgOi͂ BS ͕\ȂASPACE ͕\ĂEo͂ TAB ̂܂ܕ\Ăj
                    +```
                    +ls s
                    +CMakeLists.txt	Makefile  README-j     cygterm.cpp  cygterm_cfg.cpp  sub.cpp
                    +COPYING		README	  cygterm.cfg  cygterm.ico  cygterm_cfg.h    sub.h
                    +sf-usr-shell:~/cygterm+$ 
                    +
                    +oCiOiׂĂ̓͂\ĂEo͂ TAB ̂܂ܕ\Ăj
                    +```
                    +ls s
                    +CMakeLists.txt	Makefile  README-j     cygterm.cpp  cygterm_cfg.cpp  sub.cpp
                    +COPYING		README	  cygterm.cfg  cygterm.ico  cygterm_cfg.h    sub.h
                    +sf-usr-shell:~/cygterm+$ 
                    +```
                    +
                    +

                    + + +

                    [Tera Term 5 ɂ‚]

                    + +

                    +Q. ݒt@CTera Term 4ƋLł?
                    +A. +Tera Term 5 4 TERATERM.INI ǂݍނƂ͂ł܂B + +Tera Term 5 TERATERM.INI UTF-16 with LE BOM(UTF-16LE +BOM)ɕϊ܂B + +ANSI(Unicode)APIgpĂ Tera Term 4 ł OS R[h +ϊĂ邽Unicodeinit@Cǂݏ邱Ƃł܂B +AANSI/UnicodeŕϊłȂꍇ܂B + +܂A9xnOSɂAPIɂ͕R[h̕ϊ@\ȂUnicodeinit@ +C͎gpł܂B + +API ̓QlɂĂB +

                    + diff --git a/doc/ja/html/about/requests.html b/doc/ja/html/about/requests.html index 8b640a8af..da65fa3c0 100644 --- a/doc/ja/html/about/requests.html +++ b/doc/ja/html/about/requests.html @@ -12,9 +12,8 @@

                    v]W

                    -҂ɘAOɂ̃y[W悭ǂłB
                    -ł̓[U[̕X悭悹v]܂Ƃ߂܂BɏĂ邱Ƃ҂ɗv]ÑȂłB
                    -ɏĂȂƂ͂łɑΉĂꍇ܂̂ŁÃwvAMACRO wvAREADMEJ.TXTAKEYCODE.TXTATera Term home page 悭ǂłB +[U[̕X悭悹v]łB(‚܂łĂȂ̂łB)
                    +wv(MACRO wvAKeycode)QƂĂłȂƂ܂A₢킹B

                    Ή邩Ȃ

                    @@ -29,22 +28,19 @@
                  • 񌟍@\
                  • TEK window ̉ʃobt@ & XN[Eo[
                  • TEK window ̈̉𑜓xPB
                  • -
                  • t@C]̓]xAc莞ԁA_Ot\[1]
                  • +
                  • t@C]̓]xAc莞ԁA_Ot\[1]
                  • ZMODEM ̓]ĊJ@\
                  • -
                  • Chinese & Korean[2]R[h
                  • [File] Print setup R}h
                  • -
                  • XN[obt@̓eAIꂽt@Cɕۑ[3]
                  • +
                  • XN[obt@̓eAIꂽt@Cɕۑ[2]
                  • /F̎wJ[pbgōs
                  • 132 [ĥƂtHgɐ؂ւ
                  • -
                  • p Windows Ŋ\
                  • -
                  • Unicode
                  • SFTP(SSH File Transfer Protocol)
                  • OpenSSHProxyCommand

                  Ή邩Ȃ(MACRO ֌W)

                    -
                  • [4]
                  • +
                  • [3]
                  • "exec" R}hŃ_CNVΉ
                  • oCif[^ "wait" ő҂Ă悤ɂB
                  • ɋNĂTera Termւconnect
                  • @@ -57,11 +53,11 @@
                  • TN3270
                  • JĂVA|[g𑼂̃AvP[VƓL”\ɂB
                  • s̓[hAs͂̂߂̃EBhEpӂB
                  • -
                  • Kermit ̓]xP[5]
                  • +
                  • Kermit ̓]xP[4]
                  • •ϕ(v|[Vi)tHg
                  • ANSI/AVATAR
                  • ReGIS
                  • -
                  • VNZ
                  • +
                  • Sixel(VNZ)
                  • }NŒڒʐM|[g𑀍
                  • xterm, DEC Locator modeȊÕ}EXvgR(NetTerm)
                  @@ -69,9 +65,9 @@

                  1. ^ Ver. 4.60ŃvOXo[̕\ɑΉ܂B
                  2. -
                  3. ^ ؍ꕶZbg(KS5601)ɂ́AVer. 4.60őΉ܂B
                  4. -
                  5. ^ Tera Term̃CXg[fBNgɂAscreencapture.ttlpł邩܂B
                  6. -
                  7. ^ Ver. 4.72őΉ܂B
                  8. ^ Ver. 4.73Long PacketɑΉ܂B
                  9. +
                  10. ^ Tera Term̃CXg[fBNgɂAscreencapture.ttlpł邩܂B
                  11. +
                  12. ^ Ver. 4.72őΉ܂B
                  13. +
                  14. ^ Ver. 4.73Long PacketɑΉ܂B
                  diff --git a/doc/ja/html/about/requirements.html b/doc/ja/html/about/requirements.html index 804f07fa4..6b208fbbe 100644 --- a/doc/ja/html/about/requirements.html +++ b/doc/ja/html/about/requirements.html @@ -14,31 +14,14 @@

                  Tera Term ͈ȉ OS œ삵܂B

                    -
                  • Microsoft Windows 95 (*1) (*2) (*3) (*4)
                  • -
                  • Microsoft Windows 98, 98 Second Edition
                  • -
                  • Microsoft Windows Me
                  • -
                  • Microsoft Windows NT 4.0 SP6 (*2) (*4)
                  • -
                  • Microsoft Windows 2000
                  • -
                  • Microsoft Windows XP
                  • -
                  • Microsoft Windows Vista
                  • -
                  • Microsoft Windows Server 2003, 2003 R2
                  • -
                  • Microsoft Windows Server 2008, 2008 R2
                  • Microsoft Windows 7
                  • Microsoft Windows 8
                  • Microsoft Windows Server 2012
                  • Microsoft Windows 8.1
                  • Microsoft Windows Server 2012 R2
                  • Microsoft Windows 10
                  • +
                  • Microsoft Windows 11
                  -

                  -1: Windows 3.1 ̓T|[gĂ܂B
                  -2: x64 IA-64 Windows T|[gĂ܂B(WOW64 ɂ)
                  -(*1) Windows Sockets2.0 KvłB
                  -(*2) Internet Explorer 5 ȏオKvłB
                  -(*3) LogMeTT, TTLEditor ͓܂B
                  -(*4) Tahoma tHg̃CXg[𐄏܂B -

                  - diff --git a/doc/ja/html/about/writer.html b/doc/ja/html/about/writer.html index 6f3b1dab1..5d1869310 100644 --- a/doc/ja/html/about/writer.html +++ b/doc/ja/html/about/writer.html @@ -14,9 +14,9 @@
                  • l(Taketo Hashii) mail2tkt at gmail.com
                  • s N(Mitsuyasu Ichimura) (JG8NID) jg8nid at gmail.com
                  • -
                  • cL(Yutaka Hirata) yutakakn at gmail.com
                  • +
                  • cL
                  • _q(Wataru Kamimura) wkamimur at gmail.com
                  • -
                  • ic^(NAGATA Shinya) maya.negeta at gmail.com
                  • +
                  • ic^(NAGATA Shinya)
                  • { _(IWAMOTO Kouichi) sue at iwmt.org
                  diff --git a/doc/ja/html/commandline/teraterm.html b/doc/ja/html/commandline/teraterm.html index dc9985eb1..ccf69988c 100644 --- a/doc/ja/html/commandline/teraterm.html +++ b/doc/ja/html/commandline/teraterm.html @@ -26,8 +26,8 @@ [/P=<TCP port#>] [/R=<replay file>] [/SPEED=<speed>] [/T=<telnet flag>] [/TEKICON=<icon name>] [/TIMEOUT=<connecting timeout value>] [/V] [/VTICON=<icon name>] [/W="<window title>"] [/WAITCOM] - [/X=<window pos (x)] [/Y=<window pos (y)] [/PIPE] - [/AUTOWINCLOSE=<flag>] + [/X=<window pos (x)>] [/Y=<window pos (y)>] [/PIPE] + [/AUTOWINCLOSE=<flag>] [/OSC52=<operations to permit>] [;<comment>]
  • @@ -76,7 +76,62 @@
  • /C=3 COM3
  • :
  • /C=256 COM256
  • - + + VA|[gԍ̍ől̓ftHg256ƂȂĂ܂BMaxComPortōőlύXł܂B + + +
    /CDATABIT=<value>
    +
    VA|[g̃f[^rbg +
      +
    • /CDATABIT=7 7bit
    • +
    • /CDATABIT=8 8bit
    • +
    +
    + +
    /CPARITY=<value>
    +
    VA|[g̃peB +
      +
    • /CPARITY=none none
    • +
    • /CPARITY=odd odd
    • +
    • /CPARITY=even even
    • +
    • /CPARITY=mark mark
    • +
    • /CPARITY=space space
    • +
    +
    + +
    /CSTOPBIT=<value>
    +
    VA|[g̃Xgbvrbg +
      +
    • /CSTOPBIT=1 1bit
    • +
    • /CSTOPBIT=1.5 1.5bit
    • +
    • /CSTOPBIT=2 2bit
    • +
    +
    + +
    /CFLOWCTRL=<value>
    +
    VA|[g̃t[ +
      +
    • /CFLOWCTRL=x Xon/Xoff
    • +
    • /CFLOWCTRL=hard RTS/CTS
    • +
    • /CFLOWCTRL=rtscts RTS/CTS
    • +
    • /CFLOWCTRL=none none
    • +
    • /CFLOWCTRL=dsrdtr DSR/DTR
    • +
    +
    + +
    /CDELAYPERCHAR=<value>
    +
    VA|[g̈ꕶ̑Mx(~b) +
      +
    • /CDELAYPERCHAR=n n~b
    • +
    +
    + +
    /CDELAYPERLINE=<value>
    +
    VA|[g̈s̑Mx(~b) +
      +
    • /CDELAYPERLINE=n n~b
    • +
    +
    Tera Term ---> Windows ---> (sshd,telnet,pipe) ---> OS,driver ---> [[(pty) + VF,̑R}h + Mobt@ (serial ) UART`bvȂ gvO + + Mobt@ <--- <--- <--- <--- + r1 r2 r3 r4 +
    + +
    +
    s1 Tera Term̑Mobt@
    +
    + ”\͒Ⴂł傤B
    + Mobt@̋󂫃TCYȂf[^l߂Ă܂B +
    +
    s2 Windows
    +
    + ”\͒Ⴂł傤B
    + gpn[hEFAAhCõo[WɂĂBSoD܂߂ėlXȕs邱Ƃ܂B
    + Tera Term̃VA|[gݒł̓hCȍڍׂ邱Ƃł܂B +
    +
    s3 MH
    +
    + serial̏ꍇG[̍đ͂܂Bf[^ɃG[ƃhbv܂B
    + TCP/IP, pipȅꍇ͉”\͒ႢƎv܂B +
    +
    s4 OS,UART`bv(M)
    +
    + PC(CPU)̏\͂𒴂f[^̎M(programOS`bvMf[^Ȃꍇ)ŁA + OS(hCo)AUART`bv̎Mobt@I[o[t[ăhbv܂B
    + t[䓙OS(hCo)sprograms͎ɂ܂B
    + TCP/IPł̓t[,G[̍đsȀꍇOS̃vgRX^bN̏s܂B
    + VAł̓t[̗L̓[U[߂邱ƂłAI[o[t[ȂǃG[̍đ͎ōs܂B +
    +
    program
    +
    + vO̎Mobt@I[o[t[ȂǂŃhbv܂B
    + z[(pty)ł̓obt@ꂻɂȂ0x07(BEL)ATera TermŃxȂ܂B +
    + UART`bvAhCo̎Mobt@TCY +
    +      8250 UART                 Mobt@Ȃ
    +      16550 UART                16 Byte FIFO
    +      FT232R                    256 Byte receive buffer
    +      TTY drive(Linux 2.6.26)   4KB  (TTSSHɂSSH̐݌vƎ/^[̂)
    +
    + +

    + Mf[^̃GR[ԂĂȂꍇ͎Mf[^ǂŃhbvĂ邱Ƃl܂B +

    +

    "Send file" _CAO{bNX(M)

    Close
    diff --git a/doc/ja/html/menu/file-transfer-bplus-send.html b/doc/ja/html/menu/file-transfer-bplus-send.html index 3304062cd..db541151d 100644 --- a/doc/ja/html/menu/file-transfer-bplus-send.html +++ b/doc/ja/html/menu/file-transfer-bplus-send.html @@ -22,7 +22,7 @@

    - B-Plus̃qg + B-Plus̃qg

    diff --git a/doc/ja/html/menu/file-transfer-bplus.html b/doc/ja/html/menu/file-transfer-bplus.html index 7e9eca833..89feff561 100644 --- a/doc/ja/html/menu/file-transfer-bplus.html +++ b/doc/ja/html/menu/file-transfer-bplus.html @@ -29,7 +29,7 @@

    - B-Plus̃qg + B-Plus̃qg

    diff --git a/doc/ja/html/menu/file-transfer-xmodem-recv.html b/doc/ja/html/menu/file-transfer-xmodem-recv.html index ac80c7c40..b45231ce1 100644 --- a/doc/ja/html/menu/file-transfer-xmodem-recv.html +++ b/doc/ja/html/menu/file-transfer-xmodem-recv.html @@ -32,8 +32,25 @@

    Option

    Binary
    - oCit@CMꍇ͑IĂB - tɃeLXgt@CMꍇ͑IȂłB +
      +
    • + `FbN̎AMf[^oCiƂĈÂ܂܃t@Cɕۑ܂B
      + Ō̎Mf[^ɂ̓pfBO(EOF,$1A)l߂đĂ܂B
      + ̂߁AMt@C̏I[$1AƂAMt@Ct@CI[𔻕ʂ邱Ƃł܂B +
    • +
    • `FbNȂ̎AMf[^eLXgƂĈt@Cɕۑ܂B
      + ̏s܂ +
        +
      • + sR[hϊ
        + PƂCR($0D),LF($0A)CR+LF($0D+$0A)ɕϊ܂B +
      • +
      • + MpPbgɁAubNŌ̘AEOF($1A)̍폜
        + eLXg$1A͌܂BʂƂăt@C$1A΍폜܂ +
      • +
      +
    diff --git a/doc/ja/html/menu/file.html b/doc/ja/html/menu/file.html index a32ddb221..472e4c1b6 100644 --- a/doc/ja/html/menu/file.html +++ b/doc/ja/html/menu/file.html @@ -27,6 +27,11 @@ M镶t@Cɏ݂܂B +
    Pause Logging
    +
    + ŐL^ꎞf܂B + +
    Comment to Log...
    Ot@CփRglj邱Ƃł܂B @@ -43,6 +48,11 @@ O_CAO\܂B
    +
    Stop Logging
    +
    + ŐL^I܂B + +
    Send file...
    t@C𑗐M܂B @@ -76,7 +86,7 @@
    Disconnect
    ڑ؂܂B - TCP/IP ڑ Auto window close + TCP/IP ڑ Auto window close IvVIĂꍇATera Term I܂B
    diff --git a/doc/ja/html/menu/setup-additional-coding.html b/doc/ja/html/menu/setup-additional-coding.html new file mode 100644 index 000000000..de394e3dd --- /dev/null +++ b/doc/ja/html/menu/setup-additional-coding.html @@ -0,0 +1,269 @@ + + + + + Additional settings / "Encoding" ^u ([Setup] j[) + + + + + +

    Additional settings / "Encoding" ^u ([Setup] j[)

    + +

    Coding

    + +
    +
    receive
    +
    + zXg瑗Ă銿R[hB +
    +
    transmit
    +
    + o銿R[hB +
    +
    + +

    Unicode

    + +

    Ambiguous Characters width

    + + 1 Cell ܂ 2 Cell I܂B
    + Tera Term ̐ڑ悪z肵Ă镶w肵܂B
    + East_Asian_WidthƃZɂ‚QƂB
    + Tera Term `悷镶̕ɂ‚Ă`敝ɍ킹ăTCYtHg`QƂB
    + Encoding-receive v_EύXƁÅR[hňʓIȕŏ㏑܂BA̕łȂ΂ȂȂƂ킯ł͂܂BtHgȂǂ̗RɂAgIĂB + +

    Override Emoji Characters width

    + + `FbNƁAĜ镶 East_Asian_Widthuĕݒ肵܂B
    + G̃Zɂ‚QƂB +
      +
    • R[h|Cg U+1F000 ȏ̊G͏2Cell(Sp)ƂĈ܂B +
    • R[h|Cg U+1F000 ̊G +
      +
      2callIꂽƂ
      +
      2Cell(Sp)ƂĈ
      +
      1callIꂽƂ
      +
      1Cell(p)ƂĈ
      +
      +
    + +

    DEC Special Graphics

    + + DEC Special Graphics(DECOtBbN) + \@w肵܂B + +
    +
    UnicodeDEC Special Graphicsփ}bsO
    +
    + UnicodeDEC Special Graphics֒uA"Tera Special" tHggpĕ\܂B
    + DEC Special Graphic̕1cell(half-width)ƂȂ܂B
    + ϊ镶wł܂B + UnicodeDEC Special Graphicsւ̃}bsOݒ肷QƂĂ +
    +
    rf(U+2500-U+257F)
    +
    Punctuation, Block Elements, Shade
    +
    _(U+00B7,U+2024,U+2219)
    +
    +
    +
    DEC Special GraphicsUnicodeփ}bsO
    +
    + DEC Special GraphicUnicode֒uAVTEBhẼtHggpĕ\܂B
    + Unicodeŕ\镶́̕AɈقȂ + Ambiguous Characters width ݒŕω܂B +
    +
    + +

    Japanese JIS

    + +

    Reveive

    + +
    +
    Half-width kana
    +
    + zXg瑗Ă"p"ЉR[h 7 bit ŕ\Ă + (SO/SI pVtgpĂ)ꍇɑIĂB + Kanji (receive) JIS ̏ꍇ̂ݗLłB +
    +
    + +

    Transmit

    + +
    +
    Half-width kana
    +
    + o"p"ЉR[h7bitŕ\ + (SO/SI pVtgp)ꍇɑIĂB + Kanji (transmit) JIS ̏ꍇ̂ݗLłB +
    +
    Kanji-in
    +
    + Kanji (transmit) JIS ̂ƂɎgpGXP[vV[PX + (R[h G0 ɎwV[PXB + ^[$@ ܂ ^[$B )B + zXg瑗ĂGXP[vV[PX͂ǂł\܂B +
    +
    Kanji-out
    +
    + Kanji (transmit) JIS ̂ƂɎgpGXP[vV[PX + (ASCII ܂ JIS [}R[h G0 ɎwV[PXB + ^[(B ܂ ^[(J )B + zXg瑗ĂGXP[vV[PX͂ǂł\܂B +

    + : ^[(H ͏ݒł͑Ił܂B
    + ^[(H I”\ɂB +

    +
    +
    + +
    + +

    Unicodeݒ

    + +

    (Z)ɂ‚

    + +

    + Latin-1 ȂVOoCgR[h̕1cellłB +

    + +

    + Shift_JIS Ȃǂ_uoCgR[h́̕A1oCg1cell, 2oCg2cellłB +

    + +

    + Unicode ł1‚̕̕ꍇɂĕω܂B +

    + +

    + Ⴆ΁A""(section sign,ߋL,ZNV}[N) ̕R[ĥ͎悤ɂȂ܂ +

    +| code               | character code(code point) | cell   |
    +|--------------------|----------------------------|--------|
    +| ISO8859-1(Latin-1) | 0xA7                       | 1      |
    +| Shift_JIS(CP932)   | 0x8198                     | 2      |
    +| KS5601(CP949)      | 0xA1D7                     | 2      |
    +| Big5(CP950)        | 0xA1B1                     | 2      |
    +| BG2312(CP936)      | 0xA1EC                     | 2      |
    +| Unicode            | 0xA7 (U+00A7)              | 1 or 2 |
    +
    + +

    + }`oCgR[hgpË(CJK)ł 2cell ŁA + ̑̊‹ł 1cell ŕ\ƎRɎgpł܂B + ω镶Ambiguous(B)Ƃ܂B + ڂEast_Asian_WidthƃZɂ‚QƂB +

    + +

    \镶ɂ‚

    + Tera Term ̃|WgɃeXgpeLXĝŕ\ă`FbNł܂B +
      +
    • Unicode()̕
      + "wget https://github.com/TeraTermProject/teraterm/raw/main/tests/unicodebuf-east_asian_width.txt -O -" +
    • UnicodeG̕
      + "wget https://raw.githubusercontent.com/TeraTermProject/teraterm/main/tests/unicodebuf-text-emoji.txt -O -" +
    + ̂ƂɒӂĂ +
      +
    • tHg͂̂܂܁A܂́Ag/kĕ\܂B
      + tHg̐ݒQƂ +
    • +
    • Tera Term̈ƁAzXgӐ}Ă镶قȂ邱Ƃ܂B
      + vOACu +
        +
      • eLXgGfB^(vim,emacs,nanoȂ) +
      • rA(more,less,lvȂ) +
      • bashȂǂɑgݍ܂ĂreadlineCu(sҏWCu) +
      • aptitudeȂǂɑgݍ܂ĂcursesCu([䃉Cu) +
      +
    • +
    • wtHgɕ\[ĂȂ܂B +
        +
      • \镶(w蕶̃Ot)݂Ȃꍇ
        + OŜč_uEv()`悳܂BOS̃o[WɂĂ͑̕\ɂȂ邩܂B +
      • OS̃o[WɂẮAIɑ̃tHggĕ`悳܂B
        + ̋@\tHgNƌĂт܂B +
      +
    • +
    + +

    East_Asian_Widthƕ(Z)ɂ‚

    + +

    + Unicodeł͕5ނ̓ɕނāA + East_Asian_Width(AWA̕)ƂĒ`Ă܂B +

    + +

    + ̉߂ɂ͎2ނ܂B +

      +
    1. AWȀ]R[h̏̕ꍇ
    2. +
    3. AWAȊȌ]R[h̏̕ꍇ
    4. +
    +

    + +

    + \ɂƎ̂悤ɂȂ܂B +

    + +
    +cells(2=Sp/1=p)
    +|                   | AWA           | AWAȊO       |
    +|               | ]R[h̕ | ]R[h̕ |
    +| F(Fullwidth,Sp) | 2                    | 2                    |
    +| H(Halfwidth,p) | 1                    | 1                    |
    +| W(Wide,L)        | 2                    | 2                    |
    +| Na(Narrow,)     | 1                    | 1                    |
    +| A(Ambiguous,B) | 2                    | 1                    |
    +| N(Neutral,)   | 1                    | 1                    |
    +
    + +

    + CJK‹ł́A + Ambiguous̕ 2Cell ɂقRłB
    + ܂A{tHgł 2Cell ŃfUCĂ邱ƂقƂǂƎv܂B +

    + +

    + ̃f[^Ƃɑ肵Ă܂B
    + http://www.unicode.org/Public/UCD/latest/ucd/EastAsianWidth.txt +

    + +

    G̕(Z)ɂ‚

    + +

    + G East Asian Width ̓Ƃ͕ʂ̕łB +

    + +

    + CJK‹ł́AEast_Asian_WidthƓlA + DBCS 2byte ̕ 2Cell ňقRłB +

    + +

    + CJK‹ł́A]̕R[hł͑Sp݂͑Ȃ̂ŁA + ̕𔼊pƂĈ̂RłB
    + ̊GȂ(R[h|CgU+1F000ȏ)Unicodeȍ~̕Ȃ̂ŁASpƂÂĂ悳łB +

    + +

    + ̏ƂɊG̔sĂ܂B
    + https://www.unicode.org/Public/UCD/latest/ucd/emoji/emoji-data.txt
    + AR[h|CgU+0080͊GƂĈ܂B +

    + +

    + Neutralɂ͊GĂāA1cellŕ`悷Ɠ{ł͕sRȕ\ƂȂ܂B + G̎̕ύX邱ƂŎRȕ\Ƃ邱Ƃł܂B +

    + +

    +
    +
    "☺", U+263A
    +
    WHITE SMILING FACE
    +
    "❤", U+2764
    +
    HEAVY BLACK HEART
    +
    + + + diff --git a/doc/ja/html/menu/setup-additional-copy-and-paste.html b/doc/ja/html/menu/setup-additional-copy-and-paste.html new file mode 100644 index 000000000..af30681ec --- /dev/null +++ b/doc/ja/html/menu/setup-additional-copy-and-paste.html @@ -0,0 +1,82 @@ + + + + + Additional settings / "Copy and Paste" ^u ([Setup] j[) + + + + + +

    Additional settings / "Copy and Paste" ^u ([Setup] j[)

    + +

    "Copy and Paste" ^u

    +
    +
    Enable continued line copy
    +
    + pĂssɃRs[@\Lɂ܂B
    + _uNbNŃ[hI鎞A_uNbÑhbOłLłB
    + }EX̎gQƂB +
    + +
    Disable mouse R button paste
    +
    + ENbNŃNbv{[h̓e\t@\𖳌ɂ܂B +
    + +
    Confirm mouse R button paste
    +
    + ENbNŃNbv{[h̓e\tƂA + |bvAbvj[ŊmF@\Lɂ܂B +
    + +
    Select only by L button
    +
    + }EXhbOɂIA{^ł̂ݗLɂB +
    + +
    Trim trailing new line character when pasting
    +
    + \tɖ̉s폜B +
    + +
    Confirm change paste
    +
    + Nbv{[hɉsR[h(CR/LF)܂ޏꍇA}EX̉ENbNAlt+V + Tera TermEBhE֓\t悤Ƃ^C~OŁAmF_CAO\邱Ƃł܂B + 둀ɂA[֗\ʃR}hhƂł܂B +
    + +
    String file
    +
    + Nbv{[hɁA̐ݒŎw肵t@Cɑ݂eLXg܂܂ꍇA}EX̉ENbNAlt+V + Tera TermEBhE֓\t悤Ƃ^C~OŁAmF_CAO\邱Ƃł܂B + 둀ɂA[֗\ʃR}hhƂł܂B
    + ̐ݒ́AConfirmChangePaste̐ݒ肪Lȏꍇɍp܂B +
    + +
    Delimiter characters
    +
    + PI̋؂蕶ݒ肵܂B +
    + +
    Paste delay per line
    +
    + s̃f[^\tƂAs邲ƂɃf[^̑Mx邱Ƃł܂Bx鎞Ԃ~bŐݒ肵܂B +
    + +
    Disabling text selection when the window is activated
    +
    + IԂ̃EBhEÄ}EXŃNbN邱Ƃ + IƂȂI֎~܂B +
    + +
    Copy to windows clipboard when text is selected
    +
    + }EXŕIƂANbv{[hփRs[܂B +
    + +
    + + diff --git a/doc/ja/html/menu/setup-additional-ctrlseq.html b/doc/ja/html/menu/setup-additional-ctrlseq.html new file mode 100644 index 000000000..027af7d30 --- /dev/null +++ b/doc/ja/html/menu/setup-additional-ctrlseq.html @@ -0,0 +1,149 @@ + + + + + Additional settings / "Control Sequence" Tab ([Setup] j[) + + + + + +

    Additional settings / "Control Sequence" Tab ([Setup] j[)

    + +
    +
    Accept mouse event tracking
    +
    + zXg̃AvP[VɂāAVT window }EXgbLO[hɕύXꂽꍇATera Term ̓}EXzXg֕񍐂悤ɂȂ܂B
    + }EXgbLO[hxterm̊g@\ł̂ŁATERM‹ϐ"xterm"ȊOƃzXg̃AvP[V͂̋@\gȂ܂B +
    + +
    Disable mouse event tracking when Control is pressed
    +
    + }EXgbLO[hAControlL[ĂԂ̓}EXʒmȂ悤ɂ܂B +
    + +
    Accept window title change request
    +
    + [g̃EBhE^CgύXv󂯓邩ݒ肵܂B +
    +
    off
    +
    󂯓Ȃ
    +
    overwrite
    +
    󂯓A[g̃EChE^Cĝ݂\
    +
    ahead
    +
    󂯓A[g̃EChE^CgW̃^Cg̑Oɒlj
    +
    last
    +
    󂯓A[g̃EChE^CgW̃^Cǧɒlj
    +
    +
    + +
    Window title report
    +
    + dtterm ̃EBhE^CgуACRx񍐗vɑ΂āAǂ̂悤ɉ邩ύXł܂B +
    +
    ignore
    +
    񍐗vɑ΂ĉȂ悤ɂ
    +
    accept
    +
    ݂̃EBhE^Cg񍐂B݂̃EBhE^Cg񍐂̂̓ZLeB댯ł̂ŁA{ɕKvȎ݂̂̐ݒs悤ɂĂB
    +
    empty
    +
    EBhE^Cg͋󂾂ƕ񍐂
    +
    +
    + +
    Window control sequence
    +
    + ̐ݒ肪 on ɂȂĂƁAdtterm̃EBhE쐧V[PX̓Aʒuړ, ŏ, ő剻, őOʈړ, Ŕwʈړ, tbV, EBhETCYύX(sNZP, P) LɂȂ܂B +
    + +
    Window report sequence
    +
    + ̐ݒ肪 on ɂȂĂƁAdtterm̃EBhE񍐂̐V[PX̓AEBhEԕ, EBhEʒu, EBhETCY(sNZP, P), [gEBhETCY LɂȂ܂B
    + ZLeB̗RŃEBhȄ񍐂Ȃꍇ͖ɂĂB +
    + +
    Cursor control sequence
    +
    + J[\`𐧌䂷V[PXgp邩ǂݒ肵܂B
    + ̐ݒ肪 on ɂȂĂƁADECSCUSR(J[\`ύX), WYSTCURM(Wyse_ŃJ[\), WYULCURM(WyseJ[\), AT&T 610̃J[\_ŐV[PXɉāAJ[\`󂪕ύX܂B + +

    + vimgpĂꍇA̋@\ on ɂ ~/.vimrc Ɉȉ̂悤ɒljƓ̓[hɉăJ[\`󂪕ς悤ɂȂ܂B +

    + +
    +set t_SI=^[[3\ q
    +set t_EI=^[[1\ q
    +: ^[ Control-V Control-[œ͂
    +
    + + AvP[VIɁAJ[\_ŏԂɖ߂ɂ́Aȉ̂悤ɐݒ܂B
    + ncurses 5.7 terminfo ł xterm ̃J[\̔\(civis)/ʏ\(cnorm)/\(cvvis)͂ꂼȉ̂悤ɂȂĂ܂B + +
    +civis=\E[?25l
    +cnorm=\E[?12l\E[?25h
    +cvvis=\E[?12;25h
    +
    + + ̐ݒ肾ƁAJ[\̒ʏ\͔_łɁA\͓_ł悤ɂȂ܂B + ̂ terminfo Ή̃AvP[VJ[\ʏ\悤Ƃɓ_łȂȂ܂B
    + ΉƂẮAJ[\̓_Ő𖳎ׂ CursorCtrlSequence off ɐݒ肷邩AJ[\\ԕύXɓ_ŏԂύXȂ悤Ɉȉ̎菇zXgŎ{ĂB + +
    +% infocmp xterm > xterm.ti
    +ꂽxterm.tiҏWAcnorm, cvvis̒l \E?25h ɕύX
    +% tic -o ~/.terminfo xterm.ti
    +VXeŜɔf邽߂ɂ root ňȉs
    +# tic xterm.ti
    +
    +
    + +
    Clipboard access from remote
    +
    + zXg̃Nbv{[hւ̃ANZX‚邩ݒ肵܂B +
    +
    off
    +
    Nbv{[hւ̃ANZX‚Ȃ
    +
    write only
    +
    Nbv{[hւ݂̏‚
    +
    read only
    +
    Nbv{[hւ̓ǂݍ݂‚
    +
    read/write
    +
    Nbv{[hւ̓ǂݏ‚
    +
    +
    + +
    Notify clipboard access from remote
    +
    + zXg̃Nbv{[hւ̃ANZXʒm邩ݒ肵܂B +
    + +
    Accept clearing scroll buffer from remote
    +
    + zXg̃XN[obt@NAv󂯓邩ݒ肵܂BLɂ clear R}hŃXN[obt@悤ɂȂ܂B +
    + +
    Disable print start sequence
    +
    + 󎚊JnV[PX𖳌܂B + (see also) +
    + +
    Bell
    +
    + x(BEL, ASCII $07)̓I܂B +
    +
    disable
    +
    TEh
    +
    VXeftHgr[vo͂܂
    +
    rWAx
    +
    ʂtbV܂
    +
    + (see also) +
    + +
    + + + diff --git a/doc/ja/html/menu/setup-additional-cygwin.html b/doc/ja/html/menu/setup-additional-cygwin.html new file mode 100644 index 000000000..dcd4fde28 --- /dev/null +++ b/doc/ja/html/menu/setup-additional-cygwin.html @@ -0,0 +1,30 @@ + + + + + Additional settings / "Cygwin" Tab ([Setup] j[) + + + + + +

    Additional settings / "Cygwin" Tab ([Setup] j[)

    + +
    +
    Cygwin install path
    +
    + Cygwin ̃CXg[w肵܂B +
    + +
    CygTerm
    +
    + CygTerm ̐ݒ܂Beڂ̈Ӗɂ‚ẮACygTerm+ ݒt@C QƂĂB +

    : version 4.88ȑÕo[Wł͐ݒɎcygterm.cfgXVĂ܂Aversion 4.89ȍ~ł͎ł̍XVsȂ悤ɂȂ܂B
    + cygterm.cfgXV邽߂ɂ Setup - Save Setup sKv܂B +

    +
    +
    + + + diff --git a/doc/ja/html/menu/setup-additional-font.html b/doc/ja/html/menu/setup-additional-font.html new file mode 100644 index 000000000..3e5f337b6 --- /dev/null +++ b/doc/ja/html/menu/setup-additional-font.html @@ -0,0 +1,121 @@ + + + + + Additional settings / "font" ([Setup] j[) + + + + + +

    Additional settings / "Font" ^u ([Setup] j[)

    + +
    +
    ^[~itHg
    +
    + VTWiñtHgw肵܂B +
    +
    Unicode API
    +
    + Unicode𒼐ڎgpł`APIgp܂B
    + ʏ͂gp܂B +
    + +
    ANSI API
    +
    + ANSI(Unicodeł͂Ȃ)`APIgp܂B
    + UnicodeANSI֕ϊ邽߂ɃR[hy[Ww肷Kv܂B + tHgɂĂANSIŕ`悷Kv܂B
    + ʏ͎gp܂B +
    + +
    `敝ɍ킹ăTCYtHg`(Drawing resized font to fit cell width)
    +
    + "©"(U+00A9)ȂǁA\悤Ƃ镝1cell,2cell̂ǂ̏ꍇA + tHgfUC(tHgt@C)ɂ + tHg̕1cell,2cell̂ǂ̏ꍇ܂B
    + tHgɂătHg͕\悤Ƃ镝ɍȂꍇ܂B
    + cellɂ킹ĕ`悳ƕ\͎RɂȂ܂A + `摬xxȂAfUCtHgJ҂̈Ӑ}ƈقȂĂ܂Ƃ_܂B
    + ܂ATera Term̐ڑ悪z肵Ă镶ɂ‚āA + Ambiguous Characters width ݒA + East_Asian_WidthƃZɂ‚QƂĂB +
    +
    ON
    +
    + \ƕ`悷tHg̕قȂĂ鎞A + tHgcellɍ킹ĕ`悵܂B +
    + +
    OFF
    +
    + tHgt@C̃fUĈ܂ܕ\܂B +
      +
    • Tera Term Sp,2CellƂĕ\AtHgfUCp,1Cell̏ꍇA + p̌ɃXy[XĂ悤ɕ\܂B +
    • Tera Term p,1CellƂĕ\AtHgfUCSp,2Cell̏ꍇA + Sp̍\܂B +
    +
    +
    +
    + +
    ԃXy[X
    +
    + HłB
    + (s)Ԃɂ܂QƂB +
    +
    +
    + +
    _CAOtHg
    +
    _CAOŎgptHgw肵܂ +
    +
    ftHg {^
    +
    + ftHg̃_CAOtHggp܂B
    + SystemParametersInfo(SPI_GETNONCLIENTMETRICS) gpWindowstHg擾Ă܂B +
    +
    +
    + +
    List hidden fonts in font dialog
    +
    + Windows 7ȍ~ɂ͊etHgtHgꗗ + \邩\ɂ邩ݒ肷@\lj܂B + Tera Term ̂̐ݒLɂƁA + OSŔ\ɐݒ肳ꂽtHgIł悤ɂȂ܂B +
    + +
    v|[VitHgtHg_CAÖꗗɕ\
    +
    + HAłB +
    + +
    + +

    +
      +
    • + Tera Term t̃tHg "Tera Special" + DEC Special Graphics\Ɏgp܂B + ̃_CAO{bNXł͑Ił܂B +
    • +
    • + ftHgݒł OS Ŕ\ɐݒ肳ꂽtHg͈ꗗɌ܂B + \̃tHgIɂ List hidden fonts in font dialog + ̐ݒLɂĂB +
    • +
    • + Additional settings _CAO Visual ^uɂ + Font quality ŃtHg̕iI邱Ƃł܂B +
    • +
    • + _CAOtHgɋɒ[ɑ傫ȃTCY≡̍LtHgݒ肷ƁA + \镶A_CAOʂ͂ݏo[ok]{^ȂȂ邱Ƃ܂B +
    • +
    + + + diff --git a/doc/ja/html/menu/setup-additional-general.html b/doc/ja/html/menu/setup-additional-general.html new file mode 100644 index 000000000..3bc299776 --- /dev/null +++ b/doc/ja/html/menu/setup-additional-general.html @@ -0,0 +1,133 @@ + + + + + Additional settings / "General" ^u ([Setup] j[) + + + + + +

    Additional settings / "General" ^u ([Setup] j[)

    + +
    +
    Disable accelerator send break
    +
    + Alt-B break 𑗐M@\𖳌ɂ܂B +
    + +
    Accept broadcast
    +
    + u[hLXgR}h󂯓܂B
    + ̐ݒ "Realtime mode" off ̃u[hLXgMɑ΂ėLłB"Realtime mode" on ̃u[hLXgḾA̐ݒlɂ炸M܂B +
    + +
    Auto scroll only in bottom line
    +
    + ʼns\ĂȂԂł͎IɃXN[Ȃ悤ɂ܂B +
    + +
    Clear display when window resized
    +
    + VTEBhẼTCYύXɁA\eNA邩ǂݒ肵܂B +
    + +
    Change cursor shape with IME state
    +
    + IMEon̎ɁAJ[\Ԋ|ɂ邩ݒ肵܂B +
    + +
    UI Language
    +
    + t@C(lang\*.lng)̎wɂAj[⃁bZ[W̌؂ւ邱Ƃł܂B + t@CQƂ̂ƁB + {ꃁj[\邽߂ɂ Japanese.lng IĂB +
    + +
    Default port
    +
    + Tera Term R}hCp[^[ȂŋNƂɐڑ|[g̎ (TCP/IP ܂ Serial)B +
    + +
    Title format
    +
    EBhE^Cǧ`ݒ肵܂B +
    +
    Display host/port name
    +
    zXg܂̓VA|[g\܂
    + +
    Display session number
    +
    ZbVԍ\܂
    + +
    Display VT/TEK
    +
    VT܂TEK\܂
    + +
    Swap hostname and title position
    +
    zXg^CgeLXg̈ʒuꊷAzXgɕ\܂
    + +
    Display tcp port number
    +
    TCP |[gԍ\܂ (TCP/IP ڑ̂)
    + +
    Display serial port speed
    +
    VA|[g̃Xs[h\܂ (VAڑ̂)
    +
    +
    + +
    Notification
    + +
    + ʒmZ^[̐ݒƃeXgB + +

    + ʒmsȂݒɂĂƃACR⃁bZ[W\̒ʒm͍s܂B
    + oȂݒɂĂƒʒm͏o͂܂B
    + eXgœmF邱Ƃł܂B +

    + +
    +
    Notify sound
    +
    + ʒm‚܂B
    + Windows XPO͉Ƃł܂B +
    + +
    Notify Test {^
    +
    + ʒm̃eXgs܂B
    + ̓mFł܂B +
      +
    • ʒmZ^[ɃACR\܂B
    • +
    • Avʒm\܂B
    • +
    +
    + +
    Tray Test {^
    +
    + ʒmZ^[ɃACR\܂B
    + ̓mFł܂B +
      +
    • + ʒmZ^[ɃACR\܂B
      + bZ[W{bNX‚ƃACR͏܂B +
    • +
    + uTera Term ׂ̂Ă̒ʒmItɂvƁAuTera Termv + Windows ́uʒmv̐ݒɕ\ȂȂAݒύXłȂ + Ȃ邱Ƃ܂B̃{^ĒʒmZ^[ɃACR\ + ĂŒƁAWindows ́uʒmv̐ݒύXł܂B +
    +
    +
    + +
    Download Folder
    +
    + t@C]̂߂̃fBNgݒ肵܂B
    + ‹ϐ(ex "%USERPROFILE%\Downloads")܂܂ĂΓWJ܂B
    + ݒ̏ꍇftHg̃_E[htH_gp܂B
    + ݂̐ݒ Setup directory ŊmFł܂B
    + changedir }NR}h Őݒł܂B +
    +
    + + + diff --git a/doc/ja/html/menu/setup-additional-keyboard.html b/doc/ja/html/menu/setup-additional-keyboard.html new file mode 100644 index 000000000..917eceef9 --- /dev/null +++ b/doc/ja/html/menu/setup-additional-keyboard.html @@ -0,0 +1,89 @@ + + + + + Additional settings / "Keyboard" ^u ([Setup] j[) + + + + + +

    Additional settings / "Keyboard" ^u ([Setup] j[)

    + +
    +
    Transmit DEL by:
    +
    +
    +
    Backspace key
    +
    + ̃IvVI backspace L[ DEL + (ASCII $7F) o܂B + IȂ BS (ASCII $08) o܂B
    + ܂ÃIvVIꂽ(IȂ)ł + Ctrl+Backspace BS (DEL) 𑗏oł܂B +
    + +
    Delete key
    +
    + ̃IvVI Delete (Del) L[ + DEL o܂B + ̃IvVIȂꍇADelete L[̋@\ + L[{[hݒt@C + ɂ茈肳܂B +
    +
    +
    + +
    Keyboard
    +
    + VAL[{[h^Cvw肵܂B
    + VA Windows ANSI(Unicode)쎞ɗLłB
    + ̒lIĂB +
    +
    Windows
    +
    + X^_[hL[{[hhCogpĂꍇ +
    +
    KOI8-R
    +
    + KOI8-R R[h𐶐hCogpĂꍇ +
    +
    +
    + +
    Meta key
    +
    + Alt L[^EL[ (meta key) ƂĎg܂B + Ⴆ΁AAlt+A ƁAESC A 𑗏o܂B + ^EL[[hł́AV[gJbgEL[͈ꕔĎgpłȂȂ܂B
    + ^EL[Lɂ‚ AltGr L[Ƃ̑gݍ킹ŕ͂ꍇ́Aݒl left ɂ܂BNT 4.0 ȍ~̂ݑΉ +
    + +
    Disabled mode:
    +
    +
    +
    Application Keypad
    +
    + AvP[VL[pbh[h𖳌ɂ܂B
    + AvP[VL[pbh[h𖳌ɂƁA + Ȃɂ̔qŃAvP[VL[pbh[hɈڍsĂ܂ + lL[pbhgȂȂƂguhł܂B + AAvP[VL[pbh[hgpĂ + AvP[Vł͕sN邩܂B +
    + +
    Application Cursor
    +
    + AvP[VJ[\[h𖳌ɂ܂B +
    +
    +
    +
    + +

    + L[{[hݒt@C + 邱ƂŎRɃL[ݒύX邱Ƃł܂B +

    + + diff --git a/doc/ja/html/menu/setup-additional-log.html b/doc/ja/html/menu/setup-additional-log.html new file mode 100644 index 000000000..7a1eb392f --- /dev/null +++ b/doc/ja/html/menu/setup-additional-log.html @@ -0,0 +1,172 @@ + + + + + Additional settings ([Setup] j[) + + + + + +

    Additional settings / "Log" ^u ([Setup] j[)

    + +
    +
    View log editor
    +
    +
    +
    exe file
    +
    + O\vOw肵܂B
    + ΃pXŎw肷ƁAttermpro.exẽtH_A‹ϐPATH̃tH_vO܂B
    + 󔒂̎̓t@C̊gqɊ֘AtꂽvOgp܂B +
    +
    args
    +
    + vÖw肵܂B +
    +
    +
    + +
    Default log file name
    +
    + W̃Ot@Cw肵܂B
    + Tera Term Ǝ̏ strftimeƓl̏gpł܂B +
    +Tera Term Ǝ̏:
    +&h      zXgBڑ̏ꍇ͋B
    +&p      TCP |[gԍBڑ̏ꍇ͋BTCP ڑłȂƂB
    +&u      Windows ̃OI[U
    +
    +strftime Ɠl̏:
    +%a      ݂̃P[̗j̏ȗ`B
    +%A      ݂̃P[̗j̐B
    +%b      ݂̃P[̌̏ȗ`B
    +%B      ݂̃P[̌̐B
    +%c      P[ɑΉtƎ̕\B
    +%d      10 iŕ\̓t (01 ` 31)B
    +%H      24 ԕ\L̎ (00 ` 23)B
    +%I      12 ԕ\L̎ (01 ` 12)B
    +%j      10 iŕ\N̓ (001 ` 366)B
    +%m      10 iŕ\ (01 ` 12)B
    +%M      10 iŕ\ (00 ` 59)B
    +%p      ݂̃P[̌ߑO/ߌB
    +%S      10 iŕ\b (00 ` 59)B
    +%U      10 iŕ\T̒ʂԍBjT̍ŏ̓Ƃ (00 ` 53)B
    +%w      10 iŕ\j (0 ` 6Aj 0)B
    +%W      10 iŕ\T̒ʂԍBjT̍ŏ̓Ƃ (00 ` 53)B
    +%x      ݂̃P[̓t\B
    +%X      ݂̃P[̎\B
    +%y      10 iŕ\̉ 2  (00 ` 99)B
    +%Y      10 iŕ\ 4 ̐B
    +%z, %Z  WXg̐ݒɉāA^C ][̖O܂͏ȗ`w肵܂B
    +	^C ][sȏꍇ͎w肵܂B
    +%%      p[ZgLB
    +
    +
    +
    Ot@CtpXłȂƂ̓
    + ȉ̏Őݒl𑖍Al΂̃tH_̑΃pXƂ݂Ȃ܂B + +
    +
    + +
    Default log save folder
    +
    + [O̕ۑw肵܂B
    + [O̕ۑɂ‚ĂTera Term gptH_ / [OQƂB
    + ݂̃tH_Setup DirectoryŊmFł܂B +
    + +
    Auto start logging
    +
    + ڑɎIɃO̎Jn@\Lɂ܂BOt@Cɂ́AW̃Ot@Cgp܂B
    + /nolog R}hCIvVw肳ĂƁAY@\͖܂B +
    + +
    Log Rotate
    +
    + Õ[e[gLɂ܂B[e[gꂽOt@Cɂ́Agq .1, .2, .3 c ƕt^܂B +
    +
    Size
    +
    + O[e[gTCYݒ肵܂BPʂ"KB", "MB"w肷邱Ƃł܂B +
    + +
    Rotate
    +
    + O[e[g鐢㐔ݒ肵܂B"0"̏ꍇ́AǗ܂B +
    +
    +
    + +
    Log option
    +
    + Ot@C̎ʂݒ肵܂B +
    +
    Binary
    +
    + zXgM̂܂܃t@Cɏ݂ꍇ͑IĂB + IȂꍇ́AR[hAs͕ϊA + GXP[vV[PX͎菜Ă珑܂܂B +
    + +
    Append
    +
    + łɑ݂t@Cɒljď݂ꍇ͑IĂB + IȂꍇ͏㏑܂B +
    + +
    Plain text
    +
    + ASCII \݂Ȃꍇ͑IĂB
    + Binary IvVL̏ꍇ͑Is‚łAݒ͖܂B +
    + +
    Hide dialog
    +
    + O]̃_CAO\Ȃꍇ͑IĂB +
    + +
    Include screen buffer
    +
    + ݂̒[obt@ׂăOt@CɏoĂAO̎Jn܂B +
    + +
    Timestamp
    +
    + O̍sɎljꍇ͑IĂBs̍ŏ̕o͂ꂽlj܂B
    + ^CX^v̎ʂƂĈȉIł܂B +
    +
    Local Time
    +
    + [J^Cł̓L^܂B +
    + +
    UTC
    +
    + UTC ł̓L^܂B +
    + +
    Elapsed Time (Logging)
    +
    + O擾JňoߎԂL^܂B +
    + +
    Elapsed Time (Connection)
    +
    + ڑJňoߎԂL^܂B +
    +
    + Local Time, UTC ł̓̃tH[}bg LogTimestampFormat ̐ݒɏ]܂B
    + Elapsed Time (Logging), Elapsed Time (Connection) ł LogTimestampFormat ̐ݒ͖܂B
    + Binary IvVL̏ꍇ͑Is‚łAݒ͖܂B +
    +
    +
    +
    + + + diff --git a/doc/ja/html/menu/setup-additional-mouse.html b/doc/ja/html/menu/setup-additional-mouse.html new file mode 100644 index 000000000..3098e2a34 --- /dev/null +++ b/doc/ja/html/menu/setup-additional-mouse.html @@ -0,0 +1,26 @@ + + + + + Additional settings / "Mouse" ^u ([Setup] j[) + + + + + +

    Additional settings / "Mouse" ^u ([Setup] j[)

    + +
    +
    Enable clickable URL
    +
    + URL _uNbNƂɃuEUN@\Lɂ܂B +
    + +
    Mouse wheel scroll line
    +
    + }EXzC[ɂXN[sݒ肵܂B +
    +
    + + diff --git a/doc/ja/html/menu/setup-additional-tcpip.html b/doc/ja/html/menu/setup-additional-tcpip.html new file mode 100644 index 000000000..c0a5480a1 --- /dev/null +++ b/doc/ja/html/menu/setup-additional-tcpip.html @@ -0,0 +1,59 @@ + + + + + Additional settings / "TCP/IP" ^u ([Setup] j[) + + + + + +

    Additional settings / "TCP/IP" ^u ([Setup] j[)

    + +
    + +
    Save history when new connection
    +
    + ̃IvVIƁA[File] New connection + _CAO{bNXœ͂ꂽzXgzXgXg̐擪ɒlj܂B +
    + +
    Edit history
    +
    + ڑҏW܂B +
    + +
    Telnet
    +
    + Telnet vgR gp鎞I܂B
    + SSHvOCgpĂƂ͎gp܂B +
    + +
    Port#
    +
    + TCP/IP |[gԍB
    + 22: SSH
    + 23: Telnet +
    + +
    Keep alive
    +
    + Ԋu Telnet T[oɑ΂āANOP(IAC NOP: 255 241)𑗐M܂BL[vACu(n[gr[g)@\ƂĂ΂܂B0œY@\͖ƂȂ܂BftHg300b(5)łB +
    + +
    Auto window close
    +
    + ̃IvVIƁAzXgƂ̐ڑ؂ꂽƂI + Tera Term I܂B +
    + +
    Terminal type
    +
    + Telnet vgRŐڑƂzXgɕ񍐂 terminal typeB
    + TermType"xterm"ɐݒ肷邱ƂɂAANSIJ[ɑΉĂvim6ȂǂŃJ[\邱Ƃł܂B̓IWi炠@\łB
    + Windows Telnet T[o "xterm" 𐳂󂯕tȂ̂ŁA"vt100" "ANSI" w肵ĂB +
    +
    + + diff --git a/doc/ja/html/menu/setup-additional-theme.html b/doc/ja/html/menu/setup-additional-theme.html new file mode 100644 index 000000000..9aaf6ecf3 --- /dev/null +++ b/doc/ja/html/menu/setup-additional-theme.html @@ -0,0 +1,63 @@ + + + + + Additional settings / "Theme" ^u ([Setup] j[) + + + + + +

    Additional settings / "Theme" ^u ([Setup] j[)

    + +

    e[}

    + +

    + Tera Term ύX邱Ƃł܂B
    + Windows̃e[}(_[Ne[}Ȃ)ݒł͂܂B + +

    +
    Theme Editor
    +
    e[}GfB^N܂B
    + +
    FastSizeMove
    +
    + EBhẼTCY̕ύXAړAZI[_[̕ύXr + EBhE̔wi(BGe[})̕`ȗāAɂ܂B
    + BGe[}gpĂƂɗLłB +
    + +
    Startup
    +
    + NɎgpe[}ݒ肵܂B +
    +
    gpȂ
    +
    e[}gp܂
    +
    Œe[}(e[}t@Cw)
    +
    ̃e[}t@Cǂݍ݂܂
    +
    _e[}
    +
    e[}t@CtH_̃e[}_ɓǂݍ݂܂
    +
    +
    + +
    Susie Plug-in path
    +
    + Susie Plug-in t@CۑĂpXw肵܂B
    + Susie Plug-in ́A摜rA[\tg Susie + lXȉ摜t@Cǂݍނ߂̊Ot@CłB
    + ̏Qlɂ܂B +
    + +
    + + + diff --git a/doc/ja/html/menu/setup-additional-visual-theme-alpha.png b/doc/ja/html/menu/setup-additional-visual-theme-alpha.png new file mode 100644 index 000000000..0cda1a914 Binary files /dev/null and b/doc/ja/html/menu/setup-additional-visual-theme-alpha.png differ diff --git a/doc/ja/html/menu/setup-additional-visual-theme.drawio b/doc/ja/html/menu/setup-additional-visual-theme.drawio new file mode 100644 index 000000000..7ac3b204d --- /dev/null +++ b/doc/ja/html/menu/setup-additional-visual-theme.drawio @@ -0,0 +1,139 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/doc/ja/html/menu/setup-additional-visual-theme.html b/doc/ja/html/menu/setup-additional-visual-theme.html new file mode 100644 index 000000000..ac1e6be01 --- /dev/null +++ b/doc/ja/html/menu/setup-additional-visual-theme.html @@ -0,0 +1,239 @@ + + + + + Theme Editor + + + + + +

    Theme Editor

    + + e[}Tera Term̔wiA̐FA܂́AꊇĈgg݂łB
    + Theme Editor̓e[}̕ҏWsƂł܂B
    + ̃^uŐݒs܂B
    + [OK] œ쒆Tera TermɔfA[Cancel] Ŕfꂸɔj܂B + +
    +
    Preview/File ^u
    +
    e[}̈ꎞIȐݒ(preview),e[}t@C̓ǂݍ݂Əos܂B
    +
    Background ^u
    +
    BG(wi摜)Ɋւݒs܂B
    +
    Background alpha ^u
    +
    BG(wi摜)ƕwiF̓ߐݒs܂B
    +
    Color ^u
    +
    ̐FɊւݒs܂B
    +
    + + e[}t@Cɂ‚ + +
    + +

    Preview/File

    + + preview
    + e[}̈ꎞIȐݒ(preview)A蒼(undo)s܂B +
    +
    [preview]
    +
    ݒ肵e[}ꎞIɐݒ(preview)܂B
    +
    [undo]
    +
    ύXe[}_CAOJȌԂɖ߂܂B
    +
    + + file
    + e[}t@Ce[}ǂݍ݁Ae[}ۑȂ܂B +
    +
    [load]
    +
    e[}t@Cǂݍ݂܂B
    +
    [save]
    +
    + ݒ蒆̃e[}t@Cɏo܂B
    + BGe[}AColore[}A܂͗oIł܂B +
    +
    + +
    + +

    Background (wie[})

    + +

    wi

    + + 珇ɔwi摜܂B
    + wie[}OverviewQƂB + +
    +
    Simple color plane
    +
    + PFAt@uh܂B
    + :wi摜,ǎuhԂŏÂꍇ́AalphåŃAt@uh܂B +
    +
    Color
    +
    v[̐F
    + +
    alpha
    +
    At@uhl
    +
    +
    + +
    Background Image
    +
    + wi摜w肵܂B
    + 摜t@CɂĂ͉fƂ̓xl܂B +
    +
    摜t@C
    +
    + bmp, png, gif, jpg
    + 32bit bmp, png̏ꍇ8bit̃At@`lt܂
    + gif̏ꍇ1F𓧖ƂÂ܂B +
    + +
    p^[
    +
    + wi摜̕`@w肵܂B +
      +
    • stretch
    • +
    • tile
    • +
    • center
    • +
    • fit_withh
    • +
    • fit_height
    • +
    • autofit
    • +
    • autofill
    • +
    + TODO ڍׂ𒲂ׂď +
    + +
    Color
    +
    + wi摜`悳Ȃꍇ̐FŖ߂܂B
    + 摜ɓ݂ĂWindows̕ǎ摜Ȃꍇ̐FŖ߂܂B +
    + +
    alpha
    +
    + Desktop wallpaper imageƍAt@uhl
    + s܂őIł܂
    +
    +
    +
    + +
    desktop wallpaper image
    +
    + Windows̕ǎ摜 +
    + +
    + +
    + +

    wi摜ƕwiF̓ߐݒ

    + +
    +
    ʏ핶wiF̓
    +
    + wi摜ƒʏ핶wiF̓
    + s܂őIł܂B
    + 摜1̉ӏ +
    +
    ]wiF̓
    +
    + wi摜Ɣ]wiF̓
    + s܂őIł܂B
    + 摜2̉ӏ +
    +
    ̑̕wiF̓
    +
    + wi摜Ƃ̑̕wiFƓ
    + s܂őIł܂B
    + 摜3̉ӏ +
    +
    +
    +
    + 1,3̂̕ƂATera Term 4 ̓߂ƓlƂȂ܂B + +
    + +

    Color (J[e[})

    + +

    + J[e[}̓ftHgFɏ㏑ĐFݒ肳܂B
    + ftHgFTERATERM.INI Őݒ肳܂B
    + J[e[}init@CŐݒ肵ȂF̓ftHgFƂȂ܂B + +

    + ̃^uł͎̂Ƃł܂B
    +

      +
    • F̐ݒ +
    • ftHg̐Fɖ߂ +
    + +

    + F̐ݒ̓XgŐFIʼnENbN(or_uNbN)ōs܂B + +

    + ̂Ƃ commctrl̃J[sbJ[gpĂ܂B
    + (TODO Tera Term̃J[sbJ[ɐ؂ւ?) + +

    + ݒ肵F\ +

    +wget https://raw.githubusercontent.com/TeraTermProject/teraterm/main/tests/256colors2.pl -O - | perl
    +wget https://raw.githubusercontent.com/TeraTermProject/teraterm/main/tests/colortable16.sh -O - | sh
    +wget https://raw.githubusercontent.com/TeraTermProject/teraterm/main/tests/color-sgr-decscnm.pl -O - | perl
    + +
    +
    [default]
    +
    ftHgFݒ
    +
    + +
    +

    wie[}Overview

    + + Tera Term ̔wi摜͎̂悤ɍ܂B
    +
    + +
    + +

    FݒOverview

    + +Tera Term 5 alpha _̎dl + +
    ++------------+          +-----------------------------------+         +---------+        +----------+
    +|TERATERM.INI| read     |Tera Term                          |         |Theme    |        |Theme File|
    +|            | (Startup)| +---------+          +----------+ |(launch) |Editor   |  Save  | INI      |
    +| Default    +------------>         | Startup  |          +----------->         +------->+          |
    +|  Colors    |          | | Default +----------> Draw     | |         |         |        | Colors   |
    +|            <------------+  Colors | Load     |  Colors  <-----------+         +<-------+          |
    +|            |  Write   | |         | Default  |          | |   OK    |         |  Load  |          |
    +|            |          | +---------+          +----------+ |         |         |        |          |
    ++------------+          +-----------------------------------+         +---------+        +----------+
    +
    + +
      +
    • Tera Term̃ftHgFTERATERM.INIǂݍ
      + `F̓ftHgFƂȂ
      + Nɓǂݍthemefilew肵ĂāAJ[e[}܂܂ĂƁAe[}̐FƂȂ +
    • Theme EditorŐF[h,ҏWokTera Term̕`p̐FƂȂ +
    • TERATERM.INIɕۑƃftHgFۑ +
    • `FftHgFɎĂƂ͂łȂ +
    + +

    ftHgFɂ‚

    + + ftHgFƃtHg TERATERM.INI ̎̃L[[hŐݒł܂B +
    +| Attr \ ini    | font on/off       | color on/off           | color(R,G,B,R,G,B) |
    +|---------------|-------------------|------------------------|--------------------|
    +| Normal        | -                 | -                      | VTColor            |
    +| Bold          | EnableBold        | EnableBoldAttrColor    | VTBoldColor        |
    +| Blink         | -                 | EnableBlinkAttrColor   | VTBlinkColor       |
    +| Reverse       | -                 | EnableReverseAttrColor | VTReverseColor     |
    +| URL Underline | URLUnderline      | EnableURLColor         | URLColor           |
    +| Underline     | UnderlineAttrFont | UnderlineAttrColor     | VTUnderlineColor   |
    +
    + + + diff --git a/doc/ja/html/menu/setup-additional-visual-theme.png b/doc/ja/html/menu/setup-additional-visual-theme.png new file mode 100644 index 000000000..91ae6d584 Binary files /dev/null and b/doc/ja/html/menu/setup-additional-visual-theme.png differ diff --git a/doc/ja/html/menu/setup-additional-visual.html b/doc/ja/html/menu/setup-additional-visual.html new file mode 100644 index 000000000..159c99e66 --- /dev/null +++ b/doc/ja/html/menu/setup-additional-visual.html @@ -0,0 +1,76 @@ + + + + + Additional settings / "Visual" ^u ([Setup] j[) + + + + + +

    Additional settings / "Visual" ^u ([Setup] j[)

    + +
    +
    Window Opacity / Active
    +
    Window Opacity / Inactive
    +
    + VT EBhEANeBu(tH[JX)AєANeBu(tH[JXȂ)̕sxݒł܂B + l0`255͈̔͂Ŏw肷邱ƂłAlقǓx͋Ȃ܂B
    + ߃EBhEQƂĂB +
    + +
    MouseCursor
    +
    + }EXJ[\̎ʂݒ肷邱Ƃł܂B +
    +ARROW = W̖J[\
    +IBEAM = ACr[ (c) J[\ (ftHg)
    +CROSS = \J[\
    +HAND  = nhJ[\
    +
    +
    + +
    Font quality
    +
    + tHg̕iݒ肷邱Ƃł܂BOSΉĂނ̂ݗLɓ삵܂B +
    +Default         = OS̐ݒ(XN[ tHg̉炩ɂ)Ɉˑ
    +Non-Antialiased = A`GCAX𖳌ɂ
    +Antialiased     = A`GCAXLɂ
    +ClearType       = ClearType𗘗p
    +
    +
    + +
    ANSI color
    +
    PC`aixterm`16F[hŎgpFRGBlݒ肵܂B
    + +
    Enable Bold attribute color
    +
    Enable Bold attribute font
    +
    Enable Underline attribute color
    +
    Enable Underline attribute font
    +
    Enable Blink attribute color
    +
    Enable Reverse attribute color
    +
    Enable URL attribute color
    +
    Enable URL attribute font
    +
    + ꂼ̐F̐F܂̓tHgLɂ܂B +
    + +
    Enable ANSI color
    +
    + ANSI color𖳌ɂꍇA16F256F[hɂȂ܂B +
    + +
    Flickerless move
    +
    + EBhËړATCYɃEBhE̕`̂‚ጸ܂B
    + ̓Iȓ:
    + EBhEbZ[W WM_WINDOWPOSCHANGING + WINDOWPOS \(lParam) flags SWP_NOCOPYBITS Zbg܂B +
    + +
    + + + diff --git a/doc/ja/html/menu/setup-additional.html b/doc/ja/html/menu/setup-additional.html index 238c7177c..53237ea03 100644 --- a/doc/ja/html/menu/setup-additional.html +++ b/doc/ja/html/menu/setup-additional.html @@ -11,472 +11,21 @@

    Additional settings ([Setup] j[)

    +

    e^u

    + -

    "General" ^u

    -
    -
    Enable clickable URL
    -
    - URL _uNbNƂɃuEUN@\Lɂ܂B -
    - -
    Disable accelerator send break
    -
    - Alt-B break 𑗐M@\𖳌ɂ܂B -
    - -
    Accept broadcast
    -
    - u[hLXgR}h󂯓܂B
    - ̐ݒ "Realtime mode" off ̃u[hLXgMɑ΂ėLłB"Realtime mode" on ̃u[hLXgḾA̐ݒlɂ炸M܂B -
    - -
    Mouse wheel scroll line
    -
    - }EXzC[ɂXN[sݒ肵܂B -
    - -
    Auto scroll only in bottom line
    -
    - ʼns\ĂȂԂł͎IɃXN[Ȃ悤ɂ܂B -
    - -
    Clear display when window resized
    -
    - VTEBhẼTCYύXɁA\eNA邩ǂݒ肵܂B -
    - -
    Change cursor shape with IME state
    -
    - IMEon̎ɁAJ[\Ԋ|ɂ邩ݒ肵܂B -
    - -
    List hidden fonts in font dialog
    -
    - Windows 7ȍ~ɂ͊etHgtHgꗗɕ\邩\ɂ邩ݒ肷@\lj܂BTera Term ̂̐ݒLɂƁAOSŔ\ɐݒ肳ꂽtHgtHgݒ_CAOőIł悤ɂȂ܂B -
    - -
    Title format
    -
    EBhE^Cǧ`ݒ肵܂B -
    -
    Display host/port name
    -
    zXg܂̓VA|[g\܂
    - -
    Display session number
    -
    ZbVԍ\܂
    - -
    Display VT/TEK
    -
    VT܂TEK\܂
    - -
    Swap hostname and title position
    -
    zXg^CgeLXg̈ʒuꊷAzXgɕ\܂
    - -
    Display tcp port number
    -
    TCP |[gԍ\܂ (TCP/IP ڑ̂)
    - -
    Display serial port speed
    -
    VA|[g̃Xs[h\܂ (VAڑ̂)
    -
    -
    -
    - - -

    "Control Sequence" ^u

    -
    -
    Accept mouse event tracking
    -
    - zXg̃AvP[VɂāAVT window }EXgbLO[hɕύXꂽꍇATera Term ̓}EXzXg֕񍐂悤ɂȂ܂B
    - }EXgbLO[hxterm̊g@\ł̂ŁATERM‹ϐ"xterm"ȊOƃzXg̃AvP[V͂̋@\gȂ܂B -
    - -
    Disable mouse event tracking when Control is pressed
    -
    - }EXgbLO[hAControlL[ĂԂ̓}EXʒmȂ悤ɂ܂B -
    - -
    Accept window title change request
    -
    - [g̃EBhE^CgύXv󂯓邩ݒ肵܂B -
    -
    off
    -
    󂯓Ȃ
    -
    overwrite
    -
    󂯓A[g̃EChE^Cĝ݂\
    -
    ahead
    -
    󂯓A[g̃EChE^CgW̃^Cg̑Oɒlj
    -
    last
    -
    󂯓A[g̃EChE^CgW̃^Cǧɒlj
    -
    -
    - -
    Window title report
    -
    - dtterm ̃EBhE^CgуACRx񍐗vɑ΂āAǂ̂悤ɉ邩ύXł܂B -
    -
    ignore
    -
    񍐗vɑ΂ĉȂ悤ɂ
    -
    accept
    -
    ݂̃EBhE^Cg񍐂B݂̃EBhE^Cg񍐂̂̓ZLeB댯ł̂ŁA{ɕKvȎ݂̂̐ݒs悤ɂĂB
    -
    empty
    -
    EBhE^Cg͋󂾂ƕ񍐂
    -
    -
    - -
    Window control sequence
    -
    - ̐ݒ肪 on ɂȂĂƁAdtterm̃EBhE쐧V[PX̓Aʒuړ, ŏ, ő剻, őOʈړ, Ŕwʈړ, tbV, EBhETCYύX(sNZP, P) LɂȂ܂B -
    - -
    Window report sequence
    -
    - ̐ݒ肪 on ɂȂĂƁAdtterm̃EBhE񍐂̐V[PX̓AEBhEԕ, EBhEʒu, EBhETCY(sNZP, P), [gEBhETCY LɂȂ܂B
    - ZLeB̗RŃEBhȄ񍐂Ȃꍇ͖ɂĂB -
    - -
    Cursor control sequence
    -
    - J[\`𐧌䂷V[PXgp邩ǂݒ肵܂B
    - ̐ݒ肪 on ɂȂĂƁADECSCUSR(J[\`ύX), WYSTCURM(Wyse_ŃJ[\), WYULCURM(WyseJ[\), AT&T 610̃J[\_ŐV[PXɉāAJ[\`󂪕ύX܂B - -

    - vimgpĂꍇA̋@\ on ɂ ~/.vimrc Ɉȉ̂悤ɒljƓ̓[hɉăJ[\`󂪕ς悤ɂȂ܂B -

    - -
    -set t_SI=^[[3\ q
    -set t_EI=^[[1\ q
    -: ^[ Control-V Control-[œ͂
    -
    - - AvP[VIɁAJ[\_ŏԂɖ߂ɂ́Aȉ̂悤ɐݒ܂B
    - ncurses 5.7 terminfo ł xterm ̃J[\̔\(civis)/ʏ\(cnorm)/\(cvvis)͂ꂼȉ̂悤ɂȂĂ܂B - -
    -civis=\E[?25l
    -cnorm=\E[?12l\E[?25h
    -cvvis=\E[?12;25h
    -
    - - ̐ݒ肾ƁAJ[\̒ʏ\͔_łɁA\͓_ł悤ɂȂ܂B - ̂ terminfo Ή̃AvP[VJ[\ʏ\悤Ƃɓ_łȂȂ܂B
    - ΉƂẮAJ[\̓_Ő𖳎ׂ CursorCtrlSequence off ɐݒ肷邩AJ[\\ԕύXɓ_ŏԂύXȂ悤Ɉȉ̎菇zXgŎ{ĂB - -
    -% infocmp xterm > xterm.ti
    -ꂽxterm.tiҏWAcnorm, cvvis̒l \E?25h ɕύX
    -% tic -o ~/.terminfo xterm.ti
    -VXeŜɔf邽߂ɂ root ňȉs
    -# tic xterm.ti
    -
    -
    - -
    Clipboard access from remote
    -
    - zXg̃Nbv{[hւ̃ANZX‚邩ݒ肵܂B -
    -
    off
    -
    Nbv{[hւ̃ANZX‚Ȃ
    -
    write only
    -
    Nbv{[hւ݂̏‚
    -
    read only
    -
    Nbv{[hւ̓ǂݍ݂‚
    -
    read/write
    -
    Nbv{[hւ̓ǂݏ‚
    -
    -
    - -
    Notify clipboard access from remote
    -
    - zXg̃Nbv{[hւ̃ANZXʒm邩ݒ肵܂B -
    - -
    - - -

    "Copy and Paste" ^u

    -
    -
    Enable continued line copy
    -
    - pĂssɃRs[@\Lɂ܂B -
    - -
    Disable mouse R button paste
    -
    - ENbNŃNbv{[h̓e\t@\𖳌ɂ܂B -
    - -
    Confirm mouse R button paste
    -
    - ENbNŃNbv{[h̓e\tƂA - |bvAbvj[ŊmF@\Lɂ܂B -
    - -
    Select only by L button
    -
    - }EXhbOɂIA{^ł̂ݗLɂB -
    - -
    Trim trailing new line character when pasting
    -
    - \tɖ̉s폜B -
    - -
    Normalize line break when pasting
    -
    - \tɉs𐳋K܂BNbv{[h̓ẻs CR LF ɁAׂ CR+LF ɕϊ܂B -
    - -
    Confirm change paste
    -
    - Nbv{[hɉsR[h(CR/LF)܂ޏꍇA}EX̉ENbNAlt+V - Tera TermEBhE֓\t悤Ƃ^C~OŁAmF_CAO\邱Ƃł܂B - 둀ɂA[֗\ʃR}hhƂł܂B -
    - -
    String file
    -
    - Nbv{[hɁA̐ݒŎw肵t@Cɑ݂eLXg܂܂ꍇA}EX̉ENbNAlt+V - Tera TermEBhE֓\t悤Ƃ^C~OŁAmF_CAO\邱Ƃł܂B - 둀ɂA[֗\ʃR}hhƂł܂B
    - ̐ݒ́AConfirmChangePaste̐ݒ肪Lȏꍇɍp܂B -
    - -
    Delimiter characters
    -
    - PI̋؂蕶ݒ肵܂B -
    - -
    Paste delay per line
    -
    - s̃f[^\tƂAs邲ƂɃf[^̑Mx邱Ƃł܂Bx鎞Ԃ~bŐݒ肵܂B -
    - -
    - - -

    "Visual" ^u

    -
    -
    Window Transparency / Active
    -
    Window Transparency / Inactive
    -
    - VT EBhEANeBu(tH[JX)AєANeBu(tH[JXȂ)̓xݒł܂B - l0`255͈̔͂Ŏw肷邱ƂłAlقǓx͋Ȃ܂B -
    - -
    Eterm lookfeel
    -
    - Eterm̔EBhEgp邱Ƃł܂B -
    - -
    Background Image
    -
    - Eterm lookfeel@\L̏ꍇAwi摜w肷邱Ƃł܂B -
    - -
    Image Brightness
    -
    - Eterm lookfeel@\L̏ꍇAwi摜̖邳0`255͈̔͂Ŏw肷邱Ƃł܂B
    - lقǖ邭Ȃ܂B -
    - -
    -

    - ڂ́u߃EChEv - QƂĂB -

    - -
    -
    MouseCursor
    -
    - }EXJ[\̎ʂݒ肷邱Ƃł܂B -
    -ARROW = W̖J[\
    -IBEAM = ACr[ (c) J[\ (ftHg)
    -CROSS = \J[\
    -HAND  = nhJ[\
    -
    -
    - -
    Font quality
    -
    - tHg̕iݒ肷邱Ƃł܂BOSΉĂނ̂ݗLɓ삵܂B -
    -Default         = OS̐ݒ(XN[ tHg̉炩ɂ)Ɉˑ
    -Non-Antialiased = A`GCAX𖳌ɂ
    -Antialiased     = A`GCAXLɂ
    -ClearType       = ClearType𗘗p
    -
    -
    - -
    ANSI color
    -
    PC`aixterm`16F[hŎgpFRGBlݒ肵܂B
    - -
    Enable Bold attribute color
    -
    Enable Blink attribute color
    -
    Enable Reverse attribute color
    -
    Enable URL attribute color
    -
    Enable ANSI color
    -
    - ꂼ̐FѐFݒLɂ܂B
    - ANSI color𖳌ɂꍇA16F256F[hɂȂ܂B -
    - -
    Underline URL string
    -
    - URL ɉLɂ܂B -
    - -
    - - -

    "Log" ^u

    -
    -
    View log editor
    -
    - O\GfB^w肵܂B -
    - -
    Default log file name(strftime format)
    -
    - W̃Ot@Cw肵܂Bstrftime ̏gpł܂B -
    -:
    -&h      zXgBڑ̏ꍇ͋B
    -&p      TCP |[gԍBڑ̏ꍇ͋BTCP ڑłȂƂB
    -&u      OĨ[UB
    -%a      j̏ȗ`B
    -%A      j̐B
    -%b      ̏ȗ`B
    -%B      ̐B
    -%c      P[ɑΉtƎ̕\B
    -%d      10 iŕ\̓t (01 ` 31)B
    -%H      24 ԕ\L̎ (00 ` 23)B
    -%I      12 ԕ\L̎ (01 ` 12)B
    -%j      10 iŕ\N̓ (001 ` 366)B
    -%m      10 iŕ\ (01 ` 12)B
    -%M      10 iŕ\ (00 ` 59)B
    -%p      ݂̃P[̌ߑO/ߌB
    -%S      10 iŕ\b (00 ` 59)B
    -%U      10 iŕ\T̒ʂԍBjT̍ŏ̓Ƃ (00 ` 53)B
    -%w      10 iŕ\j (0 ` 6Aj 0)B
    -%W      10 iŕ\T̒ʂԍBjT̍ŏ̓Ƃ (00 ` 53)B
    -%x      ݂̃P[̓t\B
    -%X      ݂̃P[̎\B
    -%y      10 iŕ\̉ 2  (00 ` 99)B
    -%Y      10 iŕ\ 4 ̐B
    -%z, %Z  WXg̐ݒɉāA^C ][̖O܂͏ȗ`w肵܂B
    -	^C ][sȏꍇ͎w肵܂B
    -%%      p[ZgLB
    -
    -
    - -
    Default log save folder
    -
    - W̃Oۑw肵܂BOt@CtpXŎw肳ȂƂɎgp܂B -
    - -
    Auto start logging
    -
    - ڑɎIɃO̎Jn@\Lɂ܂BOt@Cɂ́AW̃Ot@Cgp܂B
    - /nolog R}hCIvVw肳ĂƁAY@\͖܂B -
    - -
    Log Rotate
    -
    - Õ[e[gLɂ܂B[e[gꂽOt@Cɂ́Agq .1, .2, .3 c ƕt^܂B -
    -
    Size
    -
    - O[e[gTCYݒ肵܂BPʂ"KB", "MB"w肷邱Ƃł܂B -
    - -
    Rotate
    -
    - O[e[g鐢㐔ݒ肵܂B"0"̏ꍇ́AǗ܂B -
    -
    -
    - -
    Log option
    -
    - Ot@C̎ʂݒ肵܂B -
    -
    Binary
    -
    - zXgM̂܂܃t@Cɏ݂ꍇ͑IĂB - IȂꍇ́AR[hAs͕ϊA - GXP[vV[PX͎菜Ă珑܂܂B -
    - -
    Append
    -
    - łɑ݂t@Cɒljď݂ꍇ͑IĂB - IȂꍇ͏㏑܂B -
    - -
    Plain text
    -
    - ASCII \݂Ȃꍇ͑IĂB
    - Binary IvVL̏ꍇ͑Is‚łAݒ͖܂B -
    - -
    Hide dialog
    -
    - O]̃_CAO\Ȃꍇ͑IĂB -
    - -
    Include screen buffer
    -
    - ݂̒[obt@ׂăOt@CɏoĂAO̎Jn܂B -
    - -
    Timestamp
    -
    - O̍sɎljꍇ͑IĂBs̍ŏ̕o͂ꂽlj܂B
    - ^CX^v̎ʂƂĈȉIł܂B -
    -
    Local Time
    -
    - [J^Cł̓L^܂B -
    - -
    UTC
    -
    - UTC ł̓L^܂B -
    - -
    Elapsed Time (Logging)
    -
    - O擾JňoߎԂL^܂B -
    - -
    Elapsed Time (Connection)
    -
    - ڑJňoߎԂL^܂B -
    -
    - Local Time, UTC ł̓̃tH[}bg LogTimestampFormat ̐ݒɏ]܂B
    - Elapsed Time (Logging), Elapsed Time (Connection) ł LogTimestampFormat ̐ݒ͖܂B
    - Binary IvVL̏ꍇ͑Is‚łAݒ͖܂B -
    -
    -
    -
    - - -

    "Cygwin" ^u

    -
    -
    Cygwin install path
    -
    - Cygwin ̃CXg[w肵܂B -
    - -
    CygTerm
    -
    - CygTerm ̐ݒ܂Beڂ̈Ӗɂ‚ẮACygTerm+ ݒt@C QƂĂB -

    : version 4.88ȑÕo[Wł͐ݒɎcygterm.cfgXVĂ܂Aversion 4.89ȍ~ł͎ł̍XVsȂ悤ɂȂ܂B
    - cygterm.cfgXV邽߂ɂ Setup - Save Setup sKv܂B -

    -
    -
    diff --git a/doc/ja/html/menu/setup-directory.html b/doc/ja/html/menu/setup-directory.html index fd3a1a557..92e7dcdaa 100644 --- a/doc/ja/html/menu/setup-directory.html +++ b/doc/ja/html/menu/setup-directory.html @@ -11,19 +11,23 @@

    Setup directory ([Setup] j[)

    - Tera Termݓǂݍłݒt@Cɑ΂āAL̑sƂł܂B
    - Virtual Store(Windows Vistaȍ~)Ăꍇ́Aݒt@CVirtual Store悪ΏۂƂȂ܂B + Tera Termݓǂݍłݒt@Cɑ΂āAL̑sƂł܂B

    -
    ...
    +
    Open File
    +
    + ݒt@CView log editorŎw肵AvP[VŊJ܂B +
    + +
    Open Folder(with Explorer)
    ݒt@C̃pXGNXv[ŊJ܂B
    -
    Open File
    +
    Send path to clipboard
    - ݒt@CView log editorŎw肵AvP[VŊJ܂B + ݒt@C̃pXNbv{[hɃZbg܂B
    diff --git a/doc/ja/html/menu/setup-font.html b/doc/ja/html/menu/setup-font.html index e37642962..88b0dcdc3 100644 --- a/doc/ja/html/menu/setup-font.html +++ b/doc/ja/html/menu/setup-font.html @@ -11,49 +11,7 @@

    Font ([Setup] j[)

    - tHgύX܂B + Additional settings Font ^uJ܂B

    - -

    tHg _CAO{bNX

    -
    -
    tHg
    -
    - ύXtHgXg̒IĂB - {\邽߂ɂ͓{tHgIKv܂B -
    - -
    X^C
    -
    - IĂ܂B -
    - -
    TCY
    -
    - tHg̃TCY|CgŎw肵ĂB -
    - -
    Zbg
    -
    - \ZbgXg̒IĂB -
    -
    - -

    - diff --git a/doc/ja/html/menu/setup-general.html b/doc/ja/html/menu/setup-general.html index 281d06cd5..1bc3260e7 100644 --- a/doc/ja/html/menu/setup-general.html +++ b/doc/ja/html/menu/setup-general.html @@ -10,29 +10,8 @@

    General ([Setup] j[)

    - -

    "General setup" _CAO{bNX

    -
    -
    Default port
    -
    - Tera Term R}hCp[^[ȂŋNƂɐڑ|[g̎ (TCP/IP ܂ Serial)B -
    - -
    Language
    -
    - ^[~iG~[V̌ꃂ[h(p/{/؍/VA/UTF-8)B - - {\邽߂ɂ Japanese ܂ UTF-8 IKv܂B - { EUC SJIS ̕R[h𗘗p邱Ƃꍇ Japanese A - gp UTF-8 ݂̂gpꍇ UTF-8 IĂB -
    - -
    LanguageUI
    -
    - t@C(lang\*.lng)̎wɂAj[⃁bZ[W̌؂ւ邱Ƃł܂B - t@CQƂ̂ƁB - {ꃁj[\邽߂ɂ Japanese.lng IĂB -
    -
    +

    + Additional settings Keyboard ^uJ܂B +

    diff --git a/doc/ja/html/menu/setup-keyboard.html b/doc/ja/html/menu/setup-keyboard.html index 0d40b79dc..8f0537d8b 100644 --- a/doc/ja/html/menu/setup-keyboard.html +++ b/doc/ja/html/menu/setup-keyboard.html @@ -10,68 +10,8 @@

    Keyboard ([Setup] j[)

    - -

    "Keyboard setup" _CAO{bNX

    -
    -
    Transmit DEL by:
    -
    -
    -
    Backspace key
    -
    - ̃IvVI backspace L[ DEL - (ASCII $7F) o܂B - IȂ BS (ASCII $08) o܂B
    - ܂ÃIvVIꂽ(IȂ)ł - Ctrl+Backspace BS (DEL) 𑗏oł܂B -
    - -
    Delete key
    -
    - ̃IvVI Delete (Del) L[ - DEL o܂B - ̃IvVIȂꍇADelete L[̋@\ - L[{[hݒt@C - ɂ茈肳܂B -
    -
    -
    - -
    Meta key
    -
    - Alt L[^EL[ (meta key) ƂĎg܂B - Ⴆ΁AAlt+A ƁAESC A 𑗏o܂B - ^EL[[hł́AV[gJbgEL[͈ꕔĎgpłȂȂ܂B
    - ^EL[Lɂ‚ AltGr L[Ƃ̑gݍ킹ŕ͂ꍇ́Aݒl left ɂ܂BNT 4.0 ȍ~̂ݑΉ -
    - -
    Disabled mode:
    -
    -
    -
    Application Keypad
    -
    - AvP[VL[pbh[h𖳌ɂ܂B
    - AvP[VL[pbh[h𖳌ɂƁA - Ȃɂ̔qŃAvP[VL[pbh[hɈڍsĂ܂ - lL[pbhgȂȂƂguhł܂B - AAvP[VL[pbh[hgpĂ - AvP[Vł͕sN邩܂B -
    - -
    Application Cursor
    -
    - AvP[VJ[\[h𖳌ɂ܂B -
    -
    -
    -
    - -

    - L[{[hݒt@C - 邱ƂŎRɃL[ݒύX邱Ƃł܂B -

    -

    - VAꃂ[h̃wv + Additional settings Keyboard ^uJ܂B

    diff --git a/doc/ja/html/menu/setup-keyboard_ru.html b/doc/ja/html/menu/setup-keyboard_ru.html deleted file mode 100644 index 4d8696335..000000000 --- a/doc/ja/html/menu/setup-keyboard_ru.html +++ /dev/null @@ -1,83 +0,0 @@ - - - - - Keyboard ([Setup] j[; VAꃂ[h) - - - - - -

    Keyboard ([Setup] j[; VAꃂ[h)

    - -

    "Keyboard setup" _CAO{bNX

    -
    -
    Transmit DEL by:
    -
    -
    -
    Backspace key
    -
    - ̃IvVI backspace L[ DEL - (ASCII $7F) o܂B - IȂ BS (ASCII $08) o܂B
    - ܂ÃIvVIꂽ(IȂ)ł - Ctrl+Backspace BS (DEL) 𑗏oł܂B -
    - -
    Delete key
    -
    - ̃IvVI Delete (Del) L[ - DEL o܂B - ̃IvVIȂꍇADelete L[̋@\ - L[{[hݒt@C - ɂ茈肳܂B -
    -
    -
    - -
    Keyboard
    -
    - VAL[{[h^Cvw肵܂BVA Windows - ŃX^_[hL[{[hhCogpĂȂAWindows - IĂB - ȂVAłȂ Windows gpĂāAKOI8-R - R[h𐶐hCogpĂȂAKOI8-R - IĂB -
    - -
    Meta key
    -
    - Alt L[^EL[ (meta key) ƂĎg܂B - Ⴆ΁AAlt+A ƁAESC A 𑗏o܂B - ^EL[[hł́AV[gJbgEL[͈ꕔĎgpłȂȂ܂B
    - ^EL[Lɂ‚ AltGr L[Ƃ̑gݍ킹ŕ͂ꍇ́Aݒl left ɂ܂BNT 4.0 ȍ~̂ݑΉ -
    - -
    Disabled mode:
    -
    -
    -
    Application Keypad
    -
    - AvP[VL[pbh[h𖳌ɂ܂B
    - AvP[VL[pbh[h𖳌ɂƁA - Ȃɂ̔qŃAvP[VL[pbh[hɈڍsĂ܂ - lL[pbhgȂȂƂguhł܂B - AAvP[VL[pbh[hgpĂ - AvP[Vł͕sN邩܂B -
    - -
    Application Cursor
    -
    - AvP[VJ[\[h𖳌ɂ܂B -
    -
    -
    -
    - -

    - L[{[hݒt@C - 邱ƂŎRɃL[ݒύX邱Ƃł܂B -

    - - diff --git a/doc/ja/html/menu/setup-proxy.html b/doc/ja/html/menu/setup-proxy.html index c52d5c60c..2b8cb05ab 100644 --- a/doc/ja/html/menu/setup-proxy.html +++ b/doc/ja/html/menu/setup-proxy.html @@ -11,6 +11,8 @@

    Proxy ([Setup] j[)

    +ӁFݒLɂɂ́Aݒ̕ۑTera Term̍ċNKvłB +

    "Proxy Setup" _CAO{bNX

    Type
    @@ -28,6 +30,11 @@
    Hostname
    vLVT[ow肵܂B + +

    + zXgAIPv4AhXAIPv6AhXwł܂B
    + IPv6AhX͊pʁi劇ʁjň͂ޕKv͂܂B +

    Port number
    diff --git a/doc/ja/html/menu/setup-serialport.html b/doc/ja/html/menu/setup-serialport.html index 56877f553..72248a346 100644 --- a/doc/ja/html/menu/setup-serialport.html +++ b/doc/ja/html/menu/setup-serialport.html @@ -12,10 +12,30 @@

    Serial port ([Setup] j[)

    "Serial port setup" _CAO{bNX

    +
    +
    OK button
    +
    + ݂̐ڑԂāAVAڑ̓\܂B
    + VEBhEŐڑ ... TCP/IPڑ̂߁AVEBhEŃVAڑs܂B
    + VKI[v ... VAڑs܂B
    + N[YVKI[v ... ݊JĂCOM|[g‚āAVCOM|[gŃVAڑs܂B
    + ݂̐ڑĐݒ ... ݊JĂCOM|[g̐ݒύX܂B
    +
    + +
    Cancel button
    +
    + ݒύXLZāA_CAOI܂B +
    + +
    Help button
    +
    + wv\܂B +
    +
    Port
    - gp|[gB + gp|[głBXgɕ\VA|[gԍ̍ől̓ftHg256ƂȂĂ܂BMaxComPortōőlύXł܂B
    Speed, Data, Parity, Stop bits, Flow control
    @@ -25,12 +45,22 @@

    Speed ͔Cӂ̐lw肷邱Ƃł܂BIEw肵ݒ肪ۂɔf邩́AVA|[g̃`bvEhCo̎dlɂ܂B

    +

    + Flow control͈ȉݒł܂B
    + Xon/Xoff ... \tgEFAt[
    + RTS/CTS ... n[hEFAt[(RTS/CTS)
    + DSR/DTR ... n[hEFAt[(DSR/DTR)
    + none ... t[Ȃ
    +

    : Data 7 ɂƁAXMODEM, ZMODEM, B-PLUS, Quick-VAN ɂt@C]͂ł܂B ܂ Flow control Xon/Xoff ɂƁAXMODEM, Quick-VAN ɂt@C]͂ł܂B

    +

    + : o[W4.104ȑO"hardware"RTS/CTSɊY܂B +

    Transmit delay
    @@ -39,6 +69,13 @@ Pʂ̓~błB1(s)Ƃ̑҂Ԃݒł܂B
    Tera Term ʂ̕𑗏oƂɃfzXg肱ڂꍇɂ͓Kȑ҂Ԃݒ肵Ă݂ĂB + +
    COM|[g̏ڍ׏
    +
    + eLXg{bNXł͑I𒆂COM|[gɊւڍ׏\܂B
    + CTRL+AőSIł܂BCTRL/SHIFT+zC[ʼnXN[ł܂B +
    +
    diff --git a/doc/ja/html/menu/setup-ssh.html b/doc/ja/html/menu/setup-ssh.html index ec53ce434..f5e209b2e 100644 --- a/doc/ja/html/menu/setup-ssh.html +++ b/doc/ja/html/menu/setup-ssh.html @@ -22,14 +22,14 @@ aes256-gcm@openssh.com not RFC5647, PROTOCOL of OpenSSH - - aes128-gcm@openssh.com - not RFC5647, PROTOCOL of OpenSSH - camellia256-ctr draft-kanno-secsh-camellia-02 + + chacha20-poly1305@openssh.com + PROTOCOL.chacha20poly1305 of OpenSSH + aes256-ctr RFC4344 @@ -58,6 +58,10 @@ aes192-cbc RFC4253 + + aes128-gcm@openssh.com + not RFC5647, PROTOCOL of OpenSSH + camellia128-ctr draft-kanno-secsh-camellia-02 @@ -230,6 +234,18 @@ SSH2 ڑŎgpMAC̎ނtĎw肵܂B
    <MACs below this line are disabled>ȉ̈Í͎gp܂B + + + + + + + + + + + + @@ -242,14 +258,30 @@ + + + + + + + + + + + + + + + + @@ -280,7 +312,15 @@ - + + + + + + + + + @@ -300,14 +340,17 @@
    hmac-sha2-512-etm@openssh.com
    hmac-sha2-256-etm@openssh.com
    hmac-sha1-etm@openssh.com
    hmac-sha2-512 RFC6668hmac-sha1 RFC4253
    hmac-ripemd160-etm@openssh.com
    hmac-ripemd160@openssh.com
    hmac-md5-etm@openssh.com
    hmac-md5 RFC4253
    hmac-sha1-96-etm@openssh.com
    hmac-md5-96-etm@openssh.com
    hmac-sha1-96 RFC4253
    ssh-ed25519draft-ietf-curdle-ssh-ed25519-02RFC8709
    rsa-sha2-512RFC8332
    rsa-sha2-256RFC8332
    ssh-rsa
    + + +
    zlib@openssh.comPROTOCOL of OpenSSH xk(FؐɈkJn)
    zlibRFC4253
    noneRFC4253
    @@ -321,6 +364,52 @@ SSH1 ̏ꍇ́ACompression level 0 łΈkA1 ȏłΈkLɂȂ܂B
    SSH2 ̏ꍇ́ACompression order ňkLɂ܂B̂ Compression level 1 ȏɂƈkLɂȂ܂B + +
    LogLevel
    +
    + TTSSH̃fobOxw肵܂B
    + fobOx 0 傫ꍇAfobOOtH_ + uTTSSH.LOGvAussh2connect.logvAussh2packet.logvƂt@CɋL^܂B
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    lӖ
    0
    5Fatal
    10Error
    30Warning
    50Notice
    80Information
    100Verbose
    200SSH Dump
    +
    +
    diff --git a/doc/ja/html/menu/setup-sshauth.html b/doc/ja/html/menu/setup-sshauth.html index 13cc306ea..79f046e6c 100644 --- a/doc/ja/html/menu/setup-sshauth.html +++ b/doc/ja/html/menu/setup-sshauth.html @@ -12,93 +12,95 @@

    SSH Authentication ([Setup] j[)

    "TTSSH: Authentication Setup" _CAO{bNX

    -
    +
    User name
    - SSH ڑŗp郆[Uw肵܂B + [U̎w肪ȂƂɎgp郆[Uw肵܂B
    + Check the supported authentication methods before login`FbNĂƁA[U͕ύXłȂȂ܂B + +
    +
    Do not enter username
    +
    + ͂܂B +
    + +
    Use default username
    +
    + IƃftHg[Ugp܂B
    + ftHg[U̓GfBbg{bNXŐݒ肵܂B + ftHg[Ȕꍇ͉͂܂B +
    + +
    Use logon username
    +
    + Windows ̃OI[Ugp܂B +
    +
    +
    ftHgŎgpFؕ@ݒ肵܂B
    -
      -
    • +
      +
      Use plain password to log in
      +
      + pX[hF؂pꍇɎw肵܂B +
      + +
      Use RSA/DSA/ECDSA/ED25519 key to login
      +
      + 炩ߍ쐬 RSA/DSA/ECDSA/ED25519 pFؕ@I܂B
      -
      Use plain password to log in
      +
      Private key file
      - pX[hF؂pꍇɎw肵܂B + OpenSSH `̔閧t@Cw肵܂B
      + TTSSH 2.63(Tera Term 4.76) ȍ~ł PuTTY `ESECSH(ssh.com) ` SSH2 閧ɂΉĂ܂B
      -
    • - -
    • +
    + +
    Use rhost to login (SSH1)
    +
    + zXg̐ݒ rhost płꍇɑI܂B
    -
    Use RSA/DSA/ECDSA/ED25519 key to login
    +
    Local user name
    - 炩ߍ쐬 RSA/DSA/ECDSA/ED25519 pFؕ@I܂B -
    -
    Private key file
    -
    - OpenSSH `̔閧t@Cw肵܂B
    - TTSSH 2.63(Tera Term 4.76) ȍ~ł PuTTY `ESECSH(ssh.com) ` SSH2 閧ɂΉĂ܂B -
    -
    + [Uw肵܂B
    -
    - - -
  • -
    -
    Use rhost to login (SSH1)
    +
    Host private key file
    - zXg̐ݒ rhost płꍇɑI܂B -
    -
    Local user name
    -
    - [Uw肵܂B -
    -
    Host private key file
    -
    - OpenSSH `̔閧t@Cw肵܂B -
    -
    + OpenSSH `̔閧t@Cw肵܂B
    -
  • - -
  • +
  • + +
    Use SSH1:challenge/response(TIS) / SSH2:keyboard-interactive to log in
    +
    -
    Use SSH1:challenge/response(TIS) / SSH2:keyboard-interactive to log in
    +
    SSH1
    -
    -
    SSH1
    -
    - `W/X|XF(TISF)pꍇɎw肵܂B - T[oɂĂ S/Key F؂ɂȂꍇ܂B -
    -
    SSH2
    -
    - L[{[hEC^NeBuF؂pꍇɎw肵܂B - FreeBSD ̃pX[hF؂𖳌ɐݒ肵T[oցApX[hgăOCꍇ́A - ̔Fؕg܂B
    - ̔Fؕł́A͂eÍꂽԂŃT[o֑܂B - F؂ׂ̈ɃpX[h͂ꍇ́ApX[hF؂Ɠ悤ɁA - ÍꂽpX[hʐMH𗬂܂B -
    -
    + `W/X|XF(TISF)pꍇɎw肵܂B + T[oɂĂ S/Key F؂ɂȂꍇ܂B
    -
    - - -
  • -
    -
    Use Pageant
    +
    SSH2
    - Pageant ƒʐM RSA/DSA pF؂ꍇɎw肵܂B
    - TTSSH ͔閧t@C܂B + L[{[hEC^NeBuF؂pꍇɎw肵܂B + FreeBSD ̃pX[hF؂𖳌ɐݒ肵T[oցApX[hgăOCꍇ́A + ̔Fؕg܂B
    + ̔Fؕł́A͂eÍꂽԂŃT[o֑܂B + F؂ׂ̈ɃpX[h͂ꍇ́ApX[hF؂Ɠ悤ɁA + ÍꂽpX[hʐMH𗬂܂B
    -
  • +
    + +
    Use Pageant
    +
    + Pageant ƒʐM RSA/DSA pF؂ꍇɎw肵܂B
    + TTSSH ͔閧t@C܂B +
    +
    diff --git a/doc/ja/html/menu/setup-sshkeygenerator.html b/doc/ja/html/menu/setup-sshkeygenerator.html index aeff6aaa9..5aacfb30f 100644 --- a/doc/ja/html/menu/setup-sshkeygenerator.html +++ b/doc/ja/html/menu/setup-sshkeygenerator.html @@ -70,6 +70,6 @@
    Save private key
    閧ۑ܂B
    閧 AES-128 ňÍ܂B(Tera Term 4.76(TTSSH 2.63) ܂ł 3DES ňÍ܂)
    -
    +
    diff --git a/doc/ja/html/menu/setup-tcpip.html b/doc/ja/html/menu/setup-tcpip.html index f96bc5b3a..a63a052be 100644 --- a/doc/ja/html/menu/setup-tcpip.html +++ b/doc/ja/html/menu/setup-tcpip.html @@ -10,63 +10,8 @@

    TCP/IP ([Setup] j[)

    - -

    "TCP/IP setup" _CAO{bNX

    -
    -
    Host list
    -
    - [File] New connection - sɌ_CAO{bNX̃zXgXgҏWł܂B - zXg܂ IP address Xgɉ邱Ƃł܂B - 悭ڑzXg̃Xgɓo^Ăƕ֗łB
    - ܂AzXgłȂȉ̂悤 - R}hC - Xgɓo^邱Ƃł܂B - -
    -      myhost.mydomain                     ʏ̓zXg܂ IP address 
    -      myhost.mydomain:23                  zXgƃ|[gԍ
    -      foohost.foodomain /F=FOOHOST.INI    zXg+ݒt@Cw
    -      /C=1                                VA|[gw肷邱Ƃ”\
    -      /R=LOG.DAT                          zXg|[gɐڑɁAOt@C̓eĐ
    -      
    - -
    -
    History
    -
    - ̃IvVIƁA[File] New connection - _CAO{bNXœ͂ꂽzXgzXgXg̐擪ɒlj܂B -
    -
    -
    - -
    Auto window close
    -
    - ̃IvVIƁAzXgƂ̐ڑ؂ꂽƂI - Tera Term I܂B -
    - -
    TCP port#
    -
    - |[gԍBTelnet gpƂ́Aʏ23ɂ܂B -
    - -
    Telnet
    -
    - Telnet vgRgp܂Bʏ͑IĂB -
    - -
    Keep alive
    -
    - Ԋu Telnet T[oɑ΂āANOP(IAC NOP: 255 241)𑗐M܂BL[vACu(n[gr[g)@\ƂĂ΂܂B0œY@\͖ƂȂ܂BftHg300b(5)łB -
    - -
    Terminal type
    -
    - Telnet vgRŐڑƂzXgɕ񍐂 terminal typeB
    - TermType"xterm"ɐݒ肷邱ƂɂAANSIJ[ɑΉĂvim6ȂǂŃJ[\邱Ƃł܂B̓IWi炠@\łB
    - Windows Telnet T[o "xterm" 𐳂󂯕tȂ̂ŁA"vt100" "ANSI" w肵ĂB -
    -
    +

    + Additional settings TCP/IP ^uJ܂B +

    diff --git a/doc/ja/html/menu/setup-terminal.html b/doc/ja/html/menu/setup-terminal.html index 8fae6c135..0930a7c48 100644 --- a/doc/ja/html/menu/setup-terminal.html +++ b/doc/ja/html/menu/setup-terminal.html @@ -3,25 +3,13 @@ - Terminal ([Setup] j[; {ꃂ[h) + Terminal ([Setup] j[) -

    Terminal ([Setup] j[; {ꃂ[h)

    - -

    - ̃y[W Setup - General Language Japanese I̐łB - ̌ꃂ[hgp͈ȉ̃y[WQƂĂB -

    - - +

    Terminal ([Setup] j[)

    "Terminal setup" _CAO{bNX

    @@ -29,7 +17,7 @@
    ^[~iTCY([ʂ̘_TCY)B X c ̕Ŏw肵܂B - EChETCY(ۂ̉ʂ̑傫)ƕKł͂܂B + EBhETCY(ۂ̉ʂ̑傫)ƕKł͂܂B
    Term size = win size
    @@ -40,7 +28,7 @@
    Auto window resize
    ̃IvVIꍇA^[~iTCYύXꂽƂɁA - EChETCY傫ɎIɕύX܂B + EBhETCY傫ɎIɕύX܂B
    New-line (receive)
    @@ -83,8 +71,8 @@
    zXgɕ񍐂 Terminal IDBTerminal ID telnet terminal type Ƃ͈Ⴂ܂BTelnet terminal type ύXɂ - [Setup] TCP/IP - R}hgpĂB + [Setup] Addtional Setting TCP/IP ^u Terminal type + ύXĂB
    Local echo
    @@ -110,9 +98,15 @@ TEK window ֐ڂ܂(tl)B +
    + +
    + +
    +
    Kanji (receive)
    - zXg瑗Ă銿R[h (SJIS, EUC, JIS, UTF-8, UTF-8m 5)B + zXg瑗Ă銿R[h (SJIS, EUC, JIS, UTF-8 4)B
    7bit katakana (receive)
    @@ -154,12 +148,6 @@

    -
    locale
    -
    - P[B - ڍׂUnicodeݒQƁB -
    -
    diff --git a/doc/ja/html/menu/setup-terminal_en.html b/doc/ja/html/menu/setup-terminal_en.html deleted file mode 100644 index d650920cc..000000000 --- a/doc/ja/html/menu/setup-terminal_en.html +++ /dev/null @@ -1,114 +0,0 @@ - - - - - Terminal ([Setup] j[; pꃂ[h) - - - - - -

    Terminal ([Setup] j[; pꃂ[h)

    - -

    - ̃y[W Setup - General Language English I̐łB - ̌ꃂ[hgp͈ȉ̃y[WQƂĂB -

    - - - -

    "Terminal setup" _CAO{bNX

    -
    -
    Terminal size
    -
    - ^[~iTCY([ʂ̘_TCY)B - X c ̕Ŏw肵܂B - EChETCY(ۂ̉ʂ̑傫)ƕKł͂܂B -
    - -
    Term size = win size
    -
    - ̃IvVIꍇA^[~iTCYƃEBhETCYɓ܂B -
    - -
    Auto window resize
    -
    - ̃IvVIꍇA^[~iTCYύXꂽƂɁA - EChETCY傫ɎIɕύX܂B -
    - -
    New-line (receive)
    -
    -
    -
    CR
    -
    ϊ܂B
    - -
    CR+LF
    -
    Mꂽ s CR ($0D) CR+LF ($0D $0A)ɕϊ܂B
    - ) "CR LF" MꂽꍇA"CR LF LF" ɕϊ܂B
    - -
    LF
    -
    Mꂽ s LF ($0A) CR+LF ($0D $0A)ɕϊ܂B
    - ) "CR LF" MꂽꍇA"CR CR LF" ɕϊ܂B
    - -
    AUTO
    -
    Mꂽ s CR ($0D), s LF ($0A) CR+LF ($0D $0A)ɕϊ܂B
    - ) "CR LF" MꂽꍇAϊ܂B
    - "CR" MꂽꍇA"CR LF" ɕϊ܂B
    - "LF" MꂽꍇA"CR LF" ɕϊ܂B
    -
    -
    - -
    New-line (transmit)
    -
    -
    -
    CR
    -
    ϊ܂B
    - -
    CR+LF
    -
    Mɉs CR ($0D) CR+LF ($0D $0A) ɕϊ܂B
    - -
    LF
    -
    Mɉs CR ($0D) LF ($0A) ɕϊ܂B
    -
    -
    - -
    Terminal ID
    -
    - zXgɕ񍐂 Terminal IDBTerminal ID telnet - terminal type Ƃ͈Ⴂ܂BTelnet terminal type ύXɂ - [Setup] TCP/IP - R}hgpĂB -
    - -
    Local echo
    -
    - L[͓ɂ著o镶̂܂܉ʂɕ\܂B -
    - -
    Answerback
    -
    - zXg ENQ ($05) ĂɁAԂB - 񒆂Ɋ܂܂\s”\ȕ(䕶)́A"$" ɂ‚Â - ASCII R[h(216i) ŕ\ĂB - Ⴆ΁A "ABC <CR> <LF>" - AT[obNꍇÂ悤ɓ͂ĂB -

    - ABC$0D$0A -

    -
    - -
    Auto switch (VT<->TEK)
    -
    - GXP[vV[PX𔻕ʂāAI VT window - TEK window ֐ڂ܂(tl)B -
    -
    - - diff --git a/doc/ja/html/menu/setup-terminal_ko.html b/doc/ja/html/menu/setup-terminal_ko.html deleted file mode 100644 index 847f619dc..000000000 --- a/doc/ja/html/menu/setup-terminal_ko.html +++ /dev/null @@ -1,131 +0,0 @@ - - - - - Terminal ([Setup] j[; ؍ꃂ[h) - - - - - -

    Terminal ([Setup] j[; ؍ꃂ[h)

    - -

    - ̃y[W Setup - General Language Korean I̐łB - ̌ꃂ[hgp͈ȉ̃y[WQƂĂB -

    - - - -

    "Terminal setup" _CAO{bNX

    -
    -
    Terminal size
    -
    - ^[~iTCY([ʂ̘_TCY)B - X c ̕Ŏw肵܂B - EChETCY(ۂ̉ʂ̑傫)ƕKł͂܂B -
    - -
    Term size = win size
    -
    - ̃IvVIꍇA^[~iTCYƃEBhETCYɓ܂B -
    - -
    Auto window resize
    -
    - ̃IvVIꍇA^[~iTCYύXꂽƂɁA - EChETCY傫ɎIɕύX܂B -
    - -
    New-line (receive)
    -
    -
    -
    CR
    -
    ϊ܂B
    - -
    CR+LF
    -
    Mꂽ s CR ($0D) CR+LF ($0D $0A)ɕϊ܂B
    - ) "CR LF" MꂽꍇA"CR LF LF" ɕϊ܂B
    - -
    LF
    -
    Mꂽ s LF ($0A) CR+LF ($0D $0A)ɕϊ܂B
    - ) "CR LF" MꂽꍇA"CR CR LF" ɕϊ܂B
    - -
    AUTO
    -
    Mꂽ s CR ($0D), s LF ($0A) CR+LF ($0D $0A)ɕϊ܂B
    - ) "CR LF" MꂽꍇAϊ܂B
    - "CR" MꂽꍇA"CR LF" ɕϊ܂B
    - "LF" MꂽꍇA"CR LF" ɕϊ܂B
    -
    -
    - -
    New-line (transmit)
    -
    -
    -
    CR
    -
    ϊ܂B
    - -
    CR+LF
    -
    Mɉs CR ($0D) CR+LF ($0D $0A) ɕϊ܂B
    - -
    LF
    -
    Mɉs CR ($0D) LF ($0A) ɕϊ܂B
    -
    -
    - -
    Terminal ID
    -
    - zXgɕ񍐂 Terminal IDBTerminal ID telnet - terminal type Ƃ͈Ⴂ܂BTelnet terminal type ύXɂ - [Setup] TCP/IP - R}hgpĂB -
    - -
    Local echo
    -
    - L[͓ɂ著o镶̂܂܉ʂɕ\܂B -
    - -
    Answerback
    -
    - zXg ENQ ($05) ĂɁAԂB - 񒆂Ɋ܂܂\s”\ȕ(䕶)́A"$" ɂ‚Â - ASCII R[h(216i) ŕ\ĂB - Ⴆ΁A "ABC <CR> <LF>" - AT[obNꍇÂ悤ɓ͂ĂB -

    - ABC$0D$0A -

    -
    - -
    Auto switch (VT<->TEK)
    -
    - GXP[vV[PX𔻕ʂāAI VT window - TEK window ֐ڂ܂(tl)B -
    - -
    Coding (receive)
    -
    - zXg瑗Ă镶R[h (KS5601, UTF-8, UTF-8m 3)B -
    - -
    Coding (transmit)
    -
    - o镶R[h (KS5601, UTF-8 2)B -
    - -
    locale
    -
    - P[B - ڍׂUnicodeݒQƁB -
    - -
    - - diff --git a/doc/ja/html/menu/setup-terminal_ru.html b/doc/ja/html/menu/setup-terminal_ru.html deleted file mode 100644 index 6dba3f296..000000000 --- a/doc/ja/html/menu/setup-terminal_ru.html +++ /dev/null @@ -1,139 +0,0 @@ - - - - - Terminal ([Setup] j[; VAꃂ[h) - - - - - -

    Terminal ([Setup] j[; VAꃂ[h)

    - -

    - ̃y[W Setup - General Language Russian I̐łB - ̌ꃂ[hgp͈ȉ̃y[WQƂĂB -

    - - - -

    "Terminal setup" _CAO{bNX

    -
    -
    Terminal size
    -
    - ^[~iTCY([ʂ̘_TCY)B - X c ̕Ŏw肵܂B - EChETCY(ۂ̉ʂ̑傫)ƕKł͂܂B -
    - -
    Term size = win size
    -
    - ̃IvVIꍇA^[~iTCYƃEBhETCYɓ܂B -
    - -
    Auto window resize
    -
    - ̃IvVIꍇA^[~iTCYύXꂽƂɁA - EChETCY傫ɎIɕύX܂B -
    - -
    New-line (receive)
    -
    -
    -
    CR
    -
    ϊ܂B
    - -
    CR+LF
    -
    Mꂽ s CR ($0D) CR+LF ($0D $0A)ɕϊ܂B
    - ) "CR LF" MꂽꍇA"CR LF LF" ɕϊ܂B
    - -
    LF
    -
    Mꂽ s LF ($0A) CR+LF ($0D $0A)ɕϊ܂B
    - ) "CR LF" MꂽꍇA"CR CR LF" ɕϊ܂B
    - -
    AUTO
    -
    Mꂽ s CR ($0D), s LF ($0A) CR+LF ($0D $0A)ɕϊ܂B
    - ) "CR LF" MꂽꍇAϊ܂B
    - "CR" MꂽꍇA"CR LF" ɕϊ܂B
    - "LF" MꂽꍇA"CR LF" ɕϊ܂B
    -
    -
    - -
    New-line (transmit)
    -
    -
    -
    CR
    -
    ϊ܂B
    - -
    CR+LF
    -
    Mɉs CR ($0D) CR+LF ($0D $0A) ɕϊ܂B
    - -
    LF
    -
    Mɉs CR ($0D) LF ($0A) ɕϊ܂B
    -
    -
    - -
    Terminal ID
    -
    - zXgɕ񍐂 Terminal IDBTerminal ID telnet - terminal type Ƃ͈Ⴂ܂BTelnet terminal type ύXɂ - [Setup] TCP/IP - R}hgpĂB -
    - -
    Local echo
    -
    - L[͓ɂ著o镶̂܂܉ʂɕ\܂B -
    - -
    Answerback
    -
    - zXg ENQ ($05) ĂɁAԂB - 񒆂Ɋ܂܂\s”\ȕ(䕶)́A"$" ɂ‚Â - ASCII R[h(216i) ŕ\ĂB - Ⴆ΁A "ABC <CR> <LF>" - AT[obNꍇÂ悤ɓ͂ĂB -

    - ABC$0D$0A -

    -
    - -
    Auto switch (VT<->TEK)
    -
    - GXP[vV[PX𔻕ʂāAI VT window - TEK window ֐ڂ܂(tl)B -
    - -
    Character set
    -
    -
    -
    Host
    -
    - zXgRs[^ŎgpĂ郍VAꕶZbgB - Windows (CP 1251), KOI8-R, CP 866 or ISO 8859-5 I܂B -
    - -
    Client
    -
    - Ȃ PC ŎgpĂ郍VAꕶZbgB - Windows (CP 1251), KOI8-R, CP 866, ISO 8859-5 I܂B - ȂVA Windows gpĂȂAWindows - IׂłB -
    - -
    Font
    -
    - w肳ꂽtHg̕R[hAWindows (CP 1251), KOI8-R, - CP 866, ISO 8859-5 ̒I܂B -
    -
    -
    -
    - - diff --git a/doc/ja/html/menu/setup-terminal_utf8.html b/doc/ja/html/menu/setup-terminal_utf8.html deleted file mode 100644 index b72e3ade1..000000000 --- a/doc/ja/html/menu/setup-terminal_utf8.html +++ /dev/null @@ -1,131 +0,0 @@ - - - - - Terminal ([Setup] j[; UTF-8[h) - - - - - -

    Terminal ([Setup] j[; UTF-8[h)

    - -

    - ̃y[W Setup - General Language UTF-8 I̐łB - ̌ꃂ[hgp͈ȉ̃y[WQƂĂB -

    - - - -

    "Terminal setup" _CAO{bNX

    -
    -
    Terminal size
    -
    - ^[~iTCY([ʂ̘_TCY)B - X c ̕Ŏw肵܂B - EChETCY(ۂ̉ʂ̑傫)ƕKł͂܂B -
    - -
    Term size = win size
    -
    - ̃IvVIꍇA^[~iTCYƃEBhETCYɓ܂B -
    - -
    Auto window resize
    -
    - ̃IvVIꍇA^[~iTCYύXꂽƂɁA - EChETCY傫ɎIɕύX܂B -
    - -
    New-line (receive)
    -
    -
    -
    CR
    -
    ϊ܂B
    - -
    CR+LF
    -
    Mꂽ s CR ($0D) CR+LF ($0D $0A)ɕϊ܂B
    - ) "CR LF" MꂽꍇA"CR LF LF" ɕϊ܂B
    - -
    LF
    -
    Mꂽ s LF ($0A) CR+LF ($0D $0A)ɕϊ܂B
    - ) "CR LF" MꂽꍇA"CR CR LF" ɕϊ܂B
    - -
    AUTO
    -
    Mꂽ s CR ($0D), s LF ($0A) CR+LF ($0D $0A)ɕϊ܂B
    - ) "CR LF" MꂽꍇAϊ܂B
    - "CR" MꂽꍇA"CR LF" ɕϊ܂B
    - "LF" MꂽꍇA"CR LF" ɕϊ܂B
    -
    -
    - -
    New-line (transmit)
    -
    -
    -
    CR
    -
    ϊ܂B
    - -
    CR+LF
    -
    Mɉs CR ($0D) CR+LF ($0D $0A) ɕϊ܂B
    - -
    LF
    -
    Mɉs CR ($0D) LF ($0A) ɕϊ܂B
    -
    -
    - -
    Terminal ID
    -
    - zXgɕ񍐂 Terminal IDBTerminal ID telnet - terminal type Ƃ͈Ⴂ܂BTelnet terminal type ύXɂ - [Setup] TCP/IP - R}hgpĂB -
    - -
    Local echo
    -
    - L[͓ɂ著o镶̂܂܉ʂɕ\܂B -
    - -
    Answerback
    -
    - zXg ENQ ($05) ĂɁAԂB - 񒆂Ɋ܂܂\s”\ȕ(䕶)́A"$" ɂ‚Â - ASCII R[h(216i) ŕ\ĂB - Ⴆ΁A "ABC <CR> <LF>" - AT[obNꍇÂ悤ɓ͂ĂB -

    - ABC$0D$0A -

    -
    - -
    Auto switch (VT<->TEK)
    -
    - GXP[vV[PX𔻕ʂāAI VT window - TEK window ֐ڂ܂(tl)B -
    - -
    Coding (receive)
    -
    - zXg瑗Ă镶R[h (UTF-8, UTF-8m 2)B -
    - -
    Coding (transmit)
    -
    - o镶R[h (UTF-8 1)B -
    - -
    locale
    -
    - P[B - ڍׂUnicodeݒQƁB -
    - -
    - - diff --git a/doc/ja/html/menu/setup-window.html b/doc/ja/html/menu/setup-window.html index 7839c99cf..e4c54da5e 100644 --- a/doc/ja/html/menu/setup-window.html +++ b/doc/ja/html/menu/setup-window.html @@ -15,7 +15,9 @@
    Title
    - EChẼ^CgB + EChẼ^CgB
    + [g^CgZbgꂽƂ̓́AAccept window title change requestQƂB
    + [g^CgReset Remote TitleŃZbgł܂B
    Cursor shape
    @@ -32,23 +34,29 @@
    Hide title bar
    ^Cgo[ƃj[o[܂B - EBhEړɂ Alt - L[Ȃ獶}EX{^ŃEBhEhbOĂB
    - EChEŏɂ Alt L[ȂE}EX{^ĂB + EBhEړɂ Alt L[Ȃ獶}EX{^ŃEBhEhbOĂB`I͂łȂȂ܂B
    + EBhEŏɂ Alt L[ȂE}EX{^ĂB Ctrl L[Ȃ獶}EX{^ƃ|bvAbvj[܂B + Shift L[ Alt L[Ȃ獶}EX{^ŃEBhEhbO邱ƂłEBhETCYł悤ɂȂ܂B +
    + +
    No Frame
    +
    + EBhEg܂BEBhEggăEBhETCY邱ƂłȂȂ܂B + EBhETCYɂ Shift L[ Alt L[Ȃ獶}EX{^ŃEBhEhbOĂB
    Hide menu bar
    - j[o[܂B + j[o[܂BV[gJbgL[̐ݒ肳ĂȂj[ɃANZ[^L[ŃANZXłȂȂ܂B Ctrl L[Ȃ獶}EX{^ƃ|bvAbvj[܂B
    16 Colors (PC style)
    PC`16F[hɑΉ܂B - ̃[hł́ABold()/Blink(_)/wiF̑̈ꕔƂĎgpA - GXP[vV[PXɂw”\ȕ/wiF8F16Fɑ܂B + ̃[hł́ABold()Fg邽߂ɁABlink(_)wiFg邽߂Ɏgp܂B + GXP[vV[PXgݍ킹邱ƂɂAw”\ȕ/wiF8F16Fɑ܂B
    16 Colors (aixterm style)
    @@ -93,8 +101,15 @@
    Attribute
    - Fݒ肵̑ (Normal, Bold, Blink, Reverse, URL)
    - F URL \@\͖ɂȂĂ܂B + Fݒ肵̑ +
      +
    • Normal
    • +
    • Bold
    • +
    • Blink
    • +
    • Reverse
    • +
    • URL
    • +
    • Underline
    • +
    Reverse
    @@ -107,7 +122,7 @@ w肵̐FRGBlw肵܂B -
    Always use Normal text's BG +
    Always use Normal text's BG
    OnɂƁABold, Blink, URL̔wiF̐ݒ͖A Normal̔wiFg悤ɂȂ܂B diff --git a/doc/ja/html/menu/setup.html b/doc/ja/html/menu/setup.html index 0dd6cbe17..5c1137a0f 100644 --- a/doc/ja/html/menu/setup.html +++ b/doc/ja/html/menu/setup.html @@ -25,14 +25,14 @@ ʕ\̐ݒ܂B
    -
    Font...
    +
    Font...
    - tHgύX܂ + Additional setting tHg ^uJ܂B
    -
    Keyboard...
    +
    Keyboard...
    - L[{[h̐ݒ܂B + Additional setting L[{[h ^uJ܂B
    Serial port...
    @@ -65,9 +65,9 @@ SSH ̃L[yAF؂ŗpL[̐s܂B -
    TCP/IP...
    +
    TCP/IP...
    - TCP/IP ̐ݒ܂B + Additional setting TCP/IP ^uJ܂B
    General...
    @@ -77,7 +77,7 @@
    Additional settings...
    - UTF-8ȍ~ɒlj@\ɊւIvV̐ݒ܂B + Additional setting J܂B
    Save setup...
    diff --git a/doc/ja/html/menu/window-window.html b/doc/ja/html/menu/window-window.html index 91988cf66..a63f7fd68 100644 --- a/doc/ja/html/menu/window-window.html +++ b/doc/ja/html/menu/window-window.html @@ -11,25 +11,25 @@

    Window ([Window] j[)

    - s Tera Term EChEʂ̈ԑOɕ\‚肵܂B + s Tera Term EBhEʂ̈ԑOɕ\‚肵܂B

    "Window list" _CAO{bNX

    Window
    - s Tera Term EChẼXgB‘IĂB + s Tera Term EBhẼXgB‘IĂB
    Open
    - IꂽEChEʂ̈ԑOɕ\A + IꂽEBhEʂ̈ԑOɕ\A Ẵ_CAO{bNX‚܂B
    Close window
    - IꂽEChE‚܂B + IꂽEBhE‚܂B
    diff --git a/doc/ja/html/menu/window.html b/doc/ja/html/menu/window.html index 40339c039..8f0c189b8 100644 --- a/doc/ja/html/menu/window.html +++ b/doc/ja/html/menu/window.html @@ -11,7 +11,7 @@

    [Window] j[

    - s Tera Term EChẼj[̃XgIсA + s Tera Term EBhẼj[̃XgIсA ʂ̈ԑOɕ\܂B ő9‚̃EBhEXgɕ\܂B s̃EBhE9‚葽AXgɂȂEBhEIꍇ́A @@ -21,7 +21,7 @@

    Window...
    - s Tera Term EChEʂ̈ԑOɕ\‚肵܂B + s Tera Term EBhEʂ̈ԑOɕ\‚肵܂B
    Minimize All
    diff --git a/doc/ja/html/menutek/setup-window.html b/doc/ja/html/menutek/setup-window.html index 1a700b7d6..5a3929043 100644 --- a/doc/ja/html/menutek/setup-window.html +++ b/doc/ja/html/menutek/setup-window.html @@ -22,7 +22,7 @@
    J[\̌`BBlock, Vertical line, Horizontal line 3‚Iׂ܂B
    Hide title bar
    -
    ^Cgo[ƃj[o[܂BEBhEړɂ Alt L[ȂE}EX{^ŃEBhEhbOĂBEChEŏɂ Alt L[Ȃ獶}EX{^ĂBCtrl L[Ȃ獶}EX{^ƃ|bvAbvj[܂B
    +
    ^Cgo[ƃj[o[܂BEBhEړɂ Alt L[ȂE}EX{^ŃEBhEhbOĂBEBhEŏɂ Alt L[Ȃ獶}EX{^ĂBCtrl L[Ȃ獶}EX{^ƃ|bvAbvj[܂B
    Hide menu bar
    j[o[܂BCtrl L[Ȃ獶}EX{^ƃ|bvAbvj[܂B
    diff --git a/doc/ja/html/menutek/window-window.html b/doc/ja/html/menutek/window-window.html index ace077322..847992153 100644 --- a/doc/ja/html/menutek/window-window.html +++ b/doc/ja/html/menutek/window-window.html @@ -11,20 +11,20 @@

    Window (TEK window [Window] j[)

    -

    s Tera Term EChEʂ̈ԑOɕ\‚肵܂B

    +

    s Tera Term EBhEʂ̈ԑOɕ\‚肵܂B

    "Window list" _CAO{bNX

    Window
    -
    s Tera Term EChẼXgB‘IĂB
    +
    s Tera Term EBhẼXgB‘IĂB
    Open
    -
    IꂽEChEʂ̈ԑOɕ\AẴ_CAO{bNX‚܂B
    +
    IꂽEBhEʂ̈ԑOɕ\AẴ_CAO{bNX‚܂B
    Close window
    -
    IꂽEChE‚܂B
    +
    IꂽEBhE‚܂B
    diff --git a/doc/ja/html/menutek/window.html b/doc/ja/html/menutek/window.html index 29a59990a..11fd04757 100644 --- a/doc/ja/html/menutek/window.html +++ b/doc/ja/html/menutek/window.html @@ -12,13 +12,13 @@

    [Window] j[ (TEK window)

    -s Tera Term EChẼj[̃XgIсAʂ̈ԑOɕ\܂Bő9‚̃EBhEXgɕ\܂Bs̃EBhE9‚葽AXgɂȂEBhEIꍇ́Ãj[̈ԉɂ Window R}hgpĂB +s Tera Term EBhẼj[̃XgIсAʂ̈ԑOɕ\܂Bő9‚̃EBhEXgɕ\܂Bs̃EBhE9‚葽AXgɂȂEBhEIꍇ́Ãj[̈ԉɂ Window R}hgpĂB

    Window...
    -
    s Tera Term EChEʂ̈ԑOɕ\‚肵܂B
    +
    s Tera Term EBhEʂ̈ԑOɕ\‚肵܂B
    diff --git a/doc/ja/html/reference/.gitignore b/doc/ja/html/reference/.gitignore new file mode 100644 index 000000000..60df1b166 --- /dev/null +++ b/doc/ja/html/reference/.gitignore @@ -0,0 +1,14 @@ +CygTerm+-LICENSE.txt +Oniguruma-LICENSE.txt +OpenSSL-LICENSE.txt +LibreSSL-LICENSE.txt +PuTTY-LICENSE.txt +RE.txt +SFMT-LICENSE.txt +build_library_with_cmake.html +build_library_with_cmake_no_bom.md +build_library_with_cmake_utf8.html +build_with_cmake.html +build_with_cmake_no_bom.md +build_with_cmake_utf8.html +zlib-LICENSE.txt diff --git a/doc/ja/html/reference/PuTTY-LICENSE.txt b/doc/ja/html/reference/PuTTY-LICENSE.txt new file mode 100644 index 000000000..57ea292be --- /dev/null +++ b/doc/ja/html/reference/PuTTY-LICENSE.txt @@ -0,0 +1,28 @@ +PuTTY is copyright 1997-2022 Simon Tatham. + +Portions copyright Robert de Bath, Joris van Rantwijk, Delian +Delchev, Andreas Schultz, Jeroen Massar, Wez Furlong, Nicolas Barry, +Justin Bradford, Ben Harris, Malcolm Smith, Ahmad Khalifa, Markus +Kuhn, Colin Watson, Christopher Staite, Lorenz Diener, Christian +Brabandt, Jeff Smith, Pavel Kryukov, Maxim Kuznetsov, Svyatoslav +Kuzmich, Nico Williams, Viktor Dukhovni, Josh Dersch, Lars Brinkhoff, +and CORE SDI S.A. + +Permission is hereby granted, free of charge, to any person +obtaining a copy of this software and associated documentation files +(the "Software"), to deal in the Software without restriction, +including without limitation the rights to use, copy, modify, merge, +publish, distribute, sublicense, and/or sell copies of the Software, +and to permit persons to whom the Software is furnished to do so, +subject to the following conditions: + +The above copyright notice and this permission notice shall be +included in all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, +EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF +MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND +NONINFRINGEMENT. IN NO EVENT SHALL THE COPYRIGHT HOLDERS BE LIABLE +FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF +CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION +WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. diff --git a/doc/ja/html/reference/RLogin-LICENSE.txt b/doc/ja/html/reference/RLogin-LICENSE.txt new file mode 100644 index 000000000..488730f19 --- /dev/null +++ b/doc/ja/html/reference/RLogin-LICENSE.txt @@ -0,0 +1,21 @@ +MIT License + +Copyright (c) 2017 Culti + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. diff --git a/doc/ja/html/reference/build_library_with_cmake.md b/doc/ja/html/reference/build_library_with_cmake.md new file mode 100644 index 000000000..db7bc72c8 --- /dev/null +++ b/doc/ja/html/reference/build_library_with_cmake.md @@ -0,0 +1,94 @@ + +# libsフォルダ + +- Tera Term のビルドに利用する外部のライブラリを置いておくためのフォルダ +- 各コンパイラ向けにソース/ライブラリ/実行ファイルを置いておく +- ライブラリはあらかじめ1度だけ生成しておく + +# 準備 + +## Visual Studio + +- cmake + - PATHが通してあればok + - cygwinのcmakeはつかえない(Visual Studioをサポートしていない) + - Visual Studio 2005 を使う場合は cmake 3.11.4 を使用する必要がある +- perl + - ドキュメントファイルの文字コード・改行コード変換に必要 + - OpenSSL のコンパイル (Tera Term 5は OpenSSL から LibReSSL に切り替えたため使用していない) + - ActivePerl 5.8 以上、または cygwin perl + - PATHが通っていなければ自動で探す + +## MinGW 共通 (experimental) + +- Cygwin,MSYS2,linux(wsl)上のMinGWでビルド可能 +- 各環境で動作するcmake,make,(MinGW)gcc,(clang)が必要 + +# ビルド手順 + +必要なアーカイブを自動的にダウンロードするので、 +インターネットが利用できる環境でビルドする必要がある + +## Visual Studioの場合 + +### batファイルを使用する場合 + +libs/buildall_cmake.bat を実行して使用する Visual Studioを選ぶ + + 1. Visual Studio 17 2022 Win32 + 2. Visual Studio 17 2022 x64 + 3. Visual Studio 17 2022 arm64 + 4. Visual Studio 16 2019 Win32 + 5. Visual Studio 16 2019 x64 + 6. Visual Studio 15 2017 + 7. Visual Studio 14 2015 + 8. Visual Studio 12 2013 + 9. Visual Studio 11 2012 + a. Visual Studio 10 2010 + b. Visual Studio 9 2008 + select no + +### cmakeを使用する場合 + +Visual Studio 2022 x86 の場合 + + cmake -DCMAKE_GENERATOR="Visual Studio 17 2022" -DARCHITECTURE=win32 -P buildall.cmake + +Visual Studio 2022 x64 の場合 + + cmake -DCMAKE_GENERATOR="Visual Studio 17 2022" -DARCHITECTURE=x64 -P buildall.cmake` + +Visual Studio 2022 arm64 の場合 + + cmake -DCMAKE_GENERATOR="Visual Studio 17 2022" -DARCHITECTURE=arm64 -P buildall.cmake` + +## MinGW 共通 + +各々の環境のcmakeを使用する + + cmake -DCMAKE_GENERATOR="Unix Makefiles" -DARCHITECTURE=32 -P buildall.cmake + +# 各フォルダについて + +## 生成されるライブラリフォルダ + +- 次のフォルダにライブラリの `*.h` , `*.lib` が生成される + - `cJSON` + - `oniguruma_{compiler}` + - `libressl_{compiler}` + - `putty` + - `SFMT_{compiler}` + - `zlib_{compiler}` + +## download アーカイブダウンロードフォルダ + +- ダウンロードしたアーカイブファイルが置かれる +- 自動でダウンロードされる +- ダウンロードされていると再利用する +- ビルド後、参照する必要がなければ削除できる + +## build ビルドフォルダ + +- `build/oniguruma/{compiler}/` などの下でビルドされる +- 再ビルドするときは、あらかじめ削除すること +- ビルド後、参照する必要がなければ削除できる diff --git a/doc/ja/html/reference/build_with_cmake.md b/doc/ja/html/reference/build_with_cmake.md new file mode 100644 index 000000000..c8810227d --- /dev/null +++ b/doc/ja/html/reference/build_with_cmake.md @@ -0,0 +1,65 @@ +# cmakeを使ったビルド + +- [cmake]()を使用して + ビルドすることができます(実験的な位置づけです) +- Visual Studio, NMake, MinGW でビルドできます + +## cmakeのバージョン + +- 3.11以上 +- Visual Studio 2017,2019,2022 インストーラーで、オプションを選べば cmake をインストールできます +- Visual Studio 2005(Expressも含む)のIDEをサポートしている最後のバージョンは 3.11.4 です + +## ライブラリ + +- teraterm が使用するライブラリをビルドして準備しておきます + - ビルドに使用するツールに合わせたライブラリが必要です +- ビルド方法は [`build_library_with_cmake.html`]() を参照してください +- ライブラリについては [`develop.html`]() を参照してください + +## teratermのビルド + +### Visual Studio + +Visual Studio の IDE を使用する場合の例 +(`-A win32` はx86指定。x64の場合は `-A x64`, ARM64の場合は `-A arm64`) + + mkdir build_vs2022` + cd build_vs2022 + cmake .. -G "Visual Stuido 17 2022" -A Win32 + cmake --build . --config Release -j + +インストーラを作成する + + cmake --build . --config Release --target Install + cmake --build . --config Release --target inno_setup + cmake --build . --config Release --target zip + +### NMake (Visual Studio, very experimental) + +vcvars32.bat を実行しておくなどして +nmakeが利用できる環境から次のように実行します。 + + mkdir build_nmake + cd build_nmake + cmake .. -G "NMake Makefiles" -DCMAKE_BUILD_TYPE=Release + cmake --build . -j + +### MinGW (very experimental) + +- MinGW を使用してバイナリを生成することができます +- 実験的位置づけです + +msys2等をつかってMinGWが使える環境から次のように実行します。 + + mkdir build_mingw + cd build_mingw + cmake .. -G "Unix Makefiles" -DCMAKE_BUILD_TYPE=Release + cmake --build . -j + +cygwin,linux等では次のように実行します。 + + mkdir build_mingw_cygwin + cd build_mingw_cygwin + cmake .. -G "Unix Makefiles" -DCMAKE_TOOLCHAIN_FILE=../mingw.toolchain.cmake -DCMAKE_BUILD_TYPE=Release + cmake --build . -j diff --git a/doc/ja/html/reference/dev/macro_proto.md b/doc/ja/html/reference/dev/macro_proto.md new file mode 100644 index 000000000..7c48b7ccf --- /dev/null +++ b/doc/ja/html/reference/dev/macro_proto.md @@ -0,0 +1,49 @@ + +# Macro Protocol + +## XTYP_EXECUTE + +- command + - command definitions are in[teraterm/common/ttddecmnd.h](https://github.com/TeraTermProject/teraterm/blob/c7ce43608e0e2844e148b88cfadb9a96cebaba01/teraterm/common/ttddecmnd.h#L31) +- ttpmacro -> ttermpro +- packet length limit is MaxStrLen + +| pos | len | Description | +|-----|-----|-------------| +| 0 | 1 | command | +| | N | data | + +- command (CmdSendUTF8String/CmdSendBinary/CmdSendCompatString) + +| pos | len | Description | +|-----|-----|------------------------| +| 0 | 1 | command | +| 1 | 4 | length(little endian) | +| 5 | N | data(string or binary) | + + +## XTYP_POKE + +- data(text and binary) +- ttpmacro -> ttermpro + +## XTYP_REQUEST + +- ttpmacro <- ttermpro + - Item "DATA" + - text or binary + - Item "PARAM" + - ファイル名的な? + - 通信の応答 + + +## DDE(DDEML) WIN32 APIs + +- DdeAccessData() + - ハンドル(HDDEDATA)から先頭のポインタとサイズを取得できる +- DdeUnaccessData() + - DdeAccessData() した物を解除する +- DdeGetData() + - ハンドル(HDDEDATA)のデータをワークにコピーする + - 戻り値が実際のサイズ + diff --git a/doc/ja/html/reference/dev/unicode.html b/doc/ja/html/reference/dev/unicode.html new file mode 100644 index 000000000..806e1f9cb --- /dev/null +++ b/doc/ja/html/reference/dev/unicode.html @@ -0,0 +1,73 @@ + + + + +\ + + + + + +

    \

    + +

    + Tera Term 5 ȑO̓obt@̕R[hDBCS(Double byte Character Set)łB + Ⴆ΁uLanguage[]v"Japanese"ƂƂobt@̕R[hShift_JISłB +

    + +

    + Tera Term 5 ̓obt@̕R[h UnicodełB +

    + +

    + ܂ȃf[^̗͎̂悤ɂȂĂ܂B +

    + + +
    +                                                                              +--------------+
    +                              +------------------------+ Code:Unicode         |              |
    +                              |                        +--------------------->+  Window      |
    +                              |  buffer@buffer.c       |                      |   Display    |
    +                              |   Code:Unicode         | Code:Unicode         |   Print      |
    +                              |                        |  BuffPutUnicode()    |              |                                         +----------+
    +                              |                        +<------------------+  +--------------+          +-----------------------+      |          |
    +                              +------------------------+                   |                            |                       |      |Log File  |
    +                                                                           +----------------------------+ VTParse()@vtterm.c    +----->+          |
    +                              +------------------------+ CommRead1Byte()                                |  Terminal             |      |          |
    +                              |                        +----------------------------------------------->+                       |      +----------+
    +                              |  Input buffer@ttpcmn   |                                                |                       |
    ++-----------+                 |   Code:Input           | Code:                                          +----+------------------+
    +|           |                 |                        |  Unicode to Input    +--------------+               |
    +|  Socket   +---------------->+                        +<---------------------+              |               |
    +|  Serial   |  CommReceive()  +------------------------+  CommTextEchoW()     |  Talker      |               |
    +|  Pipe     |                                             CommBinaryEcho()    |   Keyboard   |               | Code:Unicode(UTF-8)
    +|  Plugin   |                 +------------------------+                      |   SendMem    |               |  DDEPut1()
    +|           +<----------------+                        | Code:                |    File      |               |
    ++-----------+  CommSend()     |  Output buffer@ttpcmn  |  Unicode to Output   |    Clipboard |               |
    +                              |   Code:Output          +<---------------------+    macro     +<---------+    |
    +                              |                        |  CommTextOutW()      |              |          |    |
    +                              |                        |  CommBinaryOut()     +--------------+          |    |
    +                              +------------------------+  CommRawOut()                                  |    |
    +                                                                                                        |    |
    +                                                                                                        |    |
    +                                                                                                        |    |
    +                                                                                                        |    v
    +                                           +-------------------+      DDE, UTF-8/binary               +-+----+-----------+
    +                                           |                   +------------------------------------->+                  |
    +                                           |  ttpmacro.exe     |                                      |  ttdde.c         |
    +                                           |                   |                                      |                  |
    +                                           |                   |      DDE, UTF-8                      |                  |
    +                                           |                   +<-------------------------------------+                  |
    +                                           +-------------------+                                      +------------------+
    +
    + + +

    + Windows 95/98/MêƂAL[͂ Unicode ɕϊĂ珈s܂B + ` UnicodeMBCSɕϊĕ`悵܂B +

    + + + diff --git a/doc/ja/html/reference/dev/win32api.html b/doc/ja/html/reference/dev/win32api.html new file mode 100644 index 000000000..df510c999 --- /dev/null +++ b/doc/ja/html/reference/dev/win32api.html @@ -0,0 +1,94 @@ + + + + +Win32API + + + + + +

    Win32 API

    + +Win32 API Ɋւ郁 + +

    ini t@C

    + +

    +ini t@Cɂ́AR[h ACP ({‹ł Shift_JIS) ̂̂ƁAUnicode (UTF-16 with LE BOM) ̂̂܂B
    +܂Aini t@C𑀍삷 Win32 API ɂ́Achar * Ƃ ANSI (GetPrivateProfileStringA, WritePrivateProfileStringA Ȃ) ƁAwchar_t * Ƃ Wide (GetPrivateProfileStringW, WritePrivateProfileStringW Ȃ) ܂B
    +ini t@C (ACP, Unicode) API (ANSI, Wide) 4 p^[̑gݍ킹܂B +

    + +
      +
    • ACP ini file : Get/WritePrivateProfileStringA
    • +
    • ACP ini file : Get/WritePrivateProfileStringW
    • +
    • Unicode (UTF-16LE) ini file : Get/WritePrivateProfileStringA
    • +
    • Unicode (UTF-16LE) ini file : Get/WritePrivateProfileStringW
    • +
    + +

    +Windows 2000 ȍ~ API ́Aǂݏɓ ini t@C̕R[hɂ킹ĎIɕϊs悤ɂȂĂ܂B +

    + +
      +
    • ANSIł API Unicode ini t@CƂɂ͎Iɕϊ܂B
    • +
    • Wideł API ACP ini t@CƂɂ͎Iɕϊ܂B
    • +
    • ̂ ini t@C̕R[hɂ炸ߓI API 𗘗pł܂B
    • +
    • Unicode ł͂Ȃ ini t@C ACP ŕ\łȂ Unicode ނ "?" ɒuď܂܂B
    • +
    • t@C̐擪 UTF-16LE BOM (0xff 0xfe) tĂƂAini t@C Unicode Ɣ肳܂B +
        +
      • ݂Ȃt@C WritePrivateProfileStringA/W ŏ ini t@CVK쐬ꂽƂ́AACP ŏ܂܂B
      • +
      • BOM (0xff 0xfe) ̋t@CĂāÃt@C WritePrivateProfileStringA/W ŏ񂾂Ƃ́AUnicode ŏ܂܂B
      • +
      +
    • +
    + +

    +Windows NT 4 ł́A"ANSI API ACP ini t@C̑gݍ킹", "Wide API ACP ini t@C̑gݍ킹" 삷悤łB
    +Wide API ACP ini t@Cꍇ̂ݎIɕϊ悤łB +

    + +

    +Windows 95, 98, Me ł́AANSI API ACP ini t@C̑gݍ킹݂̂삷悤łB
    +Iȕϊ͍sȂ悤łB +

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Windows 2000-Windows NT 4Windows 95, 98, Me
    ANSI APIWide APIANSI APIWide APIANSI APIWide API
    ACP ini fileOKOKOKOKOKNG
    Unicode (UTF-16LE) ini fileOKOKNGNGNGNG
    + + diff --git a/doc/ja/html/reference/develop-build.html b/doc/ja/html/reference/develop-build.html new file mode 100644 index 000000000..c2b1b7af8 --- /dev/null +++ b/doc/ja/html/reference/develop-build.html @@ -0,0 +1,279 @@ + + + + +J‹̍\zErh菇 + + + + + +

    J‹̍\zErh菇

    + +
      +
    1. ‹\z
    2. +
    3. rh菇 (Quick Start) +
        +
      1. \[XR[h̃`FbNAEg
      2. +
      3. rh
      4. +
      +
    4. +
    5. rh菇 (ڐ) +
        +
      1. \[XR[h clone
      2. +
      3. Cũrh
      4. +
      5. Tera Term̃rh
      6. +
      7. TTSSH̃rh
      8. +
      9. TTProxỹrh
      10. +
      11. TTXKanjiMenũrh
      12. +
      13. TTXSamples̃rh
      14. +
      15. TeraTerm Menũrh
      16. +
      17. CygTerm+̃rh
      18. +
      19. Cyglaunch̃rh
      20. +
      21. wvt@C̃rh
      22. +
      23. CXg[̍쐬
      24. +
      +
    6. +
    + +
    + +

    ‹\z

    + +
      +
    • Visual Studio Community 2022 ̃CXg[ +
        +
      • C++ ɂfXNgbvJ
      • +
      • ŐV v143 rhc[p C++ MFC (x86 x64)
        + HTML Help Compiler (hhc.exe) CXg[܂B +
      • +
      +
    • +
    • Cygwin ̃CXg[
      + CygTerm+ RpCp Cygwin ‹\zɂ́Abuildtools\install_cygwin.bat s܂B
      + ̊‹𗘗pꍇɂ́AQƂĂB +
    • +
    • Perl CXg[܂B
    • +
    • Git for Windows CXg[܂B
    • +
    • CMake CXg[܂B
    • +
    • Inno Setup CXg[܂B
    • +
    + +

    +Tera Term rh邽߂ɏL̃c[VK̂ł͂ȂAłɃCXg[ς݂̃c[gƂł܂B
    +installer\release.bat CXg[ς݂̃c[‚Ȃꍇ́Ainstaller\toolinfo_sample.bat installer\toolinfo.bat ɃRs[AKXҏWĂB
    +܂AKvł buildtools\svnrev\toolinfo_sample.txt buildtools\svnrev\toolinfo.txt ɃRs[AKXҏWĂB +

    + +

    rh菇 (Quick Start)

    + +

    \[XR[h̃`FbNAEg

    + +

    +\[XR[h GitHub (https://github.com/TeraTermProject/teraterm) clone ܂B +

    + +

    rh

    + +

    +installer\release.bat sA3I܂B +

    + +

    rh菇 (ڐ)

    + +

    \[XR[h clone

    + +

    +\[XR[h GitHub (https://github.com/TeraTermProject/teraterm) clone ܂B +

    + +

    Cũrh

    + +

    +"x86 Native Tools Command Prompt for VS 2022" 𗧂グ邩AK؂ PATH ʂĂKv܂B
    +* bat •ʂɎs邩ɁAlibs\buildall.bat s邱Ƃł܂Ƃ߂ărh邱Ƃł܂B +

    + +
      +
    • Oniguruma +
        +
      1. oniguruma ̃\[X libs/oniguruma ̒ɓWJB
      2. +
      3. libs\buildoniguruma6.bat sB*
      4. +
      +
    • +
    • SFMT +
        +
      1. SFMT ̃\[X libs/SFMT ̒ɓWJB
      2. +
      3. libs\buildSFMT.bat sB*
      4. +
      5. Kvɉ libs/SFMT/SFMT_version_for_teraterm.h ̃o[WԍCB
      6. +
      +
    • +
    • LibreSSL +
        +
      1. LibreSSL ̃\[X libs/libressl ̒ɓWJB
      2. +
      3. buildlibressl.bat sB*
      4. +
      +
    • +
    • Zlib +
        +
      1. zlib ̃\[X libs/zlib ̒ɓWJB
      2. +
      3. buildzlib.bat sB*
      4. +
      +
    • + +
    • The reference C implementation of Argon2 +
        +
      1. argon2 ̃\[X libs/argon2 ̒ɓWJB
        + argon2 t@Xɂ͐ÓICu𐶐vWFNgt@C܂܂ĂȂB
        + ttssh \[Vz argon2 vWFNgɂÓICuAttxssh.dll ɃN邽߁AWJ邾ł悢B
      2. +
      +
    • +
    • cJSON +
        +
      1. cJSON ̃\[X libs/cJSON ̒ɓWJB
      2. +
      +
    • +
    + +

    Tera Term̃rh

    + +
      +
    1. teraterm\ttermpro.sln Visual StudioŊJB
      + .slnt@C̉sR[h"LF"ɂȂĂƁAVisual StudioNȂ̂Œӊ肢܂B
    2. +
    3. \[VrhB
    4. +
    5. rhɐ teraterm\Debug / teraterm\Release fBNgɎsvOB
    6. +
    + +

    TTSSH̃rh

    + +炩 teraterm\ttermpro.sln ɂ common_static.lib rhĂKv܂B + +
      +
    1. ttssh2\ttssh.sln Visual StudioŊJB
    2. +
    3. \[VrhB
    4. +
    5. rhɐ ttssh2\ttxssh\Debug / ttssh2\ttxssh\Release fBNgDLLB
    6. +
    + +

    TTProxỹrh

    + +炩 teraterm\ttermpro.sln ɂ common_static.lib rhĂKv܂B + +
      +
    1. TTProxy\TTProxy.sln Visual StudioŊJB
    2. +
    3. \[VrhB
    4. +
    5. rhɐ TTProxy\Debug / TTProxy\Release fBNgDLLB
    6. +
    + +

    TTXKanjiMenũrh

    + +炩 teraterm\ttermpro.sln ɂ common_static.lib rhĂKv܂B + +
      +
    1. TTXKanjiMenu\ttxkanjimenu.sln Visual StudioŊJB
    2. +
    3. \[VrhB
    4. +
    5. rhɐ TTXKanjiMenu\Debug / TTXKanjiMenu\Release fBNg ttxkanjimenu.dll B
    6. +
    + +

    TTXSamples̃rh

    + +

    +|WgTTXSamples Tera Term Extension (TTX)̃Tv܂BTTXۂ̎QlɂĂB +

    + +炩 teraterm\ttermpro.sln ɂ common_static.lib rhĂKv܂B + +
      +
    1. TTXSamples\TTXSamples.sln Visual StudioŊJB
    2. +
    3. \[VrhB
    4. +
    5. rhɐ TTXSamples\Debug / TTXSamples\Release fBNgDLLB
    6. +
    + +

    +eTTX̏ڍׂɂ‚ẮAvWFNgReadMe-ja.txtQƂĂB +

    + +

    TeraTerm Menũrh

    + +炩 teraterm\ttermpro.sln ɂ common_static.lib rhĂKv܂B + +
      +
    1. ttpmenu\ttpmenu.sln Visual StudioŊJB
    2. +
    3. \[VrhB
    4. +
    5. rhɐ ttpmenu\Debug / ttpmenu\Release fBNg ttpmenu.exe B
    6. +
    + +

    CygTerm+̃rh

    + +
      +
    1. CygwiñVFNAcygterm fBNgֈړB +
      +# cd cygterm
      +
      +
    2. +
    3. CygTerm+RpCB +
      +# make
      +
      +
    4. +
    5. cygterm.exe B
    6. +
    + +

    Cyglaunch̃rh

    + +O teraterm\ttermpro.sln common_static.lib rhĂKv܂B + +
      +
    1. cygwin\cygwin.sln Visual StudioŊJB
    2. +
    3. \[VrhB
    4. +
    5. rhɐ cygwin\Debug / cygwin\Release fBNg cyglaunch.exe B
    6. +
    + +

    wvt@C̃rh

    + +
      +
    1. doc\makechm.bat sB
    2. +
    + +

    CXg[̍쐬

    + +
    +
    AppVeyor gpꍇ
    +
    + AppVeyor "NEW BUILD" s܂B
    + ł installer\release.bat Ă΂Ă܂B +
    +
    installer\release.bat gpꍇ
    +
    + installer\release.bat sāACXg[[Azip쐬܂B
    + 쐬t@C buildtool\svnrev\sourcetree_info.bat ̒l琶܂B̃t@C buildtools\svnrev\svnrev.bat teraterm\common\tt-version.h ȂǂƂɐ܂B +
      +
    • + installer\release.bat s܂B
      + CXg[[ installer\release.bat Ăяo installer\iscc.bat ō쐬܂B +
    • +
    • CXg[[A|[^uł zip t@C installer\Output tH_ɏo͂܂B
    • +
    +
    +
    Inno Script Studio gꍇ
    +
    + RC,[X쐬ꍇ́Ainstaller\release.batgpق֗łA + CXg[[̃foOȂInno Script Studiogpƕ֗łB
    + 쐬t@ĆACXg[ installer\teraterm.iss ̒`ɂA|[^uł buildtool\svnrev\sourcetree_info.bat ɏ܂ꂽ̂琶܂B +
      +
    • Inno Script Studio installer\teraterm.iss JA"Project"-"Compile" ŃCXg[쐬
    • +
    • CXg[[ƃ|[^uł installer\Output tH_ɏo͂܂B
    • +
    • 쐬ꂽ|[^uł zip ňk
    • +
    +
    +
    + + + diff --git a/doc/ja/html/reference/develop-environment.html b/doc/ja/html/reference/develop-environment.html new file mode 100644 index 000000000..a3e5376fb --- /dev/null +++ b/doc/ja/html/reference/develop-environment.html @@ -0,0 +1,103 @@ + + + + +J‹ECu + + + + + +

    J‹ECu

    + +
      +
    1. RpCEc[
    2. +
    3. gpĂ郉Cu
    4. +
    + +
    + +

    RpCEc[

    + +

    +Tera Term Project Ń[XɎgpĂRpC͈ȉ̒ʂłB +

    + + + +

    +rhɕKvȃc[͈ȉ̒ʂłB +

    + + + +

    Cu

    + + + + + diff --git a/doc/ja/html/reference/develop-memo.html b/doc/ja/html/reference/develop-memo.html new file mode 100644 index 000000000..f9f51da17 --- /dev/null +++ b/doc/ja/html/reference/develop-memo.html @@ -0,0 +1,625 @@ + + + + + + + + + + +

    + +
      +
    1. TERATERM.INI ւ̍ڒlj
    2. +
    3. ۉbZ[W̑Ή
    4. +
    5. }NR}hlj̍ƃXg
    6. +
    7. j[IDlj̖K
    8. +
    9. ACR
    10. +
    11. Cuo[WAbv̕ύXӏ
    12. +
    13. _v
    14. +
    + +
    + +

    TERATERM.INI ւ̍ڒlj

    + +

    ǂȂƂɒlj邩

    + +

    +V@\ljē삪ςƁA܂łǂ̓҂郆[UɂƂĂ͕sւɂȂB
    +؂ւ悤ɁATERATERM.INI ֍ڂljB +

    + +

    ftHgl

    + +

    +V삪命̃[UɂƂĕ֗ɂȂASłA𐶂܂Ȃ̂ł΁uonvƂĂ悢B
    +łȂꍇ́uoffvƂāAȑOƓɂȂ悤ɂׂB +

    + +

    ږ

    + +

    +ł EnableFoo... DisableBar... ݂Ă܂Ă邪A₷B
    + Baz... Ƃ`ɂ̂]܂B +

    + +

    ύXӏ

    + +
      +
    • \[XR[h +
        +
      • INI t@C̓ǂݏ
        + teraterm\ttpset\ttset.c
      • +
      • tttset \
        + teraterm\common\tttypes.h
        + Tera Term 4(TT4) Tera Term 5(TT5) ̗ŃvOC𓮍삳ɂ TT4 ̍\̂ƌ݊Kv
        + ̂߁AVo[͖ɒlj
        + lɁAgpȂȂo[͍폜 reserve_XXX Ƀl[ĎcĂ
      • +
      +
    • +
    • hLg +
        +
      • Tera Term ݒt@C̑Sڈꗗ
        + setup/teraterm-ini.html
      • +
      • ݒ_CAÕwvi_CAOɕύX UI ꍇj
        + menu ȉ̃_CAÕy[W
      • +
      • ݒ荀ڂ̃wvi_CAOɕύX UI Ȃꍇj
        + setup ȉ̊Y镪ނ̃y[W
      • +
      +
    • +
    • ftHg INI t@C
      + installer\release\TERATERM.INI
    • +
    + + +

    ۉbZ[W̑Ή

    + +

    VۉbZ[WɑΉ

    + +
      +
    • \[XR[h
      + t@Cǂݍ
    • +
    • _CAÕbZ[W̏ꍇɂ́A\[Xt@Cɉp̃bZ[WftHg̃eLXgƂċLq
    • +
    • t@CC
      + Ĉ installer/release/lang_utf8 žt@C +
        +
      • English.lngipj +
          +
        • p̃bZ[Wlj
        • +
        • bZ[W̍XVƂčLq
        • +
        • ̑ΉɍXV̂ŁAŏI|͂Ȃ
        • +
        • p̌t@C̓vOǂݍ܂ȂǍt@C֖|󂷂Ƃ̎QlƂȂ
        • +
        +
      • +
      • Japanese.lngi{j +
          +
        • {ɖ|󂵂bZ[Wlj
        • +
        • bZ[W̍XVƂčLq
        • +
        • ̑ΉɍXV̂ŁAŏI|͂Ȃ
        • +
        +
      • +
      • ̌t@C +
          +
        • p̃bZ[Wlj
        • +
        • bZ[W̍XVƂčLq
        • +
        • |̓Abvf[gĂȂ̂ōŏI|͍XVȂ
        • +
        +
      • +
      +
    • +
    + +

    ۉbZ[W|󂷂

    + +
      +
    • t@CC +
        +
      • Ώی̃t@CɉpŏĂ郁bZ[WAΏی̃bZ[Wɖ|󂷂
      • +
      • bZ[W̍XV͍XVȂ
      • +
      • ŏI|XV
      • +
      +
    • +
    + + +

    }NR}hlj̍ƃXg

    + +

    +Tera Term}NV݂Ƃ̍Ǝ菇ɂ‚āAȉɎ܂B +

    + +
      +
    • \[XR[h̏C +
        +
      • R}h̓ ID ̔ԂBiu IDv"helpid.h"ɂgpj
        + ... teraterm/ttmacro/ttmparse.h
      • +
      • R}h𑖍ē ID ɕϊB
        + ... CheckReservedWord@teraterm/ttmacro/ttmparse.c
      • +
      • R}h̓ ID ۂɏ֐ĂԁB
        + ... ExecCmnd@teraterm/ttmacro/ttl.c
      • +
      • ֐B
      • +
      +
    • +
    • wv(ꂲ) +
        +
      • R}h̃wvB
        + ... doc/LANG/html/macro/command/hogefunc.html
      • +
      • R}hꗗy[WɒljB
        + ... doc/LANG/html/macro/command/index.html
      • +
      • wvgsbNɒljB
        + ... doc/LANG/teraterm.hhc
      • +
      • wvy[W̃ReLXg ID ̔ԂB
        + l R}h̓ ID + 92000B
        + ... teraterm/common/helpid.h
      • +
      • ReLXg ID ƌĂяot@C̃GCAX쐬B
        + eLXgGfB^ŒڊJA[ALIAS]HTMLljB
        + ... doc/LANG/teraterm.hhp
      • +
      +
    • +
    + + + + +
    +1ڂ 5
    +
    +
    +2ڂ
    +  Tera Term VT EBhEȂ  0
    +  Tera Term TEK EBhEȂ 1
    +  TTSSH Ȃ                   2
    +  TTProxy Ȃ                 3
    +  TTXKanjiMenu Ȃ            4
    +
    +
    +3ڂ
    +  [File] j[Ȃ    1
    +  [Edit] j[Ȃ    2
    +  [Setup] j[Ȃ   3
    +  [Control] j[Ȃ 4
    +  [Window] j[Ȃ  8
    +  [Help] j[Ȃ    9
    +
    + +

    +FFilezTTSSH̃j[lj +

    +
    +#define ID_SSHSCPMENU       52110
    +
    + + +

    ACR

    + +

    +ACRt@Cɂ́A4bit 32px, 16px 摜A32bit 256px, 48px, 32px, 16px 摜܂߂܂B
    +eACRt@Cɂ͈ȉ̎ނ̉摜܂܂Ă܂B +

    + +T (Tera Term) + + + + + + + + + + + + + + + + +
    icon file icon name 4bit 32px4bit 16px32bit 256px32bit 48px32bit 32px32bit 16px
    teraterm\common\teraterm.ico TTERM (Default)BMP BMP PNG BMP BMP BMP
    teraterm\common\teraterm_classic.icoTTERM_CLASSIC BMP BMP - - - -
    teraterm\common\teraterm_3d.ico TTERM_3D BMP BMP PNG BMP BMP BMP
    teraterm\common\teraterm_flat.ico TTERM_FLAT BMP BMP PNG BMP BMP BMP
    + +VT (VT Window) + + + + + + + + + + + + + + + + +
    icon file icon name 4bit 32px4bit 16px32bit 256px32bit 48px32bit 32px32bit 16px
    teraterm\common\vt.ico VT (Default)BMP BMP PNG BMP BMP BMP
    teraterm\common\vt_classic.icoVT_CLASSIC BMP BMP - - - -
    teraterm\common\vt_3d.ico VT_3D BMP BMP PNG BMP BMP BMP
    teraterm\common\vt_flat.ico VT_FLAT BMP BMP PNG BMP BMP BMP
    + +TEK (TEK Windows) + + + + + + + +
    icon file icon name4bit 32px4bit 16px32bit 256px32bit 48px32bit 32px32bit 16px
    teraterm\common\tek.icoTEK BMP BMP - - - -
    + +M (Macro) + + + + + + + + + + + + + +
    icon file icon name4bit 32px4bit 16px32bit 256px32bit 48px32bit 32px32bit 16px
    teraterm\ttpmacro\ttmacro.ico - BMP BMP PNG BMP BMP BMP
    teraterm\ttpmacro\ttmacro_3d.ico - BMP BMP PNG BMP BMP BMP
    teraterm\ttpmacro\ttmacro_flat.ico- BMP BMP PNG BMP BMP BMP
    + +MF (Macro File) + + + + + + + +
    icon file icon name4bit 32px4bit 16px32bit 256px32bit 48px32bit 32px32bit 16px
    teraterm\ttpmacro\ttmacrof.ico- BMP BMP PNG BMP BMP BMP
    + +keycode + + + + + + + +
    icon file icon name4bit 32px4bit 16px32bit 256px32bit 48px32bit 32px32bit 16px
    teraterm\keycode\keycode.ico- BMP BMP - BMP - -
    + +TTSSH + + + + + + + + + + + + + + + + + + + +
    icon file icon name 4bit 32px4bit 16px32bit 256px32bit 48px32bit 32px32bit 16px
    teraterm\ttpmacro\ttsecure.ico flat2 (Default)BMP BMP PNG BMP BMP BMP
    teraterm\ttpmacro\ttsecure_classic.icoclassic BMP BMP - - - -
    teraterm\ttpmacro\ttsecure_yellow.ico yellow BMP BMP PNG BMP BMP BMP
    teraterm\ttpmacro\ttsecure_green.ico green BMP BMP PNG BMP BMP BMP
    teraterm\ttpmacro\ttsecure_flat.ico flat BMP BMP PNG BMP BMP BMP
    + +TeraTerm Menu + + + + + + + +
    icon file icon name 4bit 32px4bit 16px32bit 256px32bit 48px32bit 32px32bit 16px
    ttpmenu\teraterm.ico- BMP BMP - BMP BMP BMP
    + +Cygterm+ + + + + + + + +
    icon file icon name 4bit 32px4bit 16px32bit 256px32bit 48px32bit 32px32bit 16px
    cygwin\cygterm\cygterm.icoCYGTERM BMP BMP - BMP BMP BMP
    + +

    +ACRt@Cւ̉摜̊i[́urbgATCY傫vƂ܂B
    +łȂƁAvOTCYw肹ɁuőTCỶ摜v擾悤ƂƂɁuŏ̉摜vo邽߂łB +

    + +

    +ACRt@Cɂ 4bit 摜܂߂܂B
    +Windows NT 4.0 4bit ACR̂݃T|[gĂ邽߂łB܂AWindows 2000 ̒ʒm̈ 4bit ACR̂݃T|[gĂ܂B
    +4bit ACRɂ͈ȉ̐Fgpł܂B +

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
      #000000(0,0,0)
      #800000(128,0,0)
      #ff0000(255,0,0)
      #ff00ff(255,0,255)
      #008080(0,128,128)
      #008000(0,128,0)
      #00ff00(0,255,0)
      #00ffff(0,255,255)
      #000080(0,0,128)
      #800080(128,0,128)
      #0000ff(0,0,255)
      #c0c0c0(192,192,192)
      #808080(128,128,128)
      #808000(128,128,0)
      #ffff00(255,255,0)
      #ffffff255,255,255
    + +

    +ACRp摜̃\[Xt@C͈ȉɊi[Ă܂B +

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    source filebitTVTMacroSSHCygwin
    teraterm\common\flat_icon_16.psd4bitvvvvv
    32bitvvvvv
    teraterm\common\flat_icon_32.psd4bitvvvvv
    32bitvvvvv
    teraterm\common\flat_icon_48.psd32bitvvvvv
    teraterm\common\flat_icon_256.psd32bitvvvv-
    + + + + + + + + + + + +
    source filebitKeycode
    teraterm\common\keycode_48.psd4bitv
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    source filebitTVTMacroMacro FileSSHCygwin
    teraterm\common\flat2_icon_16.psd4bitvvvvvv
    32bitvvvvvv
    teraterm\common\flat2_icon_32.psd4bitvvvvvv
    32bitvvvvvv
    teraterm\common\flat2_icon_48.psd32bitvvvvvv
    teraterm\common\flat2_icon_256.psd32bitvvvvv-
    + + +

    Cuo[WAbv̕ύXӏ

    + +

    ύXKvȃt@C

    + +
      +
    • doc/(en|ja)/html/about/history.html +
        +
      • CugR|[lg (̑|Misc) ZNVɒNjL
      • +
      +
    • +
    • doc/(en|ja)/html/reference/develop.html +
        +
      • gp郉Cũo[WύX
      • +
      +
    • +
    • libs/download.cmake +
        +
      • SRC_URL ̃o[WύX
      • +
      • DIR_IN_ARC ̃o[WύX
      • +
      • ARC_HASH ύXBi_E[hj`FbNpj +
          +
        • zz̃nbVlgpBiLibreSSL, Oniguruma, zlibj
        • +
        • nbVlJĂȂ̂́A茳ŋ߂Biargon2, cJSON, SFMTj
        • +
        +
      • +
      • CHECK_HASH ύXBio[W`FbNpj +
          +
        • o[W`FbNɎgt@C̃nbVl茳ŋ߂B
        • +
        +
      • +
      +
    • +
    • TeraTermProject/update_website |Wg add/manual tH_z +
        +
      • Web TCgŕ\郉CZXt@C TeraTermProject/update_website |WgŊǗĂB
        + CZXt@CɕύX΍ւB
      • +
      +
    • +
    + + +

    t@C̃nbVl̋߂

    + +
    +% sha256sum foo.bar
    +% openssl dgst -sha256 foo.bar
    +
    + + +

    _v

    + +_vt@CgfoO@B + +

    +Kvȃt@C +

    +
    dmpt@C(~j_vt@C)
    +
    + ttermpro.exe Ŗ肪Ƃ + tH_%LOCALAPPDATA%\teraterm5ɏo͂܂B
    + teraterm_YYMMDD-HHMMSS_HASH.dmp Ƃt@CɂȂ܂B +
    + +
    pdbt@C
    +
    + pdb = program database files (symbol files)
    + exet@C̃foOt@C +
    + +
    exet@C
    +
    + ttermpro.exe +
    +
    + +

    +g + +

      +
    • ~j_v_uNbNVisual StudioN
    • +
    • ANV[lCeBû݂ŃfoO]NbN
    • +
    + + + + diff --git a/doc/ja/html/reference/develop-release.html b/doc/ja/html/reference/develop-release.html new file mode 100644 index 000000000..800f632ed --- /dev/null +++ b/doc/ja/html/reference/develop-release.html @@ -0,0 +1,290 @@ + + + + +[X̎菇 + + + + + +

    [X̎菇

    + +
      +
    1. [XƂ̊JnRC쐬܂
    2. +
    3. RC쐬烊[X܂
    4. +
    5. [X
    6. +
    7. R[ht[Yɂ‚
    8. +
    + +
    + +

    +TeraTerm Project ł̃[X菇ɂ‚ĈȉɎ܂B +

    + +

    [XƂ̊JnRC쐬܂

    + +
      +
    1. `PbgAu`ȂǂmF +
        +
      • vWFNg`[ŊmF +
          +
        • ̃[Xɓ́Eȍ~ɉ̂𐮗E肷
        • +
        +
      • +
      • u`}[W +
          +
        • trunk 4-stable ԁAƒ̃u`Ȃ
        • +
        +
      • +
      • `PbgN[Y +
          +
        • łɏCς݁Aς݂̂̂̓N[Y
          + [Xɂ́AΏۂ̃}CXg[̃`Pbgׂ͂ăN[YĂԂɂȂ
        • +
        • ̃[X։񂷂̂̓}CXg[ύX
          + ̃[Xp}CXg[쐬
        • +
        +
      • +
      • ̎_ŐVɏoĂ`Pbg̑Ή
      • +
      +
    2. +
    3. c[ACuAC|[g̍ŐVł`FbN + +

      [XɎgo[W͂̎_łނˌ肷B

      +
    4. +
    5. ̃[Xɓꂽ̂
    6. +
    + +

    RC쐬烊[X܂

    + +
      +
    1. hLgmF +
        +
      • _CAO̐ݒ荀ځEUÎȂʃIvVER}hCp[^EVK}NR}hȂǁAΉhLgɘRꂪȂmFB
      • +
      • ύXmFAYꂪΒNjLB
      • +
      • ύX̏ԂύXB̎wjƂẮA^[~iG~[V֌WEAvP[VƂĂ̕ύXE}N̏B
      • +
      • hLg|󂳂Ă邱ƂmFA|YꂪΖ|󂷂B
      • +
      +
    2. +
    3. o[WCNg +
        +
      • + teraterm\common\tt-version.h
        + TT_VERSION_SUBSTR "RC" ɂ +
        +  #define TT_VERSION_MAJOR             5
        +  #define TT_VERSION_MINOR             0
        +- #define TT_VERSION_SUBSTR            "dev"
        ++ #define TT_VERSION_SUBSTR            "RC"
        +
        + TT_VERSION_MINOR ́AÕ[XɃCNgĂB +
      • +
      • ttssh2\ttxssh\ttxssh-version.h
        + TTSSH_VERSION_MINOR ́AÕ[XɃCNgĂB +
      • +
      • ttpmenu\ttpmenu.rc // ύX̂
      • +
      • TTProxy\TTProxy.rc // ύX̂
      • +
      • TTXKanjiMenu\ttxkanjimenu.rc // ύX̂
      • +
      • + installer\teraterm.iss
        + RC ɕύXAA[JCu̍쐬Lɂ܂B +
        +- #define AppVer "5.0-dev"
        ++ #define AppVer "5.0-RC"
        +
        +  [PreCompile]
        +  Name: makechm.bat
        +- Name: build.bat
        +- ;Name: build.bat; Parameters: rebuild
        ++ ;Name: build.bat
        ++ Name: build.bat; Parameters: rebuild
        +  
        +  [PostCompile]
        +- ;Name: makearchive.bat; Parameters: release
        ++ Name: makearchive.bat; Parameters: release
        +
        +
      • +
      +

      + CygTerm+ ͗OŁA[XƂ͊֌WȂo[WオB
      + CR~bgƑ[XɂȂA[X͂̓tƂȂB̂߁ACEo[W̃CNgEύX𓯎ɃR~bgB
      + ̓RpC̓肪eՂȂ߁B +

      +
    4. +
    5. ̔Nɂŏ̃[X̏ꍇ́A쌠\́uŌ̔s̔NvCNg +
        +
      • teraterm\keycode\keycode-version.rc // VERSIONINFO
      • +
      • teraterm\teraterm\tt-version.rc // VERSIONINFO
      • +
      • teraterm\ttpcmn\ttpcmn-version.rc // VERSIONINFO
      • +
      • teraterm\ttpdlg\ttpdlg.rc // dialog
      • +
      • teraterm\ttpmacro\ttm-version.rc // VERSIONINFO
      • +
      • ttssh2\ttxssh\ttxssh.rc // dialog
      • +
      • ttssh2\ttxssh\ttxssh-version.rc // VERSIONINFO
      • +
      • ttpmenu\ttpmenu.rc // dialog, VERSIONINFO
      • +
      • TTProxy\TTProxy.rc // dialog, VERSIONINFO(en), VERSIONINFO(ja)
      • +
      • TTXKanjiMenu\ttxkanjimenu.rc // VERSIONINFO
      • +
      • installer\teraterm.iss
      • +
      • installer\release\license.txt // Tera Term, TTSSH, Cygterm+, TTProxy, TeraTerm Menu, TTX KanjiMenu
      • +
      • doc\en\html\index.html
      • +
      • doc\en\html\about\copyright.html // Tera Term, TTSSH, Cygterm+, TTProxy, TeraTerm Menu, TTX KanjiMenu
      • +
      • doc\en\html\macro\index.html
      • +
      • doc\ja\html\index.html
      • +
      • doc\ja\html\about\copyright.html // Tera Term, TTSSH, Cygterm+, TTProxy, TeraTerm Menu, TTX KanjiMenu
      • +
      • doc\ja\html\macro\index.html
      • +
      +
    6. +
    7. ̏ԂŃR~bg
    8. +
    9. CXg[쐬
    10. +
    11. T|[gĂS OS ŃCXg[̎sANAڑ`FbN
    12. +
    13. push AppVeyor Ńrh
    14. +
    15. RC̍쐬AiEX + +
    16. +
    17. tB[hobN󂯓 +

      CēxuhLgmFvuT|[gĂS OS ŋNEڑ`FbNv

      +
    18. +
    + +

    [X

    + +
      +
    1. hLgmF (ڍׂ͓)
    2. +
    3. "RC" 폜 +
        +
      • + teraterm\common\tt-version.h +
        +  #define TT_VERSION_MAJOR             5
        +  #define TT_VERSION_MINOR             0
        +- #define TT_VERSION_SUBSTR            "RC"
        ++ #undef TT_VERSION_SUBSTR
        +
        +
      • +
      • + installer\teraterm.iss
        +
        +- #define AppVer "5.0-RC"
        ++ #define AppVer "5.0"
        +
        +
      • +
      +
    4. +
    5. [XύX +
        +
      • html/about/history.html
      • +
      +
    6. +
    7. CXg[쐬 +

      + rhECXg[̐G[Ȃł邱ƂmFB +

      +
    8. +
    9. ̏ԂŃR~bg
    10. +
    11. ^O쐬 +

      + ^O annotated tags ƂB
      + ^Óuv(o[W)vBi: 5.0Ȃ "v5.0" j +

      +
      +git tag -a v5.0 -m "Release 5.0"
      +git push origin v5.0
      +
      +
    12. +
    13. CXg[쐬 +

      AppVeyor "github-release" vWFNggpB

      +
    14. +
    15. GitHub Releases ɒlj +
        +
      • Œlj^OI
      • +
      • CXg[ƃ|[^uł zip t@Clj
      • +
      • hLg̕ύX烊[Xm[g̊Tvi{EpƂɁjLq
      • +
      +
    16. +
    17. ECX΍\tǧmmF +
        +
      • Chrome Ń_E[hĂ݂
      • +
      • Edge Ń_E[hĂ݂
        + Edge ́uDefender SmartScreenv́uʓIɃ_E[hĂ܂v̌xoB𐳂ȂmƂĕ񍐂B +
      • +
      +
    18. +
    19. vWFNgWeby[W (https://teratermproject.github.io) XV +

      XV̂ vWFNgy[W̍XV菇 Q

      +
    20. +
    21. [XAiEX + +
    22. +
    23. o[WCNg +
        +
      • + teraterm/common/tt-version.h
        + TT_VERSION_MINOR 1i߂āASUBSTR "dev" ɂB +
        +  #define TT_VERSION_MAJOR             5
        +- #define TT_VERSION_MINOR             0
        +- #undef TT_VERSION_SUBSTR
        ++ #define TT_VERSION_MINOR             1
        ++ #define TT_VERSION_SUBSTR            "dev"
        +
        +
      • +
      • + ttssh2/ttssh/ttxssh-version.h
        + TTSSH_VERSION_MINOR 1i߂B +
        +  #define TTSSH_VERSION_MAJOR             3
        +- #define TTSSH_VERSION_MINOR             0
        ++ #define TTSSH_VERSION_MINOR             1
        +
        +
      • +
      • + installer\teraterm.iss
        + AppVer ũo[W-devvƂ +
        +- #define AppVer "5.0"
        ++ #define AppVer "5.1-dev"
        +
        +  [PreCompile]
        +  Name: makechm.bat
        +- ;Name: build.bat
        +- Name: build.bat; Parameters: rebuild
        ++ Name: build.bat
        ++ ;Name: build.bat; Parameters: rebuild
        +  
        +  [PostCompile]
        +- Name: makearchive.bat; Parameters: release
        ++ ;Name: makearchive.bat; Parameters: release
        +
        +
      • +
      +
    24. +
    25. Chocolatey ̓o^XV
    26. +
    + +

    R[ht[Yɂ‚

    + +

    +R[ht[X́AIɂ͒vIȃoȌĈ݉”\ƂȂ܂B
    +R[ht[ÝARC쐬iJu` teraterm.iss RC tR~bgjio[WCNgR~bgj܂łƂ܂B +

    + + + diff --git a/doc/ja/html/reference/develop.html b/doc/ja/html/reference/develop.html new file mode 100644 index 000000000..2f5f91d7a --- /dev/null +++ b/doc/ja/html/reference/develop.html @@ -0,0 +1,25 @@ + + + + +Tera Term JҌ + + + + + +

    Tera Term JҌ

    + +
      +
    1. J‹ECu
    2. +
    3. J‹̍\zErh菇
    4. +
    5. +
    6. [X菇
    7. +
    8. \[XR[h
    9. +
    10. Win32APIɊւ郁
    11. +
    12. \
    13. +
    + + + diff --git a/doc/ja/html/reference/develop.txt b/doc/ja/html/reference/develop.txt deleted file mode 100644 index 8a9766ad4..000000000 --- a/doc/ja/html/reference/develop.txt +++ /dev/null @@ -1,339 +0,0 @@ - J‹ -- OS - Windows XP Professional / Windows 8 Pro / Windows 8.1 Pro / Windows 10 Pro -- Tera Term Project Ń[XɎgpĂRpC --- Visual Studio 2005 SP1 (Standard Edition ȏ) - Microsoft Visual Studio 2005 Service Pack 1 MFC ZLeBXVvO - Windows Server 2003 R2 Platform SDK(Microsoft Windows SDK for Windows 7 and .NET Framework 3.5 SP1) - : Visual Studio 2005 Standard Editionł́AOpenSSL ̃rhs܂BWindows Server 2003 R2 Platform SDK CXg[A"Crypt32.Lib"Nł悤ɂĂKv܂B - SDK ŃCXg[ꂽfBNgŗDɂȂ悤AINCLUDE LIB ‹ϐݒ肵܂B - : INCLUDE "C:\Program Files\Microsoft Platform SDK for Windows Server 2003 R2\Include" - LIB "C:\Program Files\Microsoft Platform SDK for Windows Server 2003 R2\Lib" -- T|[gĂRpC --- Visual Studio 2008 SP1 (Standard Edition ȏ) - : RpCꂽst@C Windows NT 4.0, 95, 98, Me œ܂B --- Visual Studio 2010 SP1 (Professional Edition ȏ) - : RpCꂽst@C Windows 2000, NT 4.0, 95, 98, Me œ܂B --- Visual Studio 2012 Update 4 (Professional Edition ȏ) - : RpCꂽst@C Windows Vista, XP, 2000, NT 4.0, 95, 98, Me œ܂B - Windows Vista, XP T|[gɂ v110_xp w肵ĂB --- Visual Studio Community 2013 Update 5 - MFC MBCS DLL AhI - : RpCꂽst@C Windows Vista, XP, 2000, NT 4.0, 95, 98, Me œ܂B - Windows Vista, XP T|[gɂ v120_xp w肵ĂB --- Visual Studio Community 2015 Update 3 - : RpCꂽst@C Windows Vista, XP, 2000, NT 4.0, 95, 98, Me œ܂B - Windows Vista, XP T|[gɂ v140_xp w肵ĂB --- Visual Studio Community 2017 - : RpCꂽst@C Windows Vista, XP, 2000, NT 4.0, 95, 98, Me œ܂B - Windows Vista, XP T|[gɂ v141_xp w肵ĂB -- ob`t@Crh邽߂ - Visual Studio ̃R}hvvgob`t@Cs邩Aȉ̂悤Ɋ‹ϐݒ肵ĂB - gpo[W Visual Studio "(x86) Native Tools Command Prompt" sARpC̃pXɊ֌W PATH VSINSTALLDIR ϐ‹ϐɓo^ĂB - : INCLUDE C:\Program Files (x86)\Microsoft Visual Studio 12.0\VC\INCLUDE;C:\Program Files (x86)\Microsoft Visual Studio 12.0\VC\ATLMFC\INCLUDE;C:\Program Files (x86)\Windows Kits\8.1\include\shared;C:\Program Files (x86)\Windows Kits\8.1\include\um; - LIB C:\Program Files (x86)\Microsoft Visual Studio 12.0\VC\LIB;C:\Program Files (x86)\Microsoft Visual Studio 12.0\VC\ATLMFC\LIB;C:\Program Files (x86)\Windows Kits\8.1\lib\winv6.3\um\x86; - PATH C:\Program Files (x86)\Microsoft Visual Studio 12.0\Common7\IDE;C:\Program Files (x86)\Microsoft Visual Studio 12.0\VC\BIN;C:\Program Files (x86)\Windows Kits\8.1\bin\x86 - VSINSTALLDIR C:\Program Files (x86)\Microsoft Visual Studio 12.0\VC -- CXg[ - Inno Setup 5.6.1 ANSI (http://www.jrsoftware.org/isinfo.php) - Inno Setup Preprocessor - ISTool 5.3.0.1 (https://sourceforge.net/projects/istool/) -- ̑ - Cygwin 1.5.x (1.7.x Windows 9x T|[gĂȂ̂ŕs) - ActivePerl 5.8 ȏ - OpenSSL ̃RpCAhLgt@C̕R[hEsR[hϊɕKvłB - Subversion for Windows (http://sourceforge.net/projects/win32svn/) - \[X̃`FbNAEgɎg svn ƌ݊̂o[WB - libs\svn ։𓀂܂B("svnversion.exe" libs\svn\bin ɔzu悤ɂĂ) - - - Cu -- Oniguruma 6.9.1 (https://github.com/kkos/oniguruma) -- OpenSSL 1.0.2r (http://www.openssl.org/) -- zlib 1.2.11 (http://www.zlib.net/) -- PuTTY 0.70 (http://www.chiark.greenend.org.uk/~sgtatham/putty/) -- SFMT 1.5.1 (http://www.math.sci.hiroshima-u.ac.jp/~m-mat/MT/SFMT/index-jp.html) - - - SVN R~b^[ւ̒ -- SVN |Wg͈ʌƂ͈ႢAȉ̒ʂłB - svn+ssh://svn.osdn.net/svnroot/ttssh2/trunk - -- t@Cʂ̃fBNgŕҏWȂłB - R~bgƂɕʂ̐l̏C폜Ă܂Ƃ܂B - -- Abvf[gER~bg̒ - svn̏s邱Ƃ̂ŁAt@CGfB^ŊJ܂܂ōsȂłB - -- t@CҏW̒ - t@C(installer\release\lang\*.lng)͑ΉGfB^(vim, EmEditor, Notepad++)ŕҏWĂB - - - TERATERM.INI ւ̍ڒlj -- ږ -ł EnableFoo... DisableBar... ݂Ă܂Ă邪A₷B - Baz... Ƃ`ɂ̂]܂B - - - j[IDlj̖K - -1ڂ 5 - -2ڂ - Tera Term VT EBhEȂ 0 - Tera Term TEK EBhEȂ 1 - TTSSH Ȃ 2 - TTProxy Ȃ 3 - TTXKanjiMenu Ȃ 4 - -3ڂ - [File] j[Ȃ 1 - [Edit] j[Ȃ 2 - [Setup] j[Ȃ 3 - [Control] j[Ȃ 4 - [Window] j[Ȃ 8 - [Help] j[Ȃ 9 - - -FFilezTTSSH̃j[lj - -#define ID_SSHSCPMENU 52110 - - - }NR}hlj̍ƃXg - Tera Term}NV݂Ƃ̍Ǝ菇ɂ‚āAȉɎ܂B - -PD\[XR[h̏C --- R}h̓ ID ̔ԂBiu IDv"helpid.h"ɂgpj - ... teraterm/ttmacro/ttmparse.h --- R}h𑖍ē ID ɕϊB - ... CheckReservedWord@teraterm/ttmacro/ttmparse.c --- R}h̓ ID ۂɏ֐ĂԁB - ... ExecCmnd@teraterm/ttmacro/ttl.c --- ֐B - -QD wv(ꂲ) --- R}h̃wvB - ... doc/LANG/html/macro/command/hogefunc.html --- R}hꗗy[WɒljB - ... doc/LANG/html/macro/command/index.html --- wvgsbNɒljB - ... doc/LANG/teraterm.hhc --- wvy[W̃ReLXg ID ̔ԂB - l R}h̓ ID + 92000B - ... teraterm/common/helpid.h --- ReLXg ID ƌĂяot@C̃GCAX쐬B - eLXgGfB^ŒڊJA[ALIAS]HTMLljB - ... doc/LANG/teraterm.hhp - - - Cũrh@ - 1. PuTTY (used by TTSSH) - (1) putty ̃\[X libs/putty ̒ɓWJB - - 2. Oniguruma (used by Tera Term Macro) - (1) oniguruma ̃\[X libs/oniguruma ̒ɓWJB - (2) X^[gj[uVisual Studio 2005 R}h vvgvNB - (3) R}hvvgォ libs fBNgɈړAbuildoniguruma6.bat sB - - 3. OpenSSL (used by TTSSH) - (1) openssl ̃\[X libs/openssl ̒ɓWJB - (2) OpenSSL 1.0.0e ȍ~ŁAlibs/openssl/Makefile.bak ŏ瑶݂ꍇ́Ax蓮ō폜ĂB - (3) X^[gj[uVisual Studio 2005 R}h vvgvNB - (4) R}hvvgォ libs fBNgɈړAbuildopenssl.bat sB - - 4. Zlib (used by TTSSH) - (1) zlib ̃\[X libs/zlib ̒ɓWJB - (2) X^[gj[uVisual Studio 2005 R}h vvgvNB - (3) R}hvvgォ libs fBNgɈړAbuildzlib.bat sB - - 5. SFMT (used by Tera Term Macro) - (1) SFMT ̃\[X libs/SFMT ̒ɓWJB - (2) X^[gj[uVisual Studio 2005 R}h vvgvNB - (3) R}hvvgォ libs fBNgɈړAbuildSFMT.bat sB - - - Tera Term̃rh@ - Tera Term̃rh@ɂ‚ĈȉɎ܂B - rhɂVisual Studio 2005 Standard EditionȏオKvłBiVisual Studio 2005 Express Edition͕sj - - 1. \[XR[hOSDN(https://ja.osdn.net/projects/ttssh2/)`FbNAEgB - 2. teraterm\visualc\ttermpro.sln Visual StudioŊJB - .slnt@C̉sR[h"LF"ɂȂĂƁAVisual StudioNȂ̂Œӊ肢܂B - 3. \[VrhB - 4. rhɐteraterm fBNgɎsvOB - - - TeraTerm Menũrh@ - 1. \[XR[hOSDN(https://ja.osdn.net/projects/ttssh2/)`FbNAEgB - 2. ttpmenu\ttpmenu.sln Visual StudioŊJB - 3. \[VrhB - 4. rhɐ ttpmenu fBNg ttpmenu.exe B - - - TTXKanjiMenũrh@ - 1. \[XR[hOSDN(https://ja.osdn.net/projects/ttssh2/)`FbNAEgB - 2. TTXKanjiMenu\ttxkanjimenu.sln Visual StudioŊJB - 3. \[VrhB - 4. rhɐ TTXKanjiMenu fBNg ttxkanjimenu.dll B - - - TTProxỹrh@ - TTProxỹrh@ɂ‚ĈȉɎ܂B - rhɂVisual Studio 2005(VC++8.0)KvłB - - 1. \[XR[hOSDN(https://ja.osdn.net/projects/ttssh2/)`FbNAEgB - 2. TTProxy\TTProxy.sln Visual StudioŊJB - 3. \[VrhB - 4. rhɐ TTProxy fBNgDLLB - - - TTSSH̃rh@ - TTSSH̃rh@ɂ‚ĈȉɎ܂B - rhɂVisual Studio 2005(VC++8.0)AActivePerlKvłB - - * TTSSHP̂̃rh VS2005 Express Edition ł”\łBttpcmn.libN邽߁ATera Term̃rhOɍsĂKv܂BVS2005 Express EditionłTera Term̃rh͂ł܂񂪁Attpcmn.lib͍쐬邱Ƃł܂B - - * VS2008 Express EditionŃrhƁA.rct@CʼnL̃G[܂B - .\ttxssh.rc(10) : fatal error RC1015: cannot open include file 'afxres.h'. - - {ۂɂ́A.rct@CeLXgGfB^ŊJAafxres.hinclude폜AVK2slj܂B - - - #include "afxres.h" - + #include - + #define IDC_STATIC -1 - - 1. \[XR[hOSDN(https://ja.osdn.net/projects/ttssh2/)`FbNAEgB - 2. ttssh2\ttssh.sln Visual StudioŊJB - 3. \[VrhB - 4. rhɐttssh2\ttxssh fBNgDLLB - - - CygTerm̃rh@ - CygTerm̃rh@ɂ‚ĈȉɎ܂B - - 1. Cygwin(http://www.cygwin.com/win-9x.html)CXg[B - : 1.7.x Windows 9x T|[gĂȂ̂ŁA1.5.x 𗘗pB - 1.5.x Windows 7 T|[gĂȂ悤A1.5.x ŃRpCꂽoCi 1.7.x ‹ŎsłB - 2. CygwiñVFNAcygterm fBNgֈړB - # cd cygterm - 3. CygTermRpCB - # make - - - TTXSamples̃rh@ - |WgTTXSamples Tera Term Extension (TTX)̃Tv܂B - TTXۂ̎QlɂĂB - TTXSamples̃rhɂVisual Studio 2005(VC++8.0)KvłB - Tera Term{̂Ƃ͈ႢAExpress Editionłrh”\łB - - 1. \[XR[hOSDN(https://ja.osdn.net/projects/ttssh2/)`FbNAEgB - 2. TTXSamples\TTXSamples.sln Visual StudioŊJB - 3. \[VrhB - 4. rhɐ TTXSamples fBNgDLLB - eTTX̏ڍׂɂ‚ẮAvWFNgReadMe-ja.txtQƂĂB - - - wvt@C̃rh@ - wvt@C̃rh@ɂ‚ĈȉɎ܂B - - 1. HTML Help Workshopȉ̃TCg肵CXg[B - http://www.microsoft.com/en-us/download/details.aspx?id=21138 - - 2. R}hvvgob`t@CNAKvȃt@CRs[B - > cd teraterm\insatller - > convtext.bat - - 3. FileOpen doc\en\teraterm.hhp doc\jp\teratermj.hhp JB - - 4. FileCompileŃwvt@CRpCB - - - [X̕@ - [X̕@ɂ‚ĈȉɎ܂B - - 0. RC 쐬Ƀo[WƒCNgB - ʂɃeXgĂтAo[WƂ̓sl邽(cf. TT_FILEMAPNAME `)B - - teraterm\common\tt-version.h - - ttssh2\ttxssh\ttxssh-version.h - - ttpmenu.rc // ύX̂ - - TTProxy.rc // ύX̂ - - ttxkanjimenu.rc // ύX̂ - - teraterm.iss - AppVer グA"RC" lj - snapshot RgAEg - ob`t@ČĂяoC - - 1. ˑCuAc[AC|[g̍ŐVł`FbNB - Visual Studio - http://www.microsoft.com/japan/msdn/vstudio/downloads/default.aspx - Inno Setup - http://www.jrsoftware.org/isdl.php - Oniguruma - https://github.com/kkos/oniguruma - OpenSSL - http://www.openssl.org/ - zlib - http://www.zlib.net/ - PuTTY - http://www.chiark.greenend.org.uk/~sgtatham/putty/ - SFMT - http://www.math.sci.hiroshima-u.ac.jp/~m-mat/MT/SFMT/index-jp.html - CygTerm - https://googledrive.com/host/0B1s-dM6d6yC4fmhEZ3c0VTNFWEFtV3daUlRGQmFHVnBmVHRybUNnUVliNWktNDRlZ2NnZTQ/index.html - LogMeTT - http://logmett.com/logmett-freeware - http://logmett.com/ttleditor - - 2. hLgmFB - - _CAO̐ݒ荀ځEUÎȂʃIvVER}hCp[^EVK}NR}hȂǁAΉhLgɘRꂪȂmFB - - ύX̏YmFB - ނ˕ύXɒNjLύX̏ԂύXB̎wjƂẮA^[~iG~[V֌WEAvP[VƂĂ̕ύXE}N̏B - - hLg|󂳂Ă邱ƂmFB - - 3. o[WグAtύXB - - teraterm.iss - AppVer RC 폜 - - html/about/hisotry.html - - CygTerm+ ͗OŁA[XƂ͊֌WȂo[WオB - pb`R~bgƑ[XɂȂA[X͂̓tƂȂB - ́Ao[W̖ patchlevel łARpC̓肪eՂȂ߁B - - 4. mF - - CXg[쐬B - ISTool teraterm\installer\teraterm.iss JA[Project]-[Compile Setup]ō쐬B - - CXg[юseXgB - - 5. SVN ̃^O쐬B - ^Óuteraterm-o[WvBƂ΁Av4.82Ȃ"teraterm-4_82"B - svn copy -m "Release 4.82" svn+ssh://svn.osdn.net/svnroot/ttssh2/trunk svn+ssh://svn.osdn.net/svnroot/ttssh2/tags/teraterm-4_82 - - 6. [Xp̃^OŃ`FbNAEgB - - 7. CXg[쐬B - ISTool teraterm\installer\teraterm.iss JA[Project]-[Compile Setup]ō쐬 - - 8. OSDN XVB - - [_E[h]-[Ǘ]-[VK쐬] - ύX͂ă[X쐬B - - [j[Xꗗ]-[VKo^] - j[XL쐬B - - 9. [OXgɃAiEXB - - 10. vWFNgy[WXVB - - 11. XibvVbg폜B - - 12. tH[ɍmB - - Announcements http://logmett.com/support-forums/5 - Announcements ɐVKeBނ AnnouncementB - ‘O Announcement ̎ނ Normal ɕύXB - Announcement ͎OŽcƂɂȂĂ̂ŁAO‘O Announcement 폜B - - 13. Twitter ɍmB - https://twitter.com/Tera_Term - [XmcC[gČŒ肷B - - 14. Chocolatey ̓o^XV diff --git a/doc/ja/html/reference/image/ssh2_connect1_version.png b/doc/ja/html/reference/image/ssh2_connect1_version.png new file mode 100644 index 000000000..65ae0b08a Binary files /dev/null and b/doc/ja/html/reference/image/ssh2_connect1_version.png differ diff --git a/doc/ja/html/reference/image/ssh2_connect2_kex.png b/doc/ja/html/reference/image/ssh2_connect2_kex.png new file mode 100644 index 000000000..f0f93e49d Binary files /dev/null and b/doc/ja/html/reference/image/ssh2_connect2_kex.png differ diff --git a/doc/ja/html/reference/image/ssh2_connect3_auth.png b/doc/ja/html/reference/image/ssh2_connect3_auth.png new file mode 100644 index 000000000..1f47980e1 Binary files /dev/null and b/doc/ja/html/reference/image/ssh2_connect3_auth.png differ diff --git a/doc/ja/html/reference/image/ssh2_connect4_channel.png b/doc/ja/html/reference/image/ssh2_connect4_channel.png new file mode 100644 index 000000000..77cf9e5f7 Binary files /dev/null and b/doc/ja/html/reference/image/ssh2_connect4_channel.png differ diff --git a/doc/ja/html/reference/image/ssh2_disconnect.png b/doc/ja/html/reference/image/ssh2_disconnect.png new file mode 100644 index 000000000..9bf787c12 Binary files /dev/null and b/doc/ja/html/reference/image/ssh2_disconnect.png differ diff --git a/doc/ja/html/reference/image/ssh2_plantuml.txt b/doc/ja/html/reference/image/ssh2_plantuml.txt new file mode 100644 index 000000000..ce408ccab --- /dev/null +++ b/doc/ja/html/reference/image/ssh2_plantuml.txt @@ -0,0 +1,479 @@ +https://www.plantuml.com/plantuml + +* ssh2_connect1_version.png +@startuml +right footer cf. RFC 4253 Section 4, Section 5 + +participant client as C +participant server as S + +C -> S: connect + +group Protocol Version Exchange + C <- S: identification string + note right: e.g. "SSH-1.99-OpenSSH_4.3p2 Debian-9\\n" + + C -> S: identification string + note left: e.g. "SSH-2.00-TTSSH/2.46 Win32\\n" + + note over C, S #ffffff: T[o 1.99 ŃNCAg 2.0 ̏ꍇ 2.0\n cf. RFC 4253 Section 5.1 + +end +@startuml + + + +* ssh2_connect2_kex.png +@startuml +right footer cf. RFC 4253 Section 7 + +participant client as C +participant server as S + +group Key Exhnage + group Algorithm Negotiation [cf. RFC 4253 Section 7.1] + note over C, S #ffffff + supported algorithms ̍\: + name-list kex_algorithms + name-list server_host_key_algorithms + name-list encryption_algorithms_client_to_server + name-list encryption_algorithms_server_to_client + name-list mac_algorithms_client_to_server + name-list mac_algorithms_server_to_client + name-list compression_algorithms_client_to_server + name-list compression_algorithms_server_to_client + name-list languages_client_to_server + name-list languages_server_to_client + ꂼ̃ASY͗D揇ɕł + end note + + C -> S: SSH_MSG_KEXINIT + note left: NCAg supported algorithms + + C <- S: SSH_MSG_KEXINIT + note right: T[o supported algorithms + + note over C, S #ffffff: - ŃT|[gĂ\n- NCAgōłDx\nɌ肷 + end + + group Ƃ̏ [Diffie-Hellman key exchange\ncf. RFC 4253 Section 8] + + note over C, S #ffffff + NmĂ: + p ... prime + g ... generator + end note + + note over C, S #ffffff + ҂mĂ: + V_C ... the client's identification string + V_S ... the server's identification string + I_C ... the payload of the client's SSH_MSG_KEXINIT + I_S ... the payload of the server's SSH_MSG_KEXINIT + end note + + note over C #ffffff: x 𐶐\ne = g^x mod p vZ + + C -> S: SSH_MSG_KEXDH_INIT + note left: e + + note over S #ffffff + y 𐶐 + f = g^y mod p vZ + K = e^y mod p vZ + H = hash(V_C || V_S || I_C || I_S || K_S || + e || f || K) + K_S ... T[ozXǧJ + s = T[ozXg̔閧p H ̏ + end note + + C <- S: SSH_MSG_KEXDH_REPLY + note right: K_S\nf\ns + + note over C #ffffff + K_S {ɃzXǧ؂ + (e.g. known_hosts Əƍ) + K = f^x mod p vZ + H = hash(V_C || V_S || I_C || I_S || K_S || + e || f || K) + s H ̂̂؂ + (s K_S ŕAH Ɣr) + end note + + note over C, S #ffffff + ҂Ă: + shared secret ... K + exchange hash ... H + ZbVID ... ̌ H + end note + + else Diffie-Hellman Group Exchange\ncf. RFC 4419 + + note over C, S #ffffff + ҂mĂ: + V_C ... the client's identification string + V_S ... the server's identification string + I_C ... the payload of the client's SSH_MSG_KEXINIT + I_S ... the payload of the server's SSH_MSG_KEXINIT + end note + + note over C #ffffff + min ... 󂯓 p ̍ŏTCY + n ... MWX p ̃TCY + max ... 󂯓 p ̍őTCY + end note + + C -> S: SSH_MSG_KEX_DH_GEX_REQUEST + note left: min\nn\nmax + + note over S #ffffff: NCAg̃TCY̗v𖞂 group T\n p ... prime\n g ... generator + + C <- S: SSH_MSG_KEX_DH_GEX_GROUP + note right: p\ng + + note over C #ffffff: x 𐶐\ne = g^x mod p vZ + + C -> S: SSH_MSG_KEX_DH_GEX_INIT + note left: e + + note over S #ffffff + y 𐶐 + f = g^y mod p vZ + K = e^y mod p vZ + H = hash(V_C || V_S || I_C || I_S || K_S || + min || n || max || g || e || f || K) + K_S ... T[ozXǧJ + s = T[ozXg̔閧p H ̏ + end note + + C <- S: SSH_MSG_KEX_DH_GEX_REPLY + note right: K_S\nf\ns + + note over C #ffffff + K_S {ɃzXǧ؂ + (e.g. known_hosts Əƍ) + K = f^x mod p vZ + H = hash(V_C || V_S || I_C || I_S || K_S || + min || n || max || g || e || f || K) + s H ̂̂؂ + (s K_S ŕAH Ɣr) + end note + + note over C, S #ffffff + ҂Ă: + shared secret ... K + exchange hash ... H + ZbVID ... ̌ H + end note + + else Elliptic Curve Diffie-Hellman Key Exchange\ncf. RFC 5656 + + note over C, S #ffffff + NmĂ: + elliptic curve + G ... base point + end note + + note over C, S #ffffff + ҂mĂ: + V_C ... the client's identification string + V_S ... the server's identification string + I_C ... the payload of the client's SSH_MSG_KEXINIT + I_S ... the payload of the server's SSH_MSG_KEXINIT + end note + + note over C #ffffff + EC yA𐶐 + d_C ... 閧 + Q_C ... J + Q_C = d_C * G + end note + + C -> S: SSH_MSG_KEX_ECDH_INIT + note left: Q_C + + note over S #ffffff + Q_C ƂĐmF + EC yA𐶐 + d_S ... 閧 + Q_S ... J + Q_S = d_S * G + K vZ + (x, y) = d_S * Q_C + K = x + H = hash(V_C || V_S || I_C || I_S || K_S || + Q_C || Q_S || K) + K_S ... T[ozXǧJ + s = T[ozXg̔閧p H ̏ + end note + + C <- S: SSH_MSG_KEX_ECDH_REPLY + note right: K_S\nQ_S\ns + + note over C #ffffff + K_S {ɃzXǧ؂ + (e.g. known_hosts Əƍ) + Q_S ƂĐmF + K vZ + (x', y') = d_C * Q_S + K = x' + H = hash(V_C || V_S || I_C || I_S || K_S || + Q_C || Q_S || K) + s H ̂̂؂ + (s K_S ŕAH Ɣr) + end note + + note over C, S #ffffff + ҂Ă: + shared secret ... K + exchange hash ... H + ZbVID ... ̌ H + end note + + end + + C -> S: SSH_MSG_NEWKEYS + + C <- S: SSH_MSG_NEWKEYS +end + +== ȍ~̒ʐM͈Í == + +@enduml + + + +* ssh2_connect3_auth.png +@startuml +right footer cf. RFC 4252, RFC 4253 + +actor user as U +participant Pageant as P +participant client as C +participant server as S + +group Service Request [cf. RFC 4253 Section 10] + + C -> S: SSH_MSG_SERVICE_REQUEST + note left: "ssh-userauth" + + C <- S: SSH_MSG_SERVICE_ACCEPT + note right: "ssh-userauth" + +end + +group Authentication + + C -> U: F؃_CAO\ + + alt CheckAuthListFirst LȏꍇAF؃_CAO̕\\nłȂꍇAF؃_CAOOK{^Ƃ + + U -> C: + note left: [U + + C -> S: SSH_MSG_USERAUTH_REQUEST + note left: [U\n"ssh-connection"\n"none" + + C <- S: SSH_MSG_USERAUTH_FAILURE + note right: T|[gĂFؕ + + end + + group FؕƂ̏ [password\ncf. RFC 4252 Section 8] + + U -> C: + note left: [U\npX[h + + C -> S: SSH_MSG_USERAUTH_REQUEST + note left: [U\n"ssh-connection"\n"password"\npX[h + + alt Fؐ + C <- S: SSH_MSG_USERAUTH_SUCCESS + else F؎s + C <- S: SSH_MSG_USERAUTH_FAILURE + end + + else publickey\ncf. RFC 4252 Section 7 + + U -> C: + note left: [U\nFؗpt@C\npXt[Y + note over C #ffffff: t@CJƔ閧ǂ + + C -> S: SSH_MSG_USERAUTH_REQUEST + note left: [U\n"ssh-connection"\n"publickey"\nFALSE\nJASY\nJ + + note over S #ffffff: MJ󗝂ł邩mF\niauthorized_keysɂAȂǁj + + alt 󗝂ł + C <- S: SSH_MSG_USERAUTH_PK_OK + else 󗝂łȂ + C <- S: SSH_MSG_USERAUTH_FAILURE + end + + note over C #ffffff: ZbVIDEJȂǂ̈Ãf[^\n閧ŏ + + C -> S: SSH_MSG_USERAUTH_REQUEST + note left: [U\n"ssh-connection"\n"publickey"\nTRUE\nJASY\nJ\n + + note over S #ffffff: JƏ + + alt Fؐ + C <- S: SSH_MSG_USERAUTH_SUCCESS + else F؎s + C <- S: SSH_MSG_USERAUTH_FAILURE + end + + else keyboard-interactive\ncf. RFC 4256 + + U -> C: + note left: [U + + C -> S: SSH_MSG_USERAUTH_REQUEST + note left: [U\n"ssh-connection"\n"keyboard-interactive" + + C <- S: SSH_MSG_USERAUTH_INFO_REQUEST + note right: vvg + + loop F؂܂͎s + + U -> C: + note left: X|X + + C -> S: SSH_MSG_USERAUTH_INFO_RESPONSE + note left: X|X + + alt NCAgւ̃NGXg + C <- S: SSH_MSG_USERAUTH_INFO_REQUEST + note right: vvg + else Fؐ + C <- S: SSH_MSG_USERAUTH_SUCCESS + else F؎s + C <- S: SSH_MSG_USERAUTH_FAILURE + end + + end + + else publickey with Pageant + + U -> P: + note left: iOɁj\nFؗpt@C\npXt[Y + + U -> C: + note left: [U + + P <- C: SSH2_AGENTC_REQUEST_IDENTITIES + note right #ffffff: Jv + + P -> C: SSH2_AGENTC_REQUEST_ANSWER + note left: o^ĂJׂ + + loop JׂČJԂ, PK_OK ԂĂA܂͔F؎sɒB܂ + C -> S: SSH_MSG_USERAUTH_REQUEST + note left: [U\n"ssh-connection"\n"publickey"\nFALSE\nJASY\nJ + + note over S #ffffff: MJ󗝂ł邩mF\niauthorized_keysɂAȂǁj + + alt 󗝂ł + C <- S: SSH_MSG_USERAUTH_PK_OK + else 󗝂łȂ + C <- S: SSH_MSG_USERAUTH_FAILURE + end + end + + P <- C: SSH2_AGENTC_SIGN_REQUEST + note right: ZbVIDEJȂǂ̈Ãf[^\n cf. RFC 4252 Section 7 + + note over P #ffffff: 󂯎f[^Ή閧ŏ + + P -> C: SSH2_AGENTC_SIGN_RESPONSE + note left: + + + C -> S: SSH_MSG_USERAUTH_REQUEST + note left: [U\n"ssh-connection"\n"publickey"\nTRUE\nJASY\nJ\n + + note over S #ffffff: JƏ + + alt Fؐ + C <- S: SSH_MSG_USERAUTH_SUCCESS + else F؎s + C <- S: SSH_MSG_USERAUTH_FAILURE + end + + end +end + +@enduml + + + +* ssh2_connect4_channel.png +@startuml +right footer cf. RFC 4254 + +participant client as C +participant server as S + +group Channel Open + C -> S: SSH_MSG_CHANNEL_OPEN + note left: "session"\n cf. RFC 4254 Section 6.1 + + C <- S: SSH_MSG_CHANNEL_OPEN_CONFIRMATION + + alt ForwardAgent Lȏꍇ + C -> S: SSH_MSG_CHANNEL_REQUEST + note left: "auth-agent-req@openssh.com" + + C <- S: SSH_MSG_CHANNEL_SUCCESS + end + + C -> S: SSH_MSG_CHANNEL_REQUEST + note left: "pty-req" \n Pseudo-Terminal\n cf. RFC 4254 Section 6.2 + + C <- S: SSH_MSG_CHANNEL_SUCCESS + + C -> S: SSH_MSG_CHANNEL_REQUEST + note left: "shell" \n Shell\n cf. RFC 4254 Section 6.5 + + C <- S: SSH_MSG_CHANNEL_WINDOW_ADJUST + note right: SSHT[õEBhETCY\n cf. RFC 4254 Section 5.2 + + C <- S: SSH_MSG_CHANNEL_SUCCESS + + C <- S: SSH_MSG_CHANNEL_DATA + note right: VF + + note over C #ffffff: Tera Term {̂֓nB\nTera Term ɂ recv() Ԃ悤ɌB +end + +@enduml + + + +* ssh2_disconnect.png +@startuml +right footer cf. RFC 4254 Section 5.3 + +actor user as U +participant client as C +participant server as S +participant shell as SHELL + +U -> SHELL: logout + +S <-- SHELL: + +C <- S: SSH_MSG_CHANNEL_EOF + +C <- S: SSH_MSG_CHANNEL_REQUEST +note right: "exit-status"\n cf. RFC 4254 Section 6.10 + +C <- S: SSH_MSG_CHANNEL_CLOSE + +C -> S: SSH_MSG_CHANNEL_CLOSE + +C -> S: SSH_MSG_DISCONNECT +note left #ffffff: cf. RFC 4253 Section 11.1 + +note over C #ffffff: TCPZbṼN[YsB\nTera Term {̂֏I̒ʒmoB +@enduml diff --git a/doc/ja/html/reference/keycode.html b/doc/ja/html/reference/keycode.html new file mode 100644 index 000000000..64bf49233 --- /dev/null +++ b/doc/ja/html/reference/keycode.html @@ -0,0 +1,37 @@ + + + + +KEYCODE.EXE for Tera Term + + + + + +

    KEYCODE.EXE for Tera Term

    + +

    +Copyright(C) 1994-1998 T. Teranishi
    +(C) 2004- TeraTerm Project
    +All Rights Reserved. +

    + +

    +KEYCODE.EXE Tera Term ̃L[{[hݒt@C̒ŗp PC key code 𒲂ׂ邽߂̃[eBeB[łB̕ł́AKEYCODE.EXE ̎gp@ɂ‚Đ܂B
    +L[{[hݒςꍇ́A̕ Tera Term wv悭ǂłB҂ɃL[{[hݒɊւ鎿ȂłB +

    + +
    gp@
    + +

    +KEYCODE.EXE NƁA"Push any key." ƂbZ[W\܂B
    +ŁAL[܂̓L[̑gݍ킹 (Ctrl+ L[Ȃ)ƁA"Key code is XXXX." (XXXX ͍ő410i)ƕ\APC key code m邱Ƃł܂B +

    + +

    +m邱Ƃł PC key code ́AL[{[hݒt@CŎgp܂B +

    + + + diff --git a/doc/ja/html/reference/keycode.txt b/doc/ja/html/reference/keycode.txt index 4c31d799c..d9ed1e0eb 100644 --- a/doc/ja/html/reference/keycode.txt +++ b/doc/ja/html/reference/keycode.txt @@ -1,532 +1,17 @@ KEYCODE.EXE for Tera Term T. Teranishi - + Copyright(C) 1994-1998 T. Teranishi + (C) 2004- TeraTerm Project All Rights Reserved. KEYCODE.EXE Tera Term ̃L[{[hݒt@C̒ŗp PC key code -𒲂ׂ邽߂̃[eBeB[łB̕ł́AKEYCODE.EXE ̎gp@ -L[{[hݒt@Č`ɂ‚Đ܂B - -L[{[hݒςꍇ́A̕ Tera Term wv悭 -ǂłB҂ɃL[{[hݒɊւ鎿ȂłB - -------------------------------------------------------------------------------- -1. CXg[ +𒲂ׂ邽߂̃[eBeB[łB̕ł́AKEYCODE.EXE ̎gp@ɂ‚ +܂B -Windows Windows 3.1 ܂ NT 3.X ̏ꍇAvO}l[W[ KEYCODE.EXE -̃ACRo^ĂBWindows 95 ܂ Windows NT 4.0 ̏ꍇ -KEYCODE.EXE ̃V[gJbgDȏꏊ(tH_AX^[gj[A -fXNgbvȂ)ɍ쐬ĂB - -------------------------------------------------------------------------------- -2. gp@ +gp@ KEYCODE.EXE NƁA"Push any key." ƂbZ[W\܂B ŁAL[܂̓L[̑gݍ킹 (Ctrl+ L[Ȃ)ƁA "Key code is XXXX." (XXXX ͍ő410i)ƕ\APC key code m邱 ł܂B - -------------------------------------------------------------------------------- -3. L[{[hݒt@Cɂ‚ - -L[{[hݒt@ĆAL[{[h̊eL[ƂɊ肠Ă@\ -(VT [̋@\A[U[`̑oATera Term R}h̎sA -}N̎s)`܂B - -Tera Term CXg[̃L[ݒ͊eL[̋@\ VT [ɂł邾߂ -Ȃ悤ɂĂ܂BL[{[hݒt@CҏW邱ƂɂāA -RɃL[ݒύX邱Ƃł܂B - -Tera Term ̃R}hC Tera Term ǂݍރL[{[hݒt@C -t@Cw肷邱Ƃł܂ (Tera Term wvQ)Bt@C -gqȗꍇ ".CNF" łƂ݂Ȃ܂Bt@Cw肵Ȃ -ꍇAt@C KEYBOARD.CNF ǂݍ܂܂B - -zzpbP[Wɂ͈ȉ̃L[{[hݒt@C܂܂Ă܂B - -IBMKEYB.CNF IBM-PC/AT ( DOS/V }V) 101 (106) L[{[hp - ݒt@C̗ (Windows 95/NT p) - -PC98KEYB.CNF NEC PC98 L[{[hpݒt@C̗ (Windows 3.1/95 p) - -NT98KEYB.CNF NEC PC98 L[{[hpݒt@C̗ (Windows NT p) - (Tera Term Pro ɂ̂݊܂܂Ă܂B) - -KEYBOARD.CNF WL[{[hݒt@C - L 3 ‚̂ǂꂩRs[ - -CXg[[ IBMKEYB.CNF, PC98KEYB.CNF, NT98KEYB.CNF ̂K؂Ȃ̂ -Rs[ KEYBOARD.CNF t@C쐬܂BǂꂪRs[邩́A -CXg[Ƀ[U[w肵L[{[h̎ނɂ茈肳܂B -CXg[ɃL[{[hwԈꍇ́AœK؂ȃt@C -Rs[ KEYBOARD.CNF 쐬ĂB - -*** : PC98 NX V[Y PC ̏ꍇACXg[[ - uIBM-PC/AT L[{[hvIĂB*** -............................................................................... -3.1 L[{[hݒt@Č` - -L[{[hݒt@C̒ŗp PC key code PC ̊eL[܂̓L[ -gݍ킹ɑΉlŁAgpL[{[hɂĈقȂ܂B - -L[{[hݒt@Cɂ́A[VT editor keypad], [VT numeric keypad]. -[VT function keys], [X function keys], [Shortcut keys], [User keys] 6‚ -ZNV݂܂B - -1) [VT editor keypad] ZNV -VT [̃GfB^[L[ PC L[Ɋ蓖Ă܂B - - `: - = - - - Up, Down, Right, Left, Find, Insert, Remove, Select, - Prev, Next - - - PC key code (10i) - - : - Up=328 - -2) [VT numeric keypad] ZNV -VT[̐lL[ PC L[Ɋ蓖Ă܂B - - `: - = - - - Num0, Num1, Num2, Num3, Num4, Num5, Num6, Num7, Num8, - Num9, NumMinus, NumComma, NumPeriod, NumEnter, PF1, - PF2, PF3, PF4 - - - PC key code (10i) - - : - Num0=82 - - : VT [ł̓CL[pbh "Enter" L[ƐlL[pbh - "Enter" L[Ⴄ𑗏o郂[ĥŁA"NumEnter=" - ɂ̓CL[ "Enter" PC key code ȂłB - CL[pbh "Enter" ƐlL[pbh "Enter" - PC key code 𔭐L[{[h(Ⴆ PC9801 L[{[h)̏ꍇ - ӂKvłB - -3) [VT function keys] ZNV -VT [̃t@NVL[ PC L[Ɋ蓖Ă܂B - - `: - = - - - (VT [̃t@NVL[) - Hold, Print, Break, F6, F7, F8, F9, F10, F11, F12, - F13, F14, Help, Do, F17, F18, F19, F20 - (VT ["[U[`L[") - UDK6, UDK7, UDK8, UDK9, UDK10, UDK11, UDK12, UDK13, - UDK14, UDK15, UDK16, UDK17, UDK18, UDK19, UDK20 - - - PC key code (10i) - - : - F6=64 - -4) [X function keys] ZNV -Xterm F1-F5 L[AуobN^uL[ PC L[Ɋ蓖Ă܂B - - `: - = - - - XF1, XF2, XF3, XF4, XF5, XBackTab - - - PC key code (10i) - - : - XF1=59 - -5) [Shortcut keys] ZNV -Tera Term ̋@\PC L[Ɋ蓖Ă܂B - - `: - = - - @\ - --------------------------------------------------------- - EditCopy [Edit] Copy R}h - EditPaste [Edit] Paste R}h - EditPasteCR [Edit] Paste R}h - EditCLS [Edit] Clear screen R}h - EditCLB [Edit] Clear buffer R}h - ControlOpenTEK [Control] Open TEK R}h - ControlCloseTEK [Control] Close TEK R}h - LineUp sXN[Abv - LineDown sXN[_E - PageUp y[WXN[Abv - PageDown y[WXN[_E - BuffTop obt@[擪փXN[ - BuffBottom obt@[ŌփXN[ - NextWin Tera Term EBhEֈړ - PrevWin O Tera Term EBhEֈړ - NextShownWin ̍ŏĂȂ Tera Term EBhEֈړ - PrevShownWin O̍ŏĂȂ Tera Term EBhEֈړ - LocalEcho Local echo on/off - - - PC key code (10i) - - : - LineUp=1352 - -6) [User keys] ZNV -[U[L[ƁÃL[ƂɎs@\ -(̑oA}Nt@C̎sAj[R}h̎s) -`܂B - - `: - =,,<> - - - User1, User2, User3,...., User99 - ő99‚܂Őݒ”\AႦ10ݒ肷ꍇ User1 - Ԃ User10 ܂łgpAȊO̖OgpĂ͂Ȃ - ȂB - - - PC key code (10i) - - - L[Ƃ <> ǂ̂悤Ɏ舵w - tOB - 0 <>̂܂ܑoB - 1 <>Ɋ܂܂銿sR[h - Tera Term ̐ݒɂ킹ĕϊAϊ - ꂽ𑗏oB - 2 <>̃t@C̃}Nt@C - sB - 3 j[ ID <> Ŏw肳 - Tera Term ̃j[R}hsB - - <>: - 0 ܂ 1 ̏ꍇAL[Ƃ - o镶B\s”\ȕ(䕶)͂ - ASCII R[h $ 216iŕ\ - (: CR '$0D')B"$" ̂̂ "$24" ŕ\B - ut^ A ASCII R[h\vQƁB - - 2 ̏ꍇAs}Nt@C - t@CB - - 3 ̏ꍇAs郁j[R}h - j[ ID ()But^ B j[ ID \vQƁB - - : - User1=1083,0,telnet myhost - User2=1084,0,$0D$0A - User3=1085,1,ɂ́B - User4=1086,2,test.ttl - User5=1087,3,50110 - -............................................................................... -3.2 - -1‚ PC key code ̓L[{[hݒt@C̒ň񂾂gp邱Ƃ -ł܂BA1‚ PC key code 𕡐̃L[`ŎgpꍇA -Tera Term L[{[hݒt@Cǂݍ񂾂ƂɁA -"Key code XXX is used more than once" ƂxbZ[W\܂B -̏ꍇ‚̃L[`LɂȂȂ͖܂B - -L[ݒ荀ڂɂǂ PC L[蓖ĂȂꍇ́Aȉ̂悤 -PC key code ̑ "off" w肵ĂB - -EditCopy=off - -............................................................................... -3.3 ”\ȃL[̑gݍ킹 - -L[{[hݒt@CŐݒ”\ PC ̃L[, KEYCODE.EXE PC key code -\L[łBP̃L[łȂACtrl, Shift, Alt pL[̑g -킹ł PC key code \邱Ƃł܂B”\ȑgݍ킹 -ȉɎ܂B - - Shift+key - Ctrl+key - Shift+Ctrl+key - Shift+Alt+key - Ctrl+Alt+key - Shift+Ctrl+Alt+key - -Tera Term Windows ̃V[gJbgL[Ɋ蓖ĂĂL[̑gݍ킹 -(Ⴆ Alt+key Ȃ)̓L[{[hݒt@CŎwł܂B - -AAltL[^EL[ƂĎgݒɂĂꍇ(ݒ->L[{[hɂ -MetaL[Ƀ`FbNĂ)Alt+keyw肷鎖ł܂B -L[R[h KEYCODE.EXE Œׂ܂AP̂AltL[Ƃ̑gɂ -ΉĂ܂BAltL[Ƃ̑gł̃L[R[h𒲂ׂɂ́APƂł -L[R[h𒲂ׂāA̒l2048𑫂ĂB - -Ƃ΁AAlt+ṼL[R[h V 47 Ȃ̂ŁA2095 ƂȂ܂B - -; Shift + Insert -EditPaste=850 - -Ⴆ EditPaste=2095 ɕύX΁AMetaL[pXX[ɂĂĂ -Alt+VŒtł悤ɂȂ܂B - -Shift+Insertc܂Alt+Vł̒tsꍇ́AKEYBOARD.CNF -[User keys]ZNVɈȉ̐ݒlj܂B - -User1=2095,3,50230 - -............................................................................... -3.4 Q & A - -L[{[hݒ肪悭킩ȂꍇA̕ Tera Term wv -悭ǂłB҂ɃL[{[hݒɊւ鎿ȂłB - -Q. Tera Term N邽т "Key code XXX is used more than once" Ƃ - bZ[WłB -A. u3.2 ӁvQƁB - -Q. PC F1 L[ VT100 PF1 L[ƂĎgBȉ̂悤ɐݒ肵 - ܂ȂB - - [VT function keys] - F1=PF1 (͂܂) - -A. ӂ **PC** ̃L[̖Oł͂Ȃ **VT[** ̃L[̖Ow肵Ȃ - ΂Ȃ܂B܂AEӂɂ̓L[̖Oł͂ȂAL[R[hw肵 - Bu3.1 L[{[hݒt@Č`vQƁB - ܂AL[ݒςƂ́AL[R[h̏dgpȂ悤ɂ - (u3.2 ӁvQ)B - - ȉ̂悤ɐݒ肵ĂB - - [VT function keys] - PF1=59 (59 F1 L[̃L[R[h) - [X function keys] - ;XF1=59 (L[R[h 59 ̏dgp) - XF1=off ("off" Œu) - -Q. F1 L[ƂɃGXP[vV[PX ESC [ A 𑗏o悤 - 邽߂̐ݒ@? -A. [U[L[g΁ADȕ𑗏o邱Ƃł܂B - 킵́Au3.1 L[{[hݒt@Č`vǂłB - ܂AL[ݒςƂ́AL[R[h̏dgpȂ悤ɂ - (u3.2 ӁvQ)B - - ȉ̂悤ɐݒ肵ĂB - - [X function keys] - ;XF1=59 (F1 L[̃L[R[h 59 ̏dgp) - XF1=off ("off" Œu) - [User keys] - User1=59,0,$1B[A (ESC ASCII R[h $1B) - -------------------------------------------------------------------------------- -t^ A ASCII R[h\ (16 i\) - -Ⴆ΁A"A" ASCII R[h $41B - ------------------------------------------------------------- - Char Code | Char Code | Char Code | Char Code | ------------------------------------------------------------- - NUL (^@) $00 | DLE (^P) $10 | SPACE $20 | 0 $30 | - SOH (^A) $01 | DC1 (^Q) $11 | ! $21 | 1 $31 | - STX (^B) $02 | DC2 (^R) $12 | " $22 | 2 $32 | - ETX (^C) $03 | DC3 (^S) $13 | # $23 | 3 $33 | - EOT (^D) $04 | DC4 (^T) $14 | $ $24 | 4 $34 | - ENQ (^E) $05 | NAK (^U) $15 | % $25 | 5 $35 | - ACK (^F) $06 | SYN (^V) $16 | & $26 | 6 $36 | - BEL (^G) $07 | ETB (^W) $17 | ' $27 | 7 $37 | - BS (^H) $08 | CAN (^X) $18 | ( $28 | 8 $38 | - HT (^I) $09 | EM (^Y) $19 | ) $29 | 9 $39 | - LF (^J) $0A | SUB (^Z) $1A | * $2A | : $3A | - VT (^K) $0B | ESC (^[) $1B | + $2B | ; $3B | - FF (^L) $0C | FS (^\) $1C | , $2C | < $3C | - CR (^M) $0D | GS (^]) $1D | - $2D | = $3D | - SO (^N) $0E | RS (^^) $1E | . $2E | > $3E | - SI (^O) $0F | US (^_) $1F | / $2F | ? $3F | ------------------------------------------------------------- - Char Code | Char Code | Char Code | Char Code | ------------------------------------------------------------- - @ $40 | P $50 | ` $60 | p $70 | - A $41 | Q $51 | a $61 | q $71 | - B $42 | R $52 | b $62 | r $72 | - C $43 | S $53 | c $63 | s $73 | - D $44 | T $54 | d $64 | t $74 | - E $45 | U $55 | e $65 | u $75 | - F $46 | V $56 | f $66 | v $76 | - G $47 | W $57 | g $67 | w $77 | - H $48 | X $58 | h $68 | x $78 | - I $49 | Y $59 | I $69 | y $79 | - J $4A | Z $5A | j $6A | z $7A | - K $4B | [ $5B | k $6B | { $7B | - L $4C | \ $5C | l $6C | | $7C | - M $4D | ] $5D | m $6D | } $7D | - N $4E | ^ $5E | n $6E | ~ $7E | - O $4F | _ $5F | o $6F | DEL $7F | ------------------------------------------------------------- - -............................................................................... -t^ B j[ ID \ - -j[ ID ̎w@ɂ‚Ắu3.1 L[{[hݒt@Č`vQƁB -j[ ID ͏ύX”\܂B - -1) VT window - -j[R}h ID ------------------------------------------ -[File] New connection 50110 -[File] Duplicate session 50111 -[File] Cygwin connection 50112 -[File] Log 50120 -[File] Comment to Log 50121 -[File] View Log 50122 -[File] Show Log dialog 50123 -[File] Send file 50130 -[File] Transfer/Kermit/Receive 50141 -[File] Transfer/Kermit/Get 50142 -[File] Transfer/Kermit/Send 50143 -[File] Transfer/Kermit/Finish 50144 -[File] Transfer/XMODEM/Receive 50145 -[File] Transfer/XMODEM/Send 50146 -[File] Transfer/YMODEM/Receive 50157 -[File] Transfer/YMODEM/Send 50158 -[File] Transfer/ZMODEM/Receive 50151 -[File] Transfer/ZMODEM/Send 50152 -[File] Transfer/B-Plus/Receive 50153 -[File] Transfer/B-Plus/Send 50154 -[File] Transfer/Quick-VAN/Receive 50155 -[File] Transfer/Quick-VAN/Send 50156 -[File] Change dir 50170 -[File] Replay Log 50171 -[File] LogMeTT 50172 -[File] Print 50180 -[File] Disconnect 50190 -[File] Exit 50199 -[File] Exit All 50200 -[Edit] Copy 50210 -[Edit] Copy table 50220 -[Edit] Paste 50230 -[Edit] PasteCR 50240 -[Edit] Clear screen 50250 -[Edit] Clear buffer 50260 -[Edit] Cancel selection 50270 -[Edit] Select screen 50280 -[Edit] Select all 50290 -[Setup] Terminal 50310 -[Setup] Window 50320 -[Setup] Font 50330 -[Setup] Keyboard 50340 -[Setup] Serial port 50350 -[Setup] TCPIP 50360 -[Setup] General 50370 -[Setup] Additional settings 50375 -[Setup] Save setup 50380 -[Setup] Restore setup 50390 -[Setup] Setup directory 50391 -[Setup] Load key map 50395 -[Control] Reset terminal 50410 -[Control] Are you there 50420 -[Control] Send break 50430 -[Control] Reset port 50440 -[Control] Broadcast command 50445 -[Control] Open TEK 50450 -[Control] Close TEK 50460 -[Control] Macro 50470 -[Control] Show Macro Window 50480 -[Window] Window 50810 -[Window] Minimize All 50811 -[Window] Restore All 50812 -[Window] Cascade 50813 -[Window] Stacked 50814 -[Window] Side by Side 50815 -[Window] Undo - XXX 50816 -[Help] Index 50910 -[Help] About Tera Term 50990 - -TTSSH j[R}h ID ------------------------------------------ -[Setup] SSH 52310 -[Setup] SSH Authentication 52320 -[Setup] SSH Forwarding 52330 -[Setup] SSH KeyGenerator 52340 -[Help] About TTSSH 52910 - -TTProxy j[R}h ID ------------------------------------------ -[Setup] Proxy 53310 -[Help] About TTProxy 53910 - -TTXKanjiMenu j[R}h ID ------------------------------------------ -[KanjiCode] Recv: Shift_JIS 54010 -[KanjiCode] Recv: EUC-JP 54011 -[KanjiCode] Recv: JIS 54012 -[KanjiCode] Recv: UTF-8 54013 -[KanjiCode] Recv: UTF-8m 54014 -[KanjiCode] Send: Shift_JIS 54110 -[KanjiCode] Send: EUC-JP 54111 -[KanjiCode] Send: JIS 54112 -[KanjiCode] Send: UTF-8 54113 -[KanjiCode] Use one setting 54200 - -TTXAlwaysOnTop j[R}h ID ------------------------------------------ -[Control] Always on top 55000 --- SetWindowPos(HWND_TOP) 55001 (j[蓖Ė) --- SetWindowPos(HWND_BOTTOM) 55002 (j[蓖Ė) --- SetWindowPos(HWND_TOPMOST) 55003 (j[蓖Ė) --- SetWindowPos(HWND_NOTOPMOST) 55004 (j[蓖Ė) - -TTXResizeMenu j[R}h ID ------------------------------------------ -[Resize] Menu(1) - Menu(20) 55101 - 55120 --- Increase window width 55151 (j[蓖ĂȂ) --- Decrease window width 55152 (j[蓖ĂȂ) --- Increase window height 55153 (j[蓖ĂȂ) --- Decrease window height 55154 (j[蓖ĂȂ) - -TTXViewMode j[R}h ID ------------------------------------------ -[Setup] ViewMode password 55200 -[Control] View mode 55210 - -TTXttyrec j[R}h ID ------------------------------------------ -[File] TTY Record 55301 - -TTXttyplay j[R}h ID ------------------------------------------ -[File] TTY Replay 55302 - -TTXRecurringCommand j[R}h ID ------------------------------------------ -[Setup] Recurring Command 55500 -[Control] Recurring Command 55501 --- Enable Recurring Command 55502 (j[蓖Ė) --- Disable Recurring Command 55503 (j[蓖Ė) - -2) TEK window - -j[R}h ID ------------------------------------------ -[File] Print 51110 -[File] Exit 51190 -[Edit] Copy 51210 -[Edit] Copy screen 51220 -[Edit] Paste 51230 -[Edit] PasteCR 51240 -[Edit] Clear screen 51250 -[Setup] Window 51310 -[Setup] Font 51320 -[VTWin] 51410 -[Window] Window 51810 -[HELP] Index 51910 -[HELP] About Tera Term 51990 diff --git a/doc/ja/html/reference/menu_id.html b/doc/ja/html/reference/menu_id.html new file mode 100644 index 000000000..108277ff8 --- /dev/null +++ b/doc/ja/html/reference/menu_id.html @@ -0,0 +1,561 @@ + + + + +j[ ID \ + + + + + +

    j[ ID \

    + +

    +j[ ID L[{[hݒt@Cŗp܂B +

    + +

    VT window

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    j[R}hID
    [File] New connection50110
    [File] Duplicate session50111
    [File] Cygwin connection50112
    [File] Log50120
    [File] Comment to Log50121
    [File] View Log50122
    [File] Show Log dialog50123
    [File] Send file50130
    [File] Transfer/Kermit/Receive50141
    [File] Transfer/Kermit/Get50142
    [File] Transfer/Kermit/Send50143
    [File] Transfer/Kermit/Finish50144
    [File] Transfer/XMODEM/Receive50145
    [File] Transfer/XMODEM/Send50146
    [File] Transfer/YMODEM/Receive50157
    [File] Transfer/YMODEM/Send50158
    [File] Transfer/ZMODEM/Receive50151
    [File] Transfer/ZMODEM/Send50152
    [File] Transfer/B-Plus/Receive50153
    [File] Transfer/B-Plus/Send50154
    [File] Transfer/Quick-VAN/Receive50155
    [File] Transfer/Quick-VAN/Send50156
    [File] Change dir50170
    [File] Replay Log50171
    [File] LogMeTT50172
    [File] Print50180
    [File] Disconnect50190
    [File] Exit50199
    [File] Exit All50200
    [Edit] Copy50210
    [Edit] Copy table50220
    [Edit] Paste50230
    [Edit] PasteCR50240
    [Edit] Clear screen50250
    [Edit] Clear buffer50260
    [Edit] Cancel selection50270
    [Edit] Select screen50280
    [Edit] Select all50290
    [Setup] Terminal50310
    [Setup] Window50320
    [Setup] Font50330
    [Setup] Keyboard50340
    [Setup] Serial port50350
    [Setup] TCPIP50360
    [Setup] General50370
    [Setup] Additional settings50375
    [Setup] Save setup50380
    [Setup] Restore setup50390
    [Setup] Setup directory50391
    [Setup] Load key map50395
    [Control] Reset terminal50410
    [Control] Are you there50420
    [Control] Send break50430
    [Control] Reset port50440
    [Control] Broadcast command50445
    [Control] Open TEK50450
    [Control] Close TEK50460
    [Control] Macro50470
    [Control] Show Macro Window50480
    [Window] Window50810
    [Window] Minimize All50811
    [Window] Restore All50812
    [Window] Cascade50813
    [Window] Stacked50814
    [Window] Side by Side50815
    [Window] Undo - XXX50816
    [Help] Index50910
    [Help] About Tera Term50990
    + + + + + + + + + + + + + + + + + + + + + + + + + + +
    TTSSH j[R}hID
    [Setup] SSH52310
    [Setup] SSH Authentication52320
    [Setup] SSH Forwarding52330
    [Setup] SSH KeyGenerator52340
    [Help] About TTSSH52910
    + + + + + + + + + + + + + + +
    TTProxy j[R}hID
    [Setup] Proxy53310
    [Help] About TTProxy53910
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    TTXKanjiMenu j[R}hID
    [KanjiCode] Recv: Shift_JIS54010
    [KanjiCode] Recv: EUC-JP54011
    [KanjiCode] Recv: JIS54012
    [KanjiCode] Recv: UTF-854013
    [KanjiCode] Send: Shift_JIS54110
    [KanjiCode] Send: EUC-JP54111
    [KanjiCode] Send: JIS54112
    [KanjiCode] Send: UTF-854113
    [KanjiCode] Use one setting54200
    + + + + + + + + + + + + + + + + + + + + + + + + + + +
    TTXAlwaysOnTop j[R}hID
    [Control] Always on top55000
    -- SetWindowPos(HWND_TOP)55001 (j[蓖Ė)
    -- SetWindowPos(HWND_BOTTOM)55002 (j[蓖Ė)
    -- SetWindowPos(HWND_TOPMOST)55003 (j[蓖Ė)
    -- SetWindowPos(HWND_NOTOPMOST)55004 (j[蓖Ė)
    + + + + + + + + + + + + + + + + + + + + + + + + + + +
    TTXResizeMenu j[R}hID
    [Resize] Menu(1) - Menu(20)55101 - 55120
    -- Increase window width55151 (j[蓖ĂȂ)
    -- Decrease window width55152 (j[蓖ĂȂ)
    -- Increase window height55153 (j[蓖ĂȂ)
    -- Decrease window height55154 (j[蓖ĂȂ)
    + + + + + + + + + + + + + + +
    TTXViewMode j[R}hID
    [Setup] ViewMode password55200
    [Control] View mode55210
    + + + + + + + + + + +
    TTXttyrec j[R}hID
    [File] TTY Record55301
    + + + + + + + + + + +
    TTXttyplay j[R}hID
    [File] TTY Replay55302
    + + + + + + + + + + + + + + + + + + + + + + +
    TTXRecurringCommand j[R}hID
    [Setup] Recurring Command55500
    [Control] Recurring Command55501
    -- Enable Recurring Command55502 (j[蓖Ė)
    -- Disable Recurring Command55503 (j[蓖Ė)
    + + +

    TEK window

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    j[R}hID
    [File] Print51110
    [File] Exit51190
    [Edit] Copy51210
    [Edit] Copy screen51220
    [Edit] Paste51230
    [Edit] PasteCR51240
    [Edit] Clear screen51250
    [Setup] Window51310
    [Setup] Font51320
    [VTWin]51410
    [Window] Window51810
    [HELP] Index51910
    [HELP] About Tera Term51990
    + + + diff --git a/doc/ja/html/reference/sourcecode.html b/doc/ja/html/reference/sourcecode.html index 6f71e39c2..c358018f5 100644 --- a/doc/ja/html/reference/sourcecode.html +++ b/doc/ja/html/reference/sourcecode.html @@ -45,8 +45,8 @@ @WindowsvO~OɊւ̌́AMicrosoft񋟂uMSDNCuvɂ܂BJsۂ́AMSDNCupɂɎQƂ邱ƂɂȂ܂B
    @

    @@ -74,7 +74,7 @@ @TTSSHTTProxyATTXKanjiMenuƂvOC`DLĹATera Term̋NɖI LoadLibrary() gă_Ci~bN[h܂B[hΏۂƂȂDLL̃t@ĆATTXInit()#ttplug.c ɂāA"TTX*.DLL"Ƃp^[Ƀ}b`̂ƂȂ܂B
    @
    @ -@"keycode.exe""ttpmenu.exe"A"LogMeTT.exe"͒P̃AvP[VłB
    +@"keycode.exe""ttpmenu.exe"͒P̃AvP[VłB
    @
    @ @Cygwinڑ݂̂ɂ‚ẮAʂ̐߂Ő܂B @@ -95,7 +95,7 @@ Tera Term}NvÓA^"SFMT"NĂ܂B"random"R}hɂė̐ɗpĂ܂B

    - SSHW[łTTSSH́AÍs߂"OpenSSL"NĂ܂BOpenSSLƂl[~OWebANZXɎgSSL(Secure Socket Layer)vgRp̃CuƎvꂪłAł͂܂BOpenSSL͊{IȈÍASYT|[gĂATTSSHłOpenSSLɊ܂܂Í/[`݂̂𗘗pĂ܂B̂Ƃ́AȂ킿OpenSSLCuSSL֘ÃZLeBz[ꂽƂĂATTSSHւ̉e͋ɂ߂ĒႢƂƂłB + SSHW[łTTSSH́AÍs߂"LibreSSL"NĂ܂BLibreSSLƂl[~OWebANZXɎgSSL(Secure Socket Layer)vgRp̃CuƎvꂪłAł͂܂BLibreSSL͊{IȈÍASYT|[gĂATTSSHłLibreSSLɊ܂܂Í/[`݂̂𗘗pĂ܂B̂Ƃ́AȂ킿LibreSSLCuSSL֘ÃZLeBz[ꂽƂĂATTSSHւ̉e͋ɂ߂ĒႢƂƂłB

    SSHW[łTTSSH́ASSHpPbg̈ks߂ɈkCu"zlib"NĂ܂BA_CAbvȂǂ̒ᑬxȃlbg[NɂẮApPbgk͗LłA̍ł͂ނ둬xቺƂȂ܂B䂦ɁAftHgł̓pPbgk@\͖Ă܂B @@ -278,8 +278,7 @@

    ݒt@C̓ǂݏ

    @Windowsł̓AvP[Ṽf[^ۑ̂߂ɁAWXg`IɗpĂ܂ATera Termł͂̒aWindows 3.1܂łɑk邽߂ɁA.init@Cɂ郍[JfBNgւ̕ۑ@WƂȂĂ܂B
    -@pbP[WɓCollectorCygTermɊւĂ[JfBNgփf[^ۑ܂B
    -@LogMeTTTTLEdit̓WXg֕ۑ܂B
    +@pbP[WɓCygTermɊւĂ[JfBNgփf[^ۑ܂B
    @OƂāATeraTerm Menu̓ftHgŃWXg֕ۑ܂BJgfBNg"ttpmenu.ini"i0oCgʼnjݒu邱ƂŁAWXg̑.init@Cg悤ɂ邱Ƃł܂BAWXg.init@Cւ̈ڍs͎ōs܂̂ŁA蓮ōēo^ĂB
    @
    @ @@ -311,7 +310,7 @@ @

    @@ -418,7 +417,7 @@

    Windows 95

    ŁAWindows 95ɂāA_~[ IsDebuggerPresent ֐̃V{`Ă΁AvŐNɃG[ɂȂ邱Ƃ͂ȂȂ̂łBڍׂ"comapt_w95.h"wb_QƂĂB

    @@ -427,7 +426,7 @@

    Windows 95

    fobO@

    debug printf

    @WindowsAvP[Vł printf() g܂BWo͂ǂɂ蓖ĂĂȂłBAllocConsole()freopen()g΁AWindowsAvP[VɂĂ printf() 𗘗p邱Ƃł܂B
    -@OutputDebugString()ƂAPI܂B Visual Studio ̃fobOR\[ɃbZ[Wo͂邱Ƃł֐łBYAPÍA"Debug build""Release build"Ɋ֌WȂAfobK݂΁AbZ[W𑗐M܂B䂦ɁA Visual StudioȂƂADBCon̂悤ȃc[g΁AAvP[V̒P̋NɂĂAOutputDebugString()ɂ郁bZ[WEƂł܂B
    +@OutputDebugString()ƂAPI܂B Visual Studio ̃fobOR\[ɃbZ[Wo͂邱Ƃł֐łBYAPÍA"Debug build""Release build"Ɋ֌WȂAfobK݂΁AbZ[W𑗐M܂B䂦ɁA Visual StudioȂƂADBCon̂悤ȃc[g΁AAvP[V̒P̋NɂĂAOutputDebugString()ɂ郁bZ[WEƂł܂B
    @Tera Termł́A•ϒ悤Ƀbp[֐pӂĂ܂B @
    @@ -435,7 +434,7 @@ 

    debug printf

    char tmp[1024]; va_list arg; va_start(arg, fmt); - _vsnprintf(tmp, sizeof(tmp), fmt, arg); + _vsnprintf_s(tmp, sizeof(tmp), _TRUNCATE, fmt, arg); OutputDebugString(tmp); }
    @@ -515,7 +514,7 @@

    memory leak

     #define WM_SEND_HEARTBEAT (WM_USER + 1)
     
    -static LRESULT CALLBACK telnet_heartbeat_dlg_proc(HWND hWnd, UINT msg, WPARAM wp, LPARAM lp)
    +static INT_PTR CALLBACK telnet_heartbeat_dlg_proc(HWND hWnd, UINT msg, WPARAM wp, LPARAM lp)
     {
     
     	switch (msg) {
    @@ -566,11 +565,12 @@ 

    memory leak

    if (ts.TelKeepAliveInterval > 0) { nop_interval = ts.TelKeepAliveInterval; - keepalive_dialog = CreateDialog(hInst, MAKEINTRESOURCE(IDD_BROADCAST_DIALOG), - HVTWin, (DLGPROC)telnet_heartbeat_dlg_proc); + keepalive_dialog = CreateDialog(hInst, MAKEINTRESOURCE(IDD_BROADCAST_DIALOG), + HVTWin, telnet_heartbeat_dlg_proc); keepalive_thread = (HANDLE)_beginthreadex(NULL, 0, TelKeepAliveThread, NULL, 0, &tid); - if (keepalive_thread == (HANDLE)-1) { + if (keepalive_thread == 0) { + keepalive_thread = INVALID_HANDLE_VALUE; nop_interval = 0; } } @@ -590,8 +590,8 @@

    memory leak

    @@ -768,9 +768,9 @@

    memory leak

    TTSSHɂSSH̐݌vƎ

    Tv

    -@IWiTTSSHRobert O'CallahanMozilla hackerƂĊjɂJꂽvOCłBSSH1֑ΉĂA|[gtH[fBOzlibɂpPbgkT|[gĂ܂BTTSSH́ATera TermZLAʐMɑΉ邽߂̃vOCł߂ɁASCPSFTPɂ͖ΉłBIWiTera Term1998NɊJA2001N܂ŃeiXĂ܂B
    +@IWiTTSSHRobert O'CallahanMozilla hackerƂĊjɂJꂽvOCłBSSH1֑ΉĂA|[gtH[fBOzlibɂpPbgkT|[gĂ܂BTTSSH́ATera TermZLAʐMɑΉ邽߂̃vOCł߂ɁASCPSFTPɂ͖ΉłBIWiTera Term1998NɊJA2001N܂ŃeiXĂ܂B
    @TTSSHSSH2Ή邽߂ɁATeraTerm Projectɂ2004N݌vƎn߂܂B3N̍ΌāAقSSH2vgR̃tT|[g܂B݂łSCPւΉĂ܂BIɂSFTPւΉ邩܂B
    -@ATTSSH̎OpenSSHQlɂĂ܂BꕔAR[ĥ܂ܗpĂƂ܂BAOpenSSHUNIX̃R}hCɐ݌vĂ邽߁ATera Term̂悤WindowsAvP[Vɂ͂̂܂ܓKȂӏAt[[NƂĂOpenSSHƑ傫قȂ̂ƂȂĂ܂B
    +@ATTSSH̎OpenSSHQlɂĂ܂BꕔAR[ĥ܂ܗpĂƂ܂BAOpenSSHUNIX̃R}hCɐ݌vĂ邽߁ATera Term̂悤WindowsAvP[Vɂ͂̂܂ܓKȂӏAt[[NƂĂOpenSSHƑ傫قȂ̂ƂȂĂ܂B

    SSHvgR

    @@ -779,15 +779,21 @@

    memory leak

    @

    @@ -890,33 +896,32 @@

    memory leak

    V[PX

    -@SSH2ڑsƂŁAʐMoHÍ邱Ƃł̂łApPbg̈Ís߂ɂ́AuvKvłBʐMoḦÍɂ́Aʌɂ鋤ʌÍp܂BJÍ̂قZLeBx͍̂łAÍɑȎԂ邽߁ASSĤ悤ȒʐM\v邵݂ł͍̗p܂BSSH2ł́AʌÍASYƂāAAES(Advanced Encryption StandardFRijndaelASY)3DES(Triple DES)Ȃǂp܂B
    -@ʌ͒ʐMsҊԂł݂̂ɋLłAO҂ɒmĂ͂Ȃ܂BSSH2ł́ANCAg[gzXgiSSHT[ojTCPڑɁA"Diffie-Hellman"ASYx[XƂƎ̕ɂANCAgƃT[ołm蓾ȂDH(Diffie-Hellman)𐶐܂BDH܂ł̉ߒ́Albg[NpPbgŗ邽߁AO҂ɂpPbgLv`”\ƂȂĂ܂ApPbg`ĂADH͗_O҂ɂ͕Ȃ悤ɂȂĂ܂B
    -@ʌłƂ́ǍgăpPbgÍ܂BSSH2ł́AMpPbg͎ނ邽߁AꂼɁubZ[WԍvUĂ܂BRFC4250ɃbZ[Wԍ̈ꗗ܂BbZ[W"SSH2_MSG_xxxx"Ƃl[~OɂȂĂATTSSHłOŃ}N`Ă܂B
    +@SSH͒ʐMoHÍ邱Ƃł̂łApPbg̈Ís߂ɂ́uvKvłBʐMoḦÍɂ́Aʌɂ鋤ʌÍp܂BJÍ̂قZLeBx͍̂łAÍɑȎԂ邽߁ASSĤ悤ȒʐM\v邵݂ł͍̗p܂BSSH2ł́AʌÍASYƂāAAES(Advanced Encryption StandardFRijndaelASY)3DES(Triple DES)Ȃǂp܂B
    +@ʌ͒ʐMsҊԂł݂̂ɋLłAO҂ɒmĂ͂Ȃ܂BSSH2ł́ANCAg[gzXgiSSHT[ojTCPڑɁA"Diffie-Hellman"ASYx[XƂƎ̕ɂANCAgƃT[ołm蓾ȂʌL܂BDHL܂ł̉ߒ́Albg[NpPbgŗ邽߁AO҂ɂpPbgLv`”\ƂȂĂ܂ApPbg`ĂAʌ͗_O҂ɂ͕Ȃ悤ɂȂĂ܂B
    +@ʌLłƂ́ǍgăpPbgÍ܂BSSH2ł́AMpPbg͎ނ邽߁AꂼɁubZ[WԍvUĂ܂BRFC4250ɃbZ[Wԍ̈ꗗ܂BbZ[W"SSH2_MSG_xxxx"Ƃl[~OɂȂĂATTSSHłOŃ}N`Ă܂B
    @ȉɁANCAgT[oTCPڑi|[g22ԁjĂApX[hF؂Ń[UF؂܂ł̗܂B
    - +
    - +
    -@ȉ́A[gzXg̃VF"exit""logout"ƂāANCAg疾IɃVFN[YƂ́ApPbg̗Ă܂B
    -
    - +
    -@TTSSH́ASSH2ŃpX[hF؂̂قkeyboard-interactiveF؁ApublickeyF؁APageant𗘗ppublickeyF؂T|[gĂ܂Bꂼ̔Fؕłǂ̂悤ȃV[PXŔF؂ŝAȉɎ܂B -
    - +
    + +@ȉ́A[gzXg̃VF"exit""logout"ƂāANCAg疾IɃVFN[YƂ́ApPbg̗Ă܂B
    +
    - +
    @@ -1165,7 +1170,7 @@

    SCP(Secure Copy)

  • ShowCaret
  • -@CreateCaret̃hLgɂƁA +@CreateCaret̃hLgɂƁA
     VXe 1 ‚̃L[ɂ‚ 1 ‚̃Lbg񋟂܂BEBhE
    @@ -1471,7 +1476,7 @@ 

    SCP(Secure Copy)

    eXg@

    -@oCi]vgR̓VAŗp邱Ƃ̂łAŋ߂PĆAVA|[gڂĂȂ߁AVAڑł̃eXgsƂȂĂ܂BŁAcom0comƂNull-modem emulator𗘗pƁA1‚PCʼnzI2‚COM|[g𐶐ATera TermmATera Termƕʃ^[~i\tgmŁAVAʐMsƂł܂B +@oCi]vgR̓VAŗp邱Ƃ̂łAŋ߂PĆAVA|[gڂĂȂ߁AVAڑł̃eXgsƂȂĂ܂BŁAcom0comƂNull-modem emulator𗘗pƁA1‚PCʼnzI2‚COM|[g𐶐ATera TermmATera Termƕʃ^[~i\tgmŁAVAʐMsƂł܂B @
    @@ -1502,7 +1507,7 @@

    XMODEM

    @XMODEM̃vgRɂ‚ẮALTCgQlɂȂ܂B
    @@ -1513,7 +1518,7 @@

    XMODEM

    XmodemLog=on
    -@ȒPȗƂāATera Term(COM10)RLogin(COM11)ɑ΂āA67oCg̃t@C𑗐Mꍇ̒ʐMO܂Bu<<<vsTera TermzXgMf[^ŁAu>>>vsTera TermMf[^łB +@ȒPȗƂāATera Term(COM10)RLogin(COM11)ɑ΂āA67oCg̃t@C𑗐Mꍇ̒ʐMO܂Bu<<<vsTera TermzXgMf[^ŁAu>>>vsTera TermMf[^łB @
     <<<
    @@ -1635,7 +1640,7 @@ 

    YMODEM

    @YMODEM̃vgRɂ‚ẮALTCgQlɂȂ܂B
    @@ -1646,7 +1651,7 @@

    YMODEM

    YmodemLog=on
    -@ȒPȗƂāATera Term(COM10)RLogin(COM11)ɑ΂āA67oCg̃t@C𑗐Mꍇ̒ʐMO܂Bu<<<vsTera TermzXgMf[^ŁAu>>>vsTera TermMf[^łB +@ȒPȗƂāATera Term(COM10)RLogin(COM11)ɑ΂āA67oCg̃t@C𑗐Mꍇ̒ʐMO܂Bu<<<vsTera TermzXgMf[^ŁAu>>>vsTera TermMf[^łB @
     <<<
    @@ -1897,7 +1902,7 @@ 

    KERMIT

    @KERMITiJ[~bgFZT~Xg[gɓoꂷJG̃}ybgj́A1981NɃRrAwŊJꂽt@C]vgRłA݂̓J[~bgvWFNgɂ胁eiXĂ܂BL̃TCgdlł܂B
    @
    diff --git a/doc/ja/html/setup/cygterm.html b/doc/ja/html/setup/cygterm.html index 4e9c6f37b..72f7e5a33 100644 --- a/doc/ja/html/setup/cygterm.html +++ b/doc/ja/html/setup/cygterm.html @@ -20,13 +20,12 @@ cygterm.cfg ̗

    -TERM = C:\program files\ttermpro\ttermpro.exe %s %d /KR=SJIS /KT=SJIS
    +TERM = C:\program files\ttermpro\ttermpro.exe %s %d /KR=UTF8 /KT=UTF8
     TERM_TYPE = vt100
     PORT_START = 20000
     PORT_RANGE = 40
     SHELL = /bin/bash
    -ENV_1 = MAKE_MODE=unix
    -ENV_2 = HOME=/home
    +ENV_1 = HOME=/home
       :         :
     
    diff --git a/doc/ja/html/setup/folder.html b/doc/ja/html/setup/folder.html new file mode 100644 index 000000000..2dfb82cb7 --- /dev/null +++ b/doc/ja/html/setup/folder.html @@ -0,0 +1,192 @@ + + + + +Tera Term gptH_ + + + + + +

    Tera Term gptH_

    + +
      +
    • CXg[ +
        +
      • ݒt@C +
          +
        • %APPDATA%\teraterm5
        • +
        +
      • +
      • 샍OA_v +
          +
        • %LOCALAPPDATA%\teraterm5
        • +
        +
      • +
      • _E[htH_(D揇,ݒ̎‰gp) +
          +
        1. _E[htH_
        2. +
        3. %USERPROFILE%\Downloads
        4. +
        +
      • +
      • [O(D揇,ݒ̎‰gp) +
          +
        1. WOۑtH_
        2. +
        3. _E[htH_
        4. +
        5. %LOCALAPPDATA%\teraterm5
        6. +
        +
      • +
      +
    • + +
    • |[^u +
        +
      • ݒt@C +
          +
        • exet@ĈtH_
        • +
        +
      • +
      • 샍OA_v +
          +
        • exet@ĈtH_ + \log
        • +
        +
      • +
      • _E[htH_(D揇,ݒ̎‰gp) +
          +
        1. _E[htH_
        2. +
        3. %USERPROFILE%\Downloads
        4. +
        +
      • +
      • [O(D揇,ݒ̎‰gp) +
          +
        1. WOۑtH_
        2. +
        3. _E[htH_
        4. +
        5. exet@ĈtH_ + \log
        6. +
        +
      • +
      +
    • +
    + +

    |[^ułɂ‚

    + +
      +
    • ‹(VXeݒAlݒ)ɍEꂸgp邱Ƃł +
        +
      • + ̂悤ȗprz +
          +
        • USBɓāAN
        • +
        • CXg[Ɏgp (Rs[邾Ŏg悤ɂȂ)
        • +
        +
      • +
      +
    • +
    • s ttermpro.exe ƓtH_ portable.ini t@CuƂŃ|[^ułƂē
    • +
    • portable.ini ̒g͂Ȃł悢(TCY0ł悢)
    • +
    + +

    CXg[ł̎gptH_,t@Cɂ‚

    + +

    Windows Vistaȍ~ ̏ꍇ̃tH_

    + +
      +
    • + ݒt@C +
        +
      • C:\Users\[username]\AppData\Roaming\teraterm5
      • +
      +
    • +
    • + 샍OA_v +
        +
      • C:\Users\[username]\AppData\Local\teraterm5
      • +
      +
    • +
    + +

    Windows 2000, XP ̏ꍇ̃tH_

    + +
      +
    • + ݒt@C +
        +
      • C:\Documents and Settings\[username]\AppData\Roaming\teraterm5
      • +
      +
    • +
    • + 샍OA_v(`) +
        +
      • C:\Documents and Settings\[username]\Application Data\teraterm5
      • +
      +
    • +
    + + + +

    Ql

    + + + +

    t@Cw肵ꍇ

    + +

    R}hCŃt@CtpXŎw肵ꍇ́AD悵Ďgp

    + +
      +
    • TERATERM.INI
    • +
    • KEYBOARD.CNF
    • +
    • broadcast.log
    • +
    + +

    ݒt@CȂꍇ

    + +

    ttermpro.exê͎悤ɓ삷

    + +
      +
    • ݒt@CutH_쐬
    • +
    • ttermpro.exẽtH_ɂݒt@C "ݒt@CutH_" ɃRs[
    • +
    + + + diff --git a/doc/ja/html/setup/keyboard.html b/doc/ja/html/setup/keyboard.html index 84a177649..166e5a078 100644 --- a/doc/ja/html/setup/keyboard.html +++ b/doc/ja/html/setup/keyboard.html @@ -12,13 +12,8 @@

    L[{[hݒt@C

    -L[{[hݒt@ĆAL[{[h̊eL[ƂɊ肠Ă@\(VT [̋@\A[U[`̑oATera Term R}h̎sA}N̎s)`܂B -

    - -

    -Tera Term CXg[̃L[ݒ͊eL[̋@\ VT [ɂł邾߂Ȃ悤ɂĂ܂B +L[{[hݒt@ĆAL[{[h̊eL[ƂɊ肠Ă@\(VT [̋@\A[U[`̑oATera Term R}h̎sA}N̎s)`܂B
    L[{[hݒt@CҏW邱ƂɂāARɃL[ݒύX邱Ƃł܂B -t@C`ɂ‚ẮAzzt@CɊ܂܂ĂKEYCODE.TXTǂłB

    @@ -32,47 +27,479 @@

    IBMKEYB.CNF
    -
    IBM-PC/AT ( DOS/V }V) 101 (106) L[{[hpݒt@C̗ (Windows 95/NT p)
    +
    IBM-PC/AT ( DOS/V }V) 101 (106) L[{[hpݒt@C̗
    + +
    VT200.CNF
    +
    VT220 [ł̈ʒuɔzuĂL[ɑL[p̃L[R[ho悤ɂȂĂ܂B
    + Ƃ End L[ꍇAIBMKEYB.CNF ̐ݒ Page Up L[ƂƓL[R[ho܂B
    + +
    KEYBOARD.CNF
    +
    CXg[ɂ IBMKEYB.CNF Ɠ
    +
    + +

    +CXg[[ IBMKEYB.CNF KEYBOARD.CNF ƂăRs[܂B +Ⴄݒgꍇɂ́AœK؂ȃt@CRs[ KEYBOARD.CNF 쐬ĂB +

    + +

    +L[R[h KEYCODE.EXE Œׂ邱Ƃł܂BKeycodeQƂB +

    -
    PC98KEYB.CNF
    -
    NEC PC 98 L[{[hpݒt@C̗ (Windows 95 p)
    +

    L[{[hCAEg

    -
    NT98KEYB.CNF
    -
    NEC PC 98 L[{[h pݒt@C̗ (Windows NT p)
    +

    Editing keypad

    -
    FUNCTION.CNF
    -
    IBMKEYB.CNF x[XɂJX^}CY
    -
      -
    • F1-F10 L
    • -
    • GfB^L[pbh(*1)ƓL[(*2)́AL[gbvɍ󂳂ꂽ̂ɑΉ VT220 [L[p̃V[PX(*3)𑗏o
    • -
    +
    + + + + + + + + + + + +
    InsertHomePage
    Up
    DeleteEndPage
    Down
    + 101 Keyboard +
    +
    + + + + + + + + + + + +
    FindInsert
    Here
    Re-
    move
    SelectPrev
    Screen
    Next
    Screen
    + VT200 Keyboard +
    +
    -
    EDITOR.CNF
    -
    IBMKEYB.CNF x[XɂJX^}CY
    -
      -
    • GfB^L[pbh(*1)́AL[gbvɍ󂳂ꂽ̂ɑΉ VT220 [L[p̃V[PX𑗏o(*3)
    • -
    +

    Numeric keypad

    -
    KEYBOARD.CNF
    -
    CXg[ɂ EDITOR.CNF Ɠ
    -
    +
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Num
    Lock
    /*-
    789+
    456
    123Enter
    0.
    + 101 Keyboard +
    +
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    PF1PF2PF3PF4
    789-
    456,
    123Enter
    0.
    + VT200 Keyboard +
    +
    + + + +

    L[{[hݒt@Cڍ

    + +

    L[{[hݒt@Č`

    -(*1) ŌGfB^L[pbhƂ́AIns, Del, Home, End, PageUp, PageDown L[̂Ƃw܂B
    -(*2) ŌL[Ƃ́AeL[ *, /, +, -, Ctrl+"+" L[̂Ƃw܂B
    -(*3)VT220 [ł͂̃L[̈ʒu ʓI 101(106) L[{[hƂ͈قȂĂ܂BFUNCTION.CNF, EDITOR.CNF ȊÕL[{[hݒt@Cł́AVT220 [ł̈ʒuɔzuĂL[ɑL[p̃V[PXo悤ɂȂĂ܂B̓IWi Tera Term Pro ̎dl̂܂ܓP̂łB
    - FUNCTION.CNF, EDITOR.CNF ł́AeL[̃L[gbvɍ󂳂ꂽ̂ɑL[p̃V[PXo悤ɂȂĂ܂BɂAL[ɑΉAvP[Vł́AeL[͍󂳂ꂽ̂ǂ̃L[Ƃċ@\悤ɂȂƎv܂B +L[{[hݒt@C̒ŗp PC key code PC ̊eL[܂̓L[ +gݍ킹ɑΉlŁAgpL[{[hɂĈقȂ܂B

    -CXg[[ EDITOR.CNF KEYBOARD.CNF ƂăRs[܂B -Ⴄݒgꍇɂ́AœK؂ȃt@CRs[ KEYBOARD.CNF 쐬ĂB +L[{[hݒt@Cɂ͎6‚̃ZNV݂܂B +

    + +
      +
    • [VT editor keypad] +
    • [VT numeric keypad] +
    • [VT function keys] +
    • [X function keys] +
    • [Shortcut keys] +
    • [User keys] +
    + +

    [VT editor keypad] ZNV

    + +

    +VT [̃GfB^[L[ PC L[Ɋ蓖Ă܂B +

    + +
    +	`:
    +		<VT editor key name>=<PC key code>
    +
    +	<VT editor key name>
    +		Up, Down, Right, Left, Find, Insert, Remove, Select,
    +		Prev, Next
    +
    +	<PC key code>
    +		PC key code (10i)
    +
    +	:
    +		Up=328
    +
    + +

    [VT numeric keypad] ZNV

    + +

    +VT[̐lL[ PC L[Ɋ蓖Ă܂B +

    + +
    +	`:
    +		<VT numeric key name>=<PC key code>
    +
    +	<VT numeric key name>
    +		Num0, Num1, Num2, Num3, Num4, Num5, Num6, Num7, Num8,
    +		Num9, NumMinus, NumComma, NumPeriod, NumEnter, PF1,
    +		PF2, PF3, PF4
    +
    +	<PC key code>
    +		PC key code (10i)
    +
    +	:
    +		Num0=82
    +
    + +

    + +

    +VT [ł̓CL[pbh "Enter" L[ƐlL[pbh +"Enter" L[Ⴄ𑗏o郂[ĥŁA"NumEnter=" +ɂ̓CL[ "Enter" PC key code ȂłB +CL[pbh "Enter" ƐlL[pbh "Enter" +PC key code 𔭐L[{[h(Ⴆ PC9801 L[{[h)̏ꍇ +ӂKvłB +

    + +

    [VT function keys] ZNV

    + +

    +VT [̃t@NVL[ PC L[Ɋ蓖Ă܂B +

    + +
    +	`:
    +		<VT function key name>=<PC key code>
    +
    +	<VT function key name>
    +		(VT [̃t@NVL[)
    +		Hold, Print, Break, F6, F7, F8, F9, F10, F11, F12,
    +		F13, F14, Help, Do, F17, F18, F19, F20
    +		(VT ["[U[`L[")
    +		UDK6, UDK7, UDK8, UDK9, UDK10, UDK11, UDK12, UDK13,
    +		UDK14, UDK15, UDK16, UDK17, UDK18, UDK19, UDK20
    +
    +	<PC key code>
    +		PC key code (10i)
    +
    +	:
    +		F6=64
    +
    + +

    [X function keys] ZNV

    + +

    +Xterm F1-F5 L[AуobN^uL[ PC L[Ɋ蓖Ă܂B +

    + +
    +	`:
    +		<Xterm function key name>=<PC key code>
    +
    +	<Xterm function key name>
    +		XF1, XF2, XF3, XF4, XF5, XBackTab
    +
    +	<PC key code>
    +		PC key code (10i)
    +
    +	:
    +		XF1=59
    +
    + +

    [Shortcut keys] ZNV

    + +

    +Tera Term ̋@\PC L[Ɋ蓖Ă܂B

    +
    +	`:
    +		<Shortcut key name>=<PC key code>
    +
    +	<Shortcut key name>	@\
    +	---------------------------------------------------------
    +	EditCopy		[Edit] Copy R}h
    +	EditPaste		[Edit] Paste R}h
    +	EditPasteCR		[Edit] Paste<CR> R}h
    +	EditCLS 		[Edit] Clear screen R}h
    +	EditCLB 		[Edit] Clear buffer R}h
    +	ControlOpenTEK		[Control] Open TEK R}h
    +	ControlCloseTEK 	[Control] Close TEK R}h
    +	LineUp			sXN[Abv
    +	LineDown		sXN[_E
    +	PageUp			y[WXN[Abv
    +	PageDown		y[WXN[_E
    +	BuffTop 		obt@[擪փXN[
    +	BuffBottom		obt@[ŌփXN[
    +	NextWin 		 Tera Term EBhEֈړ
    +	PrevWin 		O Tera Term EBhEֈړ
    +	NextShownWin 		̍ŏĂȂ Tera Term EBhEֈړ
    +	PrevShownWin 		O̍ŏĂȂ Tera Term EBhEֈړ
    +	LocalEcho		Local echo  on/off 
    +
    +	<PC key code>
    +		PC key code (10i)
    +
    +	:
    +		LineUp=1352
    +
    + +

    [User keys] ZNV

    +

    -PC98 NX V[Y PC ̏ꍇAIBMKEYB.CNF gpĂB +[U[L[ƁÃL[ƂɎs@\ +(̑oA}Nt@C̎sAj[R}h̎s) +`܂B

    +
    +	`:
    +		<User key name>=<PC key code>,<Control flag>,<>
    +		<User key name>=off
    +
    +	<User key name>
    +		User1, User2, User3,...., User99
    +		ő99‚܂Őݒ”\
    +
    +	<PC key code>
    +		PC key code (10i)
    +
    +	<Control flag>
    +		L[Ƃ <> ǂ̂悤Ɏ舵w
    +		tOB
    +			0	<>̂܂(8bit/Ƃ)oB
    +			1	<>Ɋ܂܂镶sR[h
    +				Tera Term ̐ݒɂ킹ĕϊAϊ
    +				ꂽ𑗏oB
    +			2	<>̃t@C̃}Nt@C
    +				sB
    +			3	j[ ID <> Ŏw肳
    +				Tera Term ̃j[R}hsB
    +
    +	<>:
    +		<Control flag>  0 ܂ 1 ̏ꍇAL[Ƃ
    +		o镶B\s”\ȕ(䕶)͂
    +		R[h $ 216iŕ\B
    +		(: CR  '$0D')B"$" ̂̂ "$24" ŕ\B
    +		Tera Term ł͐ݒt@CUTF-16(16bit/)ŏĂB
    +		<Control flag>  0 ̏ꍇA8bit/ƂďB
    +		U+0000..U+00FF$00..$FFƂĂ̂܂ܑMB
    +		ȊO$FFƂđMB
    +			U+0000..U+007F={e
    +			U+0080..U+00FF=e1⏕
    +		<Control flag>  1 ̏ꍇA
    +		UnicodeƂďB
    +
    +		<Control flag>  2 ̏ꍇA
    +		s}Nt@C̃t@CB
    +
    +		<Control flag>  3 ̏ꍇA
    +		s郁j[R}h̃j[ ID ()B
    +
    +	:
    +		User1=1083,0,telnet myhost
    +		User2=1084,0,$0D$0A
    +		User3=1085,1,ɂ́B
    +		User4=1086,2,test.ttl
    +		User5=1087,3,50110
    +
    + +

    +j[ IDɂ‚Ắuj[ ID \vQƁB +

    + +

    + +

    +1‚ PC key code ̓L[{[hݒt@C̒ň񂾂gp邱Ƃ +ł܂BA1‚ PC key code 𕡐̃L[`ŎgpꍇA +Tera Term L[{[hݒt@Cǂݍ񂾂ƂɁA +"Key code XXX is used more than once" ƂxbZ[W\܂B +̏ꍇ‚̃L[`LɂȂȂ͖܂B +

    + +

    +L[ݒ荀ڂɂǂ PC L[蓖ĂȂꍇ́Aȉ̂悤 +PC key code ̑ "off" w肵ĂB +

    + +
    +    EditCopy=off
    +
    + +

    ”\ȃL[̑gݍ킹

    + +

    +L[{[hݒt@CŐݒ”\ PC ̃L[, KEYCODE.EXE PC key code +\L[łBP̃L[łȂACtrl, Shift, Alt pL[̑g +킹ł PC key code \邱Ƃł܂B”\ȑgݍ킹 +ȉɎ܂B +

    + +
    +	Shift+key
    +	Ctrl+key
    +	Shift+Ctrl+key
    +	Shift+Alt+key
    +	Ctrl+Alt+key
    +	Shift+Ctrl+Alt+key
    +
    + +

    +Tera Term Windows ̃V[gJbgL[Ɋ蓖ĂĂL[̑gݍ킹 +(Ⴆ Alt+key Ȃ)̓L[{[hݒt@CŎwł܂B +

    + +

    +AAltL[^EL[ƂĎgݒɂĂꍇ(ݒ->L[{[hɂ +MetaL[Ƀ`FbNĂ)Alt+keyw肷鎖ł܂B +L[R[h KEYCODE.EXE Œׂ܂AP̂AltL[Ƃ̑gɂ +ΉĂ܂BAltL[Ƃ̑gł̃L[R[h𒲂ׂɂ́APƂł +L[R[h𒲂ׂāA̒l2048𑫂ĂB +

    + +

    +Ƃ΁AAlt+ṼL[R[h V 47 Ȃ̂ŁA2095 ƂȂ܂B +

    + +
    +    ; Shift + Insert
    +    EditPaste=850
    +
    + +

    +Ⴆ EditPaste=2095 ɕύX΁AMetaL[pXX[ɂĂĂ +Alt+VŒtł悤ɂȂ܂B +

    + +

    +Shift+Insertc܂Alt+Vł̒tsꍇ́AKEYBOARD.CNF +[User keys]ZNVɈȉ̐ݒlj܂B +

    + +
    +    User1=2095,3,50230
    +
    + +

    Q & A

    + +

    +Q. Tera Term N邽т "Key code XXX is used more than once" Ƃ + bZ[WłB
    +A. QƁB +

    + +

    +Q. PC F1 L[ VT100 PF1 L[ƂĎgBȉ̂悤ɐݒ肵 + ܂ȂB
    + +

    +	[VT function keys]
    +	F1=PF1		(͂܂)
    +
    + +A. ӂ PC ̃L[̖Oł͂Ȃ VT[ + L[̖Ow肵Ȃ΂Ȃ܂B܂AEӂɂ̓L[̖Oł͂ȂAL[R[hw肵 + B + ܂AL[ݒςƂ́AL[R[h̏dgpȂ悤ɂ + (Q)B
    + + ȉ̂悤ɐݒ肵ĂB
    + +
    +	[VT function keys]
    +	PF1=59			(59  F1 L[̃L[R[h)
    +	[X function keys]
    +	;XF1=59			(L[R[h 59 ̏dgp)
    +	XF1=off			("off" Œu)
    +
    +

    + +

    +Q. F1 L[ƂɃGXP[vV[PX ESC [ A 𑗏o悤 + 邽߂̐ݒ@?
    +A. [U[L[g΁ADȕ𑗏o邱Ƃł܂B + 킵́AL[{[hݒt@Č`ǂłB + ܂AL[ݒςƂ́AL[R[h̏dgpȂ悤ɂ + (Q)B
    + + ȉ̂悤ɐݒ肵ĂB +

    +	[X function keys]
    +	;XF1=59			(F1 L[̃L[R[h 59 ̏dgp)
    +	XF1=off			("off" Œu)
    +	[User keys]
    +	User1=59,0,$1B[A		(ESC  ASCII R[h $1B)
    +
    +

    diff --git a/doc/ja/html/setup/lng.html b/doc/ja/html/setup/lng.html index 86e8e831a..bac0cf8a5 100644 --- a/doc/ja/html/setup/lng.html +++ b/doc/ja/html/setup/lng.html @@ -18,7 +18,7 @@

    -CXg[́Alang tH_̒ɓ{EhCcEtXEVAE؍Ět@CRs[܂B
    +CXg[́Alang tH_̒ɓ{EhCcEtXEVAE؍EEXyCE^~̌t@CRs[܂B
    ܂ACXg[͎w肳ꂽꂪgp悤ɁATERATERM.INI UILanguageFile Ɍt@Cw肵܂B

    @@ -71,7 +71,7 @@

    -ڂ msdn Cu LOGFONT \ lfCharset ̐QƂĂB +ڂ msdn Cu LOGFONT \ lfCharset ̐QƂĂB

    diff --git a/doc/ja/html/setup/teraterm-com.html b/doc/ja/html/setup/teraterm-com.html index 0675f01c8..d9a89651b 100644 --- a/doc/ja/html/setup/teraterm-com.html +++ b/doc/ja/html/setup/teraterm-com.html @@ -20,7 +20,12 @@

    -̂悤ɕύXĂBƂۂɎgp”\ȃ|[gԍ̍ől4菬ĂA3ȉ̒l͎wł܂B +̂悤ɕύXĂBƂۂɎgp”\ȃ|[gԍ̍ől4菬ĂA3ȉ̒l͎wł܂B
    +włől͈ȉ̂ƂłB
    + 4096 (o[W4.65ȍ~)
    + 256 (o[W4.55ȍ~)
    + 99 (o[W4.24ȍ~)
    + 16 (o[W4.24ȑO)

    diff --git a/doc/ja/html/setup/teraterm-ini.html b/doc/ja/html/setup/teraterm-ini.html
    index 6b163ad97..e2166fcb8 100644
    --- a/doc/ja/html/setup/teraterm-ini.html
    +++ b/doc/ja/html/setup/teraterm-ini.html
    @@ -11,7 +11,7 @@
     
     

    Tera Term ݒt@C̑Sڈꗗ

    -

    BG

    +

    BG

    @@ -56,6 +56,12 @@

    BG

    + + + + + +
    <-
    BGThemeFiletheme\*.ini<-

    Tera Term

    @@ -86,13 +92,13 @@

    Tera Term

    - AcceptBroadcast + AcceptBroadcast on <- - AcceptTitleChangeRequest + AcceptTitleChangeRequest overwrite <- @@ -110,13 +116,13 @@

    Tera Term

    - AlphaBlendActive + AlphaBlendActive 255 AlphaBlend̐ݒlg - AlphaBlend + AlphaBlend 255 <- @@ -128,7 +134,7 @@

    Tera Term

    - ANSIColor + ANSIColor 0,0,0,0, 1,255,0,0, 2,0,255,0, 3,255,255,0, 4,128,128,255, 5,255,0,255, 6,0,255,255, 7,255,255,255, 8,64,64,64, 9,192,0,0, 10,0,192,0, 11,192,192,0, 12,64,64,192, 13,192,0,192, 14,0,192,192, 15,192,192,192 0,0,0,0, 1,255,0,0, 2,0,255,0, 3,255,255,0, 4,0,0,255, 5,255,0,255, 6,0,255,255, 7,255,255,255, 8,128,128,128, 9,128,0,0, 10,0,128,0, 11,128,128,0, 12,0,0,128, 13,128,0,128, 14,0,128,128, 15,192,192,192 @@ -152,7 +158,7 @@

    Tera Term

    - AutoScrollOnlyInBottomLine + AutoScrollOnlyInBottomLine on off @@ -164,7 +170,7 @@

    Tera Term

    - AutoWinClose + AutoWinClose on <- @@ -223,6 +229,12 @@

    Tera Term

    <- + + BeepVBellWait + 10 + <- + + BPAuto off @@ -248,7 +260,7 @@

    Tera Term

    - BSKey + BSKey BS <- @@ -260,8 +272,8 @@

    Tera Term

    - ClearOnResize - on + ClearOnResize + off <- @@ -284,7 +296,7 @@

    Tera Term

    - ClipboardAccessFromRemote + ClipboardAccessFromRemote off <- @@ -296,7 +308,7 @@

    Tera Term

    - ConfirmChangePaste + ConfirmChangePaste on <- @@ -308,7 +320,7 @@

    Tera Term

    - ConfirmChangePasteStringFile + ConfirmChangePasteStringFile <- @@ -326,7 +338,7 @@

    Tera Term

    - ConfirmPasteMouseRButton + ConfirmPasteMouseRButton off <- @@ -356,7 +368,7 @@

    Tera Term

    - CursorCtrlSequence + CursorCtrlSequence off <- @@ -368,7 +380,7 @@

    Tera Term

    - CygwinDirectory + CygwinDirectory c:\cygwin <- @@ -410,7 +422,7 @@

    Tera Term

    - DeleteKey + DeleteKey on off @@ -434,19 +446,19 @@

    Tera Term

    - DisableAcceleratorSendBreak + DisableAcceleratorSendBreak off <- - DisableAppCursor + DisableAppCursor off <- - DisableAppKeypad + DisableAppKeypad off <- @@ -470,7 +482,7 @@

    Tera Term

    - DisableMouseTrackingByCtrl + DisableMouseTrackingByCtrl on <- @@ -482,7 +494,7 @@

    Tera Term

    - DisablePasteMouseRButton + DisablePasteMouseRButton off <- @@ -494,13 +506,31 @@

    Tera Term

    - EnableANSIColor + DlgFont + + <- + + + + DpiAware + on + <- + + + + DrawingResizedFont on <- - EnableBlinkAttrColor + EnableANSIColor + on + <- + + + + EnableBlinkAttrColor on <- @@ -512,23 +542,29 @@

    Tera Term

    - EnableBoldAttrColor + EnableBoldAttrColor on <- - EnableClickableUrl + EnableClickableUrl on off - EnableContinuedLineCopy + EnableContinuedLineCopy on off + + IniAutoBackup + on + <- + + EnableLineMode on @@ -542,7 +578,7 @@

    Tera Term

    - EnableReverseAttrColor + EnableReverseAttrColor on off @@ -566,16 +602,16 @@

    Tera Term

    - EnableURLColor + EnableURLColor on <- FileDir - 1 - 2 - 1CXg[ɂ 2CXg[fBNg + + <- + l "" ̏ꍇAvO̓_E[htH_gpB FileSendFilter @@ -589,6 +625,12 @@

    Tera Term

    <- + + FixedJIS + off + <- + + FlowCtrl none @@ -596,7 +638,7 @@

    Tera Term

    - FontQuality + FontQuality default <- @@ -614,7 +656,7 @@

    Tera Term

    - HistoryList + HistoryList on off @@ -638,7 +680,7 @@

    Tera Term

    - IMERelatedCursor + IMERelatedCursor off <- @@ -728,29 +770,17 @@

    Tera Term

    - Language + Language English CXg[ɂ - LanguageSelection - on - <- - - - - ListHiddenFonts + ListHiddenFonts off <- - - Locale - - japanese - CXg[ɂ - LocalEcho off @@ -764,37 +794,37 @@

    Tera Term

    - LogAppend + LogAppend on off - LogAutoStart + LogAutoStart off <- - LogBinary + LogBinary off <- - LogDefaultName + LogDefaultName teraterm.log <- - LogDefaultPath + LogDefaultPath <- - LogHideDialog + LogHideDialog off <- @@ -812,13 +842,13 @@

    Tera Term

    - LogRotate + LogRotate 0 <- - LogRotateSize + LogRotateSize 0 <- @@ -830,13 +860,13 @@

    Tera Term

    - LogRotateStep + LogRotateStep 0 <- - LogTimestamp + LogTimestamp off <- @@ -848,7 +878,7 @@

    Tera Term

    - LogTimestampType + LogTimestampType Local <- @@ -860,7 +890,7 @@

    Tera Term

    - LogTypePlainText + LogTypePlainText on off @@ -902,25 +932,25 @@

    Tera Term

    - MetaKey + MetaKey off <- - MouseCursor - ibeam + MouseCursor + IBEAM <- - MouseEventTracking + MouseEventTracking on <- - MouseWheelScrollLine + MouseWheelScrollLine 3 <- @@ -932,13 +962,13 @@

    Tera Term

    - NormalizeLineBreakOnPaste - off + NotifyClipboardAccess + on <- - NotifyClipboardAccess + NotifySound on <- @@ -962,7 +992,7 @@

    Tera Term

    - PasteDelayPerLine + PasteDelayPerLine 10 <- @@ -986,14 +1016,14 @@

    Tera Term

    - Port + Port tcpip <- PrinterCtrlSequence - on + off <- @@ -1028,31 +1058,7 @@

    Tera Term

    - RussClient - Windows - <- - - - - RussFont - Windows - <- - - - - RussHost - Windows - KOI8-R - - - - RussKeyb - Windows - <- - - - - RussPrint + RussKeyb Windows <- @@ -1094,7 +1100,7 @@

    Tera Term

    - SelectOnlyByLButton + SelectOnlyByLButton on <- @@ -1148,7 +1154,7 @@

    Tera Term

    - TCPPort + TCPPort 1 2 1CXg[ɂ 2TelPort̒l @@ -1214,7 +1220,7 @@

    Tera Term

    - TelKeepAliveInterval + TelKeepAliveInterval 300 <- @@ -1226,7 +1232,7 @@

    Tera Term

    - Telnet + Telnet on <- @@ -1268,7 +1274,7 @@

    Tera Term

    - TermType + TermType xterm <- @@ -1286,7 +1292,7 @@

    Tera Term

    - TitleReportSequence + TitleReportSequence empty <- @@ -1304,13 +1310,13 @@

    Tera Term

    - TrimTrailingNLonPaste + TrimTrailingNLonPaste off <- - UILanguageFile + UILanguageFile lang\\Default.lng CXg[ɂ @@ -1322,8 +1328,14 @@

    Tera Term

    - UnknownUnicodeCharacterAsWide - off + UnderlineAttrColor + on + <- + + + + UnderlineAttrFont + on <- @@ -1334,7 +1346,7 @@

    Tera Term

    - URLUnderline + URLUnderline on <- @@ -1351,6 +1363,12 @@

    Tera Term

    <- + + FallbackToCP932 + off + <- + + Version 2.3 @@ -1358,11 +1376,17 @@

    Tera Term

    gpĂȂ - ViewlogEditor + ViewlogEditor <- WindowstH_notepad.exe + + ViewlogEditorArg + + <- + + VTBlinkColor 255,0,0,0,0,0 @@ -1388,7 +1412,7 @@

    Tera Term

    - VTFont + VTFont Terminal,0,-13,1 CXg[ɂ @@ -1423,6 +1447,12 @@

    Tera Term

    255,255,255,0,0,0 + + VTUnderlineColor + 0,255,0,0,0,0 + 255,0,255,255,255,255 + + Wait4allMacroCommand off @@ -1436,7 +1466,13 @@

    Tera Term

    - WindowCtrlSequence + WindowCornerDontround + off + <- + + + + WindowCtrlSequence on <- @@ -1448,7 +1484,7 @@

    Tera Term

    - WindowReportSequence + WindowReportSequence on <- @@ -1490,7 +1526,7 @@

    Tera Term

    - YmodemLog + YmodemLog off <- @@ -1562,7 +1598,7 @@

    TTSSH

    AuthBanner - 1 + 3 <- @@ -1626,6 +1662,12 @@

    TTSSH

    <- + + DefaultUserType + 1 + <- + + DisablePopupMessage 0 @@ -1664,13 +1706,13 @@

    TTSSH

    HeartBeat - 60 + 300 <- HostKeyOrder - 4567230 + 456798230 <- @@ -1710,6 +1752,12 @@

    TTSSH

    <- + + RSAPubkeySignAlgorithmOrder + 3210 + <- + + SSHIcon Default diff --git a/doc/ja/html/setup/teraterm-misc.html b/doc/ja/html/setup/teraterm-misc.html index 6458b1277..c96ece355 100644 --- a/doc/ja/html/setup/teraterm-misc.html +++ b/doc/ja/html/setup/teraterm-misc.html @@ -25,7 +25,7 @@
    -

    IME ({̓VXe)Ɋւݒ

    +

    IME (oCg̓VXe)Ɋւݒ

    IME ̃CC͂Ȃ悤ɂɂ́Aݒt@C [Tera Term] ZNV IMEInline sȉ̂悤ɕύXĂB @@ -426,6 +426,83 @@ LogTimestampUTC=off

    +

    DPIΉ(High DPI Aware)

    + +

    +DPIɑΉĂ܂B +Per monitor DPI Aware AvP[VƂē삵܂B +

    + +

    +]Ɠl DPI Unaware AvP[VƂĎgpꍇ +teraterm.ini[Tera Term]ZNVDPIAware=offlj܂B +

    + +

    +DPItHgTrue Type +FontIĂƃXP[OʂX[YɂȂ܂B +

    + +

    +DPIΉɂ͂‚̎ނ܂BڂHigh DPI Desktop Application Development on WindowsDPI AwarenessModeQƂB
    +

    + +

    +Tera Term Windows 10 Version 1703gp”\ Per-monitor DPI +awareness V2 ̋@\𗘗p܂B
    +Per-monitor DPI awareness V2ɂ‚ďڂ́A +High-DPI +Scaling Improvements for Desktop Applications in the Windows 10 +Creators Update (1703)QƂB +

    + +

    ݒt@C̎obNAbv

    + +

    +̐ݒt@Cɏ㏑ꍇAobNAbvt@CIɍ܂B +obNAbvsvł΁Aݒt@C [Tera Term] ZNV IniAutoBackup sȉ̂悤ɕύXĂB +

    + +
    +IniAutoBackup=off
    +
    + +
    +Default:
    +IniAutoBackup=on
    +
    + + +

    uPbgy[Xg̃T|[g

    + +

    +uPbgy[Xgsvł΁Aݒt@C [Tera Term] ZNV BracketedSupport sȉ̂悤ɕύXĂB +

    + +
    +BracketedSupport=off
    +
    + +
    +Default:
    +BracketedSupport=on
    +
    + +

    uPbgy[Xg𐧌䕶܂ޏꍇɌ肷

    +

    +uPbgy[Xg̓y[Xgem肷OɊmFł̂ŕ֗łB +AsȂǂ̐䕶܂܂ĂȂꍇɂ\tƊm̓iK̑삪KvɂȂ܂B +䕶܂܂ĂƂuPbgy[XgLɂꍇɂ́Aݒt@C [Tera Term] ZNV BracketedControlOnly sȉ̂悤ɕύXĂB +

    + +
    +BracketedControlOnly=on
    +
    + +
    +Default:
    +BracketedControlOnly=off
    +
    diff --git a/doc/ja/html/setup/teraterm-prn.html b/doc/ja/html/setup/teraterm-prn.html index 84703a883..3035a8138 100644 --- a/doc/ja/html/setup/teraterm-prn.html +++ b/doc/ja/html/setup/teraterm-prn.html @@ -54,24 +54,19 @@ PassThruPort= -

    -: VAꃂ[h̏ꍇtHg̃VAR[hZbgQƂĂB -

    - -

    GXP[vV[PXɂsȂ

    -ݒt@C [Tera Term] ZNV PrinterCtrlSequence sȉ̂悤ɕύX邱ƂɂāAGXP[vV[PXɂsȂ悤ɏo܂B +ݒt@C [Tera Term] ZNV PrinterCtrlSequence sȉ̂悤ɕύX邱ƂɂāAGXP[vV[PXɂs悤ɏo܂B

    -PrinterCtrlSequence=off
    +PrinterCtrlSequence=on
     
     ȗ:
    -PrinterCtrlSequence=on
    +PrinterCtrlSequence=off
     
    @@ -123,11 +118,6 @@ PrnFont= -

    -: VAꃂ[h̏ꍇtHg̃VAR[hZbgQƂĂB -

    - -

    y[W]̎w

    @@ -151,8 +141,8 @@

    -VTPPI=<x(), y(); pixels per inch)>    ; VTEBhEp
    -TEKPPI=<x(), y(); pixels per inch)>   ; TEK EChEp
    +VTPPI=<x(), y(); pixels per inch)>    ; VT EBhEp
    +TEKPPI=<x(), y(); pixels per inch)>   ; TEK EBhEp
     

    @@ -172,31 +162,5 @@ -

    tHg̃VAR[hZbg (VAꃂ[ĥ)

    - -

    -VAꃂ[hł́Av^tHg̎wGXP[vV[PXɂŃ|[gɒڏoIꍇALN^Zbgw肵Ȃ΂Ȃ܂BȂ΁AVA͐̕܂BLN^Zbgw肷ɂ́Aݒt@C [Tera Term] ZNV RussPrint sȉ̂悤ɕύXĂB -

    - -
    -RussFont=<char set>
    -
    - -

    -<char set>ɂ͈ȉw”\łB -

    -
      -
    • Windows
    • -
    • KOI8-R
    • -
    • CP-866
    • -
    • ISO-8859-5
    • -
    - -
    -ȗ:
    -RussPrint=Windows
    -
    - - diff --git a/doc/ja/html/setup/teraterm-ssh.html b/doc/ja/html/setup/teraterm-ssh.html index 9e54d4e3e..ff78c2d13 100644 --- a/doc/ja/html/setup/teraterm-ssh.html +++ b/doc/ja/html/setup/teraterm-ssh.html @@ -50,11 +50,12 @@

    -DisablePopupMessage=<\@>
    +DisablePopupMessage=<}~bZ[W>
     

    -\@ɂ 0 1 wł܂Bꂼ̒l̈Ӗ͈ȉ̂ƂłB +"}~bZ[W" ́A}~郁bZ[WނƂ̒l𑫂lw肵ĂB +ꂼ̒l̈Ӗ͈ȉ̂ƂłB

    @@ -63,7 +64,8 @@ - + +
    0 |bvAbv}~Ȃ
    1 |bvAbv}~
    1 "[J|[gւ̓]f[^̑MG[" |bvAbv}~
    2 "SSH `lI[vG[" |bvAbv}~
    @@ -121,7 +123,7 @@

    Q̍ŏTCYɂ 0 1024 ` 8192 wł܂B
    -0 w肵 TTSSH œKƔflg܂B݂̃o[W TTSSH ł RFC 8270 ɏ] 2048 ܂B̃o[Wł͂̒lύX”\܂B
    +0 w肵 TTSSH œKƔflg܂B݂̃o[W TTSSH ł RFC 8270 ɏ] 2048 ܂B̃o[Wł͂̒lύX”\܂B
    1024 ` 8192 ̊Ԃ̒lw肵ꍇ͂̒lg܂B

    @@ -163,6 +165,46 @@ +

    RSA pJF؂̏ASY̗Dx

    + +

    +RSA pJF؂ł́A̐ɗp邱ƂłnbVASY܂B
    +TTSSH ł́Agp鏐ASY̗Dxݒ肷邱Ƃł܂B
    +T[oƃNCAg҂T|[gĂ鏐ASY̒ŁANCAgōłDx̃ASYgp܂B +

    + +

    +ȉ̂悤ɐݒ肷邱ƂŁArsa-sha2-512 rsa-sha2-256 D悷邱Ƃł܂B +

    + +
    +RSAPubkeySignAlgorithmOrder=2310
    +
    + + + + + + + + + + + +
    l ASY ̐ɎgnbVASY
    3 rsa-sha2-512 SHA-512
    2 rsa-sha2-256 SHA-256
    1 ssh-rsa SHA1
    0 ̒l̃ASY͎gȂ
    + +

    +Note:
    +̐ݒ荀ڂŐݒł̂͌JF؂̗̏DxŁAT[ozXg̗̏Dxł͂܂B
    +܂A̐ݒ荀ڂŐݒł̂ RSA pJF؂̏łB̎ނ̌ɂ͑ΉĂ܂B +

    + +
    +ȗ:
    +RSAPubkeySignAlgorithmOrder=3210
    +
    + +

    X11]ł̓]fBXvCw

    diff --git a/doc/ja/html/setup/teraterm-term.html b/doc/ja/html/setup/teraterm-term.html index da9d76592..4b0c8fa13 100644 --- a/doc/ja/html/setup/teraterm-term.html +++ b/doc/ja/html/setup/teraterm-term.html @@ -218,7 +218,7 @@

    Xe[^XCgps‚ɂ

    -VT [̃Xe[^XC̋@\gps‚ɂɂ́Aݒt@C [Tera Term] ZNV EnableStatusLine +VT [̃Xe[^XC̋@\gps‚ɂɂ́Aݒt@C [Tera Term] ZNV EnableStatusLine sȉ̂悤ɕύXĂB

    @@ -296,28 +296,19 @@ -

    ΉĂȂUnicode̕ChƂĈݒ肷

    +

    UnicodeDEC Special Graphicsւ̃}bsOݒ肷

    -MR[hUTF-8܂UTF-8m̐ݒ̎ɁATera TermΉĂȂUnicode̎̕舵ݒ肵܂B
    -on ̏ꍇɂ́AΉĂȂUnicode̕ "??" ƕ\܂B
    -off ̏ꍇɂ́AΉĂȂUnicode̕ "?" ƕ\܂B + ł͐ݒ̓eɂ‚Đ܂B

    -
    -ȗ:
    -UnknownUnicodeCharacterAsWide=off
    -
    - - -

    UnicodeDECꕶւ̃}bsOݒ肷

    -

    -{‹łTera Term͌rꕔ̋L2Jŕ\܂BAzXg̃AvP[VɂĂUTF-8GR[fBOɂ͂̕1Jŕ\Ɗ҂o͂sǍʉʏo͂ꍇ܂B
    -܂p‹ł͌r+-|gĕ\AΉĂȂ??ƕ\肵܂B
    -Tera Termł́A̕DECꕶɋ߂镨́Agĕ\悤ɂ鎖łAɂĕ\̕y鎖ł܂B
    -A}EXőIɃNbv{[hɃRs[̂{Ƃ͕ʂ̕ɂȂĂ܂Ƃp܂B
    -̐ݒ́AMR[hUTF-8܂UTF-8m̎̂݌ʂ܂B + ̃y[WQƂB +

    @@ -534,6 +525,27 @@ +

    Beep Visual Bell ̂Ƃ̃tbV

    +

    +zXg BEL (ASCII $07) ėATera Term ł͉ʂ_ł邱Ƃł܂B +

    + +

    +ʂ̓_ł́A[𔽓]\̂莞ԑ҂AĂђ[𔽓]\Čɖ߂Ă܂B
    +[U͂̑҂Ԃ𒲐߂邱Ƃł܂B +

    + +
    +; Wait time (ms) when Beep is Visual Bell
    +BeepVBellWait=100
    +
    + +
    +ȗ:
    +BeepVBellWait=10
    +
    + +

    OSCpobt@TCY

    Tera Term ł OSC ̏ɏp̃obt@ȂȂƎIɃobt@g悤ɂȂĂ܂B @@ -612,5 +624,71 @@ +

    7bit JISJ^Ji(p)[ƂĎgp

    + +

    ̐ݒ̎ +

      +
    • Sʐݒ/: Japanese
    • +
    • [/ -M: JIS
    • +
    • [/-M/pJi: On
    • +
    +{ꃂ[hł́AftHg G1́AJIS X 0201 J^Ji(pJ^Ji) +wꂽԂƂȂ܂B7bitR[hJIS X 0201 J^JigꍇA +SOGLG1ĂяoĎgp܂B +

    + +

    +Ⴆ΁Aȉs ƕ\܂B +

    +
    +echo -e '\016CW@0Q\017'
    +# => 
    +
    + +

    +AG1ɑ̕ZbgwꂽԂɂȂSOJIS X 0201 J^ +Ji\ȂȂĂ܂܂B +

    + +
    +# G1US-ASCIIw
    +echo -e '\033)B'
    +
    +# SOGLG1ĂяoĂJIS X 0201 J^Ji\łȂ
    +echo -e '\016CW@0Q\017'
    +# => CW@0Q
    +
    + +

    +FixedJIS=on ɐݒ肷SOGLG1ĂяoɁA炩G1JIS X +0201 J^Jiw悤ɂȂA‚JIS X 0201J^Ji\ +悤ɂȂ܂B +

    + +

    +FixedJIS=on G1JIS X 0201 J^JiɌŒ肷ׂ̐ݒłBɂ +A7bit JISJ^Ji[ƂĎg悤ɂȂ܂B +

    + +
    +ȗ:
    +FixedJIS=off
    +
    + +

    sUTF-8CP932ƂăfR[h

    + +

    +MUTF-8̂ƂɁAUTF-8ƂĕsȕACP932ƂăfR[h܂BIłB +

    + +

    +CygwinڑWindowstR}h̏o͂CP932ōs鎖ɑΉ邽߂̂̂ŁAȊÕP[X͑z肵Ă܂B +

    + +
    +ȗ:
    +FallbackToCP932=off
    +
    + diff --git a/doc/ja/html/setup/teraterm-trans.html b/doc/ja/html/setup/teraterm-trans.html index 0e975e427..50aaf8ba5 100644 --- a/doc/ja/html/setup/teraterm-trans.html +++ b/doc/ja/html/setup/teraterm-trans.html @@ -170,7 +170,7 @@ -

    Quick-VAN ̃EBhETCY

    +

    Quick-VAN ̃EChETCY

    ݒt@C [Tera Term] ZNV QVWinSize sA @@ -258,6 +258,26 @@ +

    YMODEM ̃O

    + +

    +ݒt@C [Tera Term] ZNV YmodemLog sA +

    + +
    +YmodemLog=on
    +
    + +

    +̂悤ɕύXƁAzXg Tera Term ̊Ԃ YMODEM pt@C]ƂɁApPbget@C YMODEM.LOG ɋL^܂B +

    + +
    +ȗ:
    +YmodemLog=off
    +
    + +

    YMODEM ̃^CAEg

    @@ -436,7 +456,7 @@

    hbO&hbvɂt@CM̊mF

    -Tera Term ́AftHgł̓t@CEChEɃhbO&hbvƂɁAt@C]邩ǂmF̃bZ[W{bNX\܂Bݒt@C [Tera Term] ZNV ConfirmFileDragAndDrop sL̂悤ɕύXƁAmFɃt@C̓]Jn܂B +Tera Term ́AftHgł̓t@CEBhEɃhbO&hbvƂɁAt@C]邩ǂmF̃bZ[W{bNX\܂Bݒt@C [Tera Term] ZNV ConfirmFileDragAndDrop sL̂悤ɕύXƁAmFɃt@C̓]Jn܂B

    diff --git a/doc/ja/html/setup/teraterm-win.html b/doc/ja/html/setup/teraterm-win.html
    index 0e52d3b53..019f6dd0b 100644
    --- a/doc/ja/html/setup/teraterm-win.html
    +++ b/doc/ja/html/setup/teraterm-win.html
    @@ -9,10 +9,10 @@
     
     
     
    -

    IȕRs[Ȃ

    +

    }EXŕIANbv{[hփRs[

    -}EXŕIƁAɂꂪNbv{[hɃRs[܂B̎IȕRs[Ȃ悤ɂɂ́Aݒt@C [Tera Term] ZNV AutoTextCopy sȉ̂悤ɕύXĂB +}EXŕIƂAWindows̃Nbv{[hփRs[邱Ƃł܂Bݒt@C [Tera Term] ZNV AutoTextCopy ł̋@\on/offł܂B

    @@ -58,7 +58,8 @@
     

    - "DelimList" sɂ́A1oCgR[h(锼p)wł܂B2oCgR[h(Sp)͋؂蕶ƂĎ舵܂B2oCgR[h؂蕶ƂȂ悤ɂɂ́ADelimDBCS sȉ̂悤ɕύXĂB +ftHgł 1cell ŕ\Ă镶 2cellȏ(GȂ)ŕ\Ă镶̊Ԃ؂Ƃ܂B +DelimDBCS sȉ̂悤ɕύXƋ؂ƂȂ܂B

    @@ -71,7 +72,7 @@
     

    -ȑÕo[W Tera Term ƒPI̎d𓯂ɂɂ́A +PI̓ Tera Term 2.3 ɂɂ́A

    @@ -116,26 +117,6 @@
     
    -

    ꃂ[h̑Is‚ɂ

    - -

    -[Setup] General _CAO{bNXŌꃂ[h (Language) ̑IłȂ悤ɂɂ́Aݒt@C [Tera Term] ZNV LanguageSelection sA -

    - -
    -LanguageSelection=off
    -
    - -

    -̂悤ɕύXĂB -

    - -
    -ȗ:
    -LanguageSelection=on
    -
    - -

    XN[obt@[̍ős

    @@ -204,7 +185,7 @@

    }EXŃEBhEIƂ̑̕I֎~

    -IԂ̃EBhË̕}EXŃNbN邱ƂɂăEBhEI邱Ƃł܂Bݒł́Ã}EXNbNɂēɕ̑IJn܂B}EXŃEBhEȊ̕I֎~ɂ́Aݒt@C [Tera Term] ZNV SelectOnActivate sA +IԂ̃EBhË̕}EXŃNbN邱ƂɂăEBhEI邱Ƃł܂Bݒł́Ã}EXNbNNbNłΓɕ̑IJn܂B}EXŃEBhENbNđȊ̕I֎~ɂ́Aݒt@C [Tera Term] ZNV SelectOnActivate sA

    @@ -312,10 +293,10 @@
     
    -

    (s)Ԃɂ܂

    +

    (s)Ԃ̂܂𒲐

    -(s)Ԃɂ܂ɂ́Aݒt@C [Tera Term] ZNV VTFontSpace sȉ̂悤ɕύXĂB +(s)Ԃ̂܂𒲐ɂ́Aݒt@C [Tera Term] ZNV VTFontSpace sȉ̂悤ɕύXĂB

    @@ -335,6 +316,7 @@
     :
     VTFontSpace=0,1,0,0    ẻE1f̂܂B
     VTFontSpace=0,0,1,0    es̏㑤1f̂܂B
    +VTFontSpace=0,0,-1,-1  es̏㉺1f߂B
     
    @@ -358,160 +340,6 @@
     WindowMenu=on
     
    - -

    EtermEBhE

    - -

    -EtermEBhȄڍאݒ܂B -

    - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    BGSPIPathtH_摜ǂݍނ̂ɗpASusie Plugin i[ĂtH_w肵܂B
    BGFastSizeMoveOn / OffEBhËړATCYύXɍs܂BWindows uhbOɃEBhE̓e\vꍇɗLłB
    BGFlickerlessMoveOn / OffEBhEړۂ̂‚}܂B
    BGUseAlphaBlendAPIOn / OffOff ɂƁAAPI AlphaBlend g܂BfobOpłB
    BGNoFrameOn / OffOn ɂƁAHideTitle = On ̎ASg̖EBhEɂȂ܂B
    - ̎AAlt + Shift + hbOŃEBhETCYύXł܂B
    BGThemeFilet@Ce[}t@Cw肵܂B
    - t@CɃChJ[hw肳ꂽꍇAvt@C烉_Ɉ‘Iт܂B
    - -
    -ȗ:
    -BGUseAlphaBlendAPI = On
    -BGSPIPath = plugin
    -BGFastSizeMove = On
    -BGFlickerlessMove = On
    -BGNoFrame = Off
    -BGThemeFile = theme\*.ini
    -
    - -

    e[}t@C̐ݒ

    - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    BGReverseTextTone0 - 255]eLXg̓x
    BGPictureFilet@Cǎƍ摜t@Cw肵܂B
    - t@CɃChJ[hw肳ꂽꍇAvt@C烉_Ɉ‘Iт܂B
    - ΃pX𗘗pꍇ́Ae[}t@C̑΃pXw肵ĂB
    - ǂݍ߂t@C̎ނ́ABGSPIPath Ɋi[ꂽvOCɂ܂B
    - rbg}bv̓vOCĂǂݍ߂܂B -
    BGPicturePatternStretch
    - Tile
    - Center
    - FitWidth
    - FitHeight
    - AutoFit
    摜t@C̕`@w肵܂B
    - FitWidthAFitHeight ͉摜̃AXyNgێ܂܁A摜gk܂B
    - AutoFit ́AEBhEƉ摜̊ԂɌԂłȂ悤ɁAFitWidth FitHeight ؂ւ܂B -
    BGPictureBaseColorR, G, B摜ƃEBhE̊ԂɌԂłꍇA̐Fœh܂B
    BGPictureTone0 - 255摜t@C̓x
    BGFadeTone0 - 255wiŜtF[h܂B
    BGFadeColorR, G, BtF[hƂ̐Fw肵܂B
    VTFore Red ȂR, G, BeLXg̐Fݒ肵܂B
    - -

    e[}t@C̊gݒ

    - -

    -theme\Advanced.sample t@C𗘗pāAgݒ邱Ƃł܂B
    -ĹAw肵摜t@C(sample.jpg) Tera Term ̔wiɕ`悷ŁA -teraterm.ini BGThemeFile GgŎw肵ĂB -

    - -
    -[BG]
    -; Advanced Setting
    -; Image source setting
    -; Type      : Color / Picture / Wallpaper
    -: Pattern   : Stretch / Tile / Center / FitWidth / FitHeight / AutoFit
    -; AntiAlias : On / Off
    -; Color     : R,G,B (0-255)
    -; Alpha     : 0-255
    -; File      : wildcard => random select
    -; Dest = (Src1  * Src1Alpha + Dest * (255 - Src1Alpha)) / 255
    -; Dest = (Src2  * Src2Alpha + Dest * (255 - Src2Alpha)) / 255
    -BGReverseTextAlpha = 192
    -;
    -BGDestType      = Picture
    -BGDestFile      = sample.jpg
    -BGDestPattern   = AutoFit
    -BGDestAntiAlias = On
    -BGDestColor     = 0,0,0
    -;
    -BGSrc1Type      = Color
    -BGSrc1File      = 
    -BGSrc1Pattern   = 
    -BGSrc1AntiAlias = 
    -BGSrc1Color     = 32,32,32
    -BGSrc1Alpha     = 64
    -;
    -BGSrc2Type      = Color
    -BGSrc2File      = 
    -BGSrc2Pattern   = 
    -BGSrc2AntiAlias = 
    -BGSrc2Color     = 32,32,32
    -BGSrc2Alpha     = 64
    -
    - -

    EBhEő剻̉ʃXN[@

    EBhEő剻̉ʃXN[@w肵܂B
    @@ -632,14 +460,16 @@ - TTERM ACR(Tera Term) - VT ACR(VT) - TEK ACR(TEK) - TTERM_CLASSIC ACR(Tera Term) - VT_CLASSIC ACR(VT) - TTERM_3D ACR(Tera Term-3D) - VT_3D ACR(VT-3D) - CYGTERM ACR(CygTerm) + TTERM ACR(Tera Term) + VT ACR(VT) + TEK ACR(TEK) + TTERM_CLASSIC ACR(Tera Term) + VT_CLASSIC ACR(VT) + TTERM_3D ACR(Tera Term-3D) + VT_3D ACR(VT-3D) + TTERM_FLAT ACR(Tera Term-FLAT) + VT_FLAT ACR(VT-FLAT) + CYGTERM ACR(CygTerm) Default Wݒ(VTEBhEVT, TEKEBhETEK) @@ -662,10 +492,12 @@ - flat ttsshACR(tbg) - green ttsshACR() - yellow ttsshACR(F) - Default W̃ACR(flatƓ) + flat2 ttsshACR(tbg2) + classic ttsshACR(IWi) + yellow ttsshACR(F) + green ttsshACR() + flat ttsshACR(tbg) + Default W̃ACR(flat2Ɠ) @@ -677,5 +509,37 @@

    +

    }EXł̑̕I̊Jnx点

    +

    +}EXł̃eLXg̑I̊Jnx点āA}EXŃhbOԂZꍇ̓NbNƂĈ킹鎖o܂B
    +Ⴆ΁A}EXł̃hbOԂ 200 ~bZꍇɃNbNƂɂ́Aݒt@C [Tera Term] ZNV MouseSelectStartDelay sȉ̂悤ɕύXĂB +

    + +
    +MouseSelectStartDelay=200
    +
    + +
    +ȗ:
    +MouseSelectStartDelay=0
    +
    + + +

    EBhE̊pۂȂ

    + +

    +Windows 11 ł̓EBhE̊pۂȂ邽߁A\̈悪܂BVT EBhE TEK EBhE̊pۂȂ߂ɂ́Aݒt@C [Tera Term] ZNV WindowCornerDontround sȉ̂悤ɕύXĂB +

    + +
    +WindowCornerDontround=on
    +
    + +
    +ȗ:
    +WindowCornerDontround=off
    +
    + + diff --git a/doc/ja/html/setup/teraterm.html b/doc/ja/html/setup/teraterm.html index fd96dc961..41f63df36 100644 --- a/doc/ja/html/setup/teraterm.html +++ b/doc/ja/html/setup/teraterm.html @@ -14,40 +14,8 @@

    N܂́A[Setup] Restore setupsƂAݒt@C̓eɂ Tera Term ܂B
    R}hCŐݒt@Cw肷邱Ƃł܂Bt@C̊gqȗꍇ́A".INI"łƂ݂Ȃ܂B
    -R}hCŃt@Cw肵ȂꍇA"My Documents"[*1] TERATERM.INI ݂ "My Documents" TERATERM.INI ǂݍ܂A݂Ȃꍇ ttermpro.exe ƓfBNg TERATERM.INI ǂݍ܂܂B

    -

    -[*1] My Documents̃ftHg̏ꏊ -

    - - - - - - - - - - - - - - - - - - - - - - - - - -
    OS
    Vista/7/8/10%UserProfile%\Documents
    2000/XP%UserProfile%\My Documents
    NT4.0C:\Winnt\Personal\[U\Personal
    MEC:\My Documents, C:\WINDOWS\Profiles\[U\My Documents
    95/98C:\My Documents
    - -

    Tera Term ݒt@C̑Sڈꗗ

    @@ -75,8 +43,7 @@
  • TEK GIN report ̃}EXR[h̒lݒ肷
  • s̃^u\ VT [݊ɂ
  • ʃNAɃJgobt@XN[AEg邩ǂݒ肷
  • -
  • ΉĂȂUnicode̕ChƂĈݒ肷
  • -
  • UnicodeDECꕶւ̃}bsOݒ肷
  • +
  • UnicodeDEC Special Graphicsւ̃}bsOݒ肷
  • t@NVL[̃ftHg̓
  • AltL[MSBZbg𑗐M
  • ։ʃobt@𖳌ɂ
  • @@ -84,7 +51,10 @@
  • [ŗLIDύX”\ɂ
  • ^uXgbvʒu̕ύX֎~
  • xߎgp̈ꎞ
  • +
  • Beep Visual Bell ̂Ƃ̃tbV
  • ISO/IEC 2022̃Vtg@\ɂ镶Zbg̐؂ւ֎~
  • +
  • 7bit JISJ^Ji(p)[ƂĎgp
  • +
  • sUTF-8CP932ƂăfR[h
  • EBhE

    @@ -93,21 +63,21 @@
  • _uNbNɂPI̋؂蕶
  • |bvAbvj[gps‚ɂ
  • "Show menu bar" R}hB
  • -
  • ꃂ[h̑Is‚ɂ
  • XN[obt@[̍ős
  • _łȂJ[\
  • xɃXN[ő̍sݒ肷
  • }EXŃEBhEIƂ̑̕I֎~
  • ^Cǧ`
  • FэF̎̕ۂ̐F
  • -
  • (s)Ԃɂ܂
  • +
  • (s)Ԃ̂܂𒲐
  • [Window] j[B
  • -
  • EtermEBhE
  • EBhEő剻̃XN[@
  • tH[JXOꂽɂJ[\\
  • EBhȄʒuŒ肷
  • EBhEʒuۑ
  • EBhEACRύX
  • +
  • }EXł̑̕I̊Jnx点
  • +
  • EBhE̊pۂȂ
  • ʐM

    @@ -138,6 +108,7 @@
  • XMODEM ̃O
  • XMODEM ̎MR}h
  • XMODEM ̃^CAEg
  • +
  • YMODEM ̃O
  • YMODEM ̃^CAEg
  • ZMODEM M/M̎N
  • ZMODEM M̐ݒ
  • @@ -160,7 +131,6 @@
  • v^tHg̎w
  • y[W]̎w
  • ̔{
  • -
  • tHg̃VAR[hZbg (VAꃂ[ĥ)
  • ̑

    @@ -185,6 +155,10 @@
  • Ot@Cx݂
  • O̍sɒlj^CX^ṽtH[}bgw肷
  • O̍sɒlj^CX^v̎UTCgp
  • +
  • DPIΉ(High DPI Aware)
  • +
  • ݒt@C̎obNAbv
  • +
  • uPbgy[Xg̃T|[g
  • +
  • uPbgy[Xg𐧌䕶܂ޏꍇɌ肷
  • TTSSH

    @@ -194,6 +168,7 @@

    TTSSH

  • Diffie-Hellman Qł̌Q̍ŏTCY
  • Ox
  • +
  • RSA pJF؂̏ASY̗Dx
  • X11]ł̓]fBXvCw
  • diff --git a/doc/ja/html/setup/theme.html b/doc/ja/html/setup/theme.html new file mode 100644 index 000000000..bb3791800 --- /dev/null +++ b/doc/ja/html/setup/theme.html @@ -0,0 +1,251 @@ + + + + +Theme ݒt@C + + + + + +

    Themet@C

    + + + +

    TODO

    + + +

    themet@Cɂ‚

    + + e[}t@Cɂ͂‚̎ނB + +
    +
    BG(wi)e[}
    +
    + [BG Theme]ZNVt@C
    + ̃ZNVɂ͔wi摜̐ݒ肪 +
    +
    J[e[}
    +
    + [Color Theme]ZNVt@C
    + ̃ZNVɂ͕̐F̐ݒ肪 +
    J[e[} (p~\)
    +
    + [BG]ZNVɕ̐F̐ݒ肪Ă
    + Tera Term 4 ŃT|[gĂJ[e[}
    + ǂݍ݂͂ł邪p~\ +
    +
    + + BG(wi)e[}ƃJ[e[}ʂ̃t@CɕۑĂƂA + 1‚̃t@Cɗۑ邱ƂłB + + tH[}bgWindowsinit@CB + +

    BG(wi)e[}

    + +

    section

    + + "BG theme"
    + + "BG"ZNVǂݍ݉”\(p~\)Bꍇ"BG theme"DB + +
    +
    BGDestColor
    +
    + wi摜gpȂꍇ͂̐Fœh‚ԂB
    + wi摜`悳Ȃꍇ̐Fœh‚ԂB +
    + +
    BGDestFile
    +
    + wi摜
    + t@CɃChJ[hw肳ꂽꍇAvt@C烉_Ɉ‘Iт܂B
    + ΃pX𗘗pꍇ́Ae[}t@C̑΃pXw肵ĂB
    + ǂݍ߂t@C̎ނ́ABGSPIPath Ɋi[ꂽvOCɂ܂B
    + rbg}bv̓vOCĂǂݍ߂܂B +
    + +
    BGDestPattern
    +
    wi摜`@ +
    +
    stretch
    +
    tile
    +
    center
    +
    fit_width
    +
    fit_height
    +
    autofit
    +
    autofill
    +
    + FitWidthAFitHeight ͉摜̃AXyNgێ܂܁A摜gk܂B
    + AutoFit ́AEBhEƉ摜̊ԂɌԂłȂ悤ɁAFitWidth FitHeight ؂ւ܂B +
    +
    +
    + +
    BGSrc1Alpha
    +
    + Windows̕ǎ摜At@uhB
    + wi摜(Dest)ɃfXNgbv摜(Src1)ǂꂮ炢uhw肷B
    + 0̂Ƃǎ̓uhȂB +
    + + +
    BGSrc2Color
    +
    + wi摜ŜAt@uhF +
    + +
    BGSrc2Alpha
    +
    + At@uhl
    + DestSrc1̍摜ɒPF(Src2)ǂꂮ炢uh邩 +
    + +
    BGTextBackAlpha
    +
    + 0 - 255
    + ʏ핶wiFAlphaBlendl,255ŕs +
    + +
    BGReverseTextAlpha
    +
    + 0 - 255
    + ]wiFAlphaBlendl,255ŕs +
    + +
    BGTextAlpha
    +
    + 0 - 255
    + ̑̕wiFAlphaBlendl,255ŕs +
    +
    + +

    color theme

    + +

    section

    + + "Color Theme" + +

    name

    + +
    +
    Theme
    +
    e[}Al͕
    +
    + +

    attribute color

    + +
    +
    VTColor
    +
    ʏ핶F, SGR 0
    + +
    BoldColor
    +
    SGR 1
    + +
    VTUnderlineColor
    +
    SGR 4
    + +
    BlinkColor
    +
    SGR 5
    + +
    ReverseColor
    +
    SGR 7
    + +
    URLColor
    +
    + URL
    + Tera TermURLoƂɕt镶Agr[g +
    + +
    l (0 or 1), (0 or 1), (fore red), (fore green), (fore blue), (back red), (back green), (back blue)
    +
    l (0 or 1), (0 or 1), (fore), (back)
    +
    +
    +
    (0 or 1)
    +
    + 1=defaultFύX
    + 0=ύXȂ
    + (VTColorł͎QƂȂ) +
    +
    (0 or 1)
    +
    + 1=(Bold attribute)̓ƎFL
    + 0=ɂ
    + (VTColorł͎QƂȂ) +
    + +
    (fore red), (fore green), (fore blue)
    +
    ̐FAel0255
    + +
    (back red), (back green), (back blue)
    +
    wi̐FAel0255
    + +
    (fore), (back)
    +
    + #RRBBGG ̌`ŁAeX00 FF ܂ +
    +
    +
    +
    + +

    ANSI color

    + + 256F/16F ANSI color̍ŏ16FB
    + 8F́ADark colorgpȂ + +
    +
    ANSIColor=(0 or 1)
    +
    + 1=defaultFύX
    + 0=ύXȂ +
    +
    + +
    +
    Fore
    +
    256 ANSI color 15
    + ʏ핶F(Tera TermłVTColorgp) +
    + +
    Back
    +
    256 ANSI color 0
    + ʏwiF(Tera TermłVTColorgp) +
    + +
    Red
    +
    Green
    +
    Yellow
    +
    Blue
    +
    Magenta
    +
    Cyan
    +
    DarkFore
    +
    DarkBack
    +
    DarkRed
    +
    DarkGreen
    +
    DarkYellow
    +
    DarkBlue
    +
    DarkMagenta
    +
    DarkCyan
    +
    eF
    + +
    l (red), (green), (blue)
    +
    el0255
    + +
    l (color)
    +
    + #RRBBGG ̌`ŁAeX00 FF ܂ +
    + +
    + + + diff --git a/doc/ja/html/style.css b/doc/ja/html/style.css index 4d3e67a8a..f29277d9a 100644 --- a/doc/ja/html/style.css +++ b/doc/ja/html/style.css @@ -5,15 +5,19 @@ body { } h1 { - font-size: x-large; + font-size: 150%; } h2 { - font-size: large; + font-size: 135%; } h3 { - font-size: medium; + font-size: 120%; +} + +h4 { + font-size: 100%; } .center { diff --git a/doc/ja/html/uninstall.html b/doc/ja/html/uninstall.html index 1f111a947..6cb47a005 100644 --- a/doc/ja/html/uninstall.html +++ b/doc/ja/html/uninstall.html @@ -10,14 +10,25 @@

    ACXg[

    +

    CXg[瓱ꍇ

    + +

    +Tera Term 폜ɂ́ARg[pĺuvOƋ@\vs邩ATera Term fBNgɂ unins000.exe sĂB
    +ɁARg[pĺutHgv "Tera Special" tHg폜ĂB
    +̃ACXg[[Ȃꍇ́A蓮łTera TermACXg[邱Ƃł܂B
    +

    + +

    ZIPA[JCugpꍇ

    +

    -Tera Term 폜ɂ́ARg[pĺuvOƋ@\vs邩ATera Term fBNgɂ unins000.exe sĂB +蓮ŃACXg[ĂB

    +

    蓮ACXg[

    +

    -̃ACXg[[Ȃꍇ́A蓮łACXg[邱Ƃł܂B
    Tera Term fBNgɂ Tera Term ֌W̃t@Cׂč폜ARg[pĺutHgv "Tera Special" tHg폜ĂB
    -Tera Term MenugpĂꍇ́AWXg HKEY_CURRENT_USER\Software\ShinpeiTools\TTermMenu 폜ĉB +TeraTerm MenugpĂꍇ́AWXg HKEY_CURRENT_USER\Software\ShinpeiTools\TTermMenu 폜ĂB

    diff --git a/doc/ja/html/usage/LogMeTT/LogMeTTTutorial.htm b/doc/ja/html/usage/LogMeTT/LogMeTTTutorial.htm deleted file mode 100644 index dfb43e9e1..000000000 --- a/doc/ja/html/usage/LogMeTT/LogMeTTTutorial.htm +++ /dev/null @@ -1,289 +0,0 @@ - - - - - - -LogMeTT Tutorial - - - - -

    LogMeTT Tutorial

    - -

    1. LogMeTTƂ

    - -

    -LogMeTT̓^[~iG~[^TeraTerm Macrõ`[c[łBTeraTerm烊[gzXg֎OCA܂܂ȏs킹肷邱Ƃł܂BOC̎c[ƂĂTeraTerm Menu܂Assh2ڑXPW[@\AO擾@\AڑzXgƂɔzFݒȂǂݒł铙̗_܂B܂Ac[\ŃzXgƁA}NƂɊKwł邽߃T[oǗɌĂ܂BUSAݏZBorisɂJĂ܂BLogMeTTTeraTermCXg[ɕtĂ܂B -

    - - -

    2. LogMeTTłł邱

    - -

    -TeraTerm Macrog[gzXgւ̎ڑǗ邱Ƃł܂BzXgc[\œo^邱Ƃł̂ŁAzXgꍇłIɊǗ邱Ƃ”\łB܂AHvłƂł܂BA2006/11Verssion2.8(Release6)݁ATeraTerm Menuɂ悤ȃL[{[hV[gJbgɂ鑦N̂悤ȋ@\͗pł܂B -

    - - -

    3. N@

    - -

    -LogMeTTTeraTermFilej[ĂяoƂŋN邱Ƃł܂BNƁA풓vZXƂă^XNgCɃACR\܂B -

    - -
    tasktray
    - - -

    4. ݒ

    - -

    -́AۂLogMeTTgă[gzXgSSH2ɂڑݒЉ܂BȒPȑTeraTerm̎̌Ă݂ĂB -

    - -

    -1. LogMeTT̃^XNgCACR(L3.̐}ɂۈ͂jENbNāgConfigurechIB -

    - -

    -2. ݒ_CAO\BgSettingsh^ủɂAgGeneralh^u gRun at log on to WindowshɃ`FbN(}Q)WindowsOILogMeTTNB -

    - -

    -3. gSettingsh ^ủɂ gNew Connectionsh^uŁALog file creation "Start logging"ɂȂĂƁAj[NꍇIɃO擾悤ɂȂB(gTeraTermCXg[fBNg\Logs\LogMeTTj[_t.loghƂĕۑ) -

    - -
    logon
    - -

    -4. j[o[́gConnectionhgAdd ChildhIԂƁAGg’ljBʍThis computerENbNĂgAdd ChildhIłB -

    - -

    -5. gThis computerh̉ɁgUnnamed connection #1hƂACRlĵŁÃACRIgF2hL[ĖO‚B -

    - -
    add
    - -

    -6. gMacroh^uIсA[gzXgփOC邽߂̃}NLqBƂ΁A[UŒƂApX[h̓_CAO{bNXœ͂ꍇ́Â悤ȃ}NBApX[h}NɋLqĂ悢A}N̎舵ɂ͒ӂ邱ƁB
    -ZLeBɔz}N(pX[ḧÍ)ɂ‚Ă5.ZLeBɔz}Nɂ‚Q -

    - -


    ̋LqTeraTerm MacroȂ̂ŃVONH[g ' _uNH[g " ɋC‚邱ƁBLRs[ē\tƈS -

    - -
    
    -username = 'nike'
    -hostname = '192.168.1.3'
    -
    -;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
    -
    -msg = 'Enter password for user '
    -strconcat msg username
    -passwordbox msg 'Get password'
    -
    -msg = hostname
    -strconcat msg ':22 /ssh /auth=password /user='
    -strconcat msg username
    -strconcat msg ' /passwd='
    -strconcat msg inputstr
    -
    -connect msg
    -
    - -
    macro
    - -

    -7. F9L[āA}Nɓ삷邩؂B Ȃ΁AEɂApply{^ĐݒeۑB -

    - -

    -8. o^[gzXg̓^XNgC̉ENbNj[I邱ƂłB -

    - -

    -9. gPopuph^uɃbZ[WLqĂƁA -

    - -
    popup
    - -

    -sɉL̃|bvAbvbZ[W\B -

    - -
    popup
    - -

    -dvȃzXgɐڑۂAroot̓ANZX̃}NPopupŒӂ𑣂ۓɗpB|bvAbvbZ[WłOKƃ}NsACancelMacro͎sȂB -

    - -

    -10. gColorsh^uł́Aڑj[TeraTerm̔zFύXłB PopuplAdvȃzXgɐڑۓ̃j[zFςȂǂɗpB[UAzXgɔzFύX鎖Ō둀̗\hɂȂB -

    - -
    color
    - -

    -11. Schedule^uł́Aݒ肵}Ns邱ƂłB 肭}Ng߂΁AL̂悤Ȏ”\ɂȂB -

    - -
      -
    • Iɓdon/off
    • -
    • gSettingsh^úgUser Datah^uڂƑgݍ킹AQe-maildbȂǂ̎
    • -
    • 莞obNAbvAXe[^X`FbN
    • -
    - -

    -:j[̊Kw͐e珇ԂɎsĂ܂߁AqXPW[ɓĂƂ̒nec[ׂĎsBP^XNƂčsꍇ͓Ɨ邱ƁiThis computer)B܂AzXgLogMeTTsPC̎قɒӂ邱ƁB -

    - -

    -Schedulesꍇ́Aq̎OONɂ邱Ƃ𐄏B(ʼnN킩ȂȂĂ܂Ȃ悤) -

    - - -

    5. ZLeBɔz}Nɂ‚

    - -

    -̍ڂ́ATeraTerm MacroɊւTopicłB -

    - -

    -g4. ݒhŏЉ}Nł̓}NɃ[ULqĂAZLeB゠܂ǂȂƎv܂BpX[h͖͂^CvłBA[UApX[hÍt@CɕۑЉ܂B -

    - - -

    1. pX[hÍċLi[Jۑj}NOC

    - -

    -[U scott zXg remote.host pX[ht@C̕ۑ C:\mydata\filename.dat Ƃꍇ̃}NłB -

    - -
    
    -; setting
    -hostname = 'remote.host'
    -username = 'scott'
    -getpassword 'C:\mydata\filename.dat' 'usrpass' inputstr
    -
    -; connection & login
    -msg = hostname
    -strconcat msg ':22 /ssh /2 /auth=password /user='
    -strconcat msg username
    -strconcat msg ' /passwd='
    -strconcat msg inputstr
    -connect msg
    -
    - -

    -getpassword 'filepath\filename' 'ʎq' $i[ϐ -

    - -

    -i[t@Cɕ̎ʎqŃpX[hÍۑł܂B -

    - -

    -̃}ŃAŏ̈xpX[h𕷂܂ǍC:\mydata\filename.datɕۑꂽÍpX[hp邽LogMeTTj[̑IŎOC”\ɂȂ܂B -

    - - -

    2. [UIDƃpX[h𗼕ÍċLi[Jۑj}NOC

    - -

    -zXg remote.host [UIDƃpX[ht@C̕ۑ C:\mydata\filename.dat Ƃꍇ̃}NłB -

    - -
    
    -; setting
    -hostname = 'remote.host'
    -getpassword 'C:\mydata\filename.dat' 'usrid' username
    -getpassword 'C:\mydata\filename.dat' 'usrpass' inputstr
    -
    -; connection & login
    -msg = hostname
    -strconcat msg ':22 /ssh /2 /auth=password /user='
    -strconcat msg username
    -strconcat msg ' /passwd='
    -strconcat msg inputstr
    -connect msg
    -
    - -

    -getpassword 'filepath\filename' 'ʎq' $i[ϐ -

    - -

    -̃}Nł̓[UIDʎqusridƂĊi[Ă܂Bŏ̃OCɂ̓[UIDƃpX[h̗͂Ȃ΂Ȃ܂񂪁A2ڈȍ~͓lLogMeTTj[̑IŎOC”\ɂȂ܂B悤ɁAgetpassword𗘗p邱ƂŃzXgÍĂ܂Ƃ”\łATeraTerm̃qXgɉߋڑzXgcꍇ܂̂ŃZLeBlꍇ͗lXȒӂKvłBzXgÃzXgɓo^ĂIDApX[ĥׂĂÍĉBƂł}NłB -

    - - -

    3. telnet𗘗pꍇ

    - -

    -telnet(|[g23)𗘗pĐڑꍇ͐ڑ}NꕔႢ܂̂ŒӂĂB́AtelnetڑZbVmɔF؂s߂łB -

    - -
    
    -; setting
    -hostname = 'remote.host'
    -getpassword 'C:\mydata\filename.dat' 'usrid' username
    -getpassword 'C:\mydata\filename.dat' 'usrpass' inputstr
    -;; login session 
    -UsernamePrompt = 'Please login:'
    -PasswordPrompt = 'Please Enter password:'
    -
    -; connection
    -msg = hostname
    -strconcat msg ':23'
    -strconcat msg ' /nossh'
    -connect msg
    -
    -; login
    -wait   UsernamePrompt
    -sendln username
    -wait   PasswordPrompt
    -sendln inputstr
    -
    - -

    -telnetł̓OCzXg̉eɂ킹ċLqύXKv܂B(OCvvg) -

    - - -

    ÍċLi[Jۑjt@C̎舵ɂ‚

    - -

    -ۑꂽpX[ht@CSɕۊǂ邱ƂŁAƂroot[UŐڑꍇ͂̃t@CKvɂȂ悤ȉ^psƂł܂BǗ҂͍ŏɈxGŒpX[hݒ肵At@Cۑ͔jĂ܂Ă܂Ȃ̂łB -

    - -

    -L̃}N̂悤Ƀ[Jۑꍇ́AZLeB̊ϓ_X^[gAbvɃpX[hi[t@C̍폜ob`t@CĂƁAOCŏ̈xpX[hF؂KvɂȂAZLeBƗ֐̗Ȃǂ}邱Ƃł܂B -

    - -

    -SȃZLeB͂܂񂪁A@̂ɖ𗧂ĂĂB -

    - - -

    6. ŐVł̓

    - -

    -TeraTermɕtĂLogMeTT͊{IɃ[X_ł̍ŐVł𓯍悤ɂĂ܂Aʃv_Ngł̂Ń[XɂĂLogMeTT̍ŐVłɒ񋟂邱Ƃ܂BŐVł_E[h͂ -

    - -

    -܂ALogMeTT̃j[gHelphgCheck for updateshIĂŐVł”\łB -

    - - -

    7. A

    - -

    -e-mail: boris at logmett.com
    -LogMeTT web page -

    - - - diff --git a/doc/ja/html/usage/LogMeTT/color.jpg b/doc/ja/html/usage/LogMeTT/color.jpg deleted file mode 100644 index 6905ee74f..000000000 Binary files a/doc/ja/html/usage/LogMeTT/color.jpg and /dev/null differ diff --git a/doc/ja/html/usage/LogMeTT/macro.jpg b/doc/ja/html/usage/LogMeTT/macro.jpg deleted file mode 100644 index 37936b69a..000000000 Binary files a/doc/ja/html/usage/LogMeTT/macro.jpg and /dev/null differ diff --git a/doc/ja/html/usage/LogMeTT/popup.jpg b/doc/ja/html/usage/LogMeTT/popup.jpg deleted file mode 100644 index 235b4d19d..000000000 Binary files a/doc/ja/html/usage/LogMeTT/popup.jpg and /dev/null differ diff --git a/doc/ja/html/usage/LogMeTT/popup2.jpg b/doc/ja/html/usage/LogMeTT/popup2.jpg deleted file mode 100644 index f365834f0..000000000 Binary files a/doc/ja/html/usage/LogMeTT/popup2.jpg and /dev/null differ diff --git a/doc/ja/html/usage/LogMeTT/setting_add.jpg b/doc/ja/html/usage/LogMeTT/setting_add.jpg deleted file mode 100644 index 1a94a96c6..000000000 Binary files a/doc/ja/html/usage/LogMeTT/setting_add.jpg and /dev/null differ diff --git a/doc/ja/html/usage/LogMeTT/setting_log.jpg b/doc/ja/html/usage/LogMeTT/setting_log.jpg deleted file mode 100644 index 735538131..000000000 Binary files a/doc/ja/html/usage/LogMeTT/setting_log.jpg and /dev/null differ diff --git a/doc/ja/html/usage/LogMeTT/setting_logon.jpg b/doc/ja/html/usage/LogMeTT/setting_logon.jpg deleted file mode 100644 index 480e393a6..000000000 Binary files a/doc/ja/html/usage/LogMeTT/setting_logon.jpg and /dev/null differ diff --git a/doc/ja/html/usage/LogMeTT/tasktray.jpg b/doc/ja/html/usage/LogMeTT/tasktray.jpg deleted file mode 100644 index 72768efce..000000000 Binary files a/doc/ja/html/usage/LogMeTT/tasktray.jpg and /dev/null differ diff --git a/doc/ja/html/usage/TTMenu/TTMenu.html b/doc/ja/html/usage/TTMenu/TTMenu.html index 62a399a02..f4e8386a4 100644 --- a/doc/ja/html/usage/TTMenu/TTMenu.html +++ b/doc/ja/html/usage/TTMenu/TTMenu.html @@ -5,29 +5,34 @@ -Tera Term Menu Tutorial +TeraTerm Menu Tutorial -

    Tera Term Menu Tutorial

    +

    TeraTerm Menu Tutorial

    -

    1. Tera Term MenuƂ

    +

    1. TeraTerm MenuƂ

    -Tera Term Menu(ttpmenu.exe)Ƃ́ATera Term{^ꔭŋN邱Ƃł郉`[c[łB -Tera Term Menu͑Mɂ钘앨łA݂łTeraTerm Projectɂ胁eiXĂATera Term̃CXg[pbP[Wɂ܂܂Ă܂B +TeraTerm Menu(ttpmenu.exe)Ƃ́ATera Term{^ꔭŋN邱Ƃł郉`[c[łB +TeraTerm Menu͑Mɂ钘앨łA݂łTeraTerm Projectɂ胁eiXĂATera Term̃CXg[pbP[Wɂ܂܂Ă܂B

    + +NOTE: ǗҌƒ[UProcess ExplorerȂǂ̃c[pTeraTerm MenuNꂽTera Term̃[UApX[hȂǂ̈\邱Ƃ”\łB
    +Rk̃XN‹ł́ATeraTerm Menu̗pTB +

    2. WXg

    -Tera Term Menu̐ݒ́AWXg(HKEY_CURRENT_USER\Software\ShinpeiTools\TTermMenu)ɋL^܂B +TeraTerm Menu̐ݒ́AWXg(HKEY_CURRENT_USER\Software\ShinpeiTools\TTermMenu)ɋL^܂B WXgł͂ȂAinit@Cgꍇ́A炩"ttpmenu.exe"fBNg"ttpmenu.ini"i0oCgʼnjݒuĂ܂B
    NOTE: WXgf[^͎Iinit@CɃGNX|[g܂B -ɂϊXNvgpB +ɂϊXNvgpB
    +WXgAinit@Cɂ̓[UApX[hȂǂۑĂ܂̂Ŏ舵ɂ͒ӂĂB

    @@ -35,7 +40,7 @@

    Tera Term Menu Tutorial

    3. N@

    -Tera Term MenuNƁAAvP[V^XNgCɏ풓܂B^XNgC̃ACRNbNƁAj[Xg烉`[N邱Ƃł܂BENbNƁAj[Xg̓o^Tera Term Menu̓ݒsƂł܂B +TeraTerm MenuNƁAAvP[V^XNgCɏ풓܂B^XNgC̃ACRNbNƁAj[Xg烉`[N邱Ƃł܂BENbNƁAj[Xg̓o^TeraTerm Menu̓ݒsƂł܂B

    tasktray
    @@ -44,7 +49,7 @@

    Tera Term Menu Tutorial

    4. ݒ

    -߂Tera Term MenugꍇA`[o^ĂȂ̂ŁA܂̓j[Xg̍쐬s܂B^XNgC̃ACRENbNāA"List Configuration"Iт܂BɁAEɂ"Configuration"ɂāAڂ͂A{^ƁA"List Item"Ƀj[o^܂B +߂TeraTerm MenugꍇA`[o^ĂȂ̂ŁA܂̓j[Xg̍쐬s܂B^XNgC̃ACRENbNāA"List Configuration"Iт܂BɁAEɂ"Configuration"ɂāAڂ͂A{^ƁA"List Item"Ƀj[o^܂B

    Menu list
    @@ -69,7 +74,7 @@

    Tera Term Menu Tutorial

    -j[Xg̓o^ƁATera Term MenũACRNbN邱ƂŁAj[Xg\悤ɂȂATera TermeՂɋNł悤ɂȂ܂B +j[Xg̓o^ƁATeraTerm MenũACRNbN邱ƂŁAj[Xg\悤ɂȂATera TermeՂɋNł悤ɂȂ܂B

    Menu list
    diff --git a/doc/ja/html/usage/TTMenu/menulist1.png b/doc/ja/html/usage/TTMenu/menulist1.png index 6495a4327..d1e3833b0 100644 Binary files a/doc/ja/html/usage/TTMenu/menulist1.png and b/doc/ja/html/usage/TTMenu/menulist1.png differ diff --git a/doc/ja/html/usage/TTMenu/menulist2.png b/doc/ja/html/usage/TTMenu/menulist2.png index 5c3a8c0c4..cc7208f1c 100644 Binary files a/doc/ja/html/usage/TTMenu/menulist2.png and b/doc/ja/html/usage/TTMenu/menulist2.png differ diff --git a/doc/ja/html/usage/cygwin.html b/doc/ja/html/usage/cygwin.html index b6a5fb371..efbceeb31 100644 --- a/doc/ja/html/usage/cygwin.html +++ b/doc/ja/html/usage/cygwin.html @@ -13,12 +13,12 @@

    [J Cygwin ‹ Tera Term ڑł܂B
    -Cygwin ́AWindows Linux ̂悤Ȋ‹񋟂\tgEFAłB
    +Cygwin ́AWindows Linux ̂悤Ȋ‹񋟂\tgEFAłB
    Cygwin ́AI[v\[X\tgEFAłB

    -ӁFCygwin 1.5.x Windows 7 T|[gĂȂ悤łBWindows 7 ȍ~ł Cygwin 1.7.x 𗘗pĂB +ӁFCygwin 1.5.x Windows 7 T|[gĂȂ悤łBWindows 7 ȍ~ł Cygwin 1.7.x ȍ~𗘗pĂB

    @@ -79,17 +79,18 @@

    Cygterm+

    ---------------------------- -

    64bit Cygwin

    +

    32bit Cygwin 64bit Cygwin

    -64bit Cygwin ɐڑɂ 64 bit Cygwin‹ Ńrhꂽ cygterm+ vOKvłBʏTera Term̃CXg[ACXg[ĂCygwiño[W𔻒肵ēK؂Ȏst@CRs[܂B
    -CXg[̔肪삵ĂȂꍇ́A蓮 cygterm+-x86_64 tH_̎st@C Tera Term ̃CXg[tH_ɏ㏑邩ACygterm+rhĂB +32bit Cygwin ɐڑɂ 32 bit Cygwin‹ Ńrhꂽ CygTerm+ vOKvŁA64bit Cygwin ɐڑɂ 64 bit Cygwin‹ Ńrhꂽ CygTerm+ vOKvłB
    +ʏTera Term̃CXg[ACXg[ĂCygwiño[W𔻒肵ēK؂Ȏst@CRs[܂B
    +CXg[̔肪삵ĂȂꍇ́A蓮 cygterm+-i686 cygterm+-x86_64 tH_̎st@C Tera Term ̃CXg[tH_ɏ㏑邩ACygterm+rhĂB

    -

    Cygterm+rh

    +

    CygTerm+rh

    -Tera Term ɓĂst@Cɖ肪Ă܂NȂꍇ́ACygterm+ rhĂB
    +Tera Term ɓĂst@Cɖ肪Ă܂NȂꍇ́ACygTerm+ rhĂB
    ŐṼ\[XR[h cygterm+.tar.gz ƂēĂ܂B

    @@ -97,15 +98,18 @@

    64bit Cygwin

    rhɕKvȃpbP[W 32bit Cygwin + Build 64bit Cygwin binary
    on 32bit Cygwin 64bit Cygwin + Build 32bit Cygwin binary
    on 64bit Cygwin - Devel/gcc-g++
    - Devel/make
    - Devel/mingw-gcc-core - Devel/gcc-g++
    - Devel/make
    - Devel/mingw64-x86_64-gcc-core + Devel/make + + + Devel/gcc-g++ + Devel/cygwin64-gcc-g++ + Devel/gcc-g++ + Devel/cygwin32-gcc-g++ diff --git a/doc/ja/html/usage/image/teraterm_alpha.png b/doc/ja/html/usage/image/teraterm_alpha.png deleted file mode 100644 index a56b91950..000000000 Binary files a/doc/ja/html/usage/image/teraterm_alpha.png and /dev/null differ diff --git a/doc/ja/html/usage/image/teraterm_backimg.png b/doc/ja/html/usage/image/teraterm_backimg.png deleted file mode 100644 index 56b3dcec6..000000000 Binary files a/doc/ja/html/usage/image/teraterm_backimg.png and /dev/null differ diff --git a/doc/ja/html/usage/image/teraterm_eterm.png b/doc/ja/html/usage/image/teraterm_eterm.png deleted file mode 100644 index a40567f28..000000000 Binary files a/doc/ja/html/usage/image/teraterm_eterm.png and /dev/null differ diff --git a/doc/ja/html/usage/image/theme-bg-bg.png b/doc/ja/html/usage/image/theme-bg-bg.png new file mode 100644 index 000000000..6108813de Binary files /dev/null and b/doc/ja/html/usage/image/theme-bg-bg.png differ diff --git a/doc/ja/html/usage/image/theme-bg-desktop+bg.png b/doc/ja/html/usage/image/theme-bg-desktop+bg.png new file mode 100644 index 000000000..5a89f2f25 Binary files /dev/null and b/doc/ja/html/usage/image/theme-bg-desktop+bg.png differ diff --git a/doc/ja/html/usage/image/theme-bg-desktop.png b/doc/ja/html/usage/image/theme-bg-desktop.png new file mode 100644 index 000000000..fe5f106d6 Binary files /dev/null and b/doc/ja/html/usage/image/theme-bg-desktop.png differ diff --git a/doc/ja/html/usage/image/transparent-api.png b/doc/ja/html/usage/image/transparent-api.png new file mode 100644 index 000000000..33aa52b78 Binary files /dev/null and b/doc/ja/html/usage/image/transparent-api.png differ diff --git a/doc/ja/html/usage/kcodechange.html b/doc/ja/html/usage/kcodechange.html index 50c015eb5..347cc2691 100644 --- a/doc/ja/html/usage/kcodechange.html +++ b/doc/ja/html/usage/kcodechange.html @@ -29,7 +29,7 @@ KT -- MR[h ValueƂ SJIS, EUC, JIS, UTF8 󂯕t܂B KR -- MR[h - ValueƂ SJIS, EUC, JIS, UTF8, UTF8m 󂯕t܂B + ValueƂ SJIS, EUC, JIS, UTF8 󂯕t܂B diff --git a/doc/ja/html/usage/keyboard.html b/doc/ja/html/usage/keyboard.html index ad77d38c1..9b016f62d 100644 --- a/doc/ja/html/usage/keyboard.html +++ b/doc/ja/html/usage/keyboard.html @@ -16,7 +16,7 @@

    -L[{[hݒt@C邱ƂŎRɃL[ݒύX邱Ƃł܂Bڂ́AKEYCODE.TXT ǂłB +L[{[hݒt@C邱ƂŎRɃL[ݒύX邱Ƃł܂Bڂ́Aݒt@C/L[{[hݒ Tv ǂłB

    V[gJbgEL[

    @@ -32,11 +32,12 @@

    VT window

    Alt+B
    u[NM𑗏o܂B
    -
    Alt+C
    -
    }EXőINbv{[hփRs[܂B
    +
    Alt+C, Ctrl+Insert
    +
    }EXőINbv{[hփRs[܂B +AutoTextCopy Lȏꍇ́A}EXőI_ŃRs[Ă܂B
    Alt+D
    -
    ZbV𕡐܂B
    +
    ZbV𕡐܂BiSSH, telnet̂݁j
    Alt+G
    CygwinڑĂяo܂B
    @@ -59,11 +60,47 @@

    VT window

    Alt+T
    Telnet AYT (Are You There) R}h𑗏o܂BʏzXg͂Ɍĉĉ̃bZ[W𑗂ԂĂ܂BTelnet ڑ̂Ƃgpł܂B
    -
    Alt+V
    -
    Nbv{[h̒̕zXg֑o܂B
    +
    Alt+V, Shift+Insert
    +
    Nbv{[h̒̕zXg֑o܂B +}EXENbNłłB +DisablePasteMouseMButton off ɂĂꍇ́A}EX{^NbNłłB +
    + +
    Ctrl+Tab, Ctrl+Shift+Tab
    +
    Tera TermEBhE؂ւ܂B
    + +
    Ctrl+Up/Down cursor
    +
    ㉺ֈsXN[܂B
    + +
    Ctrl+PageUp/PageDown
    +
    ㉺փy[WPʃXN[܂B
    + +
    Ctrl+Home
    +
    obt@̐擪ֈړ܂B
    + +
    Ctrl+End
    +
    obt@̖ֈړ܂B
    + +
    ScrollLock
    +
    Tera TermEBhẼXN[bN/bNigOj
    + +
    Alt+Enter
    +
    EBhE̍ő剻igOj +^Cgo[ HideTitle Ŕ\ɂȂĂȂ΁A +Alt+Space ŃANeBuEBhẼReLXgj[ Alt+X łő剻ł܂B +
    + +
    F1 key
    +
    Num pad NumLockL[B
    + +
    F2 key
    +
    Num pad '/' L[B
    + +
    F3 key
    +
    Num pad '*' L[B
    -
    Ctrl+Esc
    -
    AvP[V̐؂ւ܂B
    +
    F4 key
    +
    Num pad '-' L[B
    @@ -77,7 +114,7 @@

    TEK window

    VT window Ɉړ܂B
    Alt+P
    -
    ʑŜ܂́A}EXőIꂽ̈̉摜܂B +
    ʑŜ܂́A}EXőIꂽ̈̉摜܂B
    Alt+Q ܂ Alt+F4
    TEK window ‚܂B
    @@ -88,7 +125,7 @@

    TEK window

    Alt+V
    VT window ƓB
    -
    Ctrl+Esc
    +
    Ctrl+Tab
    VT window ƓB
    diff --git a/doc/ja/html/usage/migrate_to_5.html b/doc/ja/html/usage/migrate_to_5.html new file mode 100644 index 000000000..c2280ee9f --- /dev/null +++ b/doc/ja/html/usage/migrate_to_5.html @@ -0,0 +1,187 @@ + + + + + Tera Term 5 ւ̈ڍs + + + + + +

    Tera Term 5 ɂ‚

    + Tera Term 5 Tera Term 4 Unicodei߂̃o[WłB + +

    +
      +
    • ^[~i(obt@A`AL[)Unicode +
        +
      • ̓\ł܂B
        + Tera Term 4 ł́AႦΓ{\ݒɂĂƒ͕\ł܂ł
      • +
      • ISO8859-116ɑΉ܂B
      • +
      • P[̐ݒ肪svɂȂ܂B
      • +
      +
    • +
    • Windows UI(j[A_CAO)Unicode
      + ̏ꍇłj[_CAO͐ݒ肵Ő\܂B +
        +
      • "݂̃VXeP["ȊǑɐݒ肵ꍇB
      • +
      • "[hChT|[g Unicode UTF-8 gp"Ƀ`FbNĂꍇB
      • +
      +
    • +
    • ̑Windows APIUnicodełւ̐؂ւ
      + Unicode t@Cgpł܂B +
    • +
    • }N +
        +
      • R[hUnicode(UTF-8)ɂȂ܂B
        + Tera Term 4 ACP({Windows̏ꍇftHgCP932,Shift_JIS)łB
      • +
      • _CAOȂǂGUIő\ł܂B
      • +
      +
    • +
    + +

    ‹

    +
      +
    • + ̃y[W(‹)QƂB
      + Visual Studio 2022 ŃT|[gȂ Windows o[Wł͓삵ȂȂ܂B +
    • +
    + +

    ̑

    +
      +
    • Jc[,gpCuȂ +
    • +
    • LogMeTT, TTLEditor, Collector ̓CXg[폜܂B̓\[XJĂ炸AI[v\[XCZXł܂B
    • +
    + +

    Tera Term 5 ֈڍs

    + +

    Tera Term 5 Tera Term 4 Ɠ邱Ƃł܂BƂA}Nt@Ci.TTLjւ̊֘At͂ǂ炩ɂł܂B

    + +

    ݒt@C

    + +
      +
    • Tera Term 5 Tera Term 4 p̐ݒt@Ĉ܂܎gpł܂B
    • +
        +
      • ݒt@C Unicode ɂȂ܂B +
          +
        • TERATERM.INI, KEYBOARD.CNF ̕R[h UTF-16 (with LE BOM) łB
        • +
        • cygterm.cfg ̕R[h́ACygwin 3.3.4łUTF-8łB
        • +
        +
      • +
      • Tera Term 5 UTF-16 (with LE BOM) ini t@CƂł܂Bcf. Win32API/init@C
        +
          +
        • init@C Win32API Unicode Ήłgp܂B
          + Tera Term 4 łUnicodeAPIgpĂȂ߁AShift_JISŕ\łȂ܂܂ĂƁA̍ڂ͐܂łB
        • +
        • cygterm.cfg Win32API gēǂݏĂ܂B
        • +
        +
      • +
      • Tera Term 5 ͋Nɓǂݍ TERATERM.INI UTF-16 (with LE BOM) łȂꍇATERATERM.INI I UTF-16 (with LE BOM) ɕϊ܂B
        + ϊɂ́Ãt@CobNAbv܂B
      • +
      • Tera Term 5 ͐ݒt@C UTF-16 (with LE BOM) ŕۑ܂B
      • +
      +
    • Tera Term 4 Tera Term 5 ŕۑݒt@Cǂݍ߂܂B
    • +
        +
      • Tera Term 4 UTF-16 (with LE BOM) init@Cǂݍ߂܂(Windows 2000 ȍ~)Bcf. Win32API/init@C
        + Shift_JISŕ\łȂ܂܂ĂƁA̍ڂ͐܂B
      • +
      +
    • ݒt@C̃ftHgtH_ύX܂B +
        +
      • %APPDATA%\teraterm5 (C:\Users\[username]\AppData\Roaming\teraterm5) ɂȂ܂B +
          +
        • cf. tH_ɂ‚
        • +
        • Tera Term 4 ł́Ast@CƓtH_(܂Virtual Store)łB
        • +
        • Tera Term 5 ł́A"My Documents\TERATERM.INI" ͓ǂݍ܂ȂȂ܂B
        • +
        +
      • +
      • ܂ł̐ݒpɂ Tera Term 4 ̐ݒt@CRs[ĂB +
          +
        • TERATERM.INI
        • +
        • KEYBOARD.CNF
        • +
        • cygterm.cfg
        • +
        +
      • +
      • t@CȂꍇAttermpro.exe NɃftHg̐ݒt@CRs[܂B
      • +
      +
    • +
    • ݒl̃ftHgύX܂B + +
    • +
    + + +

    }Nt@C

    + +
      +
    • t@C(gqttl)̕R[hUTF-8𐄏܂B
    • +
    • ttlt@CǂݍݎAt@C̕R[h肵UTF-8ɕϊēǂݍ݂܂B邱Ƃ܂B
      + BOMtƊmUTF-8ƂēǂݍނƂł܂B
    • +
    • gpł郉x̌̏Eϐ̌̏il,,lz,z񂻂ꂼj 256 uȂvɂȂ܂B
    • +
    • ϐ̕񒷂̏Tera Term 4Ɠ511oCgłB
    • +
    • ttlt@C̕񃊃e̕R[hUTF-8ƂȂ܂BTera Term 4łACP({‹̏ꍇShift_JIS(CP932))łB
      +
    • ϐɕƂR[hUTF-8ƂȂ܂BTera Term 4łACPłB
      +
    • Ȃǂ1̃oCg( "" 0x82,0xa0 0xe3,0x81,0x82ƂȂ)߁ATera Term 4ł̓Zbgłf[^r؂”\܂B
    • +
    • R}h̕Aʒu(index,pos)̒PʂTera Term 4ƓoCgłB
      + AR[hقȂ邽Tera Term 4Ƃ͈قȂlƂȂ܂B
    • +
    • 1\oCg󂷕񑀍sƁATera Term 4Ɠ()܂B
    • +
    • UnicodeɍȂdlAsĂ@\ꍇm点
      + ̃R}h͏C\ł +
      +
      code2str, str2code
      +
      ASCIIR[hlUnicodeR[h|Cg֕ύX
      +
      +
    • +
    + +

    vOC

    + + + + + diff --git a/doc/ja/html/usage/mouse.html b/doc/ja/html/usage/mouse.html index 653600442..774447b4e 100644 --- a/doc/ja/html/usage/mouse.html +++ b/doc/ja/html/usage/mouse.html @@ -21,36 +21,50 @@

    ^Cgo[Ń}EXzC[
    EBhẼ^Cgo[ŃzC[]ƁAEBhE̓ߒlꎞIɕύX邱Ƃł܂i̒l͕ۑł܂jB
    - EBhẼANeBuԂύXƁAݒꂽߒlɖ߂܂B
    + EBhẼANeBuԂύXƁAݒꂽߒlɖ߂܂B
    {^ŃhbO
    -
    IANbv{[hɃRs[B
    +
    I܂B
    + I𕶎ݒĂ΃Nbv{[hɃRs[܂B
    Alt L[Ȃ獶{^ŃhbO
    -
    `̗̈̕IANbv{[hɃRs[B
    +
    `̗̈̕I܂B
    + I𕶎ݒĂ΃Nbv{[hɃRs[܂B
    {^_uNbN
    -
    1IANbv{[hɃRs[B
    +
    1I܂B
    + I𕶎ݒĂ΃Nbv{[hɃRs[܂B
    + P̋؂蕶 Delimiter characters Ŏw肵܂B
    + (֘Aݒ DelimDBCS) +
    {^gvNbN
    -
    1sIANbv{[hɃRs[B
    +
    1sI܂B
    + I𕶎ݒĂ΃Nbv{[hɃRs[܂B
    + +
    NbN ̌A Shift+NbN
    +
    y[W܂eLXgIAIς݃eLXg̈̐Lkł܂Bŏ̃NbNŊJnʒuw肵A Shift+NbNŏIʒuw肵܂B
    E{^ŃhbO
    -
    IANbv{[hɃRs[AɂzXg֑oB
    - DisableMouseRButtonPaste SelectOnlyByLButton ̂Ƃɓ삷B
    +
    IANbv{[hɃRs[AɂzXg֑o܂B
    + DisableMouseRButtonPaste SelectOnlyByLButton ̂Ƃɓ삵܂B
    E{^NbN
    -
    Nbv{[h̒̕zXg֑oB
    - DisableMouseRButtonPaste ̂Ƃɓ삷B
    +
    Nbv{[h̒̕zXg֑o܂B
    + DisableMouseRButtonPaste ̂Ƃɓ삵܂B
    + +
    {^NbN
    +
    Nbv{[h̒̕zXg֑o܂B
    + DisableMouseMButtonPaste ̂Ƃɓ삵܂B
    ^Cgo[̏ō{^_uNbN
    Term size = win size̐ݒɂē삪ς܂B
    on̎
    -
    EBhẼTCYő剻܂Bɍő剻Ăꍇ́AƂ̃TCYɖ߂܂B
    +
    EBhEő剻܂Bɍő剻Ăꍇ́AƂ̃TCYɖ߂܂B
    off̎
    -
    EChETCY(EChE̎ۂ̑傫)^[~iTCY([̘_Iȉʂ̑傫)ƈقȂƂAEBhETCY^[~iTCYƓɂȂ悤ɕύX܂B̌Ax^Cgo[_uNbNƁAƂ̃EChETCYɖ߂܂B
    +
    EBhETCY(EBhE̎ۂ̑傫)^[~iTCY([̘_Iȉʂ̑傫)ƈقȂƂAEBhETCY^[~iTCYƓɂȂ悤ɕύX܂B̌Ax^Cgo[_uNbNƁAƂ̃EChETCYɖ߂܂B
    @@ -60,6 +74,11 @@

    Alt L[Ȃ獶{^ŃEBhEhbO
    ^Cgo[ȂꍇAEBhEړ܂B^Cgo[Bɂ́A[Setup] Window Hide title bar IĂB
    +
    Alt+Shift L[Ȃ獶{^ŃEBhEhbO
    +
    ^Cgo[邢̓EBhEgȂꍇAEBhETCYύX܂B +EBhEgȂɂ́A[Setup] Window No Frame IĂB +
    +
    Alt L[ȂE{^NbN
    ^Cgo[ȂꍇAEBhEŏ܂B
    @@ -72,7 +91,7 @@

    ConfirmFileDragAndDrop on ̂Ƃ
    hbvƃ_CAO\܂B
    - A_CAO "̃hbvA_CAO\Ȃ" `FbN OK ƕ\ȂȂ܂B̌ CTRL L[Ȃhbv΃_CAO\܂B
    + A_CAO "̃hbvA_CAO\Ȃ" `FbN OK ƕ\ȂȂ܂B̌ CTRL L[ȂhbvƁAӂу_CAO\܂B
    ConfirmFileDragAndDrop off ̂Ƃ
    1‚̃t@ChbvƁA_CAO\ɏ܂BftHg̏Send File (Paste content of file)łB
    @@ -131,8 +150,13 @@

    N ‚̃t@CɓKp
    `FbNĂƁAɃhbvꂽc̃t@C/tH_lɏ܂B
    ̃hbvAs
    -
    _CAO̐ݒeɋLAɃhbvꂽƂɗpi_CAO\ꍇɂ - _CAO̐ݒɔfAłȂ΃[U֊mFɓj܂B
    +
    + _CAO̐ݒeɋLAɃhbvꂽƂɗp܂B + _CAO\ꍇɂ̓_CAO̐ݒɔfA + \Ȃꍇ̓[U֊mFɓ܂B
    + ݒt@C(TERATERM.INI)ɑΉݒ荀ڂ݂͑Aۑ͂܂B
    + L̂́A̎(SCP/Send File/Paste Filename)łB +
    ̃hbvA_CAO\Ȃ
    `FbNĂƁÃt@ChbvɃ_CAO\ȂȂA @@ -140,16 +164,59 @@

    ̃`FbN{bNX ConfirmFileDragAndDrop off ̂Ƃ̂݃`FbN邱Ƃł܂B
    ̐ݒ ConfirmFileDragAndDrop Ƃ͕ʂ̐ݒłA [Setup] Save Setup ŐݒۑĂۑ܂B
    - Ƃ΁ũhbvAsv SCP I񂾂ƂɃtH_hbvȂǁA - łȂimFKvȁjꍇACTRL L[Ȃhbvꍇ́A_CAO\܂B + ̐ݒ`FbNłAƂ΁ũhbvAsv + SCP I񂾂ƂɃtH_hbvȂǏłȂimFKvȁjꍇA + CTRL L[Ȃhbvꍇɂ́Aӂу_CAO\܂B

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    ǂݍ݌Eݐ܂
    Drop type (SCP/Send File/Paste Filename)_CAO̐ݒ()Do same process, next drop on Ŋm肵Ƃ
    SCP:
      dest
    Tera Term ̐ݒ (TERATERM.INI ScpSendDir ɑΉ)Drop type SCP Ŋm肵Ƃ
    Send File:
      Binary
    Tera Term ̐ݒ (TERATERM.INI TransBin ɑΉ)Drop type Send File Ŋm肵Ƃ
    Paste Filename:
      Escape
      Separator (Space/NewLine)
    _CAO̐ݒ()Drop type Paste Filename Ŋm肵Ƃ
    Do this for the next N filesȂ
    Do same process, next drop_CAO̐ݒ()
    Do not display this dialog, next drop_CAO̐ݒ()
    -
    {^ŃhbOE{^NbN
    -
    ̃ANV̓T|[gȂȂ܂B
    +
    {^ŃhbO
    +
    ̃ANV̓T|[gȂȂ܂B

    @@ -161,10 +228,10 @@

    摜I܂B
    E{^NbN
    -
    VT window ƓB
    +
    VT window ƓłB
    -
    CtrlL[Ȃ獶{^
    -
    VT window ƓB
    +
    CtrlL[Ȃ獶{^NbN
    +
    VT window ƓłB
    diff --git a/doc/ja/html/usage/proxy.html b/doc/ja/html/usage/proxy.html index 799fcd63d..420c3810c 100644 --- a/doc/ja/html/usage/proxy.html +++ b/doc/ja/html/usage/proxy.html @@ -10,7 +10,7 @@ -

    Proxy ڑ

    +

    Proxy ڑ

    Tera Term Ŏꂽ Proxy ڑɂ‚ĉ܂B diff --git a/doc/ja/html/usage/recurringcommand.html b/doc/ja/html/usage/recurringcommand.html index 1ae00f8a8..9bb1d18b6 100644 --- a/doc/ja/html/usage/recurringcommand.html +++ b/doc/ja/html/usage/recurringcommand.html @@ -48,7 +48,7 @@ MR}h()w肵܂BR}hɈȉ̕񂪊܂܂ĂꍇAΉ镶ɒu܂ - + diff --git a/doc/ja/html/usage/shortcut.html b/doc/ja/html/usage/shortcut.html deleted file mode 100644 index 14d278c5b..000000000 --- a/doc/ja/html/usage/shortcut.html +++ /dev/null @@ -1,83 +0,0 @@ - - - - -V[gJbg - - - - - -

    V[gJbg

    - -
    -
    ScrollLock -
    Tera TermEBhẼXN[bN/bNigOj
    - -
    Ctrl + Tab, Ctrl + Shift + Tab
    -
    Tera TermEBhE̐؂ւ
    - -
    Alt + Enter
    -
    EBhE̍ő剻igOj
    - -
    Alt + Space Alt + X
    -
    EBhE̍ő剻
    - -
    Alt + N
    -
    VڑJ
    - -
    Alt + D
    -
    ZbV̕iSSH, telnet̂݁j
    - -
    Alt + G
    -
    Cygwinڑ
    - -
    Ctrl + Up/Down cursor
    -
    ㉺ֈsXN[
    - -
    Ctrl + PageUp/PageDown
    -
    ㉺փy[WPʃXN[
    - -
    Ctrl + Home
    -
    obt@̐擪ֈړ
    - -
    Ctrl + End
    -
    obt@̖ֈړ
    - -
    Alt + C, Ctrl + Insert, }EXhbO
    -
    I𕶎Nbv{[hփRs[
    - -
    Alt + V, Shift + Insert, }EXzC[{^EENbN
    -
    Nbv{[hy[Xg
    - -
    F1 key
    -
    Num pad NumLockL[
    - -
    F2 key
    -
    Num pad '/' L[
    - -
    F3 key
    -
    Num pad '*' L[
    - -
    F4 key
    -
    Num pad '-' L[
    - -
    Alt + }EXhbO
    -
    ubNI
    - -
    NbN Shift+NbN
    -
    y[W܂eLXgIAIς݃eLXg̈̐Lk
    - -
    }EXzC[{^XN[
    -
    ㉺ֈsXN[
    - -
    t@CEBhEփhbO
    -
    t@C̓e\t
    - -
    tH_EBhEփhbO
    -
    tH_̃tpX\t
    -
    - - - diff --git a/doc/ja/html/usage/ssh.html b/doc/ja/html/usage/ssh.html index f3a35995f..c2a2f339e 100644 --- a/doc/ja/html/usage/ssh.html +++ b/doc/ja/html/usage/ssh.html @@ -3,7 +3,7 @@ - SSH ڑ + SSH ڑ @@ -22,7 +22,8 @@

    - ܂ASSH ̐ڑ@ɂ + ܂ASSH ̔Fؕɂ +

    • pX[hF
    • JiƔ閧̃yAɂjF @@ -32,47 +33,98 @@
    • SSH1 ɂ rhosts F
    • SSH1 ɂ challenge/response(TIS) F
    • -
    • SHS2 ɂ keyboard-interactive F
    • +
    • SHS2 ɂ keyboard-interactive F
    +

    ܂Bł͎vƎvFؕ@ɂ‚ĐGꂽƎv܂B

    ڑ̎菇

    - Tera Term NƁA}̂悤ȃ_CAOɂ胍OC@IԂƂł܂B + Tera Term NƁA}̂悤ȃ_CAOɂڑ@IԂƂł܂B

    ڑ_CAO

    - SSH ŐڑꍇAftHgύXӏ́uSSH versionvłBڑ̃T[oɂ킹đIĂB + SSH ŐڑꍇAڑ̃T[oɂ킹āuSSH versionvIĂB

    - ڑƁAx͔Fؕ@I_CAO܂B + ڑƁAx͔Fؕ@I_CAO܂B
    + ̃_CAÕftHgl "TTSSH: Authentication Setup" _CAO{bNXŐݒ肷邱Ƃł܂B

    Fؕ@

    TTSSH ͕̔Fؕ@T|[gĂ܂AIɈ‚̔Fؕ@IKv܂B‚̔Fؕ@ɎsꍇAĕʂ̎ނ̔F؂݂邱Ƃ͂܂B
    - Ƃ OpenSSH NCAgł̓pX[hF؂ keyboard-interactive F؂̌ڂςȂ߃T[o̔FؕӎɃOCł܂ATTSSH ͂ł͂܂Bkeyboard-interactive F؂ƌJF؂T|[gĂT[oɃpX[hF؂ŃOC悤ƂĂKs܂B + Ƃ OpenSSH NCAgł̓pX[hF؂ keyboard-interactive F؂̌ڂςȂ߃T[o̔FؕӎɃOCł܂ATTSSH ͂ł͂܂Bkeyboard-interactive F؂ƌJF؂T|[gĂT[oɃpX[hF؂ŃOC悤ƂĂKs܂B

    • pX[hF؂gpꍇ́uUse plain password to log invɃ`FbN‚Ă邱ƂmFA[UƃpX[h͂܂B炪ΖOCł܂B
      pX[hM SSH pPbg͈ÍĂ̂ŁATELNET ̂悤ɃpX[hőM邱Ƃ͂܂B
    • -
    • JF؂pꍇ́Aォ2Ԗڂ́uUse RSA/DSA/ECDSA/ED25519 key to log invɃ`FbN‚AuPrivate key file:v{^Ĕ閧L[̃t@Cw肵܂B̌テ[UƔ閧L[̃pXt[Y͂ăOC܂B
      +
    • JF؂pꍇ́Aォ2Ԗڂ́uUse RSA/DSA/ECDSA/ED25519 key to log invɃ`FbN‚AuPrivate key file:v{^Ĕ閧̃t@Cw肵܂B̌テ[UƔ閧̃pXt[Y͂ăOC܂B
      OpenSSH `̂قATTSSH 2.63(Tera Term 4.76) ȍ~ł PuTTY `ESECSH(ssh.com) ` SSH2 閧ɑΉĂ܂B
    • keyboard-interactiveF؂gpꍇ́uUse keyboard-interactive to log invɃ`FbN‚A[U͂܂B
      T[õvvgƕ͂_CAO\̂ŁApX[h͂܂B
    • Pageant pĔF؂ꍇ́uUse PageantvɃ`FbN‚A[U͂܂B
    +

    [U

    +

    + ̃_CAO\ꂽƂ + ݒɂĂ炩 + [U͂܂B +

    +

    + ܂A + [U͂ĂA܂́A[U͂ē͗tH[JXړA + ݒɂăT[o[փANZX܂B +

    +

    + [U̓͗̉̃{^ƃIvVIł܂B + [U͂ĂȂꍇ́AtabL[ł̃{^ɃtH[JXړ܂B + [U͂Ăꍇ́AtabL[ŃpX[h / pXt[Y̓͗ + tH[JXړ܂B +

    +
    Use default usename
    +
    ݒ̃ftHg[U͂܂B + ftHg[Uݒ肵ĂȂꍇ͑Ił܂B +
    +
    + +
    +
    Use logon usename
    +
    Windows ̃OI[U͂܂B
    +
    +

    +

    pX[h / pXt[Y

    pX[h / pXt[Y̓͗́Aʏ̃_CAOƈႢȉ̂悤ȓƂȂ܂B

      -
    • Control + A ` Z, [, \, ], ^, _ Ő䕶 (0x01 - 0x1F) ͂ł܂B
    • +
    • Control + A ` Z, [, \, ], ^, _ Ő䕶 (0x01 - 0x1F) ͂ł܂B̓삪ftHgł
    • Control + V SYN (0x16) ̓͂ƂȂ܂̂ŁA\tɂ͗pł܂B\tsɂ Shift + Insert gpĂB
    +

    + ͗̉̃{^ƃIvVIł܂B +

    +
    Paste from clipboard
    +
    Nbv{[hpXt[Yy[Xg܂B
    + +
    Paste from clipboard and clear clipboard
    +
    Nbv{[hpXt[Yy[XgăNbv{[hɂ܂B
    + +
    Use control characters
    +
    `FbNĂƐ䕶͂邱Ƃł܂A + Control + VŃNbv{[h̃y[Xg̑͂ł܂B + `FbNĂȂƐ䕶͂ł܂񂪁A + Control + VŃNbv{[h̃y[Xg̑삪”\łB +
    + +
    Show passphrase
    +
    pXt[Y\邩Aɂ邩Ił܂
    +
    +

    ZLeBx

    @@ -116,7 +168,7 @@

    SSHFP RR

    L[_CAO

    - uKey typevŃL[̎ނIׂ܂ASSH1 vgRŎgpꍇɂ́uRSA1vASSH2 vgRŎgpꍇɂ́uRSAvuDSAvuECDSAvuED25519vI܂BIAuGeneratev{^ƃpXt[Y̓͂Â܂̂ŁAL[̃pXt[YipX[ĥ悤Ȃ́B󔒂܂łAʂɃpX[hw”\j͂܂B͂́AuSave public keyv{^AuSave private keyv{^ăL[ۑ܂Bt@C͕KvȂ΃ftHĝ܂܂ō\܂BۑIuCancelvŏI܂B + uKey typevŃL[̎ނIׂ܂ASSH1 vgRŎgpꍇɂ́uRSA1vASSH2 vgRŎgpꍇɂ́uRSAvuDSAvuECDSAvuED25519vI܂BIAuGeneratev{^ƃpXt[Y̓͂𑣂܂̂ŁAL[̃pXt[YipX[ĥ悤Ȃ́B󔒂܂łAʂɃpX[hw”\j͂܂B͂́AuSave public keyv{^AuSave private keyv{^ăL[ۑ܂Bt@C͕KvȂ΃ftHĝ܂܂ō\܂BۑIuCancelvŏI܂B

    diff --git a/doc/ja/html/usage/tips/about_tenkey.html b/doc/ja/html/usage/tips/about_tenkey.html index e5b963bbf..8f02f470d 100644 --- a/doc/ja/html/usage/tips/about_tenkey.html +++ b/doc/ja/html/usage/tips/about_tenkey.html @@ -16,7 +16,7 @@ ̂߃eL[(lL[pbh)̃L[ƂL[ɏĂ镶ƈႤ o邱Ƃ܂BVT100 L[{[h̃eL[̋@\gpKvȂA eL[𕁒ʂɎgꍇ́AL[{[hݒt@C KEYBOARD.CNF [VT numeric keypad] -̑Sڂȉ̂悤 OFF ɂĂBڂ́AKEYCODE.TXT ǂłB +̑Sڂȉ̂悤 OFF ɂĂBڂ́AL[{[hݒt@C ǂłB

    diff --git a/doc/ja/html/usage/tips/double-click.html b/doc/ja/html/usage/tips/double-click.html
    deleted file mode 100644
    index a058866ca..000000000
    --- a/doc/ja/html/usage/tips/double-click.html
    +++ /dev/null
    @@ -1,69 +0,0 @@
    -
    -
    -
    -
    -_uNbNɂPI̋؂蕶
    -
    -
    -
    -
    -
    -

    _uNbNɂPI̋؂蕶

    - -

    -}EX{^ŒP_uNbNƁA̒PI邱Ƃł܂B
    -ݒt@C [Tera Term] ZNV DelimList sȉ̂悤ɕύX邱ƂɂĒP̋؂蕶w肷邱Ƃł܂B -

    - -
    -DelimList=<؂蕶̃Xg>
    -
    - -

    -Ⴆ΁A -

    - -
    -DelimList=<>()[]
    -
    - -

    -6‚̋؂蕶 "<", ">", "(", ")", "[", "]" w肵܂B -AXy[X "$" ͂ꂼA"$20", "$24" Ƃ`Ŏw肵Ȃ΂Ȃ܂B -

    - -
    -DelimList=$20 ; Xy[X
    -
    -ȗ:
    -DelimList=$20!"#$24%&'()*+,-./:;<=>?@[\]^`{|}~
    -
    - -

    - "DelimList" sɂ́A1oCgR[h(锼p)wł܂B2oCgR[h(Sp)͋؂蕶ƂĎ舵܂B
    -2oCgR[h؂蕶ƂȂ悤ɂɂ́ADelimDBCS sȉ̂悤ɕύXĂB -

    - -
    -DelimDBCS=off
    -
    -ȗ:
    -DelimDBCS=on
    -
    - -

    -ȑÕo[W Tera Term ƒPI̎d𓯂ɂɂ́A -

    - -
    -DelimList=$20
    -DelimDBCS=off
    -
    - -

    -ƂĂB -

    - - - diff --git a/doc/ja/html/usage/tips/index.html b/doc/ja/html/usage/tips/index.html index 03dae6c5f..bda31aff5 100644 --- a/doc/ja/html/usage/tips/index.html +++ b/doc/ja/html/usage/tips/index.html @@ -29,7 +29,6 @@
  • Quick-VAN ̃qg
  • ԃzXgoRăzXgɐڑꍇ̃t@C]
  • TCP/IP ڑ 23 ȊO TCP port ԍgpꍇ̒
  • -
  • _uNbNɂPI̋؂蕶
  • C1 䕶gpȂ
  • Ȃ "Kanji-out" gp”\ɂ
  • TELNET vgRɊ֘At
  • @@ -37,6 +36,7 @@
  • OtpCv
  • IMẼqg
  • Virtual Store
  • +
  • VT100 Wrap
  • diff --git a/doc/ja/html/usage/tips/pf1-pf4key_vt100.html b/doc/ja/html/usage/tips/pf1-pf4key_vt100.html index 21066c2eb..ebd55b449 100644 --- a/doc/ja/html/usage/tips/pf1-pf4key_vt100.html +++ b/doc/ja/html/usage/tips/pf1-pf4key_vt100.html @@ -12,7 +12,7 @@

    VT100 PF1-PF4 L[

    -L[{[h̏ݒł VT100 PF1-PF4 L[̋@\̓eL[̈ԏ̗̂S‚̃L[ (IBM/PC ̏ꍇ "Num Lock", "/", "*", "-" ; PC98 ̏ꍇ "HOME CLR", "HELP" "-", "/")Ɋ蓖ĂĂ܂B F1-F4 L[Ɋ蓖Ă悤ɕύXɂ͈ȉ̂悤ɃL[{[hݒt@C KEYBOARD.CNF ĂBڂ́AKEYCODE.TXTǂłB +L[{[h̏ݒł VT100 PF1-PF4 L[̋@\̓eL[̈ԏ̗̂S‚̃L[ (IBM/PC ̏ꍇ "Num Lock", "/", "*", "-" ; PC98 ̏ꍇ "HOME CLR", "HELP" "-", "/")Ɋ蓖ĂĂ܂B F1-F4 L[Ɋ蓖Ă悤ɕύXɂ͈ȉ̂悤ɃL[{[hݒt@C KEYBOARD.CNF ĂBڂ́AL[{[hݒt@CǂłB

    diff --git a/doc/ja/html/usage/tips/teraterm_config_howto.html b/doc/ja/html/usage/tips/teraterm_config_howto.html index 97aae8299..970d17cb1 100644 --- a/doc/ja/html/usage/tips/teraterm_config_howto.html +++ b/doc/ja/html/usage/tips/teraterm_config_howto.html @@ -18,7 +18,7 @@

    ܂AL[{[hݒt@C邱ƂŎRɃL[ݒύX邱Ƃł܂B
    -ڂ́AKEYCODE.TXT ǂłB +ڂ́AKeycode ǂłB

    diff --git a/doc/ja/html/usage/tips/user-shortcutkey.html b/doc/ja/html/usage/tips/user-shortcutkey.html index f71774bfb..46b170dbc 100644 --- a/doc/ja/html/usage/tips/user-shortcutkey.html +++ b/doc/ja/html/usage/tips/user-shortcutkey.html @@ -12,7 +12,7 @@

    [U[EV[gJbgEL[

    -L[{[hݒt@C[Shortcut keys] [VT function keys] ZNV̍ڂƁAȉ̃V[gJbgEL[̍DȃL[Ɋ蓖Ă邱Ƃł܂Bڂ́AKEYCODE.TXTǂłB +L[{[hݒt@C [Shortcut keys] [VT function keys] ZNV̍ڂƁAȉ̃V[gJbgEL[̍DȃL[Ɋ蓖Ă邱Ƃł܂Bڂ́AL[{[hݒt@CǂłB

    diff --git a/doc/ja/html/usage/tips/vim.html b/doc/ja/html/usage/tips/vim.html
    index 667f38276..faa02fd58 100644
    --- a/doc/ja/html/usage/tips/vim.html
    +++ b/doc/ja/html/usage/tips/vim.html
    @@ -71,7 +71,7 @@
     
     

    ʏAzXg̃AvP[V (vim ) ́A[ŨL[͂ƃNbv{[h̓\tʂł܂B - xterm ̊g@\ł Bracketed Paste Mode 𗘗pƂʏo悤ɂȂ邽߁ANbv{[h̓\t͓ς鎖ł܂B + xterm ̊g@\ł Bracketed Paste Mode 𗘗pƂʏo悤ɂȂ邽߁ANbv{[h̓\t͓ς鎖ł܂B

    @@ -138,12 +138,6 @@ endif

    -

    Bracketed Paste mode ɂ‚

    -

    -̋@\ xterm gŁALɂȂĂƁANbv{[h̓\tɕ̑OɓʂȃV[PXtƂ̂łB
    -̓Iɂ́ADECSET 2004(<CSI>?2004h) ŗLɂȂA\tɕ̑O <ESC>200~, <ESC>201~ t悤ɂȂ܂B -

    -

    IME 𐧌䂷

    diff --git a/doc/ja/html/usage/tips/vt100_wrap.html b/doc/ja/html/usage/tips/vt100_wrap.html new file mode 100644 index 000000000..f6ba6b87a --- /dev/null +++ b/doc/ja/html/usage/tips/vt100_wrap.html @@ -0,0 +1,59 @@ + + + + +VT100 Wrap + + + + + +

    VT100 Wrap

    + +

    +ʏAꕶo͂ꍇA + +

    +1. ݂̃J[\ʒuɕo͂
    +2. J[\ʒǔɈړ
    +
    + +Ƃs܂B̓J[\sɗLꍇɂ̂܂ܓKp +ƁAȉ̂悤ɂȂ܂B(sL) + +
    +1. ݂̃J[\ʒu(s)ɕo͂
    +2. ݂̃J[\ʒuʼni(̍s)ꍇ͈sXN[ċs
    +3. ̍s̐擪ɃJ[\ړ
    +
    + +

    +ۂɂ̂悤ȓ[L̂łA̓삾Ɖʂ̉E +o͂̂Ƃ +肪L܂B + +

    +̈ VT100 ł̓J[\sɗL鎞̕o͂̓삪ȉ̂悤 +ȂĂ܂B + +

    +1. ݂̃J[\ʒu(s)ɕo͂
    +2. J[\ʒu͍ŝ܂ܕύXȂ
    +
    + +̏ԂłɈꕶo͂ƁA + +
    +3. ݂̃J[\ʒuʼni(̍s)ꍇ͈sXN[
    +4. ̍s̐擪ɃJ[\ړ
    +5. ݂̃J[\ʒu(̍s̐擪)ɕo͂
    +6. J[\̌Ɉړ
    +
    + +

    +Ƃ悤ɁAs̔s̎̏̕̕o͎ɒx +܂B + + + diff --git a/doc/ja/html/usage/tips/xmodem.html b/doc/ja/html/usage/tips/xmodem.html index 88b762ce3..cd91fb876 100644 --- a/doc/ja/html/usage/tips/xmodem.html +++ b/doc/ja/html/usage/tips/xmodem.html @@ -11,11 +11,13 @@

    XMODEM ̃qg

    +

    8bitN[

    +

    XMODEM ́A8 bit R[h ($00-$FF ׂ̕)SɒʂpȂƎgpł܂B

    -

    VA|[g̏ꍇ

    +

    VA|[g̏ꍇ

    @@ -23,7 +25,7 @@

    -

    Telnet ̏ꍇ

    +

    Telnet ̏ꍇ

    @@ -46,5 +48,17 @@ Ql: ԃzXgoRăzXgɐڑꍇ̃t@C]

    +

    t@CI[̋lߕ

    + +

    +XMODEM ̓t@C 128܂1024 bytẽubNɕĈAt@C肷邱Ƃł܂B +Mf[^128܂1024byte̔{ɂȂ܂B +

    + +

    +Ō̃ubN̑Mt@Cɂ͋lߕ܂B +lߕ͎dl$1AƂĂ܂BXMODEM̑MvOɂĂ͑̒lɂȂĂ邩܂B +

    + diff --git a/doc/ja/html/usage/tips/zmodem.html b/doc/ja/html/usage/tips/zmodem.html index 7e2118d76..5d771c837 100644 --- a/doc/ja/html/usage/tips/zmodem.html +++ b/doc/ja/html/usage/tips/zmodem.html @@ -67,9 +67,9 @@

    fʐMvO

    diff --git a/doc/ja/html/usage/transparent.html b/doc/ja/html/usage/transparent.html index a5d9a2181..541432044 100644 --- a/doc/ja/html/usage/transparent.html +++ b/doc/ja/html/usage/transparent.html @@ -3,56 +3,107 @@ -߃EBhE +look and feel ̕ύX -

    ߃EBhE

    +

    look and feel ̕ύX

    -Tera Term̓EBhE̔T|[gĂ܂B݁AEBhE2ނ̃^CvA[U͍DȕI邱Ƃł܂B +EBhEAe[}gpTera Term look and feelύXł܂BEBhEƃe[}͓ɐݒ肷邱Ƃł܂B

    -

    (1) EBhE

    + + +

    (1) EBhE

    -̋@\gƁATera Term̃EBhE𔼓ɂ邱Ƃł܂B̋@\́AWindows2000ȍ~ŗLłB
    -̐ݒ́A[Setup] Additional settings Visual ^uōs܂B
    +̋@\gƁATera Term ̃EBhE𔼓ɂ邱Ƃł܂BWindows2000ȍ~ŗLłB
    +ݒ́A[Setup] Additional settings Visual ^uōs܂B
    +x0`255͈̔͂Ŏw肷邱ƂłAlقǓx͋Ȃ܂B +ftHg255isjłB +EBhẼANeBuƔANeBueXœxwł܂B +

    -x0`255͈̔͂Ŏw肷邱ƂłAlقǓx͋Ȃ܂BftHg255isjłB +

    +^XNo[ŃzC[]ƈꎞIɓxύXł܂B

    - + +

    (2) e[}

    +

    +Tera Term̔wỉ摜A̐FꊇĕύXe[}gp邱Ƃł܂B + +

    +[Setup] Additional settings theme ^uŐݒs܂B +

    -

    (2) EtermEBhE

    +

    (2)-1 e[}/BG(wi)

    -̋@\gƁAEterm̔EBhEgp邱Ƃł܂B̋@\LɂƁATera Term̃EBhE͔AǎƎw肵摜t@C(*.jpg)ƍĕ`悳悤ɂȂ܂B
    -̋@\́A[Setup] Additional settings Visual ^uŗLɂ邩A teraterm.ini "BGEnable=on"ƕύXĂB +Tera Term ̔wiɁAfXNgbv摜(Windows̔wi摜)w摜\邱Ƃł܂BfXNgbv摜Ǝw摜uhĕ\邱Ƃł܂B

    -̂ق̐ݒɂ‚ẮuEtermEBhEvQƂĂB +e[}/BG(wi) Tera Term 4Eterm lookfeel(Etermɂ)ûłB +Eterm(GitHub)xterm̒uӐ} vt102 [G~[^[łB

    - +

    fXNgbv摜gp

    +

    + Tera Term̔wiɃfXNgbv摜\܂B +

    + -

    (3) wi摜̓\t

    +

    wi摜gp

    -Eterm lookfeelBackground Image𓯎ɗLɂ邱ƂŁA[̔wiɔCӂ̉摜\t邱Ƃł܂B
    -̏ꍇA͂܂B + Tera Term̔wiɎw肵摜\܂Bߏ񂪓摜gpł܂B

    - + + + +

    wi摜ƃfXNgbv摜gp

    + +

    + Tera Term̔wiɃfXNgbv摜Ǝw肵摜ĕ\܂B +

    + + + + +

    (2)-2 e[}/Color(FƔwiF)

    + +

    + ̐FꊇĕύXJ[e[}gp邱Ƃł܂B +

    +

    gp摜

    + diff --git a/doc/ja/html/usage/ttyrec.html b/doc/ja/html/usage/ttyrec.html index fc75d87ca..39d81de84 100644 --- a/doc/ja/html/usage/ttyrec.html +++ b/doc/ja/html/usage/ttyrec.html @@ -35,7 +35,7 @@

    -f[^` ttyrec Ɠł̂ŁATTXttyrec Ř^悵f[^ ttyplay ōĐAttyrec Ř^悵f[^ TTXttyplay ōĐ鎖”\łB +f[^` ttyrec Ɠł̂ŁATTXttyrec Ř^悵f[^ ttyplay ōĐAttyrec Ř^悵f[^ TTXttyplay ōĐ鎖”\łB

    diff --git a/doc/ja/html/usage/unicode.html b/doc/ja/html/usage/unicode.html index 3ec5b7959..3712c6ee4 100644 --- a/doc/ja/html/usage/unicode.html +++ b/doc/ja/html/usage/unicode.html @@ -11,361 +11,41 @@

    Unicodeݒ

    -

    -UTF-8sɂ́ATera TerḿuSetup[ݒ]vj[uGeneral[S]v -IсAuLanguage[]v "UTF-8", "Japanese" "Korean" -̂ꂩ֕ύX܂B -

    - -

    -Language ݒ肪 UTF-8 ̎ Japanese ɔׂĈȉ̋@\gȂ(gȂ)Ȃ܂B -

    -
      -
    • JIS, EUC, SJIS UTF-8 ȊO̕R[h
    • -
    • ISO/IEC 2022ł̓{ꕶZbg̎w
    • -
    • TTXKanjiMenu vOC
    • -
    +Unicodegpɂ́AAdditional settings / "Encoding" ^uŕR[huUTF-8vɐݒ肵܂B

    -Language "Japanese" "Korean" ̂ꂩI񂾏ꍇAɁuSetup[S]v -j[uTerminal[[]vIƏo "Terminal setup[[̐ݒ]" -_CAÓuKanji(receive)[-M]vсuKanji(transmit)[-M]v -ɂāA"UTF-8" IłBTera Term̍ċN͕Kv܂B
    - -R}hĆu/KTvсu/KRvIvVɂāA"UTF8" w肷ƁA -MюMR[h UTF-8 ݒ肷邱Ƃł܂B -

    - -

    -Tera Term͓݌vUnicodeΉɂȂĂ炸A -ȉɎ悤ɕR[h͓iϊɂȂĂ܂B -

    - -
    -UTF-8 <-----> Unicode(UTF-16LE) <-----> MBCS
    -        (1)                       (2)
    -
    - -

    -(1)ɂāAUTF-83oCg܂łϊĂȂ߁A -TQ[gyA(surrogate pair)⌋(combining character)Ȃǂɂ͑ΉĂ܂B
    - -(2)ɂāAUnicodeMBCS(Multiple Byte Character Set)̑ݕϊs߂ɁA -P[(w)𐳂ݒ肷Kv܂B -

    - -

    -Unicodeɂ郍[JCY悤ɂ邽߂ɂ́Ateraterm.init@CɃP[̐ݒ肪KvƂȂ܂BLɃTv܂B -

    - -
    -; Locale for Unicode
    -Locale = japanese
    -
    +CJK‹ł +ftHg Ambiguous Characters width 2AEmoji Characters width 2 ƂȂ܂B

    -̐ݒ́A"Terminal setup[[̐ݒ]" _CAO uLocale[P[]vłݒł܂B -

    +̑̏ꍇ +ftHg Ambiguous Characters width 1AEmoji Characters width 1 ƂȂ܂B -

    -P[ɐݒłeɂ‚ẮAL̃TCgQƂĂB -

    - +

    TTXKanjiMenuvOC

    -

    ݒ: WindowsXP ȑ̎

    +̕R[h̎̂ݎgpł܂B̕R[h͕̎\܂B
      -
    • Setup -> Terminal locale=chs ɐݒ肷
    • -
    • Setup -> Font tHg=NSimSun, Zbg=CHINESE_GB2312, TCY=9 ɐݒ肷B
    • +
    • "Japanese/UTF-8"
    • +
    • "Japanese/SJIS (CP932)"
    • +
    • "Japanese/JIS"
    • +
    • "Japanese/EUC"
    • +
    • "Korean/KS5601 (CP949)"
    • +
    • "Korean/UTF-8"
    +

    Language

    - -

    ݒ: WindowsXP č

    -
    -; Locale for Unicode
    -Locale = american
    -
    +eR[h̐擪"/"̕( "Japanese")ATera Term 5.2 ܂ő݂Ă +uSetup[ݒ]vj[uGeneral[S]v́uLanguage[]vɂȂ܂B

    -܂AMBCS\ׂɃtHg𐳂ݒ肷Kv܂B
    -uSetup[ݒ]vj[́uFont[tHg]vŁA"tHg"Ɏgp錾̕ -tHgA"Zbg" Ɏgp錾̕Zbgw肵ĂB
    - -P[уtHgݒ肳Ă΁ApWindowsœ{\A -{WindowsŊ؍\肷鎖”\łB
    -ΉĂȂ̂ŁA‚Tera TermEBhEœ{Ɗ؍𓯎 -\肷鎖͏o܂B -

    - - -

    : Mac OS X

    -

    -"UTF-8m" Mac OS X(HFS+)̃GR[fBOwłBM݂̂̃T|[głB
    -u/KRvR}hCł"UTF8m"w肷邱Ƃł܂B -

    - -

    Ql: Language Strings for Locale

    -
    V[PX M
    V[PX M
    \\ \
    \n s (LF)
    \t ^u (HT)
    - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + Tera Term ɂ́AMƎMR[ȟ͓ꂩIȂ΂ȂȂ܂B - - - - - +

    R}hC

    - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    Primary languageSublanguageLanguage string
    ChineseChinese"chinese"
    ChineseChinese (simplified)"chinese-simplified" or "chs"
    ChineseChinese (traditional)"chinese-traditional" or "cht"
    CzechCzech"csy" or "czech"
    DanishDanish"dan" or "danish"
    DutchDutch (default)"dutch" or "nld"
    DutchDutch (Belgium)"belgian", "dutch-belgian", or "nlb"
    EnglishEnglish (default)"english"
    EnglishEnglish (Australia)"australian", "ena", or "english-aus"
    EnglishEnglish (Canada)"canadian", "enc", or "english-can"
    EnglishEnglish (New Zealand)"english-nz" or "enz"
    EnglishEnglish (United Kingdom)"eng", "english-uk", or "uk"
    EnglishEnglish (United States)"american", "american english", "american-english", "english-american", "english-us", "english-usa", "enu", "us", or "usa"
    FinnishFinnish"fin" or "finnish"
    FrenchFrench (default)"fra" or "french"
    FrenchFrench (Belgium)"frb" or "french-belgian"
    FrenchFrench (Canada)"frc" or "french-canadian"
    FrenchFrench (Switzerland)"french-swiss" or "frs"
    GermanGerman (default)"deu" or "german"
    GermanGerman (Austria)"dea" or "german-austrian"
    GermanGerman (Switzerland)"des", "german-swiss", or "swiss"
    GreekGreek"ell" or "greek"
    HungarianHungarian"hun" or "hungarian"
    IcelandicIcelandic"icelandic" or "isl"
    ItalianItalian (default)"ita" or "italian"
    ItalianItalian (Switzerland)"italian-swiss" or "its"
    JapaneseJapanese"japanese" or "jpn"
    KoreanKorean"kor" or "korean"
    NorwegianNorwegian (default)"norwegian"
    NorwegianNorwegian (Bokmal)"nor" or "norwegian-bokmal"
    NorwegianNorwegian (Nynorsk)"non" or "norwegian-nynorsk"
    PolishPolish"plk" or "polish"
    PortuguesePortuguese (default)"portuguese" or "ptg"
    PortuguesePortuguese (Brazil)"portuguese-brazilian" or "ptb"
    RussianRussian (default)"rus" or "russian"
    SlovakSlovak"sky" or "slovak"
    SpanishSpanish (default)"esp" or "spanish"
    SpanishSpanish (Mexico)"esm" or "spanish-mexican"
    SpanishSpanish (Modern)"esn" or "spanish-modern"
    SwedishSwedish"sve" or "swedish"
    TurkishTurkish"trk" or "turkish"
    +R}hĆu/KTvсu/KRvIvVɂāA"UTF8" w肷ƁA +MюMR[h UTF-8 ݒ肷邱Ƃł܂B diff --git a/doc/ja/teraterm.hhc b/doc/ja/teraterm.hhc index 78f50fd58..8652e92b8 100644 --- a/doc/ja/teraterm.hhc +++ b/doc/ja/teraterm.hhc @@ -29,10 +29,15 @@

  • - + +
  • + + + +
  • @@ -53,6 +58,13 @@ +
      +
    • + + + + +
  • @@ -75,7 +87,8 @@
  • - + +
  • @@ -92,17 +105,12 @@ - +
  • -
  • - - - -
  • @@ -119,12 +127,7 @@
  • - - - - -
  • - + @@ -141,8 +144,114 @@
  • - + +
      +
    • + + + + +
    • + + + + +
    • + + + + +
    • + + + + +
    • + + + + +
    • + + + + +
    • + + + + +
    • + + + + +
    • + + + + +
    • + + + + +
    • + + + + +
    • + + + + +
    • + + + + +
    • + + + + +
    • + + + + +
    • + + + + +
    • + + + + +
    • + + + +
    • + + + + +
    • + + + + +
    • + + + + +
  • @@ -344,6 +453,73 @@ +
      +
    • + + + + +
    • + + + + +
    • + + + + +
    • + + + + +
    • + + + + +
    • + + + + +
    • + + + + +
    • + + + + +
    • + + + + +
    • + + + + +
    • + + + + +
    • + + + + +
    • + + + + +
  • @@ -513,8 +689,50 @@ +
      +
    • + + + + +
    • + + + + +
    • + + + + +
    • + + + + +
    • + + + + +
    • + + + + +
    • + + + + +
    • + + + + +
  • - + @@ -533,6 +751,11 @@ +
  • + + + +
  • @@ -540,58 +763,66 @@
    • - - + +
    • - + +
    +
  • + + + + +
    • - - - - -
    • - - - - -
    • - - + +
    • - - + +
    • - - + +
    • - - + +
    • - - + +
        +
      • + + + + +
      • + + + + +
    • - - + +
    • - - + +
    @@ -663,6 +894,11 @@ +
  • + + + +
  • @@ -750,6 +986,11 @@ +
  • + + + +
  • @@ -850,6 +1091,11 @@ +
  • + + + +
  • @@ -890,6 +1136,11 @@ +
  • + + + +
  • @@ -1404,16 +1655,31 @@ +
  • + + + +
  • +
  • + + + +
  • +
  • + + + +
  • @@ -1424,6 +1690,11 @@ +
  • + + + +
  • @@ -1684,12 +1955,17 @@
  • - + +
  • + + + +
  • diff --git a/doc/ja/teraterm.hhp b/doc/ja/teraterm.hhp index 78c1eb269..4994c9720 100755 --- a/doc/ja/teraterm.hhp +++ b/doc/ja/teraterm.hhp @@ -28,19 +28,11 @@ HlpFileXmodemSend=html\menu\file-transfer-xmodem-send.html HlpFileZmodemSend=html\menu\file-transfer-zmodem-send.html HlpFileBPlusSend=html\menu\file-transfer-bplus-send.html HlpFileQVSend=html\menu\file-transfer-qv-send.html -HlpFileChangeDir=html\menu\file-chdir.html HlpFilePrint=html\menu\file-print.html HlpSetupTerminal=html\menu\setup-terminal.html -HlpSetupTerminalRuss=html\menu\setup-terminal_ru.html -HlpSetupTerminalEn=html\menu\setup-terminal_en.html -HlpSetupTerminalJa=html\menu\setup-terminal.html -HlpSetupTerminalKo=html\menu\setup-terminal_ko.html -HlpSetupTerminalRu=html\menu\setup-terminal_ru.html -HlpSetupTerminalUtf8=html\menu\setup-terminal_utf8.html HlpSetupWindow=html\menu\setup-window.html HlpSetupFont=html\menu\setup-font.html HlpSetupKeyboard=html\menu\setup-keyboard.html -HlpSetupKeyboardRuss=html\menu\setup-keyboard_ru.html HlpSetupSerialPort=html\menu\setup-serialport.html HlpSetupTCPIP=html\menu\setup-tcpip.html HlpSetupGeneral=html\menu\setup-general.html @@ -58,9 +50,9 @@ HlpAboutRequirements=html\about\requirements.html HlpAboutEmulations=html\about\emulations.html HlpAboutHistory=html\about\history.html HlpAboutQanda=html\about\qanda.html +HlpAboutQandaConnection=html\about\qanda.html#connection HlpAboutRequests=html\about\requests.html HlpAboutContacts=html\about\contacts.html -HlpAboutJargons=html\about\jargons.html HlpAboutWriter=html\about\writer.html HlpAboutCtrlseq=html\about\ctrlseq.html HlpAboutDifference=html\about\difference.html @@ -71,7 +63,6 @@ HlpUsageShortcut=html\usage\shortcut.html HlpUsageSsh=html\usage\ssh.html HlpUsageCygwin=html\usage\cygwin.html HlpUsageProxy=html\usage\proxy.html -HlpUsageLogmettLogMetttutorial=html\usage\LogMeTT\LogMeTTTutorial.htm HlpUsageTipsIndex=html\usage\tips\index.html HlpUsageTipsConfig=html\usage\tips\teraterm_config_howto.html HlpUsageTipsLog=html\usage\tips\loging_howto.html @@ -79,15 +70,12 @@ HlpUsageTipsShortcut=html\usage\tips\user-shortcutkey.html HlpUsageTipsNumeric=html\usage\tips\about_tenkey.html HlpUsageTipsVt100=html\usage\tips\pf1-pf4key_vt100.html HlpUsageTipsPc=html\usage\tips\pc-communication.html -HlpUsageTipsNifty=html\usage\tips\nifty-serve.html -HlpUsageTipsPcvan=html\usage\tips\pc_van.html HlpUsageTipsXmodem=html\usage\tips\xmodem.html HlpUsageTipsZmodem=html\usage\tips\zmodem.html HlpUsageTipsBplus=html\usage\tips\b-plus.html HlpUsageTipsQuickvan=html\usage\tips\quick_van.html HlpUsageTipsForward=html\usage\tips\forwarding-files.html HlpUsageTipsNotport23=html\usage\tips\not_port23.html -HlpUsageTipsDoubleclick=html\usage\tips\double-click.html HlpUsageTipsNotc1char=html\usage\tips\not-c1-char.html HlpUsageTipsIncorrectkout=html\usage\tips\incorrect-kanjiout.html HlpUsageTipsAppkeypad=html\usage\tips\appkeypad.html @@ -137,6 +125,19 @@ HlpMenuSetupSshforward=html\menu\setup-sshforward.html HlpMenuSetupSshkeygen=html\menu\setup-sshkeygenerator.html HlpMenuSetupTcpip=html\menu\setup-tcpip.html HlpMenuSetupAdditional=html\menu\setup-additional.html +HlpMenuSetupAdditionalGeneral=html\menu\setup-additional-general.html +HlpMenuSetupAdditionalCopyAndPaste=html\menu\setup-additional-copy-and-paste.html +HlpMenuSetupAdditionalCoding=html\menu\setup-additional-coding.html +HlpMenuSetupAdditionalLog=html\menu\setup-additional-log.html +HlpMenuSetupAdditionalVisual=html\menu\setup-additional-visual.html +HlpMenuSetupAdditionalFont=html\menu\setup-additional-font.html +HlpMenuSetupAdditionalTheme=html\menu\setup-additional-theme.html +HlpMenuSetupAdditionalKeyboard=html\menu\setup-additional-keyboard.html +HlpMenuSetupAdditionalMouse=html\menu\setup-additional-Mouse.html +HlpMenuSetupAdditionalTCPIP=html\menu\setup-additional-tcpip.html +HlpMenuSetupAdditionalCtrlSeq=html\menu\setup-additional-ctrlseq.html +HlpMenuSetupAdditionalCygwin=html\menu\setup-additional-cygwin.html +HlpMenuSetupThemeEditor=html\menu\setup-additional-visual-theme.html HlpMenuSetupSave=html\menu\setup-save.html HlpMenuSetupRestore=html\menu\setup-restore.html HlpMenuSetupDir=html\menu\setup-directory.html @@ -176,17 +177,23 @@ HlpSetupKbd=html\setup\keyboard.html HlpSetupSshknownhosts=html\setup\knownfiles.html HlpSetupCygterm=html\setup\cygterm.html HlpSetupLang=html\setup\lng.html -HlpRefKeycode=html\reference\keycode.txt +HlpRefKeycode=html\reference\keycode.html HlpRefRe=html\reference\RE.txt -HlpRefOpenssl=html\reference\OpenSSL-LICENSE.txt +HlpRefOpenssl=html\reference\LibreSSL-LICENSE.txt HlpRefOpenssh=html\reference\OpenSSH-LICENSE.txt -HlpRefDev=html\reference\develop.txt +HlpRefDev=html\reference\develop.html +HlpRefDevEnv=html\reference\develop-environment.html +HlpRefDevBuild=html\reference\develop-build.html +HlpRefDevMemo=html\reference\develop-memo.html +HlpRefDevRelease=html\reference\develop-release.html HlpRefPutty=html\reference\PuTTY-LICENSE.txt HlpRefSource=html\reference\sourcecode.html HlpRefOniguruma=html\reference\Oniguruma-LICENSE.txt HlpRefSFMT=html\reference\SFMT-LICENSE.txt HlpRefCygterm=html\reference\CygTerm+-LICENSE.txt HlpRefZlib=html\reference\zlib-LICENSE.txt +HlpRefArgon2=html\reference\argon2-LICENSE.txt +HlpRefCjson=html\reference\cJSON-LICENSE.txt HlpMacro=html\macro\index.html HlpMacroExec=html\macro\howtorun.html HlpMacroCommandline=html\macro\commandline.html @@ -228,6 +235,7 @@ HlpMacroCommandCrc32=html\macro\command\crc32.html HlpMacroCommandCrc32File=html\macro\command\crc32.html HlpMacroCommandCygConnect=html\macro\command\cygconnect.html HlpMacroCommandDelpassword=html\macro\command\delpassword.html +HlpMacroCommandDelpassword2=html\macro\command\delpassword2.html HlpMacroCommandDirname=html\macro\command\dirname.html HlpMacroCommandDirnamebox=html\macro\command\dirnamebox.html HlpMacroCommandDisconnect=html\macro\command\disconnect.html @@ -277,10 +285,12 @@ HlpMacroCommandGetipv4addr=html\macro\command\getipv4addr.html HlpMacroCommandGetipv6addr=html\macro\command\getipv6addr.html HlpMacroCommandGetmodemstatus=html\macro\command\getmodemstatus.html HlpMacroCommandGetpassword=html\macro\command\getpassword.html +HlpMacroCommandGetpassword2=html\macro\command\getpassword2.html HlpMacroCommandGetspecialfolder=html\macro\command\getspecialfolder.html HlpMacroCommandGettime=html\macro\command\gettime.html HlpMacroCommandGettitle=html\macro\command\gettitle.html HlpMacroCommandGetttdir=html\macro\command\getttdir.html +HlpMacroCommandGetttpos=html\macro\command\getttpos.html HlpMacroCommandGetver=html\macro\command\getver.html HlpMacroCommandGoto=html\macro\command\goto.html HlpMacroCommandIfdefined=html\macro\command\ifdefined.html @@ -291,6 +301,7 @@ HlpMacroCommandInputbox=html\macro\command\inputbox.html HlpMacroCommandInt2str=html\macro\command\int2str.html HlpMacroCommandIntdim=html\macro\command\intdim.html HlpMacroCommandIsPassword=html\macro\command\ispassword.html +HlpMacroCommandIsPassword2=html\macro\command\ispassword2.html HlpMacroCommandKmtfinish=html\macro\command\kmtfinish.html HlpMacroCommandKmtget=html\macro\command\kmtget.html HlpMacroCommandKmtrecv=html\macro\command\kmtrecv.html @@ -323,6 +334,7 @@ HlpMacroCommandRotateright=html\macro\command\rotateright.html HlpMacroCommandScprecv=html\macro\command\scprecv.html HlpMacroCommandScpsend=html\macro\command\scpsend.html HlpMacroCommandSend=html\macro\command\send.html +HlpMacroCommandSendbinary=html\macro\command\sendbinary.html HlpMacroCommandSendbreak=html\macro\command\sendbreak.html HlpMacroCommandSendbroadcast=html\macro\command\sendbroadcast.html HlpMacroCommandSendfile=html\macro\command\sendfile.html @@ -331,6 +343,7 @@ HlpMacroCommandSendln=html\macro\command\sendln.html HlpMacroCommandSendlnbroadcast=html\macro\command\sendlnbroadcast.html HlpMacroCommandSendlnmulticast=html\macro\command\sendlnmulticast.html HlpMacroCommandSendmulticast=html\macro\command\sendmulticast.html +HlpMacroCommandSendtext=html\macro\command\sendtext.html HlpMacroCommandSetdate=html\macro\command\setdate.html HlpMacroCommandSetdir=html\macro\command\setdir.html HlpMacroCommandSetdlgpos=html\macro\command\setdlgpos.html @@ -344,6 +357,7 @@ HlpMacroCommandSetfileattr=html\macro\command\setfileattr.html HlpMacroCommandSetflowctrl=html\macro\command\setflowctrl.html HlpMacroCommandSetMulticastName=html\macro\command\setmulticastname.html HlpMacroCommandSetPassword=html\macro\command\setpassword.html +HlpMacroCommandSetPassword2=html\macro\command\setpassword2.html HlpMacroCommandSetrts=html\macro\command\setrts.html HlpMacroCommandSetspeed=html\macro\command\setspeed.html HlpMacroCommandSetsync=html\macro\command\setsync.html diff --git a/doc/linkchecker.bat b/doc/linkchecker.bat new file mode 100644 index 000000000..93a9f8aac --- /dev/null +++ b/doc/linkchecker.bat @@ -0,0 +1,22 @@ +@echo off +setlocal +set CUR=%~dp0 +cd /d %CUR% + +call ..\buildtools\find_perl.bat + +if not exist linkchecker.pl ( + curl https://raw.githubusercontent.com/saoyagi2/linkchecker/master/linkchecker.pl -o linkchecker.pl +) + +pushd ja\html +echo ja +%PERL% ../../linkchecker.pl . +popd + +pushd en\html +echo en +%PERL% ../../linkchecker.pl . +popd + +pause diff --git a/doc/makechm.bat b/doc/makechm.bat index 36bd2431d..938f962bf 100644 --- a/doc/makechm.bat +++ b/doc/makechm.bat @@ -10,23 +10,36 @@ if exist "%Programfiles%\HTML Help Workshop\hhc.exe" ( set HELP_COMPILER="%Programfiles%\HTML Help Workshop\hhc.exe" ) +if defined SystemRoot ( + set FIND=%SystemRoot%\system32\find.exe + set CHCP=%SystemRoot%\system32\chcp.com +) else ( + set FIND=find.exe + set CHCP=chcp.exe +) + set updated= CALL convtext.bat REM Check Japanese version Windows -chcp | find "932" > NUL -if ERRORLEVEL 1 goto English +if "%APPVEYOR%" == "True" goto JA +%CHCP% | %FIND% "932" > NUL +if NOT ERRORLEVEL 1 goto JA +%CHCP% | %FIND% "65001" > NUL +if NOT ERRORLEVEL 1 goto JA +goto English +:JA for /f "delims=" %%i in ('perl htmlhelp_update_check.pl ja teratermj.chm') do @set updated=%%i if "%updated%"=="updated" ( -perl htmlhelp_index_make.pl ja html > ja\Index.hhk +perl htmlhelp_index_make.pl ja html -o ja\Index.hhk %HELP_COMPILER% ja\teraterm.hhp ) :English for /f "delims=" %%i in ('perl htmlhelp_update_check.pl en teraterm.chm') do @set updated=%%i if "%updated%"=="updated" ( -perl htmlhelp_index_make.pl en html > en\Index.hhk +perl htmlhelp_index_make.pl en html -o en\Index.hhk %HELP_COMPILER% en\teraterm.hhp ) diff --git a/doc_internal/.gitignore b/doc_internal/.gitignore new file mode 100644 index 000000000..6d0a115dd --- /dev/null +++ b/doc_internal/.gitignore @@ -0,0 +1,2 @@ +global/ +doxygen/ diff --git a/doc_internal/CMakeLists.txt b/doc_internal/CMakeLists.txt new file mode 100644 index 000000000..853315b14 --- /dev/null +++ b/doc_internal/CMakeLists.txt @@ -0,0 +1,36 @@ +find_package(Doxygen) +message("doxygen=${DOXYGEN_EXECUTABLE}") + +if(NOT DOXYGEN_FOUND) + message(warning "doxygen not found") +else() + add_custom_target( + doxygen + COMMAND ${CMAKE_COMMAND} -P ${CMAKE_CURRENT_LIST_DIR}/doxygen.cmake + WORKING_DIRECTORY ${CMAKE_CURRENT_LIST_DIR} + ) + + set_target_properties( + doxygen + PROPERTIES FOLDER doc_internal) +endif() + + +find_program(GTAGS gtags) +find_program(HTAGS htags) +message("GTAGS=${GTAGS}") +message("HTAGS=${HTAGS}") + +if(("${GTAGS}" STREQUAL "GTAGS-NOTFOUND") OR ("${HTAGS}" STREQUAL "HTAGS-NOTFOUND")) + message(warning "global not found") +else() + add_custom_target( + global + COMMAND ${CMAKE_COMMAND} -P ${CMAKE_CURRENT_LIST_DIR}/global.cmake + WORKING_DIRECTORY ${CMAKE_CURRENT_LIST_DIR} + ) + + set_target_properties( + global + PROPERTIES FOLDER doc_internal) +endif() diff --git a/doc_internal/build.bat b/doc_internal/build.bat new file mode 100644 index 000000000..e42616cf3 --- /dev/null +++ b/doc_internal/build.bat @@ -0,0 +1,5 @@ +cd /d %~dp0 +call ..\ci_scripts\find_cmake.bat +"%CMAKE_COMMAND%" -P doxygen.cmake +"%CMAKE_COMMAND%" -P global.cmake +pause diff --git a/doc_internal/build.sh b/doc_internal/build.sh new file mode 100644 index 000000000..151289502 --- /dev/null +++ b/doc_internal/build.sh @@ -0,0 +1,5 @@ +# doxygen +cmake -P doxygen.cmake + +# global +cmake -P global.cmake diff --git a/doc_internal/doxygen.cmake b/doc_internal/doxygen.cmake new file mode 100644 index 000000000..61e71a88d --- /dev/null +++ b/doc_internal/doxygen.cmake @@ -0,0 +1,7 @@ +find_program(DOXYGEN Doxygen) +message("DOXYGEN=${DOXYGEN}") + +execute_process( + COMMAND ${DOXYGEN} Doxyfile + WORKING_DIRECTORY ${CMAKE_CURRENT_LIST_DIR}/doxygen + ) diff --git a/doc_internal/doxygen/Doxyfile b/doc_internal/doxygen/Doxyfile new file mode 100644 index 000000000..32cf6f428 --- /dev/null +++ b/doc_internal/doxygen/Doxyfile @@ -0,0 +1,2533 @@ +# Doxyfile 1.8.16 + +# This file describes the settings to be used by the documentation system +# doxygen (www.doxygen.org) for a project. +# +# All text after a double hash (##) is considered a comment and is placed in +# front of the TAG it is preceding. +# +# All text after a single hash (#) is considered a comment and will be ignored. +# The format is: +# TAG = value [value, ...] +# For lists, items can also be appended using: +# TAG += value [value, ...] +# Values that contain spaces should be placed between quotes (\" \"). + +#--------------------------------------------------------------------------- +# Project related configuration options +#--------------------------------------------------------------------------- + +# This tag specifies the encoding used for all characters in the configuration +# file that follow. The default is UTF-8 which is also the encoding used for all +# text before the first occurrence of this tag. Doxygen uses libiconv (or the +# iconv built into libc) for the transcoding. See +# https://www.gnu.org/software/libiconv/ for the list of possible encodings. +# The default value is: UTF-8. + +DOXYFILE_ENCODING = UTF-8 + +# The PROJECT_NAME tag is a single word (or a sequence of words surrounded by +# double-quotes, unless you are using Doxywizard) that should identify the +# project for which the documentation is generated. This name is used in the +# title of most generated pages and in a few other places. +# The default value is: My Project. + +PROJECT_NAME = "Tera Term" + +# The PROJECT_NUMBER tag can be used to enter a project or revision number. This +# could be handy for archiving the generated documentation or if some version +# control system is used. + +PROJECT_NUMBER = 5.000 + +# Using the PROJECT_BRIEF tag one can provide an optional one line description +# for a project that appears at the top of each page and should give viewer a +# quick idea about the purpose of the project. Keep the description short. + +PROJECT_BRIEF = "by Tera Term Project team" + +# With the PROJECT_LOGO tag one can specify a logo or an icon that is included +# in the documentation. The maximum height of the logo should not exceed 55 +# pixels and the maximum width should not exceed 200 pixels. Doxygen will copy +# the logo to the output directory. + +PROJECT_LOGO = + +# The OUTPUT_DIRECTORY tag is used to specify the (relative or absolute) path +# into which the generated documentation will be written. If a relative path is +# entered, it will be relative to the location where doxygen was started. If +# left blank the current directory will be used. + +OUTPUT_DIRECTORY = + +# If the CREATE_SUBDIRS tag is set to YES then doxygen will create 4096 sub- +# directories (in 2 levels) under the output directory of each output format and +# will distribute the generated files over these directories. Enabling this +# option can be useful when feeding doxygen a huge amount of source files, where +# putting all generated files in the same directory would otherwise causes +# performance problems for the file system. +# The default value is: NO. + +CREATE_SUBDIRS = NO + +# If the ALLOW_UNICODE_NAMES tag is set to YES, doxygen will allow non-ASCII +# characters to appear in the names of generated files. If set to NO, non-ASCII +# characters will be escaped, for example _xE3_x81_x84 will be used for Unicode +# U+3044. +# The default value is: NO. + +#ALLOW_UNICODE_NAMES = NO +ALLOW_UNICODE_NAMES = YES + +# The OUTPUT_LANGUAGE tag is used to specify the language in which all +# documentation generated by doxygen is written. Doxygen will use this +# information to generate all constant output in the proper language. +# Possible values are: Afrikaans, Arabic, Armenian, Brazilian, Catalan, Chinese, +# Chinese-Traditional, Croatian, Czech, Danish, Dutch, English (United States), +# Esperanto, Farsi (Persian), Finnish, French, German, Greek, Hungarian, +# Indonesian, Italian, Japanese, Japanese-en (Japanese with English messages), +# Korean, Korean-en (Korean with English messages), Latvian, Lithuanian, +# Macedonian, Norwegian, Persian (Farsi), Polish, Portuguese, Romanian, Russian, +# Serbian, Serbian-Cyrillic, Slovak, Slovene, Spanish, Swedish, Turkish, +# Ukrainian and Vietnamese. +# The default value is: English. + +#OUTPUT_LANGUAGE = English +OUTPUT_LANGUAGE = Japanese + +# The OUTPUT_TEXT_DIRECTION tag is used to specify the direction in which all +# documentation generated by doxygen is written. Doxygen will use this +# information to generate all generated output in the proper direction. +# Possible values are: None, LTR, RTL and Context. +# The default value is: None. + +OUTPUT_TEXT_DIRECTION = None + +# If the BRIEF_MEMBER_DESC tag is set to YES, doxygen will include brief member +# descriptions after the members that are listed in the file and class +# documentation (similar to Javadoc). Set to NO to disable this. +# The default value is: YES. + +BRIEF_MEMBER_DESC = YES + +# If the REPEAT_BRIEF tag is set to YES, doxygen will prepend the brief +# description of a member or function before the detailed description +# +# Note: If both HIDE_UNDOC_MEMBERS and BRIEF_MEMBER_DESC are set to NO, the +# brief descriptions will be completely suppressed. +# The default value is: YES. + +REPEAT_BRIEF = YES + +# This tag implements a quasi-intelligent brief description abbreviator that is +# used to form the text in various listings. Each string in this list, if found +# as the leading text of the brief description, will be stripped from the text +# and the result, after processing the whole list, is used as the annotated +# text. Otherwise, the brief description is used as-is. If left blank, the +# following values are used ($name is automatically replaced with the name of +# the entity):The $name class, The $name widget, The $name file, is, provides, +# specifies, contains, represents, a, an and the. + +ABBREVIATE_BRIEF = "The $name class" \ + "The $name widget" \ + "The $name file" \ + is \ + provides \ + specifies \ + contains \ + represents \ + a \ + an \ + the + +# If the ALWAYS_DETAILED_SEC and REPEAT_BRIEF tags are both set to YES then +# doxygen will generate a detailed section even if there is only a brief +# description. +# The default value is: NO. + +ALWAYS_DETAILED_SEC = NO + +# If the INLINE_INHERITED_MEMB tag is set to YES, doxygen will show all +# inherited members of a class in the documentation of that class as if those +# members were ordinary class members. Constructors, destructors and assignment +# operators of the base classes will not be shown. +# The default value is: NO. + +INLINE_INHERITED_MEMB = NO + +# If the FULL_PATH_NAMES tag is set to YES, doxygen will prepend the full path +# before files name in the file list and in the header files. If set to NO the +# shortest path that makes the file name unique will be used +# The default value is: YES. + +FULL_PATH_NAMES = YES + +# The STRIP_FROM_PATH tag can be used to strip a user-defined part of the path. +# Stripping is only done if one of the specified strings matches the left-hand +# part of the path. The tag can be used to show relative paths in the file list. +# If left blank the directory from which doxygen is run is used as the path to +# strip. +# +# Note that you can specify absolute paths here, but also relative paths, which +# will be relative from the directory where doxygen is started. +# This tag requires that the tag FULL_PATH_NAMES is set to YES. + +STRIP_FROM_PATH = + +# The STRIP_FROM_INC_PATH tag can be used to strip a user-defined part of the +# path mentioned in the documentation of a class, which tells the reader which +# header file to include in order to use a class. If left blank only the name of +# the header file containing the class definition is used. Otherwise one should +# specify the list of include paths that are normally passed to the compiler +# using the -I flag. + +STRIP_FROM_INC_PATH = + +# If the SHORT_NAMES tag is set to YES, doxygen will generate much shorter (but +# less readable) file names. This can be useful is your file systems doesn't +# support long names like on DOS, Mac, or CD-ROM. +# The default value is: NO. + +SHORT_NAMES = NO + +# If the JAVADOC_AUTOBRIEF tag is set to YES then doxygen will interpret the +# first line (until the first dot) of a Javadoc-style comment as the brief +# description. If set to NO, the Javadoc-style will behave just like regular Qt- +# style comments (thus requiring an explicit @brief command for a brief +# description.) +# The default value is: NO. + +JAVADOC_AUTOBRIEF = NO + +# If the JAVADOC_BANNER tag is set to YES then doxygen will interpret a line +# such as +# /*************** +# as being the beginning of a Javadoc-style comment "banner". If set to NO, the +# Javadoc-style will behave just like regular comments and it will not be +# interpreted by doxygen. +# The default value is: NO. + +JAVADOC_BANNER = NO + +# If the QT_AUTOBRIEF tag is set to YES then doxygen will interpret the first +# line (until the first dot) of a Qt-style comment as the brief description. If +# set to NO, the Qt-style will behave just like regular Qt-style comments (thus +# requiring an explicit \brief command for a brief description.) +# The default value is: NO. + +QT_AUTOBRIEF = NO + +# The MULTILINE_CPP_IS_BRIEF tag can be set to YES to make doxygen treat a +# multi-line C++ special comment block (i.e. a block of //! or /// comments) as +# a brief description. This used to be the default behavior. The new default is +# to treat a multi-line C++ comment block as a detailed description. Set this +# tag to YES if you prefer the old behavior instead. +# +# Note that setting this tag to YES also means that rational rose comments are +# not recognized any more. +# The default value is: NO. + +MULTILINE_CPP_IS_BRIEF = NO + +# If the INHERIT_DOCS tag is set to YES then an undocumented member inherits the +# documentation from any documented member that it re-implements. +# The default value is: YES. + +INHERIT_DOCS = YES + +# If the SEPARATE_MEMBER_PAGES tag is set to YES then doxygen will produce a new +# page for each member. If set to NO, the documentation of a member will be part +# of the file/class/namespace that contains it. +# The default value is: NO. + +SEPARATE_MEMBER_PAGES = NO + +# The TAB_SIZE tag can be used to set the number of spaces in a tab. Doxygen +# uses this value to replace tabs by spaces in code fragments. +# Minimum value: 1, maximum value: 16, default value: 4. + +TAB_SIZE = 4 + +# This tag can be used to specify a number of aliases that act as commands in +# the documentation. An alias has the form: +# name=value +# For example adding +# "sideeffect=@par Side Effects:\n" +# will allow you to put the command \sideeffect (or @sideeffect) in the +# documentation, which will result in a user-defined paragraph with heading +# "Side Effects:". You can put \n's in the value part of an alias to insert +# newlines (in the resulting output). You can put ^^ in the value part of an +# alias to insert a newline as if a physical newline was in the original file. +# When you need a literal { or } or , in the value part of an alias you have to +# escape them by means of a backslash (\), this can lead to conflicts with the +# commands \{ and \} for these it is advised to use the version @{ and @} or use +# a double escape (\\{ and \\}) + +ALIASES = + +# This tag can be used to specify a number of word-keyword mappings (TCL only). +# A mapping has the form "name=value". For example adding "class=itcl::class" +# will allow you to use the command class in the itcl::class meaning. + +TCL_SUBST = + +# Set the OPTIMIZE_OUTPUT_FOR_C tag to YES if your project consists of C sources +# only. Doxygen will then generate output that is more tailored for C. For +# instance, some of the names that are used will be different. The list of all +# members will be omitted, etc. +# The default value is: NO. + +OPTIMIZE_OUTPUT_FOR_C = YES + +# Set the OPTIMIZE_OUTPUT_JAVA tag to YES if your project consists of Java or +# Python sources only. Doxygen will then generate output that is more tailored +# for that language. For instance, namespaces will be presented as packages, +# qualified scopes will look different, etc. +# The default value is: NO. + +OPTIMIZE_OUTPUT_JAVA = NO + +# Set the OPTIMIZE_FOR_FORTRAN tag to YES if your project consists of Fortran +# sources. Doxygen will then generate output that is tailored for Fortran. +# The default value is: NO. + +OPTIMIZE_FOR_FORTRAN = NO + +# Set the OPTIMIZE_OUTPUT_VHDL tag to YES if your project consists of VHDL +# sources. Doxygen will then generate output that is tailored for VHDL. +# The default value is: NO. + +OPTIMIZE_OUTPUT_VHDL = NO + +# Set the OPTIMIZE_OUTPUT_SLICE tag to YES if your project consists of Slice +# sources only. Doxygen will then generate output that is more tailored for that +# language. For instance, namespaces will be presented as modules, types will be +# separated into more groups, etc. +# The default value is: NO. + +OPTIMIZE_OUTPUT_SLICE = NO + +# Doxygen selects the parser to use depending on the extension of the files it +# parses. With this tag you can assign which parser to use for a given +# extension. Doxygen has a built-in mapping, but you can override or extend it +# using this tag. The format is ext=language, where ext is a file extension, and +# language is one of the parsers supported by doxygen: IDL, Java, Javascript, +# Csharp (C#), C, C++, D, PHP, md (Markdown), Objective-C, Python, Slice, +# Fortran (fixed format Fortran: FortranFixed, free formatted Fortran: +# FortranFree, unknown formatted Fortran: Fortran. In the later case the parser +# tries to guess whether the code is fixed or free formatted code, this is the +# default for Fortran type files), VHDL, tcl. For instance to make doxygen treat +# .inc files as Fortran files (default is PHP), and .f files as C (default is +# Fortran), use: inc=Fortran f=C. +# +# Note: For files without extension you can use no_extension as a placeholder. +# +# Note that for custom extensions you also need to set FILE_PATTERNS otherwise +# the files are not read by doxygen. + +EXTENSION_MAPPING = + +# If the MARKDOWN_SUPPORT tag is enabled then doxygen pre-processes all comments +# according to the Markdown format, which allows for more readable +# documentation. See https://daringfireball.net/projects/markdown/ for details. +# The output of markdown processing is further processed by doxygen, so you can +# mix doxygen, HTML, and XML commands with Markdown formatting. Disable only in +# case of backward compatibilities issues. +# The default value is: YES. + +MARKDOWN_SUPPORT = YES + +# When the TOC_INCLUDE_HEADINGS tag is set to a non-zero value, all headings up +# to that level are automatically included in the table of contents, even if +# they do not have an id attribute. +# Note: This feature currently applies only to Markdown headings. +# Minimum value: 0, maximum value: 99, default value: 5. +# This tag requires that the tag MARKDOWN_SUPPORT is set to YES. + +TOC_INCLUDE_HEADINGS = 5 + +# When enabled doxygen tries to link words that correspond to documented +# classes, or namespaces to their corresponding documentation. Such a link can +# be prevented in individual cases by putting a % sign in front of the word or +# globally by setting AUTOLINK_SUPPORT to NO. +# The default value is: YES. + +AUTOLINK_SUPPORT = YES + +# If you use STL classes (i.e. std::string, std::vector, etc.) but do not want +# to include (a tag file for) the STL sources as input, then you should set this +# tag to YES in order to let doxygen match functions declarations and +# definitions whose arguments contain STL classes (e.g. func(std::string); +# versus func(std::string) {}). This also make the inheritance and collaboration +# diagrams that involve STL classes more complete and accurate. +# The default value is: NO. + +BUILTIN_STL_SUPPORT = NO + +# If you use Microsoft's C++/CLI language, you should set this option to YES to +# enable parsing support. +# The default value is: NO. + +CPP_CLI_SUPPORT = YES + +# Set the SIP_SUPPORT tag to YES if your project consists of sip (see: +# https://www.riverbankcomputing.com/software/sip/intro) sources only. Doxygen +# will parse them like normal C++ but will assume all classes use public instead +# of private inheritance when no explicit protection keyword is present. +# The default value is: NO. + +SIP_SUPPORT = NO + +# For Microsoft's IDL there are propget and propput attributes to indicate +# getter and setter methods for a property. Setting this option to YES will make +# doxygen to replace the get and set methods by a property in the documentation. +# This will only work if the methods are indeed getting or setting a simple +# type. If this is not the case, or you want to show the methods anyway, you +# should set this option to NO. +# The default value is: YES. + +IDL_PROPERTY_SUPPORT = YES + +# If member grouping is used in the documentation and the DISTRIBUTE_GROUP_DOC +# tag is set to YES then doxygen will reuse the documentation of the first +# member in the group (if any) for the other members of the group. By default +# all members of a group must be documented explicitly. +# The default value is: NO. + +DISTRIBUTE_GROUP_DOC = NO + +# If one adds a struct or class to a group and this option is enabled, then also +# any nested class or struct is added to the same group. By default this option +# is disabled and one has to add nested compounds explicitly via \ingroup. +# The default value is: NO. + +GROUP_NESTED_COMPOUNDS = NO + +# Set the SUBGROUPING tag to YES to allow class member groups of the same type +# (for instance a group of public functions) to be put as a subgroup of that +# type (e.g. under the Public Functions section). Set it to NO to prevent +# subgrouping. Alternatively, this can be done per class using the +# \nosubgrouping command. +# The default value is: YES. + +SUBGROUPING = YES + +# When the INLINE_GROUPED_CLASSES tag is set to YES, classes, structs and unions +# are shown inside the group in which they are included (e.g. using \ingroup) +# instead of on a separate page (for HTML and Man pages) or section (for LaTeX +# and RTF). +# +# Note that this feature does not work in combination with +# SEPARATE_MEMBER_PAGES. +# The default value is: NO. + +INLINE_GROUPED_CLASSES = NO + +# When the INLINE_SIMPLE_STRUCTS tag is set to YES, structs, classes, and unions +# with only public data fields or simple typedef fields will be shown inline in +# the documentation of the scope in which they are defined (i.e. file, +# namespace, or group documentation), provided this scope is documented. If set +# to NO, structs, classes, and unions are shown on a separate page (for HTML and +# Man pages) or section (for LaTeX and RTF). +# The default value is: NO. + +INLINE_SIMPLE_STRUCTS = NO + +# When TYPEDEF_HIDES_STRUCT tag is enabled, a typedef of a struct, union, or +# enum is documented as struct, union, or enum with the name of the typedef. So +# typedef struct TypeS {} TypeT, will appear in the documentation as a struct +# with name TypeT. When disabled the typedef will appear as a member of a file, +# namespace, or class. And the struct will be named TypeS. This can typically be +# useful for C code in case the coding convention dictates that all compound +# types are typedef'ed and only the typedef is referenced, never the tag name. +# The default value is: NO. + +TYPEDEF_HIDES_STRUCT = NO + +# The size of the symbol lookup cache can be set using LOOKUP_CACHE_SIZE. This +# cache is used to resolve symbols given their name and scope. Since this can be +# an expensive process and often the same symbol appears multiple times in the +# code, doxygen keeps a cache of pre-resolved symbols. If the cache is too small +# doxygen will become slower. If the cache is too large, memory is wasted. The +# cache size is given by this formula: 2^(16+LOOKUP_CACHE_SIZE). The valid range +# is 0..9, the default is 0, corresponding to a cache size of 2^16=65536 +# symbols. At the end of a run doxygen will report the cache usage and suggest +# the optimal cache size from a speed point of view. +# Minimum value: 0, maximum value: 9, default value: 0. + +LOOKUP_CACHE_SIZE = 0 + +#--------------------------------------------------------------------------- +# Build related configuration options +#--------------------------------------------------------------------------- + +# If the EXTRACT_ALL tag is set to YES, doxygen will assume all entities in +# documentation are documented, even if no documentation was available. Private +# class members and static file members will be hidden unless the +# EXTRACT_PRIVATE respectively EXTRACT_STATIC tags are set to YES. +# Note: This will also disable the warnings about undocumented members that are +# normally produced when WARNINGS is set to YES. +# The default value is: NO. + +EXTRACT_ALL = YES + +# If the EXTRACT_PRIVATE tag is set to YES, all private members of a class will +# be included in the documentation. +# The default value is: NO. + +EXTRACT_PRIVATE = YES + +# If the EXTRACT_PRIV_VIRTUAL tag is set to YES, documented private virtual +# methods of a class will be included in the documentation. +# The default value is: NO. + +EXTRACT_PRIV_VIRTUAL = NO + +# If the EXTRACT_PACKAGE tag is set to YES, all members with package or internal +# scope will be included in the documentation. +# The default value is: NO. + +EXTRACT_PACKAGE = NO + +# If the EXTRACT_STATIC tag is set to YES, all static members of a file will be +# included in the documentation. +# The default value is: NO. + +EXTRACT_STATIC = YES + +# If the EXTRACT_LOCAL_CLASSES tag is set to YES, classes (and structs) defined +# locally in source files will be included in the documentation. If set to NO, +# only classes defined in header files are included. Does not have any effect +# for Java sources. +# The default value is: YES. + +EXTRACT_LOCAL_CLASSES = YES + +# This flag is only useful for Objective-C code. If set to YES, local methods, +# which are defined in the implementation section but not in the interface are +# included in the documentation. If set to NO, only methods in the interface are +# included. +# The default value is: NO. + +EXTRACT_LOCAL_METHODS = NO + +# If this flag is set to YES, the members of anonymous namespaces will be +# extracted and appear in the documentation as a namespace called +# 'anonymous_namespace{file}', where file will be replaced with the base name of +# the file that contains the anonymous namespace. By default anonymous namespace +# are hidden. +# The default value is: NO. + +EXTRACT_ANON_NSPACES = NO + +# If the HIDE_UNDOC_MEMBERS tag is set to YES, doxygen will hide all +# undocumented members inside documented classes or files. If set to NO these +# members will be included in the various overviews, but no documentation +# section is generated. This option has no effect if EXTRACT_ALL is enabled. +# The default value is: NO. + +HIDE_UNDOC_MEMBERS = NO + +# If the HIDE_UNDOC_CLASSES tag is set to YES, doxygen will hide all +# undocumented classes that are normally visible in the class hierarchy. If set +# to NO, these classes will be included in the various overviews. This option +# has no effect if EXTRACT_ALL is enabled. +# The default value is: NO. + +HIDE_UNDOC_CLASSES = NO + +# If the HIDE_FRIEND_COMPOUNDS tag is set to YES, doxygen will hide all friend +# (class|struct|union) declarations. If set to NO, these declarations will be +# included in the documentation. +# The default value is: NO. + +HIDE_FRIEND_COMPOUNDS = NO + +# If the HIDE_IN_BODY_DOCS tag is set to YES, doxygen will hide any +# documentation blocks found inside the body of a function. If set to NO, these +# blocks will be appended to the function's detailed documentation block. +# The default value is: NO. + +HIDE_IN_BODY_DOCS = NO + +# The INTERNAL_DOCS tag determines if documentation that is typed after a +# \internal command is included. If the tag is set to NO then the documentation +# will be excluded. Set it to YES to include the internal documentation. +# The default value is: NO. + +INTERNAL_DOCS = NO + +# If the CASE_SENSE_NAMES tag is set to NO then doxygen will only generate file +# names in lower-case letters. If set to YES, upper-case letters are also +# allowed. This is useful if you have classes or files whose names only differ +# in case and if your file system supports case sensitive file names. Windows +# (including Cygwin) ands Mac users are advised to set this option to NO. +# The default value is: system dependent. + +CASE_SENSE_NAMES = NO + +# If the HIDE_SCOPE_NAMES tag is set to NO then doxygen will show members with +# their full class and namespace scopes in the documentation. If set to YES, the +# scope will be hidden. +# The default value is: NO. + +HIDE_SCOPE_NAMES = NO + +# If the HIDE_COMPOUND_REFERENCE tag is set to NO (default) then doxygen will +# append additional text to a page's title, such as Class Reference. If set to +# YES the compound reference will be hidden. +# The default value is: NO. + +HIDE_COMPOUND_REFERENCE= NO + +# If the SHOW_INCLUDE_FILES tag is set to YES then doxygen will put a list of +# the files that are included by a file in the documentation of that file. +# The default value is: YES. + +SHOW_INCLUDE_FILES = YES + +# If the SHOW_GROUPED_MEMB_INC tag is set to YES then Doxygen will add for each +# grouped member an include statement to the documentation, telling the reader +# which file to include in order to use the member. +# The default value is: NO. + +SHOW_GROUPED_MEMB_INC = NO + +# If the FORCE_LOCAL_INCLUDES tag is set to YES then doxygen will list include +# files with double quotes in the documentation rather than with sharp brackets. +# The default value is: NO. + +FORCE_LOCAL_INCLUDES = NO + +# If the INLINE_INFO tag is set to YES then a tag [inline] is inserted in the +# documentation for inline members. +# The default value is: YES. + +INLINE_INFO = YES + +# If the SORT_MEMBER_DOCS tag is set to YES then doxygen will sort the +# (detailed) documentation of file and class members alphabetically by member +# name. If set to NO, the members will appear in declaration order. +# The default value is: YES. + +SORT_MEMBER_DOCS = YES + +# If the SORT_BRIEF_DOCS tag is set to YES then doxygen will sort the brief +# descriptions of file, namespace and class members alphabetically by member +# name. If set to NO, the members will appear in declaration order. Note that +# this will also influence the order of the classes in the class list. +# The default value is: NO. + +SORT_BRIEF_DOCS = NO + +# If the SORT_MEMBERS_CTORS_1ST tag is set to YES then doxygen will sort the +# (brief and detailed) documentation of class members so that constructors and +# destructors are listed first. If set to NO the constructors will appear in the +# respective orders defined by SORT_BRIEF_DOCS and SORT_MEMBER_DOCS. +# Note: If SORT_BRIEF_DOCS is set to NO this option is ignored for sorting brief +# member documentation. +# Note: If SORT_MEMBER_DOCS is set to NO this option is ignored for sorting +# detailed member documentation. +# The default value is: NO. + +SORT_MEMBERS_CTORS_1ST = NO + +# If the SORT_GROUP_NAMES tag is set to YES then doxygen will sort the hierarchy +# of group names into alphabetical order. If set to NO the group names will +# appear in their defined order. +# The default value is: NO. + +SORT_GROUP_NAMES = NO + +# If the SORT_BY_SCOPE_NAME tag is set to YES, the class list will be sorted by +# fully-qualified names, including namespaces. If set to NO, the class list will +# be sorted only by class name, not including the namespace part. +# Note: This option is not very useful if HIDE_SCOPE_NAMES is set to YES. +# Note: This option applies only to the class list, not to the alphabetical +# list. +# The default value is: NO. + +SORT_BY_SCOPE_NAME = NO + +# If the STRICT_PROTO_MATCHING option is enabled and doxygen fails to do proper +# type resolution of all parameters of a function it will reject a match between +# the prototype and the implementation of a member function even if there is +# only one candidate or it is obvious which candidate to choose by doing a +# simple string match. By disabling STRICT_PROTO_MATCHING doxygen will still +# accept a match between prototype and implementation in such cases. +# The default value is: NO. + +STRICT_PROTO_MATCHING = NO + +# The GENERATE_TODOLIST tag can be used to enable (YES) or disable (NO) the todo +# list. This list is created by putting \todo commands in the documentation. +# The default value is: YES. + +GENERATE_TODOLIST = YES + +# The GENERATE_TESTLIST tag can be used to enable (YES) or disable (NO) the test +# list. This list is created by putting \test commands in the documentation. +# The default value is: YES. + +GENERATE_TESTLIST = YES + +# The GENERATE_BUGLIST tag can be used to enable (YES) or disable (NO) the bug +# list. This list is created by putting \bug commands in the documentation. +# The default value is: YES. + +GENERATE_BUGLIST = YES + +# The GENERATE_DEPRECATEDLIST tag can be used to enable (YES) or disable (NO) +# the deprecated list. This list is created by putting \deprecated commands in +# the documentation. +# The default value is: YES. + +GENERATE_DEPRECATEDLIST= YES + +# The ENABLED_SECTIONS tag can be used to enable conditional documentation +# sections, marked by \if ... \endif and \cond +# ... \endcond blocks. + +ENABLED_SECTIONS = + +# The MAX_INITIALIZER_LINES tag determines the maximum number of lines that the +# initial value of a variable or macro / define can have for it to appear in the +# documentation. If the initializer consists of more lines than specified here +# it will be hidden. Use a value of 0 to hide initializers completely. The +# appearance of the value of individual variables and macros / defines can be +# controlled using \showinitializer or \hideinitializer command in the +# documentation regardless of this setting. +# Minimum value: 0, maximum value: 10000, default value: 30. + +MAX_INITIALIZER_LINES = 30 + +# Set the SHOW_USED_FILES tag to NO to disable the list of files generated at +# the bottom of the documentation of classes and structs. If set to YES, the +# list will mention the files that were used to generate the documentation. +# The default value is: YES. + +SHOW_USED_FILES = YES + +# Set the SHOW_FILES tag to NO to disable the generation of the Files page. This +# will remove the Files entry from the Quick Index and from the Folder Tree View +# (if specified). +# The default value is: YES. + +SHOW_FILES = YES + +# Set the SHOW_NAMESPACES tag to NO to disable the generation of the Namespaces +# page. This will remove the Namespaces entry from the Quick Index and from the +# Folder Tree View (if specified). +# The default value is: YES. + +SHOW_NAMESPACES = YES + +# The FILE_VERSION_FILTER tag can be used to specify a program or script that +# doxygen should invoke to get the current version for each file (typically from +# the version control system). Doxygen will invoke the program by executing (via +# popen()) the command command input-file, where command is the value of the +# FILE_VERSION_FILTER tag, and input-file is the name of an input file provided +# by doxygen. Whatever the program writes to standard output is used as the file +# version. For an example see the documentation. + +FILE_VERSION_FILTER = + +# The LAYOUT_FILE tag can be used to specify a layout file which will be parsed +# by doxygen. The layout file controls the global structure of the generated +# output files in an output format independent way. To create the layout file +# that represents doxygen's defaults, run doxygen with the -l option. You can +# optionally specify a file name after the option, if omitted DoxygenLayout.xml +# will be used as the name of the layout file. +# +# Note that if you run doxygen from a directory containing a file called +# DoxygenLayout.xml, doxygen will parse it automatically even if the LAYOUT_FILE +# tag is left empty. + +LAYOUT_FILE = + +# The CITE_BIB_FILES tag can be used to specify one or more bib files containing +# the reference definitions. This must be a list of .bib files. The .bib +# extension is automatically appended if omitted. This requires the bibtex tool +# to be installed. See also https://en.wikipedia.org/wiki/BibTeX for more info. +# For LaTeX the style of the bibliography can be controlled using +# LATEX_BIB_STYLE. To use this feature you need bibtex and perl available in the +# search path. See also \cite for info how to create references. + +CITE_BIB_FILES = + +#--------------------------------------------------------------------------- +# Configuration options related to warning and progress messages +#--------------------------------------------------------------------------- + +# The QUIET tag can be used to turn on/off the messages that are generated to +# standard output by doxygen. If QUIET is set to YES this implies that the +# messages are off. +# The default value is: NO. + +QUIET = NO + +# The WARNINGS tag can be used to turn on/off the warning messages that are +# generated to standard error (stderr) by doxygen. If WARNINGS is set to YES +# this implies that the warnings are on. +# +# Tip: Turn warnings on while writing the documentation. +# The default value is: YES. + +WARNINGS = YES + +# If the WARN_IF_UNDOCUMENTED tag is set to YES then doxygen will generate +# warnings for undocumented members. If EXTRACT_ALL is set to YES then this flag +# will automatically be disabled. +# The default value is: YES. + +WARN_IF_UNDOCUMENTED = YES + +# If the WARN_IF_DOC_ERROR tag is set to YES, doxygen will generate warnings for +# potential errors in the documentation, such as not documenting some parameters +# in a documented function, or documenting parameters that don't exist or using +# markup commands wrongly. +# The default value is: YES. + +WARN_IF_DOC_ERROR = YES + +# This WARN_NO_PARAMDOC option can be enabled to get warnings for functions that +# are documented, but have no documentation for their parameters or return +# value. If set to NO, doxygen will only warn about wrong or incomplete +# parameter documentation, but not about the absence of documentation. If +# EXTRACT_ALL is set to YES then this flag will automatically be disabled. +# The default value is: NO. + +WARN_NO_PARAMDOC = NO + +# If the WARN_AS_ERROR tag is set to YES then doxygen will immediately stop when +# a warning is encountered. +# The default value is: NO. + +WARN_AS_ERROR = NO + +# The WARN_FORMAT tag determines the format of the warning messages that doxygen +# can produce. The string should contain the $file, $line, and $text tags, which +# will be replaced by the file and line number from which the warning originated +# and the warning text. Optionally the format may contain $version, which will +# be replaced by the version of the file (if it could be obtained via +# FILE_VERSION_FILTER) +# The default value is: $file:$line: $text. + +WARN_FORMAT = "$file:$line: $text" + +# The WARN_LOGFILE tag can be used to specify a file to which warning and error +# messages should be written. If left blank the output is written to standard +# error (stderr). + +WARN_LOGFILE = + +#--------------------------------------------------------------------------- +# Configuration options related to the input files +#--------------------------------------------------------------------------- + +# The INPUT tag is used to specify the files and/or directories that contain +# documented source files. You may enter file names like myfile.cpp or +# directories like /usr/src/myproject. Separate the files or directories with +# spaces. See also FILE_PATTERNS and EXTENSION_MAPPING +# Note: If this tag is empty the current directory is searched. + +#INPUT = ../../teraterm +INPUT = ../.. + +# This tag can be used to specify the character encoding of the source files +# that doxygen parses. Internally doxygen uses the UTF-8 encoding. Doxygen uses +# libiconv (or the iconv built into libc) for the transcoding. See the libiconv +# documentation (see: https://www.gnu.org/software/libiconv/) for the list of +# possible encodings. +# The default value is: UTF-8. + +INPUT_ENCODING = CP932 +#INPUT_ENCODING = UTF-8 # *.mdUTF-8Ȃ񂾂ǁcBOMok? + +# If the value of the INPUT tag contains directories, you can use the +# FILE_PATTERNS tag to specify one or more wildcard patterns (like *.cpp and +# *.h) to filter out the source-files in the directories. +# +# Note that for custom extensions or not directly supported extensions you also +# need to set EXTENSION_MAPPING for the extension otherwise the files are not +# read by doxygen. +# +# If left blank the following patterns are tested:*.c, *.cc, *.cxx, *.cpp, +# *.c++, *.java, *.ii, *.ixx, *.ipp, *.i++, *.inl, *.idl, *.ddl, *.odl, *.h, +# *.hh, *.hxx, *.hpp, *.h++, *.cs, *.d, *.php, *.php4, *.php5, *.phtml, *.inc, +# *.m, *.markdown, *.md, *.mm, *.dox, *.py, *.pyw, *.f90, *.f95, *.f03, *.f08, +# *.f, *.for, *.tcl, *.vhd, *.vhdl, *.ucf, *.qsf and *.ice. + +FILE_PATTERNS = *.c \ + *.cc \ + *.cpp \ + *.h + +# The RECURSIVE tag can be used to specify whether or not subdirectories should +# be searched for input files as well. +# The default value is: NO. + +RECURSIVE = YES + +# The EXCLUDE tag can be used to specify files and/or directories that should be +# excluded from the INPUT source files. This way you can easily exclude a +# subdirectory from a directory tree whose root is specified with the INPUT tag. +# +# Note that relative paths are relative to the directory from which doxygen is +# run. + +EXCLUDE = */build* */.svn/ */.git/ + +# The EXCLUDE_SYMLINKS tag can be used to select whether or not files or +# directories that are symbolic links (a Unix file system feature) are excluded +# from the input. +# The default value is: NO. + +EXCLUDE_SYMLINKS = NO + +# If the value of the INPUT tag contains directories, you can use the +# EXCLUDE_PATTERNS tag to specify one or more wildcard patterns to exclude +# certain files from those directories. +# +# Note that the wildcards are matched against the file with absolute path, so to +# exclude all test directories for example use the pattern */test/* + +EXCLUDE_PATTERNS = */build*/* +EXCLUDE_PATTERNS += */libs/* +EXCLUDE_PATTERNS += *.tbl + +# The EXCLUDE_SYMBOLS tag can be used to specify one or more symbol names +# (namespaces, classes, functions, etc.) that should be excluded from the +# output. The symbol name can be a fully qualified name, a word, or if the +# wildcard * is used, a substring. Examples: ANamespace, AClass, +# AClass::ANamespace, ANamespace::*Test +# +# Note that the wildcards are matched against the file with absolute path, so to +# exclude all test directories use the pattern */test/* + +EXCLUDE_SYMBOLS = + +# The EXAMPLE_PATH tag can be used to specify one or more files or directories +# that contain example code fragments that are included (see the \include +# command). + +EXAMPLE_PATH = + +# If the value of the EXAMPLE_PATH tag contains directories, you can use the +# EXAMPLE_PATTERNS tag to specify one or more wildcard pattern (like *.cpp and +# *.h) to filter out the source-files in the directories. If left blank all +# files are included. + +EXAMPLE_PATTERNS = * + +# If the EXAMPLE_RECURSIVE tag is set to YES then subdirectories will be +# searched for input files to be used with the \include or \dontinclude commands +# irrespective of the value of the RECURSIVE tag. +# The default value is: NO. + +EXAMPLE_RECURSIVE = + +# The IMAGE_PATH tag can be used to specify one or more files or directories +# that contain images that are to be included in the documentation (see the +# \image command). + +IMAGE_PATH = + +# The INPUT_FILTER tag can be used to specify a program that doxygen should +# invoke to filter for each input file. Doxygen will invoke the filter program +# by executing (via popen()) the command: +# +# +# +# where is the value of the INPUT_FILTER tag, and is the +# name of an input file. Doxygen will then use the output that the filter +# program writes to standard output. If FILTER_PATTERNS is specified, this tag +# will be ignored. +# +# Note that the filter must not add or remove lines; it is applied before the +# code is scanned, but not when the output code is generated. If lines are added +# or removed, the anchors will not be placed correctly. +# +# Note that for custom extensions or not directly supported extensions you also +# need to set EXTENSION_MAPPING for the extension otherwise the files are not +# properly processed by doxygen. + +INPUT_FILTER = + +# The FILTER_PATTERNS tag can be used to specify filters on a per file pattern +# basis. Doxygen will compare the file name with each pattern and apply the +# filter if there is a match. The filters are a list of the form: pattern=filter +# (like *.cpp=my_cpp_filter). See INPUT_FILTER for further information on how +# filters are used. If the FILTER_PATTERNS tag is empty or if none of the +# patterns match the file name, INPUT_FILTER is applied. +# +# Note that for custom extensions or not directly supported extensions you also +# need to set EXTENSION_MAPPING for the extension otherwise the files are not +# properly processed by doxygen. + +FILTER_PATTERNS = + +# If the FILTER_SOURCE_FILES tag is set to YES, the input filter (if set using +# INPUT_FILTER) will also be used to filter the input files that are used for +# producing the source files to browse (i.e. when SOURCE_BROWSER is set to YES). +# The default value is: NO. + +FILTER_SOURCE_FILES = NO + +# The FILTER_SOURCE_PATTERNS tag can be used to specify source filters per file +# pattern. A pattern will override the setting for FILTER_PATTERN (if any) and +# it is also possible to disable source filtering for a specific pattern using +# *.ext= (so without naming a filter). +# This tag requires that the tag FILTER_SOURCE_FILES is set to YES. + +FILTER_SOURCE_PATTERNS = + +# If the USE_MDFILE_AS_MAINPAGE tag refers to the name of a markdown file that +# is part of the input, its contents will be placed on the main page +# (index.html). This can be useful if you have a project on for instance GitHub +# and want to reuse the introduction page also for the doxygen output. + +USE_MDFILE_AS_MAINPAGE = + +#--------------------------------------------------------------------------- +# Configuration options related to source browsing +#--------------------------------------------------------------------------- + +# If the SOURCE_BROWSER tag is set to YES then a list of source files will be +# generated. Documented entities will be cross-referenced with these sources. +# +# Note: To get rid of all source code in the generated output, make sure that +# also VERBATIM_HEADERS is set to NO. +# The default value is: NO. + +#SOURCE_BROWSER = NO +SOURCE_BROWSER = YES + +# Setting the INLINE_SOURCES tag to YES will include the body of functions, +# classes and enums directly into the documentation. +# The default value is: NO. + +INLINE_SOURCES = NO + +# Setting the STRIP_CODE_COMMENTS tag to YES will instruct doxygen to hide any +# special comment blocks from generated source code fragments. Normal C, C++ and +# Fortran comments will always remain visible. +# The default value is: YES. + +STRIP_CODE_COMMENTS = NO + +# If the REFERENCED_BY_RELATION tag is set to YES then for each documented +# entity all documented functions referencing it will be listed. +# The default value is: NO. + +REFERENCED_BY_RELATION = NO + +# If the REFERENCES_RELATION tag is set to YES then for each documented function +# all documented entities called/used by that function will be listed. +# The default value is: NO. + +REFERENCES_RELATION = NO + +# If the REFERENCES_LINK_SOURCE tag is set to YES and SOURCE_BROWSER tag is set +# to YES then the hyperlinks from functions in REFERENCES_RELATION and +# REFERENCED_BY_RELATION lists will link to the source code. Otherwise they will +# link to the documentation. +# The default value is: YES. + +REFERENCES_LINK_SOURCE = YES + +# If SOURCE_TOOLTIPS is enabled (the default) then hovering a hyperlink in the +# source code will show a tooltip with additional information such as prototype, +# brief description and links to the definition and documentation. Since this +# will make the HTML file larger and loading of large files a bit slower, you +# can opt to disable this feature. +# The default value is: YES. +# This tag requires that the tag SOURCE_BROWSER is set to YES. + +SOURCE_TOOLTIPS = YES + +# If the USE_HTAGS tag is set to YES then the references to source code will +# point to the HTML generated by the htags(1) tool instead of doxygen built-in +# source browser. The htags tool is part of GNU's global source tagging system +# (see https://www.gnu.org/software/global/global.html). You will need version +# 4.8.6 or higher. +# +# To use it do the following: +# - Install the latest version of global +# - Enable SOURCE_BROWSER and USE_HTAGS in the configuration file +# - Make sure the INPUT points to the root of the source tree +# - Run doxygen as normal +# +# Doxygen will invoke htags (and that will in turn invoke gtags), so these +# tools must be available from the command line (i.e. in the search path). +# +# The result: instead of the source browser generated by doxygen, the links to +# source code will now point to the output of htags. +# The default value is: NO. +# This tag requires that the tag SOURCE_BROWSER is set to YES. + +USE_HTAGS = NO + +# If the VERBATIM_HEADERS tag is set the YES then doxygen will generate a +# verbatim copy of the header file for each class for which an include is +# specified. Set to NO to disable this. +# See also: Section \class. +# The default value is: YES. + +VERBATIM_HEADERS = YES + +# If the CLANG_ASSISTED_PARSING tag is set to YES then doxygen will use the +# clang parser (see: http://clang.llvm.org/) for more accurate parsing at the +# cost of reduced performance. This can be particularly helpful with template +# rich C++ code for which doxygen's built-in parser lacks the necessary type +# information. +# Note: The availability of this option depends on whether or not doxygen was +# generated with the -Duse_libclang=ON option for CMake. +# The default value is: NO. + +CLANG_ASSISTED_PARSING = NO + +# If clang assisted parsing is enabled you can provide the compiler with command +# line options that you would normally use when invoking the compiler. Note that +# the include paths will already be set by doxygen for the files and directories +# specified with INPUT and INCLUDE_PATH. +# This tag requires that the tag CLANG_ASSISTED_PARSING is set to YES. + +CLANG_OPTIONS = + +# If clang assisted parsing is enabled you can provide the clang parser with the +# path to the compilation database (see: +# http://clang.llvm.org/docs/HowToSetupToolingForLLVM.html) used when the files +# were built. This is equivalent to specifying the "-p" option to a clang tool, +# such as clang-check. These options will then be passed to the parser. +# Note: The availability of this option depends on whether or not doxygen was +# generated with the -Duse_libclang=ON option for CMake. + +CLANG_DATABASE_PATH = + +#--------------------------------------------------------------------------- +# Configuration options related to the alphabetical class index +#--------------------------------------------------------------------------- + +# If the ALPHABETICAL_INDEX tag is set to YES, an alphabetical index of all +# compounds will be generated. Enable this if the project contains a lot of +# classes, structs, unions or interfaces. +# The default value is: YES. + +ALPHABETICAL_INDEX = YES + +# The COLS_IN_ALPHA_INDEX tag can be used to specify the number of columns in +# which the alphabetical index list will be split. +# Minimum value: 1, maximum value: 20, default value: 5. +# This tag requires that the tag ALPHABETICAL_INDEX is set to YES. + +COLS_IN_ALPHA_INDEX = 5 + +# In case all classes in a project start with a common prefix, all classes will +# be put under the same header in the alphabetical index. The IGNORE_PREFIX tag +# can be used to specify a prefix (or a list of prefixes) that should be ignored +# while generating the index headers. +# This tag requires that the tag ALPHABETICAL_INDEX is set to YES. + +IGNORE_PREFIX = + +#--------------------------------------------------------------------------- +# Configuration options related to the HTML output +#--------------------------------------------------------------------------- + +# If the GENERATE_HTML tag is set to YES, doxygen will generate HTML output +# The default value is: YES. + +GENERATE_HTML = YES + +# The HTML_OUTPUT tag is used to specify where the HTML docs will be put. If a +# relative path is entered the value of OUTPUT_DIRECTORY will be put in front of +# it. +# The default directory is: html. +# This tag requires that the tag GENERATE_HTML is set to YES. + +HTML_OUTPUT = html + +# The HTML_FILE_EXTENSION tag can be used to specify the file extension for each +# generated HTML page (for example: .htm, .php, .asp). +# The default value is: .html. +# This tag requires that the tag GENERATE_HTML is set to YES. + +HTML_FILE_EXTENSION = .html + +# The HTML_HEADER tag can be used to specify a user-defined HTML header file for +# each generated HTML page. If the tag is left blank doxygen will generate a +# standard header. +# +# To get valid HTML the header file that includes any scripts and style sheets +# that doxygen needs, which is dependent on the configuration options used (e.g. +# the setting GENERATE_TREEVIEW). It is highly recommended to start with a +# default header using +# doxygen -w html new_header.html new_footer.html new_stylesheet.css +# YourConfigFile +# and then modify the file new_header.html. See also section "Doxygen usage" +# for information on how to generate the default header that doxygen normally +# uses. +# Note: The header is subject to change so you typically have to regenerate the +# default header when upgrading to a newer version of doxygen. For a description +# of the possible markers and block names see the documentation. +# This tag requires that the tag GENERATE_HTML is set to YES. + +HTML_HEADER = + +# The HTML_FOOTER tag can be used to specify a user-defined HTML footer for each +# generated HTML page. If the tag is left blank doxygen will generate a standard +# footer. See HTML_HEADER for more information on how to generate a default +# footer and what special commands can be used inside the footer. See also +# section "Doxygen usage" for information on how to generate the default footer +# that doxygen normally uses. +# This tag requires that the tag GENERATE_HTML is set to YES. + +HTML_FOOTER = + +# The HTML_STYLESHEET tag can be used to specify a user-defined cascading style +# sheet that is used by each HTML page. It can be used to fine-tune the look of +# the HTML output. If left blank doxygen will generate a default style sheet. +# See also section "Doxygen usage" for information on how to generate the style +# sheet that doxygen normally uses. +# Note: It is recommended to use HTML_EXTRA_STYLESHEET instead of this tag, as +# it is more robust and this tag (HTML_STYLESHEET) will in the future become +# obsolete. +# This tag requires that the tag GENERATE_HTML is set to YES. + +HTML_STYLESHEET = + +# The HTML_EXTRA_STYLESHEET tag can be used to specify additional user-defined +# cascading style sheets that are included after the standard style sheets +# created by doxygen. Using this option one can overrule certain style aspects. +# This is preferred over using HTML_STYLESHEET since it does not replace the +# standard style sheet and is therefore more robust against future updates. +# Doxygen will copy the style sheet files to the output directory. +# Note: The order of the extra style sheet files is of importance (e.g. the last +# style sheet in the list overrules the setting of the previous ones in the +# list). For an example see the documentation. +# This tag requires that the tag GENERATE_HTML is set to YES. + +HTML_EXTRA_STYLESHEET = + +# The HTML_EXTRA_FILES tag can be used to specify one or more extra images or +# other source files which should be copied to the HTML output directory. Note +# that these files will be copied to the base HTML output directory. Use the +# $relpath^ marker in the HTML_HEADER and/or HTML_FOOTER files to load these +# files. In the HTML_STYLESHEET file, use the file name only. Also note that the +# files will be copied as-is; there are no commands or markers available. +# This tag requires that the tag GENERATE_HTML is set to YES. + +HTML_EXTRA_FILES = + +# The HTML_COLORSTYLE_HUE tag controls the color of the HTML output. Doxygen +# will adjust the colors in the style sheet and background images according to +# this color. Hue is specified as an angle on a colorwheel, see +# https://en.wikipedia.org/wiki/Hue for more information. For instance the value +# 0 represents red, 60 is yellow, 120 is green, 180 is cyan, 240 is blue, 300 +# purple, and 360 is red again. +# Minimum value: 0, maximum value: 359, default value: 220. +# This tag requires that the tag GENERATE_HTML is set to YES. + +HTML_COLORSTYLE_HUE = 220 + +# The HTML_COLORSTYLE_SAT tag controls the purity (or saturation) of the colors +# in the HTML output. For a value of 0 the output will use grayscales only. A +# value of 255 will produce the most vivid colors. +# Minimum value: 0, maximum value: 255, default value: 100. +# This tag requires that the tag GENERATE_HTML is set to YES. + +HTML_COLORSTYLE_SAT = 100 + +# The HTML_COLORSTYLE_GAMMA tag controls the gamma correction applied to the +# luminance component of the colors in the HTML output. Values below 100 +# gradually make the output lighter, whereas values above 100 make the output +# darker. The value divided by 100 is the actual gamma applied, so 80 represents +# a gamma of 0.8, The value 220 represents a gamma of 2.2, and 100 does not +# change the gamma. +# Minimum value: 40, maximum value: 240, default value: 80. +# This tag requires that the tag GENERATE_HTML is set to YES. + +HTML_COLORSTYLE_GAMMA = 80 + +# If the HTML_TIMESTAMP tag is set to YES then the footer of each generated HTML +# page will contain the date and time when the page was generated. Setting this +# to YES can help to show when doxygen was last run and thus if the +# documentation is up to date. +# The default value is: NO. +# This tag requires that the tag GENERATE_HTML is set to YES. + +HTML_TIMESTAMP = NO + +# If the HTML_DYNAMIC_MENUS tag is set to YES then the generated HTML +# documentation will contain a main index with vertical navigation menus that +# are dynamically created via Javascript. If disabled, the navigation index will +# consists of multiple levels of tabs that are statically embedded in every HTML +# page. Disable this option to support browsers that do not have Javascript, +# like the Qt help browser. +# The default value is: YES. +# This tag requires that the tag GENERATE_HTML is set to YES. + +HTML_DYNAMIC_MENUS = YES + +# If the HTML_DYNAMIC_SECTIONS tag is set to YES then the generated HTML +# documentation will contain sections that can be hidden and shown after the +# page has loaded. +# The default value is: NO. +# This tag requires that the tag GENERATE_HTML is set to YES. + +HTML_DYNAMIC_SECTIONS = NO + +# With HTML_INDEX_NUM_ENTRIES one can control the preferred number of entries +# shown in the various tree structured indices initially; the user can expand +# and collapse entries dynamically later on. Doxygen will expand the tree to +# such a level that at most the specified number of entries are visible (unless +# a fully collapsed tree already exceeds this amount). So setting the number of +# entries 1 will produce a full collapsed tree by default. 0 is a special value +# representing an infinite number of entries and will result in a full expanded +# tree by default. +# Minimum value: 0, maximum value: 9999, default value: 100. +# This tag requires that the tag GENERATE_HTML is set to YES. + +HTML_INDEX_NUM_ENTRIES = 100 + +# If the GENERATE_DOCSET tag is set to YES, additional index files will be +# generated that can be used as input for Apple's Xcode 3 integrated development +# environment (see: https://developer.apple.com/xcode/), introduced with OSX +# 10.5 (Leopard). To create a documentation set, doxygen will generate a +# Makefile in the HTML output directory. Running make will produce the docset in +# that directory and running make install will install the docset in +# ~/Library/Developer/Shared/Documentation/DocSets so that Xcode will find it at +# startup. See https://developer.apple.com/library/archive/featuredarticles/Doxy +# genXcode/_index.html for more information. +# The default value is: NO. +# This tag requires that the tag GENERATE_HTML is set to YES. + +GENERATE_DOCSET = NO + +# This tag determines the name of the docset feed. A documentation feed provides +# an umbrella under which multiple documentation sets from a single provider +# (such as a company or product suite) can be grouped. +# The default value is: Doxygen generated docs. +# This tag requires that the tag GENERATE_DOCSET is set to YES. + +DOCSET_FEEDNAME = "Doxygen generated docs" + +# This tag specifies a string that should uniquely identify the documentation +# set bundle. This should be a reverse domain-name style string, e.g. +# com.mycompany.MyDocSet. Doxygen will append .docset to the name. +# The default value is: org.doxygen.Project. +# This tag requires that the tag GENERATE_DOCSET is set to YES. + +DOCSET_BUNDLE_ID = org.doxygen.Project + +# The DOCSET_PUBLISHER_ID tag specifies a string that should uniquely identify +# the documentation publisher. This should be a reverse domain-name style +# string, e.g. com.mycompany.MyDocSet.documentation. +# The default value is: org.doxygen.Publisher. +# This tag requires that the tag GENERATE_DOCSET is set to YES. + +DOCSET_PUBLISHER_ID = org.doxygen.Publisher + +# The DOCSET_PUBLISHER_NAME tag identifies the documentation publisher. +# The default value is: Publisher. +# This tag requires that the tag GENERATE_DOCSET is set to YES. + +DOCSET_PUBLISHER_NAME = Publisher + +# If the GENERATE_HTMLHELP tag is set to YES then doxygen generates three +# additional HTML index files: index.hhp, index.hhc, and index.hhk. The +# index.hhp is a project file that can be read by Microsoft's HTML Help Workshop +# (see: https://www.microsoft.com/en-us/download/details.aspx?id=21138) on +# Windows. +# +# The HTML Help Workshop contains a compiler that can convert all HTML output +# generated by doxygen into a single compiled HTML file (.chm). Compiled HTML +# files are now used as the Windows 98 help format, and will replace the old +# Windows help format (.hlp) on all Windows platforms in the future. Compressed +# HTML files also contain an index, a table of contents, and you can search for +# words in the documentation. The HTML workshop also contains a viewer for +# compressed HTML files. +# The default value is: NO. +# This tag requires that the tag GENERATE_HTML is set to YES. + +GENERATE_HTMLHELP = NO + +# The CHM_FILE tag can be used to specify the file name of the resulting .chm +# file. You can add a path in front of the file if the result should not be +# written to the html output directory. +# This tag requires that the tag GENERATE_HTMLHELP is set to YES. + +CHM_FILE = + +# The HHC_LOCATION tag can be used to specify the location (absolute path +# including file name) of the HTML help compiler (hhc.exe). If non-empty, +# doxygen will try to run the HTML help compiler on the generated index.hhp. +# The file has to be specified with full path. +# This tag requires that the tag GENERATE_HTMLHELP is set to YES. + +HHC_LOCATION = + +# The GENERATE_CHI flag controls if a separate .chi index file is generated +# (YES) or that it should be included in the master .chm file (NO). +# The default value is: NO. +# This tag requires that the tag GENERATE_HTMLHELP is set to YES. + +GENERATE_CHI = NO + +# The CHM_INDEX_ENCODING is used to encode HtmlHelp index (hhk), content (hhc) +# and project file content. +# This tag requires that the tag GENERATE_HTMLHELP is set to YES. + +CHM_INDEX_ENCODING = + +# The BINARY_TOC flag controls whether a binary table of contents is generated +# (YES) or a normal table of contents (NO) in the .chm file. Furthermore it +# enables the Previous and Next buttons. +# The default value is: NO. +# This tag requires that the tag GENERATE_HTMLHELP is set to YES. + +BINARY_TOC = NO + +# The TOC_EXPAND flag can be set to YES to add extra items for group members to +# the table of contents of the HTML help documentation and to the tree view. +# The default value is: NO. +# This tag requires that the tag GENERATE_HTMLHELP is set to YES. + +TOC_EXPAND = NO + +# If the GENERATE_QHP tag is set to YES and both QHP_NAMESPACE and +# QHP_VIRTUAL_FOLDER are set, an additional index file will be generated that +# can be used as input for Qt's qhelpgenerator to generate a Qt Compressed Help +# (.qch) of the generated HTML documentation. +# The default value is: NO. +# This tag requires that the tag GENERATE_HTML is set to YES. + +GENERATE_QHP = NO + +# If the QHG_LOCATION tag is specified, the QCH_FILE tag can be used to specify +# the file name of the resulting .qch file. The path specified is relative to +# the HTML output folder. +# This tag requires that the tag GENERATE_QHP is set to YES. + +QCH_FILE = + +# The QHP_NAMESPACE tag specifies the namespace to use when generating Qt Help +# Project output. For more information please see Qt Help Project / Namespace +# (see: https://doc.qt.io/archives/qt-4.8/qthelpproject.html#namespace). +# The default value is: org.doxygen.Project. +# This tag requires that the tag GENERATE_QHP is set to YES. + +QHP_NAMESPACE = org.doxygen.Project + +# The QHP_VIRTUAL_FOLDER tag specifies the namespace to use when generating Qt +# Help Project output. For more information please see Qt Help Project / Virtual +# Folders (see: https://doc.qt.io/archives/qt-4.8/qthelpproject.html#virtual- +# folders). +# The default value is: doc. +# This tag requires that the tag GENERATE_QHP is set to YES. + +QHP_VIRTUAL_FOLDER = doc + +# If the QHP_CUST_FILTER_NAME tag is set, it specifies the name of a custom +# filter to add. For more information please see Qt Help Project / Custom +# Filters (see: https://doc.qt.io/archives/qt-4.8/qthelpproject.html#custom- +# filters). +# This tag requires that the tag GENERATE_QHP is set to YES. + +QHP_CUST_FILTER_NAME = + +# The QHP_CUST_FILTER_ATTRS tag specifies the list of the attributes of the +# custom filter to add. For more information please see Qt Help Project / Custom +# Filters (see: https://doc.qt.io/archives/qt-4.8/qthelpproject.html#custom- +# filters). +# This tag requires that the tag GENERATE_QHP is set to YES. + +QHP_CUST_FILTER_ATTRS = + +# The QHP_SECT_FILTER_ATTRS tag specifies the list of the attributes this +# project's filter section matches. Qt Help Project / Filter Attributes (see: +# https://doc.qt.io/archives/qt-4.8/qthelpproject.html#filter-attributes). +# This tag requires that the tag GENERATE_QHP is set to YES. + +QHP_SECT_FILTER_ATTRS = + +# The QHG_LOCATION tag can be used to specify the location of Qt's +# qhelpgenerator. If non-empty doxygen will try to run qhelpgenerator on the +# generated .qhp file. +# This tag requires that the tag GENERATE_QHP is set to YES. + +QHG_LOCATION = + +# If the GENERATE_ECLIPSEHELP tag is set to YES, additional index files will be +# generated, together with the HTML files, they form an Eclipse help plugin. To +# install this plugin and make it available under the help contents menu in +# Eclipse, the contents of the directory containing the HTML and XML files needs +# to be copied into the plugins directory of eclipse. The name of the directory +# within the plugins directory should be the same as the ECLIPSE_DOC_ID value. +# After copying Eclipse needs to be restarted before the help appears. +# The default value is: NO. +# This tag requires that the tag GENERATE_HTML is set to YES. + +GENERATE_ECLIPSEHELP = NO + +# A unique identifier for the Eclipse help plugin. When installing the plugin +# the directory name containing the HTML and XML files should also have this +# name. Each documentation set should have its own identifier. +# The default value is: org.doxygen.Project. +# This tag requires that the tag GENERATE_ECLIPSEHELP is set to YES. + +ECLIPSE_DOC_ID = org.doxygen.Project + +# If you want full control over the layout of the generated HTML pages it might +# be necessary to disable the index and replace it with your own. The +# DISABLE_INDEX tag can be used to turn on/off the condensed index (tabs) at top +# of each HTML page. A value of NO enables the index and the value YES disables +# it. Since the tabs in the index contain the same information as the navigation +# tree, you can set this option to YES if you also set GENERATE_TREEVIEW to YES. +# The default value is: NO. +# This tag requires that the tag GENERATE_HTML is set to YES. + +DISABLE_INDEX = NO + +# The GENERATE_TREEVIEW tag is used to specify whether a tree-like index +# structure should be generated to display hierarchical information. If the tag +# value is set to YES, a side panel will be generated containing a tree-like +# index structure (just like the one that is generated for HTML Help). For this +# to work a browser that supports JavaScript, DHTML, CSS and frames is required +# (i.e. any modern browser). Windows users are probably better off using the +# HTML help feature. Via custom style sheets (see HTML_EXTRA_STYLESHEET) one can +# further fine-tune the look of the index. As an example, the default style +# sheet generated by doxygen has an example that shows how to put an image at +# the root of the tree instead of the PROJECT_NAME. Since the tree basically has +# the same information as the tab index, you could consider setting +# DISABLE_INDEX to YES when enabling this option. +# The default value is: NO. +# This tag requires that the tag GENERATE_HTML is set to YES. + +GENERATE_TREEVIEW = NO + +# The ENUM_VALUES_PER_LINE tag can be used to set the number of enum values that +# doxygen will group on one line in the generated HTML documentation. +# +# Note that a value of 0 will completely suppress the enum values from appearing +# in the overview section. +# Minimum value: 0, maximum value: 20, default value: 4. +# This tag requires that the tag GENERATE_HTML is set to YES. + +ENUM_VALUES_PER_LINE = 4 + +# If the treeview is enabled (see GENERATE_TREEVIEW) then this tag can be used +# to set the initial width (in pixels) of the frame in which the tree is shown. +# Minimum value: 0, maximum value: 1500, default value: 250. +# This tag requires that the tag GENERATE_HTML is set to YES. + +TREEVIEW_WIDTH = 250 + +# If the EXT_LINKS_IN_WINDOW option is set to YES, doxygen will open links to +# external symbols imported via tag files in a separate window. +# The default value is: NO. +# This tag requires that the tag GENERATE_HTML is set to YES. + +EXT_LINKS_IN_WINDOW = NO + +# Use this tag to change the font size of LaTeX formulas included as images in +# the HTML documentation. When you change the font size after a successful +# doxygen run you need to manually remove any form_*.png images from the HTML +# output directory to force them to be regenerated. +# Minimum value: 8, maximum value: 50, default value: 10. +# This tag requires that the tag GENERATE_HTML is set to YES. + +FORMULA_FONTSIZE = 10 + +# Use the FORMULA_TRANSPARENT tag to determine whether or not the images +# generated for formulas are transparent PNGs. Transparent PNGs are not +# supported properly for IE 6.0, but are supported on all modern browsers. +# +# Note that when changing this option you need to delete any form_*.png files in +# the HTML output directory before the changes have effect. +# The default value is: YES. +# This tag requires that the tag GENERATE_HTML is set to YES. + +FORMULA_TRANSPARENT = YES + +# Enable the USE_MATHJAX option to render LaTeX formulas using MathJax (see +# https://www.mathjax.org) which uses client side Javascript for the rendering +# instead of using pre-rendered bitmaps. Use this if you do not have LaTeX +# installed or if you want to formulas look prettier in the HTML output. When +# enabled you may also need to install MathJax separately and configure the path +# to it using the MATHJAX_RELPATH option. +# The default value is: NO. +# This tag requires that the tag GENERATE_HTML is set to YES. + +USE_MATHJAX = NO + +# When MathJax is enabled you can set the default output format to be used for +# the MathJax output. See the MathJax site (see: +# http://docs.mathjax.org/en/latest/output.html) for more details. +# Possible values are: HTML-CSS (which is slower, but has the best +# compatibility), NativeMML (i.e. MathML) and SVG. +# The default value is: HTML-CSS. +# This tag requires that the tag USE_MATHJAX is set to YES. + +MATHJAX_FORMAT = HTML-CSS + +# When MathJax is enabled you need to specify the location relative to the HTML +# output directory using the MATHJAX_RELPATH option. The destination directory +# should contain the MathJax.js script. For instance, if the mathjax directory +# is located at the same level as the HTML output directory, then +# MATHJAX_RELPATH should be ../mathjax. The default value points to the MathJax +# Content Delivery Network so you can quickly see the result without installing +# MathJax. However, it is strongly recommended to install a local copy of +# MathJax from https://www.mathjax.org before deployment. +# The default value is: https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.5/. +# This tag requires that the tag USE_MATHJAX is set to YES. + +MATHJAX_RELPATH = https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.5/ + +# The MATHJAX_EXTENSIONS tag can be used to specify one or more MathJax +# extension names that should be enabled during MathJax rendering. For example +# MATHJAX_EXTENSIONS = TeX/AMSmath TeX/AMSsymbols +# This tag requires that the tag USE_MATHJAX is set to YES. + +MATHJAX_EXTENSIONS = + +# The MATHJAX_CODEFILE tag can be used to specify a file with javascript pieces +# of code that will be used on startup of the MathJax code. See the MathJax site +# (see: http://docs.mathjax.org/en/latest/output.html) for more details. For an +# example see the documentation. +# This tag requires that the tag USE_MATHJAX is set to YES. + +MATHJAX_CODEFILE = + +# When the SEARCHENGINE tag is enabled doxygen will generate a search box for +# the HTML output. The underlying search engine uses javascript and DHTML and +# should work on any modern browser. Note that when using HTML help +# (GENERATE_HTMLHELP), Qt help (GENERATE_QHP), or docsets (GENERATE_DOCSET) +# there is already a search function so this one should typically be disabled. +# For large projects the javascript based search engine can be slow, then +# enabling SERVER_BASED_SEARCH may provide a better solution. It is possible to +# search using the keyboard; to jump to the search box use + S +# (what the is depends on the OS and browser, but it is typically +# , /