1
0
mirror of https://github.com/cc65/cc65.git synced 2024-06-20 05:29:39 +00:00

New function AddSubSearchPathFromEnv.

git-svn-id: svn://svn.cc65.org/cc65/trunk@4208 b7a2c559-68d2-44c3-8de9-860c34a00d81
This commit is contained in:
uz 2009-09-22 11:29:13 +00:00
parent 7adc9311be
commit a9e46e245a
2 changed files with 54 additions and 11 deletions

View File

@ -6,10 +6,10 @@
/* */
/* */
/* */
/* (C) 2000-2008 Ullrich von Bassewitz */
/* Roemerstrasse 52 */
/* D-70794 Filderstadt */
/* EMail: uz@cc65.org */
/* (C) 2000-2009, Ullrich von Bassewitz */
/* Roemerstrasse 52 */
/* D-70794 Filderstadt */
/* EMail: uz@cc65.org */
/* */
/* */
/* This software is provided 'as-is', without any expressed or implied */
@ -132,7 +132,7 @@ static char* Find (const char* Path, const char* File)
SB_AppendChar (&PathName, '/');
}
SB_AppendStr (&PathName, File);
SB_Terminate (&PathName);
SB_Terminate (&PathName);
/* Check if this file exists */
if (access (SB_GetBuf (&PathName), 0) == 0) {
@ -173,13 +173,51 @@ void AddSearchPath (const char* NewPath, unsigned Where)
void AddSearchPathFromEnv (const char* EnvVar, unsigned Where)
/* Add a search from an environment variable */
/* Add a search path from an environment variable */
{
AddSearchPath (getenv (EnvVar), Where);
}
void AddSubSearchPathFromEnv (const char* EnvVar, const char* SubDir, unsigned Where)
/* Add a search path from an environment variable, adding a subdirectory to
* the environment variable value.
*/
{
StrBuf Dir = AUTO_STRBUF_INITIALIZER;
const char* EnvVal = getenv (EnvVar);
if (EnvVal == 0) {
/* Not found */
return;
}
/* Copy the environment variable to the buffer */
SB_CopyStr (&Dir, EnvVal);
/* Add a path separator if necessary */
if (SB_NotEmpty (&Dir)) {
if (SB_LookAtLast (&Dir) != '\\' && SB_LookAtLast (&Dir) != '/') {
SB_AppendChar (&Dir, '/');
}
}
/* Add the subdirectory */
SB_AppendStr (&Dir, SubDir);
/* Terminate the string */
SB_Terminate (&Dir);
/* Add the search path */
AddSearchPath (SB_GetConstBuf (&Dir), Where);
/* Free the temp buffer */
SB_Done (&Dir);
}
void ForgetAllSearchPaths (unsigned Where)
/* Forget all search paths in the given lists. */
{

View File

@ -6,10 +6,10 @@
/* */
/* */
/* */
/* (C) 2000-2003 Ullrich von Bassewitz */
/* Römerstrasse 52 */
/* D-70794 Filderstadt */
/* EMail: uz@cc65.org */
/* (C) 2000-2009, Ullrich von Bassewitz */
/* Roemerstrasse 52 */
/* D-70794 Filderstadt */
/* EMail: uz@cc65.org */
/* */
/* */
/* This software is provided 'as-is', without any expressed or implied */
@ -67,7 +67,12 @@ void AddSearchPath (const char* NewPath, unsigned Where);
/* Add a new search path to the existing one */
void AddSearchPathFromEnv (const char* EnvVar, unsigned Where);
/* Add a search from an environment variable */
/* Add a search path from an environment variable */
void AddSubSearchPathFromEnv (const char* EnvVar, const char* SubDir, unsigned Where);
/* Add a search path from an environment variable, adding a subdirectory to
* the environment variable value.
*/
void ForgetAllSearchPaths (unsigned Where);
/* Forget all search paths in the given lists. */