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 10782 - (hide annotations) (download) (as text)
Tue Jun 27 13:36:25 2023 UTC (9 months, 2 weeks ago) by zmatsuo
File MIME type: text/x-chdr
File size: 3281 byte(s)
charset.cppのワークを動的に確保するようにした

- charset.cpp からの出力関数を設定できるようにした
  - charset.h の CharSetOp
  - PutU32()
  - ParseControl()
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 10782 #include "ttcstd.h"
30    
31 zmatsuo 10775 #ifdef __cplusplus
32     extern "C" {
33     #endif
34    
35 zmatsuo 10782 typedef struct CharSetDataTag CharSetData;
36    
37 zmatsuo 10755 typedef struct {
38     int infos[6];
39     } CharSetState;
40    
41 zmatsuo 10782 // �������o��
42     typedef struct CharSetOpTag {
43     // �o�������� Unicode ����
44     void (*PutU32)(char32_t code, void *client_data);
45     // �o�������� Control ����
46     void (*ParseControl)(BYTE b, void *client_data);
47     } CharSetOp;
48    
49 zmatsuo 10755 // input
50 zmatsuo 10782 void ParseFirst(CharSetData *w, BYTE b);
51 zmatsuo 10755
52     // control
53 zmatsuo 10776 typedef enum {
54     CHARSET_LS0, // Locking Shift 0, SI, 0F (G0->GL)
55     CHARSET_LS1, // Locking Shift 1, SO, 0E (G1->GL)
56     CHARSET_LS2, // Locking Shift 2, ESC n, 1B 6E (G2->GL)
57     CHARSET_LS3, // Locking Shift 3, ESC o, 1B 6F(G3->GL)
58     CHARSET_LS1R, // Locking Shift 1R, ESC ~, 1B 7E (G1->GR)
59     CHARSET_LS2R, // Locking Shift 2R, ESC }, 1B 7D (G2->GR)
60     CHARSET_LS3R, // Locking Shift 3R, ESC |, 1B 7C (G3->GR)
61     CHARSET_SS2, // Single Shift 2, SS2, 8E, ESC N, 1B 4E
62     CHARSET_SS3, // Single Shift 3, SS3, 8F, ESC O, 1B 4F
63     } CharSet2022Shift;
64 zmatsuo 10773
65 zmatsuo 10782 CharSetData *CharSetInit(const CharSetOp *op, void *client_data);
66     void CharSetFinish(CharSetData *w);
67     void CharSet2022Designate(CharSetData *w, int gn, int cs);
68     void CharSet2022Invoke(CharSetData *w, CharSet2022Shift shift);
69     BOOL CharSetIsSpecial(CharSetData *w, BYTE b);
70     void CharSetSaveState(CharSetData *w, CharSetState *state);
71     void CharSetLoadState(CharSetData *w, const CharSetState *state);
72     void CharSetFallbackFinish(CharSetData *w);
73    
74 zmatsuo 10773 // debug mode
75     #define DEBUG_FLAG_NONE 0
76     #define DEBUG_FLAG_NORM 1
77     #define DEBUG_FLAG_HEXD 2
78     #define DEBUG_FLAG_NOUT 3
79     #define DEBUG_FLAG_MAXD 4
80 zmatsuo 10782 void CharSetSetNextDebugMode(CharSetData *w);
81     //BYTE CharSetGetDebugMode(CharSetData *w);
82     void CharSetSetDebugMode(CharSetData *w, BYTE mode);
83 zmatsuo 10775
84     #ifdef __cplusplus
85     }
86     #endif

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