Revision: 9664 https://osdn.net/projects/ttssh2/scm/svn/commits/9664 Author: zmatsuo Date: 2022-01-03 16:21:33 +0900 (Mon, 03 Jan 2022) Log Message: ----------- html生成スクリプトにmarkdownからの変換機能を追加 - 2sjis.pl - 機能を追加 - markdown を html に変換 - zlib license 部分切り出し - bom削除 - require 5.24.0 - copy-zliblicense.pl 削除 - 2sjis.pl に機能を追加したため - htmlhelp_index_make.pl - use utf8 - require 5.24.0 - -o オプションを追加 - doc/makechm.cmake 追加 - chm(ヘルプ)を作成 Modified Paths: -------------- trunk/doc/.gitignore trunk/doc/CMakeLists.txt trunk/doc/convtext.bat trunk/doc/htmlhelp_index_make.pl trunk/installer/2sjis.pl Added Paths: ----------- trunk/doc/makechm.cmake Removed Paths: ------------- trunk/installer/copy-zliblicense.pl -------------- next part -------------- Modified: trunk/doc/.gitignore =================================================================== --- trunk/doc/.gitignore 2022-01-03 06:53:28 UTC (rev 9663) +++ trunk/doc/.gitignore 2022-01-03 07:21:33 UTC (rev 9664) @@ -7,3 +7,6 @@ *.txt *.md *.html +*.hhk +*.chw +*.chm Modified: trunk/doc/CMakeLists.txt =================================================================== --- trunk/doc/CMakeLists.txt 2022-01-03 06:53:28 UTC (rev 9663) +++ trunk/doc/CMakeLists.txt 2022-01-03 07:21:33 UTC (rev 9664) @@ -27,93 +27,30 @@ ) add_custom_target( - teraterm_chm + chm DEPENDS ${CMAKE_CURRENT_SOURCE_DIR}/en/teraterm.chm + DEPENDS ${CMAKE_CURRENT_SOURCE_DIR}/ja/teratermj.chm SOURCES ${SRC_EN} + SOURCES ${SRC_JP} SOURCES htmlhelp_index_make.pl - SOURCES htmlhelp_update_check.pl WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR} - COMMENT Generate "${CMAKE_CURRENT_BINARY_DIR}/teraterm.chm" ) - add_custom_target( - teratermj_chm - DEPENDS ${CMAKE_CURRENT_SOURCE_DIR}/ja/teratermj.chm - SOURCES htmlhelp_index_make.pl - SOURCES htmlhelp_update_check.pl - SOURCES ${SRC_JP} - WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR} - COMMENT Generate "${CMAKE_CURRENT_BINARY_DIR}/teratermj.chm" - ) - source_group(TREE ${CMAKE_CURRENT_SOURCE_DIR} FILES ${SRC_EN}) source_group(TREE ${CMAKE_CURRENT_SOURCE_DIR} FILES ${SRC_JP}) add_custom_command( OUTPUT ${CMAKE_CURRENT_SOURCE_DIR}/en/teraterm.chm - COMMAND ${PERL} ../installer/2sjis.pl -i ../libs/doc_help/Oniguruma-LICENSE.txt -o en/html/reference/Oniguruma-LICENSE.txt -l unix - COMMAND ${PERL} ../installer/2sjis.pl -i ../libs/doc_help/en/RE -o en/html/reference/RE.txt -c utf8 -l unix - COMMAND ${PERL} ../installer/2sjis.pl -i ../libs/doc_help/OpenSSL-LICENSE.txt -o en/html/reference/OpenSSL-LICENSE.txt -l unix - COMMAND ${PERL} ../installer/2sjis.pl -i ../libs/doc_help/PuTTY-LICENSE.txt -o en/html/reference/PuTTY-LICENSE.txt -l crlf - COMMAND ${PERL} ../installer/2sjis.pl -i ../libs/doc_help/SFMT-LICENSE.txt -o en/html/reference/SFMT-LICENSE.txt -l unix - COMMAND ${PERL} ../installer/2sjis.pl -i ../libs/doc_help/cJSON-LICENSE.txt -o en/html/reference/cJSON-LICENSE.txt -l unix - COMMAND ${PERL} ../installer/2sjis.pl -i ../libs/doc_help/argon2-LICENSE.txt -o en/html/reference/argon2-LICENSE.txt -l unix - COMMAND ${PERL} ../installer/2sjis.pl -i ../cygwin/cygterm/COPYING -o en/html/reference/CygTerm+-LICENSE.txt -l unix - COMMAND ${PERL} ../installer/copy-zliblicense.pl -i ../libs/doc_help/zlib-LICENSE.txt -o en/html/reference/zlib-LICENSE.txt -l unix - COMMAND ${PERL} -C0 -pe "s/^\\xef\\xbb\\xbf//" en/html/reference/build_with_cmake.md > en/html/reference/build_with_cmake_no_bom.md - COMMAND ${PERL} Markdown_1.0.1/Markdown.pl en/html/reference/build_with_cmake_no_bom.md > en/html/reference/build_with_cmake_utf8.html - COMMAND ${PERL} ../installer/2sjis.pl -i en/html/reference/build_with_cmake_utf8.html -o en/html/reference/build_with_cmake.html -c utf8 - COMMAND ${PERL} -C0 -pe "s/^\\xef\\xbb\\xbf//" en/html/reference/build_library_with_cmake.md > en/html/reference/build_library_with_cmake_no_bom.md - COMMAND ${PERL} Markdown_1.0.1/Markdown.pl en/html/reference/build_library_with_cmake_no_bom.md > en/html/reference/build_library_with_cmake_utf8.html - COMMAND ${PERL} ../installer/2sjis.pl -i en/html/reference/build_library_with_cmake_utf8.html -o en/html/reference/build_library_with_cmake.html -c utf8 - COMMAND ${PERL} -C0 -pe "s/^\\xef\\xbb\\xbf//" en/html/reference/keyboard_cfg.md > en/html/reference/keyboard_cfg_no_bom.md - COMMAND ${PERL} Markdown_1.0.1/Markdown.pl en/html/reference/keyboard_cfg_no_bom.md > en/html/reference/keyboard_cfg_utf8.html - COMMAND ${PERL} ../installer/2sjis.pl -i en/html/reference/keyboard_cfg_utf8.html -o en/html/reference/keyboard_cfg.html -c utf8 - COMMAND ${PERL} -C0 -pe "s/^\\xef\\xbb\\xbf//" en/html/reference/menu_id.md > en/html/reference/menu_id_no_bom.md - COMMAND ${PERL} Markdown_1.0.1/Markdown.pl en/html/reference/menu_id_no_bom.md > en/html/reference/menu_id_utf8.html - COMMAND ${PERL} ../installer/2sjis.pl -i en/html/reference/menu_id_utf8.html -o en/html/reference/menu_id.html -c utf8 - COMMAND ${PERL} htmlhelp_index_make.pl en html > en/Index.hhk - COMMAND ${HHC} en/teraterm.hhp || (exit 0) + OUTPUT ${CMAKE_CURRENT_SOURCE_DIR}/ja/teratermj.chm + COMMAND ${CMAKE_COMMAND} -P makechm.cmake WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR} COMMENT Generate "${CMAKE_CURRENT_BINARY_DIR}/teraterm.chm" ) - add_custom_command( - OUTPUT ${CMAKE_CURRENT_SOURCE_DIR}/ja/teratermj.chm - COMMAND ${PERL} ../installer/2sjis.pl -i ../libs/doc_help/Oniguruma-LICENSE.txt -o ja/html/reference/Oniguruma-LICENSE.txt -l unix - COMMAND ${PERL} ../installer/2sjis.pl -i ../libs/doc_help/ja/RE -o ja/html/reference/RE.txt -c utf8 -l unix - COMMAND ${PERL} ../installer/2sjis.pl -i ../libs/doc_help/OpenSSL-LICENSE.txt -o ja/html/reference/OpenSSL-LICENSE.txt -l unix - COMMAND ${PERL} ../installer/2sjis.pl -i ../libs/doc_help/PuTTY-LICENSE.txt -o ja/html/reference/PuTTY-LICENSE.txt -l crlf - COMMAND ${PERL} ../installer/2sjis.pl -i ../libs/doc_help/SFMT-LICENSE.txt -o ja/html/reference/SFMT-LICENSE.txt -l unix - COMMAND ${PERL} ../installer/2sjis.pl -i ../libs/doc_help/cJSON-LICENSE.txt -o ja/html/reference/cJSON-LICENSE.txt -l unix - COMMAND ${PERL} ../installer/2sjis.pl -i ../libs/doc_help/argon2-LICENSE.txt -o ja/html/reference/argon2-LICENSE.txt -l unix - COMMAND ${PERL} ../installer/2sjis.pl -i ../cygwin/cygterm/COPYING -o ja/html/reference/CygTerm+-LICENSE.txt -l unix - COMMAND ${PERL} ../installer/copy-zliblicense.pl -i ../libs/doc_help/zlib-LICENSE.txt -o ja/html/reference/zlib-LICENSE.txt -l unix - COMMAND ${PERL} -C0 -pe "s/^\\xef\\xbb\\xbf//" ja/html/reference/build_with_cmake.md > ja/html/reference/build_with_cmake_no_bom.md - COMMAND ${PERL} Markdown_1.0.1/Markdown.pl ja/html/reference/build_with_cmake_no_bom.md > ja/html/reference/build_with_cmake_utf8.html - COMMAND ${PERL} ../installer/2sjis.pl -i ja/html/reference/build_with_cmake_utf8.html -o ja/html/reference/build_with_cmake.html -c utf8 - COMMAND ${PERL} -C0 -pe "s/^\\xef\\xbb\\xbf//" ja/html/reference/build_library_with_cmake.md > ja/html/reference/build_library_with_cmake_no_bom.md - COMMAND ${PERL} Markdown_1.0.1/Markdown.pl ja/html/reference/build_library_with_cmake_no_bom.md > ja/html/reference/build_library_with_cmake_utf8.html - COMMAND ${PERL} ../installer/2sjis.pl -i ja/html/reference/build_library_with_cmake_utf8.html -o ja/html/reference/build_library_with_cmake.html -c utf8 - COMMAND ${PERL} -C0 -pe "s/^\\xef\\xbb\\xbf//" ja/html/reference/keyboard_cfg.md > ja/html/reference/keyboard_cfg_no_bom.md - COMMAND ${PERL} Markdown_1.0.1/Markdown.pl ja/html/reference/keyboard_cfg_no_bom.md > ja/html/reference/keyboard_cfg_utf8.html - COMMAND ${PERL} ../installer/2sjis.pl -i ja/html/reference/keyboard_cfg_utf8.html -o ja/html/reference/keyboard_cfg.html -c utf8 - COMMAND ${PERL} -C0 -pe "s/^\\xef\\xbb\\xbf//" ja/html/reference/menu_id.md > ja/html/reference/menu_id_no_bom.md - COMMAND ${PERL} Markdown_1.0.1/Markdown.pl ja/html/reference/menu_id_no_bom.md > ja/html/reference/menu_id_utf8.html - COMMAND ${PERL} ../installer/2sjis.pl -i ja/html/reference/menu_id_utf8.html -o ja/html/reference/menu_id.html -c utf8 - COMMAND ${PERL} htmlhelp_index_make.pl ja html > ja/Index.hhk - COMMAND ${HHC} ja/teraterm.hhp || (exit 0) - WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR} - COMMENT Generate "${CMAKE_CURRENT_BINARY_DIR}/teratermj.chm" - ) - set_target_properties( - teraterm_chm - teratermj_chm + chm PROPERTIES FOLDER doc) - install(CODE "execute_process(COMMAND \"${CMAKE_COMMAND}\" --build ${CMAKE_BINARY_DIR} --target teraterm_chm)") - install(CODE "execute_process(COMMAND \"${CMAKE_COMMAND}\" --build ${CMAKE_BINARY_DIR} --target teratermj_chm)") install( FILES ${CMAKE_CURRENT_SOURCE_DIR}/ja/teratermj.chm Modified: trunk/doc/convtext.bat =================================================================== --- trunk/doc/convtext.bat 2022-01-03 06:53:28 UTC (rev 9663) +++ trunk/doc/convtext.bat 2022-01-03 07:21:33 UTC (rev 9664) @@ -1,5 +1,4 @@ set TOSJIS=perl ..\installer\2sjis.pl -set ZLIBCP=perl ..\installer\copy-zliblicense.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 @@ -14,18 +13,18 @@ %TOSJIS% -i ..\libs\SFMT\LICENSE.txt -o %REF_J%\SFMT-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 -%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 ..\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 -perl -C0 -pe "s/^\xef\xbb\xbf//" %REF_J%/build_with_cmake.md | perl Markdown_1.0.1/Markdown.pl | %TOSJIS% -i - -o %REF_J%/build_with_cmake.html -c utf8 -perl -C0 -pe "s/^\xef\xbb\xbf//" %REF_E%/build_with_cmake.md | perl Markdown_1.0.1/Markdown.pl | %TOSJIS% -i - -o %REF_E%/build_with_cmake.html -c utf8 -perl -C0 -pe "s/^\xef\xbb\xbf//" %REF_J%/build_library_with_cmake.md | perl Markdown_1.0.1/Markdown.pl | %TOSJIS% -i - -o %REF_J%/build_library_with_cmake.html -c utf8 -perl -C0 -pe "s/^\xef\xbb\xbf//" %REF_E%/build_library_with_cmake.md | perl Markdown_1.0.1/Markdown.pl | %TOSJIS% -i - -o %REF_E%/build_library_with_cmake.html -c utf8 -perl -C0 -pe "s/^\xef\xbb\xbf//" %REF_J%/keyboard_cfg.md | perl Markdown_1.0.1/Markdown.pl | %TOSJIS% -i - -o %REF_J%/keyboard_cfg.html -c utf8 -perl -C0 -pe "s/^\xef\xbb\xbf//" %REF_E%/keyboard_cfg.md | perl Markdown_1.0.1/Markdown.pl | %TOSJIS% -i - -o %REF_E%/keyboard_cfg.html -c utf8 -perl -C0 -pe "s/^\xef\xbb\xbf//" %REF_J%/menu_id.md | perl Markdown_1.0.1/Markdown.pl | %TOSJIS% -i - -o %REF_J%/menu_id.html -c utf8 -perl -C0 -pe "s/^\xef\xbb\xbf//" %REF_E%/menu_id.md | perl Markdown_1.0.1/Markdown.pl | %TOSJIS% -i - -o %REF_E%/menu_id.html -c utf8 +%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 +%TOSJIS% -i %REF_J%/keyboard_cfg.md -o %REF_J%/keyboard_cfg.html +%TOSJIS% -i %REF_E%/keyboard_cfg.md -o %REF_E%/keyboard_cfg.html +%TOSJIS% -i %REF_J%/menu_id.md -o %REF_J%/menu_id.html +%TOSJIS% -i %REF_E%/menu_id.md -o %REF_E%/menu_id.html Modified: trunk/doc/htmlhelp_index_make.pl =================================================================== --- trunk/doc/htmlhelp_index_make.pl 2022-01-03 06:53:28 UTC (rev 9663) +++ trunk/doc/htmlhelp_index_make.pl 2022-01-03 07:21:33 UTC (rev 9664) @@ -1,23 +1,44 @@ -#! /usr/bin/perl - -# -# HTML\x83w\x83\x8B\x83v\x82̃C\x83\x93\x83f\x83b\x83N\x83X\x83t\x83@\x83C\x83\x8B\x82\xAC\x82\xB7\x82\xE9 -# -# Usage(ActivePerl): -# perl htmlhelp_index_make.pl ja html > ja\Index.hhk -# - +#! /usr/bin/perl + +# +# HTMLヘルプのインデックスファイルを生成する +# +# Usage(ActivePerl): +# perl htmlhelp_index_make.pl ja html > ja\Index.hhk +# + +require 5.24.0; +use strict; +use warnings; +use utf8; use Cwd; - @ dirstack = (); - -do_main($ARGV[0], $ARGV[1]); - -exit(0); - -sub do_main { - my($path, $body) = @_; - - print << 'EOD'; +use Getopt::Long + +binmode STDOUT, ":utf8"; + +my $out = "-"; +my $result = GetOptions( + 'out|o=s' => \$out); + +my $OUT; +if ($out eq "-") { + binmode STDIN, ":crlf:encoding(shiftjis)"; + $OUT = *STDOUT; +} else { + 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 $OUT <<'EOD'; <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <HTML><HEAD> <meta name="GENERATOR" content="TeraTerm Project"> @@ -24,87 +45,85 @@ <!-- Sitemap 1.0 --> </HEAD><BODY> <UL> -EOD - - push @dirstack, getcwd; - chdir $path; - get_file_paths($body); - chdir pop @dirstack; - - print << 'EOD'; +EOD + + push @dirstack, getcwd; + chdir $path; + get_file_paths($body); + chdir pop @dirstack; + + print $OUT <<'EOD'; </UL> -</BODY></HTML> -EOD - -} - - +</BODY></HTML> +EOD + +} + + sub get_file_paths { my ($top_dir)= @_; my @paths=(); my @temp = (); - #-- \x83J\x83\x8C\x83\x93\x83g\x82̈ꗗ\x82\xF0\x8E擾 --# + #-- カレントの一覧を取得 --# opendir(DIR, $top_dir); @temp = readdir(DIR); closedir(DIR); foreach my $path (sort @temp) { - next if( $path =~ /^\.{1,2}$/ ); # '.' \x82\xC6 '..' \x82̓X\x83L\x83b\x83v - next if( $path =~ /^\.svn$/ ); # '.svn' \x82̓X\x83L\x83b\x83v - - my $full_path = "$top_dir" . '/' . "$path"; - next if (-B $full_path); # \x83o\x83C\x83i\x83\x8A\x83t\x83@\x83C\x83\x8B\x82̓X\x83L\x83b\x83v - -# print "$full_path\r\n"; # \x95\\x8E\xA6\x82\xBE\x82\xAF\x82Ȃ\xE7\x91S\x82Ă\xF0\x95\\x8E\xA6\x82\xB5\x82Ă\xAD\x82\xEA\x82\xE9------- - push(@paths, $full_path); # \x83f\x81[\x83^\x82Ƃ\xB5\x82Ď\xE6\x82荞\x82\xF1\x82ł\xE0\x91O\x82̎\xE6\x82荞\x82݂\xAA\x8F\x89\x8A\x{227B0B3}\x82\xEA\x82\xE9 - if( -d "$top_dir/$path" ){ #-- \x83f\x83B\x83\x8C\x83N\x83g\x83\x8A\x82̏ꍇ\x82͎\xA9\x95\xAA\x8E\xA9\x90g\x82\xF0\x8CĂяo\x82\xB7 - &get_file_paths("$full_path"); - - } else { - check_html_file($full_path); - + next if( $path =~ /^\.{1,2}$/ ); # '.' と '..' はスキップ + next if( $path =~ /^\.svn$/ ); # '.svn' はスキップ + + my $full_path = "$top_dir" . '/' . "$path"; + +# print "$full_path\r\n"; # 表示だけなら全てを表示してくれる------- + push(@paths, $full_path); # データとして取り込んでも前の取り込みが初期化される + 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; - $no = 1; - while ($line = <FP>) { -# $line = chomp($line); -# print "$line\n"; - if ($line =~ /<TITLE>(.+)<\/TITLE>/i) { -# print "$filename:$no: $1\n"; -# print "$line\n"; - $val = $1; - $val =~ s/"/"/g; # \x93\xF1\x8Fd\x88\xF8\x97p\x95\x84\x82\xF0\x83G\x83X\x83P\x81[\x83v\x82\xB7\x82\xE9 - write_add_index($filename, $val); - last; - } - - $no++; - } - close(FP); -} - -sub write_add_index { - my($filename, $title) = @_; - - print << "EOD"; + +sub check_html_file { + my($filename) = shift; + local(*FP); + my($line, $no, $val); + + if ($filename !~ /.html$/) { + return; + } + + open(FP, "<:crlf:encoding(sjis)", "$filename") || return; + $no = 1; + while ($line = <FP>) { +# $line = chomp($line); +# print "$line\n"; + if ($line =~ /<TITLE>(.+)<\/TITLE>/i) { +# print "$filename:$no: $1\n"; +# print "$line\n"; + $val = $1; + $val =~ s/"/"/g; # 二重引用符をエスケープする + write_add_index($filename, $val); + last; + } + + $no++; + } + close(FP); +} + +sub write_add_index { + my($filename, $title) = @_; + + print $OUT <<"EOD"; <LI><OBJECT type="text/sitemap"> <param name="Name" value="$title"> <param name="Local" value="$filename"> -</OBJECT> -EOD - -} - +</OBJECT> +EOD + +} Added: trunk/doc/makechm.cmake =================================================================== --- trunk/doc/makechm.cmake (rev 0) +++ trunk/doc/makechm.cmake 2022-01-03 07:21:33 UTC (rev 9664) @@ -0,0 +1,112 @@ +# cmake -P makechm.cmake + +if(CMAKE_HOST_WIN32) + find_program( + PERL perl.exe + HINTS ${CMAKE_CURRENT_LIST_DIR}/../buildtools/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 + ) + 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) + find_program( + PERL perl + ) + set(HHC "HHC-NOTFOUND") + # "apt-get install fp-utils" to install chmcmd + find_program( + CHMCMD chmcmd2 + ) +endif(CMAKE_HOST_WIN32) + +message("perl=${PERL}") +message("hhc=${HHC}") +message("chmcmd=${CHMCMD}") + + +function(ConvertHTML CMD_OPTION) + set(CONV_CMD ${PERL} "../installer/2sjis.pl") + set(CONV_CMD_OPTION ${CMD_OPTION}) + separate_arguments(CONV_CMD_OPTION) + set(CMD ${CONV_CMD} ${CONV_CMD_OPTION}) + + string(JOIN " " CMD_PRINT ${CMD}) + #message(STATUS ${CMD_PRINT}) + + execute_process( + COMMAND ${CMD} + RESULT_VARIABLE rv + ) + if(NOT "${rv}" STREQUAL "0") + message(${CMD_PRINT}) + message(FATAL_ERROR "rv=${rv}") + endif() +endfunction() + + +if (NOT("${PERL}" STREQUAL "PERL-NOTFOUND")) + set(REF_E "en/html/reference") + set(REF_J "ja/html/reference") + ConvertHTML("-i ../libs/doc_help/Oniguruma-LICENSE.txt -o ${REF_E}/Oniguruma-LICENSE.txt -l unix") + ConvertHTML("-i ../libs/doc_help/Oniguruma-LICENSE.txt -o ${REF_J}/Oniguruma-LICENSE.txt -l unix") + ConvertHTML("-i ../libs/doc_help/en/RE -o ${REF_E}/RE.txt -l unix -c utf8") + ConvertHTML("-i ../libs/doc_help/ja/RE -o ${REF_J}/RE.txt -l unix -c utf8") + ConvertHTML("-i ../libs/doc_help/OpenSSL-LICENSE.txt -o ${REF_E}/OpenSSL-LICENSE.txt -l unix") + ConvertHTML("-i ../libs/doc_help/OpenSSL-LICENSE.txt -o ${REF_J}/OpenSSL-LICENSE.txt -l unix") + ConvertHTML("-i ../libs/doc_help/PuTTY-LICENSE.txt -o ${REF_E}/PuTTY-LICENSE.txt -l crlf") + ConvertHTML("-i ../libs/doc_help/PuTTY-LICENSE.txt -o ${REF_J}/PuTTY-LICENSE.txt -l crlf") + ConvertHTML("-i ../libs/doc_help/SFMT-LICENSE.txt -o ${REF_E}/SFMT-LICENSE.txt -l unix") + ConvertHTML("-i ../libs/doc_help/SFMT-LICENSE.txt -o ${REF_J}/SFMT-LICENSE.txt -l unix") + ConvertHTML("-i ../libs/doc_help/argon2-LICENSE.txt -o ${REF_E}/argon2-LICENSE.txt -l unix") + ConvertHTML("-i ../libs/doc_help/argon2-LICENSE.txt -o ${REF_J}/argon2-LICENSE.txt -l unix") + ConvertHTML("-i ../libs/doc_help/zlib-LICENSE.txt -o ${REF_E}/zlib-LICENSE.txt -l unix --zlib_special") + ConvertHTML("-i ../libs/doc_help/zlib-LICENSE.txt -o ${REF_J}/zlib-LICENSE.txt -l unix --zlib_special") + ConvertHTML("-i ../libs/doc_help/cJSON-LICENSE.txt -o ${REF_E}/cJSON-LICENSE.txt -l unix") + ConvertHTML("-i ../libs/doc_help/cJSON-LICENSE.txt -o ${REF_J}/cJSON-LICENSE.txt -l unix") + ConvertHTML("-i ../cygwin/cygterm/COPYING -o ${REF_E}/CygTerm+-LICENSE.txt -l unix") + ConvertHTML("-i ../cygwin/cygterm/COPYING -o ${REF_J}/CygTerm+-LICENSE.txt -l unix") + ConvertHTML("-i ${REF_E}/build_with_cmake.md -o ${REF_E}/build_with_cmake.html") + ConvertHTML("-i ${REF_J}/build_with_cmake.md -o ${REF_J}/build_with_cmake.html") + ConvertHTML("-i ${REF_E}/build_library_with_cmake.md -o ${REF_E}/build_library_with_cmake.html") + ConvertHTML("-i ${REF_J}/build_library_with_cmake.md -o ${REF_J}/build_library_with_cmake.html") + ConvertHTML("-i ${REF_E}/keyboard_cfg.md -o ${REF_E}/keyboard_cfg.html") + ConvertHTML("-i ${REF_J}/keyboard_cfg.md -o ${REF_J}/keyboard_cfg.html") + ConvertHTML("-i ${REF_E}/menu_id.md -o ${REF_E}/menu_id.html") + ConvertHTML("-i ${REF_J}/menu_id.md -o ${REF_J}/menu_id.html") + + execute_process( + COMMAND ${PERL} htmlhelp_index_make.pl en html -o en/Index.hhk + COMMAND ${PERL} htmlhelp_index_make.pl ja html -o ja/Index.hhk + ) +endif() + +if(NOT("${HHC}" STREQUAL "HHC-NOTFOUND")) + execute_process( + COMMAND ${HHC} en/teraterm.hhp + ) + execute_process( + COMMAND ${HHC} ja/teraterm.hhp + ) +elseif(NOT("${CHMCMD}" STREQUAL "CHMCMD-NOTFOUND")) + execute_process( + COMMAND ${CHMCMD} teraterm.hhp + WORKING_DIRECTORY en + ) + execute_process( + COMMAND ${CHMCMD} teraterm.hhp + WORKING_DIRECTORY ja + ) +endif() Modified: trunk/installer/2sjis.pl =================================================================== --- trunk/installer/2sjis.pl 2022-01-03 06:53:28 UTC (rev 9663) +++ trunk/installer/2sjis.pl 2022-01-03 07:21:33 UTC (rev 9664) @@ -1,40 +1,103 @@ #!/usr/bin/perl -w -require 5.8.0; +require 5.24.0; use strict; +use warnings; use Encode; use utf8; use Getopt::Long qw(:config posix_default no_ignore_case gnu_compat); -my($in, $out, $coding, $lf, $result); +my $PERL = $^X; +sub MarkdownToHTML { + my $buf = $_[0]; + + my $cmd = "$PERL 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 -$coding = "shiftjis"; -$lf = "crlf"; +my $coding = "shiftjis"; +my $lf = "crlf"; +my $type = "text"; +my $zlib_special; -$result = GetOptions('in|i=s' => \$in, - 'out|o=s' => \$out, - 'coding|c=s' => \$coding, - 'lf|l=s' => \$lf); +$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); if (!(defined($in) && defined($out))) { - die "Usage: $0 --in file --out file [ --coding input_encoding ] [ --lf line_format ]\n"; + 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"); + open ($IN, "<:$lf:encoding($coding)", $in) or die("error :$! $in"); } -open (OUT, '>:crlf:encoding(shiftjis)', $out); -while (<$IN>) { - print OUT $_; +if ($zlib_special) { + while (<$IN>) { + last if $_ =~ /Copyright notice:/; + } } -close OUT; +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; + if ($in ne "-") { my(@filestat) = stat $in; utime $filestat[8], $filestat[9], $out; Deleted: trunk/installer/copy-zliblicense.pl =================================================================== --- trunk/installer/copy-zliblicense.pl 2022-01-03 06:53:28 UTC (rev 9663) +++ trunk/installer/copy-zliblicense.pl 2022-01-03 07:21:33 UTC (rev 9664) @@ -1,37 +0,0 @@ -#!/usr/bin/perl -w - -require 5.8.0; -use strict; -use Encode; -use utf8; -use Getopt::Long qw(:config posix_default no_ignore_case gnu_compat); - -my($in, $out, $coding, $lf, $result); - -# default setting -$lf = "crlf"; - -$result = GetOptions('in|i=s' => \$in, - 'out|o=s' => \$out, - 'lf|l=s' => \$lf); - -if (!(defined($in) && defined($out))) { - die "Usage: $0 --in file --out file [ --lf line_format ]\n"; -} - -open (IN, "<:$lf", $in); -while (<IN>) { - last if $_ =~ /Copyright notice:/; -} - -open (OUT, '>:crlf', $out); -print OUT $_; - -while (<IN>) { - print OUT $_; -} -close OUT; -close IN; - -my(@filestat) = stat $in; -utime $filestat[8], $filestat[9], $out;