(root)/
gettext-0.22.4/
gettext-tools/
libgettextpo/
unilbrk/
ulc-common.c
       1  /* Line breaking auxiliary functions.
       2     Copyright (C) 2001-2003, 2006-2023 Free Software Foundation, Inc.
       3     Written by Bruno Haible <bruno@clisp.org>, 2001.
       4  
       5     This file is free software.
       6     It is dual-licensed under "the GNU LGPLv3+ or the GNU GPLv2+".
       7     You can redistribute it and/or modify it under either
       8       - the terms of the GNU Lesser General Public License as published
       9         by the Free Software Foundation, either version 3, or (at your
      10         option) any later version, or
      11       - the terms of the GNU General Public License as published by the
      12         Free Software Foundation; either version 2, or (at your option)
      13         any later version, or
      14       - the same dual license "the GNU LGPLv3+ or the GNU GPLv2+".
      15  
      16     This file is distributed in the hope that it will be useful,
      17     but WITHOUT ANY WARRANTY; without even the implied warranty of
      18     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
      19     Lesser General Public License and the GNU General Public License
      20     for more details.
      21  
      22     You should have received a copy of the GNU Lesser General Public
      23     License and of the GNU General Public License along with this
      24     program.  If not, see <https://www.gnu.org/licenses/>.  */
      25  
      26  #include <config.h>
      27  
      28  /* Specification.  */
      29  #include "unilbrk/ulc-common.h"
      30  
      31  #include "c-ctype.h"
      32  #include "c-strcaseeq.h"
      33  
      34  int
      35  is_utf8_encoding (const char *encoding)
      36  {
      37    if (STRCASEEQ (encoding, "UTF-8", 'U', 'T', 'F', '-', '8', 0, 0, 0, 0))
      38      return 1;
      39    return 0;
      40  }
      41  
      42  #if C_CTYPE_ASCII
      43  
      44  /* Tests whether a string is entirely ASCII.  Returns 1 if yes.
      45     Returns 0 if the string is in an 8-bit encoding or an ISO-2022 encoding.  */
      46  int
      47  is_all_ascii (const char *s, size_t n)
      48  {
      49    for (; n > 0; s++, n--)
      50      {
      51        unsigned char c = (unsigned char) *s;
      52  
      53        if (!(c_isprint (c) || c_isspace (c)))
      54          return 0;
      55      }
      56    return 1;
      57  }
      58  
      59  #endif /* C_CTYPE_ASCII */