(root)/
gettext-0.22.4/
gettext-tools/
gnulib-lib/
fstrcmp.h
       1  /* Fuzzy string comparison.
       2     Copyright (C) 1995, 2000, 2002-2003, 2006, 2008-2023 Free Software
       3     Foundation, Inc.
       4  
       5     This file was written by Peter Miller <pmiller@agso.gov.au>
       6  
       7  This program is free software: you can redistribute it and/or modify
       8  it under the terms of the GNU General Public License as published by
       9  the Free Software Foundation, either version 3 of the License, or
      10  (at your option) any later version.
      11  
      12  This program is distributed in the hope that it will be useful,
      13  but WITHOUT ANY WARRANTY; without even the implied warranty of
      14  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
      15  GNU General Public License for more details.
      16  
      17  You should have received a copy of the GNU General Public License
      18  along with this program.  If not, see <https://www.gnu.org/licenses/>.  */
      19  
      20  #ifndef _FSTRCMP_H
      21  #define _FSTRCMP_H
      22  
      23  #ifdef __cplusplus
      24  extern "C" {
      25  #endif
      26  
      27  /* Fuzzy compare of S1 and S2.  Return a measure for the similarity of S1
      28     and S1.  The higher the result, the more similar the strings are.
      29     The result is bounded between 0 (meaning very dissimilar strings) and
      30     1 (meaning identical strings).  */
      31  extern double fstrcmp (const char *s1, const char *s2);
      32  
      33  /* Like fstrcmp (S1, S2), except that if the result is < LOWER_BOUND, an
      34     arbitrary other value < LOWER_BOUND can be returned.  */
      35  extern double fstrcmp_bounded (const char *s1, const char *s2,
      36                                 double lower_bound);
      37  
      38  /* A shortcut for fstrcmp.  Avoids a function call.  */
      39  #define fstrcmp(s1,s2) fstrcmp_bounded (s1, s2, 0.0)
      40  
      41  /* Frees the per-thread resources allocated by this module for the current
      42     thread.
      43     You don't need to call this function in threads other than the main thread,
      44     because per-thread resources are reclaimed automatically when the thread
      45     exits.  However, per-thread resources allocated by the main thread are
      46     comparable to static allocations; calling this function can be useful to
      47     avoid an error report from valgrind.  */
      48  extern void fstrcmp_free_resources (void);
      49  
      50  #ifdef __cplusplus
      51  }
      52  #endif
      53  
      54  #endif