1
1
Fork 0
mirror of https://github.com/QB64Official/qb64.git synced 2024-07-05 15:50:25 +00:00
qb64/source/utilities/vwatch.bm
Fellippe Heitor 5eb034eeef Tweaks to connection between IDE and program.
Also: makes it compatible with Option _Explicit
2021-07-12 12:45:05 -03:00

58 lines
1.4 KiB
Plaintext

$CHECKING:OFF
SUB vwatch (linenumber AS LONG)
STATIC AS LONG ide, bypass
DIM endc$, start!, me$, temp$, buffer$, k&
IF bypass THEN EXIT SUB
endc$ = "<END>"
IF ide = 0 THEN
start! = TIMER
DO
ide = _OPENCLIENT("TCP/IP:9000:localhost")
_LIMIT 30
LOOP UNTIL ide <> 0 OR TIMER - start! > 10
IF ide = 0 THEN bypass = -1: EXIT SUB
me$ = COMMAND$(0) + endc$
PUT #ide, , me$
'start! = TIMER
DO
k& = _KEYHIT
GET #ide, , temp$
buffer$ = buffer$ + temp$
_LIMIT 100
LOOP UNTIL k& = 27 OR INSTR(buffer$, endc$) > 0 'OR TIMER - start! > 2
buffer$ = LEFT$(buffer$, INSTR(buffer$, endc$) - 1)
IF buffer$ <> "vwatch:ok" THEN
CLOSE #ide
bypass = -1
EXIT SUB
END IF
END IF
DO
temp$ = "line number:" + MKL$(linenumber) + endc$
PUT #ide, , temp$
buffer$ = ""
DO
GET #ide, , temp$
buffer$ = buffer$ + temp$
k& = _KEYHIT
_LIMIT 100
LOOP UNTIL k& = 27 OR INSTR(buffer$, endc$) > 0
buffer$ = LEFT$(buffer$, INSTR(buffer$, endc$) - 1)
IF buffer$ = "run" THEN
EXIT SUB
ELSEIF buffer$ = "free" THEN
bypass = -1
EXIT SUB
END IF
LOOP
END SUB