<p>We can now at least compile the whole VM and main plugins with -DUNICODE</p>

<hr>

<h4>You can view, comment on, or merge this pull request online at:</h4>
<p>  <a href='https://github.com/OpenSmalltalk/opensmalltalk-vm/pull/332'>https://github.com/OpenSmalltalk/opensmalltalk-vm/pull/332</a></p>

<h4>Commit Summary</h4>
<ul>
  <li>Handle both an ASCII (UTF8) and a WIDE (UTF16) version of image/vm name/path</li>
  <li>DropPlugin: modernize OpenFile/_lwrite/_lclose API</li>
  <li>Drop plugin: let tempPathName be Wide</li>
  <li>Fix 2 potential buffer overrun in sqWin32Service.c</li>
  <li>Setting fp flags _MCW_PC and _MCW_IC is not supported on ARM nor X64</li>
  <li>The pageSize and pageMask are too short on WIN64</li>
  <li>Use the eventually true UNICODE imageNameT if -DUNICODE</li>
  <li>interpret pluginName as UTF8 rather than pure ASCII</li>
  <li>refactor sqMessageBox to void using toUnicode</li>
  <li>Discard now unused toUnicode fromUnicode fromSqueak fromSqueak2 lstrrchr</li>
  <li>#if 0 ? YAGNI ! we now use builtin _WIN32 _WIN64 anyway</li>
  <li>which SetUpPreferences()? There is no SetUpPreferences()!</li>
  <li>RegisterWindowMessage takes a TCHAR *</li>
  <li>Platform specific knowledge: WIN32_FILE and STD_FILE are mutually exclusive options</li>
  <li>We can't compare a TCHAR*windowClassName with a char*buf</li>
  <li>Tu quoque NewspeakVM, frustra TEXT macro...</li>
  <li>gai_strerror returns a TCHAR*, we cannot simply fprintf it...</li>
  <li>Let lookup account for NULL terminating a WCHAR*</li>
  <li>Revert to ASCII only version of DnsInfo</li>
  <li>iconPath is char*, LoadImage expects a TCHAR*</li>
  <li>And account for the fact that iconPath is not NULL-TERMINATED!</li>
  <li>DPRINTF must take a TCHAR*fmt because wvsprintf does!</li>
  <li>NOTIFYICONDATA.szTip maybe a WCHAR* if -DUNICODE</li>
  <li>_DISPLAY_DEVICE.DeviceString may be a WCHAR* if -DUNICODE, we cannot simply sprintf</li>
  <li>VM_VERSION_TEXT is a TCHAR*, we cannot simply fprintf</li>
  <li>iniName, manufacturer and model may be WCHAR* if -DUNICODE</li>
  <li>Information queried in Registry can be WideChar if -DUNICODE</li>
  <li>Make stderrName and stdoutName be WCHAR*</li>
  <li>Retract support for Windows95 (no you don't dream it's nearly 2019!)</li>
  <li>Handle UTF16 logName and serviceName</li>
</ul>

<h4>File Changes</h4>
<ul>
  <li>
    <strong>M</strong>
    <a href="https://github.com/OpenSmalltalk/opensmalltalk-vm/pull/332/files#diff-0">platforms/win32/plugins/DropPlugin/sqWin32Drop.c</a>
    (78)
  </li>
  <li>
    <strong>M</strong>
    <a href="https://github.com/OpenSmalltalk/opensmalltalk-vm/pull/332/files#diff-1">platforms/win32/plugins/FilePlugin/sqWin32FilePrims.c</a>
    (2)
  </li>
  <li>
    <strong>M</strong>
    <a href="https://github.com/OpenSmalltalk/opensmalltalk-vm/pull/332/files#diff-2">platforms/win32/plugins/HostWindowPlugin/sqWin32HostWindowPlugin.c</a>
    (9)
  </li>
  <li>
    <strong>M</strong>
    <a href="https://github.com/OpenSmalltalk/opensmalltalk-vm/pull/332/files#diff-3">platforms/win32/plugins/SocketPlugin/sqWin32NewNet.c</a>
    (4)
  </li>
  <li>
    <strong>M</strong>
    <a href="https://github.com/OpenSmalltalk/opensmalltalk-vm/pull/332/files#diff-4">platforms/win32/vm/sqPlatformSpecific.h</a>
    (1)
  </li>
  <li>
    <strong>M</strong>
    <a href="https://github.com/OpenSmalltalk/opensmalltalk-vm/pull/332/files#diff-5">platforms/win32/vm/sqWin32.h</a>
    (82)
  </li>
  <li>
    <strong>M</strong>
    <a href="https://github.com/OpenSmalltalk/opensmalltalk-vm/pull/332/files#diff-6">platforms/win32/vm/sqWin32Alloc.c</a>
    (4)
  </li>
  <li>
    <strong>M</strong>
    <a href="https://github.com/OpenSmalltalk/opensmalltalk-vm/pull/332/files#diff-7">platforms/win32/vm/sqWin32DnsInfo.c</a>
    (16)
  </li>
  <li>
    <strong>M</strong>
    <a href="https://github.com/OpenSmalltalk/opensmalltalk-vm/pull/332/files#diff-8">platforms/win32/vm/sqWin32ExternalPrims.c</a>
    (5)
  </li>
  <li>
    <strong>M</strong>
    <a href="https://github.com/OpenSmalltalk/opensmalltalk-vm/pull/332/files#diff-9">platforms/win32/vm/sqWin32Main.c</a>
    (463)
  </li>
  <li>
    <strong>M</strong>
    <a href="https://github.com/OpenSmalltalk/opensmalltalk-vm/pull/332/files#diff-10">platforms/win32/vm/sqWin32Prefs.c</a>
    (18)
  </li>
  <li>
    <strong>M</strong>
    <a href="https://github.com/OpenSmalltalk/opensmalltalk-vm/pull/332/files#diff-11">platforms/win32/vm/sqWin32Prefs.h</a>
    (6)
  </li>
  <li>
    <strong>M</strong>
    <a href="https://github.com/OpenSmalltalk/opensmalltalk-vm/pull/332/files#diff-12">platforms/win32/vm/sqWin32Service.c</a>
    (307)
  </li>
  <li>
    <strong>M</strong>
    <a href="https://github.com/OpenSmalltalk/opensmalltalk-vm/pull/332/files#diff-13">platforms/win32/vm/sqWin32SpurAlloc.c</a>
    (18)
  </li>
  <li>
    <strong>M</strong>
    <a href="https://github.com/OpenSmalltalk/opensmalltalk-vm/pull/332/files#diff-14">platforms/win32/vm/sqWin32Utils.c</a>
    (114)
  </li>
  <li>
    <strong>M</strong>
    <a href="https://github.com/OpenSmalltalk/opensmalltalk-vm/pull/332/files#diff-15">platforms/win32/vm/sqWin32Window.c</a>
    (103)
  </li>
</ul>

<h4>Patch Links:</h4>
<ul>
  <li><a href='https://github.com/OpenSmalltalk/opensmalltalk-vm/pull/332.patch'>https://github.com/OpenSmalltalk/opensmalltalk-vm/pull/332.patch</a></li>
  <li><a href='https://github.com/OpenSmalltalk/opensmalltalk-vm/pull/332.diff'>https://github.com/OpenSmalltalk/opensmalltalk-vm/pull/332.diff</a></li>
</ul>

<p style="font-size:small;-webkit-text-size-adjust:none;color:#666;">—<br />You are receiving this because you are subscribed to this thread.<br />Reply to this email directly, <a href="https://github.com/OpenSmalltalk/opensmalltalk-vm/pull/332">view it on GitHub</a>, or <a href="https://github.com/notifications/unsubscribe-auth/AhLyW9wNBh4YMHKY8ce1dPQtctNpELUxks5u-k52gaJpZM4Zlkze">mute the thread</a>.<img src="https://github.com/notifications/beacon/AhLyWzSjP03qFmNLeLgZoG0mDJwQayRaks5u-k52gaJpZM4Zlkze.gif" height="1" width="1" alt="" /></p>
<script type="application/json" data-scope="inboxmarkup">{"api_version":"1.0","publisher":{"api_key":"05dde50f1d1a384dd78767c55493e4bb","name":"GitHub"},"entity":{"external_key":"github/OpenSmalltalk/opensmalltalk-vm","title":"OpenSmalltalk/opensmalltalk-vm","subtitle":"GitHub repository","main_image_url":"https://github.githubassets.com/images/email/message_cards/header.png","avatar_image_url":"https://github.githubassets.com/images/email/message_cards/avatar.png","action":{"name":"Open in GitHub","url":"https://github.com/OpenSmalltalk/opensmalltalk-vm"}},"updates":{"snippets":[{"icon":"DESCRIPTION","message":"Win64 unicode (#332)"}],"action":{"name":"View Pull Request","url":"https://github.com/OpenSmalltalk/opensmalltalk-vm/pull/332"}}}</script>
<script type="application/ld+json">[
{
"@context": "http://schema.org",
"@type": "EmailMessage",
"potentialAction": {
"@type": "ViewAction",
"target": "https://github.com/OpenSmalltalk/opensmalltalk-vm/pull/332",
"url": "https://github.com/OpenSmalltalk/opensmalltalk-vm/pull/332",
"name": "View Pull Request"
},
"description": "View this Pull Request on GitHub",
"publisher": {
"@type": "Organization",
"name": "GitHub",
"url": "https://github.com"
}
}
]</script>