[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: gbs3 fails with ://
[Thread Prev] | [Thread Next]
- Subject: Re: gbs3 fails with ://
- From: Rolf-Werner Eilert <rwe-sse@xxxxxxxxxx>
- Date: Fri, 26 Apr 2024 15:25:44 +0200
- To: user@xxxxxxxxxxxxxxxxxxxxxx
Can confirm that. Was somewhat handy for grouping couple of assignments in a single line.
Instead of e. g. x = 4 y = 2 z = 1000 greet = "hello" you could write x= 4: y = 2: z = 1000 greet = "hello"Of course, there is no fun in using it with loops or conditional blocks, but within them is ok.
In languages like C and its derivatives you can use the [obligatory] ";" to achieve the same.
Regards Rolf Am 25.04.24 um 18:47 schrieb Tim Dickson:
A bit of history... don't know if it is the reason for : in gambas as I think it was also in vb6, but.... a colon was a standard command/line separator in the days of BBC basic which was my first intro to coding in the 80's in that version of basic you could type shortcuts for the keywords, like P. instead of PRINT which let you squeeze morecode in the 253byte per line limit. regards, Tim On 25/04/2024 15:04, Bruce Steers wrote:On Thu, 25 Apr 2024 at 14:20, Tim Dickson <dickson.tim@xxxxxxxxxxxxxx> wrote:it would seem so. the detection of : is not smart enough to see if it is quoted in a string echo 'dim a as string:a="coffee:tea":print a'|gbs3 gives errors. you would need to do echo 'dim a as string:a="coffee"&chr$(58)&"tea":print a'|gbs3 to get it to work. does not seem right to me. conventionally you would just use echo -e and \n for newline echo -e 'dim a as string\na="coffee:tea"\nprint a'|gbs3 -It's like the idea to use : for lf was by someone who was not aware of the -e arg of echo to process escapes.I guess we just need to add to the wiki... A colon : is translated to \n unless you use the - argument. or replace each : with &chr$(58)& but then your example Tim.. echo 'dim a as string:a="coffee:tea":print a'|gbs3 fails if you use - or not. I think there are more problems than benefits to the conversion of : to lfAnd i don't think it's needed as echo -e and '\n' would be the conventional way.I think in my fork i will remove the conversion as i don't like it and I didn't even know you could use : for lf. and I'll be sure to use echo -e and the - argument in any gbs3 scripts for public use.Respects BruceS On 25/04/2024 11:30, Bruce Steers wrote:Did you add th code that convert : to lf ? That's terrible Why not just echo -e "line 1\nline 2" ? So a colon cannot be used in any pipe text to GBS unless you want line feeds? On Thu, 25 Apr 2024, 03:07 Brian G, <brian@xxxxxxxxxxxxxxxx> wrote: 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 :) Respectstry echo 'print "https"&chr(58)&"//www.endofworld"' | gbs3 Yes it is a bug I guess!-- ~~~~ BrianYes the - causes it to read the stdin as if it were as file until eof and process it that way.-- ~~~~ BrianI 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 BruceSecho "for i as integer = 0 to 3 : print i : next"| gbs3 0 1 2 3 $ echo "for i as integer = 0 to 3 : print i : next"| 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:28:' 1 :' Gambas module file 2 : 3 :Public Sub main() 4*:for i as integer = 0 to 3 : print i : next ^ Unexpected ':' 5 :End 6 : 7 :-- ~~~~ Brian
Re: gbs3 fails with :// | Bruce Steers <bsteers4@xxxxxxxxx> |
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> |
Re: gbs3 fails with :// | Brian G <brian@xxxxxxxxxxxxxxxx> |
Re: gbs3 fails with :// | Bruce Steers <bsteers4@xxxxxxxxx> |
Re: gbs3 fails with :// | Tim Dickson <dickson.tim@xxxxxxxxxxxxxx> |
Re: gbs3 fails with :// | Bruce Steers <bsteers4@xxxxxxxxx> |
Re: gbs3 fails with :// | Tim Dickson <dickson.tim@xxxxxxxxxxxxxx> |