瀏覽代碼

+ made fpc work as an MPW tool, by itself calling asm and link.
* bugfix in fp exception flag settings routine

olle 21 年之前
父節點
當前提交
2a4605eabc
共有 1 個文件被更改,包括 25 次插入5 次删除
  1. 25 5
      compiler/globals.pas

+ 25 - 5
compiler/globals.pas

@@ -336,6 +336,9 @@ interface
 implementation
 implementation
 
 
     uses
     uses
+{$ifdef macos}
+      macutils,
+{$endif}
       comphook;
       comphook;
 
 
     procedure abstract;
     procedure abstract;
@@ -476,14 +479,19 @@ implementation
         if (length(s)>0) and (s[1]='/') then
         if (length(s)>0) and (s[1]='/') then
           path_absolute:=true;
           path_absolute:=true;
 {$else unix}
 {$else unix}
-  {$ifdef amiga}
+{$ifdef amiga}
         if ((length(s)>0) and ((s[1]='\') or (s[1]='/'))) or (Pos(':',s) = length(s)) then
         if ((length(s)>0) and ((s[1]='\') or (s[1]='/'))) or (Pos(':',s) = length(s)) then
           path_absolute:=true;
           path_absolute:=true;
-  {$else}
+{$else}
+{$ifdef macos}
+        if IsMacFullPath(s) then
+          path_absolute:=true;
+{$else}
         if ((length(s)>0) and ((s[1]='\') or (s[1]='/'))) or
         if ((length(s)>0) and ((s[1]='\') or (s[1]='/'))) or
            ((length(s)>2) and (s[2]=':') and ((s[3]='\') or (s[3]='/'))) then
            ((length(s)>2) and (s[2]=':') and ((s[3]='\') or (s[3]='/'))) then
           path_absolute:=true;
           path_absolute:=true;
-  {$endif amiga}
+{$endif macos}
+{$endif amiga}
 {$endif unix}
 {$endif unix}
      end;
      end;
 
 
@@ -1169,8 +1177,12 @@ implementation
      begin
      begin
 {$ifdef Unix}
 {$ifdef Unix}
        sepch:=':';
        sepch:=':';
+{$else}
+{$ifdef macos}
+       sepch:=',';
 {$else}
 {$else}
        sepch:=';';
        sepch:=';';
+{$endif macos}
 {$endif Unix}
 {$endif Unix}
        FindFilePchar:=false;
        FindFilePchar:=false;
        pc:=path;
        pc:=path;
@@ -1223,7 +1235,11 @@ implementation
        found:=FindFile(FixFileName(AddExtension(bin,source_info.exeext)),'.;'+exepath,foundfile);
        found:=FindFile(FixFileName(AddExtension(bin,source_info.exeext)),'.;'+exepath,foundfile);
        if not found then
        if not found then
         begin
         begin
+{$ifdef macos}
+          p:=GetEnvPchar('Commands');
+{$else}
           p:=GetEnvPchar('PATH');
           p:=GetEnvPchar('PATH');
+{$endif}
           found:=FindFilePChar(FixFileName(AddExtension(bin,source_info.exeext)),p,foundfile);
           found:=FindFilePChar(FixFileName(AddExtension(bin,source_info.exeext)),p,foundfile);
           FreeEnvPChar(p);
           FreeEnvPChar(p);
         end;
         end;
@@ -1432,7 +1448,7 @@ implementation
             newmask.b := newmask.b or (1 shl (31-26));
             newmask.b := newmask.b or (1 shl (31-26));
 
 
           { Precision (inexact result): bit 28 }
           { Precision (inexact result): bit 28 }
-          if (exUnderflow in mask) then
+          if (exPrecision in mask) then
             newmask.b := newmask.b and not(1 shl (31-28))
             newmask.b := newmask.b and not(1 shl (31-28))
           else
           else
             newmask.b := newmask.b or (1 shl (31-28));
             newmask.b := newmask.b or (1 shl (31-28));
@@ -1920,7 +1936,11 @@ implementation
 end.
 end.
 {
 {
   $Log$
   $Log$
-  Revision 1.134  2004-08-02 07:15:54  michael
+  Revision 1.135  2004-08-20 10:29:31  olle
+    + made fpc work as an MPW tool, by itself calling asm and link.
+    * bugfix in fp exception flag settings routine
+
+  Revision 1.134  2004/08/02 07:15:54  michael
   + Patch from Christian Iversen to implement  LIBPREFIX/SUFFIX/EXTENSION directives
   + Patch from Christian Iversen to implement  LIBPREFIX/SUFFIX/EXTENSION directives
 
 
   Revision 1.133  2004/07/17 15:51:57  jonas
   Revision 1.133  2004/07/17 15:51:57  jonas