Re: wsemul_vt100.c diff (was Re: [NEW] audio/ncmpcpp)
I need to gather some history about the use of BEL as an end-of-escape (what a silly idea), but I fart in^W^Wagree with the direction this diff is going in so far. I think it got invented by xterm. suntool's shelltool used BS to terminate the title. See http://invisible-island.net/xterm/xterm.faq.html under « what is a vt220? » Thanks for the pointer. I think a reasonable change, for now, is to accept ^G (and only ^G, i.e. not suntool-friendly) as a string terminator, as done in the following diff. Miod Index: wsemul_vt100.c === RCS file: /cvs/src/sys/dev/wscons/wsemul_vt100.c,v retrieving revision 1.27 diff -u -p -r1.27 wsemul_vt100.c --- wsemul_vt100.c 1 Sep 2010 21:17:16 - 1.27 +++ wsemul_vt100.c 3 Aug 2011 18:33:06 - @@ -386,7 +386,13 @@ wsemul_vt100_output_c0c1(struct wsemul_v /* ignore */ break; case ASCII_BEL: - wsdisplay_emulbell(edp-cbcookie); + if (edp-state == VT100_EMUL_STATE_STRING) { + /* acts as an equivalent to the ``ESC \'' string end */ + wsemul_vt100_handle_dcs(edp); + edp-state = VT100_EMUL_STATE_NORMAL; + } else { + wsdisplay_emulbell(edp-cbcookie); + } break; case ASCII_BS: if (edp-ccol 0) {
Re: wsemul_vt100.c diff (was Re: [NEW] audio/ncmpcpp)
On Wed, Aug 3, 2011 at 8:37 PM, Miod Vallat m...@online.fr wrote: I need to gather some history about the use of BEL as an end-of-escape (what a silly idea), but I fart in^W^Wagree with the direction this diff is going in so far. I think it got invented by xterm. suntool's shelltool used BS to terminate the title. See http://invisible-island.net/xterm/xterm.faq.html under « what is a vt220? » Thanks for the pointer. I think a reasonable change, for now, is to accept ^G (and only ^G, i.e. not suntool-friendly) as a string terminator, as done in the following diff. No hangs with ncmpcpp running on console. Thanks, David Index: wsemul_vt100.c === RCS file: /cvs/src/sys/dev/wscons/wsemul_vt100.c,v retrieving revision 1.27 diff -u -p -r1.27 wsemul_vt100.c --- wsemul_vt100.c 1 Sep 2010 21:17:16 - 1.27 +++ wsemul_vt100.c 3 Aug 2011 18:33:06 - @@ -386,7 +386,13 @@ wsemul_vt100_output_c0c1(struct wsemul_v /* ignore */ break; case ASCII_BEL: - wsdisplay_emulbell(edp-cbcookie); + if (edp-state == VT100_EMUL_STATE_STRING) { + /* acts as an equivalent to the ``ESC \'' string end */ + wsemul_vt100_handle_dcs(edp); + edp-state = VT100_EMUL_STATE_NORMAL; + } else { + wsdisplay_emulbell(edp-cbcookie); + } break; case ASCII_BS: if (edp-ccol 0) {
wsemul_vt100.c diff (was Re: [NEW] audio/ncmpcpp)
Hi Nicholas, What about this? On Tue, Jul 26, 2011 at 7:05 PM, David Coppa dco...@gmail.com wrote: On Tue, Jul 26, 2011 at 9:23 AM, Nicholas Marriott nicholas.marri...@gmail.com wrote: Yes it is trying to set the window title (three times in fact for some reason): ^[]0;Paolo Fresu Uri Caine - Darn That Dream^G IIRC this will make wscons freeze. This is because it expects OSC to be terminated by ST (\033\) not by ^G (\007). So it sits waiting for the end that will never arrive. I can't try it right now but you will probably be able to see the same with eg: $ printf \033]0;abc\007 If that does reproduce the behaviour then that's the problem. I think wscons actually technically does the right thing here - C0 are supposed to operate as normal inside escape sequences. I'm not sure where this idea that BEL should terminate OSC came from. However, it is pretty much the de facto standard now (ie, xterm supports it). Something like this might do it but not tested: Index: wsemul_vt100.c === RCS file: /cvs/src/sys/dev/wscons/wsemul_vt100.c,v retrieving revision 1.27 diff -u -p -r1.27 wsemul_vt100.c --- wsemul_vt100.c 1 Sep 2010 21:17:16 - 1.27 +++ wsemul_vt100.c 26 Jul 2011 07:19:20 - @@ -386,7 +386,10 @@ wsemul_vt100_output_c0c1(struct wsemul_v /* ignore */ break; case ASCII_BEL: - wsdisplay_emulbell(edp-cbcookie); + if (edp-state == VT100_EMUL_STATE_STRING) + edp-state = VT100_EMUL_STATE_NORMAL; + else + wsdisplay_emulbell(edp-cbcookie); break; case ASCII_BS: if (edp-ccol 0) { Your patch works. ncmpcpp no longer hangs on console *with enable_window_title set to yes*. Can it be committed? cheers, David
Re: wsemul_vt100.c diff (was Re: [NEW] audio/ncmpcpp)
when i get time i think we might want to do the same in the STRING_ESCAPE state too, and it will need miod's ok On Fri, Jul 29, 2011 at 09:41:55AM +0200, David Coppa wrote: Hi Nicholas, What about this? On Tue, Jul 26, 2011 at 7:05 PM, David Coppa dco...@gmail.com wrote: On Tue, Jul 26, 2011 at 9:23 AM, Nicholas Marriott nicholas.marri...@gmail.com wrote: Yes it is trying to set the window title (three times in fact for some reason): ^[]0;Paolo Fresu Uri Caine - Darn That Dream^G IIRC this will make wscons freeze. This is because it expects OSC to be terminated by ST (\033\) not by ^G (\007). So it sits waiting for the end that will never arrive. I can't try it right now but you will probably be able to see the same with eg: $ printf \033]0;abc\007 If that does reproduce the behaviour then that's the problem. I think wscons actually technically does the right thing here - C0 are supposed to operate as normal inside escape sequences. I'm not sure where this idea that BEL should terminate OSC came from. However, it is pretty much the de facto standard now (ie, xterm supports it). Something like this might do it but not tested: Index: wsemul_vt100.c === RCS file: /cvs/src/sys/dev/wscons/wsemul_vt100.c,v retrieving revision 1.27 diff -u -p -r1.27 wsemul_vt100.c --- wsemul_vt100.c ? ? ?1 Sep 2010 21:17:16 - ? ? ? 1.27 +++ wsemul_vt100.c ? ? ?26 Jul 2011 07:19:20 - @@ -386,7 +386,10 @@ wsemul_vt100_output_c0c1(struct wsemul_v ? ? ? ? ? ? ? ?/* ignore */ ? ? ? ? ? ? ? ?break; ? ? ? ?case ASCII_BEL: - ? ? ? ? ? ? ? wsdisplay_emulbell(edp-cbcookie); + ? ? ? ? ? ? ? if (edp-state == VT100_EMUL_STATE_STRING) + ? ? ? ? ? ? ? ? ? ? ? edp-state = VT100_EMUL_STATE_NORMAL; + ? ? ? ? ? ? ? else + ? ? ? ? ? ? ? ? ? ? ? wsdisplay_emulbell(edp-cbcookie); ? ? ? ? ? ? ? ?break; ? ? ? ?case ASCII_BS: ? ? ? ? ? ? ? ?if (edp-ccol 0) { Your patch works. ncmpcpp no longer hangs on console *with enable_window_title set to yes*. Can it be committed? cheers, David
Re: wsemul_vt100.c diff (was Re: [NEW] audio/ncmpcpp)
when i get time i think we might want to do the same in the STRING_ESCAPE state too, and it will need miod's ok I need to gather some history about the use of BEL as an end-of-escape (what a silly idea), but I fart in^W^Wagree with the direction this diff is going in so far.
Re: wsemul_vt100.c diff (was Re: [NEW] audio/ncmpcpp)
On Fri, Jul 29, 2011 at 06:26:31PM +, Miod Vallat wrote: when i get time i think we might want to do the same in the STRING_ESCAPE state too, and it will need miod's ok I need to gather some history about the use of BEL as an end-of-escape (what a silly idea), but I fart in^W^Wagree with the direction this diff is going in so far. I think it got invented by xterm. suntool's shelltool used BS to terminate the title. See http://invisible-island.net/xterm/xterm.faq.html under « what is a vt220? » -- Matthieu Herrb
Re: [NEW] audio/ncmpcpp
Yes it is trying to set the window title (three times in fact for some reason): ^[]0;Paolo Fresu Uri Caine - Darn That Dream^G IIRC this will make wscons freeze. This is because it expects OSC to be terminated by ST (\033\) not by ^G (\007). So it sits waiting for the end that will never arrive. I can't try it right now but you will probably be able to see the same with eg: $ printf \033]0;abc\007 If that does reproduce the behaviour then that's the problem. I think wscons actually technically does the right thing here - C0 are supposed to operate as normal inside escape sequences. I'm not sure where this idea that BEL should terminate OSC came from. However, it is pretty much the de facto standard now (ie, xterm supports it). Something like this might do it but not tested: Index: wsemul_vt100.c === RCS file: /cvs/src/sys/dev/wscons/wsemul_vt100.c,v retrieving revision 1.27 diff -u -p -r1.27 wsemul_vt100.c --- wsemul_vt100.c 1 Sep 2010 21:17:16 - 1.27 +++ wsemul_vt100.c 26 Jul 2011 07:19:20 - @@ -386,7 +386,10 @@ wsemul_vt100_output_c0c1(struct wsemul_v /* ignore */ break; case ASCII_BEL: - wsdisplay_emulbell(edp-cbcookie); + if (edp-state == VT100_EMUL_STATE_STRING) + edp-state = VT100_EMUL_STATE_NORMAL; + else + wsdisplay_emulbell(edp-cbcookie); break; case ASCII_BS: if (edp-ccol 0) { Alternatively, tmux used to only do this when the terminal matched xterm*, rxvt* but that is pretty unmaintainable. terminfo has tsl and fsl to start and end the title but they are hardly set in any entries. However, latest terminfo has the XT property to mark xterm-compatible terminals, so what we do is set tsl and fsl manually if XT is present (this is tmux internal representation of terminfo but I guess ncmpcpp will be able to do something similar): /* On terminals with xterm titles (XT), fill in tsl and fsl. */ if (tty_term_flag(term, TTYC_XT) !tty_term_has(term, TTYC_TSL) !tty_term_has(term, TTYC_FSL)) { code = term-codes[TTYC_TSL]; code-value.string = xstrdup(\033]0;); code-type = TTYCODE_STRING; code = term-codes[TTYC_FSL]; code-value.string = xstrdup(\007); code-type = TTYCODE_STRING; } So really (assuming this is the actual issue and I'm not on crack), you can either test the diff above and let me know or go talk to upstream and ask them not to send this to the terminal ;-). If they changed it to terminate with ST rather than BEL it would probably fix wscons but there may be obscure terminals out there that don't like that either. On Tue, Jul 26, 2011 at 07:04:44AM +0200, David Coppa wrote: On Tue, Jul 26, 2011 at 2:56 AM, Bryan Linton b...@shoshoni.info wrote: On 2011-07-26 01:29:34, Nicholas Marriott nicholas.marri...@gmail.com wrote: Run ncmppc in script(1) and see what it is sending with TERM=wsvt25. Probably it is bypassing terminfo or doing something silly like trying to set the xterm window title which tends to make wscons unhappy. Script attached. This is mine. ciao, david
Re: [NEW] audio/ncmpcpp
Yep yours is doing it too similar to what's in my mail to dcoppa except it sets an empty title: ^[]0;^G On Mon, Jul 25, 2011 at 05:56:22PM -0700, Bryan Linton wrote: On 2011-07-26 01:29:34, Nicholas Marriott nicholas.marri...@gmail.com wrote: Run ncmppc in script(1) and see what it is sending with TERM=wsvt25. Probably it is bypassing terminfo or doing something silly like trying to set the xterm window title which tends to make wscons unhappy. Script attached. -- Bryan
Re: [NEW] audio/ncmpcpp
On Tue, 26 Jul 2011, Nicholas Marriott wrote: Yes it is trying to set the window title (three times in fact for some reason): ^[]0;Paolo Fresu Uri Caine - Darn That Dream^G IIRC this will make wscons freeze. This is because it expects OSC to be terminated by ST (\033\) not by ^G (\007). So it sits waiting for the end that will never arrive. I can't try it right now but you will probably be able to see the same with eg: $ printf \033]0;abc\007 If that does reproduce the behaviour then that's the problem. Well, there's a bug in ncmpcpp, into ncmpcpp-0.5.7/src/status.cpp: #ifndef USE_PDCURSES void WindowTitle(const std::string status) { if (strcmp(getenv(TERM), linux) Config.set_window_title) std::cout \033]0; status \7; } #endif // !USE_PDCURSES Here's the diff. Ok? Index: Makefile === RCS file: /cvs/ports/audio/ncmpcpp/Makefile,v retrieving revision 1.1.1.1 diff -u -p -r1.1.1.1 Makefile --- Makefile25 Jul 2011 20:08:23 - 1.1.1.1 +++ Makefile26 Jul 2011 07:45:09 - @@ -3,6 +3,7 @@ COMMENT = ncurses mpd client inspired by ncmpc DISTNAME = ncmpcpp-0.5.7 +REVISION = 0 EXTRACT_SUFX = .tar.bz2 Index: patches/patch-src_status_cpp === RCS file: patches/patch-src_status_cpp diff -N patches/patch-src_status_cpp --- /dev/null 1 Jan 1970 00:00:00 - +++ patches/patch-src_status_cpp26 Jul 2011 07:45:09 - @@ -0,0 +1,12 @@ +$OpenBSD$ +--- src/status.cpp.origTue Jul 26 09:34:42 2011 src/status.cpp Tue Jul 26 09:34:56 2011 +@@ -66,7 +66,7 @@ namespace + #ifndef USE_PDCURSES + void WindowTitle(const std::string status) + { +- if (strcmp(getenv(TERM), linux) Config.set_window_title) ++ if (!strcmp(getenv(TERM), linux) Config.set_window_title) + std::cout \033]0; status \7; + } + #endif // !USE_PDCURSES
Re: [NEW] audio/ncmpcpp
Well, this will stop it setting the title in xterm. I guess it is right and the intent here is to STOP it setting the title in the Linux console, even if the user turns it on. On Tue, Jul 26, 2011 at 09:46:48AM +0200, David Coppa wrote: On Tue, 26 Jul 2011, Nicholas Marriott wrote: Yes it is trying to set the window title (three times in fact for some reason): ^[]0;Paolo Fresu Uri Caine - Darn That Dream^G IIRC this will make wscons freeze. This is because it expects OSC to be terminated by ST (\033\) not by ^G (\007). So it sits waiting for the end that will never arrive. I can't try it right now but you will probably be able to see the same with eg: $ printf \033]0;abc\007 If that does reproduce the behaviour then that's the problem. Well, there's a bug in ncmpcpp, into ncmpcpp-0.5.7/src/status.cpp: #ifndef USE_PDCURSES void WindowTitle(const std::string status) { if (strcmp(getenv(TERM), linux) Config.set_window_title) std::cout \033]0; status \7; } #endif // !USE_PDCURSES Here's the diff. Ok? Index: Makefile === RCS file: /cvs/ports/audio/ncmpcpp/Makefile,v retrieving revision 1.1.1.1 diff -u -p -r1.1.1.1 Makefile --- Makefile 25 Jul 2011 20:08:23 - 1.1.1.1 +++ Makefile 26 Jul 2011 07:45:09 - @@ -3,6 +3,7 @@ COMMENT =ncurses mpd client inspired by ncmpc DISTNAME = ncmpcpp-0.5.7 +REVISION = 0 EXTRACT_SUFX = .tar.bz2 Index: patches/patch-src_status_cpp === RCS file: patches/patch-src_status_cpp diff -N patches/patch-src_status_cpp --- /dev/null 1 Jan 1970 00:00:00 - +++ patches/patch-src_status_cpp 26 Jul 2011 07:45:09 - @@ -0,0 +1,12 @@ +$OpenBSD$ +--- src/status.cpp.orig Tue Jul 26 09:34:42 2011 src/status.cpp Tue Jul 26 09:34:56 2011 +@@ -66,7 +66,7 @@ namespace + #ifndef USE_PDCURSES + void WindowTitle(const std::string status) + { +-if (strcmp(getenv(TERM), linux) Config.set_window_title) ++if (!strcmp(getenv(TERM), linux) Config.set_window_title) + std::cout \033]0; status \7; + } + #endif // !USE_PDCURSES
Re: [NEW] audio/ncmpcpp
On Tue, Jul 26, 2011 at 9:55 AM, Nicholas Marriott nicholas.marri...@gmail.com wrote: Well, this will stop it setting the title in xterm. I guess it is right and the intent here is to STOP it setting the title in the Linux console, even if the user turns it on. Ah... You're right. I'll try your patch then :)
Re: [NEW] audio/ncmpcpp
On Tue, 26 Jul 2011, Nicholas Marriott wrote: Well, this will stop it setting the title in xterm. I guess it is right and the intent here is to STOP it setting the title in the Linux console, even if the user turns it on. Unfortunately I cannot test your patch until I'll be back home this evening. Btw, I think that relying on the fact that linux is the only console not understanding '\033' and '\007' is likewise wrong. Maybe, this is a better diff: Index: Makefile === RCS file: /cvs/ports/audio/ncmpcpp/Makefile,v retrieving revision 1.1.1.1 diff -u -p -r1.1.1.1 Makefile --- Makefile25 Jul 2011 20:08:23 - 1.1.1.1 +++ Makefile26 Jul 2011 09:26:33 - @@ -3,6 +3,7 @@ COMMENT = ncurses mpd client inspired by ncmpc DISTNAME = ncmpcpp-0.5.7 +REVISION = 0 EXTRACT_SUFX = .tar.bz2 Index: patches/patch-src_status_cpp === RCS file: patches/patch-src_status_cpp diff -N patches/patch-src_status_cpp --- /dev/null 1 Jan 1970 00:00:00 - +++ patches/patch-src_status_cpp26 Jul 2011 09:26:33 - @@ -0,0 +1,12 @@ +$OpenBSD$ +--- src/status.cpp.origTue Jul 26 11:11:16 2011 src/status.cpp Tue Jul 26 11:11:21 2011 +@@ -66,7 +66,7 @@ namespace + #ifndef USE_PDCURSES + void WindowTitle(const std::string status) + { +- if (strcmp(getenv(TERM), linux) Config.set_window_title) ++ if (Config.set_window_title (strstr(xterm, getenv(TERM)) != NULL || strstr(rxvt, getenv(TERM)) != NULL)) + std::cout \033]0; status \7; + } + #endif // !USE_PDCURSES
Re: [NEW] audio/ncmpcpp
Yes this is what tmux used to do, but you are forgetting konsole, gnome-terminal, Eterm and many others. I would check for the XT flag in terminfo in preference. Our terminfo is new enough that it is present. If setupterm() or similar has already been called by this point you can try tigetflag(XT). The other possibility is to default Config.set_window_title to off and allow users to turn it on only when they are running on a terminal which supports it. On Tue, Jul 26, 2011 at 11:28:00AM +0200, David Coppa wrote: On Tue, 26 Jul 2011, Nicholas Marriott wrote: Well, this will stop it setting the title in xterm. I guess it is right and the intent here is to STOP it setting the title in the Linux console, even if the user turns it on. Unfortunately I cannot test your patch until I'll be back home this evening. Btw, I think that relying on the fact that linux is the only console not understanding '\033' and '\007' is likewise wrong. Maybe, this is a better diff: Index: Makefile === RCS file: /cvs/ports/audio/ncmpcpp/Makefile,v retrieving revision 1.1.1.1 diff -u -p -r1.1.1.1 Makefile --- Makefile 25 Jul 2011 20:08:23 - 1.1.1.1 +++ Makefile 26 Jul 2011 09:26:33 - @@ -3,6 +3,7 @@ COMMENT =ncurses mpd client inspired by ncmpc DISTNAME = ncmpcpp-0.5.7 +REVISION = 0 EXTRACT_SUFX = .tar.bz2 Index: patches/patch-src_status_cpp === RCS file: patches/patch-src_status_cpp diff -N patches/patch-src_status_cpp --- /dev/null 1 Jan 1970 00:00:00 - +++ patches/patch-src_status_cpp 26 Jul 2011 09:26:33 - @@ -0,0 +1,12 @@ +$OpenBSD$ +--- src/status.cpp.orig Tue Jul 26 11:11:16 2011 src/status.cpp Tue Jul 26 11:11:21 2011 +@@ -66,7 +66,7 @@ namespace + #ifndef USE_PDCURSES + void WindowTitle(const std::string status) + { +-if (strcmp(getenv(TERM), linux) Config.set_window_title) ++if (Config.set_window_title (strstr(xterm, getenv(TERM)) != NULL || strstr(rxvt, getenv(TERM)) != NULL)) + std::cout \033]0; status \7; + } + #endif // !USE_PDCURSES
Re: [NEW] audio/ncmpcpp
On Tue, 26 Jul 2011, Nicholas Marriott wrote: Yes this is what tmux used to do, but you are forgetting konsole, gnome-terminal, Eterm and many others. I would check for the XT flag in terminfo in preference. Our terminfo is new enough that it is present. If setupterm() or similar has already been called by this point you can try tigetflag(XT). No way :( ncmpcpp does not use terminfo(3) The other possibility is to default Config.set_window_title to off and allow users to turn it on only when they are running on a terminal which supports it. This is probably the better/easiest thing to do. I think I'll commit the diff below: if you want the window title, just uncomment '#enable_window_title = yes' in your ~/.ncmpcpp/config... Index: Makefile === RCS file: /cvs/ports/audio/ncmpcpp/Makefile,v retrieving revision 1.1.1.1 diff -u -p -r1.1.1.1 Makefile --- Makefile25 Jul 2011 20:08:23 - 1.1.1.1 +++ Makefile26 Jul 2011 10:07:32 - @@ -3,6 +3,7 @@ COMMENT = ncurses mpd client inspired by ncmpc DISTNAME = ncmpcpp-0.5.7 +REVISION = 0 EXTRACT_SUFX = .tar.bz2 Index: patches/patch-src_settings_cpp === RCS file: patches/patch-src_settings_cpp diff -N patches/patch-src_settings_cpp --- /dev/null 1 Jan 1970 00:00:00 - +++ patches/patch-src_settings_cpp 26 Jul 2011 10:07:32 - @@ -0,0 +1,16 @@ +$OpenBSD$ + +Disable set_window_title by default as it causes troubles +with wscons + +--- src/settings.cpp.orig Tue Jul 26 11:49:54 2011 src/settings.cpp Tue Jul 26 11:49:31 2011 +@@ -428,7 +428,7 @@ void NcmpcppConfig::SetDefaults() + media_library_disable_two_column_mode = false; + discard_colors_if_item_is_selected = true; + store_lyrics_in_song_dir = false; +- set_window_title = true; ++ set_window_title = false; + mpd_port = 6600; + mpd_connection_timeout = 15; + crossfade_time = 5;
Re: [NEW] audio/ncmpcpp
If it uses ncurses then yes it does use terminfo. But sure, disable window title is easiest. On Tue, Jul 26, 2011 at 12:08:37PM +0200, David Coppa wrote: On Tue, 26 Jul 2011, Nicholas Marriott wrote: Yes this is what tmux used to do, but you are forgetting konsole, gnome-terminal, Eterm and many others. I would check for the XT flag in terminfo in preference. Our terminfo is new enough that it is present. If setupterm() or similar has already been called by this point you can try tigetflag(XT). No way :( ncmpcpp does not use terminfo(3) The other possibility is to default Config.set_window_title to off and allow users to turn it on only when they are running on a terminal which supports it. This is probably the better/easiest thing to do. I think I'll commit the diff below: if you want the window title, just uncomment '#enable_window_title = yes' in your ~/.ncmpcpp/config... Index: Makefile === RCS file: /cvs/ports/audio/ncmpcpp/Makefile,v retrieving revision 1.1.1.1 diff -u -p -r1.1.1.1 Makefile --- Makefile 25 Jul 2011 20:08:23 - 1.1.1.1 +++ Makefile 26 Jul 2011 10:07:32 - @@ -3,6 +3,7 @@ COMMENT =ncurses mpd client inspired by ncmpc DISTNAME = ncmpcpp-0.5.7 +REVISION = 0 EXTRACT_SUFX = .tar.bz2 Index: patches/patch-src_settings_cpp === RCS file: patches/patch-src_settings_cpp diff -N patches/patch-src_settings_cpp --- /dev/null 1 Jan 1970 00:00:00 - +++ patches/patch-src_settings_cpp26 Jul 2011 10:07:32 - @@ -0,0 +1,16 @@ +$OpenBSD$ + +Disable set_window_title by default as it causes troubles +with wscons + +--- src/settings.cpp.origTue Jul 26 11:49:54 2011 src/settings.cpp Tue Jul 26 11:49:31 2011 +@@ -428,7 +428,7 @@ void NcmpcppConfig::SetDefaults() + media_library_disable_two_column_mode = false; + discard_colors_if_item_is_selected = true; + store_lyrics_in_song_dir = false; +-set_window_title = true; ++set_window_title = false; + mpd_port = 6600; + mpd_connection_timeout = 15; + crossfade_time = 5;
Re: [NEW] audio/ncmpcpp
On Tue, Jul 26, 2011 at 12:10 PM, Nicholas Marriott nicholas.marri...@gmail.com wrote: If it uses ncurses then yes it does use terminfo. yes, i meant it doesn't already use terminfo's routines directly, thus the patch would become a little too intrusive...
Re: [NEW] audio/ncmpcpp
Well, I don't know about that, tigetflag is in libncurses and if you've called setupterm or whatever it should work just fine. But if you like. On Tue, Jul 26, 2011 at 12:19:33PM +0200, David Coppa wrote: On Tue, Jul 26, 2011 at 12:10 PM, Nicholas Marriott nicholas.marri...@gmail.com wrote: If it uses ncurses then yes it does use terminfo. yes, i meant it doesn't already use terminfo's routines directly, thus the patch would become a little too intrusive...
Re: [NEW] audio/ncmpcpp
On Tue, Jul 26, 2011 at 9:23 AM, Nicholas Marriott nicholas.marri...@gmail.com wrote: Yes it is trying to set the window title (three times in fact for some reason): ^[]0;Paolo Fresu Uri Caine - Darn That Dream^G IIRC this will make wscons freeze. This is because it expects OSC to be terminated by ST (\033\) not by ^G (\007). So it sits waiting for the end that will never arrive. I can't try it right now but you will probably be able to see the same with eg: $ printf \033]0;abc\007 If that does reproduce the behaviour then that's the problem. I think wscons actually technically does the right thing here - C0 are supposed to operate as normal inside escape sequences. I'm not sure where this idea that BEL should terminate OSC came from. However, it is pretty much the de facto standard now (ie, xterm supports it). Something like this might do it but not tested: Index: wsemul_vt100.c === RCS file: /cvs/src/sys/dev/wscons/wsemul_vt100.c,v retrieving revision 1.27 diff -u -p -r1.27 wsemul_vt100.c --- wsemul_vt100.c 1 Sep 2010 21:17:16 - 1.27 +++ wsemul_vt100.c 26 Jul 2011 07:19:20 - @@ -386,7 +386,10 @@ wsemul_vt100_output_c0c1(struct wsemul_v /* ignore */ break; case ASCII_BEL: - wsdisplay_emulbell(edp-cbcookie); + if (edp-state == VT100_EMUL_STATE_STRING) + edp-state = VT100_EMUL_STATE_NORMAL; + else + wsdisplay_emulbell(edp-cbcookie); break; case ASCII_BS: if (edp-ccol 0) { Your patch works. ncmpcpp no longer hangs on console *with enable_window_title set to yes*. Can it be committed? cheers, David
Re: [NEW] audio/ncmpcpp
On Sun, Jul 24, 2011 at 10:06 PM, Bryan Linton b...@shoshoni.info wrote: On 2011-07-24 18:38:55, David Coppa dco...@gmail.com wrote: No one wants to comment/ok this? (Mostly) works for me on i386. The tag editor/search page doesn't respond to a backspace key at all. Delete functions as a backspace key instead (deleting to the left of the cursor). Works for me. Please, can you retry with: $ env LC_CTYPE=en_US.UTF-8 ncmpcpp Ciao, David
Re: [NEW] audio/ncmpcpp
On 2011-07-25 10:49:47, David Coppa dco...@gmail.com wrote: On Sun, Jul 24, 2011 at 10:06 PM, Bryan Linton b...@shoshoni.info wrote: On 2011-07-24 18:38:55, David Coppa dco...@gmail.com wrote: No one wants to comment/ok this? (Mostly) works for me on i386. The tag editor/search page doesn't respond to a backspace key at all. Delete functions as a backspace key instead (deleting to the left of the cursor). Works for me. Please, can you retry with: $ env LC_CTYPE=en_US.UTF-8 ncmpcpp No change. However, unchecking Backarrow Key (BS/DEL) in the xterm main options menu causes ncmpcpp to behave the same as ncmpc WRT backspace. Leaving it unchecked causes the xterm window to treat both backspace and delete as delete so I can't disable it permanently but it's a simple workaround to disable it just for ncmpcpp. I tried running it on the console. The system bell beeped once and then everything on the screen disappeared except a flashing underscore character two lines above the bottom of the screen. ncmpc and mutt work fine with TERM=wsvt25. I tried setting TERM to vt100 and vt220. Mutt and ncmpc work fine with them, albeit without color, but ncmpcpp still causes the screen to blank as above. If I press ^C I hear the system bell beep again. When followed by a ^D and enter I get the login prompt back. I get no coredump afterwards. Packages were updated with the snapshot I'm running. Two potentially relevant files follow. I can't think of anything else that could be causing this. Can you reproduce this at all? If not I'll do some more digging on my own. I don't think I have anything weird going on with my system or configuration but if I do I'd like to fix it. ### wsconsctl.conf # $OpenBSD: wsconsctl.conf,v 1.2 2007/05/14 05:06:03 tedu Exp $ # # wscons configurable parameters # keyboard.repeat.del1=300# change keyboard repeat/delay keyboard.repeat.deln=30 #keyboard.encoding=ru # use different keyboard encoding #keyboard.bell.volume=0 # mute keyboard beep #display.vblank=on # enable vertical sync blank for screen burner #display.screen_off=6 # set screen burner timeout to 60 seconds #display.msact=off # disable screen unburn w/ mouse keyboard.map+=keysym Caps_Lock = Escape # set caps-lock to escape keyboard.bell.pitch=440 ### dmesg OpenBSD 4.9-current (GENERIC) #8: Wed Jul 13 09:47:42 MDT 2011 dera...@i386.openbsd.org:/usr/src/sys/arch/i386/compile/GENERIC cpu0: AMD Athlon(tm) Processor (AuthenticAMD 686-class, 256KB L2 cache) 1.01 GHz cpu0: FPU,V86,DE,PSE,TSC,MSR,PAE,MCE,CX8,SEP,MTRR,PGE,MCA,CMOV,PAT,PSE36,MMX,FXSR real mem = 804753408 (767MB) avail mem = 781537280 (745MB) mainbus0 at root bios0 at mainbus0: AT/286+ BIOS, date 04/23/02, BIOS32 rev. 0 @ 0xf0f80, SMBIOS rev. 2.3 @ 0xf2940 (49 entries) bios0: vendor Award Software, Inc. version ASUS A7V ACPI BIOS Revision 1011 date 04/23/2002 bios0: ASUSTeK Computer INC. A7V apm0 at bios0: Power Management spec V1.2 acpi at bios0 function 0x0 not configured pcibios0 at bios0: rev 2.1 @ 0xf/0x1802 pcibios0: PCI IRQ Routing Table rev 1.0 @ 0xf1750/176 (9 entries) pcibios0: PCI Interrupt Router at 000:04:0 (VIA VT82C686 ISA rev 0x00) pcibios0: PCI bus #1 is the last bus bios0: ROM list: 0xc/0xf400 0xd/0x4000! cpu0 at mainbus0: (uniprocessor) pci0 at mainbus0 bus 0: configuration mode 1 (bios) pchb0 at pci0 dev 0 function 0 VIA VT8363 Host rev 0x02 viaagp0 at pchb0: v2 agp0 at viaagp0: aperture at 0xe000, size 0x1000 ppb0 at pci0 dev 1 function 0 VIA VT8363 AGP rev 0x00 pci1 at ppb0 bus 1 vga1 at pci1 dev 0 function 0 ATI Radeon X1300/X1550 rev 0x00 wsdisplay0 at vga1 mux 1: console (80x25, vt100 emulation) wsdisplay0: screen 1-5 added (80x25, vt100 emulation) radeondrm0 at vga1: irq 11 drm0 at radeondrm0 ATI Radeon X1300/X1550 Sec rev 0x00 at pci1 dev 0 function 1 not configured pcib0 at pci0 dev 4 function 0 VIA VT82C686 ISA rev 0x22 pciide0 at pci0 dev 4 function 1 VIA VT82C571 IDE rev 0x10: ATA66, channel 0 configured to compatibility, channel 1 configured to compatibility wd0 at pciide0 channel 0 drive 0: TRANSCEND wd0: 1-sector PIO, LBA, 3823MB, 7831152 sectors wd0(pciide0:0:0): using PIO mode 4, Ultra-DMA mode 4 atapiscsi0 at pciide0 channel 1 drive 0 scsibus0 at atapiscsi0: 2 targets cd0 at scsibus0 targ 0 lun 0: ASUS, DVD-ROM E608, l.40 ATAPI 5/cdrom removable atapiscsi1 at pciide0 channel 1 drive 1 scsibus1 at atapiscsi1: 2 targets cd1 at scsibus1 targ 0 lun 0: PLEXTOR, CD-R PX-W1610A, 1.05 ATAPI 5/cdrom removable cd0(pciide0:1:0): using PIO mode 4, Ultra-DMA mode 2 cd1(pciide0:1:1): using PIO mode 4, Ultra-DMA mode 2 uhci0 at pci0 dev 4 function 2 VIA VT83C572 USB rev 0x10: irq 5 uhci1 at pci0 dev 4 function 3 VIA VT83C572 USB rev 0x10: irq 5 viapm0 at pci0 dev 4 function 4 VIA VT82C686 SMBus rev 0x30: SMI iic0 at viapm0 lm1 at iic0 addr 0x2d: AS99127F viapm0: 24-bit timer at 3579545Hz viapm0: HWM disabled cmpci0 at pci0 dev 9
Re: [NEW] audio/ncmpcpp
Run ncmppc in script(1) and see what it is sending with TERM=wsvt25. Probably it is bypassing terminfo or doing something silly like trying to set the xterm window title which tends to make wscons unhappy. On Mon, Jul 25, 2011 at 05:19:31PM -0700, Bryan Linton wrote: On 2011-07-25 10:49:47, David Coppa dco...@gmail.com wrote: On Sun, Jul 24, 2011 at 10:06 PM, Bryan Linton b...@shoshoni.info wrote: On 2011-07-24 18:38:55, David Coppa dco...@gmail.com wrote: No one wants to comment/ok this? (Mostly) works for me on i386. ?The tag editor/search page doesn't respond to a backspace key at all. ?Delete functions as a backspace key instead (deleting to the left of the cursor). Works for me. Please, can you retry with: $ env LC_CTYPE=en_US.UTF-8 ncmpcpp No change. However, unchecking Backarrow Key (BS/DEL) in the xterm main options menu causes ncmpcpp to behave the same as ncmpc WRT backspace. Leaving it unchecked causes the xterm window to treat both backspace and delete as delete so I can't disable it permanently but it's a simple workaround to disable it just for ncmpcpp. I tried running it on the console. The system bell beeped once and then everything on the screen disappeared except a flashing underscore character two lines above the bottom of the screen. ncmpc and mutt work fine with TERM=wsvt25. I tried setting TERM to vt100 and vt220. Mutt and ncmpc work fine with them, albeit without color, but ncmpcpp still causes the screen to blank as above. If I press ^C I hear the system bell beep again. When followed by a ^D and enter I get the login prompt back. I get no coredump afterwards. Packages were updated with the snapshot I'm running. Two potentially relevant files follow. I can't think of anything else that could be causing this. Can you reproduce this at all? If not I'll do some more digging on my own. I don't think I have anything weird going on with my system or configuration but if I do I'd like to fix it. ### wsconsctl.conf # $OpenBSD: wsconsctl.conf,v 1.2 2007/05/14 05:06:03 tedu Exp $ # # wscons configurable parameters # keyboard.repeat.del1=300 # change keyboard repeat/delay keyboard.repeat.deln=30 #keyboard.encoding=ru # use different keyboard encoding #keyboard.bell.volume=0 # mute keyboard beep #display.vblank=on# enable vertical sync blank for screen burner #display.screen_off=6 # set screen burner timeout to 60 seconds #display.msact=off# disable screen unburn w/ mouse keyboard.map+=keysym Caps_Lock = Escape # set caps-lock to escape keyboard.bell.pitch=440 ### dmesg OpenBSD 4.9-current (GENERIC) #8: Wed Jul 13 09:47:42 MDT 2011 dera...@i386.openbsd.org:/usr/src/sys/arch/i386/compile/GENERIC cpu0: AMD Athlon(tm) Processor (AuthenticAMD 686-class, 256KB L2 cache) 1.01 GHz cpu0: FPU,V86,DE,PSE,TSC,MSR,PAE,MCE,CX8,SEP,MTRR,PGE,MCA,CMOV,PAT,PSE36,MMX,FXSR real mem = 804753408 (767MB) avail mem = 781537280 (745MB) mainbus0 at root bios0 at mainbus0: AT/286+ BIOS, date 04/23/02, BIOS32 rev. 0 @ 0xf0f80, SMBIOS rev. 2.3 @ 0xf2940 (49 entries) bios0: vendor Award Software, Inc. version ASUS A7V ACPI BIOS Revision 1011 date 04/23/2002 bios0: ASUSTeK Computer INC. A7V apm0 at bios0: Power Management spec V1.2 acpi at bios0 function 0x0 not configured pcibios0 at bios0: rev 2.1 @ 0xf/0x1802 pcibios0: PCI IRQ Routing Table rev 1.0 @ 0xf1750/176 (9 entries) pcibios0: PCI Interrupt Router at 000:04:0 (VIA VT82C686 ISA rev 0x00) pcibios0: PCI bus #1 is the last bus bios0: ROM list: 0xc/0xf400 0xd/0x4000! cpu0 at mainbus0: (uniprocessor) pci0 at mainbus0 bus 0: configuration mode 1 (bios) pchb0 at pci0 dev 0 function 0 VIA VT8363 Host rev 0x02 viaagp0 at pchb0: v2 agp0 at viaagp0: aperture at 0xe000, size 0x1000 ppb0 at pci0 dev 1 function 0 VIA VT8363 AGP rev 0x00 pci1 at ppb0 bus 1 vga1 at pci1 dev 0 function 0 ATI Radeon X1300/X1550 rev 0x00 wsdisplay0 at vga1 mux 1: console (80x25, vt100 emulation) wsdisplay0: screen 1-5 added (80x25, vt100 emulation) radeondrm0 at vga1: irq 11 drm0 at radeondrm0 ATI Radeon X1300/X1550 Sec rev 0x00 at pci1 dev 0 function 1 not configured pcib0 at pci0 dev 4 function 0 VIA VT82C686 ISA rev 0x22 pciide0 at pci0 dev 4 function 1 VIA VT82C571 IDE rev 0x10: ATA66, channel 0 configured to compatibility, channel 1 configured to compatibility wd0 at pciide0 channel 0 drive 0: TRANSCEND wd0: 1-sector PIO, LBA, 3823MB, 7831152 sectors wd0(pciide0:0:0): using PIO mode 4, Ultra-DMA mode 4 atapiscsi0 at pciide0 channel 1 drive 0 scsibus0 at atapiscsi0: 2 targets cd0 at scsibus0 targ 0 lun 0: ASUS, DVD-ROM E608, l.40 ATAPI 5/cdrom removable atapiscsi1 at pciide0 channel 1 drive 1 scsibus1 at atapiscsi1: 2 targets cd1 at scsibus1 targ 0 lun 0: PLEXTOR, CD-R PX-W1610A, 1.05 ATAPI 5/cdrom removable cd0(pciide0:1:0): using PIO mode 4,
Re: [NEW] audio/ncmpcpp
The bs key thing is probably something like it assumes backspace will be ^H but on OpenBSD it is \177. Dunno why it works for dcoppa unless he is using a terminal which sends something else for backspace. Delete is typically \033[3~ but I would guess it just gets that from ncurses and pretends it is backspace. On Tue, Jul 26, 2011 at 01:29:34AM +0100, Nicholas Marriott wrote: Run ncmppc in script(1) and see what it is sending with TERM=wsvt25. Probably it is bypassing terminfo or doing something silly like trying to set the xterm window title which tends to make wscons unhappy. On Mon, Jul 25, 2011 at 05:19:31PM -0700, Bryan Linton wrote: On 2011-07-25 10:49:47, David Coppa dco...@gmail.com wrote: On Sun, Jul 24, 2011 at 10:06 PM, Bryan Linton b...@shoshoni.info wrote: On 2011-07-24 18:38:55, David Coppa dco...@gmail.com wrote: No one wants to comment/ok this? (Mostly) works for me on i386. ?The tag editor/search page doesn't respond to a backspace key at all. ?Delete functions as a backspace key instead (deleting to the left of the cursor). Works for me. Please, can you retry with: $ env LC_CTYPE=en_US.UTF-8 ncmpcpp No change. However, unchecking Backarrow Key (BS/DEL) in the xterm main options menu causes ncmpcpp to behave the same as ncmpc WRT backspace. Leaving it unchecked causes the xterm window to treat both backspace and delete as delete so I can't disable it permanently but it's a simple workaround to disable it just for ncmpcpp. I tried running it on the console. The system bell beeped once and then everything on the screen disappeared except a flashing underscore character two lines above the bottom of the screen. ncmpc and mutt work fine with TERM=wsvt25. I tried setting TERM to vt100 and vt220. Mutt and ncmpc work fine with them, albeit without color, but ncmpcpp still causes the screen to blank as above. If I press ^C I hear the system bell beep again. When followed by a ^D and enter I get the login prompt back. I get no coredump afterwards. Packages were updated with the snapshot I'm running. Two potentially relevant files follow. I can't think of anything else that could be causing this. Can you reproduce this at all? If not I'll do some more digging on my own. I don't think I have anything weird going on with my system or configuration but if I do I'd like to fix it. ### wsconsctl.conf # $OpenBSD: wsconsctl.conf,v 1.2 2007/05/14 05:06:03 tedu Exp $ # # wscons configurable parameters # keyboard.repeat.del1=300# change keyboard repeat/delay keyboard.repeat.deln=30 #keyboard.encoding=ru # use different keyboard encoding #keyboard.bell.volume=0 # mute keyboard beep #display.vblank=on # enable vertical sync blank for screen burner #display.screen_off=6 # set screen burner timeout to 60 seconds #display.msact=off # disable screen unburn w/ mouse keyboard.map+=keysym Caps_Lock = Escape # set caps-lock to escape keyboard.bell.pitch=440 ### dmesg OpenBSD 4.9-current (GENERIC) #8: Wed Jul 13 09:47:42 MDT 2011 dera...@i386.openbsd.org:/usr/src/sys/arch/i386/compile/GENERIC cpu0: AMD Athlon(tm) Processor (AuthenticAMD 686-class, 256KB L2 cache) 1.01 GHz cpu0: FPU,V86,DE,PSE,TSC,MSR,PAE,MCE,CX8,SEP,MTRR,PGE,MCA,CMOV,PAT,PSE36,MMX,FXSR real mem = 804753408 (767MB) avail mem = 781537280 (745MB) mainbus0 at root bios0 at mainbus0: AT/286+ BIOS, date 04/23/02, BIOS32 rev. 0 @ 0xf0f80, SMBIOS rev. 2.3 @ 0xf2940 (49 entries) bios0: vendor Award Software, Inc. version ASUS A7V ACPI BIOS Revision 1011 date 04/23/2002 bios0: ASUSTeK Computer INC. A7V apm0 at bios0: Power Management spec V1.2 acpi at bios0 function 0x0 not configured pcibios0 at bios0: rev 2.1 @ 0xf/0x1802 pcibios0: PCI IRQ Routing Table rev 1.0 @ 0xf1750/176 (9 entries) pcibios0: PCI Interrupt Router at 000:04:0 (VIA VT82C686 ISA rev 0x00) pcibios0: PCI bus #1 is the last bus bios0: ROM list: 0xc/0xf400 0xd/0x4000! cpu0 at mainbus0: (uniprocessor) pci0 at mainbus0 bus 0: configuration mode 1 (bios) pchb0 at pci0 dev 0 function 0 VIA VT8363 Host rev 0x02 viaagp0 at pchb0: v2 agp0 at viaagp0: aperture at 0xe000, size 0x1000 ppb0 at pci0 dev 1 function 0 VIA VT8363 AGP rev 0x00 pci1 at ppb0 bus 1 vga1 at pci1 dev 0 function 0 ATI Radeon X1300/X1550 rev 0x00 wsdisplay0 at vga1 mux 1: console (80x25, vt100 emulation) wsdisplay0: screen 1-5 added (80x25, vt100 emulation) radeondrm0 at vga1: irq 11 drm0 at radeondrm0 ATI Radeon X1300/X1550 Sec rev 0x00 at pci1 dev 0 function 1 not configured pcib0 at pci0 dev 4 function 0 VIA VT82C686 ISA rev 0x22 pciide0 at pci0 dev 4 function 1 VIA VT82C571 IDE rev 0x10: ATA66, channel 0 configured to compatibility, channel 1 configured to compatibility wd0 at pciide0 channel 0
Re: [NEW] audio/ncmpcpp
On 2011-07-26 01:29:34, Nicholas Marriott nicholas.marri...@gmail.com wrote: Run ncmppc in script(1) and see what it is sending with TERM=wsvt25. Probably it is bypassing terminfo or doing something silly like trying to set the xterm window title which tends to make wscons unhappy. Script attached. -- Bryan ncmpcpp.script Description: Binary data
Re: [NEW] audio/ncmpcpp
On Tue, Jul 26, 2011 at 2:56 AM, Bryan Linton b...@shoshoni.info wrote: On 2011-07-26 01:29:34, Nicholas Marriott nicholas.marri...@gmail.com wrote: Run ncmppc in script(1) and see what it is sending with TERM=wsvt25. Probably it is bypassing terminfo or doing something silly like trying to set the xterm window title which tends to make wscons unhappy. Script attached. This is mine. ciao, david script.out Description: Binary data
Re: [NEW] audio/ncmpcpp
No one wants to comment/ok this? ciao, david On Wed, Jul 20, 2011 at 4:20 PM, David Coppa dco...@gmail.com wrote: Hi, This is a port of ncmpcpp, a clone of ncmpc with enhanced features. cheers! David $ pkg_info ncmpcpp Information for inst:ncmpcpp-0.5.7 Comment: ncurses mpd client inspired by ncmpc Description: Ncmpcpp or ncmpc++ is a mpd client with a UI very similar to ncmpc, but it provides new useful features such as support for regular expressions in the search engine, extended song format, items filtering, last.fm support, ability to sort playlists, local filesystem browser and other minor functions. Maintainer: David Coppa dco...@openbsd.org WWW: http://unkart.ovh.org/ncmpcpp/ Install notice: To change the default configuration options, copy the provided /usr/local/share/examples/ncmpcpp/config to ~/.ncmpcpp/config and modify it as necessary.
Re: [NEW] audio/ncmpcpp
On 2011-07-24 18:38:55, David Coppa dco...@gmail.com wrote: No one wants to comment/ok this? (Mostly) works for me on i386. The tag editor/search page doesn't respond to a backspace key at all. Delete functions as a backspace key instead (deleting to the left of the cursor). I checked audio/ncmpc and it treats both backspace and delete the same way (deleting to the left). mail/mutt does so as well. I still like ncmpcpp a lot better than audio/ncmpc however. It would be nice to see it imported even with this small bug. -- Bryan
[NEW] audio/ncmpcpp
Hi, This is a port of ncmpcpp, a clone of ncmpc with enhanced features. cheers! David $ pkg_info ncmpcpp Information for inst:ncmpcpp-0.5.7 Comment: ncurses mpd client inspired by ncmpc Description: Ncmpcpp or ncmpc++ is a mpd client with a UI very similar to ncmpc, but it provides new useful features such as support for regular expressions in the search engine, extended song format, items filtering, last.fm support, ability to sort playlists, local filesystem browser and other minor functions. Maintainer: David Coppa dco...@openbsd.org WWW: http://unkart.ovh.org/ncmpcpp/ Install notice: To change the default configuration options, copy the provided /usr/local/share/examples/ncmpcpp/config to ~/.ncmpcpp/config and modify it as necessary. ncmpcpp.tgz Description: application/tar-gz