root/maint/gnulib/lib/fstrcmp.h

/* [previous][next][first][last][top][bottom][index][help] */

INCLUDED FROM


   1 /* Fuzzy string comparison.
   2    Copyright (C) 1995, 2000, 2002-2003, 2006, 2008-2021 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

/* [previous][next][first][last][top][bottom][index][help] */