From 8d49103f7d5c1ebede403ddad4440b4d33537236 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Fredrik=20H=C3=BCbinette=20=28Hubbe=29?= <hubbe@hubbe.net> Date: Wed, 21 Jan 1998 11:36:58 -0800 Subject: [PATCH] varargs removed, Stdio.cp() added Rev: lib/master.pike:1.63 Rev: lib/modules/Array.pmod:1.4 Rev: lib/modules/Process.pmod:1.15 Rev: lib/modules/Simulate.pmod:1.5 Rev: lib/modules/Stdio.pmod:1.9 Rev: lib/modules/Thread.pmod:1.10 --- lib/master.pike | 6 +++--- lib/modules/Array.pmod | 2 +- lib/modules/Process.pmod | 6 +++--- lib/modules/Simulate.pmod | 2 +- lib/modules/Stdio.pmod | 24 ++++++++++++++++++++++++ lib/modules/Thread.pmod | 2 +- 6 files changed, 33 insertions(+), 9 deletions(-) diff --git a/lib/master.pike b/lib/master.pike index dd11329e87..c739cd9d6e 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 f250f10f76..4acd5211d6 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 adbb410779..dfa0417077 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 6bb09681ca..14da44b5d1 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 8e3317accb..8b8d994dbe 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 bd22fb0c60..01bc30f215 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); } -- GitLab