"Fossies" - the Fresh Open Source Software Archive

Member "gnuastro-0.8/bootstrapped/tests/test-mbsspn.c" (28 Dec 2018, 1865 Bytes) of package /linux/privat/gnuastro-0.8.tar.lz:


As a special service "Fossies" has tried to format the requested source page into HTML format using (guessed) C and C++ source code syntax highlighting (style: standard) with prefixed line numbers and code folding option. Alternatively you can here view or download the uninterpreted source code file. See also the last Fossies "Diffs" side-by-side code changes report for "test-mbsspn.c": 0.5_vs_0.6.

    1 /* Test of searching a string for a character outside a given set of characters.
    2    Copyright (C) 2007-2018 Free Software Foundation, Inc.
    3 
    4    This program is free software: you can redistribute it and/or modify
    5    it under the terms of the GNU General Public License as published by
    6    the Free Software Foundation; either version 3 of the License, or
    7    (at your option) any later version.
    8 
    9    This program is distributed in the hope that it will be useful,
   10    but WITHOUT ANY WARRANTY; without even the implied warranty of
   11    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
   12    GNU General Public License for more details.
   13 
   14    You should have received a copy of the GNU General Public License
   15    along with this program.  If not, see <https://www.gnu.org/licenses/>.  */
   16 
   17 /* Written by Bruno Haible <bruno@clisp.org>, 2007.  */
   18 
   19 #include <config.h>
   20 
   21 #include <string.h>
   22 
   23 #include <locale.h>
   24 
   25 #include "macros.h"
   26 
   27 int
   28 main ()
   29 {
   30   /* configure should already have checked that the locale is supported.  */
   31   if (setlocale (LC_ALL, "") == NULL)
   32     return 1;
   33 
   34   ASSERT (mbsspn ("Some text", "") == 0);
   35 
   36   ASSERT (mbsspn ("A long sentence", " ") == 0);
   37   ASSERT (mbsspn ("  xy", "aei ou") == 2);
   38   ASSERT (mbsspn ("eau", "aeiou") == 3);
   39 
   40   /* The following tests shows how mbsspn() is different from strspn().  */
   41 
   42   {
   43     const char input[] = "\303\266\303\274"; /* "öü" */
   44     ASSERT (mbsspn (input, "\303\266") == 2); /* "ö" */
   45     ASSERT (mbsspn (input, "\303\244") == 0); /* "ä" */
   46     ASSERT (mbsspn (input, "\303\274\303\266") == 4); /* "üö" */
   47     ASSERT (mbsspn (input, "\303\244\303\274") == 0); /* "äü" */
   48     ASSERT (mbsspn (input, "\303\244\303\266") == 2); /* "äö" */
   49   }
   50 
   51   {
   52     const char input[] = "\303\266\303\274"; /* "öü" */
   53     ASSERT (mbsspn (input, "\303") == 0); /* invalid multibyte sequence */
   54   }
   55 
   56   return 0;
   57 }