public inbox for ecos-discuss@sourceware.org
 help / color / mirror / Atom feed
From: Sergei Gavrikov <w3sg@SoftHome.net>
To: ecos-discuss@ecos.sourceware.org
Subject: Re: [ECOS]  Re: diag_printf refuses to print ANSI escape sequences?
Date: Sun, 27 May 2007 14:42:00 -0000	[thread overview]
Message-ID: <20070527101131.GA8574@ubuntu> (raw)
In-Reply-To: <f3a4os$ecl$1@sea.gmane.org>

On Sat, May 26, 2007 at 08:19:40PM +0000, Grant Edwards wrote:
> On 2007-05-26, Sergei Gavrikov <w3sg@SoftHome.net> wrote:
> > On Sat, May 26, 2007 at 03:19:42PM +0000, Grant Edwards wrote:
> >> In the "not a big deal" department...
> >> 
> >> I'm trying to send ANSI escape sequences using diag_printf, and
> >> diag_printf refuses.  If I put the escape character in the format
> >> string it says 
> >> 
> >>  <Bad format string: 8055F18 : 0 0 2 807F0D8 DDD9BFFD FB93FFDC 8055758
> >>  FB93FFDC>
> >> 
> >> If there's an escape character in a string that is to be printed using
> >> the "%s" format, it says: 
> >> 
> >>  <Not a string: 0x8055F20>
> >> 
> >> I understand that it's useful to attempt to avoid printing random
> >> binary garbage, but I would think that ASCII ESC might be allowed in
> >> strings.
> >>  
> >> I've found that insterting the escape characters using %c works, but
> >> that's a bit awkward.
> >  
> > There are nice diag_dump_buf* functions in the eCos infra layer
> > (cyg/infra/diag.h).  I do use that.
> 
> I'm aware of the daig_dump_buf fuctions, but I don't see how
> they solve my problem.  AFAIR, they dump out buffer contents in
> hex.  What I'm trying to do is:
> 
>  diag_printf("\033[34mBlue Text \033[31mRed Text \033[mNormal Text\n");
> 
> diag_printf refuses to do that, so I have to do something like
> this instead:
> 
>  diag_printf("%c[34mBlue Text %c[31mRed Text %c[mNormal Text\n",033,033,033);
> 
> and that seems awkward to me.
> 
> One could argue that embedding escape seqences in strings is a
> bit hackish...
> 

Ah, the diag_printf() for me always did mean the diagnostic (read debug)
output function, but it didn't mean for me any type of the printf+send.
IMHO, those diag_*() functions should be the light weight things. I
wouldn't see the complex parsing in the diag_printf(), diag_sprintf()
functions. What's about falk which use the eCos minimal template in
the first?

It seems, it's easy to use either macros, for example, COLOR_PRINTF,
COLOR_PUTS, etc. something like this

#define COLOR_PRINTF( fgcolor, bgcolor, fmt, ...) \
	...

and to use the diag_write_char() in the body of the macro to output those
special characters, or just own whiptail functions, i.e. something like
the cprintf(), cputchar(), cputs().

But the question is staying for me, Is the colorized output deal for
diag_printf?  I know that there are dumb terminals, GDB, etc. there.
Those things are deal for diag_printf(), aren't they?  IMHO, diag_led
can produce the colorized output, but diag_printf shouldn't do such
things :-)

-- Sergei


> -- 
> Grant Edwards                   grante             Yow! NEWARK has been
>                                   at               REZONED!!  DES MOINES has
>                                visi.com            been REZONED!!
> 
> 
> -- 
> Before posting, please read the FAQ: http://ecos.sourceware.org/fom/ecos
> and search the list archive: http://ecos.sourceware.org/ml/ecos-discuss

-- 
Before posting, please read the FAQ: http://ecos.sourceware.org/fom/ecos
and search the list archive: http://ecos.sourceware.org/ml/ecos-discuss

  parent reply	other threads:[~2007-05-27 10:12 UTC|newest]

Thread overview: 13+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2007-05-26 16:38 [ECOS] " Grant Edwards
2007-05-26 20:19 ` Sergei Gavrikov
2007-05-26 22:56   ` [ECOS] " Grant Edwards
2007-05-27 10:12     ` Gary Thomas
2007-05-27 14:42     ` Sergei Gavrikov [this message]
2007-05-28  5:33       ` Grant Edwards
2007-05-28 15:28         ` Sergei Gavrikov
2007-05-28 20:22           ` Paul D. DeRocco
2007-05-28 20:33             ` Sergei Gavrikov
2007-05-29  4:50               ` Paul D. DeRocco
2007-05-29  9:57         ` Nick Garnett
2007-05-29 17:05           ` Grant Edwards
2007-05-29  7:45 David Fernandez

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20070527101131.GA8574@ubuntu \
    --to=w3sg@softhome.net \
    --cc=ecos-discuss@ecos.sourceware.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).