Seeing the prompt when I shouldn't

#1
This only happens when there are two pipes and one of my plugins GREPP, CRUNCH, or NOTAGS, is in the first one. If I interrupt the command with Ctrl-C, I see an instance of the un-ANSI-translated prompt.

Code:
v:\> do forever ( type http://192.168.100.1/signaldata.html | notags | grep.exe dB & delay 1 )
39 dB
-4 dBmV
51 dBmV
^C
v:\> ^C

v:\>
This could be (but I'm not suggesting it is) related to my recent change from my own Ctrl handler (which terminated the plugin function and returned TRUE) to simply testing aGlobals[44].

I suppose the pipe instanced could/should be running with ANSI off, but I don't understand why one of them would be issuing a prompt (if that's what's in fact happening).
 
#2
This could be (but I'm not suggesting it is) related to my recent change from my own Ctrl handler (which terminated the plugin function and returned TRUE) to simply testing aGlobals[44].
It is not related to that change. The same thing happens if I go back to installing my own Ctrl handler (and regardless of whether it returns TRUE or FALSE).
 
#3
It is not related to the plugin functions at all ... and it does not require a second pipe ... and it does not happen if I replace the URL with the name of a local file.

Code:
v:\> do forever ( type http://192.168.100.1/signaldata.html | for /f %l in ( @CON ) echo ^"%l^" & delay 1 )
[Sorry, I can't properly paste all the output because it has a lot of HTML in it]
^C
v:\> ^C

v:\>
 
#5
I don't pretend to understand the issue at all. But if your prompt included a %_PID or %_SHELL, you might be able to narrow down which one is producing that output.
Good idea. A simpler way to repro it is below. It's edited because of the HTLM in it and otherwise because of LIST itself. Notice there are two ^Cs. The PID shown in the extraneous prompt (1572) is a **new** one; i.e., not the process to which the command was issued (304), and not the instance running in the pipe (that is, neither of the two PIDs I saw in TaskMgr before pressing ^C).


Code:
v:\>  304 do i=1 to 2 ( type http://www.google.com | list )
^CSTDIN                               ¦ F1 Help ¦   Col 0    Line 1          0%
v:\>  1572 ^C
v:\>  304
 

rconn

Administrator
Staff member
May 14, 2008
10,588
97
#7
Good idea. A simpler way to repro it is below. It's edited because of the HTLM in it and otherwise because of LIST itself. Notice there are two ^Cs. The PID shown in the extraneous prompt (1572) is a **new** one; i.e., not the process to which the command was issued (304), and not the instance running in the pipe (that is, neither of the two PIDs I saw in TaskMgr before pressing ^C).
WAD. There is a lot of fancy footwork going on in the background (lest you forget, Windows does not in fact support typing from HTTP!). The extra prompt display is an irrelevant byproduct of the ^C propagation from the child to the parent process.