(root)/
gcc-13.2.0/
gcc/
m2/
mc-boot/
GStrLib.h
       1  /* do not edit automatically generated by mc from StrLib.  */
       2  /* StrLib.def provides string manipulation procedures.
       3  
       4  Copyright (C) 2001-2023 Free Software Foundation, Inc.
       5  Contributed by Gaius Mulley <gaius.mulley@southwales.ac.uk>.
       6  
       7  This file is part of GNU Modula-2.
       8  
       9  GNU Modula-2 is free software; you can redistribute it and/or modify
      10  it under the terms of the GNU General Public License as published by
      11  the Free Software Foundation; either version 3, or (at your option)
      12  any later version.
      13  
      14  GNU Modula-2 is distributed in the hope that it will be useful, but
      15  WITHOUT ANY WARRANTY; without even the implied warranty of
      16  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
      17  General Public License for more details.
      18  
      19  Under Section 7 of GPL version 3, you are granted additional
      20  permissions described in the GCC Runtime Library Exception, version
      21  3.1, as published by the Free Software Foundation.
      22  
      23  You should have received a copy of the GNU General Public License and
      24  a copy of the GCC Runtime Library Exception along with this program;
      25  see the files COPYING3 and COPYING.RUNTIME respectively.  If not, see
      26  <http://www.gnu.org/licenses/>.  */
      27  
      28  
      29  #if !defined (_StrLib_H)
      30  #   define _StrLib_H
      31  
      32  #include "config.h"
      33  #include "system.h"
      34  #   ifdef __cplusplus
      35  extern "C" {
      36  #   endif
      37  #include <stdbool.h>
      38  #   if !defined (PROC_D)
      39  #      define PROC_D
      40         typedef void (*PROC_t) (void);
      41         typedef struct { PROC_t proc; } PROC;
      42  #   endif
      43  
      44  
      45  #   if defined (_StrLib_C)
      46  #      define EXTERN
      47  #   else
      48  #      define EXTERN extern
      49  #   endif
      50  
      51  
      52  /*
      53     StrConCat - combines a and b into c.
      54  */
      55  
      56  EXTERN void StrLib_StrConCat (const char *a_, unsigned int _a_high, const char *b_, unsigned int _b_high, char *c, unsigned int _c_high);
      57  
      58  /*
      59     StrLess - returns TRUE if string, a, alphabetically occurs before
      60               string, b.
      61  */
      62  
      63  EXTERN bool StrLib_StrLess (const char *a_, unsigned int _a_high, const char *b_, unsigned int _b_high);
      64  
      65  /*
      66     StrEqual - performs a = b on two strings.
      67  */
      68  
      69  EXTERN bool StrLib_StrEqual (const char *a_, unsigned int _a_high, const char *b_, unsigned int _b_high);
      70  
      71  /*
      72     StrLen - returns the length of string, a.
      73  */
      74  
      75  EXTERN unsigned int StrLib_StrLen (const char *a_, unsigned int _a_high);
      76  
      77  /*
      78     StrCopy - copy string src into string dest providing dest is large enough.
      79               If dest is smaller than a then src then the string is truncated when
      80               dest is full.  Add a nul character if there is room in dest.
      81  */
      82  
      83  EXTERN void StrLib_StrCopy (const char *src_, unsigned int _src_high, char *dest, unsigned int _dest_high);
      84  
      85  /*
      86     IsSubString - returns true if b is a subcomponent of a.
      87  */
      88  
      89  EXTERN bool StrLib_IsSubString (const char *a_, unsigned int _a_high, const char *b_, unsigned int _b_high);
      90  
      91  /*
      92     StrRemoveWhitePrefix - copies string, into string, b, excluding any white
      93                            space infront of a.
      94  */
      95  
      96  EXTERN void StrLib_StrRemoveWhitePrefix (const char *a_, unsigned int _a_high, char *b, unsigned int _b_high);
      97  #   ifdef __cplusplus
      98  }
      99  #   endif
     100  
     101  #   undef EXTERN
     102  #endif