فهرست منبع

--- Merging r43026 into '.':
U utils/instantfpc/instantfpc.pas
--- Recording mergeinfo for merge of r43026 into '.':
U .
--- Merging r43087 into '.':
U packages/hash/src/hmac.pp
--- Recording mergeinfo for merge of r43087 into '.':
G .
--- Merging r43091 into '.':
U packages/winunits-base/src/winhttp.pp
--- Recording mergeinfo for merge of r43091 into '.':
G .
--- Merging r43095 into '.':
G packages/winunits-base/src/winhttp.pp
--- Recording mergeinfo for merge of r43095 into '.':
G .
--- Merging r43097 into '.':
U rtl/unix/dl.pp
--- Recording mergeinfo for merge of r43097 into '.':
G .
--- Merging r43098 into '.':
G packages/winunits-base/src/winhttp.pp
--- Recording mergeinfo for merge of r43098 into '.':
G .
--- Merging r43117 into '.':
U packages/chm/src/chmwriter.pas
--- Recording mergeinfo for merge of r43117 into '.':
G .

# revisions: 43026,43087,43091,43095,43097,43098,43117

git-svn-id: branches/fixes_3_2@43172 -

marco 5 سال پیش
والد
کامیت
5ab703bffd
5فایلهای تغییر یافته به همراه797 افزوده شده و 705 حذف شده
  1. 16 4
      packages/chm/src/chmwriter.pas
  2. 1 1
      packages/hash/src/hmac.pp
  3. 734 698
      packages/winunits-base/src/winhttp.pp
  4. 21 0
      rtl/unix/dl.pp
  5. 25 2
      utils/instantfpc/instantfpc.pas

+ 16 - 4
packages/chm/src/chmwriter.pas

@@ -117,6 +117,8 @@ Type
     procedure Execute;
     procedure AddStreamToArchive(AFileName, APath: String; AStream: TStream; Compress: Boolean = True);
     procedure PostAddStreamToArchive(AFileName, APath: String; AStream: TStream; Compress: Boolean = True);
+    procedure LocaleToLanguageID(Locale: LongWord);
+    function  LocaleFromLanguageID: LongWord;
     property WindowSize: LongWord read FWindowSize write FWindowSize default 2; // in $8000 blocks
     property FrameSize: LongWord read FFrameSize write FFrameSize default 1; // in $8000 blocks
     property FilesToCompress: TStrings read FFileNames;
@@ -127,7 +129,7 @@ Type
     property ReadmeMessage : String read fReadmeMessage write fReadmeMessage;
     property Cores : integer read fcores write fcores;
     { MS Locale ID code }
-    property LocaleID: dword read ITSFHeader.LanguageID write ITSFHeader.LanguageID;
+    property LocaleID: LongWord read LocaleFromLanguageID write LocaleToLanguageID;
   end;
 
   { TChmWriter }
@@ -274,6 +276,16 @@ begin
   end;
 end;
 
+procedure TITSFWriter.LocaleToLanguageID(Locale: LongWord);
+begin
+    ITSFHeader.LanguageID := NToLE(Locale);
+end;
+
+function  TITSFWriter.LocaleFromLanguageID: LongWord;
+begin
+    Result := LEToN(ITSFHeader.LanguageID);
+end;
+
 procedure TITSFWriter.InitHeaderSectionTable;
 begin
   // header section 0
@@ -315,7 +327,7 @@ begin
 
     Unknown2 := NToLE(Longint(-1));
     //DirectoryChunkCount: LongWord;
-    LanguageID := NToLE(DWord($0409));
+    LanguageID := ITSFHeader.LanguageID;
     GUID := ITSPHeaderGUID;
     LengthAgain := NToLE(DWord($54));
     Unknown3 := NToLE(Longint(-1));
@@ -798,6 +810,7 @@ begin
   FPostStream := TMemoryStream.Create;;
   FDestroyStream := FreeStreamOnDestroy;
   FFileNames := TStringList.Create;
+  InitITSFHeader;
 end;
 
 destructor TITSFWriter.Destroy;
@@ -815,7 +828,6 @@ end;
 
 procedure TITSFWriter.Execute;
 begin
-  InitITSFHeader;
   FOutStream.Position := 0;
   FSection1Size := 0;
 
@@ -987,7 +999,7 @@ begin
   FSection0.WriteWord(NToLE(Word(4)));
   FSection0.WriteWord(NToLE(Word(36))); // size
 
-  FSection0.WriteDWord(NToLE(DWord($0409)));
+  FSection0.WriteDWord(ITSFHeader.LanguageID);
   FSection0.WriteDWord(0);
   FSection0.WriteDWord(NToLE(DWord(Ord(FFullTextSearch and FFullTextSearchAvailable))));
 

+ 1 - 1
packages/hash/src/hmac.pp

@@ -181,7 +181,7 @@ end;
 
 function HMACSHA1Match(const ADigest1, ADigest2: THMACSHA1Digest): boolean;
 begin
-  Result := HMACSHA1Match(ADigest1, ADigest2);
+  Result := SHA1Match(ADigest1, ADigest2);
 end;
 
 function HMACSHA1(const AKey, AMessage: string): string;

تفاوت فایلی نمایش داده نمی شود زیرا این فایل بسیار بزرگ است
+ 734 - 698
packages/winunits-base/src/winhttp.pp


+ 21 - 0
rtl/unix/dl.pp

@@ -66,6 +66,8 @@ const
   RTLD_NEXT         = pointer(-1);
   {$ifdef LINUX}
   RTLD_DEFAULT      = nil;
+  RTLD_NOLOAD = $00004; // GLIBC 2.2 and above
+  RTLD_DI_LINKMAP = 2;
   {$endif}
   {$ifdef BSD}
   RTLD_DEFAULT      = pointer(-2);
@@ -90,11 +92,30 @@ function dlvsym(Lib : Pointer; Name : Pchar; Version: Pchar) : Pointer; cdecl; e
 {$endif}
 function dlclose(Lib : Pointer) : Longint; cdecl; external libdl;
 function dlerror() : Pchar; cdecl; external libdl;
+
 { overloaded for compatibility with hmodule }
 function dlsym(Lib : PtrInt; Name : Pchar) : Pointer; cdecl; external Libdl;
 function dlclose(Lib : PtrInt) : Longint; cdecl; external libdl;
 function dladdr(Lib: pointer; info: Pdl_info): Longint; cdecl; {$if not defined(aix) and not defined(android)} external; {$endif}
 
+type
+  plink_map = ^link_map;
+  link_map = record
+    l_addr:pointer;  { Difference between the address in the ELF file and the address in memory }
+    l_name:Pchar;  { Absolute pathname where object was found }
+    l_ld:pointer;    { Dynamic section of the shared object }
+    l_next, l_prev:^link_map; { Chain of loaded objects }
+    {Plus additional fields private to the implementation }
+  end;
+
+{$if defined(BSD) or defined(LINUX)}
+function dlinfo(Lib:pointer;request:longint;info:pointer):longint;cdecl;external Libdl;
+{$else}
+{ Fortunately investigating the sources of open source projects brought the understanding, that
+  `handle` is just a `struct link_map*` that contains full library name.}
+{$endif}
+
+
 implementation
 
 uses

+ 25 - 2
utils/instantfpc/instantfpc.pas

@@ -65,6 +65,8 @@ begin
   writeln;
   writeln('Options:');
   writeln;
+  writeln('  --');
+  Writeln('      Read program from standard input');
   writeln('  --set-cache=<path to cache>');
   writeln('      Set the cache to be used. Otherwise using environment variable');
   writeln('      INSTANTFPCCACHE.');
@@ -95,7 +97,8 @@ var
   CacheDir: String;
   CacheFilename: String;
   OutputFilename: String;
-  E : String;
+  S,E : String;
+  DeleteCache : Boolean = False;
   RunIt: boolean = true;
   
 // Return true if filename found.
@@ -131,6 +134,11 @@ begin
     begin
     Filename:=p;
     Result:=True;
+    end
+  else if (p='--') then
+    begin
+    Filename:='--';
+    Result:=True;
     end;
 end;
   
@@ -173,7 +181,18 @@ begin
   CheckSourceName(Filename);
   Src:=TStringList.Create;
   try
-    Src.LoadFromFile(Filename);
+    if FileName<>'--' then
+      Src.LoadFromFile(Filename)
+    else  
+      begin
+      While not EOF do 
+        begin
+        Readln(S);
+        Src.Add(S);
+        end;
+      FileName:=ChangeFileExt(GetTempFileName,'.pp');  
+      DeleteCache:=true;
+      end;  
     CommentShebang(Src);
     CacheDir:=GetCacheDir;
 
@@ -187,10 +206,14 @@ begin
       // save source in cache to find out next time if something changed
       Src.SaveToFile(CacheFilename);
       Compile(Filename,CacheFilename,OutputFilename);
+      if deleteCache then
+        DeleteFile(CacheFileName);
     end;
     // run
     if RunIt then
       Run(OutputFilename);
+    if DeleteCache then
+      DeleteFile(OutputFileName);  
   finally
     // memory is freed by OS, but for debugging puposes you can do it manually
     {$IFDEF IFFreeMem}

برخی فایل ها در این مقایسه diff نمایش داده نمی شوند زیرا تعداد فایل ها بسیار زیاد است