<pre style='margin:0'>
Ken (kencu) pushed a commit to branch master
in repository macports-ports.

</pre>
<p><a href="https://github.com/macports/macports-ports/commit/d9fc3c67b104e98c18fdc8cd75640c0a1f3d2594">https://github.com/macports/macports-ports/commit/d9fc3c67b104e98c18fdc8cd75640c0a1f3d2594</a></p>
<pre style="white-space: pre; background: #F8F8F8">The following commit(s) were added to refs/heads/master by this push:
<span style='display:block; white-space:pre;color:#404040;'>     new d9fc3c67b10 fpc: bump to 3.2.0
</span>d9fc3c67b10 is described below

<span style='display:block; white-space:pre;color:#808000;'>commit d9fc3c67b104e98c18fdc8cd75640c0a1f3d2594
</span>Author: Ken Cunningham <ken.cunningham.webuse@gmail.com>
AuthorDate: Tue Aug 11 09:04:54 2020 -0700

<span style='display:block; white-space:pre;color:#404040;'>    fpc: bump to 3.2.0
</span><span style='display:block; white-space:pre;color:#404040;'>    
</span><span style='display:block; white-space:pre;color:#404040;'>    old patchfiles not needed
</span><span style='display:block; white-space:pre;color:#404040;'>    new bootstrap compiler in new location
</span>---
 lang/fpc/Portfile                              |  35 +--
 lang/fpc/files/fpc.cfg.patch                   |   9 -
 lang/fpc/files/patch-iso-tmp.diff              | 346 -------------------------
 lang/fpc/files/patch-transparent-filename.diff |  93 -------
 4 files changed, 18 insertions(+), 465 deletions(-)

<span style='display:block; white-space:pre;color:#808080;'>diff --git a/lang/fpc/Portfile b/lang/fpc/Portfile
</span><span style='display:block; white-space:pre;color:#808080;'>index 7930a576487..6cce6158038 100644
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>--- a/lang/fpc/Portfile
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>+++ b/lang/fpc/Portfile
</span><span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -3,7 +3,7 @@
</span> PortSystem          1.0
 
 name                fpc
<span style='display:block; white-space:pre;background:#ffe0e0;'>-version             3.0.4
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+version             3.2.0
</span> categories          lang
 platforms           darwin
 license             GPL-2 LGPL-2
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -15,25 +15,29 @@ long_description    Free Pascal is a 32, 64 and 16 bit professional Pascal compi
</span>                     Supported operating systems include Linux, FreeBSD, Mac OS X/iOS/iPhoneSimulator/Darwin, \
                     Win32, Win64, WinCE and Android.
 homepage            http://www.freepascal.org
<span style='display:block; white-space:pre;background:#ffe0e0;'>-master_sites        sourceforge:freepascal
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+master_sites        sourceforge:freepascal:main \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                    ftp://ftp.freepascal.org/pub/fpc/dist/3.0.4/bootstrap/:bootstrap
</span> 
 set src             ${name}build-${version}.tar.gz
<span style='display:block; white-space:pre;background:#ffe0e0;'>-# the 3.0.0 bootstrap compiler
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-set pp              x86_64-macosx-10.7-ppcx64.tar.bz2
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-distfiles           ${src} ${pp}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+# the 3.0.4 bootstrap compiler
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+set pp              x86_64-macosx-10.9-ppcx64.tar.bz2
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+distfiles           ${src}:main ${pp}:bootstrap
</span> checksums           ${src} \
<span style='display:block; white-space:pre;background:#ffe0e0;'>-                    rmd160  f9414fe72342cff4317029f3a83a90e8dc710389 \
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-                    sha256  f66514e6f2c2e4e1bccccb4d554c24b77682ed61c87811ae5dd210f421855e76 \
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-                    size    68908523 \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                    rmd160  c8d56acb409a6d5c186b0aaed38dc02dfa3bcb69 \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                    sha256  f9b914eace989a023fb953da203dc0d973b44487568b4138c7d5b9613d7d6838 \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                    size    80698915 \
</span>                     ${pp} \
<span style='display:block; white-space:pre;background:#ffe0e0;'>-                    rmd160  25fb3c2eb9fa364ee56a5f3c2667151143f39777 \
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-                    sha256  a67ef5def356d122a4692e21b209c328f6d46deef4539f4d4506c3dc1eecb4b0 \
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-                    size    1095556
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                    rmd160  7c5327aa6f4fd8616d78bc4f708463b9fb3e8844 \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                    sha256  0515ad4251c51fa7e5c0ff9b1d90ea50f41530b56276cc72b73798fae437b3b4 \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                    size    1556308
</span> supported_archs     x86_64
 
 # doesn't install shared libraries
 installs_libs       no
 
<span style='display:block; white-space:pre;background:#e0ffe0;'>+# parallel building is unreliable
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+use_parallel_build  no
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span> extract.only        ${src}
 
 use_configure       no
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -42,7 +46,7 @@ universal_variant   no
</span> set fpcbasepath     ${prefix}/libexec/${name}
 
 subport "chmcmd-${name}" {
<span style='display:block; white-space:pre;background:#ffe0e0;'>-    revision        1
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    revision        0
</span> 
     description     The FPC Pascal htmlhelp (CHM) compiler
     long_description \
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -79,7 +83,7 @@ subport "chmcmd-${name}" {
</span> }
 
 subport "${name}-cross" {
<span style='display:block; white-space:pre;background:#ffe0e0;'>-    revision        1
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    revision        0
</span> 
     description     FreePascal common cross-compiler binaries
     long_description \
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -112,7 +116,7 @@ subport "${name}-cross" {
</span> }
 
 if {${subport} eq "${name}"} {
<span style='display:block; white-space:pre;background:#ffe0e0;'>-    revision            2
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    revision            0
</span> 
     installs_libs       yes
 
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -121,9 +125,6 @@ if {${subport} eq "${name}"} {
</span>     }
 
 
<span style='display:block; white-space:pre;background:#ffe0e0;'>-# Fix filename issues in iso mode. Should be resolved in version 3.2
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-    patchfiles          patch-transparent-filename.diff patch-iso-tmp.diff
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span>     post-patch {
         # adjust the path "codfilepath" for plex from /usr/local to MacPort's prefix.
         reinplace "s|/usr/local|${prefix}|g" \
<span style='display:block; white-space:pre;color:#808080;'>diff --git a/lang/fpc/files/fpc.cfg.patch b/lang/fpc/files/fpc.cfg.patch
</span><span style='display:block; white-space:pre;color:#808080;'>index b9da5f9aaa5..8b8f779af52 100644
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>--- a/lang/fpc/files/fpc.cfg.patch
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>+++ b/lang/fpc/files/fpc.cfg.patch
</span><span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -1,14 +1,5 @@
</span> --- etc/fpc.cfg   2019-06-14 15:54:16.000000000 +0200
 +++ fpc.cfg-new        2019-08-17 10:54:57.000000000 +0200
<span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -247,7 +247,7 @@
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- #-k-s
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- 
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- # Always strip debuginfo from the executable
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>---Xs
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+#-Xs
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- 
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- # Always use smartlinking on i8086, because the system unit exceeds the 64kb
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- # code limit
</span> @@ -256,6 +256,12 @@
  -XX
  #endif
<span style='display:block; white-space:pre;color:#808080;'>diff --git a/lang/fpc/files/patch-iso-tmp.diff b/lang/fpc/files/patch-iso-tmp.diff
</span>deleted file mode 100644
<span style='display:block; white-space:pre;color:#808080;'>index 918300c0614..00000000000
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>--- a/lang/fpc/files/patch-iso-tmp.diff
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>+++ /dev/null
</span><span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -1,346 +0,0 @@
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-diff -Naur rtl/inc/iso7185.pp rtl-new/inc/iso7185.pp
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>---- rtl/inc/iso7185.pp     2017-02-17 19:04:47.000000000 +0100
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+++ rtl-new/inc/iso7185.pp 2017-02-18 10:38:58.000000000 +0100
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -47,13 +47,160 @@
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- 
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-   implementation
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- 
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+{$IF defined(WINDOWS)}
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+    type
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+      isoLPWStr = PWideChar;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+      isoWinBool = LongBool;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+      TSysCharSet = set of AnsiChar;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+    function GetEnvironmentStringsW: isoLPWStr; stdcall; external 'kernel32' name 'GetEnvironmentStringsW';
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+    function FreeEnvironmentStringsW(_para1 : isoLPWStr): isoWinBool; stdcall; external 'kernel32' name 'FreeEnvironmentStringsW';
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+    function StrLen(p : PWideChar): sizeint; external name 'FPC_PWIDECHAR_LENGTH'; overload;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+    {$push}
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+    {$checkpointer off}
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+    function CharInSet(Ch : WideChar; const CSet : TSysCharSet): Boolean;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+    begin
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+      CharInSet := (Ch <= #$FF) and (AnsiChar(byte(Ch)) in CSet);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+    end;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+    function InternalChangeCase(const S : UnicodeString; const Chars: TSysCharSet; const Adjustment: Longint): UnicodeString;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+      var
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+        i : Integer;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+        p : PWideChar;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+        unique : Boolean;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+      begin
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+        InternalChangeCase := S;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+        if InternalChangeCase = '' then
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+          exit;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+        unique := false;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+        p := PWideChar(InternalChangeCase);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+        for i := 1 to Length(InternalChangeCase) do
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+        begin
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+          if CharInSet(p^, Chars) then
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+          begin
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+            if not unique then
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+            begin
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+              UniqueString(InternalChangeCase);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+              p := @InternalChangeCase[i];
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+              unique := true;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+            end;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+            p^ := WideChar(Ord(p^) + Adjustment);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+          end;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+          inc(p);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+        end;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+      end;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+    function UpperCase(const s : UnicodeString) : UnicodeString;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+      begin
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+        UpperCase := InternalChangeCase(s, ['a'..'z'], -32);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+      end;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+    function GetEnvironmentVariable(const EnvVar : UnicodeString) : UnicodeString;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+    var
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+      s, upperenv : UnicodeString;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+      i : Longint;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+      hp, p : PWideChar;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+    begin
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+      GetEnvironmentVariable := '';
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+      p := GetEnvironmentStringsW;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+      hp := p;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+      upperenv := uppercase(envvar);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+      while hp^ <> #0 do
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+      begin
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+        s := hp;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+        i := pos('=', s);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+        if uppercase(copy(s,1,i-1)) = upperenv then
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+        begin
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+          GetEnvironmentVariable := copy(s, i+1, length(s)-i);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+          break;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+        end;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+        { next string entry }
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+        hp := hp + strlen(hp) + 1;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+      end;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+      FreeEnvironmentStringsW(p);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+    end;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+    function getTempDir: String;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+    var
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+      astringLength : Integer;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+    begin
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+      getTempDir := GetEnvironmentVariable('TMP');
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+      if getTempDir = '' then
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+        getTempDir := GetEnvironmentVariable('TEMP');
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+      astringlength := Length(getTempDir);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+      if (astringlength > 0) and (getTempDir[astringlength] <> DirectorySeparator) then
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+        getTempDir := getTempDir + DirectorySeparator;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+    end;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+    {$pop}
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+{$ELSEIF defined(UNIX)}
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+  function getTempDir: string;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+    var
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+      key: string;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+      value: string;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+      i_env, i_key, i_value: integer;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+    begin
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+      value := '/tmp/';  (** default for UNIX **)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+      while (envp <> NIL) and assigned(envp^) do
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+      begin
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+        i_env := 0;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+        i_key := 1;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+        while not (envp^[i_env] in ['=', #0]) do
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+        begin
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+          key[i_key] := envp^[i_env];
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+          inc(i_env);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+          inc(i_key);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+        end;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+        setlength(key, i_key - 1);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+        if (key = 'TEMP') or (key = 'TMP') or (key = 'TMPDIR') then
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+        begin
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+          inc(i_env);    (** skip '=' **)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+          i_value := 1;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+          while (envp^[i_env] <> #0) do
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+          begin
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+            value[i_value] := envp^[i_env];
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+            inc(i_env);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+            inc(i_value);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+          end;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+          setlength(value, i_value - 1);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+        end;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+        inc(envp);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+      end;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+      i_value:=length(value);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+      if (i_value > 0) and (value[i_value] <> DirectorySeparator) then
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+        value := value + DirectorySeparator;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+      getTempDir := value;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+    end;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+{$ELSE}  // neither unix nor windows
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+  function getTempDir: string;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+  begin
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+    getTempDir:='';
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+  end;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+{$ENDIF}
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- {$i-}
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-     procedure DoAssign(var t : Text);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+{$ifndef FPC_HAS_FEATURE_RANDOM}
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+      const
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+        NextIndex : Word = 1;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+{$endif FPC_HAS_FEATURE_RANDOM}
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-       begin
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--        Assign(t,'fpc_'+HexStr(random(1000000000),8)+'.tmp');
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+{$ifdef FPC_HAS_FEATURE_RANDOM}
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+        Assign(t,getTempDir+'fpc_'+HexStr(random(1000000000),8)+'.tmp');
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+{$else FPC_HAS_FEATURE_RANDOM}
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+        Assign(t,getTempDir+'fpc_'+HexStr(NextIndex,4)+'.tmp');
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+        Inc(NextIndex);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+{$endif FPC_HAS_FEATURE_RANDOM}
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-       end;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- 
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-     Procedure Rewrite(var t : Text);[IOCheck];
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-       Begin
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-         { create file name? }
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -172,7 +319,9 @@
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- begin
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-   { we shouldn't do this because it might confuse user programs, but for now it
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-     is good enough to get pretty unique tmp file names }
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+{$ifdef FPC_HAS_FEATURE_RANDOM}
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-   Randomize;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+{$endif FPC_HAS_FEATURE_RANDOM}
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-   { reset opens with read-only }
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-   Filemode:=0;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- end.
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-diff -Naur rtl/inc/typefile.inc rtl-new/inc/typefile.inc
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>---- rtl/inc/typefile.inc   2017-02-18 10:41:19.000000000 +0100
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+++ rtl-new/inc/typefile.inc       2017-02-18 10:48:32.000000000 +0100
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -68,12 +68,151 @@
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-   Rewrite(UnTypedFile(f),Size);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- End;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- 
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+{ this code is duplicated in the iso7185 unit }
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+{$IF defined(WINDOWS)}
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+    type
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+      isoLPWStr = PWideChar;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+      isoWinBool = LongBool;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+      TSysCharSet = set of AnsiChar;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+    function GetEnvironmentStringsW: isoLPWStr; stdcall; external 'kernel32' name 'GetEnvironmentStringsW';
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+    function FreeEnvironmentStringsW(_para1 : isoLPWStr): isoWinBool; stdcall; external 'kernel32' name 'FreeEnvironmentStringsW';
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+    function StrLen(p : PWideChar): sizeint; external name 'FPC_PWIDECHAR_LENGTH'; overload;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+    {$push}
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+    {$checkpointer off}
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+    function CharInSet(Ch : WideChar; const CSet : TSysCharSet): Boolean;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+    begin
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+      CharInSet := (Ch <= #$FF) and (AnsiChar(byte(Ch)) in CSet);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+    end;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+    function InternalChangeCase(const S : UnicodeString; const Chars: TSysCharSet; const Adjustment: Longint): UnicodeString;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+      var
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+        i : Integer;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+        p : PWideChar;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+        unique : Boolean;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+      begin
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+        InternalChangeCase := S;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+        if InternalChangeCase = '' then
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+          exit;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+        unique := false;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+        p := PWideChar(InternalChangeCase);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+        for i := 1 to Length(InternalChangeCase) do
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+        begin
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+          if CharInSet(p^, Chars) then
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+          begin
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+            if not unique then
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+            begin
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+              UniqueString(InternalChangeCase);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+              p := @InternalChangeCase[i];
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+              unique := true;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+            end;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+            p^ := WideChar(Ord(p^) + Adjustment);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+          end;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+          inc(p);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+        end;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+      end;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+    function UpperCase(const s : UnicodeString) : UnicodeString;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+      begin
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+        UpperCase := InternalChangeCase(s, ['a'..'z'], -32);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+      end;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+    function GetEnvironmentVariable(const EnvVar : UnicodeString) : UnicodeString;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+    var
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+      s, upperenv : UnicodeString;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+      i : Longint;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+      hp, p : PWideChar;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+    begin
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+      GetEnvironmentVariable := '';
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+      p := GetEnvironmentStringsW;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+      hp := p;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+      upperenv := uppercase(envvar);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+      while hp^ <> #0 do
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+      begin
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+        s := hp;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+        i := pos('=', s);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+        if uppercase(copy(s,1,i-1)) = upperenv then
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+        begin
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+          GetEnvironmentVariable := copy(s, i+1, length(s)-i);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+          break;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+        end;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+        { next string entry }
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+        hp := hp + strlen(hp) + 1;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+      end;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+      FreeEnvironmentStringsW(p);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+    end;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+    function getTempDir: String;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+    var
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+      astringLength : Integer;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+    begin
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+      getTempDir := GetEnvironmentVariable('TMP');
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+      if getTempDir = '' then
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+        getTempDir := GetEnvironmentVariable('TEMP');
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+      astringlength := Length(getTempDir);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+      if (astringlength > 0) and (getTempDir[astringlength] <> DirectorySeparator) then
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+        getTempDir := getTempDir + DirectorySeparator;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+    end;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+    {$pop}
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+{$ELSEIF defined(UNIX)}
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+  function getTempDir: string;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+    var
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+      key: string;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+      value: string;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+      i_env, i_key, i_value: integer;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+    begin
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+      value := '/tmp/';  (** default for UNIX **)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+      while (envp <> NIL) and assigned(envp^) do
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+      begin
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+        i_env := 0;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+        i_key := 1;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+        while not (envp^[i_env] in ['=', #0]) do
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+        begin
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+          key[i_key] := envp^[i_env];
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+          inc(i_env);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+          inc(i_key);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+        end;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+        setlength(key, i_key - 1);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+        if (key = 'TEMP') or (key = 'TMP') or (key = 'TMPDIR') then
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+        begin
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+          inc(i_env);    (** skip '=' **)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+          i_value := 1;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+          while (envp^[i_env] <> #0) do
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+          begin
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+            value[i_value] := envp^[i_env];
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+            inc(i_env);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+            inc(i_value);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+          end;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+          setlength(value, i_value - 1);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+        end;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+        inc(envp);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+      end;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+      i_value:=length(value);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+      if (i_value > 0) and (value[i_value] <> DirectorySeparator) then
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+        value := value + DirectorySeparator;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+      getTempDir := value;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+    end;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+{$ELSE}  // neither unix nor windows
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+  function getTempDir: string;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+  begin
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+    getTempDir:='';
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+  end;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+{$ENDIF}
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- 
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- {$ifdef FPC_HAS_FEATURE_RANDOM}
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- { this code is duplicated in the iso7185 unit }
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- Procedure DoAssign(var t : TypedFile);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- Begin
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--  Assign(t,'fpc_'+HexStr(random(1000000000),8)+'.tmp');
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+  Assign(t,getTempDir+'fpc_'+HexStr(random(1000000000),8)+'.tmp');
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- End;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- {$else FPC_HAS_FEATURE_RANDOM}
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- { this code is duplicated in the iso7185 unit }
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -81,8 +220,12 @@
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- const
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-   start : dword = 0;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- Begin
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--  Assign(t,'fpc_'+HexStr(start,8)+'.tmp');
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ {$ifdef EXCLUDE_COMPLEX_PROCS}
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+   runerror(219);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ {$else EXCLUDE_COMPLEX_PROCS}
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+  Assign(t,getTempDir+'fpc_'+HexStr(start,8)+'.tmp');
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-   inc(start);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ {$endif EXCLUDE_COMPLEX_PROCS}
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- End;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- {$endif FPC_HAS_FEATURE_RANDOM}
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- 
</span><span style='display:block; white-space:pre;color:#808080;'>diff --git a/lang/fpc/files/patch-transparent-filename.diff b/lang/fpc/files/patch-transparent-filename.diff
</span>deleted file mode 100644
<span style='display:block; white-space:pre;color:#808080;'>index 39019b86392..00000000000
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>--- a/lang/fpc/files/patch-transparent-filename.diff
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>+++ /dev/null
</span><span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -1,93 +0,0 @@
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-diff -Naur compiler/globtype.pas compiler/globtype.pas
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>---- compiler/globtype.pas  2017-02-18 11:41:40.000000000 +0100
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+++ compiler/globtype.pas  2017-02-18 11:49:27.000000000 +0100
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -179,6 +179,7 @@
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-          { parameter switches }
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-          cs_check_unit_name,cs_constructor_name,cs_support_exceptions,
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-          cs_support_c_objectivepas,
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+         cs_transparent_file_names,
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-          { units }
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-          cs_load_objpas_unit,
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-          cs_load_gpc_unit,
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-diff -Naur compiler/ngenutil.pas compiler/ngenutil.pas
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>---- compiler/ngenutil.pas  2017-02-18 11:41:57.000000000 +0100
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+++ compiler/ngenutil.pas  2017-02-18 11:48:51.000000000 +0100
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -274,12 +274,22 @@
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-        (tfiledef(tstaticvarsym(p).vardef).filetyp=ft_text) and
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-        (tstaticvarsym(p).isoindex<>0) then
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-        begin
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--         addstatement(stat^,ccallnode.createintern('fpc_textinit_iso',
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--           ccallparanode.create(
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--             cordconstnode.create(tstaticvarsym(p).isoindex,uinttype,false),
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--           ccallparanode.create(
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--             cloadnode.create(tstaticvarsym(p),tstaticvarsym(p).Owner),
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--           nil))));
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+         if cs_transparent_file_names in current_settings.globalswitches then
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+           addstatement(stat^,ccallnode.createintern('fpc_textinit_filename_iso',
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+             ccallparanode.create(
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+               cstringconstnode.createstr(tstaticvarsym(p).Name),
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+             ccallparanode.create(
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+               cordconstnode.create(tstaticvarsym(p).isoindex,uinttype,false),
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+             ccallparanode.create(
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+               cloadnode.create(tstaticvarsym(p),tstaticvarsym(p).Owner),
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+             nil)))))
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+         else
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+           addstatement(stat^,ccallnode.createintern('fpc_textinit_iso',
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+             ccallparanode.create(
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+               cordconstnode.create(tstaticvarsym(p).isoindex,uinttype,false),
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+             ccallparanode.create(
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+               cloadnode.create(tstaticvarsym(p),tstaticvarsym(p).Owner),
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+             nil))));
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-        end;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-     end;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- 
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-diff -Naur compiler/options.pas compiler/options.pas
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>---- compiler/options.pas   2017-02-18 11:42:12.000000000 +0100
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+++ compiler/options.pas   2017-02-18 11:47:51.000000000 +0100
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -1933,6 +1933,11 @@
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-                            include(init_settings.moduleswitches,cs_support_macro);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-                        'o' : //an alternative to -Mtp
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-                          SetCompileMode('TP',true);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+                       'r' :
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+                         If UnsetBool(More, j, opt, false) then
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+                           exclude(init_settings.globalswitches,cs_transparent_file_names)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+                         else
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+                           include(init_settings.globalswitches,cs_transparent_file_names);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- {$ifdef gpc_mode}
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-                        'p' : //an alternative to -Mgpc
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-                          SetCompileMode('GPC',true);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-diff -Naur rtl/inc/compproc.inc rtl/inc/compproc.inc
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>---- rtl/inc/compproc.inc   2017-02-18 11:44:14.000000000 +0100
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+++ rtl/inc/compproc.inc   2017-02-18 11:47:10.000000000 +0100
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -411,6 +411,7 @@
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- Function fpc_get_input:PText;compilerproc;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- Function fpc_get_output:PText;compilerproc;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- Procedure fpc_textinit_iso(var t : Text;nr : DWord);compilerproc;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+Procedure fpc_textinit_filename_iso(var t : Text;nr : DWord;const filename : string);compilerproc;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- Procedure fpc_textclose_iso(var t : Text);compilerproc;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- Procedure fpc_Write_End(var f:Text); compilerproc;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- Procedure fpc_Writeln_End(var f:Text); compilerproc;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-diff -Naur rtl/inc/text.inc rtl/inc/text.inc
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>---- rtl/inc/text.inc       2017-02-18 11:44:36.000000000 +0100
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+++ rtl/inc/text.inc       2017-02-18 11:46:23.000000000 +0100
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -652,6 +652,20 @@
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- {$endif FPC_HAS_FEATURE_COMMANDARGS}
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- end;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- 
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+Procedure fpc_textinit_filename_iso(var t : Text;nr : DWord;const filename : string);compilerproc;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+begin
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+{$ifdef FPC_HAS_FEATURE_COMMANDARGS}
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+  if paramstr(nr)='' then
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+    assign(t,filename+'.txt')
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+  else
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+    assign(t,paramstr(nr));
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+{$else FPC_HAS_FEATURE_COMMANDARGS}
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+  { primitive workaround for targets supporting no command line arguments,
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+    invent some file name, try to avoid complex procedures like concating strings which might
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+    pull-in bigger parts of the rtl }
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+  assign(t,chr((nr mod 16)+65));
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+{$endif FPC_HAS_FEATURE_COMMANDARGS}
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+end;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- 
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- Procedure fpc_textclose_iso(var t : Text);compilerproc;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- begin
</span></pre><pre style='margin:0'>

</pre>