Program PrintMargin_v101;

Uses Crt,DOS;

{$I style.inc}

Const
  VNM='1.01';
  VDT='14-Sep-94';

Var
  IFS,OFS:Text;
  INF,OUTF,TXT:String;
  LMARG:Integer;

Procedure ProgramTitle;
Begin
  Style(0,1);
  Style(1,1);
  Style(3,1);
  WriteLn('Print Margin v',VNM,' by Zebedee (',VDT,') ',#$a9,'1995 A Carnage Production');
  Style(0,1);
  WriteLn;
End;

Procedure Usage;
Begin
  WriteLn('Usage: pMargin <infile> <outfile> <margin>');
  Halt(10);
  Write('$VER: pMargin v1.01 (14-Sep-94) ');
End;

Procedure GetParams;
Var
  ERR:Integer;
Begin
  If ParamStr(1)='?' Then
  Begin
    ProgramTitle;
    Usage;
  End;
  If ParamCount<>3 Then Usage;
  INF:=ParamStr(1);
  OUTF:=ParamStr(2);
  Val(Copy(ParamStr(3),1,Length(ParamStr(3))),LMARG,ERR);
  If ERR<>0 Then
  Begin
    WriteLn(ParamStr(0),': Invalid margin setting "',ParamStr(3),'"');
    Halt(20);
  End;
End;

Procedure PrintFile;
Var
  CTR:Integer;
Begin
  Assign(IFS,INF);
  ReSet(IFS);
  If IOResult<>0 Then
  Begin
    WriteLn(ParamStr(0),': Cannot find "',INF,'"');
    Halt(20);
  End;
  Assign(OFS,OUTF);
  ReWrite(OFS);
  While not Eof(IFS) Do
  Begin
    ReadLn(IFS,TXT);
    For CTR:=1 To LMARG Do
      Write(OFS,' ');
    WriteLn(OFS,TXT);
  End;
  Close(OFS);
  Close(IFS);
End;
  
Begin
  GetParams;
  PrintFile;
End.