diff options
Diffstat (limited to 'gnulib/lib/wcsncasecmp-impl.h')
m--------- | gnulib | 0 | ||||
-rw-r--r-- | gnulib/lib/wcsncasecmp-impl.h | 36 |
2 files changed, 36 insertions, 0 deletions
diff --git a/gnulib b/gnulib deleted file mode 160000 -Subproject 443bc5ffcf7429e557f4a371b0661abe98ddbc1 diff --git a/gnulib/lib/wcsncasecmp-impl.h b/gnulib/lib/wcsncasecmp-impl.h new file mode 100644 index 0000000..234f27a --- /dev/null +++ b/gnulib/lib/wcsncasecmp-impl.h @@ -0,0 +1,36 @@ +/* Compare two wide strings ignoring case. + Copyright (C) 1999, 2011 Free Software Foundation, Inc. + Written by Bruno Haible <bruno@clisp.org>, 2011. + + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see <http://www.gnu.org/licenses/>. */ + +int +wcsncasecmp (const wchar_t *s1, const wchar_t *s2, size_t n) +{ + for (; n > 0;) + { + wchar_t wc1 = towlower (*s1++); + wchar_t wc2 = towlower (*s2++); + if (wc1 != (wchar_t)'\0' && wc1 == wc2) + { + n--; + continue; + } + /* Note that wc1 and wc2 each have at most 31 bits. */ + return (int)wc1 - (int)wc2; + /* > 0 if wc1 > wc2, < 0 if wc1 < wc2, + = 0 if wc1 and wc2 are both '\0'. */ + } + return 0; +} |