Develop and Download Open Source Software

Browse Subversion Repository

Annotation of /trunk/teraterm/teraterm/buffer.h

Parent Directory Parent Directory | Revision Log Revision Log


Revision 10308 - (hide annotations) (download) (as text)
Thu Oct 13 14:26:30 2022 UTC (17 months, 4 weeks ago) by zmatsuo
File MIME type: text/x-chdr
File size: 6696 byte(s)
Unicode の Spacing combining mark に一部対応

- Malayalam (マラヤーラム語)のごく一部の文字の特殊処理を追加
  - Spacing combining mark
    - U+0d3e と U+0d02 のみ
  - virama
    - U+0d4d のみ
- 3cell以上の長い文字が表示できるようになった
  - 全角(2cell)よりも長い文字
- テスト追加
  - Hello (Malayalam)
  - ほ + ゜ = ぽ
  - 11cell文字 (Malayalam)
1 doda 6806 /*
2     * Copyright (C) 1994-1998 T. Teranishi
3 nmaya 9048 * (C) 2005- TeraTerm Project
4 doda 6806 * All rights reserved.
5     *
6 doda 6841 * Redistribution and use in source and binary forms, with or without
7     * modification, are permitted provided that the following conditions
8     * are met:
9 doda 6806 *
10 doda 6841 * 1. Redistributions of source code must retain the above copyright
11     * notice, this list of conditions and the following disclaimer.
12     * 2. Redistributions in binary form must reproduce the above copyright
13     * notice, this list of conditions and the following disclaimer in the
14     * documentation and/or other materials provided with the distribution.
15     * 3. The name of the author may not be used to endorse or promote products
16     * derived from this software without specific prior written permission.
17 doda 6806 *
18 doda 6841 * THIS SOFTWARE IS PROVIDED BY THE AUTHORS ``AS IS'' AND ANY EXPRESS OR
19     * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
20     * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
21     * IN NO EVENT SHALL THE AUTHORS BE LIABLE FOR ANY DIRECT, INDIRECT,
22     * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
23     * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
24     * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
25     * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
26     * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
27     * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
28 doda 6806 */
29 maya 3227
30     /* TERATERM.EXE, scroll buffer routines */
31    
32 zmatsuo 8675 #pragma once
33    
34 zmatsuo 9115 #include "teraprnfile.h"
35    
36 maya 3227 #ifdef __cplusplus
37     extern "C" {
38     #endif
39    
40 zmatsuo 8675 /* Character attribute bit masks */
41     #define AttrDefault 0x00
42     #define AttrDefaultFG 0x00
43     #define AttrDefaultBG 0x00
44     #define AttrBold 0x01
45     #define AttrUnder 0x02
46     #define AttrSpecial 0x04
47     #define AttrFontMask 0x07
48     #define AttrBlink 0x08
49     #define AttrReverse 0x10
50     #define AttrLineContinued 0x20 /* valid only at the beggining or end of a line */
51     #define AttrURL 0x40
52 zmatsuo 10308 #define AttrKanji 0x80 // 1=�S�p(2cell)/0=���p(1cell) (buffer.c,h ��������)
53     #define AttrPadding 0x100 // 1=padding(2cell������1cell or �s��) (vtterm - buffer ������)
54 zmatsuo 8675
55     /* Color attribute bit masks */
56     #define Attr2Fore 0x01
57     #define Attr2Back 0x02
58     #define AttrSgrMask (AttrBold | AttrUnder | AttrBlink | AttrReverse)
59     #define AttrColorMask (AttrBold | AttrBlink | AttrReverse)
60     #define Attr2ColorMask (Attr2Fore | Attr2Back)
61    
62     #define Attr2Protect 0x04
63    
64     typedef struct {
65     BYTE Attr;
66     BYTE Attr2;
67     #if 1 //UNICODE_INTERNAL_BUFF
68     WORD AttrEx; // �A�g���r���[�g���������e�X�g
69     #endif
70     BYTE Fore;
71     BYTE Back;
72     } TCharAttr;
73    
74     typedef TCharAttr *PCharAttr;
75    
76 zmatsuo 8748 void InitBuffer(BOOL use_unicode_api);
77 zmatsuo 10100 void LockBuffer(void);
78     void UnlockBuffer(void);
79     void FreeBuffer(void);
80     void BuffReset(void);
81     void BuffAllSelect(void);
82     void BuffScreenSelect(void);
83     void BuffCancelSelection(void);
84     void ChangeSelectRegion(void);
85 maya 3227 void BuffInsertSpace(int Count);
86 zmatsuo 10100 void BuffEraseCurToEnd(void);
87     void BuffEraseHomeToCur(void);
88 maya 3227 void BuffInsertLines(int Count, int YEnd);
89     void BuffEraseCharsInLine(int XStart, int Count);
90     void BuffDeleteLines(int Count, int YEnd);
91     void BuffDeleteChars(int Count);
92     void BuffEraseChars(int Count);
93 zmatsuo 10100 void BuffFillWithE(void);
94 maya 3227 void BuffDrawLine(TCharAttr Attr, int Direction, int C);
95     void BuffEraseBox(int XStart, int YStart, int XEnd, int YEnd);
96 doda 5090 void BuffFillBox(char c, int XStart, int YStart, int XEnd, int YEnd);
97 doda 5089 void BuffCopyBox(int SrcXStart, int SrcYStart, int SrcXEnd, int SrcYEnd, int SrcPage, int DstX, int DstY, int DstPage);
98 doda 5095 void BuffChangeAttrBox(int XStart, int YStart, int XEnd, int YEnd, PCharAttr attr, PCharAttr mask);
99 doda 7086 void BuffChangeAttrStream(int XStart, int YStart, int XEnd, int YEnd, PCharAttr attr, PCharAttr mask);
100 zmatsuo 8676 wchar_t *BuffCBCopyUnicode(BOOL Table);
101 maya 3227 void BuffPrint(BOOL ScrollRegion);
102 zmatsuo 9115 void BuffDumpCurrentLine(PrintFile *handle, BYTE TERM);
103 maya 3227 void BuffPutChar(BYTE b, TCharAttr Attr, BOOL Insert);
104     void BuffPutKanji(WORD w, TCharAttr Attr, BOOL Insert);
105 doda 8445 int BuffPutUnicode(unsigned int uc, TCharAttr Attr, BOOL Insert);
106 maya 3227 void BuffUpdateRect(int XStart, int YStart, int XEnd, int YEnd);
107 zmatsuo 10100 void UpdateStr(void);
108 maya 3227 void UpdateStrUnicode(void);
109     void MoveCursor(int Xnew, int Ynew);
110 zmatsuo 10100 void MoveRight(void);
111     void BuffSetCaretWidth(void);
112 maya 3227 void BuffScrollNLines(int n);
113 zmatsuo 10100 void BuffClearScreen(void);
114     void BuffUpdateScroll(void);
115     void CursorUpWithScroll(void);
116 maya 3227 int BuffUrlDblClk(int Xw, int Yw);
117     void BuffDblClk(int Xw, int Yw);
118     void BuffTplClk(int Yw);
119     void BuffSeveralPagesSelect(int Xw, int Yw);
120     void BuffStartSelect(int Xw, int Yw, BOOL Box);
121     void BuffChangeSelect(int Xw, int Yw, int NClick);
122 zmatsuo 10100 wchar_t *BuffEndSelect(void);
123 maya 3227 void BuffChangeWinSize(int Nx, int Ny);
124     void BuffChangeTerminalSize(int Nx, int Ny);
125 zmatsuo 10100 void ChangeWin(void);
126     void ClearBuffer(void);
127     void SetTabStop(void);
128 maya 3227 void CursorForwardTab(int count, BOOL AutoWrapMode);
129     void CursorBackwardTab(int count);
130     void ClearTabStop(int Ps);
131     void ShowStatusLine(int Show);
132 doda 3312 void BuffLineContinued(BOOL mode);
133     #define SetLineContinued() BuffLineContinued(TRUE)
134     #define ClearLineContinued() BuffLineContinued(FALSE)
135 maya 3227 void BuffRegionScrollUpNLines(int n);
136     void BuffRegionScrollDownNLines(int n);
137     void BuffSetCurCharAttr(TCharAttr Attr);
138 zmatsuo 10100 void BuffSaveScreen(void);
139     void BuffRestoreScreen(void);
140     void BuffDiscardSavedScreen(void);
141 doda 4070 void BuffSelectedEraseCharsInLine(int XStart, int Count);
142 zmatsuo 10100 void BuffSelectedEraseCurToEnd(void);
143     void BuffSelectedEraseHomeToCur(void);
144     void BuffSelectedEraseScreen(void);
145 doda 5091 void BuffSelectiveEraseBox(int XStart, int YStart, int XEnd, int YEnd);
146 doda 4243 void BuffScrollLeft(int count);
147     void BuffScrollRight(int count);
148 yutakapon 4932 int BuffGetCurrentLineData(char *buf, int bufsize);
149 zmatsuo 8678 wchar_t *BuffGetLineStrW(int Sy, int *cx, size_t *length);
150 zmatsuo 8908 int BuffGetAnyLineData(int offset_y, char *buf, int bufsize);
151     int BuffGetAnyLineDataW(int offset_y, wchar_t *buf, size_t bufsize);
152 doda 5279 BOOL BuffCheckMouseOnURL(int Xw, int Yw);
153 doda 8445 wchar_t *BuffGetCharInfo(int Xw, int Yw);
154     void BuffSetCursorCharAttr(int x, int y, TCharAttr Attr);
155     TCharAttr BuffGetCursorCharAttr(int x, int y);
156 zmatsuo 8605 BOOL BuffIsCombiningCharacter(int x, int y, unsigned int u32);
157 zmatsuo 8750 void BuffSetDispAPI(BOOL unicode);
158 zmatsuo 8770 void BuffSetDispCodePage(int CodePage);
159     int BuffGetDispCodePage(void);
160 maya 3227
161     extern int StatusLine;
162 doda 5324 extern int CursorTop, CursorBottom, CursorLeftM, CursorRightM;
163 maya 3227 extern BOOL Selected;
164     extern BOOL Wrap;
165    
166 doda 6175 #define isCursorOnStatusLine (StatusLine && CursorY == NumOfLines-1)
167 doda 5324
168 maya 3227 #ifdef __cplusplus
169     }
170     #endif

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