[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: Debian bootdisk with Chinese enabled.



CCed to Edmund GRIMLEY EVANS listed in bogl-term.c

On Wed, Jan 17, 2001 at 11:06:01AM +0800, hashao@chinese.com wrote:
> On Tue, Jan 16, 2001 at 04:56:21PM -0500, adam@onshore.com wrote:
> > ha shao <hashao@chinese.com> writes:
> > 
> > > bterm and bogl-term do not support reverse video mode. Actually, 
> > > bterm has very limited terminfo supports (understandable). Reverse
> > > video mode has to be added to bogl-term for slang's slcurses.
> > > 
> > > There is no highlight version of font here. 
> > 
> > Illuminating. Can this be fixed?  Should we just eliminate cfdisk for
> > i18n versions (that would be sad)?
> 
> more terminfo to be add into bterm. things in bogl-term.c, bterm.ti
> I think.
> 
> cfdisk support an option '-a' which will use arrow instead of 
> reverse video to 'highlight' the partitions. But it still use
> reverse video on menu selection. That means '-a' is half-working.
> 

Attached a patch to add reverse video mode into bterm. cfdisk's GUI works
as expected.


Index: bogl-term.h
===================================================================
RCS file: /cvs/debian-boot/boot-floppies/utilities/bogl/bogl-term.h,v
retrieving revision 1.2
diff -u -r1.2 bogl-term.h
--- bogl-term.h	2000/05/07 15:12:20	1.2
+++ bogl-term.h	2001/01/17 04:33:50
@@ -12,6 +12,7 @@
   int xpos, ypos;
   int def_fg, def_bg;
   int fg, bg, ul;
+  int reverse_mode; /* Flag for reverse-video mode */
   int state;
   int cur_visible;
   int xp, yp;
Index: bogl-term.c
===================================================================
RCS file: /cvs/debian-boot/boot-floppies/utilities/bogl/bogl-term.c,v
retrieving revision 1.2
diff -u -r1.2 bogl-term.c
--- bogl-term.c	2000/05/07 15:12:20	1.2
+++ bogl-term.c	2001/01/17 04:33:57
@@ -49,6 +49,7 @@
   term->xpos = 0, term->ypos = 0;
   term->fg = term->def_fg = 0;
   term->bg = term->def_bg = 7;
+  term->reverse_mode = 0;
   term->state = 0;
   term->cur_visible = 1;
   mbrtowc(0, 0, 0, &term->ps);
@@ -383,16 +384,46 @@
                 if (term->arg[0] == 4 || term->arg[0] == 24)
                     term->ul = term->arg[0] == 4;
                 else if (30 <= term->arg[0] && term->arg[0] < 38)
-                    term->fg = term->arg[0] - 30;
+		{
+		    if(!term->reverse_mode)
+			term->fg = term->arg[0] - 30;
+		    else
+			term->bg = term->arg[0] - 30;
+		}
                 else if (40 <= term->arg[0] && term->arg[0] < 48)
                 {
-                    term->bg = term->arg[0] - 40;
+		    if(!term->reverse_mode)
+			term->bg = term->arg[0] - 40;
+		    else
+			term->fg = term->arg[0] - 40;
                 }
                 else if (term->arg[0] == 39)
-                    term->fg = term->def_fg;
+                {
+		    if(!term->reverse_mode)
+			term->fg = term->def_fg;
+		    else
+			term->bg = term->def_fg;
+                }
                 else if (term->arg[0] == 49)
-                    term->bg = term->def_bg;
-
+                {
+		    if(!term->reverse_mode)
+			term->bg = term->def_bg;
+		    else
+			term->fg = term->def_fg;
+                }
+		else if (term->arg[0] == 7)
+		{
+		    term->reverse_mode = 1;
+		    /* Set color here for safety */
+		    term->fg = term->bg;
+		    term->bg = term->fg;
+		}
+		else if (!term->arg[0] || term->arg[0] == 0)
+		{
+		    term->reverse_mode = 0;
+		    term->fg = term->def_fg;
+		    term->bg = term->def_bg;
+		}
                 term->state = 0;
                 continue;
             }
Index: bterm.ti
===================================================================
RCS file: /cvs/debian-boot/boot-floppies/utilities/bogl/bterm.ti,v
retrieving revision 1.2
diff -u -r1.2 bterm.ti
--- bterm.ti	2000/05/07 15:12:20	1.2
+++ bterm.ti	2001/01/17 04:33:57
@@ -10,3 +10,4 @@
   setab=\E[4%p1%dm, setaf=\E[3%p1%dm,
   civis=\E[?25l, cnorm=\E[?25h,
   smul=\E[4m, rmul=\E[24m,
+  rev=\E[7m, sgr0=\E[0m,



-- 
Best regard
hashao



Reply to: