linux-fbdev.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [PATCH] broken cfb* support in the 2.5.31-bk
@ 2002-08-14 19:23 Petr Vandrovec
  2002-08-15  4:30 ` James Simmons
       [not found] ` <Pine.LNX.4.33.0208142128260.7482-100000@maxwell.earthlink.net>
  0 siblings, 2 replies; 7+ messages in thread
From: Petr Vandrovec @ 2002-08-14 19:23 UTC (permalink / raw)
  To: torvalds; +Cc: linux-kernel, linux-fbdev-devel

Hi Linus, hello others,
  please apply this.

line_length, type and visual moved from display struct to the fb_info's fix
structure during last fbdev updates. Unfortunately generic code was not updated
together, so now every fbdev driver is broken.

						Thanks,
							Petr Vandrovec
							vandrove@vc.cvut.cz

diff -urdN linux/drivers/video/fbcon-cfb16.c linux/drivers/video/fbcon-cfb16.c
--- linux/drivers/video/fbcon-cfb16.c	2002-08-14 17:55:16.000000000 +0200
+++ linux/drivers/video/fbcon-cfb16.c	2002-08-14 17:59:19.000000000 +0200
@@ -36,7 +36,7 @@
 
 void fbcon_cfb16_setup(struct display *p)
 {
-    p->next_line = p->line_length ? p->line_length : p->var.xres_virtual<<1;
+    p->next_line = p->fb_info->fix.line_length ? p->fb_info->fix.line_length : p->var.xres_virtual<<1;
     p->next_plane = 0;
 }
 
diff -urdN linux/drivers/video/fbcon-cfb32.c linux/drivers/video/fbcon-cfb32.c
--- linux/drivers/video/fbcon-cfb32.c	2002-08-14 17:55:09.000000000 +0200
+++ linux/drivers/video/fbcon-cfb32.c	2002-08-14 17:59:19.000000000 +0200
@@ -25,7 +25,7 @@
 
 void fbcon_cfb32_setup(struct display *p)
 {
-    p->next_line = p->line_length ? p->line_length : p->var.xres_virtual<<2;
+    p->next_line = p->fb_info->fix.line_length ? p->fb_info->fix.line_length : p->var.xres_virtual<<2;
     p->next_plane = 0;
 }
 
diff -urdN linux/drivers/video/fbcon-cfb4.c linux/drivers/video/fbcon-cfb4.c
--- linux/drivers/video/fbcon-cfb4.c	2002-08-14 17:55:12.000000000 +0200
+++ linux/drivers/video/fbcon-cfb4.c	2002-08-14 17:59:19.000000000 +0200
@@ -50,7 +50,7 @@
 
 void fbcon_cfb4_setup(struct display *p)
 {
-    p->next_line = p->line_length ? p->line_length : p->var.xres_virtual>>1;
+    p->next_line = p->fb_info->fix.line_length ? p->fb_info->fix.line_length : p->var.xres_virtual>>1;
     p->next_plane = 0;
 }
 
diff -urdN linux/drivers/video/fbcon-cfb8.c linux/drivers/video/fbcon-cfb8.c
--- linux/drivers/video/fbcon-cfb8.c	2002-08-14 17:55:16.000000000 +0200
+++ linux/drivers/video/fbcon-cfb8.c	2002-08-14 17:59:19.000000000 +0200
@@ -41,7 +41,7 @@
 
 void fbcon_cfb8_setup(struct display *p)
 {
-    p->next_line = p->line_length ? p->line_length : p->var.xres_virtual;
+    p->next_line = p->fb_info->fix.line_length ? p->fb_info->fix.line_length : p->var.xres_virtual;
     p->next_plane = 0;
 }
 
diff -urdN linux/drivers/video/fbcon-vga-planes.c linux/drivers/video/fbcon-vga-planes.c
--- linux/drivers/video/fbcon-vga-planes.c	2002-08-14 17:55:16.000000000 +0200
+++ linux/drivers/video/fbcon-vga-planes.c	2002-08-14 17:59:19.000000000 +0200
@@ -119,9 +119,9 @@
 	height *= fontheight(p);
 
 	if (dy < sy || (dy == sy && dx < sx)) {
-		line_ofs = p->line_length - width;
-		dest = p->fb_info->screen_base + dx + dy * p->line_length;
-		src = p->fb_info->screen_base + sx + sy * p->line_length;
+		line_ofs = p->fb_info->fix.line_length - width;
+		dest = p->fb_info->screen_base + dx + dy * p->fb_info->fix.line_length;
+		src = p->fb_info->screen_base + sx + sy * p->fb_info->fix.line_length;
 		while (height--) {
 			for (x = 0; x < width; x++) {
 				readb(src);
@@ -133,9 +133,9 @@
 			dest += line_ofs;
 		}
 	} else {
-		line_ofs = p->line_length - width;
-		dest = p->fb_info->screen_base + dx + width + (dy + height - 1) * p->line_length;
-		src = p->fb_info->screen_base + sx + width + (sy + height - 1) * p->line_length;
+		line_ofs = p->fb_info->fix.line_length - width;
+		dest = p->fb_info->screen_base + dx + width + (dy + height - 1) * p->fb_info->fix.line_length;
+		src = p->fb_info->screen_base + sx + width + (sy + height - 1) * p->fb_info->fix.line_length;
 		while (height--) {
 			for (x = 0; x < width; x++) {
 				dest--;
@@ -152,7 +152,7 @@
 void fbcon_vga_planes_clear(struct vc_data *conp, struct display *p, int sy, int sx,
 		   int height, int width)
 {
-	int line_ofs = p->line_length - width;
+	int line_ofs = p->fb_info->fix.line_length - width;
 	char *where;
 	int x;
 	
@@ -167,7 +167,7 @@
 	sy *= fontheight(p);
 	height *= fontheight(p);
 
-	where = p->fb_info->screen_base + sx + sy * p->line_length;
+	where = p->fb_info->screen_base + sx + sy * p->fb_info->fix.line_length;
 	while (height--) {
 		for (x = 0; x < width; x++) {
 			writeb(0, where);
@@ -184,7 +184,7 @@
 
 	int y;
 	u8 *cdat = p->fontdata + (c & p->charmask) * fontheight(p);
-	char *where = p->fb_info->screen_base + xx + yy * p->line_length * fontheight(p);
+	char *where = p->fb_info->screen_base + xx + yy * p->fb_info->fix.line_length * fontheight(p);
 
 	setmode(0);
 	setop(0);
@@ -193,13 +193,13 @@
 	selectmask();
 
 	setmask(0xff);
-	for (y = 0; y < fontheight(p); y++, where += p->line_length) 
+	for (y = 0; y < fontheight(p); y++, where += p->fb_info->fix.line_length) 
 		rmw(where);
 
-	where -= p->line_length * y;
+	where -= p->fb_info->fix.line_length * y;
 	setcolor(fg);
 	selectmask();
-	for (y = 0; y < fontheight(p); y++, where += p->line_length) 
+	for (y = 0; y < fontheight(p); y++, where += p->fb_info->fix.line_length) 
 		if (cdat[y]) {
 			setmask(cdat[y]);
 			rmw(where);
@@ -213,7 +213,7 @@
 
 	int y;
 	u8 *cdat = p->fontdata + (c & p->charmask) * fontheight(p);
-	char *where = p->fb_info->screen_base + xx + yy * p->line_length * fontheight(p);
+	char *where = p->fb_info->screen_base + xx + yy * p->fb_info->fix.line_length * fontheight(p);
 
 	setmode(2);
 	setop(0);
@@ -227,7 +227,7 @@
 	readb(where); /* fill latches */
 	setmode(3);
 	wmb();
-	for (y = 0; y < fontheight(p); y++, where += p->line_length) 
+	for (y = 0; y < fontheight(p); y++, where += p->fb_info->fix.line_length) 
 		writeb(cdat[y], where);
 	wmb();
 }
@@ -248,7 +248,7 @@
 	selectmask();
 
 	setmask(0xff);
-	where = p->fb_info->screen_base + xx + yy * p->line_length * fontheight(p);
+	where = p->fb_info->screen_base + xx + yy * p->fb_info->fix.line_length * fontheight(p);
 	writeb(bg, where);
 	rmb();
 	readb(where); /* fill latches */
@@ -263,9 +263,9 @@
 			outb(*cdat++, GRAPHICS_DATA_REG);	
 			wmb();
 			writeb(fg, where);
-			where += p->line_length;
+			where += p->fb_info->fix.line_length;
 		}
-		where += 1 - p->line_length * fontheight(p);
+		where += 1 - p->fb_info->fix.line_length * fontheight(p);
 	}
 	
 	wmb();
@@ -289,7 +289,7 @@
 	selectmask();
 
 	setmask(0xff);
-	where = p->fb_info->screen_base + xx + yy * p->line_length * fontheight(p);
+	where = p->fb_info->screen_base + xx + yy * p->fb_info->fix.line_length * fontheight(p);
 	writeb(bg, where);
 	rmb();
 	readb(where); /* fill latches */
@@ -302,9 +302,9 @@
 
 		for (y = 0; y < fontheight(p); y++, cdat++) {
 			writeb (*cdat, where);
-			where += p->line_length;
+			where += p->fb_info->fix.line_length;
 		}
-		where += 1 - p->line_length * fontheight(p);
+		where += 1 - p->fb_info->fix.line_length * fontheight(p);
 	}
 	
 	wmb();
@@ -312,7 +312,7 @@
 
 void fbcon_vga_planes_revc(struct display *p, int xx, int yy)
 {
-	char *where = p->fb_info->screen_base + xx + yy * p->line_length * fontheight(p);
+	char *where = p->fb_info->screen_base + xx + yy * p->fb_info->fix.line_length * fontheight(p);
 	int y;
 	
 	setmode(0);
@@ -324,7 +324,7 @@
 	setmask(0xff);
 	for (y = 0; y < fontheight(p); y++) {
 		rmw(where);
-		where += p->line_length;
+		where += p->fb_info->fix.line_length;
 	}
 }
 
diff -urdN linux/drivers/video/fbcon.c linux/drivers/video/fbcon.c
--- linux/drivers/video/fbcon.c	2002-08-14 17:55:08.000000000 +0200
+++ linux/drivers/video/fbcon.c	2002-08-14 17:59:19.000000000 +0200
@@ -2306,7 +2306,7 @@
 	}
 #endif
 #if defined(CONFIG_FBCON_CFB4)
-	if (depth == 4 && p->type == FB_TYPE_PACKED_PIXELS) {
+	if (depth == 4 && info->fix.type == FB_TYPE_PACKED_PIXELS) {
 		src = logo;
 		for( y1 = 0; y1 < LOGO_H; y1++) {
 			dst = fb + y1*line + x/2;
@@ -2320,7 +2320,7 @@
 	}
 #endif
 #if defined(CONFIG_FBCON_CFB8) || defined(CONFIG_FB_SBUS)
-	if (depth == 8 && p->type == FB_TYPE_PACKED_PIXELS) {
+	if (depth == 8 && info->fix.type == FB_TYPE_PACKED_PIXELS) {
 	    /* depth 8 or more, packed, with color registers */
 		
 	    src = logo;
@@ -2335,8 +2335,8 @@
 #if defined(CONFIG_FBCON_AFB) || defined(CONFIG_FBCON_ILBM) || \
     defined(CONFIG_FBCON_IPLAN2P2) || defined(CONFIG_FBCON_IPLAN2P4) || \
     defined(CONFIG_FBCON_IPLAN2P8)
-	if (depth >= 2 && (p->type == FB_TYPE_PLANES ||
-			   p->type == FB_TYPE_INTERLEAVED_PLANES)) {
+	if (depth >= 2 && (info->fix.type == FB_TYPE_PLANES ||
+			   info->fix.type == FB_TYPE_INTERLEAVED_PLANES)) {
 	    /* planes (normal or interleaved), with color registers */
 	    int bit;
 	    unsigned char val, mask;
@@ -2388,9 +2388,9 @@
 #if defined(CONFIG_FBCON_MFB) || defined(CONFIG_FBCON_AFB) || \
     defined(CONFIG_FBCON_ILBM) || defined(CONFIG_FBCON_HGA)
 
-	if (depth == 1 && (p->type == FB_TYPE_PACKED_PIXELS ||
-			   p->type == FB_TYPE_PLANES ||
-			   p->type == FB_TYPE_INTERLEAVED_PLANES)) {
+	if (depth == 1 && (p->fix.type == FB_TYPE_PACKED_PIXELS ||
+			   p->fix.type == FB_TYPE_PLANES ||
+			   p->fix.type == FB_TYPE_INTERLEAVED_PLANES)) {
 
 	    /* monochrome */
 	    unsigned char inverse = p->inverse || p->visual == FB_VISUAL_MONO01
@@ -2411,7 +2411,7 @@
 	}
 #endif
 #if defined(CONFIG_FBCON_VGA_PLANES)
-	if (depth == 4 && p->type == FB_TYPE_VGA_PLANES) {
+	if (depth == 4 && info->fix.type == FB_TYPE_VGA_PLANES) {
 		outb_p(1,0x3ce); outb_p(0xf,0x3cf);
 		outb_p(3,0x3ce); outb_p(0,0x3cf);
 		outb_p(5,0x3ce); outb_p(0,0x3cf);


-------------------------------------------------------
This sf.net email is sponsored by: Dice - The leading online job board
for high-tech professionals. Search and apply for tech jobs today!
http://seeker.dice.com/seeker.epl?rel_code=31

^ permalink raw reply	[flat|nested] 7+ messages in thread

* Re: [PATCH] broken cfb* support in the 2.5.31-bk
  2002-08-14 19:23 [PATCH] broken cfb* support in the 2.5.31-bk Petr Vandrovec
@ 2002-08-15  4:30 ` James Simmons
       [not found] ` <Pine.LNX.4.33.0208142128260.7482-100000@maxwell.earthlink.net>
  1 sibling, 0 replies; 7+ messages in thread
From: James Simmons @ 2002-08-15  4:30 UTC (permalink / raw)
  To: Petr Vandrovec; +Cc: torvalds, linux-kernel, linux-fbdev-devel


> Hi Linus, hello others,
>   please apply this.
>
> line_length, type and visual moved from display struct to the fb_info's fix
> structure during last fbdev updates. Unfortunately generic code was not updated
> together, so now every fbdev driver is broken.

That was done to push people to port there drivers to the new api. I
applied the patch to the Bk repository but expect more breakage.



-------------------------------------------------------
This sf.net email is sponsored by: OSDN - Tired of that same old
cell phone?  Get a new here for FREE!
https://www.inphonic.com/r.asp?r=sourceforge1&refcode1=vs3390

^ permalink raw reply	[flat|nested] 7+ messages in thread

* Re: [PATCH] broken cfb* support in the 2.5.31-bk
       [not found] ` <Pine.LNX.4.33.0208142128260.7482-100000@maxwell.earthlink.net>
@ 2002-08-15 23:19   ` Paul Mackerras
  2002-08-22 17:06     ` James Simmons
  0 siblings, 1 reply; 7+ messages in thread
From: Paul Mackerras @ 2002-08-15 23:19 UTC (permalink / raw)
  To: James Simmons; +Cc: linux-kernel, linux-fbdev-devel

James Simmons writes:

> That was done to push people to port there drivers to the new api.

Well, what _is_ the new API?

Anyway, you could apply this patch, for a start.  I wish you would be
a bit more careful about details.

Paul.

diff -urN linux-2.5/drivers/video/Makefile pmac-2.5/drivers/video/Makefile
--- linux-2.5/drivers/video/Makefile	Wed Aug 14 09:15:02 2002
+++ pmac-2.5/drivers/video/Makefile	Fri Aug 16 09:08:34 2002
@@ -60,7 +60,7 @@
 obj-$(CONFIG_FB_3DFX)             += tdfxfb.o
 obj-$(CONFIG_FB_MAC)              += macfb.o macmodes.o cfbfillrect.o cfbcopyarea.o cfbimgblt.o 
 obj-$(CONFIG_FB_HP300)            += hpfb.o cfbfillrect.o cfbimgblt.o
-obj-$(CONFIG_FB_OF)               += offb.o cfbfillrect.o cfbimgblit.o cfbcopyarea.o
+obj-$(CONFIG_FB_OF)               += offb.o cfbfillrect.o cfbimgblt.o cfbcopyarea.o
 obj-$(CONFIG_FB_IMSTT)            += imsttfb.o
 obj-$(CONFIG_FB_RETINAZ3)         += retz3fb.o
 obj-$(CONFIG_FB_CLGEN)            += clgenfb.o


-------------------------------------------------------
This sf.net email is sponsored by: OSDN - Tired of that same old
cell phone?  Get a new here for FREE!
https://www.inphonic.com/r.asp?r=sourceforge1&refcode1=vs3390

^ permalink raw reply	[flat|nested] 7+ messages in thread

* Re: [PATCH] broken cfb* support in the 2.5.31-bk
  2002-08-15 23:19   ` Paul Mackerras
@ 2002-08-22 17:06     ` James Simmons
  2002-08-22 18:19       ` Geert Uytterhoeven
  0 siblings, 1 reply; 7+ messages in thread
From: James Simmons @ 2002-08-22 17:06 UTC (permalink / raw)
  To: Paul Mackerras; +Cc: Linux Kernel Mailing List, Linux Fbdev development list


> > That was done to push people to port there drivers to the new api.
>
> Well, what _is_ the new API?

From the details in skeletonfb.c.

 *  I have started rewriting this driver as a example of the upcoming new API
 *  The primary goal is to remove the console code from fbdev and place it
 *  into fbcon.c. This reduces the code and makes writing a new fbdev driver
 *  easy since the author doesn't need to worry about console internals. It
 *  also allows the ability to run fbdev without a console/tty system on top
 *  of it.
 *
 *  First the roles of struct fb_info and struct display have changed. Struct
 *  display will go away. The way the the new framebuffer console code will
 *  work is that it will act to translate data about the tty/console in
 *  struct vc_data to data in a device independent way in struct fb_info. Then
 *  various functions in struct fb_ops will be called to store the device
 *  dependent state in the par field in struct fb_info and to change the
 *  hardware to that state. This allows a very clean seperation of the fbdev
 *  layer from the console layer. It also allows one to use fbdev on its own
 *  which is a bounus for embedded devices. The reason this approach works is
 *  for each framebuffer device when used as a tty/console device is allocated
 *  a set of virtual terminals to it. Only one virtual terminal can be active
 *  per framebuffer device. We already have all the data we need in struct
 *  vc_data so why store a bunch of colormaps and other fbdev specific data
 *  per virtual terminal.

 *  As you can see doing this makes the con parameter pretty much useless
 *  for struct fb_ops functions, as it should be. Also having struct
 *  fb_var_screeninfo and other data in fb_info pretty much eliminates the
 *  need for get_fix and get_var. Once all drivers use the fix, var, and cmap
 *  fbcon can be written around these fields. This will also eliminate the
 *  need to regenerate struct fb_var_screeninfo, struct fb_fix_screeninfo
 *  struct fb_cmap every time get_var, get_fix, get_cmap functions are called
 *  as many drivers do now.

See skeletonfb.c for further details.

> Anyway, you could apply this patch, for a start.  I wish you would be
> a bit more careful about details.

Done. Well the good news is I have aquired more hardware for different
platforms to test my work on :-)

MS: (n) 1. A debilitating and surprisingly widespread affliction that
renders the sufferer barely able to perform the simplest task. 2. A disease.

James Simmons  [jsimmons@users.sf.net] 	                ____/|
fbdev/console/gfx developer                             \ o.O|
http://www.linux-fbdev.org                               =(_)=
http://linuxgfx.sourceforge.net                            U
http://linuxconsole.sourceforge.net



-------------------------------------------------------
This sf.net email is sponsored by: OSDN - Tired of that same old
cell phone?  Get a new here for FREE!
https://www.inphonic.com/r.asp?r=sourceforge1&refcode1=vs3390

^ permalink raw reply	[flat|nested] 7+ messages in thread

* Re: [PATCH] broken cfb* support in the 2.5.31-bk
  2002-08-22 18:19       ` Geert Uytterhoeven
@ 2002-08-22 18:16         ` James Simmons
  2002-08-22 18:33           ` Geert Uytterhoeven
  0 siblings, 1 reply; 7+ messages in thread
From: James Simmons @ 2002-08-22 18:16 UTC (permalink / raw)
  To: Geert Uytterhoeven
  Cc: Paul Mackerras, Linux Kernel Mailing List,
	Linux Fbdev development list


> > > Anyway, you could apply this patch, for a start.  I wish you would be
> > > a bit more careful about details.
> >
> > Done. Well the good news is I have aquired more hardware for different
> > platforms to test my work on :-)
>
> You don't need more hardware to protect yourself against such typos. A
> cross-compiler (or sometimes even your native gcc) is sufficient ;-)

That I also lack except for ARM and mips. Do you know where I can get a
developement kit for for ppc and m68k?



-------------------------------------------------------
This sf.net email is sponsored by: OSDN - Tired of that same old
cell phone?  Get a new here for FREE!
https://www.inphonic.com/r.asp?r=sourceforge1&refcode1=vs3390

^ permalink raw reply	[flat|nested] 7+ messages in thread

* Re: [PATCH] broken cfb* support in the 2.5.31-bk
  2002-08-22 17:06     ` James Simmons
@ 2002-08-22 18:19       ` Geert Uytterhoeven
  2002-08-22 18:16         ` James Simmons
  0 siblings, 1 reply; 7+ messages in thread
From: Geert Uytterhoeven @ 2002-08-22 18:19 UTC (permalink / raw)
  To: James Simmons
  Cc: Paul Mackerras, Linux Kernel Mailing List,
	Linux Fbdev development list

On Thu, 22 Aug 2002, James Simmons wrote:
> > Anyway, you could apply this patch, for a start.  I wish you would be
> > a bit more careful about details.
> 
> Done. Well the good news is I have aquired more hardware for different
> platforms to test my work on :-)

You don't need more hardware to protect yourself against such typos. A
cross-compiler (or sometimes even your native gcc) is sufficient ;-)

Gr{oetje,eeting}s,

						Geert

--
Geert Uytterhoeven -- There's lots of Linux beyond ia32 -- geert@linux-m68k.org

In personal conversations with technical people, I call myself a hacker. But
when I'm talking to journalists I just say "programmer" or something like that.
							    -- Linus Torvalds



-------------------------------------------------------
This sf.net email is sponsored by: OSDN - Tired of that same old
cell phone?  Get a new here for FREE!
https://www.inphonic.com/r.asp?r=sourceforge1&refcode1=vs3390

^ permalink raw reply	[flat|nested] 7+ messages in thread

* Re: [PATCH] broken cfb* support in the 2.5.31-bk
  2002-08-22 18:16         ` James Simmons
@ 2002-08-22 18:33           ` Geert Uytterhoeven
  0 siblings, 0 replies; 7+ messages in thread
From: Geert Uytterhoeven @ 2002-08-22 18:33 UTC (permalink / raw)
  To: James Simmons
  Cc: Paul Mackerras, Linux Kernel Mailing List,
	Linux Fbdev development list

On Thu, 22 Aug 2002, James Simmons wrote:
> > > > Anyway, you could apply this patch, for a start.  I wish you would be
> > > > a bit more careful about details.
> > >
> > > Done. Well the good news is I have aquired more hardware for different
> > > platforms to test my work on :-)
> >
> > You don't need more hardware to protect yourself against such typos. A
> > cross-compiler (or sometimes even your native gcc) is sufficient ;-)
> 
> That I also lack except for ARM and mips. Do you know where I can get a
> developement kit for for ppc and m68k?

The usual rules for creating cross-{binutils,gcc} apply here.

If you run Debian, check out the toolchain-source package.

Gr{oetje,eeting}s,

						Geert

--
Geert Uytterhoeven -- There's lots of Linux beyond ia32 -- geert@linux-m68k.org

In personal conversations with technical people, I call myself a hacker. But
when I'm talking to journalists I just say "programmer" or something like that.
							    -- Linus Torvalds



-------------------------------------------------------
This sf.net email is sponsored by: OSDN - Tired of that same old
cell phone?  Get a new here for FREE!
https://www.inphonic.com/r.asp?r=sourceforge1&refcode1=vs3390

^ permalink raw reply	[flat|nested] 7+ messages in thread

end of thread, other threads:[~2002-08-22 18:34 UTC | newest]

Thread overview: 7+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2002-08-14 19:23 [PATCH] broken cfb* support in the 2.5.31-bk Petr Vandrovec
2002-08-15  4:30 ` James Simmons
     [not found] ` <Pine.LNX.4.33.0208142128260.7482-100000@maxwell.earthlink.net>
2002-08-15 23:19   ` Paul Mackerras
2002-08-22 17:06     ` James Simmons
2002-08-22 18:19       ` Geert Uytterhoeven
2002-08-22 18:16         ` James Simmons
2002-08-22 18:33           ` Geert Uytterhoeven

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 NNTP newsgroup(s).