Develop and Download Open Source Software

Browse Subversion Repository

Annotation of /trunk/teraterm/teraterm/charset.h

Parent Directory Parent Directory | Revision Log Revision Log


Revision 10781 - (hide annotations) (download) (as text)
Tue Jun 27 13:28:58 2023 UTC (9 months, 2 weeks ago) by zmatsuo
File MIME type: text/x-chdr
File size: 2847 byte(s)
改行を一つ多く出力してしまうことがあるので修正

- 次の時改行を一つ多く出力してしまうことがある
  - ShiftJISなどの2byte文字受信時(UTF-8ではない)
  - 行末まで文字が出力されていて、カーソルが行末にある状態の時
    - Wrap状態
  - 2バイト文字の1バイト目を受信した後
  - CRを受信したとき
- 改行を出力しないよう修正

ticket #48285
1 zmatsuo 10755 /*
2     * (C) 2023- TeraTerm Project
3     * All rights reserved.
4     *
5     * Redistribution and use in source and binary forms, with or without
6     * modification, are permitted provided that the following conditions
7     * are met:
8     *
9     * 1. Redistributions of source code must retain the above copyright
10     * notice, this list of conditions and the following disclaimer.
11     * 2. Redistributions in binary form must reproduce the above copyright
12     * notice, this list of conditions and the following disclaimer in the
13     * documentation and/or other materials provided with the distribution.
14     * 3. The name of the author may not be used to endorse or promote products
15     * derived from this software without specific prior written permission.
16     *
17     * THIS SOFTWARE IS PROVIDED BY THE AUTHORS ``AS IS'' AND ANY EXPRESS OR
18     * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
19     * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
20     * IN NO EVENT SHALL THE AUTHORS BE LIABLE FOR ANY DIRECT, INDIRECT,
21     * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
22     * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
23     * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
24     * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
25     * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
26     * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
27     */
28    
29 zmatsuo 10775 #ifdef __cplusplus
30     extern "C" {
31     #endif
32    
33 zmatsuo 10755 typedef struct {
34     int infos[6];
35     } CharSetState;
36    
37     // input
38     void ParseFirst(BYTE b);
39    
40     // output buffer
41     void PutU32(unsigned int code);
42     void ParseControl(BYTE b);
43    
44     // control
45 zmatsuo 10776 typedef enum {
46     CHARSET_LS0, // Locking Shift 0, SI, 0F (G0->GL)
47     CHARSET_LS1, // Locking Shift 1, SO, 0E (G1->GL)
48     CHARSET_LS2, // Locking Shift 2, ESC n, 1B 6E (G2->GL)
49     CHARSET_LS3, // Locking Shift 3, ESC o, 1B 6F(G3->GL)
50     CHARSET_LS1R, // Locking Shift 1R, ESC ~, 1B 7E (G1->GR)
51     CHARSET_LS2R, // Locking Shift 2R, ESC }, 1B 7D (G2->GR)
52     CHARSET_LS3R, // Locking Shift 3R, ESC |, 1B 7C (G3->GR)
53     CHARSET_SS2, // Single Shift 2, SS2, 8E, ESC N, 1B 4E
54     CHARSET_SS3, // Single Shift 3, SS3, 8F, ESC O, 1B 4F
55     } CharSet2022Shift;
56 zmatsuo 10755 void CharSetInit(void);
57     void CharSet2022Designate(int gn, int cs);
58 zmatsuo 10776 void CharSet2022Invoke(CharSet2022Shift shift);
59 zmatsuo 10755 BOOL CharSetIsSpecial(BYTE b);
60     void CharSetSaveState(CharSetState *state);
61     void CharSetLoadState(const CharSetState *state);
62 zmatsuo 10763 void CharSetFallbackFinish(void);
63 zmatsuo 10773
64     // debug mode
65     #define DEBUG_FLAG_NONE 0
66     #define DEBUG_FLAG_NORM 1
67     #define DEBUG_FLAG_HEXD 2
68     #define DEBUG_FLAG_NOUT 3
69     #define DEBUG_FLAG_MAXD 4
70     void CharSetSetNextDebugMode(void);
71     //BYTE CharSetGetDebugMode(void);
72     void CharSetSetDebugMode(BYTE mode);
73 zmatsuo 10775
74     #ifdef __cplusplus
75     }
76     #endif

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