On Thu, 14 Dec 2006, Vincent Snijders wrote:
> Michael Van Canneyt schreef: > > > > On Thu, 14 Dec 2006, Vincent Snijders wrote: > > > > > Consider the following program: > > > > > > {$mode objfpc}{$H+} > > > > > > uses > > > SysUtils; > > > > > > var > > > i: integer; > > > s: string; > > > > > > begin > > > i := GetEnvironmentVariableCount; > > > writeln('VariableCount: ',i); > > > s := GetEnvironmentString(1); > > > writeln('Variable 1: ', s); > > > s := GetEnvironmentString(2); > > > writeln('Variable 2: ', s); > > > s := GetEnvironmentVariable('=D:'); > > > writeln('Variable 1: ', s); > > > end. > > > > > > If I run this from a command prompt on my windows 2000 computer it gives > > > the > > > following output: > > > VariableCount: 43 > > > Variable 1: =D:=D:\lazarus\bugs\7699 > > > Variable 2: =ExitCode=00000000 > > > Variable 1: > > > > > > The first two envrionment string are special, in the sense that their name > > > start with a =. > > > > > > but if ask for the value of the environment variable '=D:', it returns the > > > empty string. > > > > > > I am wrestling a bit with how to interprete this. Should I consider these > > > variable as special and hidden and ignore them? > > > Or should code parsing environmentstrings be able to handle variables with > > > a > > > '=' on the first position? > > > > IMHO, you should not be allowed to have a = in the name of an environment > > variable at all. Since obviously you can in Windows, this is a problem which > > will need fixing somehow. I'm pretty sure you can't do this in Linux (I get > > an illegal variable name error). > > In windows it doesn't seem to be allowed either: > C:\lazarus>set =test=p > De syntaxis van de opdracht is onjuist. On the command-line. Have you tried in the 'My Computer' properties, 'System' tab, under 'Advanced' ? There is a GUI dialog to set environment variables, probably it allows this. > > > So code relying on this will not be cross-platform. > > My problem is code relying in the fact that GetEnvironmentString(1) doesn't > return strings that start with '='. Will you fix that? Or must code using > GetEnvironmentString be aware that on some platforms these strings can start > with =. I would have to look at the code. Please enter a bug report, so it won't be forgotten. Michael. _______________________________________________ fpc-pascal maillist - fpc-pascal@lists.freepascal.org http://lists.freepascal.org/mailman/listinfo/fpc-pascal