merge roken independence stuff

git-svn-id: svn://svn.h5l.se/heimdal/trunk/heimdal@8597 ec53bebd-3082-4978-b11e-865c3cabbd6b
This commit is contained in:
Assar Westerlund
2000-07-08 14:22:12 +00:00
parent a94fc9f12b
commit 5515fde49a
17 changed files with 2089 additions and 828 deletions

View File

@@ -1,11 +1,13 @@
# $Id$
include $(top_srcdir)/Makefile.am.common
AUTOMAKE_OPTIONS = foreign no-dependencies
AM_CFLAGS += $(WFLAGS)
CLEANFILES = roken.h make-roken.c
lib_LTLIBRARIES = libroken.la
libroken_la_LDFLAGS = -version-info 8:1:3
libroken_la_LDFLAGS = -version-info @VERSION@:0:0
noinst_PROGRAMS = make-roken
@@ -16,11 +18,15 @@ check_PROGRAMS = parse_bytes-test \
TESTS = $(check_PROGRAMS)
getaddrinfo_test_LDADD = libroken.la
parse_bytes_test_LDADD = libroken.la
LIB_crypt = @LIB_crypt@
common_LDADD = libroken.la $(LIB_crypt)
strpftime_test_SOURCES = strpftime-test.c strftime.c strptime.c snprintf.c
snprintf_test_SOURCES = snprintf-test.c snprintf.c
snprintf_test_LDADD = -lm
snprintf_test_LDADD = $(common_LDADD) -lm
getaddrinfo_test_LDADD = $(common_LDADD)
parse_bytes_test_LDADD = $(common_LDADD)
libroken_la_SOURCES = \
base64.c \
@@ -131,20 +137,16 @@ EXTRA_libroken_la_SOURCES = \
warnx.c \
writev.c
EXTRA_DIST = resource.h roken.awk roken.def roken.dsp roken.h.in \
roken.mak roken.rc
EXTRA_DIST = roken.awk roken.h.in
libroken_la_LIBADD = @LTLIBOBJS@
$(LTLIBOBJS) $(libroken_la_OBJECTS): roken.h
include_HEADERS = $(err_h) base64.h getarg.h \
parse_bytes.h parse_time.h parse_units.h \
resolve.h roken.h roken-common.h
build_HEADERZ = $(err_h) $(fnmatch_h) $(glob_h) xdbm.h
include_HEADERS = $(err_h) base64.h getarg.h \
parse_bytes.h parse_time.h parse_units.h \
resolve.h roken.h roken-common.h \
$(err_h) $(fnmatch_h) $(glob_h) xdbm.h
if have_err_h
err_h =

File diff suppressed because it is too large Load Diff

36
lib/roken/acconfig.h Normal file
View File

@@ -0,0 +1,36 @@
@BOTTOM@
#ifdef BROKEN_REALLOC
#define realloc(X, Y) isoc_realloc((X), (Y))
#define isoc_realloc(X, Y) ((X) ? realloc((X), (Y)) : malloc(Y))
#endif
#ifdef VOID_RETSIGTYPE
#define SIGRETURN(x) return
#else
#define SIGRETURN(x) return (RETSIGTYPE)(x)
#endif
#define RCSID(msg) \
static /**/const char *const rcsid[] = { (const char *)rcsid, "\100(#)" msg }
#undef PROTOTYPES
/* Maximum values on all known systems */
#define MaxHostNameLen (64+4)
#define MaxPathLen (1024+4)
/*
* Define NDBM if you are using the 4.3 ndbm library (which is part of
* libc). If not defined, 4.2 dbm will be assumed.
*/
#if defined(HAVE_DBM_FIRSTKEY)
#define NDBM
#endif
/*
* Defining this enables lots of useful (and used) extensions on
* glibc-based systems such as Linux
*/
#define _GNU_SOURCE

9
lib/roken/acinclude.m4 Normal file
View File

@@ -0,0 +1,9 @@
dnl $Id$
dnl
dnl Only put things that for some reason can't live in the `cf'
dnl directory in this file.
dnl
dnl $xId: misc.m4,v 1.1 1997/12/14 15:59:04 joda Exp $
dnl
define(upcase,`echo $1 | tr abcdefghijklmnopqrstuvwxyz ABCDEFGHIJKLMNOPQRSTUVWXYZ`)dnl

518
lib/roken/configure.in Normal file
View File

@@ -0,0 +1,518 @@
dnl Process this file with autoconf to produce a configure script.
AC_REVISION($Revision$)
AC_INIT(snprintf.c)
AM_CONFIG_HEADER(config.h)
AM_INIT_AUTOMAKE(roken,9)
dnl options
berkeley_db=db
AC_ARG_WITH(berkeley-db,
[ --without-berkeley-db if you don't want berkeley db],[
if test "$withval" = no; then
berkeley_db=""
fi
])
dnl Checks for programs
AC_PROG_CC
AC_PROG_AWK
AC_CYGWIN
AC_OBJEXT
AC_EXEEXT
AM_PROG_LIBTOOL
AC_MIPS_ABI
CC="$CC $abi"
libdir="$libdir$abilibdirext"
dnl C characteristics
AC_C___ATTRIBUTE__
AC_C_INLINE
AC_C_CONST
AC_WFLAGS(-Wall -Wmissing-prototypes -Wpointer-arith -Wbad-function-cast -Wmissing-declarations -Wnested-externs)
dnl C types
AC_TYPE_SIZE_T
AC_CHECK_TYPE_EXTRA(ssize_t, int, [#include <unistd.h>])
AC_TYPE_PID_T
AC_TYPE_UID_T
AC_HAVE_TYPE([long long])
AC_TYPE_SIGNAL
if test "$ac_cv_type_signal" = "void" ; then
AC_DEFINE(VOID_RETSIGTYPE, 1, [Define if signal handlers return void.])
fi
AC_SUBST(VOID_RETSIGTYPE)
dnl Checks for header files.
AC_HEADER_STDC
AC_HEADER_TIME
if test "$berkeley_db"; then
AC_CHECK_HEADERS([ \
db.h \
db_185.h \
])
fi
AC_CHECK_HEADERS([\
arpa/nameser.h \
arpa/inet.h \
config.h \
crypt.h \
dbm.h \
db.h \
errno.h \
err.h \
dirent.h \
fcntl.h \
fnmatch.h \
grp.h \
ndbm.h \
netdb.h \
netinet/in.h \
netinet/in_systm.h \
paths.h \
pwd.h \
resolv.h \
rpcsvc/dbm.h \
rpcsvc/ypclnt.h \
shadow.h \
sys/ioctl.h \
sys/param.h \
sys/proc.h \
sys/resource.h \
sys/socket.h \
sys/stat.h \
sys/sysctl.h \
sys/time.h \
sys/tty.h \
sys/types.h \
sys/uio.h \
sys/utsname.h \
sys/wait.h \
syslog.h \
termios.h \
unistd.h \
userconf.h \
usersec.h \
winsock.h \
])
CHECK_NETINET_IP_AND_TCP
AM_CONDITIONAL(have_err_h, test "$ac_cv_header_err_h" = yes)
AM_CONDITIONAL(have_fnmatch_h, test "$ac_cv_header_fnmatch_h" = yes)
dnl Check for functions and libraries
AC_KRB_IPV6
AC_FIND_FUNC(socket, socket)
AC_FIND_FUNC(gethostbyname, nsl)
AC_FIND_FUNC(syslog, syslog)
AC_FIND_FUNC(gethostbyname2, inet6 ip6)
AC_FIND_FUNC(res_search, resolv,
[
#include <stdio.h>
#ifdef HAVE_SYS_TYPES_H
#include <sys/types.h>
#endif
#ifdef HAVE_NETINET_IN_H
#include <netinet/in.h>
#endif
#ifdef HAVE_ARPA_NAMESER_H
#include <arpa/nameser.h>
#endif
#ifdef HAVE_RESOLV_H
#include <resolv.h>
#endif
],
[0,0,0,0,0])
AC_FIND_FUNC(dn_expand, resolv,
[
#include <stdio.h>
#ifdef HAVE_SYS_TYPES_H
#include <sys/types.h>
#endif
#ifdef HAVE_NETINET_IN_H
#include <netinet/in.h>
#endif
#ifdef HAVE_ARPA_NAMESER_H
#include <arpa/nameser.h>
#endif
#ifdef HAVE_RESOLV_H
#include <resolv.h>
#endif
],
[0,0,0,0,0])
AC_BROKEN_SNPRINTF
AC_BROKEN_VSNPRINTF
AC_BROKEN_GLOB
if test "$ac_cv_func_glob_working" != yes; then
LIBOBJS="$LIBOBJS glob.o"
fi
AM_CONDITIONAL(have_glob_h, test "$ac_cv_func_glob_working" = yes)
dnl these should happen after tests for *snprintf
AC_FIND_FUNC_NO_LIBS2(dbopen, $berkeley_db, [
#include <stdio.h>
#if defined(HAVE_DB_185_H)
#include <db_185.h>
#elif defined(HAVE_DB_H)
#include <db.h>
#endif
],[NULL, 0, 0, 0, NULL])
AC_FIND_FUNC_NO_LIBS(dbm_firstkey, $berkeley_db gdbm ndbm)
DBLIB="$LIB_dbopen"
if test "$LIB_dbopen" != "$LIB_dbm_firstkey"; then
DBLIB="$DBLIB $LIB_dbm_firstkey"
fi
AC_SUBST(DBLIB)dnl
AC_CHECK_FUNCS([ \
asnprintf \
asprintf \
cgetent \
vasnprintf \
vasprintf \
])
if test "$ac_cv_func_cgetent" = no; then
LIBOBJS="$LIBOBJS getcap.o"
fi
AC_FUNC_GETLOGIN
AC_FIND_IF_NOT_BROKEN(hstrerror, resolv,
[#ifdef HAVE_NETDB_H
#include <netdb.h>
#endif],
17)
if test "$ac_cv_func_hstrerror" = yes; then
AC_NEED_PROTO([
#ifdef HAVE_NETDB_H
#include <netdb.h>
#endif],
hstrerror)
fi
dnl sigh, wish this could be done in a loop
if test "$ac_cv_func_asprintf" = yes; then
AC_NEED_PROTO([
#include <stdio.h>
#include <string.h>],
asprintf)dnl
fi
if test "$ac_cv_func_vasprintf" = yes; then
AC_NEED_PROTO([
#include <stdio.h>
#include <string.h>],
vasprintf)dnl
fi
if test "$ac_cv_func_asnprintf" = yes; then
AC_NEED_PROTO([
#include <stdio.h>
#include <string.h>],
asnprintf)dnl
fi
if test "$ac_cv_func_vasnprintf" = yes; then
AC_NEED_PROTO([
#include <stdio.h>
#include <string.h>],
vasnprintf)dnl
fi
AC_BROKEN([ \
chown \
copyhostent \
daemon \
err \
errx \
fchown \
flock \
fnmatch \
freeaddrinfo \
freehostent \
gai_strerror \
getaddrinfo \
getdtablesize \
getegid \
geteuid \
getgid \
gethostname \
getipnodebyaddr \
getipnodebyname \
getnameinfo \
getopt \
gettimeofday \
getuid \
getusershell \
inet_aton \
inet_ntop \
inet_pton \
initgroups \
innetgr \
iruserok \
lstat \
memmove \
mkstemp \
putenv \
rcmd \
readv \
recvmsg \
sendmsg \
setegid \
setenv \
seteuid \
strcasecmp \
strdup \
strerror \
strftime \
strlcat \
strlcpy \
strlwr \
strncasecmp \
strndup \
strnlen \
strptime \
strsep \
strtok_r \
strupr \
swab \
unsetenv \
verr \
verrx \
vsyslog \
vwarn \
vwarnx \
warn \
warnx \
writev \
])
AC_NEED_PROTO([#include <stdlib.h>], setenv)
AC_NEED_PROTO([#include <stdlib.h>], unsetenv)
AC_NEED_PROTO([#include <unistd.h>], gethostname)
AC_NEED_PROTO([#include <unistd.h>], mkstemp)
AC_NEED_PROTO([#include <unistd.h>], getusershell)
AC_NEED_PROTO([
#ifdef HAVE_SYS_TYPES_H
#include <sys/types.h>
#endif
#ifdef HAVE_SYS_SOCKET_H
#include <sys/socket.h>
#endif
#ifdef HAVE_NETINET_IN_H
#include <netinet/in.h>
#endif
#ifdef HAVE_ARPA_INET_H
#include <arpa/inet.h>
#endif],
inet_aton)
AC_FIND_FUNC_NO_LIBS(crypt, crypt)dnl
AC_CACHE_CHECK(if realloc if broken, ac_cv_func_realloc_broken, [
ac_cv_func_realloc_broken=no
AC_TRY_RUN([
#include <stddef.h>
#include <stdlib.h>
int main()
{
return realloc(NULL, 17) == NULL;
}
],:, ac_cv_func_realloc_broken=yes, :)
])
if test "$ac_cv_func_realloc_broken" = yes ; then
AC_DEFINE(BROKEN_REALLOC, 1, [Define if realloc(NULL) doesn't work.])
fi
dnl AC_KRB_FUNC_GETCWD_BROKEN
dnl
dnl Checks for prototypes and declarations
dnl
AC_PROTO_COMPAT([
#ifdef HAVE_SYS_TYPES_H
#include <sys/types.h>
#endif
#ifdef HAVE_SYS_SOCKET_H
#include <sys/socket.h>
#endif
#ifdef HAVE_NETINET_IN_H
#include <netinet/in.h>
#endif
#ifdef HAVE_ARPA_INET_H
#include <arpa/inet.h>
#endif
#ifdef HAVE_NETDB_H
#include <netdb.h>
#endif
],
gethostbyname, struct hostent *gethostbyname(const char *))
AC_PROTO_COMPAT([
#ifdef HAVE_SYS_TYPES_H
#include <sys/types.h>
#endif
#ifdef HAVE_SYS_SOCKET_H
#include <sys/socket.h>
#endif
#ifdef HAVE_NETINET_IN_H
#include <netinet/in.h>
#endif
#ifdef HAVE_ARPA_INET_H
#include <arpa/inet.h>
#endif
#ifdef HAVE_NETDB_H
#include <netdb.h>
#endif
],
gethostbyaddr, struct hostent *gethostbyaddr(const void *, size_t, int))
AC_PROTO_COMPAT([
#ifdef HAVE_SYS_TYPES_H
#include <sys/types.h>
#endif
#ifdef HAVE_SYS_SOCKET_H
#include <sys/socket.h>
#endif
#ifdef HAVE_NETINET_IN_H
#include <netinet/in.h>
#endif
#ifdef HAVE_ARPA_INET_H
#include <arpa/inet.h>
#endif
#ifdef HAVE_NETDB_H
#include <netdb.h>
#endif
],
getservbyname, struct servent *getservbyname(const char *, const char *))
AC_PROTO_COMPAT([
#ifdef HAVE_SYSLOG_H
#include <syslog.h>
#endif
],
openlog, void openlog(const char *, int, int))
AC_NEED_PROTO([
#ifdef HAVE_CRYPT_H
#include <crypt.h>
#endif
#ifdef HAVE_UNISTD_H
#include <unistd.h>
#endif
],
crypt)
AC_NEED_PROTO([
#include <string.h>
],
strtok_r)
AC_NEED_PROTO([
#include <string.h>
],
strsep)
dnl variables
AC_CHECK_VAR([#ifdef HAVE_SYS_TYPES_H
#include <sys/types.h>
#endif
#ifdef HAVE_NETDB_H
#include <netdb.h>
#endif],
h_errno)
AC_CHECK_VAR([#ifdef HAVE_NETDB_H
#include <netdb.h>
#endif],
h_errlist)
AC_CHECK_VAR([#ifdef HAVE_NETDB_H
#include <netdb.h>
#endif],
h_nerr)
AC_CHECK_VAR([#ifdef HAVE_ERR_H
#include <err.h>
#endif],[__progname])
AC_CHECK_DECLARATION([#include <stdlib.h>
#ifdef HAVE_UNISTD_H
#include <unistd.h>
#endif], optarg)
AC_CHECK_DECLARATION([#include <stdlib.h>
#ifdef HAVE_UNISTD_H
#include <unistd.h>
#endif], optind)
AC_CHECK_DECLARATION([#include <stdlib.h>
#ifdef HAVE_UNISTD_H
#include <unistd.h>
#endif], opterr)
AC_CHECK_DECLARATION([#include <stdlib.h>
#ifdef HAVE_UNISTD_H
#include <unistd.h>
#endif], optopt)
AC_CHECK_DECLARATION([#include <stdlib.h>], environ)
dnl
dnl Check for fields in struct tm
dnl
AC_HAVE_STRUCT_FIELD(struct tm, tm_gmtoff, [#include <time.h>])
AC_HAVE_STRUCT_FIELD(struct tm, tm_zone, [#include <time.h>])
dnl
dnl or do we have a variable `timezone' ?
dnl
AC_CHECK_VAR(
[#include <time.h>],
timezone)
AC_HAVE_TYPE([sa_family_t],[#include <sys/socket.h>])
AC_HAVE_TYPE([socklen_t],[#include <sys/socket.h>])
AC_HAVE_TYPE([struct sockaddr], [#include <sys/socket.h>])
AC_HAVE_TYPE([struct sockaddr_storage], [#include <sys/socket.h>])
AC_HAVE_TYPE([struct addrinfo], [#include <netdb.h>])
dnl
dnl Check for struct winsize
dnl
AC_KRB_STRUCT_WINSIZE
dnl
dnl Check for struct spwd
dnl
AC_KRB_STRUCT_SPWD
dnl
dnl Check for sa_len in struct sockaddr
dnl
AC_HAVE_STRUCT_FIELD(struct sockaddr, sa_len, [#include <sys/types.h>
#include <sys/socket.h>])
LTLIBOBJS=`echo "$LIBOBJS" | sed 's/\.o/\.lo/g'`
AC_SUBST(LTLIBOBJS)
AC_OUTPUT(Makefile)

View File

@@ -1,5 +1,5 @@
/*
* Copyright (c) 1999 Kungliga Tekniska H<>gskolan
* Copyright (c) 1999 - 2000 Kungliga Tekniska H<>gskolan
* (Royal Institute of Technology, Stockholm, Sweden).
* All rights reserved.
*
@@ -122,7 +122,7 @@ main(int argc, char **argv)
usage (0);
if (version_flag) {
print_version (NULL);
fprintf (stderr, "%s from %s-%s)\n", __progname, PACKAGE, VERSION);
return 0;
}

251
lib/roken/install-sh Executable file
View File

@@ -0,0 +1,251 @@
#!/bin/sh
#
# install - install a program, script, or datafile
# This comes from X11R5 (mit/util/scripts/install.sh).
#
# Copyright 1991 by the Massachusetts Institute of Technology
#
# Permission to use, copy, modify, distribute, and sell this software and its
# documentation for any purpose is hereby granted without fee, provided that
# the above copyright notice appear in all copies and that both that
# copyright notice and this permission notice appear in supporting
# documentation, and that the name of M.I.T. not be used in advertising or
# publicity pertaining to distribution of the software without specific,
# written prior permission. M.I.T. makes no representations about the
# suitability of this software for any purpose. It is provided "as is"
# without express or implied warranty.
#
# Calling this script install-sh is preferred over install.sh, to prevent
# `make' implicit rules from creating a file called install from it
# when there is no Makefile.
#
# This script is compatible with the BSD install script, but was written
# from scratch. It can only install one file at a time, a restriction
# shared with many OS's install programs.
# set DOITPROG to echo to test this script
# Don't use :- since 4.3BSD and earlier shells don't like it.
doit="${DOITPROG-}"
# put in absolute paths if you don't have them in your path; or use env. vars.
mvprog="${MVPROG-mv}"
cpprog="${CPPROG-cp}"
chmodprog="${CHMODPROG-chmod}"
chownprog="${CHOWNPROG-chown}"
chgrpprog="${CHGRPPROG-chgrp}"
stripprog="${STRIPPROG-strip}"
rmprog="${RMPROG-rm}"
mkdirprog="${MKDIRPROG-mkdir}"
transformbasename=""
transform_arg=""
instcmd="$mvprog"
chmodcmd="$chmodprog 0755"
chowncmd=""
chgrpcmd=""
stripcmd=""
rmcmd="$rmprog -f"
mvcmd="$mvprog"
src=""
dst=""
dir_arg=""
while [ x"$1" != x ]; do
case $1 in
-c) instcmd="$cpprog"
shift
continue;;
-d) dir_arg=true
shift
continue;;
-m) chmodcmd="$chmodprog $2"
shift
shift
continue;;
-o) chowncmd="$chownprog $2"
shift
shift
continue;;
-g) chgrpcmd="$chgrpprog $2"
shift
shift
continue;;
-s) stripcmd="$stripprog"
shift
continue;;
-t=*) transformarg=`echo $1 | sed 's/-t=//'`
shift
continue;;
-b=*) transformbasename=`echo $1 | sed 's/-b=//'`
shift
continue;;
*) if [ x"$src" = x ]
then
src=$1
else
# this colon is to work around a 386BSD /bin/sh bug
:
dst=$1
fi
shift
continue;;
esac
done
if [ x"$src" = x ]
then
echo "install: no input file specified"
exit 1
else
true
fi
if [ x"$dir_arg" != x ]; then
dst=$src
src=""
if [ -d $dst ]; then
instcmd=:
chmodcmd=""
else
instcmd=mkdir
fi
else
# Waiting for this to be detected by the "$instcmd $src $dsttmp" command
# might cause directories to be created, which would be especially bad
# if $src (and thus $dsttmp) contains '*'.
if [ -f $src -o -d $src ]
then
true
else
echo "install: $src does not exist"
exit 1
fi
if [ x"$dst" = x ]
then
echo "install: no destination specified"
exit 1
else
true
fi
# If destination is a directory, append the input filename; if your system
# does not like double slashes in filenames, you may need to add some logic
if [ -d $dst ]
then
dst="$dst"/`basename $src`
else
true
fi
fi
## this sed command emulates the dirname command
dstdir=`echo $dst | sed -e 's,[^/]*$,,;s,/$,,;s,^$,.,'`
# Make sure that the destination directory exists.
# this part is taken from Noah Friedman's mkinstalldirs script
# Skip lots of stat calls in the usual case.
if [ ! -d "$dstdir" ]; then
defaultIFS='
'
IFS="${IFS-${defaultIFS}}"
oIFS="${IFS}"
# Some sh's can't handle IFS=/ for some reason.
IFS='%'
set - `echo ${dstdir} | sed -e 's@/@%@g' -e 's@^%@/@'`
IFS="${oIFS}"
pathcomp=''
while [ $# -ne 0 ] ; do
pathcomp="${pathcomp}${1}"
shift
if [ ! -d "${pathcomp}" ] ;
then
$mkdirprog "${pathcomp}"
else
true
fi
pathcomp="${pathcomp}/"
done
fi
if [ x"$dir_arg" != x ]
then
$doit $instcmd $dst &&
if [ x"$chowncmd" != x ]; then $doit $chowncmd $dst; else true ; fi &&
if [ x"$chgrpcmd" != x ]; then $doit $chgrpcmd $dst; else true ; fi &&
if [ x"$stripcmd" != x ]; then $doit $stripcmd $dst; else true ; fi &&
if [ x"$chmodcmd" != x ]; then $doit $chmodcmd $dst; else true ; fi
else
# If we're going to rename the final executable, determine the name now.
if [ x"$transformarg" = x ]
then
dstfile=`basename $dst`
else
dstfile=`basename $dst $transformbasename |
sed $transformarg`$transformbasename
fi
# don't allow the sed command to completely eliminate the filename
if [ x"$dstfile" = x ]
then
dstfile=`basename $dst`
else
true
fi
# Make a temp file name in the proper directory.
dsttmp=$dstdir/#inst.$$#
# Move or copy the file name to the temp name
$doit $instcmd $src $dsttmp &&
trap "rm -f ${dsttmp}" 0 &&
# and set any options; do chmod last to preserve setuid bits
# If any of these fail, we abort the whole thing. If we want to
# ignore errors from any of these, just make sure not to ignore
# errors from the above "$doit $instcmd $src $dsttmp" command.
if [ x"$chowncmd" != x ]; then $doit $chowncmd $dsttmp; else true;fi &&
if [ x"$chgrpcmd" != x ]; then $doit $chgrpcmd $dsttmp; else true;fi &&
if [ x"$stripcmd" != x ]; then $doit $stripcmd $dsttmp; else true;fi &&
if [ x"$chmodcmd" != x ]; then $doit $chmodcmd $dsttmp; else true;fi &&
# Now rename the file to the real destination.
$doit $rmcmd -f $dstdir/$dstfile &&
$doit $mvcmd $dsttmp $dstdir/$dstfile
fi &&
exit 0

190
lib/roken/missing Executable file
View File

@@ -0,0 +1,190 @@
#! /bin/sh
# Common stub for a few missing GNU programs while installing.
# Copyright (C) 1996, 1997 Free Software Foundation, Inc.
# Franc,ois Pinard <pinard@iro.umontreal.ca>, 1996.
# 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 2, 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, write to the Free Software
# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
# 02111-1307, USA.
if test $# -eq 0; then
echo 1>&2 "Try \`$0 --help' for more information"
exit 1
fi
case "$1" in
-h|--h|--he|--hel|--help)
echo "\
$0 [OPTION]... PROGRAM [ARGUMENT]...
Handle \`PROGRAM [ARGUMENT]...' for when PROGRAM is missing, or return an
error status if there is no known handling for PROGRAM.
Options:
-h, --help display this help and exit
-v, --version output version information and exit
Supported PROGRAM values:
aclocal touch file \`aclocal.m4'
autoconf touch file \`configure'
autoheader touch file \`config.h.in'
automake touch all \`Makefile.in' files
bison create \`y.tab.[ch]', if possible, from existing .[ch]
flex create \`lex.yy.c', if possible, from existing .c
lex create \`lex.yy.c', if possible, from existing .c
makeinfo touch the output file
yacc create \`y.tab.[ch]', if possible, from existing .[ch]"
;;
-v|--v|--ve|--ver|--vers|--versi|--versio|--version)
echo "missing - GNU libit 0.0"
;;
-*)
echo 1>&2 "$0: Unknown \`$1' option"
echo 1>&2 "Try \`$0 --help' for more information"
exit 1
;;
aclocal)
echo 1>&2 "\
WARNING: \`$1' is missing on your system. You should only need it if
you modified \`acinclude.m4' or \`configure.in'. You might want
to install the \`Automake' and \`Perl' packages. Grab them from
any GNU archive site."
touch aclocal.m4
;;
autoconf)
echo 1>&2 "\
WARNING: \`$1' is missing on your system. You should only need it if
you modified \`configure.in'. You might want to install the
\`Autoconf' and \`GNU m4' packages. Grab them from any GNU
archive site."
touch configure
;;
autoheader)
echo 1>&2 "\
WARNING: \`$1' is missing on your system. You should only need it if
you modified \`acconfig.h' or \`configure.in'. You might want
to install the \`Autoconf' and \`GNU m4' packages. Grab them
from any GNU archive site."
files=`sed -n 's/^[ ]*A[CM]_CONFIG_HEADER(\([^)]*\)).*/\1/p' configure.in`
test -z "$files" && files="config.h"
touch_files=
for f in $files; do
case "$f" in
*:*) touch_files="$touch_files "`echo "$f" |
sed -e 's/^[^:]*://' -e 's/:.*//'`;;
*) touch_files="$touch_files $f.in";;
esac
done
touch $touch_files
;;
automake)
echo 1>&2 "\
WARNING: \`$1' is missing on your system. You should only need it if
you modified \`Makefile.am', \`acinclude.m4' or \`configure.in'.
You might want to install the \`Automake' and \`Perl' packages.
Grab them from any GNU archive site."
find . -type f -name Makefile.am -print |
sed 's/\.am$/.in/' |
while read f; do touch "$f"; done
;;
bison|yacc)
echo 1>&2 "\
WARNING: \`$1' is missing on your system. You should only need it if
you modified a \`.y' file. You may need the \`Bison' package
in order for those modifications to take effect. You can get
\`Bison' from any GNU archive site."
rm -f y.tab.c y.tab.h
if [ $# -ne 1 ]; then
eval LASTARG="\${$#}"
case "$LASTARG" in
*.y)
SRCFILE=`echo "$LASTARG" | sed 's/y$/c/'`
if [ -f "$SRCFILE" ]; then
cp "$SRCFILE" y.tab.c
fi
SRCFILE=`echo "$LASTARG" | sed 's/y$/h/'`
if [ -f "$SRCFILE" ]; then
cp "$SRCFILE" y.tab.h
fi
;;
esac
fi
if [ ! -f y.tab.h ]; then
echo >y.tab.h
fi
if [ ! -f y.tab.c ]; then
echo 'main() { return 0; }' >y.tab.c
fi
;;
lex|flex)
echo 1>&2 "\
WARNING: \`$1' is missing on your system. You should only need it if
you modified a \`.l' file. You may need the \`Flex' package
in order for those modifications to take effect. You can get
\`Flex' from any GNU archive site."
rm -f lex.yy.c
if [ $# -ne 1 ]; then
eval LASTARG="\${$#}"
case "$LASTARG" in
*.l)
SRCFILE=`echo "$LASTARG" | sed 's/l$/c/'`
if [ -f "$SRCFILE" ]; then
cp "$SRCFILE" lex.yy.c
fi
;;
esac
fi
if [ ! -f lex.yy.c ]; then
echo 'main() { return 0; }' >lex.yy.c
fi
;;
makeinfo)
echo 1>&2 "\
WARNING: \`$1' is missing on your system. You should only need it if
you modified a \`.texi' or \`.texinfo' file, or any other file
indirectly affecting the aspect of the manual. The spurious
call might also be the consequence of using a buggy \`make' (AIX,
DU, IRIX). You might want to install the \`Texinfo' package or
the \`GNU make' package. Grab either from any GNU archive site."
file=`echo "$*" | sed -n 's/.*-o \([^ ]*\).*/\1/p'`
if test -z "$file"; then
file=`echo "$*" | sed 's/.* \([^ ]*\) *$/\1/'`
file=`sed -n '/^@setfilename/ { s/.* \([^ ]*\) *$/\1/; p; q; }' $file`
fi
touch $file
;;
*)
echo 1>&2 "\
WARNING: \`$1' is needed, and you do not seem to have it handy on your
system. You might have modified some files without having the
proper tools for further handling them. Check the \`README' file,
it often tells you about the needed prerequirements for installing
this package. You may also peek at any GNU archive site, in case
some other package would contain this missing \`$1' program."
exit 1
;;
esac
exit 0

40
lib/roken/mkinstalldirs Executable file
View File

@@ -0,0 +1,40 @@
#! /bin/sh
# mkinstalldirs --- make directory hierarchy
# Author: Noah Friedman <friedman@prep.ai.mit.edu>
# Created: 1993-05-16
# Public domain
# $Id$
errstatus=0
for file
do
set fnord `echo ":$file" | sed -ne 's/^:\//#/;s/^://;s/\// /g;s/^#/\//;p'`
shift
pathcomp=
for d
do
pathcomp="$pathcomp$d"
case "$pathcomp" in
-* ) pathcomp=./$pathcomp ;;
esac
if test ! -d "$pathcomp"; then
echo "mkdir $pathcomp"
mkdir "$pathcomp" || lasterr=$?
if test ! -d "$pathcomp"; then
errstatus=$lasterr
fi
fi
pathcomp="$pathcomp/"
done
done
exit $errstatus
# mkinstalldirs ends here

View File

@@ -1,3 +1,5 @@
# $Id$
BEGIN {
print "#include <stdio.h>"
print "#ifdef HAVE_CONFIG_H"
@@ -13,6 +15,8 @@ BEGIN {
print "puts(\"\");"
}
END {
print "puts(\"#define ROKEN_VERSION \" VERSION );"
print "puts(\"\");"
print "puts(\"#endif /* __ROKEN_H__ */\");"
print "exit(0);"
print "}"

View File

@@ -1,17 +0,0 @@
LIBRARY roken BASE=0x68f0000
EXPORTS
gettimeofday
strcasecmp
strtok_r
snprintf
asprintf
vsnprintf
base64_decode
base64_encode
roken_concat
roken_vconcat
roken_vmconcat
roken_mconcat
getuid
dns_free_data
dns_lookup

View File

@@ -1,156 +0,0 @@
# Microsoft Developer Studio Project File - Name="roken" - Package Owner=<4>
# Microsoft Developer Studio Generated Build File, Format Version 5.00
# ** DO NOT EDIT **
# TARGTYPE "Win32 (x86) Dynamic-Link Library" 0x0102
CFG=roken - Win32 Release
!MESSAGE This is not a valid makefile. To build this project using NMAKE,
!MESSAGE use the Export Makefile command and run
!MESSAGE
!MESSAGE NMAKE /f "roken.mak".
!MESSAGE
!MESSAGE You can specify a configuration when running NMAKE
!MESSAGE by defining the macro CFG on the command line. For example:
!MESSAGE
!MESSAGE NMAKE /f "roken.mak" CFG="roken - Win32 Release"
!MESSAGE
!MESSAGE Possible choices for configuration are:
!MESSAGE
!MESSAGE "roken - Win32 Release" (based on "Win32 (x86) Dynamic-Link Library")
!MESSAGE "roken - Win32 Debug" (based on "Win32 (x86) Dynamic-Link Library")
!MESSAGE
# Begin Project
# PROP Scc_ProjName ""
# PROP Scc_LocalPath ""
CPP=cl.exe
MTL=midl.exe
RSC=rc.exe
!IF "$(CFG)" == "roken - Win32 Release"
# PROP BASE Use_MFC 0
# PROP BASE Use_Debug_Libraries 0
# PROP BASE Output_Dir ".\Release"
# PROP BASE Intermediate_Dir ".\Release"
# PROP BASE Target_Dir ""
# PROP Use_MFC 0
# PROP Use_Debug_Libraries 0
# PROP Output_Dir ".\Release"
# PROP Intermediate_Dir ".\Release"
# PROP Ignore_Export_Lib 0
# PROP Target_Dir ""
# ADD BASE CPP /nologo /MT /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_WINDOWS" /YX /c
# ADD CPP /nologo /MT /GX /O2 /I "..\krb" /I "..\des" /I "..\..\include" /I "..\..\include\win32" /I "." /D "NDEBUG" /D "WIN32" /D "_WINDOWS" /D "HAVE_CONFIG_H" /YX /FD /c
# ADD BASE MTL /nologo /D "NDEBUG" /win32
# ADD MTL /nologo /D "NDEBUG" /mktyplib203 /win32
# ADD BASE RSC /l 0x409 /d "NDEBUG"
# ADD RSC /l 0x409 /d "NDEBUG"
BSC32=bscmake.exe
# ADD BASE BSC32 /nologo
# ADD BSC32 /nologo
LINK32=link.exe
# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:windows /dll /machine:I386
# ADD LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib /nologo /base:"0x68e7780" /subsystem:windows /dll /machine:I386
!ELSEIF "$(CFG)" == "roken - Win32 Debug"
# PROP BASE Use_MFC 0
# PROP BASE Use_Debug_Libraries 1
# PROP BASE Output_Dir ".\Debug"
# PROP BASE Intermediate_Dir ".\Debug"
# PROP BASE Target_Dir ""
# PROP Use_MFC 0
# PROP Use_Debug_Libraries 1
# PROP Output_Dir ".\Debug"
# PROP Intermediate_Dir ".\Debug"
# PROP Ignore_Export_Lib 0
# PROP Target_Dir ""
# ADD BASE CPP /nologo /MTd /W3 /Gm /GX /Zi /Od /D "WIN32" /D "_DEBUG" /D "_WINDOWS" /YX /c
# ADD CPP /nologo /MDd /Gm /GX /Zi /Od /I "..\krb" /I "..\des" /I "..\..\include" /I "..\..\include\win32" /I "." /D "_DEBUG" /D "WIN32" /D "_WINDOWS" /D "HAVE_CONFIG_H" /YX /FD /c
# ADD BASE MTL /nologo /D "_DEBUG" /win32
# ADD MTL /nologo /D "_DEBUG" /mktyplib203 /win32
# ADD BASE RSC /l 0x409 /d "_DEBUG"
# ADD RSC /l 0x409 /d "_DEBUG"
BSC32=bscmake.exe
# ADD BASE BSC32 /nologo
# ADD BSC32 /nologo
LINK32=link.exe
# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:windows /dll /debug /machine:I386
# ADD LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib /nologo /subsystem:windows /dll /debug /machine:I386 /def:".\roken.def"
# SUBTRACT LINK32 /pdb:none
!ENDIF
# Begin Target
# Name "roken - Win32 Release"
# Name "roken - Win32 Debug"
# Begin Group "Source Files"
# PROP Default_Filter "cpp;c;cxx;rc;def;r;odl;hpj;bat;for;f90"
# Begin Source File
SOURCE=.\base64.c
# End Source File
# Begin Source File
SOURCE=.\concat.c
# End Source File
# Begin Source File
SOURCE=.\gettimeofday.c
# End Source File
# Begin Source File
SOURCE=.\getuid.c
# End Source File
# Begin Source File
SOURCE=.\resolve.c
# End Source File
# Begin Source File
SOURCE=.\roken.def
!IF "$(CFG)" == "roken - Win32 Release"
!ELSEIF "$(CFG)" == "roken - Win32 Debug"
# PROP Exclude_From_Build 1
!ENDIF
# End Source File
# Begin Source File
SOURCE=.\snprintf.c
# End Source File
# Begin Source File
SOURCE=.\strcasecmp.c
# End Source File
# Begin Source File
SOURCE=.\strtok_r.c
# End Source File
# End Group
# Begin Group "Header Files"
# PROP Default_Filter "h;hpp;hxx;hm;inl;fi;fd"
# Begin Source File
SOURCE=.\resolve.h
# End Source File
# End Group
# Begin Group "Resource Files"
# PROP Default_Filter "ico;cur;bmp;dlg;rc2;rct;bin;cnt;rtf;gif;jpg;jpeg;jpe"
# Begin Source File
SOURCE=.\roken.rc
# End Source File
# End Group
# End Target
# End Project

View File

@@ -1,316 +0,0 @@
# Microsoft Developer Studio Generated NMAKE File, Based on roken.dsp
!IF "$(CFG)" == ""
CFG=roken - Win32 Release
!MESSAGE No configuration specified. Defaulting to roken - Win32 Release.
!ENDIF
!IF "$(CFG)" != "roken - Win32 Release" && "$(CFG)" != "roken - Win32 Debug"
!MESSAGE Invalid configuration "$(CFG)" specified.
!MESSAGE You can specify a configuration when running NMAKE
!MESSAGE by defining the macro CFG on the command line. For example:
!MESSAGE
!MESSAGE NMAKE /f "roken.mak" CFG="roken - Win32 Release"
!MESSAGE
!MESSAGE Possible choices for configuration are:
!MESSAGE
!MESSAGE "roken - Win32 Release" (based on "Win32 (x86) Dynamic-Link Library")
!MESSAGE "roken - Win32 Debug" (based on "Win32 (x86) Dynamic-Link Library")
!MESSAGE
!ERROR An invalid configuration is specified.
!ENDIF
!IF "$(OS)" == "Windows_NT"
NULL=
!ELSE
NULL=nul
!ENDIF
CPP=cl.exe
MTL=midl.exe
RSC=rc.exe
!IF "$(CFG)" == "roken - Win32 Release"
OUTDIR=.\Release
INTDIR=.\Release
# Begin Custom Macros
OutDir=.\.\Release
# End Custom Macros
!IF "$(RECURSE)" == "0"
ALL : "$(OUTDIR)\roken.dll"
!ELSE
ALL : "$(OUTDIR)\roken.dll"
!ENDIF
CLEAN :
-@erase "$(INTDIR)\base64.obj"
-@erase "$(INTDIR)\concat.obj"
-@erase "$(INTDIR)\gettimeofday.obj"
-@erase "$(INTDIR)\getuid.obj"
-@erase "$(INTDIR)\resolve.obj"
-@erase "$(INTDIR)\roken.res"
-@erase "$(INTDIR)\snprintf.obj"
-@erase "$(INTDIR)\strcasecmp.obj"
-@erase "$(INTDIR)\strtok_r.obj"
-@erase "$(INTDIR)\vc50.idb"
-@erase "$(OUTDIR)\roken.dll"
-@erase "$(OUTDIR)\roken.exp"
-@erase "$(OUTDIR)\roken.lib"
"$(OUTDIR)" :
if not exist "$(OUTDIR)/$(NULL)" mkdir "$(OUTDIR)"
CPP_PROJ=/nologo /MT /GX /O2 /I "..\krb" /I "..\des" /I "..\..\include" /I\
"..\..\include\win32" /I "." /D "NDEBUG" /D "WIN32" /D "_WINDOWS" /D\
"HAVE_CONFIG_H" /Fp"$(INTDIR)\roken.pch" /YX /Fo"$(INTDIR)\\" /Fd"$(INTDIR)\\"\
/FD /c
CPP_OBJS=.\Release/
CPP_SBRS=.
MTL_PROJ=/nologo /D "NDEBUG" /mktyplib203 /win32
RSC_PROJ=/l 0x409 /fo"$(INTDIR)\roken.res" /d "NDEBUG"
BSC32=bscmake.exe
BSC32_FLAGS=/nologo /o"$(OUTDIR)\roken.bsc"
BSC32_SBRS= \
LINK32=link.exe
LINK32_FLAGS=kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib\
advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib /nologo\
/base:"0x68e7780" /subsystem:windows /dll /incremental:no\
/pdb:"$(OUTDIR)\roken.pdb" /machine:I386 /def:".\roken.def"\
/out:"$(OUTDIR)\roken.dll" /implib:"$(OUTDIR)\roken.lib"
DEF_FILE= \
".\roken.def"
LINK32_OBJS= \
"$(INTDIR)\base64.obj" \
"$(INTDIR)\concat.obj" \
"$(INTDIR)\gettimeofday.obj" \
"$(INTDIR)\getuid.obj" \
"$(INTDIR)\resolve.obj" \
"$(INTDIR)\roken.res" \
"$(INTDIR)\snprintf.obj" \
"$(INTDIR)\strcasecmp.obj" \
"$(INTDIR)\strtok_r.obj"
"$(OUTDIR)\roken.dll" : "$(OUTDIR)" $(DEF_FILE) $(LINK32_OBJS)
$(LINK32) @<<
$(LINK32_FLAGS) $(LINK32_OBJS)
<<
!ELSEIF "$(CFG)" == "roken - Win32 Debug"
OUTDIR=.\Debug
INTDIR=.\Debug
# Begin Custom Macros
OutDir=.\.\Debug
# End Custom Macros
!IF "$(RECURSE)" == "0"
ALL : "$(OUTDIR)\roken.dll"
!ELSE
ALL : "$(OUTDIR)\roken.dll"
!ENDIF
CLEAN :
-@erase "$(INTDIR)\base64.obj"
-@erase "$(INTDIR)\concat.obj"
-@erase "$(INTDIR)\gettimeofday.obj"
-@erase "$(INTDIR)\getuid.obj"
-@erase "$(INTDIR)\resolve.obj"
-@erase "$(INTDIR)\roken.res"
-@erase "$(INTDIR)\snprintf.obj"
-@erase "$(INTDIR)\strcasecmp.obj"
-@erase "$(INTDIR)\strtok_r.obj"
-@erase "$(INTDIR)\vc50.idb"
-@erase "$(INTDIR)\vc50.pdb"
-@erase "$(OUTDIR)\roken.dll"
-@erase "$(OUTDIR)\roken.exp"
-@erase "$(OUTDIR)\roken.ilk"
-@erase "$(OUTDIR)\roken.lib"
-@erase "$(OUTDIR)\roken.pdb"
"$(OUTDIR)" :
if not exist "$(OUTDIR)/$(NULL)" mkdir "$(OUTDIR)"
CPP_PROJ=/nologo /MDd /Gm /GX /Zi /Od /I "..\krb" /I "..\des" /I\
"..\..\include" /I "..\..\include\win32" /I "." /D "_DEBUG" /D "WIN32" /D\
"_WINDOWS" /D "HAVE_CONFIG_H" /Fp"$(INTDIR)\roken.pch" /YX /Fo"$(INTDIR)\\"\
/Fd"$(INTDIR)\\" /FD /c
CPP_OBJS=.\Debug/
CPP_SBRS=.
MTL_PROJ=/nologo /D "_DEBUG" /mktyplib203 /win32
RSC_PROJ=/l 0x409 /fo"$(INTDIR)\roken.res" /d "_DEBUG"
BSC32=bscmake.exe
BSC32_FLAGS=/nologo /o"$(OUTDIR)\roken.bsc"
BSC32_SBRS= \
LINK32=link.exe
LINK32_FLAGS=kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib\
advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib /nologo\
/subsystem:windows /dll /incremental:yes /pdb:"$(OUTDIR)\roken.pdb" /debug\
/machine:I386 /def:".\roken.def" /out:"$(OUTDIR)\roken.dll"\
/implib:"$(OUTDIR)\roken.lib"
LINK32_OBJS= \
"$(INTDIR)\base64.obj" \
"$(INTDIR)\concat.obj" \
"$(INTDIR)\gettimeofday.obj" \
"$(INTDIR)\getuid.obj" \
"$(INTDIR)\resolve.obj" \
"$(INTDIR)\roken.res" \
"$(INTDIR)\snprintf.obj" \
"$(INTDIR)\strcasecmp.obj" \
"$(INTDIR)\strtok_r.obj"
"$(OUTDIR)\roken.dll" : "$(OUTDIR)" $(DEF_FILE) $(LINK32_OBJS)
$(LINK32) @<<
$(LINK32_FLAGS) $(LINK32_OBJS)
<<
!ENDIF
.c{$(CPP_OBJS)}.obj::
$(CPP) @<<
$(CPP_PROJ) $<
<<
.cpp{$(CPP_OBJS)}.obj::
$(CPP) @<<
$(CPP_PROJ) $<
<<
.cxx{$(CPP_OBJS)}.obj::
$(CPP) @<<
$(CPP_PROJ) $<
<<
.c{$(CPP_SBRS)}.sbr::
$(CPP) @<<
$(CPP_PROJ) $<
<<
.cpp{$(CPP_SBRS)}.sbr::
$(CPP) @<<
$(CPP_PROJ) $<
<<
.cxx{$(CPP_SBRS)}.sbr::
$(CPP) @<<
$(CPP_PROJ) $<
<<
!IF "$(CFG)" == "roken - Win32 Release" || "$(CFG)" == "roken - Win32 Debug"
SOURCE=.\base64.c
DEP_CPP_BASE6=\
"..\..\include\win32\config.h"\
".\base64.h"\
"$(INTDIR)\base64.obj" : $(SOURCE) $(DEP_CPP_BASE6) "$(INTDIR)"
SOURCE=.\concat.c
DEP_CPP_CONCA=\
"..\..\include\win32\config.h"\
"..\..\include\win32\roken.h"\
".\err.h"\
".\roken-common.h"\
{$(INCLUDE)}"sys\stat.h"\
{$(INCLUDE)}"sys\types.h"\
"$(INTDIR)\concat.obj" : $(SOURCE) $(DEP_CPP_CONCA) "$(INTDIR)"
SOURCE=.\gettimeofday.c
DEP_CPP_GETTI=\
"..\..\include\win32\config.h"\
"..\..\include\win32\roken.h"\
".\err.h"\
".\roken-common.h"\
{$(INCLUDE)}"sys\stat.h"\
{$(INCLUDE)}"sys\types.h"\
"$(INTDIR)\gettimeofday.obj" : $(SOURCE) $(DEP_CPP_GETTI) "$(INTDIR)"
SOURCE=.\getuid.c
DEP_CPP_GETUI=\
"..\..\include\win32\config.h"\
"..\..\include\win32\roken.h"\
".\err.h"\
".\roken-common.h"\
{$(INCLUDE)}"sys\stat.h"\
{$(INCLUDE)}"sys\types.h"\
"$(INTDIR)\getuid.obj" : $(SOURCE) $(DEP_CPP_GETUI) "$(INTDIR)"
SOURCE=.\resolve.c
DEP_CPP_RESOL=\
"..\..\include\win32\config.h"\
"..\..\include\win32\roken.h"\
".\err.h"\
".\resolve.h"\
".\roken-common.h"\
{$(INCLUDE)}"sys\stat.h"\
{$(INCLUDE)}"sys\types.h"\
"$(INTDIR)\resolve.obj" : $(SOURCE) $(DEP_CPP_RESOL) "$(INTDIR)"
SOURCE=.\snprintf.c
DEP_CPP_SNPRI=\
"..\..\include\win32\config.h"\
"..\..\include\win32\roken.h"\
".\err.h"\
".\roken-common.h"\
{$(INCLUDE)}"sys\stat.h"\
{$(INCLUDE)}"sys\types.h"\
"$(INTDIR)\snprintf.obj" : $(SOURCE) $(DEP_CPP_SNPRI) "$(INTDIR)"
SOURCE=.\strcasecmp.c
DEP_CPP_STRCA=\
"..\..\include\win32\config.h"\
{$(INCLUDE)}"sys\types.h"\
"$(INTDIR)\strcasecmp.obj" : $(SOURCE) $(DEP_CPP_STRCA) "$(INTDIR)"
SOURCE=.\strtok_r.c
DEP_CPP_STRTO=\
"..\..\include\win32\config.h"\
"..\..\include\win32\roken.h"\
".\err.h"\
".\roken-common.h"\
{$(INCLUDE)}"sys\stat.h"\
{$(INCLUDE)}"sys\types.h"\
"$(INTDIR)\strtok_r.obj" : $(SOURCE) $(DEP_CPP_STRTO) "$(INTDIR)"
SOURCE=.\roken.rc
"$(INTDIR)\roken.res" : $(SOURCE) "$(INTDIR)"
$(RSC) $(RSC_PROJ) $(SOURCE)
!ENDIF

View File

@@ -1,105 +0,0 @@
//Microsoft Developer Studio generated resource script.
//
#include "resource.h"
#define APSTUDIO_READONLY_SYMBOLS
/////////////////////////////////////////////////////////////////////////////
//
// Generated from the TEXTINCLUDE 2 resource.
//
#include "afxres.h"
/////////////////////////////////////////////////////////////////////////////
#undef APSTUDIO_READONLY_SYMBOLS
/////////////////////////////////////////////////////////////////////////////
// Swedish resources
#if !defined(AFX_RESOURCE_DLL) || defined(AFX_TARG_SVE)
#ifdef _WIN32
LANGUAGE LANG_SWEDISH, SUBLANG_DEFAULT
#pragma code_page(1252)
#endif //_WIN32
#ifdef APSTUDIO_INVOKED
/////////////////////////////////////////////////////////////////////////////
//
// TEXTINCLUDE
//
1 TEXTINCLUDE DISCARDABLE
BEGIN
"resource.h\0"
END
2 TEXTINCLUDE DISCARDABLE
BEGIN
"#include ""afxres.h""\r\n"
"\0"
END
3 TEXTINCLUDE DISCARDABLE
BEGIN
"\r\n"
"\0"
END
#endif // APSTUDIO_INVOKED
#ifndef _MAC
/////////////////////////////////////////////////////////////////////////////
//
// Version
//
VS_VERSION_INFO VERSIONINFO
FILEVERSION 1,0,0,1
PRODUCTVERSION 1,0,0,1
FILEFLAGSMASK 0x3fL
#ifdef _DEBUG
FILEFLAGS 0x1L
#else
FILEFLAGS 0x0L
#endif
FILEOS 0x40004L
FILETYPE 0x2L
FILESUBTYPE 0x0L
BEGIN
BLOCK "StringFileInfo"
BEGIN
BLOCK "040904b0"
BEGIN
VALUE "CompanyName", "Royal Institute of Technology (KTH)\0"
VALUE "FileDescription", "roken\0"
VALUE "FileVersion", "4, 0, 9, 9\0"
VALUE "InternalName", "roken\0"
VALUE "LegalCopyright", "Copyright <20> 1996 - 1998 Royal Institute of Technology (KTH)\0"
VALUE "OriginalFilename", "roken.dll\0"
VALUE "ProductName", "KTH Kerberos\0"
VALUE "ProductVersion", "4,0,9,9\0"
END
END
BLOCK "VarFileInfo"
BEGIN
VALUE "Translation", 0x409, 1200
END
END
#endif // !_MAC
#endif // Swedish resources
/////////////////////////////////////////////////////////////////////////////
#ifndef APSTUDIO_INVOKED
/////////////////////////////////////////////////////////////////////////////
//
// Generated from the TEXTINCLUDE 3 resource.
//
/////////////////////////////////////////////////////////////////////////////
#endif // not APSTUDIO_INVOKED

View File

@@ -43,11 +43,11 @@ RCSID("$Id$");
#include <roken.h>
enum format_flags {
minus_flag = 1,
plus_flag = 2,
space_flag = 4,
alternate_flag = 8,
zero_flag = 16
minus_flag = 0x01,
plus_flag = 0x02,
space_flag = 0x04,
alternate_flag = 0x08,
zero_flag = 0x10
};
/*
@@ -118,13 +118,20 @@ as_append_char (struct state *state, unsigned char c)
}
}
#ifdef HAVE_LONG_LONG
typedef unsigned long long ulong_type;
#else
typedef unsigned long ulong_type;
#endif
static int
append_number(struct state *state,
unsigned long num, unsigned base, char *rep,
ulong_type num, unsigned base, char *rep,
int width, int prec, int flags, int minusp)
{
int len = 0;
int i;
ulong_type orig_num = num;
/* given precision, ignore zero flag */
if(prec != -1)
@@ -148,7 +155,7 @@ append_number(struct state *state,
len++;
}
/* add length of alternate prefix (added later) to len */
if(flags & alternate_flag && (base == 16 || base == 8))
if(orig_num && (flags & alternate_flag) && (base == 16 || base == 8))
len += base / 8;
/* pad with zeros */
if(flags & zero_flag){
@@ -162,10 +169,11 @@ append_number(struct state *state,
}
}
/* add alternate prefix */
if(flags & alternate_flag && (base == 16 || base == 8)){
if(base == 16)
if(orig_num && (flags & alternate_flag) && (base == 16 || base == 8)){
if(base == 16) {
if((*state->append_char)(state, rep[10] + 23)) /* XXX */
return 1;
}
if((*state->append_char)(state, '0'))
return 1;
}
@@ -207,6 +215,187 @@ append_number(struct state *state,
return 0;
}
#if !defined(NO_SNPRINTF_FLOAT) && 0
#include <math.h>
/*
* alternate -> always decimal point
* [Gg] -> don't remove trailing zeros
* zero/negative/space/plus
*/
static int
append_double (struct state *state, double num, int c,
int width, int prec, int flags)
{
int i;
int len = 0;
int n;
int sign = 1;
double l;
int trail_zero = 1;
int dec_point = 0;
if (num < 0) {
sign = -1;
num = -num;
}
if (prec == -1)
prec = 6;
if (prec == 0 && tolower(c) == 'g')
prec = 1;
if (flags & alternate_flag)
dec_point = 1;
if (tolower(c) == 'g' || tolower(c) == 'e') {
l = log10 (num);
if (tolower (c) == 'g') {
if (l < -4.0 || l >= prec) {
c -= 'G' - 'E';
--prec;
} else {
c = 'f';
n = num / pow (10, (int)l);
do {
--prec;
n /= 10;
} while (n > 0);
}
if (!(flags & alternate_flag))
trail_zero = 0;
/* prec -= log10 (num + 1); */
}
}
if (tolower(c) == 'e') {
int sign_n = 1;
double d;
n = l;
num = ((num * pow (10, n)) + 0.5) / pow (10, n);
l = log10 (num);
n = l;
num /= pow (10, n);
if (num >= 10)
abort ();
if (n < 0) {
n = -n;
sign_n = 1;
}
do {
int digit = (int)(d + 0.5) % 10;
if ((*state->append_char)(state, "012345678"[digit]))
return 1;
++len;
d /= 10;
} while (d > 0);
if (len == 1) {
if ((*state->append_char)(state, '0'))
return 1;
++len;
}
if (sign_n < 0) {
if ((*state->append_char)(state, '-'))
return 1;
} else {
if ((*state->append_char)(state, '+'))
return 1;
}
++len;
if ((*state->append_char)(state, c))
return 1;
++len;
}
if (prec) {
double int_part, frac_part;
frac_part = modf (num, &int_part);
n = frac_part * pow (10, prec) + 0.5;
for (i = 0; i < prec; ++i) {
int digit = n % 10;
if (digit > 0 || trail_zero) {
if ((*state->append_char)(state, "0123456789"[digit]))
return 1;
++len;
trail_zero = 1;
dec_point = 1;
}
n /= 10;
}
n = int_part;
} else
n = num + 0.5;
if (dec_point) {
if ((*state->append_char)(state, '.'))
return 1;
++len;
}
do {
if ((*state->append_char)(state, "0123456789"[n % 10]))
return 1;
++len;
n /= 10;
} while (n > 0);
if (flags & zero_flag) {
width -= len;
if (sign < 0 || (flags & space_flag) || (flags & plus_flag))
width--;
while (width-- > 0) {
if((*state->append_char)(state, '0'))
return 1;
len++;
}
}
if(sign < 0){
if((*state->append_char)(state, '-'))
return 1;
len++;
} else if(flags & plus_flag) {
if((*state->append_char)(state, '+'))
return 1;
len++;
} else if(flags & space_flag) {
if((*state->append_char)(state, ' '))
return 1;
len++;
}
if(flags & minus_flag)
/* swap before padding with spaces */
for(i = 0; i < len / 2; i++){
char c = state->s[-i-1];
state->s[-i-1] = state->s[-len+i];
state->s[-len+i] = c;
}
width -= len;
while(width-- > 0){
if((*state->append_char)(state, ' '))
return 1;
len++;
}
if(!(flags & minus_flag))
/* swap after padding with spaces */
for(i = 0; i < len / 2; i++){
char c = state->s[-i-1];
state->s[-i-1] = state->s[-len+i];
state->s[-len+i] = c;
}
return 0;
}
#endif /* WANT_SNPRINTF_FLOAT */
static int
append_string (struct state *state,
unsigned char *arg,
@@ -261,14 +450,26 @@ append_char(struct state *state,
* This can't be made into a function...
*/
#define PARSE_INT_FORMAT(res, arg, unsig) \
if (long_flag) \
res = (unsig long)va_arg(arg, unsig long); \
else if (short_flag) \
res = (unsig short)va_arg(arg, unsig int); \
else \
#define PARSE_INT_FORMAT_VANILLA(res, arg, unsig) \
if (long_arg == 1) \
res = (unsig long)va_arg(arg, unsig long); \
else if (short_flag) \
res = (unsig short)va_arg(arg, unsig int); \
else \
res = (unsig int)va_arg(arg, unsig int)
#ifdef HAVE_LONG_LONG
#define PARSE_INT_FORMAT(res, arg, unsig) \
if (long_arg == 2) \
res = (unsig long long)va_arg(arg, unsig long long); \
else PARSE_INT_FORMAT_VANILLA(res, arg, unsig)
#else /* !HAVE_LONG_LONG */
#define PARSE_INT_FORMAT(res, arg, unsig) \
PARSE_INT_FORMAT_VANILLA(res, arg, unsig)
#endif /* HAVE_LONG_LONG */
/*
* zyxprintf - return 0 or -1
*/
@@ -284,7 +485,7 @@ xyzprintf (struct state *state, const char *char_format, va_list ap)
int flags = 0;
int width = 0;
int prec = -1;
int long_flag = 0;
int long_arg = 0;
int short_flag = 0;
/* flags */
@@ -341,7 +542,7 @@ xyzprintf (struct state *state, const char *char_format, va_list ap)
short_flag = 1;
c = *format++;
} else if (c == 'l') {
long_flag = 1;
++long_arg;
c = *format++;
}
@@ -425,6 +626,17 @@ xyzprintf (struct state *state, const char *char_format, va_list ap)
return -1;
break;
}
#if !defined(NO_SNPRINTF_FLOAT) && 0
case 'e' :
case 'E' :
case 'f' :
case 'g' :
case 'G' :
if (append_double (state, va_arg(ap, double), c,
width, prec, flags))
return -1;
break;
#endif
case 'n' : {
int *arg = va_arg(ap, int*);
*arg = state->s - state->str;

View File

@@ -1,5 +1,5 @@
/*
* Copyright (c) 1999 Kungliga Tekniska H<>gskolan
* Copyright (c) 1999 - 2000 Kungliga Tekniska H<>gskolan
* (Royal Institute of Technology, Stockholm, Sweden).
* All rights reserved.
*
@@ -246,9 +246,9 @@ socket_set_port (struct sockaddr *sa, int port)
void
socket_set_debug (int sock)
{
#if defined(SO_DEBUG) && defined(HAVE_SETSOCKOPT)
int on = 1;
#if defined(SO_DEBUG) && defined(HAVE_SETSOCKOPT)
if (setsockopt (sock, SOL_SOCKET, SO_DEBUG, (void *) &on, sizeof (on)) < 0)
warn ("setsockopt SO_DEBUG (ignored)");
#endif

View File

@@ -1,5 +1,5 @@
/*
* Copyright (c) 1999 Kungliga Tekniska H<>gskolan
* Copyright (c) 1999 - 2000 Kungliga Tekniska H<>gskolan
* (Royal Institute of Technology, Stockholm, Sweden).
* All rights reserved.
*