int _commode = _IOCOMMIT;
+/*
+ * @implemented
+ */
int *__p__commode(void) // not exported by NTDLL
{
return &_commode;
DPRINT("BlockEnvToEnviron()\n");
- if (_environ) {
+ if (_environ && _environ != __initenv) {
FreeEnvironmentStringsA(_environ[0]);
free(_environ);
- _environ = NULL;
}
+ _environ = NULL;
ptr2 = ptr = (char*)GetEnvironmentStringsA();
if (ptr == NULL) {
DPRINT("GetEnvironmentStringsA() returnd NULL\n");
len = 0;
while (*ptr2) {
len++;
- while (*ptr2++);
+ ptr2 += strlen(ptr2) + 1;
}
_environ = malloc((len + 1) * sizeof(char*));
if (_environ == NULL) {
}
for (i = 0; i < len && *ptr; i++) {
_environ[i] = ptr;
- while (*ptr++);
+ ptr += strlen(ptr) + 1;
}
_environ[i] = NULL;
+ if (__initenv == NULL)
+ {
+ __initenv = _environ;
+ }
return 0;
}
+/*
+ * @implemented
+ */
void __set_app_type(int app_type)
{
__app_type = app_type;
}
+/*
+ * @implemented
+ */
char **__p__acmdln(void)
{
return &_acmdln;
}
+/*
+ * @implemented
+ */
char ***__p__environ(void)
{
return _environ_dll;
}
+/*
+ * @implemented
+ */
char ***__p___initenv(void)
{
return &__initenv;
}
+/*
+ * @implemented
+ */
int *__p___mb_cur_max(void)
{
return &__mb_cur_max;
}
+/*
+ * @implemented
+ */
unsigned int *__p__osver(void)
{
return &_osver;
}
+/*
+ * @implemented
+ */
char **__p__pgmptr(void)
{
return &_pgmptr;
}
+/*
+ * @implemented
+ */
unsigned int *__p__winmajor(void)
{
return &_winmajor;
}
+/*
+ * @implemented
+ */
unsigned int *__p__winminor(void)
{
return &_winminor;
}
+/*
+ * @implemented
+ */
unsigned int *__p__winver(void)
{
return &_winver;