OSDN Git Service

* WorkBackup: 2015/04/15 AM 05:49
[drdeamon64/drdeamon64.git] / drcc / drcc_edittext_system.h
1 /*DrDeAmOn64DrDeAmOn64DrDeAmOn64DrDeAmOn64DrDeAmOn64DrDeAmOn64DrDeAmOn64
2
3                          D r . D e a m o n  6 4
4                         for INTEL64(R), AMD64(R)
5         
6    Copyright(C) 2007-2009 Koine Yuusuke(koinec). All rights reserved.
7
8 Redistribution and use in source and binary forms, with or without
9 modification, are permitted provided that the following conditions are met:
10
11  1. Redistributions of source code must retain the above copyright notice,
12     this list of conditions and the following disclaimer.
13  2. Redistributions in binary form must reproduce the above copyright
14     notice, this list of conditions and the following disclaimer in the
15     documentation and/or other materials provided with the distribution.
16
17 THIS SOFTWARE IS PROVIDED BY Koine Yuusuke(koinec) ``AS IS'' AND ANY
18 EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
19 WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
20 DISCLAIMED. IN NO EVENT SHALL Koine Yuusuke(koinec) OR CONTRIBUTORS BE
21 LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
22 CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
23 SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
24 INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
25 CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
26 ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
27 OF THE POSSIBILITY OF SUCH DAMAGE.
28
29 DrDeAmOn64DrDeAmOn64DrDeAmOn64DrDeAmOn64DrDeAmOn64DrDeAmOn64DrDeAmOn64*/
30
31 /* File Info -----------------------------------------------------------
32 File: drd64_.h
33 Function: Header 
34 Comment: 
35 ----------------------------------------------------------------------*/
36
37 #ifndef DRD64_HEADER_DRCC_EDITTEXT_SYSTEM
38 #define DRD64_HEADER_DRCC_EDITTEXT_SYSTEM
39
40 #ifdef DRD64_SRC_DRCC_EDITTEXT_SYSTEM
41         #define DRCC_EDITTEXT_SYSTEM_EXTERN
42 #else
43         #define DRCC_EDITTEXT_SYSTEM_EXTERN             extern
44 #endif
45         
46 #if defined DRD64_SRC_DRCC_EDITTEXT_SYSTEM
47         #define DRCC_EDITTEXT_SYSTEM_INTERNALFUNC
48 #elif defined DRD64_SRC_TEST_DRCC_EDITTEXT_SYSTEM
49         #define DRCC_EDITTEXT_SYSTEM_INTERNALFUNC
50 #endif
51
52
53 typedef struct  {
54         DWord   dw_start;               /* Start Bytes of This Line in Text-Buffer */
55         DWord   dw_strlen;              /* Length of This LineString */
56         DWord   dw_linelen;             /* Line Alloced Bytes */
57         void    *p_before;              /* Pointer of the Before LineInfo Struct */
58         void    *p_next;                /* Pointer of the Next LineInfo Struct */
59         void    *p_sortnext;    /* Pointer of the LineLength Sort Next LineInfo Struct */
60         void    *p_sectnext;
61 } Drd64_DrCC_LineInfo;
62
63 typedef struct  {
64         DWord                                   dw_startrow;
65         DWord                                   dw_lines;
66         Drd64_DrCC_LineInfo             *p_line;
67 } Drd64_DrCC_LineSection;
68
69 typedef struct  {
70         int                                             i_id;                   /* ID of TextInfo Struct */
71         int                                             i_fd;
72         Word                                    w_subtype;              /* TextFile Sub-Type (.c/.h/Makefile/etc) */
73         Byte                                    *pb_text;               /* Buffer of TextData */
74         Byte                                    *pb_attr;               /* Attribute Buffer of Text */
75         DWord                                   dw_bufsize;             /* TextData Buffer Size */
76         DWord                                   dw_attrsize;    /* Attribute Buffer Size */
77         DWord                                   dw_maxline;             /* Max TextFile Lines */
78         DWord                                   dw_bufline;             /* Lines of Alloc LineInfo Strcut */
79         DWord                                   dw_lastsize;    /* Available Buffer Position */
80         DWord                                   dw_sect_steps;  
81         Drd64_DrCC_LineInfo             *p_lineinfo;    /* LineInfo structs TopPointer */
82         Drd64_DrCC_LineInfo             *p_empty;               /* Empty LineInfo Structs Chain TopPointer */
83         Drd64_DrCC_LineInfo             *p_sort[DRD64_DRCC_DEFAULT_LINESORT_ARRAYS];
84         //Drd64_DrCC_LineSection        *p_section[DRD64_DRCC_DEFAULT_MAX_SECTIONS];
85
86         char                                    str_pathname[DRD64_MAX_PATH];
87         char                                    str_filename[DRD64_MAX_PATH];
88 } Drd64_DrCC_TextInfo;
89
90
91 #ifdef DRD64_SRC_DRCC_EDITTEXT_SYSTEM
92         /* Global Parameter */
93         Drd64_DrCC_TextInfo             *gp_textinfo            = NULL;
94         DWord                                   gdw_max_textinfo        = 0;
95         DWord                                   gdw_alloc_textinfo      = 0;
96         DWord                                   gdw_nonenamefiles       = 0;
97 #endif
98
99 DRCC_EDITTEXT_SYSTEM_EXTERN
100         int     DrCC_EditText_DebugTextInfo( int i_tinfoid, Byte b_putflag ); 
101 DRCC_EDITTEXT_SYSTEM_EXTERN
102         DWord DrCC_EditText_System_GetNoneNameFiles( void );
103 DRCC_EDITTEXT_SYSTEM_EXTERN
104         int DrCC_EditText_System_RemoveSortChain(
105                         Drd64_DrCC_TextInfo *p_tinfo, Drd64_DrCC_LineInfo *p_line );
106 DRCC_EDITTEXT_SYSTEM_EXTERN
107         int
108                 DrCC_EditText_System_AddSortChain(
109                         Drd64_DrCC_TextInfo *p_tinfo, Drd64_DrCC_LineInfo *p_line );
110 DRCC_EDITTEXT_SYSTEM_EXTERN
111         int DrCC_EditText_System_Term( void );
112 DRCC_EDITTEXT_SYSTEM_EXTERN
113         int DrCC_EditText_System_Init( void );
114 DRCC_EDITTEXT_SYSTEM_EXTERN
115         Drd64_DrCC_TextInfo *DrCC_EditText_System_GetTextInfo( int i_tinfoid );
116 DRCC_EDITTEXT_SYSTEM_EXTERN
117         int     DrCC_EditText_System_InitTextInfo(
118                         Drd64_DrCC_TextInfo *p_tinfo, Word w_subtype, DWord dw_maxline,
119                         DWord dw_bufline, DWord dw_bufsize );
120 DRCC_EDITTEXT_SYSTEM_EXTERN
121         Drd64_DrCC_TextInfo *DrCC_EditText_System_AllocTextInfo( void );
122 DRCC_EDITTEXT_SYSTEM_EXTERN
123         int     DrCC_EditText_System_FreeTextInfo( Drd64_DrCC_TextInfo *p_textinfo );
124 DRCC_EDITTEXT_SYSTEM_EXTERN
125         int     DrCC_EditText_System_ClearTextInfo( Drd64_DrCC_TextInfo *p_tinfo );
126
127 #ifdef DRCC_EDITTEXT_SYSTEM_INTERNALFUNC
128 int             DrCC_EditText_System_CalcSortChainElement( DWord dw_linelen );
129 DWord   DrCC_EditText_System_GetMaxNum_TextInfo(void);
130 DWord   DrCC_EditText_System_GetAllocNum_TextInfo(void);
131 #endif
132
133 #endif  /* DRD64_HEADER_DRCC_EDITTEXT */
134
135
136 /* EOF of drd64_.h ----------------------------------- */