<kc version="0.1.0">

<title>Wine Traffic</title>

<author contact="mailto:vinn@theshell.com">Brian Vincent</author>

<issue num="140" date="17 Oct 2002 23:00:00 -0800" />

<intro>

<p>This is the 140th release of the Wine's kernel cousin publication. It's
main goal is to distribute widely what's going on around Wine (the Un*x 
windows emulator).</p>
</intro>



<stats posts="263" size="886" contrib="67" multiples="38" lastweek="25">

<person posts="34" size="113" who="Dimitrie O. Paun" />
<person posts="29" size="69" who="Alexandre Julliard" />
<person posts="17" size="82" who="Greg Turner" />
<person posts="14" size="33" who="Eric Pouech" />
<person posts="13" size="56" who="Uwe Bonnes" />
<person posts="10" size="26" who="Andreas Mohr" />
<person posts="8" size="19" who="Rein Klazes" />
<person posts="7" size="25" who="Rizsanyi Zsolt" />
<person posts="6" size="40" who="Michael Stefaniuc" />
<person posts="6" size="38" who="Duane Clark" />
<person posts="6" size="15" who="Dmitry Timoshkov" />
<person posts="5" size="30" who="Dima Suzdalev" />
<person posts="5" size="14" who="Ove Kaaven" />
<person posts="5" size="9" who="Francois Gouget" />
<person posts="4" size="14" who="Steve Lustbader" />
<person posts="4" size="12" who="Shachar Shemesh" />
<person posts="4" size="10" who="Malte Starostik" />
<person posts="4" size="10" who="Lawson Whitney" />
<person posts="4" size="9" who="Steven Edwards" />
<person posts="4" size="9" who="David D. Hagood" />
<person posts="4" size="9" who="=?iso-8859-1?q?Sylvain=20Petreolle?=" />
<person posts="3" size="27" who="Christian Neumair" />
<person posts="3" size="11" who="Martin Fuchs" />
<person posts="3" size="8" who="Kristoffer Ericson" />
<person posts="3" size="8" who="Graham Stoney" />
<person posts="3" size="7" who="Ben Stanley" />
<person posts="3" size="7" who="Dan Fer" />
<person posts="3" size="6" who="Lionel Ulmer" />
<person posts="2" size="19" who="Stefan Leichter" />
<person posts="2" size="7" who="David Fraser" />
<person posts="2" size="6" who="Michael Gunnewig" />
<person posts="2" size="6" who="(sauer)" />
<person posts="2" size="6" who="Carlos" />
<person posts="2" size="5" who="Dustin Navea" />
<person posts="2" size="5" who="Jukka Heinonen" />
<person posts="2" size="4" who="Steven Edwards" />
<person posts="2" size="4" who="(boci)" />
<person posts="2" size="3" who="Medland, Bill" />
<person posts="1" size="7" who="Fabian Cenedese" />
<person posts="1" size="4" who="Klaus Niederkrueger" />
<person posts="1" size="3" who="Dima Suzdalev" />
<person posts="1" size="3" who="Matthew Davison" />
<person posts="1" size="3" who="Michael Guennewig" />
<person posts="1" size="3" who="Geoff Thorpe" />
<person posts="1" size="3" who="Till Mossakowski" />
<person posts="1" size="3" who="J.Brown (Ender/Amigo)" />
<person posts="1" size="3" who="Leonardo Bocalon" />
<person posts="1" size="3" who="Gabriel Arcos" />
<person posts="1" size="3" who="Till Mossakowski" />
<person posts="1" size="2" who="Patrik Stridvall" />
<person posts="1" size="2" who="Ove Kaaven" />
<person posts="1" size="2" who="admiral coeyman" />
<person posts="1" size="2" who="Juraj Hercek" />
<person posts="1" size="2" who="Michael Cardenas" />
<person posts="1" size="2" who="Vincent Beron" />
<person posts="1" size="2" who="welch" />
<person posts="1" size="2" who="Martin Wilck" />
<person posts="1" size="2" who="John K. Hohm" />
<person posts="1" size="2" who="Lozano, Carlos A." />
<person posts="1" size="2" who="Ann and Jason Edmeades" />
<person posts="1" size="2" who="Rizsanyi Zsolt" />
<person posts="1" size="1" who="Bill Holland" />
<person posts="1" size="1" who="Dima" />
<person posts="1" size="1" who="Haber Janos" />

</stats>

<section 
	title="News: Xandros &amp; CodeWeavers" 
	subject="News"
	archive="http://www.winehq.com/hypermail/wine-devel/2002/10/0029.html" 
	posts="2" 
	startdate="11 Oct 2002 23:00:00 -0800"
	enddate="17 Oct 2002 23:00:00 -0800"
>
<topic>News</topic>
<mention>CodeWeavers</mention>
<mention></mention>
<mention>codeweavers</mention>
<mention>Jeremy White</mention>
<mention>Xandros</mention>
<mention>News</mention>

<p>CodeWeavers announced a strategic relationship with Xandros.  The product going to Xandros' 
distribution will combine the functionality of CrossOver Office and the CrossOver Plug-In.
In addition it's been integrated with the entire distribution to give a more polished feel
than the normal commercial products.  CodeWeavers has since pulled the announcement from their
web site for whatever reason, but several sites leaked the news after seeing the initial 
press release.  There's a great 
<a href="http://www.consultingtimes.com/articles/codeweavers/codeweaversxandros.html">interview</a>
with Jeremy White over at ConsultingTimes where he discusses in more depth the Xandros deal.
>From the press release that wasn't really released:</p>
<quote who="Codeweavers"><p>
CodeWeavers To Provide Windows-to-Linux Functionality For New Xandros&#174; Desktop Operating System
Much-Heralded Linux&#174; OS Will Feature "CrossOver for Xandros" Based on CodeWeavers' CrossOver 
Software, Allowing Windows&#174; Applications to Run Without Windows OS</p></quote>

<p>There's a little more behind this than meets the eye.  Both
Xandros and CodeWeavers have a significant share owned by a holding
company, <a href="http://www.linuxglobalpartners.com/">Linux Global
Partners</a>.  Other companies in their portfolio include Ximian,
Gobe, Metro Link, and GNU Cash.  All of the companies are fully
independent, but as Linux Global Partner's web site states, 
<quote who="Linux Global Partners">
 Our operating strategy is to integrate our partner companies into a collaborative 
 network that leverages our collective knowledge and resources. With the goal of 
 holding our partner company interests for the long-term, we use our collective 
 resources to actively develop the business strategies, operations and management 
 teams of our partner companies. </quote></p>

<p>Ski season has started.  No promises on getting this out on a timely
basis in the coming months.  Not that there were any before.. </p>

</section>










<section 
	title="Listview Update" 
	subject="Second Listview status update"
	archive="http://www.winehq.com/hypermail/wine-devel/2002/10/0306.html" 
	posts="20" 
	startdate="13 Oct 2002 23:00:00 -0800"
	enddate="16 Oct 2002 23:00:00 -0800"
>
<topic>Patches</topic>
<mention>Rein Klazes</mention>
<mention></mention>
<mention>News</mention>
<mention>Carlos Lozano</mention>

<p>Dimi Paun wrote in with an update about the ongoing
changes to the listview control:</p>
<quote who="Dimitrie Paun">
<p>
The listview should now be better than before I started working on it.
If there are regressions, I would like to know about them.
</p><p>
During my work, the REPORT mode got a lot faster rendering. The Q-series
patches undoes partly those speed enhancements. However, the situation
is temporary, and when I'm done with it, we'll have pretty much as fast
a rendering as possible. 
</p><p>
For this to happen, I need to do a bit more infrastructure work. 
Namely, we have to keep track of column information, such as rect, 
alignment, etc. This will no only speed up report rendering,
it will allow us to have icons for subitems as well (most of the work
for this is actually done, I just need a place to put the on/off flag).
</p><p>
Once this is done, we can start working on actually adding features.
And there are a _lot_ of features that we're missing. But this is
another story! :) My aim here is to bring the listview to a solid
foundation that can take all these new features without turning it
into something (1) buggy, (2) unmanageable, and (3) slow.
</p><p>
There is one more infrastructure bit that may need to be done. That
is, we may need to keep an ordered array of item positions in
LVS_{,SMALL}ICON modes. Currently, we don't have something like this,
and as a result we need to iterate over the entire item set in
the above mentioned modes. This works for a small number of items,
but when we have 10s of thousands, or millions, or what have you of
items, it will blow chunks. The good thing is that all the iterator
work that I've done lately nicely separates all these details away
from the code. So it can wait for now.
</p><p>
So once again, I am interested to hear about regressions. I think
the code reached a state where we can concentrate on cleaning up
our act, before adding new features.
</p></quote>
 
<p>Several people wrote back with problems, and Dimi began
tackling them.  A few days later he wrote another update:</p>
<quote who="Dimitrie Paun"><p>
Things look pretty good on the listview front. In fact, I am kindda 
happy the way things are, as the S-series patches were rather tricky
at points...
</p><p>
Currently, I know of the following problems:
<ul>
  <li> Newsbin dies swiftly 
     (reported my Rein Klazes)</li>
  <li> FTPCommander seems to experience some listview-related faults
     (reported by Carlos Lozano)</li>
  <li> Xnews has some minor focus rectangle problems
     (discovered by myself :))</li>
  <li> IDAdemo _may_ have some minor drawing glitches
     (ditto)</li>
</ul></p><p>
At this point, I would like to ask everybody that is aware of a
listview problem to report it. I might not be able to put as
much time, and effort into listview, as I did lately, so the more
of a complete picture I have now, the better the chances that
I'm gonna fix it.
</p><p>
Next on my TODO:
<ul>
  <li> Fix Newsbin's crash
     (BTW, Rein I need a new trace with the latest CVS, if possible)</li>
  <li> Store per-column info into the listview
     (see the second status update for details)</li>
</ul></p><p>
If you feel that there is a particular are of the listview that needs
attention, let me know so I can work it into my TODO, time permitting.
</p></quote>

</section>







<section 
	title="Windows Code Migration Guide" 
	subject="FYI"
	archive="http://www.winehq.com/hypermail/wine-devel/2002/10/0373.html" 
	posts="3" 
	startdate="15 Oct 2002 23:00:00 -0800"
>
<topic>Documentation</topic>
<mention></mention>
<mention>Eric Pouech</mention>

<p>Eric Pouech posted an excellent link to an
excellent document on Microsoft's web site.  
The "<a href="http://www.lotus.com/developers/itcentralnew.nsf/allpublic/2D96D32F0ED19D26852569DD0067B3D0?opendocument">
UNIX Code Migration Guide</a>" (you may also find it 
<a href="http://msdn.microsoft.com/library/default.asp?url=/library/en-us/dnucmg/html/ucmglp.asp">here</a>
) ironically can serve as a wonderful Windows code migration guide.  
Inside is a wonderful description of Windows' architecture, much of
which also applies to Wine.  It discusses topics ranging from
memory management to window management.  If you've ever wanted to
hack a Winelib app, dig into Wine internals, or just try to
figure out equivalent features between unix and Windows, then 
you'll want to check it out.</p> 

<p>A couple people pointed out subtle (and not to subtle) propaganda 
interspersed within.</p>

</section>









<section 
	title="Adding -DSTRICT Capability" 
	subject="Re: PATCH: compile fix (when all handles are void*)"
	archive="http://www.winehq.com/hypermail/wine-devel/2002/10/0378.html" 
	posts="4" 
	startdate="15 Oct 2002 23:00:00 -0800"
>
<topic>Build Process</topic>
<mention></mention>
<mention>Dimitrie Paun</mention>

<p>Michael Stefaniuc has been on a qwest converting all sorts
of HANDLES to void*.  In general, handles refer to resources 
have been loaded into memory.  The Win32 API provides for several
different types of handles to access things from windows to
registry keys.  
With his latest patch he noted,
<quote who="Michael Stefaniuc">this patch was lying around. It makes 
wine compile with all handles (even HANDLE) converted to a void*.</quote></p>

<p>Why does this matter, you ask?  From Bugzilla 
<a href="http://bugs.winehq.com/show_bug.cgi?id=90">bug #90</a>:</p>
<quote who="Francois Gouget"><p>
In Wine's windef.h the definition for HANDLE is 'int' whereas on Windows it
is a 'void*'. This causes many compilation warnings in WineLib applications
(each time one puts NULL in a HANDLE for instance) and, I believe, also
occasionally causes compilation errors (think function signature).
</p><p>
   So we should change this definition but we must keep the same type for Wine
and WineLib to avoid problems on architectures where sizeof(int)!=sizeof(void*)
(i.e. 64bit architectures, i.e. architectures on which Wine does not run yet).
</p><p>
   The problem is that this change will require many modifications to get Wine
to compile cleanly.
   This task is still in the planning stage. The current thinking is to:
<ul>
 <li> change Wine to compile with STRICT turned on while we're at it. This makes
handles incompatible with each other resulting in better type safety.</li>
 <li> make the change one type at a time</li>
 <li> maybe define a new macro for use during the transition. The new macro,
DECLARE_NEW_HANDLE, would generate a handle type as if STRICT was turned on
while the other one would be unchanged. At the end we would change it back to
DECLARE_HANDLE and put STRICT in Wine's makefile.</li></ul></p></quote>

<p>So using STRICT gives you the ability to differentiate between HANDLE's 
when you compile - right now they're all int, so you can accidentally assign
one type of handle to another.  (This doesn't prevent you from doing an 
explicit cast though.)  Dimitrie Paun wanted to know if the latest patch
meant compiling with -DSTRICT was coming soon.  Michael went into detail:
</p><quote who="Michael Stefaniuc"><p>
 Well, it depends what you mean with "soon". Bug #90 was opened
 2000-10-31 so 3 - 4 month is pretty soon.
 There are 9 handles to convert but that number has nothing much to say.
 A wine (some days old, but in this field no much changes happened) compiled
 with -DSTRICT and all handles changed to void* gives:
<ul>
 <li>3388 lines of warnings</li>
 <li>2045 of them are of type "int format, HANDLE arg", this leaves</li>
 <li>1343 lines of warnings to look at.</li>
</ul></p><p>
I'm almost finished a short perl script to automaticly convert the "int
format, HANDLE arg" warnings, which would leave us with the other 1343
warnings. Wine compiles and even seems to run so if Alexander would
like to speed up the conversion he could change the remaining handles to
void*, add -DSTRICT and hope that the some people get annoyed with the
warnings and submit patches. But i don't recommend it (yet).
</p></quote>

<p>Alexandre didn't think prematurely adding it was the proper solution,
but instead gave another option for phasing it in,
<quote who="Alexandre Julliard">
No, I don't think we want that. But one thing we could do is to
compile individual dlls with -DSTRICT, so that we can fix them one at
a time; this would avoid having to do a huge patch that changes the
format strings all over the tree at the same time. I can do the needed
Makefile magic if you'd like to try this approach.</quote></p>





</section>









<section 
	title="Using wineconsole" 
	subject="wineconsole examples?"
	archive="http://www.winehq.com/hypermail/wine-devel/2002/10/0406.html" 
	posts="3" 
	startdate="16 Oct 2002 23:00:00 -0800"
>
<topic>Fixes</topic>
<mention></mention>

<p>
Bill Holland was having trouble running a program and asked
for help:</p>
<quote who="Bill Holland"><p>
Is there a good example WINE configuration for running a simple console
program (using wineconsole)?
</p><p>
For example, the windows tree.com program?
</p><p>
I'm actually trying to run TLIB (version control software from Dave Burton
Systems, www.burtonsys.com ) under linux, and am so confused I want to start
with a working example first.  I'm new to linux, tlib, and wine!
</p></quote>

<p>Vincent Beron gave some quick pointers:</p>
<quote who="Vincent Beron"><p>
I don't know about wineconsole (Eric?), but for CUI DOS/WIN32 programs
the ttydrv driver (in place of the x11drv) works.
</p><p>
It lauches in whichever terminal is presently used: console, ssh, xterm.
I'm not sure about doing fancy "graphics" with it though. But if TLIB
has the same UI as cvs, then it should be good (at least on the UI
front).</p></quote>

<p>Eric Pouech explained:</p>
<quote who="Eric Pouech"><p>
<code>wineconsole tree.com</code>
should do the trick
</p><p>
in more details, you can either:
<ol>
<li> choose to run your program in the (unix) console where you type the
command with "wine tree.com"</li>
<li> or dedicate a specific console for your app "wineconsole tree.com"</li></ol>
</p><p>
 option 1 is better for integration with unix tools
 option 2 is better in terms of Wine internal handling, and may be less
 buggy (depending on what your program does)
</p></quote>



</section>










<section 
	title="Threading In Winelib Apps" 
	subject="multithreading winelib app"
	archive="http://www.winehq.com/hypermail/wine-devel/2002/10/0437.html" 
	posts="3" 
	startdate="16 Oct 2002 23:00:00 -0800"
	enddate="17 Oct 2002 23:00:00 -0800"
>
<topic>Winelib</topic>

<mention></mention>

<p>Malte Starostik asked, <quote who="Malte Starostik">
before I make some major mistakes: can a winelib app safely use pthreads and 
run WinAPI functions from multiple threads or will it have to use Windows 
threads?</quote></p>
<p>Francois Gouget gave the quick answer, <quote who="Francois Gouget">
Winelib applications cannot use pthreads. They should not even be linked
with the pthread library.</quote></p>

</section>








<section 
	title="Large Screen Buffers for the Debugger" 
	subject="winedbg"
	archive="http://www.winehq.com/hypermail/wine-devel/2002/10/0422.html" 
	posts="9" 
	startdate="16 Oct 2002 23:00:00 -0800"
	enddate="17 Oct 2002 23:00:00 -0800"
>
<topic>Debugging</topic>
<mention></mention>

<p>
Dimi Paun wondered why the debugger wasn't working for him.  The
symptoms he reported were:</p>
<quote who="Dimitrie Paun"><p>
 I had winedbg startup 
 automatically a few times, and I noticed that I get no text
 in the console. Actually, I do (as I can select it and copy it),
 but it doesn't get rendered. I tried changing the font, but the
 only option I get is "Courier New". Tried different size, but 
 nothing helped. Strange thing is that the sample 
  "This is a test"
 in the font selection tab works just fine.
</p></quote>

<p>Eric Pouech asked to see a trace with -debugmsg +wineconsole,+wc_font
turned on.  The resulting output contained a line:</p>
<quote who="Dimitrie Paun"><p>
<code>
trace:wineconsole:WINECON_DumpConfig load cell=(10,20) cursor=(25,1) attr=0e font=L"Courier New"/400 hist=100/1 flags=QX msk=00000000 sb=(120,3000) win=(11244,16476)x(120,50) registry=L"W:_wine_programs_winedbg_winedbg.exe"
</code></p></quote>

<p>Eric Pouech immediately recognized the problem and wrote back,
<quote who="Eric Pouech">
set a much smaller screen-buffer
120,3000 will create a way too big screenbuffer (i mean the bitmap to
render it) (as of today, the full sb is stored in a unique bitmap... and 
here the bmp allocation fails)</quote></p>




</section>
</kc>

