<div dir="ltr"><div dir="ltr"><div class="gmail_default" style="font-size:small">Hi Dave,<br></div></div><br><div class="gmail_quote"><div dir="ltr" class="gmail_attr">On Mon, Jan 3, 2022 at 8:42 AM David T. Lewis <<a href="mailto:lewis@mail.msen.com">lewis@mail.msen.com</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-style:solid;border-left-color:rgb(204,204,204);padding-left:1ex">Hi Jakob,<br>
<br>
On Sun, Jan 02, 2022 at 08:39:29PM +0100, Jakob Reschke wrote:<br>
> Hi Dave,<br>
> <br>
> Happy new year!<br>
> <br>
> Am Sa., 1. Jan. 2022 um 21:46 Uhr schrieb David T. Lewis <<a href="mailto:lewis@mail.msen.com" target="_blank">lewis@mail.msen.com</a>>:<br>
> ><br>
> > For Unix/Linux, the solution can be very simple, just add /usr/share/squeak/<br>
> > and /usr/local/share/squeak/ to the list of locations to be searched<br>
> > for sources files.<br>
> ><br>
> > I suspect (but I'm not sure) that some similar convention will work<br>
> > for Windows.<br>
> ><br>
> <br>
> On Windows you would need additional help from the VM because there is<br>
> no fixed path like /usr/share or /usr/local/share. Most Windows<br>
> installations are on drive C:, but it is possible to spread Windows<br>
> across different partitions. Possible candidates for a non-writable<br>
> system-wide location are %ProgramFiles%\Common Files (usually<br>
> C:\Program Files\Common Files) or, if Squeak were installed like other<br>
> applications, its program directory under %ProgramFiles% (for example<br>
> C:\Program Files\Squeak). If it should be writable by users (or at<br>
> least the one who creates it), we could take %ProgramData% (usually<br>
> C:\ProgramData).<br>
> <br>
> <a href="https://docs.microsoft.com/en-us/windows/win32/shell/knownfolderid" rel="noreferrer" target="_blank">https://docs.microsoft.com/en-us/windows/win32/shell/knownfolderid</a><br>
> <br>
<br>
Thanks, this link makes it much more clear. Indeed, this would be<br>
better be supported by the VM, which has direct access to the Windows<br>
API calls.<br>
<br>
> The most official way to get the folder paths at runtime is to use the<br>
> Windows API, but going via the environment variables should work as<br>
> well. So if the VM does not provide the paths, we would still need at<br>
> least access to environment variables from a VM without separately<br>
> installed plugins.<br>
><br>
<br>
Given that the KNOWNFOLDERID locations are well defined in the API,<br>
I would think that the Windows API would be the better way to handle<br>
it. Perhaps the VM should provide an optional primitive for this,<br>
with the primitive providing a list of one or more locations in<br>
which the sources files might be found. And if the primitive is<br>
not implemented, then don't look there :-)<br></blockquote><div><br></div><div class="gmail_default" style="font-size:small">We have a plugin in the Virtend VM that gives official values for several named directories.  I'm happy to move this plugin and/or the primitive into VMMaker.  The specification is</div><div class="gmail_default" style="font-size:small"><br></div><div class="gmail_default" style="font-size:small">       Primitive. Query for a common file location.</div>        Arguments:<br>                location: String describing the common file location.<br>        Return value: The path to the designated location.<br>        Known locations:<br>                'home' - the user's home directory<br>                'desktop' - the user's desktop directory<br><br>                'temp' - the temp directory to use<br>                'preferences' - the place to store (per user) app preferences<br>                'applications' - the directory for installing applications<br>                'fonts' - the directory to install fonts in the system<br><br>                'documents' - the users documents folder<br>                'music' - the users default location for music<br>                'pictures' - the users default location for pictures<br>                'videos' - the users default location for videos</div><div><br></div><br><div dir="ltr" class="gmail_signature"><div dir="ltr"><div><span style="font-size:small;border-collapse:separate"><div>_,,,^..^,,,_<br></div><div>best, Eliot</div></span></div></div></div></div>