1
0
mirror of https://git.tartarus.org/simon/putty.git synced 2025-01-10 01:48:00 +00:00

Provide a version of stricmp() and strnicmp() for Mac OS, which doesn't have

its own.  These are from NetBSD's libc, and have a standard (now 3-clause)
Berkeley licence.

Also provide a definition of DWORD and a better definition of BYTE.

[originally from svn r2449]
This commit is contained in:
Ben Harris 2003-01-04 17:24:49 +00:00
parent 6796ffc082
commit a952ead769
2 changed files with 85 additions and 0 deletions

View File

@ -85,6 +85,9 @@ extern OSErr get_session_dir(Boolean makeit, short *pVRefNum, long *pDirID);
extern void *open_settings_r_fsp(FSSpec *);
/* from macucs.c */
extern void init_ucs(void);
/* from mtcpnet.c */
extern OSErr mactcp_init(void);
extern void mactcp_shutdown(void);
#endif

82
mac/stricmp.c Normal file
View File

@ -0,0 +1,82 @@
#include "putty.h"
#define strcasecmp stricmp
#define strncasecmp strnicmp
#define _DIAGASSERT(e) /* nothing */
/*
* Copyright (c) 1987, 1993
* The Regents of the University of California. All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions
* are met:
* 1. Redistributions of source code must retain the above copyright
* notice, this list of conditions and the following disclaimer.
* 2. Redistributions in binary form must reproduce the above copyright
* notice, this list of conditions and the following disclaimer in the
* documentation and/or other materials provided with the distribution.
* 3. Neither the name of the University nor the names of its contributors
* may be used to endorse or promote products derived from this software
* without specific prior written permission.
*
* THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
* ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
* ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
* FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
* DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
* OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
* HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
* LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
* OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
* SUCH DAMAGE.
*
* From NetBSD: strcasecmp.c,v 1.12 2000/01/22 22:19:20 mycroft Exp
*/
#include <ctype.h>
typedef unsigned char u_char;
int
strcasecmp(s1, s2)
const char *s1, *s2;
{
const u_char *us1 = (const u_char *)s1,
*us2 = (const u_char *)s2;
_DIAGASSERT(s1 != NULL);
_DIAGASSERT(s2 != NULL);
while (tolower(*us1) == tolower(*us2++))
if (*us1++ == '\0')
return (0);
return (tolower(*us1) - tolower(*--us2));
}
int
strncasecmp(s1, s2, n)
const char *s1, *s2;
size_t n;
{
_DIAGASSERT(s1 != NULL);
_DIAGASSERT(s2 != NULL);
if (s1 == NULL || s2 == NULL)
return (0);
if (n != 0) {
const u_char *us1 = (const u_char *)s1,
*us2 = (const u_char *)s2;
do {
if (tolower(*us1) != tolower(*us2++))
return (tolower(*us1) - tolower(*--us2));
if (*us1++ == '\0')
break;
} while (--n != 0);
}
return (0);
}