mirror of
https://github.com/ksherlock/mpw-tools.git
synced 2024-09-28 23:55:38 +00:00
move common code into a library/test the LIB utility
This commit is contained in:
parent
da0addf0cb
commit
3a1fe360d4
17
MakeEnums.c
17
MakeEnums.c
@ -4,22 +4,7 @@
|
||||
#include <stdio.h>
|
||||
#include <ctype.h>
|
||||
|
||||
int strcasecmp(const char *s1, const char *s2)
|
||||
{
|
||||
int a, b;
|
||||
for (;;)
|
||||
{
|
||||
a = tolower(*s1++);
|
||||
b = tolower(*s2++);
|
||||
|
||||
if (a < b) return -1;
|
||||
if (a > b) return 1;
|
||||
|
||||
// a == b.
|
||||
if (a == 0) return 0;
|
||||
|
||||
}
|
||||
}
|
||||
#include "libc/libc.h"
|
||||
|
||||
#define msizeof(type, member) sizeof( ((type *)0)->member)
|
||||
|
||||
|
21
ReadGlobal.c
21
ReadGlobal.c
@ -3,26 +3,7 @@
|
||||
#include <ctype.h>
|
||||
#include <string.h>
|
||||
|
||||
int strcasecmp(const char *a, const char *b)
|
||||
{
|
||||
for(; ; ++a, ++b) {
|
||||
char aa = *a;
|
||||
char bb = *b;
|
||||
|
||||
aa = tolower(aa);
|
||||
bb = tolower(bb);
|
||||
|
||||
if (aa == 0 || bb == 0)
|
||||
{
|
||||
if (aa) return 1;
|
||||
if (bb) return -1;
|
||||
return 0;
|
||||
}
|
||||
|
||||
if (aa < bb) return -1;
|
||||
if (aa > bb) return 1;
|
||||
}
|
||||
}
|
||||
#include "libc/libc.h"
|
||||
|
||||
unsigned long GlobalAddress(const char *name, int *numeric)
|
||||
{
|
||||
|
7
libc/libc.h
Normal file
7
libc/libc.h
Normal file
@ -0,0 +1,7 @@
|
||||
#ifndef __libc_libc__
|
||||
#define __libc_libc__
|
||||
|
||||
int strcasecmp(const char *s1, const char *s2);
|
||||
int strncasecmp(const char *s1, const char *s2, size_t n);
|
||||
|
||||
#endif
|
105
libc/strcasecmp.c
Normal file
105
libc/strcasecmp.c
Normal file
@ -0,0 +1,105 @@
|
||||
/* $OpenBSD: strcasecmp.c,v 1.6 2005/08/08 08:05:37 espie Exp $ */
|
||||
|
||||
/*
|
||||
* 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.
|
||||
*/
|
||||
|
||||
#include <string.h>
|
||||
|
||||
typedef unsigned char u_char;
|
||||
|
||||
/*
|
||||
* This array is designed for mapping upper and lower case letter
|
||||
* together for a case independent comparison. The mappings are
|
||||
* based upon ascii character sequences.
|
||||
*/
|
||||
static const u_char charmap[] = {
|
||||
'\000', '\001', '\002', '\003', '\004', '\005', '\006', '\007',
|
||||
'\010', '\011', '\012', '\013', '\014', '\015', '\016', '\017',
|
||||
'\020', '\021', '\022', '\023', '\024', '\025', '\026', '\027',
|
||||
'\030', '\031', '\032', '\033', '\034', '\035', '\036', '\037',
|
||||
'\040', '\041', '\042', '\043', '\044', '\045', '\046', '\047',
|
||||
'\050', '\051', '\052', '\053', '\054', '\055', '\056', '\057',
|
||||
'\060', '\061', '\062', '\063', '\064', '\065', '\066', '\067',
|
||||
'\070', '\071', '\072', '\073', '\074', '\075', '\076', '\077',
|
||||
'\100', '\141', '\142', '\143', '\144', '\145', '\146', '\147',
|
||||
'\150', '\151', '\152', '\153', '\154', '\155', '\156', '\157',
|
||||
'\160', '\161', '\162', '\163', '\164', '\165', '\166', '\167',
|
||||
'\170', '\171', '\172', '\133', '\134', '\135', '\136', '\137',
|
||||
'\140', '\141', '\142', '\143', '\144', '\145', '\146', '\147',
|
||||
'\150', '\151', '\152', '\153', '\154', '\155', '\156', '\157',
|
||||
'\160', '\161', '\162', '\163', '\164', '\165', '\166', '\167',
|
||||
'\170', '\171', '\172', '\173', '\174', '\175', '\176', '\177',
|
||||
'\200', '\201', '\202', '\203', '\204', '\205', '\206', '\207',
|
||||
'\210', '\211', '\212', '\213', '\214', '\215', '\216', '\217',
|
||||
'\220', '\221', '\222', '\223', '\224', '\225', '\226', '\227',
|
||||
'\230', '\231', '\232', '\233', '\234', '\235', '\236', '\237',
|
||||
'\240', '\241', '\242', '\243', '\244', '\245', '\246', '\247',
|
||||
'\250', '\251', '\252', '\253', '\254', '\255', '\256', '\257',
|
||||
'\260', '\261', '\262', '\263', '\264', '\265', '\266', '\267',
|
||||
'\270', '\271', '\272', '\273', '\274', '\275', '\276', '\277',
|
||||
'\300', '\301', '\302', '\303', '\304', '\305', '\306', '\307',
|
||||
'\310', '\311', '\312', '\313', '\314', '\315', '\316', '\317',
|
||||
'\320', '\321', '\322', '\323', '\324', '\325', '\326', '\327',
|
||||
'\330', '\331', '\332', '\333', '\334', '\335', '\336', '\337',
|
||||
'\340', '\341', '\342', '\343', '\344', '\345', '\346', '\347',
|
||||
'\350', '\351', '\352', '\353', '\354', '\355', '\356', '\357',
|
||||
'\360', '\361', '\362', '\363', '\364', '\365', '\366', '\367',
|
||||
'\370', '\371', '\372', '\373', '\374', '\375', '\376', '\377',
|
||||
};
|
||||
|
||||
int
|
||||
strcasecmp(const char *s1, const char *s2)
|
||||
{
|
||||
const u_char *cm = charmap;
|
||||
const u_char *us1 = (const u_char *)s1;
|
||||
const u_char *us2 = (const u_char *)s2;
|
||||
|
||||
while (cm[*us1] == cm[*us2++])
|
||||
if (*us1++ == '\0')
|
||||
return (0);
|
||||
return (cm[*us1] - cm[*--us2]);
|
||||
}
|
||||
|
||||
int
|
||||
strncasecmp(const char *s1, const char *s2, size_t n)
|
||||
{
|
||||
if (n != 0) {
|
||||
const u_char *cm = charmap;
|
||||
const u_char *us1 = (const u_char *)s1;
|
||||
const u_char *us2 = (const u_char *)s2;
|
||||
|
||||
do {
|
||||
if (cm[*us1] != cm[*us2++])
|
||||
return (cm[*us1] - cm[*--us2]);
|
||||
if (*us1++ == '\0')
|
||||
break;
|
||||
} while (--n != 0);
|
||||
}
|
||||
return (0);
|
||||
}
|
17
makefile
17
makefile
@ -13,6 +13,9 @@ LIBS = \
|
||||
LDFLAGS = -w -c 'MPS ' -t MPST \
|
||||
-sn STDIO=Main -sn INTENV=Main -sn %A5Init=Main
|
||||
|
||||
LIBFLAGS = -P
|
||||
SCFLAGS = -P
|
||||
|
||||
# MPW 3.5
|
||||
|
||||
# LIBS = \
|
||||
@ -28,8 +31,12 @@ LDFLAGS = -w -c 'MPS ' -t MPST \
|
||||
all: Help GetEnv Duplicate SetFile OverlayIIgs ListRez ListRezIIgs MakeEnums ReadGlobal
|
||||
|
||||
clean:
|
||||
rm -f *.c.o
|
||||
rm -f Help GetEnv Duplicate SetFile OverlayIIgs MakeEnums
|
||||
rm -f *.o
|
||||
rm -f Help GetEnv Duplicate SetFile OverlayIIgs MakeEnums ReadGlobal
|
||||
rm -f libc/libc libc/*.o
|
||||
|
||||
libc/libc: libc/strcasecmp.c.o
|
||||
$(MPW) Lib $(LIBFLAGS) -o $@ $^
|
||||
|
||||
GetEnv: GetEnv.c.o
|
||||
$(MPW) Link $(LDFLAGS) -o $@ $^ $(LIBS)
|
||||
@ -55,10 +62,10 @@ ListRez: ListRez.c.o
|
||||
ListRezIIgs: ListRezIIgs.c.o
|
||||
$(MPW) Link $(LDFLAGS) -o $@ $^ $(LIBS)
|
||||
|
||||
MakeEnums: MakeEnums.c.o
|
||||
MakeEnums: MakeEnums.c.o libc/libc
|
||||
$(MPW) Link $(LDFLAGS) -o $@ $^ $(LIBS)
|
||||
|
||||
ReadGlobal: ReadGlobal.c.o
|
||||
ReadGlobal: ReadGlobal.c.o libc/libc
|
||||
$(MPW) Link $(LDFLAGS) -o $@ $^ $(LIBS)
|
||||
|
||||
#SetFile.c : SetFile.rl
|
||||
@ -69,4 +76,4 @@ ReadGlobal: ReadGlobal.c.o
|
||||
|
||||
|
||||
%.c.o : %.c
|
||||
$(MPW) SC -p $< -o $@
|
||||
$(MPW) SC $(SCFLAGS) $< -o $@
|
||||
|
Loading…
Reference in New Issue
Block a user