diff --git a/.gitattributes b/.gitattributes index 8205c5865410452be569115675e5f6a63f51a612..9ae0755b8060533881ac4ab337674efaf7788888 100644 --- a/.gitattributes +++ b/.gitattributes @@ -5,6 +5,7 @@ *.gz binary *.ppm binary *.rs binary +lib -text -crlf testfont binary # Handling of foreign (ie CVS) identifiers. diff --git a/NT/tools/lib b/NT/tools/lib index 7b908b97821d409e73ecaaff1428409681c7bbdc..3147c1042b2ab103366191dc03770ea6724db9a4 100644 --- a/NT/tools/lib +++ b/NT/tools/lib @@ -1,7 +1,7 @@ CLEANUP=yes -DEBUG=no +NT_DEBUG=no -if [ $DEBUG = yes ]; then +if [ $NT_DEBUG = yes ]; then set -x fi @@ -13,11 +13,16 @@ fixabspath() { echo "$*" | sed -e 's@/@\\@g' } +getntenv() { + rsh $NTHOST set $1 | egrep "^$1=" | sed 's/^.*=// +s/ //g' +} + silent_do_cmd() { BATFILE=TMP$$.bat PWD=`pwd` RPWD=`fixabspath $PWD` - if [ x$DEBUG != xyes ]; then + if [ x$NT_DEBUG != xyes ]; then echo >$BATFILE "@echo off" else echo >$BATFILE @@ -33,5 +38,5 @@ silent_do_cmd() { do_cmd() { echo "DOING $*" - silent_do_cmd "$*" + silent_do_cmd "$@" } diff --git a/NT/tools/rntcc b/NT/tools/rntcc index 9ceb1935c48dac51a80d1f01075c5f20757c5162..744f5b20fc618f750b8e082df629918935850379 100755 --- a/NT/tools/rntcc +++ b/NT/tools/rntcc @@ -113,7 +113,7 @@ IFS="$OLDIFS" IPATH=. IPATHS=":.:" -for a in $* +for a in "$@" do case $IPATHS in *:$a:*) ;; @@ -128,7 +128,7 @@ done ERRORFILE=TMP$$.err rm $ERRORFILE 2>/dev/null 1>/dev/null || : -CFLAGS="$CFLAGS -zq -hw -fr$ERRORFILE" +CFLAGS="$CFLAGS -bm -zq -hw -fr$ERRORFILE" if [ "x$OUTPUT" != x ]; then OFLAGS="$OFLAGS -fo$OUTPUT" diff --git a/bin/mktestsuite b/bin/mktestsuite index 2065fb334b9413f6c62aeb38277ce71f880a9028..c7805e30abd1650aa6c8b8c0a9931ecd19500d8d 100755 --- a/bin/mktestsuite +++ b/bin/mktestsuite @@ -76,7 +76,7 @@ define(test_eval_error,[[DOTEST(EVAL_ERROR,dnl mixed a() { [[$1]]; })]]) define(test_define_program,[[DOTEST(RUN,dnl -void a() { add_constant("[[$1]]",class { +void a() { add_constant("[[$1]]",class c { [[$2]] });})]]) diff --git a/lib/master.pike b/lib/master.pike index 64b57adc4378cd1864797635f7e1064fd34b4c64..a3f7eec0783d2c0b5008d11ca8edbdf448889aa5 100644 --- a/lib/master.pike +++ b/lib/master.pike @@ -1,4 +1,4 @@ -/* $Id: master.pike,v 1.57 1998/01/10 00:12:38 grubba Exp $ +/* $Id: master.pike,v 1.58 1998/01/13 22:27:44 hubbe Exp $ * * Master-file for Pike. */ @@ -17,6 +17,18 @@ string pike_library_path; string *pike_include_path=({}); string *pike_module_path=({}); string *pike_program_path=({}); +int want_warnings; + +program compile_string(string data, void|string name) +{ + return compile(cpp(data,name||"-")); +} + +program compile_file(string file) +{ + return compile(cpp(_static_modules.files()->file(file,"r")->read(),file)); +} + #ifdef GETCWD_CACHE string current_path; @@ -251,7 +263,8 @@ object new(mixed prog, mixed ... args) */ void create() { - /* make ourselves known */ + add_constant("compile_string",compile_string); + add_constant("compile_file",compile_file); add_constant("add_include_path",add_include_path); add_constant("remove_include_path",remove_include_path); add_constant("add_module_path",add_module_path); @@ -441,7 +454,7 @@ void _main(string *argv, string *env) _master_file_name=backtrace()[-1][0]; q=_master_file_name/"/"; - pike_library_path = combine_path(getcwd(), q[0..sizeof(q)-2] * "/"); + pike_library_path = combine_path_with_cwd(q[0..sizeof(q)-2] * "/"); add_include_path(pike_library_path+"/include"); add_module_path(pike_library_path+"/modules"); @@ -471,8 +484,10 @@ void _main(string *argv, string *env) ({"modpath",tmp->HAS_ARG,({"-M","--module-path"})}), ({"ipath",tmp->HAS_ARG,({"-I","--include-path"})}), ({"ppath",tmp->HAS_ARG,({"-P","--program-path"})}), - ({"ignore",tmp->HAS_ARG,"-ms"}), - ({"ignore",tmp->MAY_HAVE_ARG,"-Ddatpl",0,1})}),1); + ({"warnings",tmp->NO_ARG,({"-w","--warnings"})}), + ({"ignore",tmp->HAS_ARG,"-ms"}), + ({"ignore",tmp->MAY_HAVE_ARG,"-Ddatpl",0,1}) + }), 1); /* Parse -M and -I backwards */ for(i=sizeof(q)-1;i>=0;i--) @@ -490,6 +505,10 @@ void _main(string *argv, string *env) case "ppath": add_program_path(q[i][1]); break; + + case "warnings": + want_warnings++; + break; } } @@ -602,6 +621,22 @@ void compile_error(string file,int line,string err) } } +/* + * This function is called whenever a compiling error occurs, + * Nothing strange about it. + * Note that previous_object cannot be trusted in ths function, because + * the compiler calls this function. + */ +void compile_warning(string file,int line,string err) +{ + if(!inhibit_compile_errors) + { + if(want_warnings) + werror(sprintf("%s:%d:%s\n",trim_file_name(file),line,err)); + } +} + + /* This function is called whenever an #include directive is encountered * it receives the argument for #include and should return the file name * of the file to include @@ -653,6 +688,11 @@ string handle_include(string f, return path; } +string read_include(string f) +{ + return _static_modules->files()->file(f,"r")->read(); +} + // FIXME string stupid_describe(mixed m) {