mirror of
				https://gitlab.com/freepascal.org/fpc/source.git
				synced 2025-11-04 07:43:04 +01:00 
			
		
		
		
	* works also under go32v2
This commit is contained in:
		
							parent
							
								
									dc4b6d1710
								
							
						
					
					
						commit
						7861b48108
					
				@ -1,9 +1,9 @@
 | 
			
		||||
@echo off
 | 
			
		||||
echo Setting environment variables:
 | 
			
		||||
set REQUEST_METHOD=GET
 | 
			
		||||
set "QUERY_STRING=name=michael&address=home&city=heaven"
 | 
			
		||||
set "HTTP_USER_AGENT=Shell script"
 | 
			
		||||
set "HTTP_REFERER=The shell prompt"
 | 
			
		||||
echo Running program
 | 
			
		||||
testcgi
 | 
			
		||||
 | 
			
		||||
@echo off
 | 
			
		||||
echo Setting environment variables:
 | 
			
		||||
set REQUEST_METHOD=GET
 | 
			
		||||
set QUERY_STRING=name=michael&address=home&city=heaven
 | 
			
		||||
set HTTP_USER_AGENT=Shell script
 | 
			
		||||
set HTTP_REFERER=The shell prompt
 | 
			
		||||
echo Running program
 | 
			
		||||
testcgi.exe
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
@ -98,6 +98,37 @@ Var EnvP : PChar;
 | 
			
		||||
function GetEnvironmentStrings : pchar; external 'kernel32' name 'GetEnvironmentStringsA';
 | 
			
		||||
function FreeEnvironmentStrings(p : pchar) : longbool; external 'kernel32' name 'FreeEnvironmentStringsA';
 | 
			
		||||
 | 
			
		||||
Procedure FInitWin32CGI;
 | 
			
		||||
begin
 | 
			
		||||
  { Free memory }
 | 
			
		||||
  FreeMem (EnvP,EnvLen);
 | 
			
		||||
  ExitProc:=OldExitProc;
 | 
			
		||||
end;
 | 
			
		||||
 | 
			
		||||
Procedure InitWin32CGI;
 | 
			
		||||
var s : String;
 | 
			
		||||
    i,len : longint;
 | 
			
		||||
    hp,p : pchar;
 | 
			
		||||
 | 
			
		||||
begin
 | 
			
		||||
  { Make a local copy of environment}
 | 
			
		||||
  p:=GetEnvironmentStrings;
 | 
			
		||||
  hp:=p;
 | 
			
		||||
  envp:=Nil;
 | 
			
		||||
  envlen:=0;
 | 
			
		||||
  while hp[0]<>#0 do
 | 
			
		||||
    begin
 | 
			
		||||
    len:=strlen(hp);
 | 
			
		||||
    hp:=hp+len+1;
 | 
			
		||||
    EnvLen:=Envlen+len+1;
 | 
			
		||||
    end;
 | 
			
		||||
  GetMem(EnvP,Envlen);
 | 
			
		||||
  Move(P^,EnvP^,EnvLen);
 | 
			
		||||
  FreeEnvironmentStrings(p);
 | 
			
		||||
  OldExitProc:=ExitProc;
 | 
			
		||||
  ExitProc:=@FinitWin32CGI;
 | 
			
		||||
end;
 | 
			
		||||
 | 
			
		||||
Function GetEnv(envvar: string): pchar;
 | 
			
		||||
{ Getenv that can return environment vars of length>255 }
 | 
			
		||||
var s : String;
 | 
			
		||||
@ -123,41 +154,34 @@ begin
 | 
			
		||||
    hp:=hp+len+1;
 | 
			
		||||
    end;
 | 
			
		||||
end;
 | 
			
		||||
{$endif}
 | 
			
		||||
 | 
			
		||||
Procedure FInitWin32CGI;
 | 
			
		||||
 | 
			
		||||
{$ifdef GO32V2}
 | 
			
		||||
Function  GetEnv(envvar: string): pchar;
 | 
			
		||||
var
 | 
			
		||||
  hp    : ppchar;
 | 
			
		||||
  p     : pchar;
 | 
			
		||||
  hs    : string;
 | 
			
		||||
  eqpos : longint;
 | 
			
		||||
begin
 | 
			
		||||
  { Free memory }
 | 
			
		||||
  FreeMem (EnvP,EnvLen);
 | 
			
		||||
  ExitProc:=OldExitProc;
 | 
			
		||||
end;
 | 
			
		||||
 | 
			
		||||
Procedure InitWin32CGI;
 | 
			
		||||
 | 
			
		||||
var s : String;
 | 
			
		||||
    i,len : longint;
 | 
			
		||||
    hp,p : pchar;
 | 
			
		||||
 | 
			
		||||
begin
 | 
			
		||||
  { Make a local copy of environment}
 | 
			
		||||
  p:=GetEnvironmentStrings;
 | 
			
		||||
  hp:=p;
 | 
			
		||||
  envp:=Nil;
 | 
			
		||||
  envlen:=0;
 | 
			
		||||
  while hp[0]<>#0 do
 | 
			
		||||
    begin
 | 
			
		||||
    len:=strlen(hp);
 | 
			
		||||
    hp:=hp+len+1;
 | 
			
		||||
    EnvLen:=Envlen+len+1;
 | 
			
		||||
    end;
 | 
			
		||||
  GetMem(EnvP,Envlen);
 | 
			
		||||
  Move(P^,EnvP^,EnvLen);
 | 
			
		||||
  FreeEnvironmentStrings(p);
 | 
			
		||||
  OldExitProc:=ExitProc;
 | 
			
		||||
  ExitProc:=@FinitWin32CGI;
 | 
			
		||||
  envvar:=upcase(envvar);
 | 
			
		||||
  hp:=envp;
 | 
			
		||||
  getenv:=nil;
 | 
			
		||||
  while assigned(hp^) do
 | 
			
		||||
   begin
 | 
			
		||||
     hs:=strpas(hp^);
 | 
			
		||||
     eqpos:=pos('=',hs);
 | 
			
		||||
     if copy(hs,1,eqpos-1)=envvar then
 | 
			
		||||
      begin
 | 
			
		||||
        getenv:=hp^+eqpos;
 | 
			
		||||
        exit;
 | 
			
		||||
      end;
 | 
			
		||||
     inc(hp);
 | 
			
		||||
   end;
 | 
			
		||||
end;
 | 
			
		||||
{$endif}
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
var
 | 
			
		||||
  done_init     : boolean;
 | 
			
		||||
 | 
			
		||||
@ -389,7 +413,10 @@ end.
 | 
			
		||||
{
 | 
			
		||||
  HISTORY
 | 
			
		||||
  $Log$
 | 
			
		||||
  Revision 1.5  1999-11-14 15:59:06  peter
 | 
			
		||||
  Revision 1.6  2000-01-10 23:46:19  peter
 | 
			
		||||
    * works also under go32v2
 | 
			
		||||
 | 
			
		||||
  Revision 1.5  1999/11/14 15:59:06  peter
 | 
			
		||||
    * fpcmake'd
 | 
			
		||||
 | 
			
		||||
  Revision 1.4  1999/07/26 20:07:44  michael
 | 
			
		||||
 | 
			
		||||
		Loading…
	
		Reference in New Issue
	
	Block a user