Page 2 of 2

Posted: Sun May 18, 2003 3:12 am
by Inner
okay here is the full source code of the application that is doing it.

Guess everyone thinks it's my code, well...

Compile it in a dos console, with /CONSOLE
Run it in a dos console with arguments.

C:\>bumprev.exe -i _bumpversion.pb -b 000001

:x

Code: Select all

;-----------------------------------------------------------------------------
; Title : Bump Revsion
; Code : T.J.Roughton
; Version : 0.1
; Comment : Compiling World.c fatal expection
;-----------------------------------------------------------------------------
IncludeFile "_bumpversion.pb"
Structure PARAM
    cmd.s
    action.s
EndStructure
NewList cmdline.PARAM()
Dim cvtable.s(64)
Global numlabellines
Global majver
Global minver
Global revver
Global betaver
Global alphaver
Global build
Global bumpvers.s
Declare ParameterPhase()
Declare Info()
Declare WriteVersion(filename.s)
Declare ReadVersion(filename.s)
Declare BumpVersion()
readcvtable.s=""
Restore codevertable_bb
While readcvtable<>"-1"
    Read readcvtable
    cvtable(i)=readcvtable : i=i+1
Wend
numlabellines=i-2
OpenConsole()
    Info()
    ParameterPhase()    
CloseConsole()
;-----------------------------------------------------------------------------
;
;-----------------------------------------------------------------------------
Procedure ParameterPhase()
    param.s=" "
    While param<>""
        AddElement(cmdline())
        param=ProgramParameter()
        cmdline()\cmd=param
        cmdline()\action=ProgramParameter()
    Wend
    ResetList(cmdline())
    bump=#FALSE : mode=#FALSE : load=#FALSE
    While NextElement(cmdline())
        ;PrintN("CMD: "+cmdline()\cmd)
        ;PrintN("ACT: "+cmdline()\action)
        If(cmdline()\cmd="-i")
            infile.s=cmdline()\action
            load=#TRUE
        EndIf
        If(cmdline()\cmd="-b")
           bumpvers=cmdline()\action
           bump=#TRUE
        EndIf
        If(cmdline()\cmd="-m")
            If(cmdline()\action="c")
                Restore codevertable_c
                PrintN("Output C Source")
                mode=#TRUE
            EndIf
            If(cmdline()\action="bb")
                Restore codevertable_bb
                PrintN("Output Blitz Basic Source")
                mode=#TRUE
            EndIf
            If(cmdline()\action="pb")
                Restore codevertable_pb
                PrintN("Output Pure Basic Source")
                mode=#TRUE
            EndIf
        EndIf
    Wend
    If mode=#TRUE
        readcvtable.s=""
        While readcvtable<>"-1"
            Read readcvtable
            cvtable(i)=readcvtable : i=i+1
        Wend
        numlabellines=i-2
    Else
        PrintN("Output Blitz Basic Source")
    EndIf
    If load=#TRUE
        ReadVersion(infile)
    EndIf
    If bump=#TRUE
        BumpVersion()
        WriteVersion(infile)
    EndIf
EndProcedure
;-----------------------------------------------------------------------------
;
;-----------------------------------------------------------------------------
Procedure Info()
    PrintN("-----------------------------------------------------------------------------")
    PrintN(" Bump Revision v"+_FullVer+" "+_CompileTime+" "+_CompileDate)
    PrintN("-----------------------------------------------------------------------------")
    PrintN(" Written By T.J.Roughton (A.K.A) Inner (FREEWARE)")
    PrintN(" -i [file] : Input Version File ")
    PrintN(" -r mnrbai : Reset Version Value")
    PrintN(" -b mnrbai : Bump Version +1")
    PrintN(" -m mode   : Output Code Style [default bb]")
    PrintN("             bb = Blitz Basic Source")
    PrintN("             pb = Pure Basic Source")
    PrintN("             c  = C Source")
    PrintN("")
EndProcedure
;-----------------------------------------------------------------------------
;
;-----------------------------------------------------------------------------
Procedure BumpVersion()
    If(Mid(bumpvers,1,1)="1")
        majver=majver+1
    EndIf
    If(Mid(bumpvers,2,1)="1")
        minver=minver+1
    EndIf
    If(Mid(bumpvers,3,1)="1")
        revver=revver+1
    EndIf
    If(Mid(bumpvers,4,1)="1")
        betaver=betaver+1
    EndIf
    If(Mid(bumpvers,5,1)="1")
        alphaver=alphaver+1
    EndIf
    If(Mid(bumpvers,6,1)="1")
        build=build+1
    EndIf
EndProcedure
;-----------------------------------------------------------------------------
;
;-----------------------------------------------------------------------------
Procedure ReadVersion(filename.s)
    If(ReadFile(0,filename)<>0)
        While Eof(0)=0
            ln.s=ReadString()
            If(Mid(ln,0,1)<>";")
                For i=0 To numlabellines                    
                    If(FindString(ln,cvtable(i),0)>0)
                        foundtablab=i
                    EndIf
                    ln=RemoveString(ln,cvtable(i),1)
                Next
                Select foundtablab
                    Case 0
                        majver=Val(ln)
                    Case 1
                        minver=Val(ln)
                    Case 2
                        revver=Val(ln)
                    Case 3
                        betaver=Val(ln)
                    Case 4
                        alphaver=Val(ln)
                    Case 5
                        build=Val(ln)
                EndSelect
            EndIf            
        Wend
        CloseFile(0)
    Else
        WriteVersion(filename)
    EndIf
EndProcedure 
;-----------------------------------------------------------------------------
; 
;-----------------------------------------------------------------------------
Procedure WriteVersion(filename.s)
    If(CreateFile(0,filename)<>0)
        WriteStringN(";-----------------------------------------------------------------------------")
        WriteStringN("; Bump Revision ")
        WriteStringN(";-----------------------------------------------------------------------------")
        WriteStringN(cvtable(0)+Str(majver))
        WriteStringN(cvtable(1)+Str(minver))
        WriteStringN(cvtable(2)+Str(revver))
        WriteStringN(cvtable(3)+Str(betaver))
        WriteStringN(cvtable(4)+Str(alphaver))
        WriteStringN(cvtable(5)+Str(build))
        _fullver.s=Str(majver)+"."+Str(minver)+"."+Str(revver)+"."+Str(betaver)+"."+Str(alphaver)+" Build "+Str(build)
        WriteStringN(cvtable(6)+Chr(34)+_fullver+Chr(34))
        _midver.s=Str(majver)+"."+Str(minver)+"."+Str(revver)+"."+Str(betaver)+" Build "+Str(build)
        WriteStringN(cvtable(7)+Chr(34)+_midver+Chr(34))
        _smlver.s=Str(majver)+"."+Str(minver)+" Build "+Str(build)
        WriteStringN(cvtable(8)+Chr(34)+_smlver+Chr(34))
        WriteStringN(cvtable(9)+Chr(34)+FormatDate("%dd/%mm/%yy",Date())+Chr(34))
        WriteStringN(cvtable(10)+Chr(34)+FormatDate("%hh:%ii:%ss",Date())+Chr(34))    
        CloseFile(0)
    EndIf
EndProcedure
;-----------------------------------------------------------------------------
;
;-----------------------------------------------------------------------------
DataSection
    codevertable_c:
    Data.s "#Define _MAJORVERSION " 
    Data.s "#Define _MINORVERSION " 
    Data.s "#Define _REVISION     "     
    Data.s "#Define _BETA         "         
    Data.s "#Define _ALPHA        "        
    Data.s "#Define _BUILD        "        
    Data.s "#Define _FULLVER      "    
    Data.s "#Define _MIDVER       "     
    Data.s "#Define _SMLVER       "     
    Data.s "#Define _COMPILEDATE  "
    Data.s "#Define _COMPILETIME  "
    Data.s "-1"
    codevertable_bb:
    Data.s "Global _MajorVersion  :_MajorVersion=" 
    Data.s "Global _MinorVersion  :_MinorVersion=" 
    Data.s "Global _Revision      :_Revision="     
    Data.s "Global _Beta          :_Beta="         
    Data.s "Global _Alpha         :_Alpha="        
    Data.s "Global _Build         :_Build="        
    Data.s "Global _FullVer$      :_FullVer$="    
    Data.s "Global _MidVer$       :_MidVer$="     
    Data.s "Global _SmlVer$       :_SmlVer$="     
    Data.s "Global _CompileDate$  :_CompileDate$="
    Data.s "Global _CompileTime$  :_CompileTime$="
    Data.s "-1"
    codevertable_pb:
    Data.s "Global _MajorVersion  :_MajorVersion=" 
    Data.s "Global _MinorVersion  :_MinorVersion=" 
    Data.s "Global _Revision      :_Revision="     
    Data.s "Global _Beta          :_Beta="         
    Data.s "Global _Alpha         :_Alpha="        
    Data.s "Global _Build         :_Build="        
    Data.s "Global _FullVer.s     :_FullVer.s="    
    Data.s "Global _MidVer.s      :_MidVer.s="     
    Data.s "Global _SmlVer.s      :_SmlVer.s="     
    Data.s "Global _CompileDate.s :_CompileDate.s="
    Data.s "Global _CompileTime.s :_CompileTime.s="
    Data.s "-1"
EndDataSection

Posted: Sun May 18, 2003 1:00 pm
by Andre
I'm sure, there was at least one bug report about OpenConsole() and CloseConsole() when used several times. Example here: viewtopic.php?t=5512

Fred should be on it... 8)

Posted: Sun May 18, 2003 1:38 pm
by Inner
Yup sounds like it, so maybe this should be moved back to the Bug Reports forum :) :lol: :o 8O :lol: