Revision: 9462 https://osdn.net/projects/ttssh2/scm/svn/commits/9462 Author: zmatsuo Date: 2021-10-10 00:39:06 +0900 (Sun, 10 Oct 2021) Log Message: ----------- 絵文字設定について追記した - html のインデントを 4 から 2 に変更した(.editorconfig) - unicodebuf-text-emoji.txt の typo 修正 - buffer.c 意図が分かりやすいように修正 Modified Paths: -------------- trunk/.editorconfig trunk/doc/ja/html/menu/setup-additional-coding.html trunk/teraterm/teraterm/buffer.c trunk/tests/unicodebuf-text-emoji.txt -------------- next part -------------- Modified: trunk/.editorconfig =================================================================== --- trunk/.editorconfig 2021-10-08 16:39:23 UTC (rev 9461) +++ trunk/.editorconfig 2021-10-09 15:39:06 UTC (rev 9462) @@ -16,6 +16,7 @@ end_of_line = crlf charset = cp932 indent_style = space +indent_size = 2 [*.md] end_of_line = crlf Modified: trunk/doc/ja/html/menu/setup-additional-coding.html =================================================================== --- trunk/doc/ja/html/menu/setup-additional-coding.html 2021-10-08 16:39:23 UTC (rev 9461) +++ trunk/doc/ja/html/menu/setup-additional-coding.html 2021-10-09 15:39:06 UTC (rev 9462) @@ -14,13 +14,22 @@ <dl> <dt>Ambiguous Characters width</dt> <dd> - 1 Cell \x82܂\xBD\x82\xCD 2 Cell \x82\xF0\x91I\x91\xF0\x81B + 1 Cell \x82܂\xBD\x82\xCD 2 Cell \x82\xF0\x91I\x91\xF0\x82\xB5\x82܂\xB7\x81B </dd> <dt>Override Emoji Characters width</dt> <dd> - \x95\xB6\x8E\x9A\x82\xAA\x8AG\x95\xB6\x8E\x9A\x82̂Ƃ\xAB\x81A\x95\xB6\x8E\x9A\x91\xAE\x90\xAB\x82\x8B\x82\xB5\x82ĕ\xB6\x8E\x9A\x95\x9D\x82\xF0\x90ݒ肷\x82\xE9\x8Fꍇ\x83`\x83F\x83b\x83N\x82\xB7\x82\xE9<br> - 1 Cell \x82܂\xBD\x82\xCD 2 Cell \x82\xF0\x91I\x91\xF0\x81B + \x83`\x83F\x83b\x83N\x82\xB7\x82\xE9\x82ƁA\x8AG\x95\xB6\x8E\x9A\x91\xAE\x90\xAB\x82̂\xA0\x82镶\x8E\x9A\x82\xCD East_Asian_Width\x93\xC1\x90\xAB\x82\xF0\x92u\x82\xAB\x8A\xB7\x82\xA6\x82ĕ\xB6\x8E\x9A\x95\x9D\x82\xF0\x90ݒ肵\x82܂\xB7\x81B + <ul> + <li>\x83R\x81[\x83h\x83|\x83C\x83\x93\x83g U+1F000 \x88ȏ\xE3\x82̊G\x95\xB6\x8E\x9A\x82͏\xED\x82\xC92Cell(\x91S\x8Ap)\x82Ƃ\xB5\x82Ĉ\xB5\x82\xA2\x82܂\xB7\x81B + <li>\x83R\x81[\x83h\x83|\x83C\x83\x93\x83g U+1F000 \x96\xA2\x96\x9E\x82̊G\x95\xB6\x8E\x9A\x82\xCD + <dl> + <dt>2call\x82\xAA\x91I\x91\xF0\x82\xB3\x82ꂽ\x82Ƃ\xAB</dt> + <dd>2Cell(\x91S\x8Ap)\x82Ƃ\xB5\x82Ĉ\xB5\x82\xA4</dd> + <dt>1call\x82\xAA\x91I\x91\xF0\x82\xB3\x82ꂽ\x82Ƃ\xAB</dt> + <dd>1Cell(\x94\xBC\x8Ap)\x82Ƃ\xB5\x82Ĉ\xB5\x82\xA4</dd> + </dl> + </ul> </dd> </dl> @@ -28,9 +37,9 @@ <dl> <dt>\x92\x86\x8D\x91\x8C\xEA,\x93\xFA\x96{\x8C\xEA,\x8A؍\x91\x8C\xEA(CJK)\x82Ŏg\x97p\x82\xB7\x82\xE9\x8Fꍇ</dt> <dd> - Japanese/UTF-8 \x82ȂǁA"Japanese/" \x82Ȃǂ\xAA\x82\xA2\x82\xBD\x83R\x81[\x83f\x83B\x83\x93\x83O\x82\xF0\x91I\x82\xD4<br> - \x81\xA8Ambiguous Characters Width \x82\xAA 2cell \x82ƂȂ\xE9 - \x81\xA8Override Emoji Characters Width \x97L\x8C\xF8\x82ƂȂ\xE8 2cell \x82ƂȂ\xE9 + Japanese/UTF-8 \x82ȂǁA"Japanese/" \x82Ȃǂ\xAA\x82\xA2\x82\xBD\x83R\x81[\x83f\x83B\x83\x93\x83O\x82\xF0\x91I\x82\xD4<br> + \x81\xA8Ambiguous Characters Width \x82\xAA 2Cell \x82ƂȂ\xE9<br> + \x81\xA8Override Emoji Characters Width \x97L\x8C\xF8\x82ƂȂ\xE8 2Cell \x82ƂȂ\xE9 </dd> </dl> @@ -37,27 +46,44 @@ <h2>\x95\\x8E\xA6\x82\xB3\x82\xEA\x82镶\x8E\x9A\x82ɂ\xA2\x82\xC4</h2> Tera Term \x82̃\x8A\x83|\x83W\x83g\x83\x8A\x82Ƀe\x83X\x83g\x97p\x83e\x83L\x83X\x83g\x82\xAA\x82\xA0\x82\xE9\x82̂ŕ\\x8E\xA6\x82\xB5\x82ă`\x83F\x83b\x83N\x82ł\xAB\x82܂\xB7\x81B <ul> - <li>\x8A\xBF\x8E\x9A\x82̕\xB6\x8E\x9A\x95\x9D<br> - "wget https://ja.osdn.net/projects/ttssh2/scm/svn/blobs/head/trunk/tests/unicodebuf-east_asian_width.txt?export=raw -O -" - <li>\x8AG\x95\xB6\x8E\x9A\x82̕\xB6\x8E\x9A\x95\x9D<br> - "wget https://ja.osdn.net/projects/ttssh2/scm/svn/blobs/head/trunk/tests/unicodebuf-text-emoji.txt?export=raw -O -" + <li>\x8A\xBF\x8E\x9A\x82̕\xB6\x8E\x9A\x95\x9D<br> + "wget https://ja.osdn.net/projects/ttssh2/scm/svn/blobs/head/trunk/tests/unicodebuf-east_asian_width.txt?export=raw -O -" + <li>\x8AG\x95\xB6\x8E\x9A\x82̕\xB6\x8E\x9A\x95\x9D<br> + "wget https://ja.osdn.net/projects/ttssh2/scm/svn/blobs/head/trunk/tests/unicodebuf-text-emoji.txt?export=raw -O -" </ul> \x8E\x9F\x82̂\xB1\x82Ƃɒ\x8D\x88ӂ\xB5\x82Ă\xAD\x82\xBE\x82\xB3\x82\xA2 <ul> - <li>\x83t\x83H\x83\x93\x83g\x82̃f\x83U\x83C\x83\x93\x92ʂ\xE8\x95\\x8E\xA6\x82\xB3\x82\xEA\x82܂\xB7\x81B - <ul> - <li>Tera Term \x82\xAA\x91S\x8Ap,2cell\x82Ƃ\xB5\x82ĕ\\x8E\xA6\x81A\x83f\x83U\x83C\x83\x93\x82\xAA\x94\xBC\x8Ap,1cell\x82̏ꍇ\x81A - \x94\xBC\x8Ap\x82̌\xE3\x82\xEB\x82ɃX\x83y\x81[\x83X\x82\xAA\x93\xFC\x82\xC1\x82Ă\xE9\x82悤\x82ɕ\\x8E\xA6\x82\xB3\x82\xEA\x82܂\xB7\x81B - <li>Tera Term \x82\xAA\x94\xBC\x8Ap,1cell\x82Ƃ\xB5\x82ĕ\\x8E\xA6\x81A\x83f\x83U\x83C\x83\x93\x82\xAA\x91S\x8Ap,2cell\x82̏ꍇ\x81A - \x91S\x8Ap\x82̍\xB6\x94\xBC\x95\xAA\x82\xAA\x95\\x8E\xA6\x82\xB3\x82\xEA\x82܂\xB7\x81B - </ul> - </li> + <li>\x83t\x83H\x83\x93\x83g\x82̃O\x83\x8A\x83t(\x83f\x83U\x83C\x83\x93)\x92ʂ\xE8\x95\\x8E\xA6\x82\xB3\x82\xEA\x82܂\xB7\x81B + <ul> + <li>Tera Term \x82\xAA\x91S\x8Ap,2Cell\x82Ƃ\xB5\x82ĕ\\x8E\xA6\x81A\x83f\x83U\x83C\x83\x93\x82\xAA\x94\xBC\x8Ap,1Cell\x82̏ꍇ\x81A + \x94\xBC\x8Ap\x82̌\xE3\x82\xEB\x82ɃX\x83y\x81[\x83X\x82\xAA\x93\xFC\x82\xC1\x82Ă\xE9\x82悤\x82ɕ\\x8E\xA6\x82\xB3\x82\xEA\x82܂\xB7\x81B + <li>Tera Term \x82\xAA\x94\xBC\x8Ap,1Cell\x82Ƃ\xB5\x82ĕ\\x8E\xA6\x81A\x83f\x83U\x83C\x83\x93\x82\xAA\x91S\x8Ap,2Cell\x82̏ꍇ\x81A + \x91S\x8Ap\x82̍\xB6\x94\xBC\x95\xAA\x82\xAA\x95\\x8E\xA6\x82\xB3\x82\xEA\x82܂\xB7\x81B + </ul> + </li> + <li>Tera Term\x82̈\xB5\x82\xA4\x95\xB6\x8E\x9A\x95\x9D\x82ƁA\x83z\x83X\x83g\x82\xAA\x88Ӑ}\x82\xB5\x82Ă\xA2\x82镶\x8E\x9A\x95\x9D\x82\xAA\x88قȂ邱\x82Ƃ\xAA\x82\xA0\x82\xE8\x82܂\xB7\x81B<br> + \x83v\x83\x8D\x83O\x83\x89\x83\x80\x81A\x83\x89\x83C\x83u\x83\x89\x83\x8A\x97\xE1 + <ul> + <li>\x83e\x83L\x83X\x83g\x83G\x83f\x83B\x83^(vim,emacs,nano\x82Ȃ\xC7) + <li>\x83r\x83\x85\x83A(more,less,lv\x82Ȃ\xC7) + <li>bash\x82Ȃǂɑg\x82ݍ\x9E\x82܂\xEA\x82Ă\xA2\x82\xE9readline\x83\x89\x83C\x83u\x83\x89\x83\x8A(\x8Ds\x95ҏW\x83\x89\x83C\x83u\x83\x89\x83\x8A) + <li>aptitude\x82Ȃǂɑg\x82ݍ\x9E\x82܂\xEA\x82Ă\xA2\x82\xE9curses\x83\x89\x83C\x83u\x83\x89\x83\x8A(\x92[\x96\x96\x90\xA7\x8C䃉\x83C\x83u\x83\x89\x83\x8A) + </ul> + </li> + <li>\x8Ew\x92\xE8\x83t\x83H\x83\x93\x83g\x82ɕ\\x8E\xA6\x82\xB5\x82\xBD\x82\xA2\x95\xB6\x8E\x9A\x82\xAA\x8E\xFB\x94[\x82\xB3\x82\xEA\x82Ă\xA2\x82Ȃ\xA2\x82\xA9\x82\xE0\x82\xB5\x82\xEA\x82܂\xB9\x82\xF1\x81B + <ul> + <li>\x95\\x8E\xA6\x82ł\xAB\x82镶\x8E\x9A(\x8Ew\x92蕶\x8E\x9A\x82̃O\x83\x8A\x83t)\x82\xAA\x91\xB6\x8D݂\xB5\x82Ȃ\xA2\x8Fꍇ<br> + OS\x82̂\xE6\x82\xC1\x82č\x95\x82\xA2\x93_\x81u\x81E\x81v(\x97\xE1)\x82\xAA\x95`\x89悳\x82\xEA\x82܂\xB7\x81BOS\x82̃o\x81[\x83W\x83\x87\x83\x93\x82ɂ\xE6\x82\xC1\x82Ă͑\xBC\x82̕\\x8E\xA6\x82ɂȂ邩\x82\xE0\x82\xB5\x82\xEA\x82܂\xB9\x82\xF1\x81B + <li>OS\x82̃o\x81[\x83W\x83\x87\x83\x93\x82ɂ\xE6\x82\xC1\x82ẮA\x8E\xA9\x93\xAE\x93I\x82ɑ\xBC\x82̃t\x83H\x83\x93\x83g\x82\xF0\x8Eg\x82\xC1\x82ĕ`\x89悳\x82\xEA\x82܂\xB7\x81B<br> + \x82\xB1\x82̋@\x94\\x82\xF0\x83t\x83H\x83\x93\x83g\x83\x8A\x83\x93\x83N\x82ƌĂт܂\xB7\x81B + </ul> + </li> </ul> <h2>East_Asian_Width\x93\xC1\x90\xAB\x82ƃZ\x83\x8B\x90\x94\x82ɂ\xA2\x82\xC4</h2> <p> - East Asian Width(\x93\x8C\x83A\x83W\x83A\x82̕\xB6\x8E\x9A\x95\x9D)\x82Ƃ\xB5\x82āA + East_Asian_Width\x93\xC1\x90\xAB(\x93\x8C\x83A\x83W\x83A\x82̕\xB6\x8E\x9A\x95\x9D)\x82Ƃ\xB5\x82āA \x8Ae\x95\xB6\x8E\x9A\x82ɂ͓\xC1\x90\xAB\x82\xAA\x8A\x84\x82蓖\x82Ă\xE7\x82\xEA\x82Ă\xA2\x82܂\xB7\x81B </p> @@ -90,28 +116,49 @@ </pre> <p> - CJK\x8A\xAB\x82ł́AAmbiguous\x82̏ꍇ\x82ɕ\xB6\x8E\x9A\x95\x9D\x82\xF02 cell\x82ɂ\xB5\x82\xBD\x82ق\xA4\x82\xAA\x8E\xA9\x91R\x82ł\xB7\x81B + CJK\x8A\xAB\x82ł́AAmbiguous\x82̕\xB6\x8E\x9A\x95\x9D\x82\xF0 2Cell \x82ɂ\xB5\x82\xBD\x82ق\xA4\x82\xAA\x8E\xA9\x91R\x82ł\xB7\x81B<br> + \x82܂\xBD\x81A\x93\xFA\x96{\x8C\xEA\x83t\x83H\x83\x93\x83g\x82ł\xCD 2Cell \x82Ńf\x83U\x83C\x83\x93\x82\xB3\x82\xEA\x82Ă\xA2\x82邱\x82Ƃ\xAA\x82قƂ\xF1\x82ǂ\xBE\x82Ǝv\x82\xED\x82\xEA\x82܂\xB7\x81B </p> <p> - Neutral\x82͓\x8C\x83A\x83W\x83A\x82̑g\x94łɂ͒ʏ\xED\x8Fo\x8C\xBB\x82\xB5\x82Ȃ\xA2\x8E\x96\x82ɂȂ\xC1\x82Ă\xA2\x82܂\xB7\x82\xAA\x81A - \x8AG\x95\xB6\x8E\x9A\x82\xAA\x82\xB1\x82̗̈\xE6\x82ɓ\xFC\x82\xC1\x82Ă\xA2\x82܂\xB7\x81B + Neutral\x82ɂ͊G\x95\xB6\x8E\x9A\x82\xAA\x93\xFC\x82\xC1\x82Ă\xA2\x82āA1cell\x82ŕ`\x89悷\x82\xE9\x82Ɠ\xFA\x96{\x82ł͕s\x8E\xA9\x91R\x82ȕ\\x8E\xA6\x82ƂȂ\xE8\x82܂\xB7\x81B + \x8AG\x95\xB6\x8E\x9A\x82̎\x9E\x82̕\xB6\x8E\x9A\x95\x9D\x82\xF0\x95ύX\x82\xB7\x82邱\x82ƂŎ\xA9\x91R\x82ȕ\\x8E\xA6\x82Ƃ\xB7\x82邱\x82Ƃ\xAA\x82ł\xAB\x82܂\xB7\x81B + + <dl> + <dt>\x97\xE1</dt> + <dd>\x8A\xE7 U+263A</dd> + <dd>\x83g\x83\x89\x83\x93\x83v\x82̃X\x83C\x81[\x83g U+2764</dd> + <dd><a href="https://ja.wikipedia.org/wiki/%E3%81%9D%E3%81%AE%E4%BB%96%E3%81%AE%E8%A8%98%E5%8F%B7">wikipedia</a></dd> </p> <p> - East Asian Width \x82̓\xC1\x90\xAB\x82Ƃ͕ʂɁA\x8Ae\x95\xB6\x8E\x9A\x82ɂ͊G\x95\xB6\x8E\x9A\x91\xAE\x90\xAB\x82\xAA\x82\xA0\x82\xE8\x82܂\xB7\x81B - (Tera Term\x82ł̓R\x81[\x83h\x83|\x83C\x83\x93\x83gU+0080\x96\xA2\x96\x9E\x82͊G\x95\xB6\x8E\x9A\x82Ƃ\xB5\x82Ĉ\xB5\x82\xA2\x82܂\xB9\x82\xF1) + \x8E\x9F\x82̃f\x81[\x83^\x82\xF0\x82\xE0\x82Ƃɑ\xAE\x90\xAB\x82\xF0\x8C\x88\x92肵\x82Ă\xA2\x82܂\xB7\x81B<br> + http://www.unicode.org/Public/UCD/latest/ucd/EastAsianWidth.txt </p> + <h2>\x8AG\x95\xB6\x8E\x9A\x82ɂ\xA2\x82\xC4</h2> + <p> - CJK\x8A\xAB\x82ł͏]\x97\x88\x82̕\xB6\x8E\x9A\x83R\x81[\x83h\x82\xC51byte\x82ł͕\\x8C\xBB\x82ł\xAB\x82Ȃ\xA2\x8Fꍇ\x82\xCD - 2cell\x82ň\xB5\x82\xA4\x82ق\xA4\x82\xAA\x8E\xA9\x91R\x82ł\xB7\x81B - Tera term\x82ł\xCDEast Asian Width\x82\x8B\x82\xB5\x82\xC42 cell\x82Ƃ\xB5\x82Ĉ\xB5\x82\xA4\x82\xB1\x82Ƃ\xAA\x82ł\xAB\x82\xE9\x82悤\x90ݒ肪\x89\\x82ł\xB7\x81B + \x8AG\x95\xB6\x8E\x9A\x91\xAE\x90\xAB\x82\xCD East Asian Width \x82̓\xC1\x90\xAB\x82Ƃ͕ʂ̕\xB6\x8E\x9A\x93\xC1\x90\xAB\x82ł\xB7\x81B </p> <p> - \x82܂\xBD\x81A\x93\xFA\x96{\x8C\xEA\x83t\x83H\x83\x93\x83g\x82ł͊G\x95\xB6\x8E\x9A\x82\xCD2cell\x82Ńf\x83U\x83C\x83\x93\x82\xB3\x82\xEA\x82Ă\xA2\x82邱\x82Ƃ\xAA\x91\xBD\x82\xA2\x82Ǝv\x82\xED\x82\xEA\x82܂\xB7\x81B + CJK\x8A\xAB\x82ł́AEast_Asian_Width\x93\xC1\x90\xAB\x82Ɠ\xAF\x97l\x81A + \x8F]\x97\x88\x82̕\xB6\x8E\x9A\x83R\x81[\x83h\x82\xC51byte\x82ŕ\\x8C\xBB\x82ł\xAB\x82Ȃ\xA2\x95\xB6\x8E\x9A\x82\xCD + 2Cell \x82ň\xB5\x82\xA4\x82ق\xA4\x82\xAA\x8E\xA9\x91R\x82ł\xB7\x81B </p> + <p> + \x94\xF1CJK\x8A\xAB\x82ł́A\x8F]\x97\x88\x82̕\xB6\x8E\x9A\x83R\x81[\x83h\x82ł͑S\x8Ap\x82͑\xB6\x8D݂\xB5\x82Ȃ\xA9\x82\xC1\x82\xBD\x82̂ŁA + \x91\xBD\x82\xAD\x82̕\xB6\x8E\x9A\x82p\x82Ƃ\xB5\x82Ĉ\xB5\x82\xA4\x82̂\xAA\x8E\xA9\x91R\x82ł\xB7\x81B<br> + \x8A\xE7\x82̊G\x95\xB6\x8E\x9A\x82Ȃ\xC7(\x83R\x81[\x83h\x83|\x83C\x83\x93\x83gU+1F000\x88ȏ\xE3)\x82\xCDUnicode\x88ȍ~\x82̕\xB6\x8E\x9A\x82Ȃ̂ŁA\x91S\x8Ap\x82Ƃ\xB5\x82Ă\xA0\x82\xA9\x82\xC1\x82Ă悳\x82\xBB\x82\xA4\x82ł\xB7\x81B + </p> + + <p> + \x8E\x9F\x82̏\xEE\x95\xF1\x82\xF0\x82\xE0\x82ƂɊG\x95\xB6\x8E\x9A\x82̔\xBB\x92\xE8\x82\xF0\x8Ds\x82\xC1\x82Ă\xA2\x82܂\xB7\x81B<br> + https://www.unicode.org/Public/emoji/12.1/emoji-data.txt<br> + \x82\xBD\x82\xBE\x82\xB5\x81A\x83R\x81[\x83h\x83|\x83C\x83\x93\x83gU+0080\x96\xA2\x96\x9E\x82͊G\x95\xB6\x8E\x9A\x82Ƃ\xB5\x82Ĉ\xB5\x82\xA2\x82܂\xB9\x82\xF1\x81B + </p> + </body> </html> Modified: trunk/teraterm/teraterm/buffer.c =================================================================== --- trunk/teraterm/teraterm/buffer.c 2021-10-08 16:39:23 UTC (rev 9461) +++ trunk/teraterm/teraterm/buffer.c 2021-10-09 15:39:06 UTC (rev 9462) @@ -2212,15 +2212,20 @@ if (ts_->UnicodeEmojiOverride) { if (*emoji) { // \x8AG\x95\xB6\x8E\x9A\x82\xBE\x82\xC1\x82\xBD\x8Fꍇ - if (ts_->UnicodeEmojiWidth == 2) { - // \x91S\x8Ap - return FALSE; - } else { - if (u32 >= 0x1f000) { + if (u32 < 0x1f000) { + if (ts_->UnicodeEmojiWidth == 2) { + // \x91S\x8Ap return FALSE; } - return TRUE; + else { + // \x94\xBC\x8Ap + return TRUE; + } } + else { + // \x8F\xED\x82ɑS\x8Ap + return FALSE; + } } } return BuffIsHalfWidthFromPropery(ts_, *width_property); Modified: trunk/tests/unicodebuf-text-emoji.txt =================================================================== --- trunk/tests/unicodebuf-text-emoji.txt 2021-10-08 16:39:23 UTC (rev 9461) +++ trunk/tests/unicodebuf-text-emoji.txt 2021-10-09 15:39:06 UTC (rev 9462) @@ -12,12 +12,12 @@ ☻:U+263B BLACK SMILING FACE -- Emoji + Half ない? --- Emoji(<U+1F000) + Neautral +-- Emoji(<U+1F000) + Neutral ©:U+00A9 COPYRIGHT SIGN ☹:U+2639 WHITE FROWNING FACE ☺:U+263A White Smiling Face ❤:U+2764 HEAVY BLACK HEART --- Emoji(>=U+1F000) + Neautral +-- Emoji(>=U+1F000) + Neutral 🏎:U+1F3CE racing car -- Emoji(>=U+1F000) + Wide 🍣:U+1F363 SUSHI