0f50bf5ffc
adapted for FreeBSD/NetBSD by me. Ezm3 is a smaller, more portable distribution of the Modula-3 compiler and runtime system for people whose only need for Modula-3 is to build CVSup. It supports all features of CVSup, but has smaller distfiles and installs more quickly than other versions of Modula-3. Ezm3 provides full X11 GUI support even when compiled on systems which do not have X11 installed. It links programs statically with the Modula-3 libraries but dynamically with the system libraries, so that programs built with Ezm3 can run on systems which do not have Modula-3 installed on them.
40 lines
1.4 KiB
Text
40 lines
1.4 KiB
Text
$NetBSD: patch-aa,v 1.1.1.1 2004/01/05 23:54:27 xtraeme Exp $
|
|
|
|
--- language/modula3/m3compiler/m3ship/src/Main.m3.orig Mon Jun 7 10:11:49 1999
|
|
+++ language/modula3/m3compiler/m3ship/src/Main.m3 Sat Sep 8 14:46:14 2001
|
|
@@ -303,9 +303,10 @@
|
|
m3_template := Env.Get("M3_TEMPLATE_DIR");
|
|
path : TEXT;
|
|
subpath : TEXT;
|
|
- nextsep : INTEGER := 0;
|
|
- prevsep : INTEGER := 0;
|
|
+ nextsep : INTEGER;
|
|
+ prevsep : INTEGER := -1;
|
|
sep : CHAR;
|
|
+ filename : TEXT;
|
|
BEGIN
|
|
IF m3_template # NIL THEN
|
|
template_dir := m3_template;
|
|
@@ -322,13 +323,17 @@
|
|
REPEAT
|
|
nextsep := Text.FindChar(path, sep, prevsep + 1);
|
|
IF nextsep # -1 THEN
|
|
- subpath := Text.Sub(path, prevsep, nextsep - prevsep - 1);
|
|
+ subpath := Text.Sub(path, prevsep + 1, nextsep - prevsep - 1);
|
|
ELSE
|
|
- subpath := Text.Sub(path, prevsep);
|
|
+ subpath := Text.Sub(path, prevsep + 1);
|
|
END;
|
|
- IF M3File.IsReadable(subpath & template) THEN
|
|
- template_dir := subpath;
|
|
- RETURN;
|
|
+ IF Text.Length(subpath) > 0 THEN
|
|
+ filename := subpath & SL & template;
|
|
+ IF M3File.IsReadable(filename) AND
|
|
+ NOT M3File.IsDirectory(filename) THEN
|
|
+ template_dir := subpath;
|
|
+ RETURN;
|
|
+ END;
|
|
END;
|
|
prevsep := nextsep;
|
|
UNTIL prevsep = -1;
|