File : s-strcom.ads


   1 ------------------------------------------------------------------------------
   2 --                                                                          --
   3 --                    GNAT RUN-TIME LIBRARY COMPONENTS                      --
   4 --                                                                          --
   5 --                S Y S T E M . S T R I N G _ C O M P A R E                 --
   6 --                                                                          --
   7 --                                 S p e c                                  --
   8 --                                                                          --
   9 --          Copyright (C) 2002-2013, Free Software Foundation, Inc.         --
  10 --                                                                          --
  11 -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  12 -- terms of the  GNU General Public License as published  by the Free Soft- --
  13 -- ware  Foundation;  either version 3,  or (at your option) any later ver- --
  14 -- sion.  GNAT is distributed in the hope that it will be useful, but WITH- --
  15 -- OUT ANY WARRANTY;  without even the  implied warranty of MERCHANTABILITY --
  16 -- or FITNESS FOR A PARTICULAR PURPOSE.                                     --
  17 --                                                                          --
  18 --                                                                          --
  19 --                                                                          --
  20 --                                                                          --
  21 --                                                                          --
  22 -- You should have received a copy of the GNU General Public License and    --
  23 -- a copy of the GCC Runtime Library Exception along with this program;     --
  24 -- see the files COPYING3 and COPYING.RUNTIME respectively.  If not, see    --
  25 -- <http://www.gnu.org/licenses/>.                                          --
  26 --                                                                          --
  27 -- GNAT was originally developed  by the GNAT team at  New York University. --
  28 -- Extensive contributions were provided by Ada Core Technologies Inc.      --
  29 --                                                                          --
  30 ------------------------------------------------------------------------------
  31 
  32 --  This package contains functions for runtime comparisons on strings
  33 
  34 pragma Compiler_Unit_Warning;
  35 
  36 package System.String_Compare is
  37 
  38    function Str_Compare
  39      (Left      : System.Address;
  40       Right     : System.Address;
  41       Left_Len  : Natural;
  42       Right_Len : Natural) return Integer;
  43    --  Compare the string starting at address Left of length Left_Len
  44    --  with the string starting at address Right of length Right_Len.
  45    --  The comparison is in the normal Ada semantic sense of string
  46    --  comparison. The result is -1,0,+1 for Left<Right, Left=Right,
  47    --  Left>Right respectively. This function works with 4 byte words
  48    --  if the operands are aligned on 4-byte boundaries and long enough.
  49 
  50    function Str_Compare_Bytes
  51      (Left      : System.Address;
  52       Right     : System.Address;
  53       Left_Len  : Natural;
  54       Right_Len : Natural) return Integer;
  55    --  Same functionality as Str_Compare but always proceeds by bytes.
  56    --  Used when the caller knows that the operands are unaligned, or
  57    --  short enough that it makes no sense to go by words.
  58 
  59 end System.String_Compare;