/* This file is part of Lcrzo.
*/

/*-------------------------------------------------------------*/
int lcrzo_priv_globalvars_ptr_get(lcrzo_priv_globalvars **pptr)
{
#if defined LCRZODEF_SYSTEM_Unix
  if (lcrzo_priv_globalvars_ptr==NULL)
  { if (LCRZODEF_LANG==1)
      puts("lcrzo_init() must be called before using lcrzo functions");
    else
      puts("lcrzo_init() doit etre employe avant d'appeler les fonctions de lcrzo");
    return(LCRZO_ERR_IEINTERNALERROR);
  }
  if (pptr!=NULL)
  { *pptr=lcrzo_priv_globalvars_ptr;
  }
#elif defined LCRZODEF_SYSTEM_Windows
  if (lcrzo_priv_globaltlsindex==0xFFFFFFFFu)
  { if (LCRZODEF_LANG==1)
      puts("lcrzo_init() must be called before using lcrzo functions");
    else
      puts("lcrzo_init() doit etre employe avant d'appeler les fonctions de lcrzo");
    return(LCRZO_ERR_IEINTERNALERROR);
  }
  { LPVOID p;
    p=TlsGetValue(lcrzo_priv_globaltlsindex);
    if (p==NULL) return(LCRZO_ERR_FUTLSGETVALUE); 
    if (pptr!=NULL) *pptr=p;
  }
#else
 #error "Unknown value for LCRZODEF_SYSTEM"
#endif
  return(LCRZO_ERR_OK);
}

