/src/libunistring/lib/unistr/u32-cmp.c
| Line | Count | Source (jump to first uncovered line) | 
| 1 |  | /* Compare pieces of UTF-32 strings. | 
| 2 |  |    Copyright (C) 1999, 2002, 2006, 2009-2023 Free Software Foundation, Inc. | 
| 3 |  |    Written by Bruno Haible <bruno@clisp.org>, 2002. | 
| 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 "unistr.h" | 
| 30 |  |  | 
| 31 |  | int | 
| 32 |  | u32_cmp (const uint32_t *s1, const uint32_t *s2, size_t n) | 
| 33 | 0 | { | 
| 34 | 0 |   for (; n > 0;) | 
| 35 | 0 |     { | 
| 36 | 0 |       uint32_t uc1 = *s1++; | 
| 37 | 0 |       uint32_t uc2 = *s2++; | 
| 38 | 0 |       if (uc1 == uc2) | 
| 39 | 0 |         { | 
| 40 | 0 |           n--; | 
| 41 | 0 |           continue; | 
| 42 | 0 |         } | 
| 43 |  |       /* Note that uc1 and uc2 each have at most 31 bits. */ | 
| 44 | 0 |       return (int)uc1 - (int)uc2; | 
| 45 |  |       /* > 0 if uc1 > uc2, < 0 if uc1 < uc2. */ | 
| 46 | 0 |     } | 
| 47 | 0 |   return 0; | 
| 48 | 0 | } |