home *** CD-ROM | disk | FTP | other *** search
/ Solo Programadores 22 / SOLO_22.iso / packages / win32ada / data.z / win32-tchar.adb < prev    next >
Encoding:
Text File  |  1995-12-01  |  4.6 KB  |  148 lines

  1. -- $Source: /home/harp/1/proto/monoBANK/winnt/win32-tchar.adb,v $ 
  2. -- $Revision: 1.3 $ $Date: 95/02/08 11:25:00 $ $Author: scoleman $ 
  3. -------------------------------------------------------------------------------
  4. --
  5. -- THIS FILE AND ANY ASSOCIATED DOCUMENTATION IS FURNISHED "AS IS" WITHOUT 
  6. -- WARRANTY OF ANY KIND, EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED 
  7. -- TO THE IMPLIED WARRANTIES OF MERCHANTABILITY AND/OR FITNESS FOR A PARTICULAR 
  8. -- PURPOSE.  The user assumes the entire risk as to the accuracy and the 
  9. -- use of this file.
  10. --
  11. -- Copyright (c) Intermetrics, Inc. 1995
  12. -- Royalty-free, unlimited, worldwide, non-exclusive use, modification, 
  13. -- reproduction and further distribution of this file is permitted.
  14. --
  15. -------------------------------------------------------------------------------
  16.  
  17.  
  18. with Ada.Unchecked_Conversion;
  19. with Win32.Utils;
  20.  
  21. package body Win32.Tchar is
  22.  
  23.     use type Interfaces.C.Unsigned_Char;
  24.     use type Interfaces.C.Size_T;
  25.     use type Interfaces.C.Char_Array;
  26.  
  27.     function To_Int is new Ada.Unchecked_Conversion(Win32.PCCH, integer);
  28.     function To_PCHAR is new Ada.Unchecked_Conversion(integer, Win32.PCHAR);
  29.     function To_UINT is new Ada.Unchecked_Conversion(Win32.PCHAR, Win32.UINT);
  30.  
  31.     function tclen(cpc: Win32.PCCH) 
  32.                 return Win32.Strings.size_t is              -- tchar.h:481
  33.     begin
  34.         return 1;
  35.     end tclen;
  36.     pragma inline(tclen);
  37.  
  38.     procedure tccpy(pc1 : in out Win32.PCHAR;
  39.                     cpc2: Win32.PCCH) is                   -- tchar.h:482
  40.     begin
  41.         pc1.all := cpc2.all;
  42.     end tccpy;
  43.     pragma inline(tccpy);
  44.  
  45.     function tccmp(cpc1: Win32.PCCH;
  46.                    cpc2: Win32.PCCH) 
  47.                    return Win32.Int is                      -- tchar.h:483
  48.         --function To_UCHAR is new Ada.Unchecked_Conversion(Win32.CHAR,
  49.         --function To_UCHAR is new Ada.Unchecked_Conversion(Win32.PCCH,
  50.         --        Win32.UCHAR);
  51.     begin
  52.         return Win32.Int(To_Int(cpc1) - To_Int(cpc2));
  53.         --return Win32.Int(
  54.         --        Win32.Utils.MAKEWORD(
  55.         --                Win32.BYTE(To_UCHAR(cpc1.all)) - 
  56.         --                Win32.BYTE(To_UCHAR(cpc2.all)), 0));
  57.     end tccmp;
  58.  
  59.  
  60.     function strdec(cpc: Win32.PCCH;
  61.                     pc : Win32.PCCH) 
  62.                     return Win32.PCHAR is                   -- tchar.h: 529
  63.     begin
  64.         return To_PCHAR(To_Int(pc)-1); 
  65.     end strdec;
  66.     pragma inline(strdec);
  67.  
  68.  
  69.     function strinc(pc : Win32.PCCH) 
  70.                     return Win32.PCHAR is                   -- tchar.h: 530
  71.     begin
  72.         return To_PCHAR(To_Int(pc)+1); 
  73.     end strinc;
  74.     pragma inline (strinc);
  75.  
  76.     function strnextc(cpc : Win32.PCCH) 
  77.                     return Win32.UINT is                    -- tchar.h: 531
  78.         function To_BYTE is new Ada.Unchecked_Conversion(Win32.CHAR,
  79.                 Win32.BYTE);
  80.     begin
  81.         return Win32.UINT(Win32.Utils.MAKEWORD(To_BYTE(cpc.all), 0));
  82.     end strnextc;
  83.     pragma inline (strnextc);
  84.  
  85.     function strninc(pc: Win32.PCCH;
  86.                      sz: Win32.Strings.size_t) 
  87.                      return Win32.PCHAR is                  -- tchar.h: 532
  88.     begin
  89.         return To_PCHAR(To_int(pc) + integer(sz));
  90.     end strninc;
  91.     pragma inline (strninc);
  92.  
  93.     function strncnt(cpc: Win32.PCCH; 
  94.                      sz : Win32.Strings.size_t) 
  95.                 return Win32.Strings.size_t is              -- tchar.h:533
  96.         len : Win32.Strings.size_t;
  97.     begin
  98.         len := Win32.Strings.strlen(cpc); 
  99.         if (len > sz) then return sz; 
  100.         else return len;        
  101.         end if;
  102.     end strncnt;
  103.     pragma inline(strncnt);
  104.  
  105.     procedure strspnp(cpc1: in out Win32.PCCH;
  106.                       cpc2: in Win32.PCCH;
  107.                       crv : out Win32.PCHAR) is             -- tchar.h: 534 
  108.  
  109.         function To_PCCH is new Ada.Unchecked_Conversion(integer,
  110.                         Win32.PCCH);                    
  111.     begin
  112.         cpc1 := To_PCCH(To_int(cpc1) + 
  113.                         integer(Win32.Strings.strspn(cpc1,cpc2)));
  114.         --if (character(cpc1.all) /= Ascii.nul) then
  115.         if (Interfaces.C.Strings.Value(Win32.To_Chars_Ptr(cpc1))(1) 
  116.             /= Ascii.nul) then
  117.                 crv := Win32.PCHAR(cpc1);
  118.         else
  119.                 crv := NULL;
  120.         end if; 
  121.     end strspnp;
  122.     pragma inline (strspnp);
  123.  
  124.     function T(x: Win32.PSTR) return Win32.PSTR is          -- tchar.h: 546 
  125.     begin
  126.         return x;
  127.     end T;
  128.  
  129. end Win32.Tchar;
  130.  
  131.  
  132.  
  133.  
  134.  
  135.  
  136.  
  137.  
  138.  
  139.  
  140.  
  141.  
  142.  
  143.  
  144.  
  145.  
  146.  
  147.  
  148.