HDTenEightyP/NetNews huggingface dataset:
From: ware@organ.cis.ohio-state.edu (Peter Ware)
Newsgroups: comp.windows.x
Subject: Re: Trapping BadWindow Errors?
Date: 27 Jul 92 23:15:25 GMT
Organization: Ohio State Computer Science
Originator: ware@organ.cis.ohio-state.edu

Here is how I deal with setting the input focus.  This temporarily installs a 
handler that ignores any BaMatch errors generated by SetInputFocuse requests.
A global flag is used to inform the caller if there was a problem.
This could be generalized but I've not seen any reason to.

--pete
----------------------------------------------------------------------

static int      (*oldHandler) ();	/* the previous error handler */
static Boolean  xoInputFailed;		/* set if SetInputFocus error */

/*
 * An error handler that is briefly installed as we are changing the
 * keyboard input focus.  It ignores BadMatch errors from SetInputFocus
 * protocol requests.
 */

static int
xoIgnoreFocusError (display, err)
	Display        *display;
	XErrorEvent    *err;
{
	DBUG_ENTER ("xoIgnoreFocusError");
	if (!err)
		DBUG_RETURN (0);
	if (err->error_code == BadMatch &&
	    err->request_code == X_SetInputFocus)
	{
		DBUG_PRINT ("focus", ("SetInputFocus error"));
		xoInputFailed = True;
	}
	else
	{
		(*oldHandler) (display, err);
	}
	DBUG_RETURN (0);
}

/*
 * Determine if we'll accept the keyboard focus.  We accept it only if
 * the window is visible.
 */

Boolean
XoFocusAccept (gw, t)
	Widget          gw;
	Time           *t;
{
	DBUG_ENTER ("xoAcceptFocus");
	if (!gw || !t)
		DBUG_RETURN (False);
	if (!XtIsRealized (gw))
	{
		DBUG_PRINT ("focus", ("Widget %s not realized", XoName (gw)));
		DBUG_RETURN (False);
	}
	/*
	 * We want to install a new error handler that ignores any
	 * SetInputFocus errors.  So we first make sure we've sent and
	 * received all messages -- just in case there is a lingering error.
	 * We install the handler, call the focus change, then Sync again to
	 * make sure this request has gone out and the reply come back.  We
	 * the restore the error handler.
	 */
	XSync (XtDisplay (gw), False);
	oldHandler = XSetErrorHandler (xoIgnoreFocusError);
	xoInputFailed = False;
	XSetInputFocus (XtDisplay (gw), XtWindow (gw),
			RevertToPointerRoot, *t);
	XSync (XtDisplay (gw), False);
	(void) XSetErrorHandler (oldHandler);

	if (xoInputFailed)
	{
		DBUG_PRINT ("focus", ("Error setting focus to %s", XoName (gw)));
		/*
		 * (void) XoFocusAccept (XoFocusWidgetGet (XoShellGet (gw)),
		 * t);
		 */
		DBUG_RETURN (False);
	}
	else
	{
		XoFocusWidgetSet (XoShellGet (gw), gw);
		DBUG_RETURN (True);
	}
}
--
Pete Ware / Ohio State University /
           ware@cis.ohio-state.edu
           (614) 538-0965
Too bad the Nike slogan isn't "Just Do It Right" instead of "Just Do It"
Newsgroups: comp.windows.x
From: earle@poseur.JPL.NASA.GOV (Greg Earle - Sun JPL on-site Software Support)
Subject: Re: compile error
Followup-To: comp.windows.x,comp.windows.open-look
Summary: 100512-02, 100573-03
Organization: Sun Microsystems - JPL on-site Software Support
Date: Thu, 23 Jul 1992 20:05:12 GMT

In article <1992Jul21.131737.7291@muppet.bt.co.uk> davidh@muppet.bt.co.uk writes:
>In article 8785@kth.se, tomasc@lionfish.tds.kth.se (Tomas Carlsson) writes:
>>In article <1992Jul20.121551.22457@kth.se>, tomasc@lionfish.tds.kth.se (Tomas Carlsson) writes:
>>> I'm trying to compile a program I've written. I've stolen and
>>> modified a Makefile but I'm not able to understand this error:
>>> 
>>>    ld: Undefined symbol 
>>>       _error 
>>>       _pow
>>>       _floor
>>>       _get_wmShellWidgetClass
>>>       _get_applicationShellWidgetClass
>>>       __XtInherit
>>>       _XtToolkitInitialize
>>>    *** Error code 2
>>> 
>     (deleted some stuff here)
>>>
>>> In my makefile I use (among others) these flags: (yes, I've
>>> used devguide)
>>> 
>>>    -lguidexv -lguide -lxview -lolgx -lXmu -lXt -lXext -lX11
>>> 
>>> I'm using OpenWindows 3.0, X11R5 on a sun4.
>>            ^^^^^^^^^^^^^^^
>>
>>That seems to be the problem (OW 3.0). I tried to compile under
>>OW 2.0 - no problem!
>
>OpenWindows 3 seems to have broken at least the Xmu shared lib.
>Also, you have forgotten the math library.
>
>Compile the program statically for a workaround and put -lm on the end.

Better workaround: compile the program with " ... -Bstatic -lXmu -Bdynamic ..."
surrounding the libXmu inclusion.

To solve the problem, please contact your local Sun office and request the
following patches:

Patch i.d.	Bug i.d.'s	O/S	Description
----------	-------------------------------------------------------------
100512-02	1086793 1086912 1074766
			4.1.x OpenWindows 3.0 libXt Jumbo patch

100573-03	1087332
			4.1.x OpenWindows 3.0 undefined symbols when using
			shared libXmu

While you're at it, if you are using OpenWindows 3.0 you may wish to get the
latest version of the "xnews" server:

100444-24       1080976 1083312 1060204 1062740 1066878 1071237 1071322 1077556
                1052712 1066767 1067026 1085004 1085475 1085609 1085529 1085467
                1075858 1079600 1056492 1084761 1086134 1086122 1082750 1082200
                1071098 1038783 1083142 1087211 1089056 1074935 1085444 1078226
                1089311 1091966 1092113 1094100 1074749 1094114
                        4.1.x OpenWindows 3.0 xnews Jumbo patch

--
	- Greg Earle
	  Sun Microsystems
	  earle@poseur.JPL.NASA.GOV
	  earle@Sun.COM
From: parasa@usceast.cs.scarolina.EDU (Rao V Parasa)
Newsgroups: comp.windows.x
Subject: Subscription request
Date: 29 Jul 92 03:10:38 GMT
Organization: The Internet

add parasa@usceast.cs.scarolina.edu to the mailing list
Newsgroups: comp.windows.x
From: oj@pictel.com (Oliver Jones)
Subject: Re: X graphics question
Keywords: Ximage, pixmap
Organization: PictureTel Corporation
Distribution: usa
Date: Fri, 24 Jul 1992 20:21:59 GMT

In article <4774@calmasd.Prime.COM> sas@calmasd.Prime.COM (Shirley Sloper) writes:
>
>The application displays a 512x512 pixel image and 
>updates areas of the image.  The graphics module receives
>one row at a time to display. The data consists of
>an array of colormap indices, the column and row of the first
>pixel to display and the number of pixels to display. 

>I am currently creating an Ximage of width count and height 1, 
>putting the image in the window, and then destroying the 
>image.  

>This works, but there's a better way, right?

What you're doing is pretty good.  From the point of view of the
volume of data sent over the X protocol, it's almost optimal.  (You
could save maybe 2-3 percent by buffering up the whole image into a
single XPutImage request.)

You don't need to create and destroy the XImage structure for every
scan line, however.  The fundamental thing to understand about the
XImage structure is that it serves as a wrapper, or
image-descriptor-block, for an array of pixels in your client
program's memory.  The array of pixels in your client is one
byte-per-pixel.  You could do something like this (warning...
untested!)

raster_write_row(pixelBuf, count, x, y)
    char    *pixelBuf;
    int     count,x,y;
{
  static XImage * i = 0;

  if (i == 0) {
        /* 
         * create a suitable XImage structure for
         * use with 8-bit-per-pixel image data.
         */
	i = XCreateImage (dpy, vis, 8, ZPixmap,
	                  0, pixelBuf, count, 1, 8, count);
  } 

  /* 
   * point the pre-existing XImage structure to the
   * data being passed in to this call to raster_write_row
   */
  i->width = count;
  i->data = pixelBuf;

  /* Out with the data */
  XPutImage (dpy, win, gc, i, 0,0, x,y,count,1);
}
  
>How does the image relate to a pixmap?

An XImage structure lives in your client's memory space, whereas a
pixmap lives in the server.  XPutImage can be used to move data from
an XImage structure in your client to a pixmap or a window in the
server.

Oliver Jones
From: hinkmond@tamri.com (Hinkmond Wong)
Newsgroups: comp.windows.x
Subject: Re: Xrecorder
Date: 23 Jul 92 15:33:02 GMT
Organization: Toshiba America MRI, Inc.

>>>>> On 23 Jul 92 00:40:30 GMT, gfish@amd-1s.hac.COM (Gary Fish) said:
> I am interested in the xrecorder product described in the Xhibition 92
> Volume 1 Conference Proceedings. If anybody has information on this product
> please send me Email at:
> gfish@amd-1s.hac.com
> or call me at
> 714-732-7343


If you have enough interest, please post the info to this newsgroup.  If not,
please also forward it to:

hinkmond@tamri.com

Thanks,
--
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
+ Hinkmond Wong				Internet: hinkmond@igor.tamri.com     +
+ Software Engineer			Phone: (415) 872-2722 x3328           +
+ Toshiba America MRI, Inc. 		FAX:   (415) 875-2915                 +
+ So. San Francisco, CA  94080                                                +
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
From: bagchi@eecs.umich.edu
Newsgroups: comp.windows.x
Date: 18 Jul 92 07:24 MDT
Subject: Fast drawing
Nf-ID: #N:BAGCHI.92Jul17222424@dip.eecs.um:-1027024747:001:589
Nf-From: eecs.umich.edu!bagchi    Jul 18 07:24:00 1992


	Heya, XPerts.. I don't think this is an FAQ.  

	I need to fill in each pixels in my Window with an arbitrary
color.  I've been doing several thousand XDrawPoint requests, which is
predictably slow.  

	Is there a faster way to do this?  I've seen apps like xviewgl
in action which is fairly impressive... but I've got neither source
nor a clue as to how to do it.

	Help?  Oh.. I'm on X11R4... no R5 for the time being.

	-rj


	
--
Ranjan Bagchi:   Di.sigsgvirusuise                 Ranjan.Bagchi@umich.edu
oo   oooo  o oo   ooo oo oo   oo       o o  oooo ooo o       o        oooooooo

Newsgroups: comp.windows.x,comp.windows.x.motif,comp.windows.open-look,comp.sys.hp
From: jones@chpc.utexas.edu (Bill Jones)
Subject: Open Look/Motif/Athena X interface to ftp
Organization: The University of Texas System - CHPC
Date: Fri, 31 Jul 92 20:12:11 GMT

I  fixed a few bugs, misspelling, and added support for HP's.

The source is available on ftp.chpc.utexas.edu (129.116.3.15) as file
/packages/X/xftp.0.2.alpha.tar.Z.

This is an alpha release of xftp a Open Look/Motif/Athena X interface to
ftp. I have compiled and run it under Ultrix,  AIX 3.2, Convex OS,
Sun OS, Unicos 6.1.4, IRIX and HP's.

The build instructions or in the README file.

It requires at least X11R4.  Motif at version version 1.1.X or better.
Open Look OLIT version 2.1.

Bill Jones
jones@chpc.utexas.edu
From: lecom@slhp1.epfl.ch (Claude Lecommandeur)
Newsgroups: comp.windows.x
Subject: Menus and grab, bug ?
Date: 22 Jul 92 10:41:20 GMT
Organization: Ecole Polytechnique Federale de Lausanne


    I think there is a little bug in Xt or Xaw. If you have a translation that
pops up a menu widget in a composite widget, the menu is poped up not only in
the composite but also in all his sub-widgets (the brothers of the menu). This
make impossible to have popup menus in composites.
    It looks like there is a grab that is inherited by childrens and shouldn't.

    A small example show this behaviour :

-------------------------------------------------------------------------
#include <stdio.h>

#include <X11/Intrinsic.h>
#include <X11/StringDefs.h>
#include <X11/Xaw/Cardinals.h>
#include <X11/Xaw/Command.h>
#include <X11/Xaw/Form.h>
#include <X11/Xaw/SimpleMenu.h>
#include <X11/Xaw/SmeBSB.h>

static XtCallbackProc quit ();
static XtCallbackProc ent  ();

main (argc,argv)
int  argc;
char **argv;
{
    Widget   toplevel, form, button, menu, entry1, entry2;

    toplevel = XtInitialize ("bug", "Bug", NULL, 0, &argc, argv);
    form     = XtCreateManagedWidget ("form", formWidgetClass,  toplevel, NULL, ZERO);
    button   = XtCreateManagedWidget ("button", commandWidgetClass, form, NULL, ZERO);
    XtAddCallback (button, XtNcallback, quit, NULL);

    menu   = XtCreatePopupShell  ("menu", simpleMenuWidgetClass, form, NULL, ZERO);
    entry1 = XtCreateManagedWidget ("entry1", smeBSBObjectClass, menu, NULL, ZERO);
    XtAddCallback (entry1, XtNcallback, ent, "entry1");
    entry2 = XtCreateManagedWidget ("entry2", smeBSBObjectClass, menu, NULL, ZERO);
    XtAddCallback (entry2, XtNcallback, ent, "entry2");

    XtRealizeWidget (toplevel);
    XtMainLoop ();
}

static XtCallbackProc quit (widget, data, junk)
Widget	  widget;
char	  *data;
XtPointer junk;
{
    printf ("quit\n");
}

static XtCallbackProc ent (widget, data, junk)
Widget	  widget;
char	  *data;
XtPointer junk;
{
    printf ("entry = %s\n", data);
}
-------------------------------------------------------------------------
  with a resource file :

Bug.form.translations:		#override\
	<Btn1Down>	: XawPositionSimpleMenu(menu) XtMenuPopup(menu)
-------------------------------------------------------------------------

    The quit action never get called, instead the menu is poped up when i click
on the button. Is this a bug, or do i misunderstand something.
    Is there a workaround ?

   Thanks for any hints.

-- 


                    Claude Lecommandeur
                    Service Informatique Central
                    Ecole Polytechnique Federale de Lausanne
                    1015 LAUSANNE (SWITZERLAND)
                    E-Mail : lecom@sic.epfl.ch
                    Tel : (41 21) 693-22-97
Newsgroups: comp.windows.x
From: brself@hal.gnu.ai.mit.edu (Ben Self)
Subject: Trapping BadWindow Errors?
Organization: MIT Laboratory for Computer Science
Date: Mon, 27 Jul 1992 20:48:24 GMT


When I began looking for ways to safe-guard my communications sent via
XSendEvent I ran acrossed the following entry in XFAQ:

> ----------------------------------------------------------------------
> Subject: 132)  How do I check whether a window ID is valid?
> My program has the ID of a window on a remote display. I want to check whether
> the window exists before doing anything with it.
> 
>         Because X is asynchronous, there isn't a guarantee that the window 
> would still exist between the time that you got the ID and the time you sent 
> an event to the window or otherwise manipulated it. What you should do is send
> the event without checking, but install an error handler to catch any
> BadWindow errors, which would indicate that the window no longer exists.
> This scheme will work except on the [rare] occasion that the original window
> has been destroyed and its ID reallocated to another window.
> 
> [courtesy Ken Lee (klee@wsl.dec.com), 4/90]
> 
> ----------------------------------------------------------------------

This is a great suggestion; unfortunately, the documentation for the XError
interfaces is frightfully *unclear* and *unspecific*.  

Could someone please outline the specifics that are required to trap
BadWindow Errors (preferably from a given widget or procedure)

and tell me which of the various error interface mechanisms are involved:

  Xt:
         XtAppErrorMsg
         XtAppError

   Xlib:
         XSetErrorHandler
         XSetIOErrorHandler


Great appreciation in advance (I bow to the wizards of all they survey)
Xref: sparky comp.windows.x:14427 comp.windows.x.apps:639
From: gt0963d@prism.gatech.EDU (Deeptendu Majumder)
Newsgroups: comp.windows.x,comp.windows.x.apps
Subject: Research Notebook Followup
Date: 27 Jul 92 13:44:02 GMT
Followup-To: poster
Organization: The Dream Chasers Syndicate


here is a summary of responses I have received. Bottom line: no
free lunch :-). I was looking for a tool to help me with my
dissertation work. Nobody is going to give me the money needed for
some of these powerful tools. I have been suggested to use WAIS and
I am going to look into it. I have used XWAIS but I did not know
that it may configurable for personal uses.

========================================================================
Lotus Agenda
=========================================================================

Virtual Notebook System (VNS) from frofront group (I have there		
			name and number)
CimLink which is designed for a manufacturing notebook
Interleaf's new product
FrameMaker with extensions - I have these extensions and
			we have hooked Tcl to framemaker.  This allows
 			you to customize it and write your own linkage 
			methods.
Rapport from Clarity
Slate from BBN
Asterx from Applix

The last three products are office suites on unix

Microsoft Office with visual basic on a pc.
Wordperfect office on windows.

====================================================================
Virtual Notebook System:

The product is sold commercially by The ForeFront Group, Inc. for users
outside of our research group at Baylor.  Send email to sales@ffg.com
if you are interested in literature and pricing.


In any event, FFG can be reached via telephone at 713-790-9051, M-F, 8-5.

Hmmm.  Let's see, I think it's **** for each end-user license (think of
it as a library card allowing you to enter any branch of a metropolitan
library system), and something on the lines of **** for a server license
(akin to the charge to create the library and staff it with a librarian).
A given user can simultaneously access many libraries, and a given server
can serve many networked users and support many notebooks.  (Incidentally,
the software server does not require a dedicated hardware server; many
can run on a given machine).

I'm sure there is a modest educational discount, 15% seems familiar.

=========================================================================

d.

-- 
------
"Like a harsh neon streaking  through the velvet darkness 
the whetted knife of Life tore its path through her Dreams"
From: converse@expo.lcs.mit.EDU (Donna Converse)
Newsgroups: comp.windows.x
Subject: Re: cursor in spring-loaded menu
Date: 23 Jul 92 20:02:46 GMT
Organization: X Consortium, MIT Laboratory for Computer Science


> I have a menu widget which I have written intended to be used as a
> spring-loaded popup when a button is pressed (by means of an XtMenuPopup() in
> the translations).  While the menu is popped up I would like the cursor to have
> some special shape.  It seems to be hard to do this.

In the Athena widget set, the SimpleMenu widget has a cursor resource.
In this widget's realize method, the cursor for the menu is set as a
window attribute, and this works fine.

> Setting the default cursor on the widget does not do anything.

I don't understand.

> Nor does setting the cursor with
> XDefineCursor() in the popup callback.

This wouldn't work because the grab is already active and the pointer for
the menu widget's window is already defined.

> The cursor always seems to be that of
> the widget that issued the grab.  The XtMenuPopup action routine puts out a
> passive pointer grab (XGrabButton).  XGrabButton specifies a cursor that is
> used during the grab.  The code for this in the Intrinsics is hard for me to
> follow but it is not obvious to me how to have cursor have any other value but
> None.

If you call XtGrabButton directly, you can specify the cursor ID through
this interface.  But this is a lot of extra work.

>  Perhaps I have to write my own action routine rather than XtMenuPopup()?

Too much work.

> Is there something I am missing? some way to get the grab to be issued with a
> particular cursor? I have solved it with a call to XChangeActivePointerGrab()
> in the popup callback which seems to be what the doctor ordered except that it
> wants a new event mask to be specified. I would want to use the same event mask
> as used in the original XGrabButton call but I have no easy way of knowing
> that.  I have used a mask for all possible pointer events.

Using XChangeActivePointerGrab is okay; the actual changing of the cursor
might be visible on slow connections, which is suboptimal.  The event mask
should be ButtonPressMask | ButtonReleaseMask which is the same as the event
mask of the original grab.  

It seems to me that the menu widget should have a cursor resource, and could 
use the String to Cursor converter supplied by the Intrinsics, so that the
cursor can be described by the application programmer and/or the user.  Then
when the widget's window is created, the supplied cursor is used for that
window.  You should be able to do this and still use XtMenuPopup; you ought
not have to supply and register the grab action yourself.


Donna Converse
MIT X Consortium
From: kk@hpl-opus.hpl.hp.com (Konstantinos Konstantinides)
Newsgroups: comp.windows.x
Subject: Re: X-based PostScript editor
Date: 23 Jul 92 00:36:08 GMT
Organization: HP Labs, High Speed Electronics Dept., Palo Alto, CA

In comp.windows.x, jovanov@ceg.uiuc.edu (Dan Jovanovic) writes:

> Is there any X-based utility that can be used to edit
> PostScript files out there? I need something that 
> will merge plots, add text, etc. Any help would
> be greatly appreciated
> 
> -Dan Jovanovic
> 
> 
Framemaker and Interleaf are commercially available editors
that do what you want.

K. Konstantinides
Newsgroups: comp.windows.x
From: gildea@expo.lcs.mit.EDU (Stephen Gildea)
Subject: Type 1 Rasterizer Patch available
Organization: X Consortium, MIT Laboratory for Computer Science
Date: Tue, 28 Jul 1992 20:56:03 GMT

Patches for a variety of problems in the R5 contributed Type 1
(PostScript) rasterizer are now available via anonymous ftp in the
file /pub/R5/contrib-fixes/Type1.patch on export.lcs.mit.edu.
Instructions for applying the fix are included in the file.

This patch fixes the following problems in the version on
the R5 contrib tape:

fontlib: interface changes with public patch 13
Type1: fonts with character sets other than ISOLatin1 fail
Type1: t1_Unique() can dereference a null pointer
Type1: memory leaks
Type1: fails to recognize Weight object in font
Type1: NULL is undeclared in t1info.c
Type1: errors in properties computation
Type1: abort() called instead of t1_abort() in malloc
Newsgroups: comp.windows.x
From: kucharsk@solbourne.com (William Kucharski)
Subject: Bug or Feature:  xlock "bitten by quarks"
Organization: Solbourne Computer, Inc., Longmont, CO
Date: Tue, 28 Jul 1992 03:58:39 GMT


I'm sure this question has been asked and the problem solved already, since
it occurs in the release of xlock available on export.lcs.mit.edu.

Basically, when parsing the "-delay", "-batchcount" or "-saturation" options,
xlock wants to replace a resource of the form "XLock.<module>.<option>",
and passes "XLock.<module>" as the name to XrmParseCommand, e.g.:

If the module is "qix" and you want to set the delay,

"xlock -delay 1 -mode qix"

will do something like

XrmParseCommand(db, table, count, name, argc, &argv);

with name set to "XLock.qix"

Unfortunately, XrmParseCommand just converts the name argument to a quark
directly, and the resource manager will never find a match since it's trying
to compare the quark for "XLock.qix" with the quark list such a resource name
would normally generate.  Since the man page says that "name" should be the
application name, I would believe this is a "don't do this" type of thing
(that perhaps should warrant a caveat in the man page) rather than a bug, but
wanted to check to make sure...
-- 
| William Kucharski, Solbourne Computer, Inc.     | Opinions expressed above
| Internet: kucharsk@solbourne.com   Ham: N0OKQ   | are MINE alone, not those
| Snail Mail: 1900 Pike Road, Longmont, CO  80501 | of Solbourne Computer, Inc.
| President, "Just the Ten of Us" Fan Club        | "Dittos from Longmont, CO"
From: etxmesa@eos.ericsson.se (Michael Salmon)
Newsgroups: comp.windows.x
Subject: Re: Binary File Viewer for X?
Date: 21 Jul 92 09:03:50 GMT
Reply-To: etxmesa@eos.ericsson.se (Michael Salmon)
Organization: Ericsson Telecom AB

In article <1992Jul20.193909.7103@ee.gatech.edu>, eric@eedsp.gatech.edu (Eric Hyche) writes:
|> Does anyone know of a binary file viewer program for X?
|> It would also be great if I could manipulate hex values
|> in the binary file also.

I use xdf, the authors are:

Auteurs
     J-Y.Leloup (Centre  Interuniversitaire  de  Calcul  de  Bre-
     tagne).  leloup#s@cicb.fr (jusqu'au 31/10/91)
     F. Dagorn (Centre Interuniversitaire de Calcul de Bretagne).
     dagorn@cicb.fr

The only problem is that it is written in French with French labels but
you just need to force English labels in your .Xdefaults.


-- 

Michael Salmon

#include	<standard.disclaimer>
#include	<witty.saying>
#include	<fancy.pseudo.graphics>

Ericsson Telecom AB
Stockholm
Newsgroups: comp.windows.x