Re: [U-Boot] [PATCH 05/15] common/main.c: Fix function readline

2012-02-27 Thread Pali Rohár
On Sunday 26 February 2012 23:33:01 Mike Frysinger wrote:
 On Saturday 07 January 2012 03:51:16 Pali Rohár wrote:
  On Friday 06 January 2012 15:15:29 Mike Frysinger wrote:
   On Sunday 18 December 2011 16:34:01 Pali Rohár wrote:
 * Ignore ANSI escape codes for moving cursor, which are generated by
   
keyboard
  
   this probably should be behind an appropriate CONFIG knob.  i don't
   think
   this is relevant to serial users (which are the majority of boards).
 
  I think this is also relevant to serial console too. I tried serial
  console
  (over USB) with Nokia N900 on computer (ANSI terminal) and if I pressed
  cursor key (UP/DOWN/LEFT/RIGHT) it moved cursor. But in readline function
  buffer was stored ANSI sequence. So when I pressed ENTER, u-boot tried to
  execute that buffer and showed me error. But it showed error message
  something like unknown command ansi_seq. ansi_seq was recognized in ansi
  terminal on computer and it garbaged output. (for example if asn_seq was
  move up, error message continued on previous line...)
 
  This patch ignore ansi codes which can be generated by curosor keys, so
  there will not be that bad error messages...

 do you have CONFIG_CMDLINE_EDITING enabled ?  arrow keys work just fine when
 that's enabled, and if it isn't, then i think it's expected behavior that
 pressing the arrow keys would generate junk that u-boot wouldn't
 interpret. -mike

I had CONFIG_CMDLINE_EDITING disabled - I did not know this option. Anyway,
when I enabled it arrow keys does not worked with cfb video driver and rx51
platform code.

I will try to fix that problem and I then will delete this patch.

--
Pali Rohár
pali.ro...@gmail.com

signature.asc
Description: This is a digitally signed message part.
___
U-Boot mailing list
U-Boot@lists.denx.de
http://lists.denx.de/mailman/listinfo/u-boot


Re: [U-Boot] [PATCH 05/15] common/main.c: Fix function readline

2012-02-27 Thread Mike Frysinger
On Monday 27 February 2012 13:40:07 Pali Rohár wrote:
 On Sunday 26 February 2012 23:33:01 Mike Frysinger wrote:
  On Saturday 07 January 2012 03:51:16 Pali Rohár wrote:
   On Friday 06 January 2012 15:15:29 Mike Frysinger wrote:
On Sunday 18 December 2011 16:34:01 Pali Rohár wrote:
  * Ignore ANSI escape codes for moving cursor, which are generated
  by
 
 keyboard

this probably should be behind an appropriate CONFIG knob.  i don't
think
this is relevant to serial users (which are the majority of boards).
   
   I think this is also relevant to serial console too. I tried serial
   console
   (over USB) with Nokia N900 on computer (ANSI terminal) and if I pressed
   cursor key (UP/DOWN/LEFT/RIGHT) it moved cursor. But in readline
   function buffer was stored ANSI sequence. So when I pressed ENTER,
   u-boot tried to execute that buffer and showed me error. But it showed
   error message something like unknown command ansi_seq. ansi_seq was
   recognized in ansi terminal on computer and it garbaged output. (for
   example if asn_seq was move up, error message continued on previous
   line...)
   
   This patch ignore ansi codes which can be generated by curosor keys, so
   there will not be that bad error messages...
  
  do you have CONFIG_CMDLINE_EDITING enabled ?  arrow keys work just fine
  when that's enabled, and if it isn't, then i think it's expected
  behavior that pressing the arrow keys would generate junk that u-boot
  wouldn't interpret.
 
 I had CONFIG_CMDLINE_EDITING disabled - I did not know this option. Anyway,
 when I enabled it arrow keys does not worked with cfb video driver and rx51
 platform code.
 
 I will try to fix that problem and I then will delete this patch.

sounds good.  not sure if this something we could really document in a way 
that'd help people :/.
-mike


signature.asc
Description: This is a digitally signed message part.
___
U-Boot mailing list
U-Boot@lists.denx.de
http://lists.denx.de/mailman/listinfo/u-boot


Re: [U-Boot] [PATCH 05/15] common/main.c: Fix function readline

2012-02-26 Thread Mike Frysinger
On Saturday 07 January 2012 03:51:16 Pali Rohár wrote:
 On Friday 06 January 2012 15:15:29 Mike Frysinger wrote:
  On Sunday 18 December 2011 16:34:01 Pali Rohár wrote:
* Ignore ANSI escape codes for moving cursor, which are generated by
   
   keyboard
  
  this probably should be behind an appropriate CONFIG knob.  i don't think
  this is relevant to serial users (which are the majority of boards).
 
 I think this is also relevant to serial console too. I tried serial console
 (over USB) with Nokia N900 on computer (ANSI terminal) and if I pressed
 cursor key (UP/DOWN/LEFT/RIGHT) it moved cursor. But in readline function
 buffer was stored ANSI sequence. So when I pressed ENTER, u-boot tried to
 execute that buffer and showed me error. But it showed error message
 something like unknown command ansi_seq. ansi_seq was recognized in ansi
 terminal on computer and it garbaged output. (for example if asn_seq was
 move up, error message continued on previous line...)
 
 This patch ignore ansi codes which can be generated by curosor keys, so
 there will not be that bad error messages...

do you have CONFIG_CMDLINE_EDITING enabled ?  arrow keys work just fine when 
that's enabled, and if it isn't, then i think it's expected behavior that 
pressing the arrow keys would generate junk that u-boot wouldn't interpret.
-mike


signature.asc
Description: This is a digitally signed message part.
___
U-Boot mailing list
U-Boot@lists.denx.de
http://lists.denx.de/mailman/listinfo/u-boot


Re: [U-Boot] [PATCH 05/15] common/main.c: Fix function readline

2012-01-07 Thread Pali Rohár
On Friday 06 January 2012 15:15:29 Mike Frysinger wrote:
 On Sunday 18 December 2011 16:34:01 Pali Rohár wrote:
   * Ignore ANSI escape codes for moving cursor, which are generated by
 
  keyboard

 this probably should be behind an appropriate CONFIG knob.  i don't think
 this is relevant to serial users (which are the majority of boards).
 -mike

I think this is also relevant to serial console too. I tried serial console
(over USB) with Nokia N900 on computer (ANSI terminal) and if I pressed cursor
key (UP/DOWN/LEFT/RIGHT) it moved cursor. But in readline function buffer was
stored ANSI sequence. So when I pressed ENTER, u-boot tried to execute that
buffer and showed me error. But it showed error message something like unknown
command ansi_seq. ansi_seq was recognized in ansi terminal on computer and
it garbaged output. (for example if asn_seq was move up, error message
continued on previous line...)

This patch ignore ansi codes which can be generated by curosor keys, so there
will not be that bad error messages...

--
Pali Rohár
pali.ro...@gmail.com

signature.asc
Description: This is a digitally signed message part.
___
U-Boot mailing list
U-Boot@lists.denx.de
http://lists.denx.de/mailman/listinfo/u-boot


Re: [U-Boot] [PATCH 05/15] common/main.c: Fix function readline

2012-01-06 Thread Mike Frysinger
On Sunday 18 December 2011 16:34:01 Pali Rohár wrote:
  * Ignore ANSI escape codes for moving cursor, which are generated by
 keyboard

this probably should be behind an appropriate CONFIG knob.  i don't think this 
is relevant to serial users (which are the majority of boards).
-mike


signature.asc
Description: This is a digitally signed message part.
___
U-Boot mailing list
U-Boot@lists.denx.de
http://lists.denx.de/mailman/listinfo/u-boot


[U-Boot] [PATCH 05/15] common/main.c: Fix function readline

2011-12-18 Thread Pali Rohár
 * Ignore ANSI escape codes for moving cursor, which are generated by keyboard

Signed-off-by: Pali Rohár pali.ro...@gmail.com
---
 common/main.c |   51 +++
 1 files changed, 51 insertions(+), 0 deletions(-)

diff --git a/common/main.c b/common/main.c
index e96c95a..e7b5516 100644
--- a/common/main.c
+++ b/common/main.c
@@ -958,6 +958,7 @@ int readline_into_buffer (const char *const prompt, char * 
buffer)
int n = 0;  /* buffer index */
int plen = 0;   /* prompt length*/
int col;/* output column cnt*/
+   int esc = 0;/* ansi escape char */
charc;
 
/* print prompt */
@@ -1024,7 +1025,57 @@ int readline_into_buffer (const char *const prompt, char 
* buffer)
p=delete_char(p_buf, p, col, n, plen);
continue;
 
+   case '\e':  /* ANSI escape char */
+   esc = 1;
+   continue;
+
default:
+
+   /*
+* Check for ANSI escape chars
+*/
+   if (esc == 0  c == '\e') {
+   esc = 1;
+   continue;
+   } else if (esc == 1) {
+   if (c == '[') {
+   esc = 2;
+   continue;
+   }
+   if (n  CONFIG_SYS_CBSIZE-2) {
+   ++n;
+   *p++ = '\e';
+   putc('\e');
+   }
+   esc = 0;
+   } else if (esc == 2 || esc == 3) {
+   if (esc == 2  c == '1') {
+   esc = 3;
+   continue;
+   }
+   /* Ignore ANSI escape sequences */
+   /* generated by keyboard */
+   /* \e [ 1 A-D and \e [ A-D */
+   if (c = 'A'  c = 'D') {
+   esc = 0;
+   continue;
+   }
+   if (esc == 2  n  CONFIG_SYS_CBSIZE-3) {
+   n += 2;
+   *p++ = '\e';
+   *p++ = '[';
+   puts(\e[);
+   } else if (esc == 3 
+   n  CONFIG_SYS_CBSIZE-4) {
+   n += 3;
+   *p++ = '\e';
+   *p++ = '[';
+   *p++ = '1';
+   puts(\e[1);
+   }
+   esc = 0;
+   }
+
/*
 * Must be a normal character then
 */
-- 
1.7.5.4

___
U-Boot mailing list
U-Boot@lists.denx.de
http://lists.denx.de/mailman/listinfo/u-boot