-/* $Id: env.c,v 1.8 2000/02/19 19:34:49 ekohl Exp $
+/* $Id: env.c,v 1.9 2000/02/27 15:45:57 ekohl Exp $
*
* COPYRIGHT: See COPYING in the top level directory
* PROJECT: ReactOS system libraries
#define NDEBUG
#include <ntdll/ntdll.h>
+
/* FUNCTIONS *****************************************************************/
NTSTATUS
int dst_max;
int tail;
+ DPRINT ("RtlExpandEnvironmentStrings_U %p %wZ %p %p\n",
+ Environment, Source, Destination, Length);
+
src_len = Source->Length / sizeof(WCHAR);
s = Source->Buffer;
dst_max = Destination->MaximumLength / sizeof(WCHAR);
val.MaximumLength = dst_max * sizeof(WCHAR);
val.Buffer = d;
Status = RtlQueryEnvironmentVariable_U (Environment, &var, &val);
- if (!NT_SUCCESS(Status))
+ if (NT_SUCCESS(Status))
{
d += val.Length / sizeof(WCHAR);
dst_max -= val.Length / sizeof(WCHAR);
if (dst_max)
Destination->Buffer[Destination->Length / sizeof(WCHAR)] = 0;
+ DPRINT ("Destination %wZ\n", Destination);
return Status;
}
PWSTR val;
int varlen;
int len;
+ BOOLEAN SysEnvUsed = FALSE;
DPRINT("RtlQueryEnvironmentVariable_U Environment %p Variable %wZ Value %p\n",
Environment, Name, Value);
- if (!Environment)
+ if (Environment == NULL)
+ {
Environment = NtCurrentPeb()->ProcessParameters->Environment;
+ SysEnvUsed = TRUE;
+ }
- if (!Environment)
+ if (Environment == NULL)
return STATUS_VARIABLE_NOT_FOUND;
Value->Length = 0;
- if (Environment == NtCurrentPeb()->ProcessParameters->Environment)
+ if (SysEnvUsed == TRUE)
RtlAcquirePebLock();
wcs = Environment;
{
wcscpy (Value->Buffer, val);
DPRINT("Value %S\n", val);
+ DPRINT("Return STATUS_SUCCESS\n");
Status = STATUS_SUCCESS;
}
else
{
+ DPRINT("Return STATUS_BUFFER_TOO_SMALL\n");
Status = STATUS_BUFFER_TOO_SMALL;
}
- if (Environment == NtCurrentPeb()->ProcessParameters->Environment)
+ if (SysEnvUsed == TRUE)
RtlReleasePebLock ();
return Status;
wcs++;
}
- if (Environment == NtCurrentPeb()->ProcessParameters->Environment)
+ if (SysEnvUsed == TRUE)
RtlReleasePebLock ();
+ DPRINT("Return STATUS_VARIABLE_NOT_FOUND\n");
return STATUS_VARIABLE_NOT_FOUND;
}