fix system <> include, now the last push dir is not the first one to check
git-svn-id: https://swig.svn.sourceforge.net/svnroot/swig/trunk/SWIG@8447 626c5289-ae23-0410-ae9c-e8d60b6d4f22
This commit is contained in:
parent
eafca75401
commit
479d861dae
1 changed files with 24 additions and 7 deletions
|
|
@ -71,15 +71,17 @@ Swig_swiglib_get() {
|
||||||
|
|
||||||
List *
|
List *
|
||||||
Swig_add_directory(const String_or_char *dirname) {
|
Swig_add_directory(const String_or_char *dirname) {
|
||||||
String *dir = 0;
|
|
||||||
if (!directories) directories = NewList();
|
if (!directories) directories = NewList();
|
||||||
assert(directories);
|
assert(directories);
|
||||||
if (dirname) {
|
if (dirname) {
|
||||||
dir = NewString((char *) dirname);
|
String *sdir = NewString(dirname);
|
||||||
|
Hash *dir = NewHash();
|
||||||
assert(dir);
|
assert(dir);
|
||||||
Setattr(dir,k_sysdir,"1");
|
SetFlag(dir, k_sysdir);
|
||||||
|
Setattr(dir, k_name, sdir);
|
||||||
Append(directories, dir);
|
Append(directories, dir);
|
||||||
Delete(dir);
|
Delete(dir);
|
||||||
|
Delete(sdir);
|
||||||
}
|
}
|
||||||
return directories;
|
return directories;
|
||||||
}
|
}
|
||||||
|
|
@ -95,14 +97,20 @@ Swig_add_directory(const String_or_char *dirname) {
|
||||||
|
|
||||||
void
|
void
|
||||||
Swig_push_directory(const String_or_char *dirname) {
|
Swig_push_directory(const String_or_char *dirname) {
|
||||||
|
String *tmp = 0;
|
||||||
if (!Swig_get_push_dir()) return;
|
if (!Swig_get_push_dir()) return;
|
||||||
if (!directories) directories = NewList();
|
if (!directories) directories = NewList();
|
||||||
assert(directories);
|
assert(directories);
|
||||||
if (!DohIsString(dirname)) {
|
if (!DohIsString(dirname)) {
|
||||||
dirname = NewString((char *) dirname);
|
dirname = tmp = NewString(dirname);
|
||||||
assert(dirname);
|
assert(dirname);
|
||||||
}
|
}
|
||||||
Insert(directories, 0, dirname);
|
if (dirname) {
|
||||||
|
Hash *dir = NewHash();
|
||||||
|
Setattr(dir, k_name, dirname);
|
||||||
|
Insert(directories, 0, dir);
|
||||||
|
if (tmp) Delete(tmp);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/* -----------------------------------------------------------------------------
|
/* -----------------------------------------------------------------------------
|
||||||
|
|
@ -163,14 +171,23 @@ Swig_search_path_any(int syspath) {
|
||||||
}
|
}
|
||||||
ilen = Len(directories);
|
ilen = Len(directories);
|
||||||
for (i = 0; i < ilen; i++) {
|
for (i = 0; i < ilen; i++) {
|
||||||
|
int issimple = 0;
|
||||||
dirname = Getitem(directories,i);
|
dirname = Getitem(directories,i);
|
||||||
filename = NewStringEmpty();
|
filename = NewStringEmpty();
|
||||||
assert(filename);
|
assert(filename);
|
||||||
Printf(filename, "%s%s", dirname, SWIG_FILE_DELIMETER);
|
if (DohIsString(dirname)) {
|
||||||
if (syspath && !Getattr(dirname,k_sysdir)) {
|
filename = Copy(dirname);
|
||||||
|
issimple = 1;
|
||||||
|
} else {
|
||||||
|
filename = Copy(Getattr(dirname,k_name));
|
||||||
|
}
|
||||||
|
StringAppend(filename, SWIG_FILE_DELIMETER);
|
||||||
|
|
||||||
|
if (syspath && (issimple || !GetFlag(dirname,k_sysdir))) {
|
||||||
Append(llist,filename);
|
Append(llist,filename);
|
||||||
} else {
|
} else {
|
||||||
Append(slist,filename);
|
Append(slist,filename);
|
||||||
|
/* Insert(slist,0,filename); */
|
||||||
}
|
}
|
||||||
Delete(filename);
|
Delete(filename);
|
||||||
}
|
}
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue