Develop and Download Open Source Software

Browse Subversion Repository

Diff of /trunk/teraterm/teraterm/vtterm.c

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

revision 8534 by zmatsuo, Sun Feb 9 05:55:29 2020 UTC revision 8598 by zmatsuo, Sun Mar 15 15:24:18 2020 UTC
# Line 1  Line 1 
1  /*  /*
2   * Copyright (C) 1994-1998 T. Teranishi   * Copyright (C) 1994-1998 T. Teranishi
3   * (C) 2004-2019 TeraTerm Project   * (C) 2004-2020 TeraTerm Project
4   * All rights reserved.   * All rights reserved.
5   *   *
6   * Redistribution and use in source and binary forms, with or without   * Redistribution and use in source and binary forms, with or without
# Line 5819  static void UnicodeToCP932(unsigned int Line 5819  static void UnicodeToCP932(unsigned int
5819                  else                  else
5820                          LineEnd = CursorRightM;                          LineEnd = CursorRightM;
5821    
5822                    // Wrap処理、カーソル移動
5823                  if (Wrap) {                  if (Wrap) {
5824                          TCharAttr t = BuffGetCursorCharAttr(CursorX, CursorY);                          // 現在 Wrap 状態
5825                          t.Attr |= AttrLineContinued;                          if (!BuffIsCombiningCharacter(CursorX, CursorY, code)) {
5826                          t.AttrEx = t.Attr;                                  // 文字コードが結合文字ではない = カーソルが移動する
5827                          BuffSetCursorCharAttr(CursorX, CursorY, t);  
5828                          CarriageReturn(FALSE);                                  // カーソル位置に行継続アトリビュートを追加
5829                          LineFeed(LF,FALSE);                                  TCharAttr t = BuffGetCursorCharAttr(CursorX, CursorY);
5830                          CharAttrTmp.Attr |= AttrLineContinued;                                  t.Attr |= AttrLineContinued;
5831                          CharAttrTmp.AttrEx = CharAttrTmp.Attr;                                  t.AttrEx = t.Attr;
5832                                    BuffSetCursorCharAttr(CursorX, CursorY, t);
5833    
5834                                    // 行継続アトリビュートをつける
5835                                    CharAttrTmp.Attr |= AttrLineContinued;
5836                                    CharAttrTmp.AttrEx = CharAttrTmp.Attr;
5837    
5838                                    // 次の行の行頭へ
5839                                    CarriageReturn(FALSE);
5840                                    LineFeed(LF,FALSE);
5841                            }
5842                  }                  }
5843    
5844                    // バッファに文字を入れる
5845                  //      BuffPutUnicode()した戻り値で文字のセル数を知ることができる                  //      BuffPutUnicode()した戻り値で文字のセル数を知ることができる
5846                  //              エラー時はカーソル位置を検討する                  //              エラー時はカーソル位置を検討する
                 Wrap = FALSE;  
5847                  is_update = FALSE;                  is_update = FALSE;
5848                  CharAttrTmp.AttrEx = CharAttrTmp.Attr;                  CharAttrTmp.AttrEx = CharAttrTmp.Attr;
5849          retry:          retry:
# Line 5856  static void UnicodeToCP932(unsigned int Line 5866  static void UnicodeToCP932(unsigned int
5866                                  BuffPutUnicode(0x20, CharAttrTmp, FALSE);                                  BuffPutUnicode(0x20, CharAttrTmp, FALSE);
5867                                  CharAttrTmp.AttrEx = CharAttrTmp.AttrEx & ~AttrPadding;                                  CharAttrTmp.AttrEx = CharAttrTmp.AttrEx & ~AttrPadding;
5868    
5869                                    // 次の行の行頭へ
5870                                  CarriageReturn(FALSE);                                  CarriageReturn(FALSE);
5871                                  LineFeed(LF,FALSE);                                  LineFeed(LF,FALSE);
5872                          }                          }
# Line 5868  static void UnicodeToCP932(unsigned int Line 5879  static void UnicodeToCP932(unsigned int
5879                          goto retry;                          goto retry;
5880                  }                  }
5881                  else if (r == 0) {                  else if (r == 0) {
5882                          // カーソルの移動なし,合字など                          // カーソルの移動なし,結合文字,合字など
5883                          ;                          // Wrap は変化しない
5884                            UpdateStr();    // 「ほ」->「ぽ」など、変化することがあるので描画する
5885                  } else if (r == 1) {                  } else if (r == 1) {
5886                          // 半角(1セル)                          // 半角(1セル)
5887                          if (CursorX + 0 == CursorRightM || CursorX >= NumOfColumns - 1) {                          if (CursorX + 0 == CursorRightM || CursorX >= NumOfColumns - 1) {
# Line 5877  static void UnicodeToCP932(unsigned int Line 5889  static void UnicodeToCP932(unsigned int
5889                                  Wrap = AutoWrapMode;                                  Wrap = AutoWrapMode;
5890                          } else {                          } else {
5891                                  MoveRight();                                  MoveRight();
5892                                    Wrap = FALSE;
5893                          }                          }
5894                  } else if (r == 2) {                  } else if (r == 2) {
5895                          // 全角(2セル)                          // 全角(2セル)
# Line 5887  static void UnicodeToCP932(unsigned int Line 5900  static void UnicodeToCP932(unsigned int
5900                          } else {                          } else {
5901                                  MoveRight();                                  MoveRight();
5902                                  MoveRight();                                  MoveRight();
5903                                    Wrap = FALSE;
5904                          }                          }
5905                  }                  }
5906                  else {                  else {

Legend:
Removed from v.8534  
changed lines
  Added in v.8598

Back to OSDN">Back to OSDN
ViewVC Help
Powered by ViewVC 1.1.26