diff --git a/lib/master.pike b/lib/master.pike index dd11329e87f919df26cd466149af7c3043d4bb14..c739cd9d6ec38e1e7c3749e5b7a4808d804fe8b9 100644 --- a/lib/master.pike +++ b/lib/master.pike @@ -1,4 +1,4 @@ -/* $Id: master.pike,v 1.62 1998/01/17 17:32:55 mirar Exp $ +/* $Id: master.pike,v 1.63 1998/01/21 19:36:19 hubbe Exp $ * * Master-file for Pike. */ @@ -121,7 +121,7 @@ mixed *master_file_stat(string x) mapping (string:string) environment=([]); -varargs mixed getenv(string s) +mixed getenv(string|void s) { if(!s) return environment; return environment[s]; @@ -433,7 +433,7 @@ object findmodule(string fullname) return fc[fullname]=UNDEFINED; } -varargs mixed resolv(string identifier, string current_file) +mixed resolv(string identifier, string|void current_file) { mixed ret; string *tmp,path; diff --git a/lib/modules/Array.pmod b/lib/modules/Array.pmod index f250f10f7640be9d8d456dcacef1a1bd56227692..4acd5211d65d383288034dfa0cd7be3dbe9b3090 100644 --- a/lib/modules/Array.pmod +++ b/lib/modules/Array.pmod @@ -94,7 +94,7 @@ mixed *sum_arrays(function foo, mixed * ... args) return ret; } -varargs mixed *sort_array(array foo,function cmp, mixed ... args) +mixed *sort_array(array foo,function|void cmp, mixed ... args) { array bar,tmp; int len,start; diff --git a/lib/modules/Process.pmod b/lib/modules/Process.pmod index adbb410779d31118b6e860fbdae5ac09414bf00e..dfa0417077655cefac0e6f229a0122d5a2b03ea0 100644 --- a/lib/modules/Process.pmod +++ b/lib/modules/Process.pmod @@ -4,7 +4,7 @@ import Stdio; program create_process = _static_modules.Builtin()->create_process; -varargs int exec(string file,string ... foo) +int exec(string file,string ... foo) { if (sizeof(file)) { string path; @@ -65,8 +65,8 @@ string *split_quoted_string(string s) return ret; } -varargs object spawn(string s,object stdin,object stdout,object stderr, - function|void cleanup, mixed ... args) +object spawn(string s,object|void stdin,object|void stdout,object|void stderr, + function|void cleanup, mixed ... args) { #if 1 mapping data=([]); diff --git a/lib/modules/Simulate.pmod b/lib/modules/Simulate.pmod index 6bb09681caecf8078ba36a322c9f3208ba9d38e7..14da44b5d15c7ae106068aa6ebe93931d14d5d60 100644 --- a/lib/modules/Simulate.pmod +++ b/lib/modules/Simulate.pmod @@ -5,7 +5,7 @@ inherit Process; #define error(X) throw( ({ (X), backtrace()[0..sizeof(backtrace())-2] }) ) -varargs int member_array(mixed needle,mixed *haystack,int start) +int member_array(mixed needle,mixed *haystack,int|void start) { return search(haystack,needle,start); } diff --git a/lib/modules/Stdio.pmod b/lib/modules/Stdio.pmod index 8e3317accb43d2e27f62eea809e3b1b68920d37c..8b8d994dbe846941f41c854e881850b630a73f5c 100644 --- a/lib/modules/Stdio.pmod +++ b/lib/modules/Stdio.pmod @@ -259,3 +259,27 @@ mixed `[](string index) default: return ([])[0]; } } + +#if constant(system.cp) +constant cp=system.cp; +#else +#define BLOCK 65536 +int cp(string from, string to) +{ + string data; + object tmp=File(); + if(tmp->open(from,"r")) return 0; + function r=tmp->read; + tmp=File(); + if(tmp->open(to,"wct")) return 0; + function w=tmp->write; + do + { + data=r(BLOCK); + if(!data) return 0; + if(w(data)!=strlen(data)) return 0; + }while(strlen(data) == BLOCK); + + return 1; +} +#endif diff --git a/lib/modules/Thread.pmod b/lib/modules/Thread.pmod index bd22fb0c600cb4dad917beb85bee33eddc8efd73..01bc30f215c78d589f8680697b45626bf80ba65f 100644 --- a/lib/modules/Thread.pmod +++ b/lib/modules/Thread.pmod @@ -32,7 +32,7 @@ class Fifo { r_cond::signal(); } - varargs void create(int size) + void create(int|void size) { buffer=allocate(size || 128); }