bug-gawk
[Top][All Lists]
Advanced

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

Re: Fwd: inconstancy with RS = "(\r?\n){2}"


From: Alex fxmbsw7 Ratchev
Subject: Re: Fwd: inconstancy with RS = "(\r?\n){2}"
Date: Mon, 26 Jul 2021 20:32:32 +0200

i did strace -fF -s 50 the gawk in the tcpserver

these are the last lines, the fstat being printed after

read(0, "\n", 4096)                     = 1
read(0, "\n", 4096)                     = 1
fstat(1, {st_mode=S_IFSOCK|0777, st_size=0, ...}) = 0
read(0,

does this mean.. what.. didnt process two \ns as RS = \n\n ?

On Mon, Jul 26, 2021 at 8:14 PM Alex fxmbsw7 Ratchev <fxmbsw7@gmail.com> wrote:
>
> i mailed their misc@ address
>
> anyway before i had "\n\n" as RS stuff worked, curl wise etc
> but its on an outdated version so nothing about it
> maybe new, but first find why it doesnt print
>
> On Mon, Jul 26, 2021 at 8:07 PM Alex fxmbsw7 Ratchev <fxmbsw7@gmail.com> 
> wrote:
> >
> > and indeed i sometimes recieve nothing
> >
> > tcpserver 0 1024 gawk -v RS=\\n\\n '{ print "ye" }'
> >
> > and in nc to it, many newlines, no ye back
> > hmh ?
> >
> > ill look up if i can find the mailing list
> >
> > On Mon, Jul 26, 2021, 20:03 Alex fxmbsw7 Ratchev <fxmbsw7@gmail.com> wrote:
> >>
> >> no idea, with RS = "\n\n" on terminal no prob, but it may br tcpservers 
> >> fault, or gawk fail to recognize raw data by tcpserver
> >> curl doesnt return, control-c makes the bash reader that reads the gawk 
> >> recieve it, not before, hmm ..
> >>
> >> On Mon, Jul 26, 2021, 19:17 Alex fxmbsw7 Ratchev <fxmbsw7@gmail.com> wrote:
> >>>
> >>> id like to keep the double \n RS as was in my code, so i just separately 
> >>> before strip em away
> >>>
> >>> thanks you for your input :)
> >>>
> >>> On Mon, Jul 26, 2021, 19:01 Ed Morton <mortoneccc@comcast.net> wrote:
> >>>>
> >>>>
> >>>>
> >>>> On 7/26/2021 11:27 AM, Alex fxmbsw7 Ratchev wrote:
> >>>>
> >>>> i will cause i have to RS = "" and FS = "\n"
> >>>> and in another gawk strip the optional \r's away
> >>>>
> >>>> It wasn't clear to me that you wanted to just discard the `\r`s, that 
> >>>> makes things even simpler. Given that - yes, you can use a separate call 
> >>>> to awk to remove `\r`s before piping to your real script or you can do 
> >>>> what I suggested below but change `$0 ~ /^\r?$/` to `{ sub(/\r$/,"") } 
> >>>> $0 == ""`.
> >>>>
> >>>>     Ed.
> >>>>
> >>>> On Mon, Jul 26, 2021, 17:01 Ed Morton <mortoneccc@comcast.net> wrote:
> >>>>
> >>>> On 7/26/2021 8:15 AM, Alex fxmbsw7 Ratchev wrote:
> >>>>
> >>>> ---------- Forwarded message ---------
> >>>> From: Alex fxmbsw7 Ratchev <fxmbsw7@gmail.com> <fxmbsw7@gmail.com>
> >>>> Date: Mon, Jul 26, 2021, 15:13
> >>>> Subject: Re: inconstancy with RS = "(\r?\n){2}"
> >>>> To: Aharon Robbins <arnold@skeeve.com> <arnold@skeeve.com>
> >>>>
> >>>>
> >>>> but the RS issue remains
> >>>> oh well up to better times somewhen else
> >>>> thanks :)
> >>>>
> >>>>
> >>>> Have you considered just writing code to decide if a pair of `\r?\n`s has
> >>>> been seen instead of using a more complicated RS? For example, using the
> >>>> default RS and ORS, I think this will do what you want:
> >>>>
> >>>> --------
> >>>> $ cat tst.awk
> >>>> $0 ~ /^\r?$/ {
> >>>>     gotRS = 1
> >>>>     lineNr = 0
> >>>> }
> >>>> !gotRS {
> >>>>     # just keep appending to the record until the real RS is found
> >>>>     rec = ( ++lineNr == 1 ? "" : rec ORS) $0
> >>>>     next
> >>>> }
> >>>> {
> >>>>     # we have a complete record so save it in $0 and process as normal
> >>>>     gotRS = 0
> >>>>     $0 = rec
> >>>>     print "<" $0 ">"
> >>>> }
> >>>> --------
> >>>> $ awk -f tst.awk
> >>>> 1
> >>>> 2
> >>>>
> >>>> <1
> >>>> 2>
> >>>> 3
> >>>>
> >>>> <3>
> >>>> --------
> >>>>
> >>>> Regards,
> >>>>
> >>>>     Ed.
> >>>>
> >>>>
> >>>>
> >>>> On Mon, Jul 26, 2021, 15:12 <arnold@skeeve.com> <arnold@skeeve.com> 
> >>>> wrote:
> >>>>
> >>>>
> >>>> I'm sorry.
> >>>>
> >>>> I give up.
> >>>>
> >>>> You will have to use another approach. Maybe using gawk's built-in
> >>>> networking will help.
> >>>>
> >>>> Good luck.
> >>>>
> >>>> Arnold
> >>>>
> >>>> Alex fxmbsw7 Ratchev <fxmbsw7@gmail.com> <fxmbsw7@gmail.com> wrote:
> >>>>
> >>>>
> >>>> and no it doesnt work
> >>>> also on the stderr cmd i had to quit nc ( didnt try control d ) and then
> >>>> the rest appeared, on the tcpserv side, .. seems bug nothing done
> >>>> i fetched git clone new and did bootstrap and further
> >>>>
> >>>> On Mon, Jul 26, 2021, 15:07 Alex fxmbsw7 Ratchev <fxmbsw7@gmail.com> 
> >>>> <fxmbsw7@gmail.com>
> >>>>
> >>>> wrote:
> >>>>
> >>>>  i just got now to it
> >>>> in my testing on terminal still same bug, on testing that gawk > stderr
> >>>> cmd even more newlines were needed to make it print ( on the tcpserv
> >>>>
> >>>> term )
> >>>>
> >>>> that makes it invalid for my httpd and the bug but ill just try now too
> >>>>
> >>>> On Mon, Jul 26, 2021, 13:24 Alex fxmbsw7 Ratchev <fxmbsw7@gmail.com> 
> >>>> <fxmbsw7@gmail.com>
> >>>> wrote:
> >>>>
> >>>>
> >>>> thank you big time ! ill just test now
> >>>> sorry for not knowing much git
> >>>>
> >>>> On Mon, Jul 26, 2021, 13:17 <arnold@skeeve.com> <arnold@skeeve.com> 
> >>>> wrote:
> >>>>
> >>>>
> >>>> Please do
> >>>>
> >>>>         make distclean
> >>>>         git pull
> >>>>         git checkout test-socket-patch
> >>>>         ./bootstrap.sh && ./configure && make
> >>>>
> >>>> I applied the patch and pushed it to git in that branch.
> >>>>
> >>>> Arnold
> >>>>
> >>>>
> >>>>
> >>>>
> >>>>



reply via email to

[Prev in Thread] Current Thread [Next in Thread]