Wine Traffic #56 For 14�Aug�2000

By Eric Pouech

Table Of Contents

Introduction

This is the 56th 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).

Mailing List Stats For This Week

We looked at 87 posts in 281K.

There were 31 different contributors. 17 posted more than once. 16 posted last week too.

The top posters of the week were:

1. Handling wininit.ini

5�Aug�2000�-�8�Aug�2000 (6 posts) Archive Link: "Where and how to handle wininit.ini"

People: Ulrich Weigand,�Sergei Turchanov,�Peter Ganten,�,�Uwe Bonnes

Uwe Bonnes obviously had some issue with installer files:
For moving and deleting otherwise busy file, windows enters these files to move in wininit.ini. At the next start of windows this file is processed once early in the windows start up sequence. This is done by a MZ-executable wininit.exe.

Uwe then asked if such a behavior had to be reproduced in Wine, and if yes, how ?

Sergei Turchanov pointed out that:
This is true only for Win9x. As for WinNT, there is registry value under
"HKLM\CurrentControlSet\Control\Session Manager"
����PendingRenameOperations:REG_MULTI_SZ

which contains for each rename operation two lines - old and new name; and if new name is empty then the file is deleted.

Peter Ganten reminded he just submitted a patch that implements those features. He also added:
the whole sense of PendingRenameOperations and wininit.ini is, that under Windows you may not delete opened files. Since application might expect this, wine has to forbid deletion of files, which are opened by other wine processes, too. So we need something to handle wininit.ini and MoveFileEx.

2. strlen vs. lstrlenA

9�Aug�2000�-�10�Aug�2000 (9 posts) Archive Link: "lstrlenA exception handling"

People: ,�Marcus Meissner

Jim Aston, while profiling Wine code with cprof (BROKEN KCREF), found out that the exception handling around lstrlenA was a rather high tribute.

Jim then wondered why such an exception mechanism was needed (running without gave a performance improvement).

Marcus Meissner explained that Windows allowed NULL (or invalid) parameters to be passed to lstrlenA, and in that case to return error codes, hence the TRY/EXCEPT block around the function.

However, it would be possible to replace call to lstrlenA inside Wine with their libc equivalent (strlen), for gaining some speed.

This has been committed to the CVS tree.

Sharon And Joy

Kernel Traffic is grateful to be developed on a computer donated by Professor Greg Benson and Professor Allan Cruse in the Department of Computer Science at the University of San Francisco. This is the same department that invented FlashMob Computing. Kernel Traffic is hosted by the generous folks at kernel.org. All pages on this site are copyright their original authors, and distributed under the terms of the GNU General Public License version 2.0.