summaryrefslogtreecommitdiff
path: root/macros.bas
diff options
context:
space:
mode:
Diffstat (limited to 'macros.bas')
-rw-r--r--macros.bas176
1 files changed, 0 insertions, 176 deletions
diff --git a/macros.bas b/macros.bas
deleted file mode 100644
index 89ba846b..00000000
--- a/macros.bas
+++ /dev/null
@@ -1,176 +0,0 @@
-' INFO_1: Converter for STANDARD.MAC to MACRO.C
-'
-' INFO_2: Written by Mark Junker in 1997
-' InterNet: mjs@prg.hannover.sgh-net.de
-' FIDO: Mark Junker@2:2437/47.21
-'
-' COMMENT: To start the program press SHIFT+F5 within the QBasic IDE
-' or start it from the command-line with QBASIC /RUN MACROS
-'
-
-DEFINT A-Z
-
-DECLARE FUNCTION StrTrimLeft$ (a$, b$)
-DECLARE FUNCTION StrTrimRight$ (a$, b$)
-DECLARE FUNCTION StrTrim$ (a$, b$)
-DECLARE SUB StrSplitString (SplitString$, SplitChars$, SplitField$(), SplitCount%)
-DECLARE FUNCTION Min% (a%, b%)
-DECLARE FUNCTION StrInstrLeft% (SearchStart%, SearchIn$, SearchFor$)
-DECLARE FUNCTION StrAscii% (a$)
-
-
-CLS
-DIM LineData$(1 TO 2)
-
-OPEN "I", 1, "STANDARD.MAC"
-OPEN "O", 2, "macros.c"
-
-PRINT #2, "/* This file auto-generated from standard.mac by macros.bas - don't edit it */"
-PRINT #2, ""
-PRINT #2, "static char *stdmac[] = {"
-
-WHILE NOT EOF(1)
- LINE INPUT #1, l$
- CALL StrSplitString(l$, ";", LineData$(), SplitCount)
- IF SplitCount THEN
- LineData$(1) = StrTrim$(LineData$(1), CHR$(9) + " ")
- IF LEN(LineData$(1)) THEN
- PRINT #2, " " + CHR$(34) + LineData$(1) + CHR$(34) + ","
- END IF
- END IF
-WEND
-PRINT #2, " NULL"
-PRINT #2, "};"
-
-CLOSE 2
-CLOSE 1
-SYSTEM
-
-FUNCTION Min% (a%, b%)
- IF a% < b% THEN Min% = a% ELSE Min% = b%
-END FUNCTION
-
-FUNCTION StrAscii (a$)
- IF LEN(a$) = 0 THEN
- StrAscii = -1
- ELSE
- StrAscii = ASC(a$)
- END IF
-END FUNCTION
-
-' same as =INSTR(SearchStart, SearchIn, ANY SearchFor$) in PowerBASIC(tm)
-'
-FUNCTION StrInstrLeft (SearchStart, SearchIn$, SearchFor$)
- ValuesCount = LEN(SearchFor$)
- MaxValue = LEN(SearchIn$) + 1
- MinValue = MaxValue
- FOR Counter1 = 1 TO ValuesCount
- SearchChar$ = MID$(SearchFor$, Counter1, 1)
- hVal2 = INSTR(SearchStart, SearchIn$, SearchChar$)
- IF hVal2 > 0 THEN MinValue = Min%(hVal2, MinValue)
- NEXT
- IF MinValue = MaxValue THEN MinValue = 0
- StrInstrLeft = MinValue
-END FUNCTION
-
-'
-' This is a very damn fuckin' shit version of this splitting routine.
-' At this time, it's not very useful :]
-'
-SUB StrSplitString (SplitString$, SplitChars$, SplitField$(), SplitCount)
- StartIndex = LBOUND(SplitField$)
- LastIndex = UBOUND(SplitField$)
- ActualIndex& = StartIndex
- SplitCount = 0
-
- LastPos = 1
- FoundPos = StrInstrLeft(LastPos, SplitString$, SplitChars$ + CHR$(34))
- GetDirect = 0
- EndLoop = 0
- TempString$ = ""
- DO WHILE FoundPos > 0
- FoundCharVal = StrAscii(MID$(SplitString$, FoundPos, 1))
- PosDiff = (FoundPos - LastPos) + 1
- SELECT CASE FoundCharVal
- CASE 34
- TempString$ = TempString$ + MID$(SplitString$, LastPos, PosDiff - 1)
- SELECT CASE EndLoop
- CASE 0
- EndLoop = 2
- CASE 3
- EndLoop = 0
- END SELECT
- CASE ELSE
- TempString$ = TempString$ + MID$(SplitString$, LastPos, PosDiff - 1)
- SplitField$(ActualIndex&) = TempString$
- TempString$ = ""
- ActualIndex& = ActualIndex& + 1
- IF ActualIndex& > LastIndex THEN
- ActualIndex& = LastIndex
- EndLoop = 1
- END IF
- END SELECT
- SELECT CASE EndLoop
- CASE 0
- DO
- LastPos = FoundPos + 1
- FoundPos = StrInstrLeft(LastPos, SplitString$, SplitChars$)
- LOOP WHILE LastPos = FoundPos
- FoundPos = StrInstrLeft(LastPos, SplitString$, SplitChars$ + CHR$(34))
- CASE 1
- FoundPos = 0
- LastPos = LEN(SplitString$) + 1
- CASE 2
- EndLoop = 3
- LastPos = FoundPos + 1
- FoundPos = StrInstrLeft(LastPos, SplitString$, CHR$(34))
- IF FoundPos = 0 THEN
- SplitString$ = SplitString$ + CHR$(34)
- FoundPos = LEN(SplitString$)
- END IF
- END SELECT
- LOOP
- IF EndLoop = 0 THEN
- IF LEN(TempString$) > 0 THEN
- SplitField$(ActualIndex&) = TempString$
- ELSEIF LastPos <= LEN(SplitString$) THEN
- SplitField$(ActualIndex&) = MID$(SplitString$, LastPos)
- ELSE
- ActualIndex& = ActualIndex& - 1
- END IF
- END IF
- FOR a = ActualIndex& + 1 TO LastIndex
- SplitField$(a) = ""
- NEXT
- SplitCount = (ActualIndex& - StartIndex) + 1
-END SUB
-
-FUNCTION StrTrim$ (a$, b$)
- StrTrim$ = StrTrimRight$(StrTrimLeft$(a$, b$), b$)
-END FUNCTION
-
-FUNCTION StrTrimLeft$ (a$, b$) 'public
- p = 0
- l = LEN(a$)
- DO
- p = p + 1
- t$ = MID$(a$, p, 1)
- LOOP WHILE (p < l) AND (INSTR(b$, t$) > 0)
- StrTrimLeft$ = MID$(a$, p)
-END FUNCTION
-
-FUNCTION StrTrimRight$ (a$, b$) 'public
- l = LEN(a$)
- p = l + 1
- DO
- p = p - 1
- IF p > 0 THEN
- t$ = MID$(a$, p, 1)
- ELSE
- t$ = ""
- END IF
- LOOP WHILE (p > 0) AND (INSTR(b$, t$) > 0)
- StrTrimRight$ = LEFT$(a$, p)
-END FUNCTION
-
- \ No newline at end of file