From d856e8b3decca743f8a1082210366bd323ecae28 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Fredrik=20H=C3=BCbinette=20=28Hubbe=29?= <hubbe@hubbe.net> Date: Fri, 28 Jul 2000 13:26:40 -0700 Subject: [PATCH] some fixes Rev: bin/fake_dynamic_load.pike:1.2 --- bin/fake_dynamic_load.pike | 61 ++++++++++++++++++++++++++++++++++++-- 1 file changed, 59 insertions(+), 2 deletions(-) diff --git a/bin/fake_dynamic_load.pike b/bin/fake_dynamic_load.pike index af47c8f8f1..c6f0669065 100755 --- a/bin/fake_dynamic_load.pike +++ b/bin/fake_dynamic_load.pike @@ -7,6 +7,7 @@ import "."; #define PC .C #endif +#if 0 string strip(string s) { array(string) tmp=s/"."; @@ -26,9 +27,64 @@ string strip(string s) s=basename(lower_case(s)); return s; } +#endif + +string fixdir(string d) +{ + return combine_path(getcwd(),d); +} + +string my_dirname(string s) +{ + s=replace(s,"\\\\","/"); + return dirname(lower_case(s)); +} string low_strip_other_files(string data, string s) { +#if 0 + return data; +#endif +#if 1 + /* Filter out data from system include files, this should + * speed up operation significantly + */ + if(!data) + { + werror("File %s missing?\n",s); + return 0; + } + + data-="\r"; + array tmp=data/"\n#"; + string ret=tmp[0]; + string current_dir=getcwd(); + string source_dir=fixdir(getenv("SRCDIR")); + string target_dir=my_dirname(s); + int on=1; + + foreach(tmp[1..], string x) + { + string file; + if(sscanf(x,"line %*d \"%s\"", file) || + sscanf(data," %*d \"%s\"", file)) + + if(file) + { + string dir=my_dirname(file); + on= dir==current_dir || dir==source_dir || dir==target_dir; + } + + if(on) ret+="#"+x; + } + return ret; +#endif +#if 0 + array x=data/"PMOD_EXPORT"; + x[0]=""; + return x*"PMOD_EXPORT"; +#endif +#if 0 if(!data) { werror("File %s missing?\n",s); @@ -53,6 +109,7 @@ string low_strip_other_files(string data, string s) if(cf == s) ret+="#"+x; } return ret; +#endif } string my_read_file(string s) @@ -275,11 +332,11 @@ void low_process_file(mixed data, string file) data=low_strip_other_files(data,file); if(!data || !sizeof(data)) return; data=PC.split(data); - data=PC.tokenize(data); + data=PC.tokenize(data,file); if(!data || !sizeof(data)) return; data=PC.hide_whitespaces(data); data=PC.strip_line_statements(data); - array data=PC.group(data); + data=PC.group(data); if(sizeof(data) && strlen( (string) (data[0]) )) { switch(((string)data[0])[0] ) -- GitLab