gpc/15: Emulation of Borland Pascal 'Assign' procedure does not work in separate unit

Sat, 11 Jan 1997 17:00:01 -0800



>Number:         15
>Category:       gpc
>Synopsis:       Emulation of Borland Pascal 'Assign' procedure does not work in separate unit
>Confidential:   no
>Severity:       serious
>Priority:       medium
>Responsible:    peter (Peter Gerwinski)
>State:          open
>Class:          sw-bug
>Submitter-Id:   www
>Arrival-Date:   Sat Jan 11 17:00:00 1997
>Originator:     Axel Mellinger
>Organization:
UC Berkeley
>Release:        2.0(2.7.2.1)
>Environment:
Linux 2.0.20

>Description:
Emulation of the Borland Pascal 'Assign' procedure (as suggested in
the gpc.info) does not work if the 'Assign' procedure is put into a
separate unit.
Execution of the program 'test.pas' (see below) results in the
error message 

%Gpc: Could't open bound file. Doing `unbind(F)'

and a file named '\264\316\b@\264\316\b@\020' is created instead of 'test.dat'.

>How-To-Repeat:
(* begin 'test.pas' *)
(* compile with 'gpc -o test --automake test.pas' *)

program test;

uses borland;
var f: text;

begin
  assign(f, 'test.dat');
  rewrite(f);
  writeln(f, 'Success.');
  close(f);
end. 
(* end 'test.pas' *)



(* begin 'borland.pas' - this goes into a separate file *)
unit borland;

INTERFACE

procedure Assign(var t: text; protected Name: string);

IMPLEMENTATION

procedure Assign(var t: text; protected Name: string);
var
  b: BindingType;
begin
  unbind(t);
  b := binding(t);
  b.Name := Name;
  bind(t, b);
  b := binding(t);
end;

end.
(* end 'borland.pas' *)

>Fix:
Above example works fine when the 'Assign' procedure is put into the
main program instead of a separate unit.
>Audit-Trail:
>Unformatted:


axel@moore3.cchem.berkeley.edu (axel@moore3.cchem.berkeley.edu)

HTML conversion by Lluís de Yzaguirre i Maura
Institut de Lingüística Aplicada - Universitat "Pompeu Fabra"
e-mail: de_yza@upf.es