Browse Source

* more resourcestring changes

michael 26 years ago
parent
commit
9f61960ca1
3 changed files with 33 additions and 11 deletions
  1. 9 2
      compiler/cg386ld.pas
  2. 18 7
      compiler/pmodules.pas
  3. 6 2
      compiler/symsym.inc

+ 9 - 2
compiler/cg386ld.pas

@@ -55,7 +55,7 @@ implementation
          s : pasmsymbol;
          popeax : boolean;
          pushed : tpushed;
-         hr : treference;
+         hr,resref : treference;
 
       begin
          simple_loadn:=true;
@@ -81,6 +81,10 @@ implementation
                          pushusedregisters(pushed,$ff);
                          emit_const(A_PUSH,S_L,
                            pconstsym(p^.symtableentry)^.resstrindex);
+                         { Now we must push the address of the 
+                           resourcestringtable of the unit the resourcestring is in,
+                           it has label modulename^+'_RESOURCESTRINGLIST' 
+                           MVC }
                          emitcall('FPC_GETRESOURCESTRING');
 
                          hregister:=getexplicitregister32(R_EAX);
@@ -964,7 +968,10 @@ implementation
 end.
 {
   $Log$
-  Revision 1.76  1999-08-23 11:45:39  michael
+  Revision 1.77  1999-08-24 22:38:51  michael
+  * more resourcestring changes
+
+  Revision 1.76  1999/08/23 11:45:39  michael
   * Hopefully final attempt at resourcestrings
 
   Revision 1.75  1999/08/19 13:08:49  pierre

+ 18 - 7
compiler/pmodules.pas

@@ -122,12 +122,20 @@ unit pmodules;
         count:=0;
         hp:=pused_unit(usedunits.first);
         while assigned(hp) do
-         begin
-           If (hp^.u^.flags and uf_has_resources)=uf_has_resources then
-             ResourceStringTables.concat(new(pai_const_symbol,initname(hp^.u^.modulename^+'_RESOURCESTRINGTABLE')));
-           hp:=Pused_unit(hp^.next);
-           inc(count);
-         end;
+          begin
+          If (hp^.u^.flags and uf_has_resources)=uf_has_resources then
+            begin
+            ResourceStringTables.concat(new(pai_const_symbol,initname(hp^.u^.modulename^+'_RESOURCESTRINGLIST')));
+            inc(count);
+            end;
+          hp:=Pused_unit(hp^.next);
+          end;
+        // Add program resources, if any
+        If ResourceStringList<>Nil then
+          begin
+          ResourceStringTables.concat(new(pai_const_symbol,initname(Current_Module^.modulename^+'_RESOURCESTRINGLIST')));          
+          Inc(Count);
+          end;
         { TableCount }
         With ResourceStringTables do
           begin
@@ -1409,7 +1417,10 @@ unit pmodules;
 end.
 {
   $Log$
-  Revision 1.143  1999-08-24 12:01:34  michael
+  Revision 1.144  1999-08-24 22:38:53  michael
+  * more resourcestring changes
+
+  Revision 1.143  1999/08/24 12:01:34  michael
   + changes for resourcestrings
 
   Revision 1.142  1999/08/16 15:35:27  pierre

+ 6 - 2
compiler/symsym.inc

@@ -1753,7 +1753,8 @@
              begin
                writelong(len);
                current_ppu^.putdata(pchar(value)^,len);
-               writelong(ResStrIndex);
+               if consttype=constresourcestring then
+                 writelong(ResStrIndex);
              end;
            constreal :
              writereal(pbestreal(value)^);
@@ -2154,7 +2155,10 @@
 
 {
   $Log$
-  Revision 1.115  1999-08-23 11:45:42  michael
+  Revision 1.116  1999-08-24 22:38:55  michael
+  * more resourcestring changes
+
+  Revision 1.115  1999/08/23 11:45:42  michael
   * Hopefully final attempt at resourcestrings
 
   Revision 1.114  1999/08/15 21:57:58  michael