[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: gbs3 fails with ://



On 4/23/24 04:04, Bruce Steers wrote:


On Tue, 23 Apr 2024 at 00:45, Brian G <brian@xxxxxxxxxxxxxxxx> wrote:


    On 4/22/24 16:28, Brian G wrote:


    On 4/21/24 21:05, Bruce Steers wrote:


    On Mon, 22 Apr 2024 at 04:58, Bruce Steers <bsteers4@xxxxxxxxx>
    wrote:

        This has bugged me a few times.
        using file:// or http:// the : turns into a linefeed when
        gbs3 is piped
        Is it me doing something wrong or is it a bug?

        echo 'Print "http//www.there"'| gbs3
        http//www.there

        echo 'Print "http://www.there";'| gbs3
        # Gambas Project File 3.0
        Title=Gambas Script
        Startup=MMain
        Vendor=Ordinary
        Version=0.0.1
        License=General Public License 2.0

        # Gambas module file : MMain:4:2: Non terminated string

            1 :' Gambas module file
            2 :
            3 :Public Sub main()
            4*:Print "http
        //www.there"
                ^ Non terminated string
            5 :End
            6 :
            7 :

        Respects
        BruceS

    Aah i discovered this...
    echo 'Print "file://www.there"'| gbs3 -

    works okay if i add the dash -

    I'll use the dash if i need it :)

    Respects


    try

    echo 'print "https"&chr(58)&"//www.endofworld"' | gbs3

    Yes it is a bug I guess!

-- ~~~~ Brian

    Yes the - causes it to read the stdin as if it were as file until eof
    and process it that way.
-- ~~~~ Brian

I have a fix, not sure how valid it is...

A slight change in the _call() method of ParseArgs.class
 Ie.
The loop now goes from 0 To aArgs.Max not 1 To aArgs.Max to still function if there are no args if no args it checks Lof(File.In) to see if there's data and add the - arg if yes.

Public Function _Call(c As Context, aArgs As String[]) As String
  Dim I As Integer
  Dim sApp As String
  Dim index As Variant
  If File.Name(aArgs[0]) = "gbw" & System.version Then c.$bWebPage = True
  For I = 0 To aArgs.Max
If I = 0 Then
If aArgs.Count = 1 And If Lof(File.In) Then ' if there are no args but there is data waiting in stdin
aArgs.Add("-")
Goto gStdIn
Break
Else
Continue
Endif
Endif
Respects
BruceS



I am not sure what this will do to the expected behavior of the colon on the input line?

--
~~~~ Brian

Attachment: OpenPGP_0x78BFB26402F48419.asc
Description: OpenPGP public key

Attachment: OpenPGP_signature.asc
Description: OpenPGP digital signature


References:
gbs3 fails with ://Bruce Steers <bsteers4@xxxxxxxxx>
Re: gbs3 fails with ://Bruce Steers <bsteers4@xxxxxxxxx>
Re: gbs3 fails with ://Brian G <brian@xxxxxxxxxxxxxxxx>
Re: gbs3 fails with ://Brian G <brian@xxxxxxxxxxxxxxxx>
Re: gbs3 fails with ://Bruce Steers <bsteers4@xxxxxxxxx>