[tin-users] Piping/Printing message looks odd TODO
Thomas Dickey
dickey at his.com
Tue Mar 15 10:10:19 CET 2016
On Tue, Mar 15, 2016 at 08:04:12AM +0100, Urs Janßen wrote:
> On Mon, Mar 14, 2016 at 08:45:13PM -0400, Glenn Spell wrote:
> > For years the following note has been in the tin feed.c file
> > concerning the piping and printing messages:
> >
> > /* TODO: looks odd because screen mode is raw */
> >
> > For almost fifteen years this has been a problem with tin on NetBSD.
> >
> > Here's what the problem looks like when piping a thread:
> >
> > Piping... (7/261) 98% Piping... (18/261) 45% Piping... (18/261) 91%
> > (0:00 remaining)Piping... (23/261) 100% Piping... (43/261) 83% Pipin
> > g... (47/261) 48% Piping... (47/261) 96% (0:00 remaining)Piping... (
> > 54/261) 98% Piping... (55/261) 64% Piping... (56/261) 94% Piping...
> >
> > Is there a terminal setting that might affect this issue?
>
> AFAIK no
>
> > As an illustration, the following patch provides me with a workaround
> > for this issue.
>
> It doesn't make any differfence here - looks as ugly as always on
> x86_64-pc-linux-gnu; ncursesw5.
>
> > Is there some better way to deal with this issue?
>
> just a guess: if there would have been an easy fix (except per message mode
> switching) it would have been implemented right away ...
> Maybe Thomas has an idea.
not offhand (I may have written the comment).
ncurses (any curses implementation) puts the terminal input/output into
raw mode, which in this case means that carriage returns and line-feeds
are not interpreted by the terminal driver.
> > Index: src/feed.c
> > --- tin-2.3.2.orig/src/feed.c 2015-11-22 00:14:30.000000000 +0000
> > +++ tin-2.3.2/src/feed.c 2016-03-12 02:26:33.000000000 +0000
> > @@ -440,6 +440,8 @@ feed_article(
> > #ifndef DONT_HAVE_PIPING
> > case FEED_PIPE:
> > /* TODO: looks odd because screen mode is raw */
> > + echochar(13);
> > + clrtoeol();
The code looks "okay", but (reading the source), I think the fix should
be in screen.c within show_progress().
> > progress_mesg = fmt_string("%s (%d/%d)", _(txt_piping), counter->total, counter->max);
> > break;
> > #endif /* !DONT_HAVE_PIPING */
> > @@ -447,6 +449,8 @@ feed_article(
> > #ifndef DISABLE_PRINTING
> > case FEED_PRINT:
> > /* TODO: looks odd because screen mode is raw */
> > + echochar(13);
> > + clrtoeol();
> > progress_mesg = fmt_string("%s (%d/%d)", _(txt_printing), counter->total, counter->max);
> > break;
> > #endif /* !DISABLE_PRINTING */
> > Index: src/lang.c
> > --- tin-2.3.2.orig/src/lang.c 2015-11-22 00:14:30.000000000 +0000
> > +++ tin-2.3.2/src/lang.c 2016-03-12 02:25:55.000000000 +0000
> > @@ -1141,7 +1141,7 @@ Tin will try to use XHDR XREF instead (s
> > constext txt_articles_printed[] = N_("%d %s printed");
> > constext txt_help_global_print[] = N_("output article/thread/hot/pattern/tagged articles to printer");
> > constext txt_print[] = N_("Print");
> > - constext txt_printing[] = N_("Printing...");
> > + constext txt_printing[] = N_("\rPrinting...");
adding formatting to messages doesn't seem the right solution
> > #endif /* !DISABLE_PRINTING */
> >
> > #ifndef DONT_HAVE_PIPING
> > @@ -1149,7 +1149,7 @@ Tin will try to use XHDR XREF instead (s
> > constext txt_no_command[] = N_("No command");
> > constext txt_pipe[] = N_("Pipe");
> > constext txt_pipe_to_command[] = N_("Pipe to command [%.*s]> ");
> > - constext txt_piping[] = N_("Piping...");
> > + constext txt_piping[] = N_("\rPiping...");
> > #else
> > constext txt_piping_not_enabled[] = N_("Piping not enabled.");
> > #endif /* !DONT_HAVE_PIPING */
> >
--
Thomas E. Dickey <dickey at invisible-island.net>
http://invisible-island.net
ftp://invisible-island.net
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 198 bytes
Desc: Digital signature
URL: <http://lists.tin.org/pipermail/tin-users/attachments/20160315/24af9fa0/attachment.sig>
More information about the tin-users
mailing list