From 11c5a36b342b52487be9ec5fda0d5adeec61037f Mon Sep 17 00:00:00 2001 From: "Charles.Forsyth" Date: Mon, 20 Apr 2009 16:43:43 +0000 Subject: 20090420-1743 --- appl/cmd/m4.b | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) (limited to 'appl/cmd') diff --git a/appl/cmd/m4.b b/appl/cmd/m4.b index 9315bf55..f24427b6 100644 --- a/appl/cmd/m4.b +++ b/appl/cmd/m4.b @@ -65,6 +65,7 @@ init(nil: ref Draw->Context, args: list of string) builtin("changecom", dochangecom); builtin("changequote", dochangequote); + builtin("copydef", docopydef); builtin("define", dodefine); builtin("divert", dodivert); builtin("divnum", dodivnum); @@ -457,6 +458,20 @@ doundefine(args: array of string) undefine(args[i]); } +docopydef(args: array of string) +{ + if(len args > 2 && args[1] != args[2]){ + undefine(args[2]); + if((n := lookup(args[1])) != nil){ + if(n.impl == nil) + define(args[2], n.repl); + else + builtin(args[2], n.impl); + }else + define(args[2], ""); + } +} + doeval(args: array of string) { if(len args > 1) @@ -683,6 +698,7 @@ dosyscmd(args: array of string) if(sh == nil) raise sys->sprint("load: can't load %s: %r", Sh->PATH); } + bout.flush(); sh->system(nil, args[1]); }exception e{ "load:*" => -- cgit v1.2.3