fbdbg
3.0
FreeBASIC Debugger
ini.bas
Go to the documentation of this file.
1
10
11
12
18
CONSTRUCTOR
IniUDT
()
19
VAR
r =
loadIni
()
20
IF
r
THEN ?
PROJ_NAME &
": "
& *r
21
?
" CONSTRUCTOR IniUDT"
22
END CONSTRUCTOR
23
24
25
32
PROPERTY
IniUDT.Bool
(
BYVAL
I
AS INTEGER
)
AS
gboolean
33
RETURN IIF
(
BIT
(Flags, I), TRUE, FALSE)
34
END PROPERTY
35
36
37
45
PROPERTY
IniUDT.Bool
(
BYVAL
I
AS INTEGER
,
BYVAL
V
AS
gboolean)
46
Flags =
IIF
(V, _
47
BITSET
(Flags, I) _
48
,
BITRESET
(Flags, I))
49
END PROPERTY
50
51
52
60
PROPERTY
IniUDT.Flag
(
BYVAL
I
AS INTEGER
)
AS STRING
61
RETURN
*
IIF
(
BIT
(Flags, I), @
"TRUE"
, @
"FALSE"
)
62
END PROPERTY
63
64
65
73
PROPERTY
IniUDT.Flag
(
BYVAL
I
AS INTEGER
,
BYVAL
V
AS STRING
)
74
Flags =
IIF
(
UCASE
(
LTRIM
(V,
ANY
!
"\t\v "
)) =
"TRUE"
, _
75
BITSET
(Flags, I) _
76
,
BITRESET
(Flags, I))
77
END PROPERTY
78
79
80
88
FUNCTION
IniUDT.loadIni
()
AS
gchar
PTR
89
VAR
t =
""
, fontsize =
""
, fontname =
""
, c = 0, w = 0, b = 1 _
90
, fnr =
FREEFILE
91
IF OPEN
(
EXEPATH
& SLASH &
"fbdebugger.ini"
FOR INPUT
AS
fnr) _
92
THEN RETURN
__(
"Cannot open fbdebugger.ini"
)
93
94
WHILE NOT EOF
(fnr)
95
LINE INPUT
#fnr, t
96
t =
TRIM
(t,
ANY
!
"\t\v "
)
97
SELECT CASE LEFT
(t, 6)
98
CASE
"[CFG]="
: ColForegr =
CULNG
(
MID
(t, 7))
99
CASE
"[CLN]="
: ColLineNo =
CULNG
(
MID
(t, 7))
100
CASE
"[CRE]="
: ColBackgr =
CULNG
(
MID
(t, 7))
101
CASE
"[CBC]="
: ColBackgrCur =
CULNG
(
MID
(t, 7))
102
'CASE "[CPB]=" : ColBreak = CULNG(MID(t, 7))
103
'CASE "[CTB]=" : ColBreakTmp = CULNG(MID(t, 7))
104
CASE
"[CHK]="
: ColKeyword =
CULNG
(
MID
(t, 7))
105
CASE
"[CHS]="
: ColStrings =
CULNG
(
MID
(t, 7))
106
CASE
"[CHP]="
: ColPrepro =
CULNG
(
MID
(t, 7))
107
CASE
"[CHC]="
: ColComment =
CULNG
(
MID
(t, 7))
108
CASE
"[CHN]="
: ColNumbers =
CULNG
(
MID
(t, 7))
109
CASE
"[CHE]="
: ColEscape =
CULNG
(
MID
(t, 7))
110
CASE
"[CHL]="
: ColCursor =
CULNG
(
MID
(t, 7))
111
112
CASE
"[POS]="
: CurPos =
CULNG
(
MID
(t, 7))
113
CASE
"[DEL]="
: DelVal =
CULNG
(
MID
(t, 7))
114
115
CASE
"[FBC]="
: FbcExe =
LTRIM
(
MID
(t, 7),
ANY
!
"\t\v "
)
116
CASE
"[IDE]="
: IdeExe =
LTRIM
(
MID
(t, 7),
ANY
!
"\t\v "
)
117
CASE
"[FCD]="
: CmdlFbc =
LTRIM
(
MID
(t, 7),
ANY
!
"\t\v "
)
118
CASE
"[LOG]="
: FnamLog =
LTRIM
(
MID
(t, 7),
ANY
!
"\t\v "
)
119
CASE
"[SRC]="
: FontSrc =
LTRIM
(
MID
(t, 7),
ANY
!
"\t\v "
)
120
CASE
"[JIT]="
: JitPrev =
LTRIM
(
MID
(t, 7),
ANY
!
"\t\v "
)
121
CASE
"[NSS]="
: StlSchm =
LTRIM
(
MID
(t, 7),
ANY
!
"\t\v "
)
122
123
CASE
"[FSH]="
:
Flag
(FSH) =
MID
(t, 7)
124
CASE
"[FVM]="
:
Flag
(FVM) =
MID
(t, 7)
125
CASE
"[FSL]="
:
Flag
(FSL) =
MID
(t, 7)
126
CASE
"[FFL]="
:
Flag
(FFL) =
MID
(t, 7)
127
CASE
"[FLT]="
:
Flag
(FLT) =
MID
(t, 7)
128
CASE
"[FPT]="
:
Flag
(FPT) =
MID
(t, 7)
129
CASE
"[FTT]="
:
Flag
(FTT) =
MID
(t, 7)
130
CASE
"[FLN]="
:
Flag
(FLN) =
MID
(t, 7)
131
132
CASE
"[CMD]="
: CmdExe(c) =
LTRIM
(
MID
(t, 7),
ANY
!
"\t\v "
)
133
CASE
"[BRK]="
: BrkExe(c, b) =
LTRIM
(
MID
(t, 7),
ANY
!
"\t\v "
)
134
b += 1 :
IF
b >
UBOUND
(BrkExe, 2)
THEN
b =
UBOUND
(BrkExe, 2)
135
CASE
"[WTC]="
: WtchExe(c, w) =
LTRIM
(
MID
(t, 7),
ANY
!
"\t\v "
)
136
w += 1 :
IF
w >
UBOUND
(WtchExe, 2)
THEN
w =
UBOUND
(WtchExe, 2)
137
CASE
"[EXE]="
: t =
RTRIM
(
MID
(t, 7)) :
IF DIR
(t) =
""
THEN EXIT SELECT
138
#IFNDEF __FB_UNIX__
139
IF 0
=
INSTR
(
LCASE
(t),
".exe"
)
THEN
/' not for UNIX '/
EXIT SELECT
140
#ENDIF
141
SavExe(c) = t : CmdExe(c) =
""
142
c += 1 : w = 0 : b = 1 :
IF
c >
UBOUND
(SavExe)
THEN
c =
UBOUND
(SavExe)
143
144
'' for compatibility
145
CASE
"[DPO]="
: CurPos =
CULNG
(
MID
(t, 7))
146
CASE
"[HLK]="
:
Flag
(FSH) =
MID
(t, 7)
147
CASE
"[TTP]="
:
Flag
(FTT) =
MID
(t, 7)
148
CASE
"[CNK]="
: ColKeyword =
CULNG
(
MID
(t, 7))
' tag renamed [CHK]
149
CASE
"[FTN]="
: FontSrc =
LTRIM
(
MID
(t, 7),
ANY
!
"\t\v "
) &
" "
& fontsize
150
CASE
"[FTS]="
: FontSrc = fontname &
" "
&
LTRIM
(
MID
(t, 7),
ANY
!
"\t\v "
)
151
CASE ELSE
:
?
!
"unknown ini entry:\n "
& t
152
END SELECT
153
WEND
:
CLOSE
#fnr :
RETURN
NULL
154
END FUNCTION
155
156
157
164
FUNCTION
IniUDT.saveIni
()
AS
gchar
PTR
165
IF DIR
(
"fbdebuggersav.ini"
) <>
""
THEN
_
166
IF KILL
(
"fbdebuggersav.ini"
)
THEN RETURN
__(
"Cannot kill file fbdebuggersav.ini"
)
167
IF DIR
(
"fbdebugger.ini"
) <>
""
THEN
_
168
IF NAME
(
"fbdebugger.ini"
,
"fbdebuggersav.ini"
)
THEN RETURN
__(
"Cannot rename file fbdebugger.ini"
)
169
170
VAR
fnr =
FREEFILE
171
IF OPEN
(
EXEPATH
& SLASH &
"fbdebugger.ini"
FOR OUTPUT
AS
fnr) _
172
THEN RETURN
__(
"Cannot write file fbdebugger.ini"
)
173
174
IF LEN
(FbcExe)
THEN
175
PRINT
#fnr,
"[FBC]="
&
TRIM
( FbcExe,
ANY
!
"\t\v "
)
176
IF LEN
(CmdlFbc)
THEN PRINT
#fnr,
"[FCD]="
&
TRIM
(CmdlFbc,
ANY
!
"\t\v "
)
177
ENDIF
178
IF LEN
( IdeExe)
THEN PRINT
#fnr,
"[IDE]="
&
TRIM
( IdeExe,
ANY
!
"\t\v "
)
179
IF LEN
(FnamLog)
THEN PRINT
#fnr,
"[LOG]="
&
TRIM
(FnamLog,
ANY
!
"\t\v "
)
180
IF LEN
(FontSrc)
THEN PRINT
#fnr,
"[SRC]="
&
TRIM
(FontSrc,
ANY
!
"\t\v "
)
181
IF LEN
(JitPrev)
THEN PRINT
#fnr,
"[JIT]="
& JitPrev
182
IF LEN
(StlSchm)
THEN PRINT
#fnr,
"[NSS]="
& StlSchm
183
184
FOR
i
AS INTEGER
= 0
TO UBOUND
(SavExe)
185
IF LEN
(SavExe(i))
THEN
186
PRINT
#fnr,
"[EXE]="
& SavExe(i)
187
IF LEN
(CmdExe(i))
THEN PRINT
#fnr,
"[CMD]="
& CmdExe(i)
188
189
FOR
j
AS INTEGER
= 0
TO UBOUND
(WtchExe, 2)
190
IF 0
=
LEN
(WtchExe(i,j))
THEN EXIT FOR
191
PRINT
#fnr,
"[WTC]="
& WtchExe(i,j)
192
NEXT
193
194
FOR
j
AS INTEGER
= 1
TO UBOUND
(BrkExe, 2)
195
IF LEN
(BrkExe(i,j))
THEN PRINT
#fnr,
"[BRK]="
& BrkExe(i,j)
196
NEXT
197
END IF
198
NEXT
199
200
PRINT
#fnr,
"[POS]="
& CurPos
201
PRINT
#fnr,
"[DEL]="
& DelVal
202
203
PRINT
#fnr,
"[CFG]=&h"
&
HEX
( ColForegr, 6)
204
PRINT
#fnr,
"[CLN]=&h"
&
HEX
( ColLineNo, 6)
205
PRINT
#fnr,
"[CRE]=&h"
&
HEX
( ColBackgr, 6)
206
PRINT
#fnr,
"[CBC]=&h"
&
HEX
(ColBackgrCur, 6)
207
'PRINT #fnr, "[CPB]=&h" & HEX( ColBreak, 6)
208
'PRINT #fnr, "[CTB]=&h" & HEX( ColBreakTmp, 6)
209
PRINT
#fnr,
"[CHK]=&h"
&
HEX
( ColKeyword, 6)
210
PRINT
#fnr,
"[CHS]=&h"
&
HEX
( ColStrings, 6)
211
PRINT
#fnr,
"[CHP]=&h"
&
HEX
( ColPrepro, 6)
212
PRINT
#fnr,
"[CHC]=&h"
&
HEX
( ColComment, 6)
213
PRINT
#fnr,
"[CHN]=&h"
&
HEX
( ColNumbers, 6)
214
PRINT
#fnr,
"[CHE]=&h"
&
HEX
( ColEscape, 6)
215
PRINT
#fnr,
"[CHL]=&h"
&
HEX
( ColCursor, 6)
216
217
PRINT
#fnr,
"[FSH]="
&
Flag
(FSH)
218
PRINT
#fnr,
"[FVM]="
&
Flag
(FVM)
219
PRINT
#fnr,
"[FSL]="
&
Flag
(FSL)
220
PRINT
#fnr,
"[FFL]="
&
Flag
(FFL)
221
PRINT
#fnr,
"[FLT]="
&
Flag
(FLT)
222
PRINT
#fnr,
"[FPT]="
&
Flag
(FTT)
223
PRINT
#fnr,
"[TTP]="
&
Flag
(FTT)
224
PRINT
#fnr,
"[FLN]="
&
Flag
(FLN)
225
226
CLOSE
#fnr :
RETURN
NULL
227
END FUNCTION
228
229
DIM SHARED AS
IniUDT
PTR
INI
230
src
core
ini.bas
Generated on Tue Mar 1 2016 17:59:54 for fbdbg by
1.8.9.1