mirror of
https://github.com/freebsd/freebsd-src.git
synced 2024-11-29 02:22:43 +00:00
Double pointy hat award. Import this into the right area.
This commit is contained in:
commit
847a74626b
Notes:
svn2git
2020-12-20 02:59:44 +00:00
svn path=/vendor/com_err/dist/; revision=50764 svn path=/vendor/com_err/0.1/; revision=50766; tag=vendor/com_err/0.1
106
contrib/com_err/ChangeLog
Normal file
106
contrib/com_err/ChangeLog
Normal file
@ -0,0 +1,106 @@
|
||||
1999-07-03 Assar Westerlund <assar@sics.se>
|
||||
|
||||
* parse.y (statement): use asprintf
|
||||
|
||||
1999-06-13 Assar Westerlund <assar@sics.se>
|
||||
|
||||
* Makefile.in: make it solaris make vpath-safe
|
||||
|
||||
Thu Apr 1 11:13:53 1999 Johan Danielsson <joda@hella.pdc.kth.se>
|
||||
|
||||
* compile_et.c: use getargs
|
||||
|
||||
Sat Mar 20 00:16:30 1999 Assar Westerlund <assar@sics.se>
|
||||
|
||||
* compile_et.c: static-ize
|
||||
|
||||
Thu Mar 18 11:22:13 1999 Johan Danielsson <joda@hella.pdc.kth.se>
|
||||
|
||||
* Makefile.am: include Makefile.am.common
|
||||
|
||||
Tue Mar 16 22:30:05 1999 Assar Westerlund <assar@sics.se>
|
||||
|
||||
* parse.y: use YYACCEPT instead of return
|
||||
|
||||
Sat Mar 13 22:22:56 1999 Assar Westerlund <assar@sics.se>
|
||||
|
||||
* compile_et.c (generate_h): cast when calling is* to get rid of a
|
||||
warning
|
||||
|
||||
Thu Mar 11 15:00:51 1999 Johan Danielsson <joda@hella.pdc.kth.se>
|
||||
|
||||
* parse.y: prototype for error_message
|
||||
|
||||
Sun Nov 22 10:39:02 1998 Assar Westerlund <assar@sics.se>
|
||||
|
||||
* compile_et.h: include ctype and roken
|
||||
|
||||
* compile_et.c: include err.h
|
||||
(generate_h): remove unused variable
|
||||
|
||||
* Makefile.in (WFLAGS): set
|
||||
|
||||
Fri Nov 20 06:58:59 1998 Assar Westerlund <assar@sics.se>
|
||||
|
||||
* lex.l: undef ECHO to work around AIX lex bug
|
||||
|
||||
Sun Sep 27 02:23:59 1998 Johan Danielsson <joda@hella.pdc.kth.se>
|
||||
|
||||
* com_err.c (error_message): try to pass code to strerror, to see
|
||||
if it might be an errno code (this if broken, but some MIT code
|
||||
seems to expect this behaviour)
|
||||
|
||||
Sat Sep 26 17:42:39 1998 Johan Danielsson <joda@hella.pdc.kth.se>
|
||||
|
||||
* compile_et.c: <foo_err.h> -> "foo_err.h"
|
||||
|
||||
Tue Jun 30 17:17:36 1998 Assar Westerlund <assar@sics.se>
|
||||
|
||||
* Makefile.in: add str{cpy,cat}_truncate
|
||||
|
||||
Mon May 25 05:24:39 1998 Assar Westerlund <assar@sics.se>
|
||||
|
||||
* Makefile.in (clean): try to remove shared library debris
|
||||
|
||||
Sun Apr 19 09:50:17 1998 Assar Westerlund <assar@sics.se>
|
||||
|
||||
* Makefile.in: add symlink magic for linux
|
||||
|
||||
Sun Apr 5 09:22:11 1998 Assar Westerlund <assar@sics.se>
|
||||
|
||||
* parse.y: define alloca to malloc in case we're using bison but
|
||||
don't have alloca
|
||||
|
||||
Tue Mar 24 05:13:01 1998 Assar Westerlund <assar@sics.se>
|
||||
|
||||
* Makefile.in: link with snprintf (From Derrick J Brashear
|
||||
<shadow@dementia.org>)
|
||||
|
||||
Fri Feb 27 05:01:42 1998 Assar Westerlund <assar@sics.se>
|
||||
|
||||
* parse.y: initialize ec->next
|
||||
|
||||
Thu Feb 26 02:22:25 1998 Assar Westerlund <assar@sics.se>
|
||||
|
||||
* Makefile.am: @LEXLIB@
|
||||
|
||||
Sat Feb 21 15:18:54 1998 assar westerlund <assar@sics.se>
|
||||
|
||||
* Makefile.in: set YACC and LEX
|
||||
|
||||
Tue Feb 17 22:20:27 1998 Bjoern Groenvall <bg@sics.se>
|
||||
|
||||
* com_right.h: Change typedefs so that one may mix MIT compile_et
|
||||
generated code with krb4 dito.
|
||||
|
||||
Tue Feb 17 16:30:55 1998 Johan Danielsson <joda@emma.pdc.kth.se>
|
||||
|
||||
* compile_et.c (generate): Always return a value.
|
||||
|
||||
* parse.y: Files don't have to end with `end'.
|
||||
|
||||
Mon Feb 16 16:09:20 1998 Johan Danielsson <joda@emma.pdc.kth.se>
|
||||
|
||||
* lex.l (getstring): Replace getc() with input().
|
||||
|
||||
* Makefile.am: Fixes for new compile_et.
|
24
contrib/com_err/Makefile.am
Normal file
24
contrib/com_err/Makefile.am
Normal file
@ -0,0 +1,24 @@
|
||||
# $Id: Makefile.am,v 1.23 1999/04/09 18:26:55 assar Exp $
|
||||
|
||||
include $(top_srcdir)/Makefile.am.common
|
||||
|
||||
YFLAGS = -d
|
||||
|
||||
lib_LTLIBRARIES = libcom_err.la
|
||||
libcom_err_la_LDFLAGS = -version-info 1:0:0
|
||||
|
||||
bin_PROGRAMS = compile_et
|
||||
|
||||
include_HEADERS = com_err.h com_right.h
|
||||
|
||||
compile_et_SOURCES = compile_et.c compile_et.h parse.y lex.l
|
||||
|
||||
libcom_err_la_SOURCES = error.c com_err.c roken_rename.h
|
||||
|
||||
CLEANFILES = lex.c parse.c parse.h
|
||||
|
||||
$(compile_et_OBJECTS): parse.h
|
||||
|
||||
compile_et_LDADD = \
|
||||
$(LIB_roken) \
|
||||
$(LEXLIB)
|
710
contrib/com_err/Makefile.in
Normal file
710
contrib/com_err/Makefile.in
Normal file
@ -0,0 +1,710 @@
|
||||
# Makefile.in generated automatically by automake 1.4 from Makefile.am
|
||||
|
||||
# Copyright (C) 1994, 1995-8, 1999 Free Software Foundation, Inc.
|
||||
# This Makefile.in is free software; the Free Software Foundation
|
||||
# gives unlimited permission to copy and/or distribute it,
|
||||
# with or without modifications, as long as this notice is preserved.
|
||||
|
||||
# This program is distributed in the hope that it will be useful,
|
||||
# but WITHOUT ANY WARRANTY, to the extent permitted by law; without
|
||||
# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
|
||||
# PARTICULAR PURPOSE.
|
||||
|
||||
# $Id: Makefile.am,v 1.23 1999/04/09 18:26:55 assar Exp $
|
||||
|
||||
|
||||
# $Id: Makefile.am.common,v 1.3 1999/04/01 14:58:43 joda Exp $
|
||||
|
||||
|
||||
# $Id: Makefile.am.common,v 1.12 1999/07/28 00:54:29 assar Exp $
|
||||
|
||||
|
||||
SHELL = @SHELL@
|
||||
|
||||
srcdir = @srcdir@
|
||||
top_srcdir = @top_srcdir@
|
||||
VPATH = @srcdir@
|
||||
prefix = @prefix@
|
||||
exec_prefix = @exec_prefix@
|
||||
|
||||
bindir = @bindir@
|
||||
sbindir = @sbindir@
|
||||
libexecdir = @libexecdir@
|
||||
datadir = @datadir@
|
||||
sysconfdir = @sysconfdir@
|
||||
sharedstatedir = @sharedstatedir@
|
||||
localstatedir = @localstatedir@
|
||||
libdir = @libdir@
|
||||
infodir = @infodir@
|
||||
mandir = @mandir@
|
||||
includedir = @includedir@
|
||||
oldincludedir = /usr/include
|
||||
|
||||
DESTDIR =
|
||||
|
||||
pkgdatadir = $(datadir)/@PACKAGE@
|
||||
pkglibdir = $(libdir)/@PACKAGE@
|
||||
pkgincludedir = $(includedir)/@PACKAGE@
|
||||
|
||||
top_builddir = ../..
|
||||
|
||||
ACLOCAL = @ACLOCAL@
|
||||
AUTOCONF = @AUTOCONF@
|
||||
AUTOMAKE = @AUTOMAKE@
|
||||
AUTOHEADER = @AUTOHEADER@
|
||||
|
||||
INSTALL = @INSTALL@
|
||||
INSTALL_PROGRAM = @INSTALL_PROGRAM@ $(AM_INSTALL_PROGRAM_FLAGS)
|
||||
INSTALL_DATA = @INSTALL_DATA@
|
||||
INSTALL_SCRIPT = @INSTALL_SCRIPT@
|
||||
transform = @program_transform_name@
|
||||
|
||||
NORMAL_INSTALL = :
|
||||
PRE_INSTALL = :
|
||||
POST_INSTALL = :
|
||||
NORMAL_UNINSTALL = :
|
||||
PRE_UNINSTALL = :
|
||||
POST_UNINSTALL = :
|
||||
host_alias = @host_alias@
|
||||
host_triplet = @host@
|
||||
AFS_EXTRA_LD = @AFS_EXTRA_LD@
|
||||
AIX_EXTRA_KAFS = @AIX_EXTRA_KAFS@
|
||||
AWK = @AWK@
|
||||
CANONICAL_HOST = @CANONICAL_HOST@
|
||||
CATMAN = @CATMAN@
|
||||
CATMANEXT = @CATMANEXT@
|
||||
CC = @CC@
|
||||
DBLIB = @DBLIB@
|
||||
EXEEXT = @EXEEXT@
|
||||
EXTRA_LIB45 = @EXTRA_LIB45@
|
||||
GROFF = @GROFF@
|
||||
INCLUDE_ = @INCLUDE_@
|
||||
LD = @LD@
|
||||
LEX = @LEX@
|
||||
LIBOBJS = @LIBOBJS@
|
||||
LIBTOOL = @LIBTOOL@
|
||||
LIB_ = @LIB_@
|
||||
LIB_AUTH_SUBDIRS = @LIB_AUTH_SUBDIRS@
|
||||
LIB_kdb = @LIB_kdb@
|
||||
LIB_otp = @LIB_otp@
|
||||
LIB_roken = @LIB_roken@
|
||||
LIB_security = @LIB_security@
|
||||
LN_S = @LN_S@
|
||||
LTLIBOBJS = @LTLIBOBJS@
|
||||
MAKEINFO = @MAKEINFO@
|
||||
MAKE_X_PROGS_BIN_PROGS = @MAKE_X_PROGS_BIN_PROGS@
|
||||
MAKE_X_PROGS_BIN_SCRPTS = @MAKE_X_PROGS_BIN_SCRPTS@
|
||||
MAKE_X_PROGS_LIBEXEC_PROGS = @MAKE_X_PROGS_LIBEXEC_PROGS@
|
||||
NEED_WRITEAUTH_FALSE = @NEED_WRITEAUTH_FALSE@
|
||||
NEED_WRITEAUTH_TRUE = @NEED_WRITEAUTH_TRUE@
|
||||
NM = @NM@
|
||||
NROFF = @NROFF@
|
||||
OBJEXT = @OBJEXT@
|
||||
PACKAGE = @PACKAGE@
|
||||
RANLIB = @RANLIB@
|
||||
VERSION = @VERSION@
|
||||
VOID_RETSIGTYPE = @VOID_RETSIGTYPE@
|
||||
WFLAGS = @WFLAGS@
|
||||
WFLAGS_NOIMPLICITINT = @WFLAGS_NOIMPLICITINT@
|
||||
WFLAGS_NOUNUSED = @WFLAGS_NOUNUSED@
|
||||
YACC = @YACC@
|
||||
|
||||
AUTOMAKE_OPTIONS = foreign no-dependencies
|
||||
|
||||
SUFFIXES = .et .h .1 .3 .5 .8 .cat1 .cat3 .cat5 .cat8 .x
|
||||
|
||||
INCLUDES = -I$(top_builddir)/include
|
||||
|
||||
AM_CFLAGS = $(WFLAGS)
|
||||
|
||||
COMPILE_ET = $(top_builddir)/lib/com_err/compile_et
|
||||
|
||||
buildinclude = $(top_builddir)/include
|
||||
|
||||
LIB_XauReadAuth = @LIB_XauReadAuth@
|
||||
LIB_crypt = @LIB_crypt@
|
||||
LIB_dbm_firstkey = @LIB_dbm_firstkey@
|
||||
LIB_dbopen = @LIB_dbopen@
|
||||
LIB_dlopen = @LIB_dlopen@
|
||||
LIB_dn_expand = @LIB_dn_expand@
|
||||
LIB_el_init = @LIB_el_init@
|
||||
LIB_getattr = @LIB_getattr@
|
||||
LIB_gethostbyname = @LIB_gethostbyname@
|
||||
LIB_getpwent_r = @LIB_getpwent_r@
|
||||
LIB_getpwnam_r = @LIB_getpwnam_r@
|
||||
LIB_getsockopt = @LIB_getsockopt@
|
||||
LIB_logout = @LIB_logout@
|
||||
LIB_logwtmp = @LIB_logwtmp@
|
||||
LIB_odm_initialize = @LIB_odm_initialize@
|
||||
LIB_readline = @LIB_readline@
|
||||
LIB_res_search = @LIB_res_search@
|
||||
LIB_setpcred = @LIB_setpcred@
|
||||
LIB_setsockopt = @LIB_setsockopt@
|
||||
LIB_socket = @LIB_socket@
|
||||
LIB_syslog = @LIB_syslog@
|
||||
LIB_tgetent = @LIB_tgetent@
|
||||
|
||||
HESIODLIB = @HESIODLIB@
|
||||
HESIODINCLUDE = @HESIODINCLUDE@
|
||||
INCLUDE_hesiod = @INCLUDE_hesiod@
|
||||
LIB_hesiod = @LIB_hesiod@
|
||||
|
||||
INCLUDE_krb4 = @INCLUDE_krb4@
|
||||
LIB_krb4 = @LIB_krb4@
|
||||
|
||||
INCLUDE_readline = @INCLUDE_readline@
|
||||
|
||||
LEXLIB = @LEXLIB@
|
||||
|
||||
cat1dir = $(mandir)/cat1
|
||||
cat3dir = $(mandir)/cat3
|
||||
cat5dir = $(mandir)/cat5
|
||||
cat8dir = $(mandir)/cat8
|
||||
|
||||
MANRX = \(.*\)\.\([0-9]\)
|
||||
CATSUFFIX = @CATSUFFIX@
|
||||
|
||||
NROFF_MAN = groff -mandoc -Tascii
|
||||
|
||||
@KRB4_TRUE@LIB_kafs = $(top_builddir)/lib/kafs/libkafs.la $(AIX_EXTRA_KAFS)
|
||||
|
||||
@KRB5_TRUE@LIB_krb5 = $(top_builddir)/lib/krb5/libkrb5.la $(top_builddir)/lib/asn1/libasn1.la
|
||||
@KRB5_TRUE@LIB_gssapi = $(top_builddir)/lib/gssapi/libgssapi.la
|
||||
|
||||
CHECK_LOCAL = $(PROGRAMS)
|
||||
|
||||
YFLAGS = -d
|
||||
|
||||
lib_LTLIBRARIES = libcom_err.la
|
||||
libcom_err_la_LDFLAGS = -version-info 1:0:0
|
||||
|
||||
bin_PROGRAMS = compile_et
|
||||
|
||||
include_HEADERS = com_err.h com_right.h
|
||||
|
||||
compile_et_SOURCES = compile_et.c compile_et.h parse.y lex.l
|
||||
|
||||
libcom_err_la_SOURCES = error.c com_err.c roken_rename.h
|
||||
|
||||
CLEANFILES = lex.c parse.c parse.h
|
||||
|
||||
compile_et_LDADD = $(LIB_roken) $(LEXLIB)
|
||||
|
||||
mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs
|
||||
CONFIG_HEADER = ../../include/config.h
|
||||
CONFIG_CLEAN_FILES =
|
||||
LTLIBRARIES = $(lib_LTLIBRARIES)
|
||||
|
||||
|
||||
DEFS = @DEFS@ -I. -I$(srcdir) -I../../include
|
||||
CPPFLAGS = @CPPFLAGS@
|
||||
LDFLAGS = @LDFLAGS@
|
||||
LIBS = @LIBS@
|
||||
X_CFLAGS = @X_CFLAGS@
|
||||
X_LIBS = @X_LIBS@
|
||||
X_EXTRA_LIBS = @X_EXTRA_LIBS@
|
||||
X_PRE_LIBS = @X_PRE_LIBS@
|
||||
libcom_err_la_LIBADD =
|
||||
libcom_err_la_OBJECTS = error.lo com_err.lo
|
||||
bin_PROGRAMS = compile_et$(EXEEXT)
|
||||
PROGRAMS = $(bin_PROGRAMS)
|
||||
|
||||
compile_et_OBJECTS = compile_et.$(OBJEXT) parse.$(OBJEXT) lex.$(OBJEXT)
|
||||
compile_et_DEPENDENCIES =
|
||||
compile_et_LDFLAGS =
|
||||
LEX_OUTPUT_ROOT = @LEX_OUTPUT_ROOT@
|
||||
CFLAGS = @CFLAGS@
|
||||
COMPILE = $(CC) $(DEFS) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS)
|
||||
LTCOMPILE = $(LIBTOOL) --mode=compile $(CC) $(DEFS) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS)
|
||||
CCLD = $(CC)
|
||||
LINK = $(LIBTOOL) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) $(LDFLAGS) -o $@
|
||||
HEADERS = $(include_HEADERS)
|
||||
|
||||
DIST_COMMON = ChangeLog Makefile.am Makefile.in lex.c parse.c
|
||||
|
||||
|
||||
DISTFILES = $(DIST_COMMON) $(SOURCES) $(HEADERS) $(TEXINFOS) $(EXTRA_DIST)
|
||||
|
||||
TAR = tar
|
||||
GZIP_ENV = --best
|
||||
SOURCES = $(libcom_err_la_SOURCES) $(compile_et_SOURCES)
|
||||
OBJECTS = $(libcom_err_la_OBJECTS) $(compile_et_OBJECTS)
|
||||
|
||||
all: all-redirect
|
||||
.SUFFIXES:
|
||||
.SUFFIXES: .1 .3 .5 .8 .S .c .cat1 .cat3 .cat5 .cat8 .et .h .l .lo .o .obj .s .x .y
|
||||
$(srcdir)/Makefile.in: Makefile.am $(top_srcdir)/configure.in $(ACLOCAL_M4) $(top_srcdir)/Makefile.am.common $(top_srcdir)/cf/Makefile.am.common
|
||||
cd $(top_srcdir) && $(AUTOMAKE) --foreign lib/com_err/Makefile
|
||||
|
||||
Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
|
||||
cd $(top_builddir) \
|
||||
&& CONFIG_FILES=$(subdir)/$@ CONFIG_HEADERS= $(SHELL) ./config.status
|
||||
|
||||
|
||||
mostlyclean-libLTLIBRARIES:
|
||||
|
||||
clean-libLTLIBRARIES:
|
||||
-test -z "$(lib_LTLIBRARIES)" || rm -f $(lib_LTLIBRARIES)
|
||||
|
||||
distclean-libLTLIBRARIES:
|
||||
|
||||
maintainer-clean-libLTLIBRARIES:
|
||||
|
||||
install-libLTLIBRARIES: $(lib_LTLIBRARIES)
|
||||
@$(NORMAL_INSTALL)
|
||||
$(mkinstalldirs) $(DESTDIR)$(libdir)
|
||||
@list='$(lib_LTLIBRARIES)'; for p in $$list; do \
|
||||
if test -f $$p; then \
|
||||
echo "$(LIBTOOL) --mode=install $(INSTALL) $$p $(DESTDIR)$(libdir)/$$p"; \
|
||||
$(LIBTOOL) --mode=install $(INSTALL) $$p $(DESTDIR)$(libdir)/$$p; \
|
||||
else :; fi; \
|
||||
done
|
||||
|
||||
uninstall-libLTLIBRARIES:
|
||||
@$(NORMAL_UNINSTALL)
|
||||
list='$(lib_LTLIBRARIES)'; for p in $$list; do \
|
||||
$(LIBTOOL) --mode=uninstall rm -f $(DESTDIR)$(libdir)/$$p; \
|
||||
done
|
||||
|
||||
.c.o:
|
||||
$(COMPILE) -c $<
|
||||
|
||||
# FIXME: We should only use cygpath when building on Windows,
|
||||
# and only if it is available.
|
||||
.c.obj:
|
||||
$(COMPILE) -c `cygpath -w $<`
|
||||
|
||||
.s.o:
|
||||
$(COMPILE) -c $<
|
||||
|
||||
.S.o:
|
||||
$(COMPILE) -c $<
|
||||
|
||||
mostlyclean-compile:
|
||||
-rm -f *.o core *.core
|
||||
-rm -f *.$(OBJEXT)
|
||||
|
||||
clean-compile:
|
||||
|
||||
distclean-compile:
|
||||
-rm -f *.tab.c
|
||||
|
||||
maintainer-clean-compile:
|
||||
|
||||
.c.lo:
|
||||
$(LIBTOOL) --mode=compile $(COMPILE) -c $<
|
||||
|
||||
.s.lo:
|
||||
$(LIBTOOL) --mode=compile $(COMPILE) -c $<
|
||||
|
||||
.S.lo:
|
||||
$(LIBTOOL) --mode=compile $(COMPILE) -c $<
|
||||
|
||||
mostlyclean-libtool:
|
||||
-rm -f *.lo
|
||||
|
||||
clean-libtool:
|
||||
-rm -rf .libs _libs
|
||||
|
||||
distclean-libtool:
|
||||
|
||||
maintainer-clean-libtool:
|
||||
|
||||
libcom_err.la: $(libcom_err_la_OBJECTS) $(libcom_err_la_DEPENDENCIES)
|
||||
$(LINK) -rpath $(libdir) $(libcom_err_la_LDFLAGS) $(libcom_err_la_OBJECTS) $(libcom_err_la_LIBADD) $(LIBS)
|
||||
|
||||
mostlyclean-binPROGRAMS:
|
||||
|
||||
clean-binPROGRAMS:
|
||||
-test -z "$(bin_PROGRAMS)" || rm -f $(bin_PROGRAMS)
|
||||
|
||||
distclean-binPROGRAMS:
|
||||
|
||||
maintainer-clean-binPROGRAMS:
|
||||
|
||||
install-binPROGRAMS: $(bin_PROGRAMS)
|
||||
@$(NORMAL_INSTALL)
|
||||
$(mkinstalldirs) $(DESTDIR)$(bindir)
|
||||
@list='$(bin_PROGRAMS)'; for p in $$list; do \
|
||||
if test -f $$p; then \
|
||||
echo " $(LIBTOOL) --mode=install $(INSTALL_PROGRAM) $$p $(DESTDIR)$(bindir)/`echo $$p|sed 's/$(EXEEXT)$$//'|sed '$(transform)'|sed 's/$$/$(EXEEXT)/'`"; \
|
||||
$(LIBTOOL) --mode=install $(INSTALL_PROGRAM) $$p $(DESTDIR)$(bindir)/`echo $$p|sed 's/$(EXEEXT)$$//'|sed '$(transform)'|sed 's/$$/$(EXEEXT)/'`; \
|
||||
else :; fi; \
|
||||
done
|
||||
|
||||
uninstall-binPROGRAMS:
|
||||
@$(NORMAL_UNINSTALL)
|
||||
list='$(bin_PROGRAMS)'; for p in $$list; do \
|
||||
rm -f $(DESTDIR)$(bindir)/`echo $$p|sed 's/$(EXEEXT)$$//'|sed '$(transform)'|sed 's/$$/$(EXEEXT)/'`; \
|
||||
done
|
||||
|
||||
compile_et$(EXEEXT): $(compile_et_OBJECTS) $(compile_et_DEPENDENCIES)
|
||||
@rm -f compile_et$(EXEEXT)
|
||||
$(LINK) $(compile_et_LDFLAGS) $(compile_et_OBJECTS) $(compile_et_LDADD) $(LIBS)
|
||||
.l.c:
|
||||
$(LEX) $(AM_LFLAGS) $(LFLAGS) $< && mv $(LEX_OUTPUT_ROOT).c $@
|
||||
.y.c:
|
||||
$(YACC) $(AM_YFLAGS) $(YFLAGS) $< && mv y.tab.c $*.c
|
||||
if test -f y.tab.h; then \
|
||||
if cmp -s y.tab.h $*.h; then rm -f y.tab.h; else mv y.tab.h $*.h; fi; \
|
||||
else :; fi
|
||||
parse.h: parse.c
|
||||
|
||||
|
||||
install-includeHEADERS: $(include_HEADERS)
|
||||
@$(NORMAL_INSTALL)
|
||||
$(mkinstalldirs) $(DESTDIR)$(includedir)
|
||||
@list='$(include_HEADERS)'; for p in $$list; do \
|
||||
if test -f "$$p"; then d= ; else d="$(srcdir)/"; fi; \
|
||||
echo " $(INSTALL_DATA) $$d$$p $(DESTDIR)$(includedir)/$$p"; \
|
||||
$(INSTALL_DATA) $$d$$p $(DESTDIR)$(includedir)/$$p; \
|
||||
done
|
||||
|
||||
uninstall-includeHEADERS:
|
||||
@$(NORMAL_UNINSTALL)
|
||||
list='$(include_HEADERS)'; for p in $$list; do \
|
||||
rm -f $(DESTDIR)$(includedir)/$$p; \
|
||||
done
|
||||
|
||||
tags: TAGS
|
||||
|
||||
ID: $(HEADERS) $(SOURCES) $(LISP)
|
||||
list='$(SOURCES) $(HEADERS)'; \
|
||||
unique=`for i in $$list; do echo $$i; done | \
|
||||
awk ' { files[$$0] = 1; } \
|
||||
END { for (i in files) print i; }'`; \
|
||||
here=`pwd` && cd $(srcdir) \
|
||||
&& mkid -f$$here/ID $$unique $(LISP)
|
||||
|
||||
TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) $(LISP)
|
||||
tags=; \
|
||||
here=`pwd`; \
|
||||
list='$(SOURCES) $(HEADERS)'; \
|
||||
unique=`for i in $$list; do echo $$i; done | \
|
||||
awk ' { files[$$0] = 1; } \
|
||||
END { for (i in files) print i; }'`; \
|
||||
test -z "$(ETAGS_ARGS)$$unique$(LISP)$$tags" \
|
||||
|| (cd $(srcdir) && etags $(ETAGS_ARGS) $$tags $$unique $(LISP) -o $$here/TAGS)
|
||||
|
||||
mostlyclean-tags:
|
||||
|
||||
clean-tags:
|
||||
|
||||
distclean-tags:
|
||||
-rm -f TAGS ID
|
||||
|
||||
maintainer-clean-tags:
|
||||
|
||||
distdir = $(top_builddir)/$(PACKAGE)-$(VERSION)/$(subdir)
|
||||
|
||||
subdir = lib/com_err
|
||||
|
||||
distdir: $(DISTFILES)
|
||||
@for file in $(DISTFILES); do \
|
||||
d=$(srcdir); \
|
||||
if test -d $$d/$$file; then \
|
||||
cp -pr $$/$$file $(distdir)/$$file; \
|
||||
else \
|
||||
test -f $(distdir)/$$file \
|
||||
|| ln $$d/$$file $(distdir)/$$file 2> /dev/null \
|
||||
|| cp -p $$d/$$file $(distdir)/$$file || :; \
|
||||
fi; \
|
||||
done
|
||||
$(MAKE) $(AM_MAKEFLAGS) top_distdir="$(top_distdir)" distdir="$(distdir)" dist-hook
|
||||
info-am:
|
||||
info: info-am
|
||||
dvi-am:
|
||||
dvi: dvi-am
|
||||
check-am: all-am
|
||||
$(MAKE) $(AM_MAKEFLAGS) check-local
|
||||
check: check-am
|
||||
installcheck-am:
|
||||
installcheck: installcheck-am
|
||||
install-exec-am: install-libLTLIBRARIES install-binPROGRAMS
|
||||
@$(NORMAL_INSTALL)
|
||||
$(MAKE) $(AM_MAKEFLAGS) install-exec-hook
|
||||
install-exec: install-exec-am
|
||||
|
||||
install-data-am: install-includeHEADERS install-data-local
|
||||
install-data: install-data-am
|
||||
|
||||
install-am: all-am
|
||||
@$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am
|
||||
install: install-am
|
||||
uninstall-am: uninstall-libLTLIBRARIES uninstall-binPROGRAMS \
|
||||
uninstall-includeHEADERS
|
||||
uninstall: uninstall-am
|
||||
all-am: Makefile $(LTLIBRARIES) $(PROGRAMS) $(HEADERS) all-local
|
||||
all-redirect: all-am
|
||||
install-strip:
|
||||
$(MAKE) $(AM_MAKEFLAGS) AM_INSTALL_PROGRAM_FLAGS=-s install
|
||||
installdirs:
|
||||
$(mkinstalldirs) $(DESTDIR)$(libdir) $(DESTDIR)$(bindir) \
|
||||
$(DESTDIR)$(includedir)
|
||||
|
||||
|
||||
mostlyclean-generic:
|
||||
|
||||
clean-generic:
|
||||
-test -z "$(CLEANFILES)" || rm -f $(CLEANFILES)
|
||||
|
||||
distclean-generic:
|
||||
-rm -f Makefile $(CONFIG_CLEAN_FILES)
|
||||
-rm -f config.cache config.log stamp-h stamp-h[0-9]*
|
||||
|
||||
maintainer-clean-generic:
|
||||
-test -z "lexlparsehparsec" || rm -f lexl parseh parsec
|
||||
mostlyclean-am: mostlyclean-libLTLIBRARIES mostlyclean-compile \
|
||||
mostlyclean-libtool mostlyclean-binPROGRAMS \
|
||||
mostlyclean-tags mostlyclean-generic
|
||||
|
||||
mostlyclean: mostlyclean-am
|
||||
|
||||
clean-am: clean-libLTLIBRARIES clean-compile clean-libtool \
|
||||
clean-binPROGRAMS clean-tags clean-generic \
|
||||
mostlyclean-am
|
||||
|
||||
clean: clean-am
|
||||
|
||||
distclean-am: distclean-libLTLIBRARIES distclean-compile \
|
||||
distclean-libtool distclean-binPROGRAMS distclean-tags \
|
||||
distclean-generic clean-am
|
||||
-rm -f libtool
|
||||
|
||||
distclean: distclean-am
|
||||
|
||||
maintainer-clean-am: maintainer-clean-libLTLIBRARIES \
|
||||
maintainer-clean-compile maintainer-clean-libtool \
|
||||
maintainer-clean-binPROGRAMS maintainer-clean-tags \
|
||||
maintainer-clean-generic distclean-am
|
||||
@echo "This command is intended for maintainers to use;"
|
||||
@echo "it deletes files that may require special tools to rebuild."
|
||||
|
||||
maintainer-clean: maintainer-clean-am
|
||||
|
||||
.PHONY: mostlyclean-libLTLIBRARIES distclean-libLTLIBRARIES \
|
||||
clean-libLTLIBRARIES maintainer-clean-libLTLIBRARIES \
|
||||
uninstall-libLTLIBRARIES install-libLTLIBRARIES mostlyclean-compile \
|
||||
distclean-compile clean-compile maintainer-clean-compile \
|
||||
mostlyclean-libtool distclean-libtool clean-libtool \
|
||||
maintainer-clean-libtool mostlyclean-binPROGRAMS distclean-binPROGRAMS \
|
||||
clean-binPROGRAMS maintainer-clean-binPROGRAMS uninstall-binPROGRAMS \
|
||||
install-binPROGRAMS uninstall-includeHEADERS install-includeHEADERS \
|
||||
tags mostlyclean-tags distclean-tags clean-tags maintainer-clean-tags \
|
||||
distdir info-am info dvi-am dvi check-local check check-am \
|
||||
installcheck-am installcheck install-exec-am install-exec \
|
||||
install-data-local install-data-am install-data install-am install \
|
||||
uninstall-am uninstall all-local all-redirect all-am all installdirs \
|
||||
mostlyclean-generic distclean-generic clean-generic \
|
||||
maintainer-clean-generic clean mostlyclean distclean maintainer-clean
|
||||
|
||||
|
||||
install-suid-programs:
|
||||
@foo='$(bin_SUIDS)'; \
|
||||
for file in $$foo; do \
|
||||
x=$(DESTDIR)$(bindir)/$$file; \
|
||||
if chown 0:0 $$x && chmod u+s $$x; then :; else \
|
||||
chmod 0 $$x; fi; done
|
||||
|
||||
install-exec-hook: install-suid-programs
|
||||
|
||||
install-build-headers:: $(include_HEADERS) $(build_HEADERZ)
|
||||
@foo='$(include_HEADERS) $(build_HEADERZ)'; \
|
||||
for f in $$foo; do \
|
||||
f=`basename $$f`; \
|
||||
if test -f "$(srcdir)/$$f"; then file="$(srcdir)/$$f"; \
|
||||
else file="$$f"; fi; \
|
||||
if cmp -s $$file $(buildinclude)/$$f 2> /dev/null ; then \
|
||||
: ; else \
|
||||
echo " $(INSTALL_DATA) $$file $(buildinclude)/$$f"; \
|
||||
$(INSTALL_DATA) $$file $(buildinclude)/$$f; \
|
||||
fi ; \
|
||||
done
|
||||
|
||||
all-local: install-build-headers
|
||||
#NROFF_MAN = nroff -man
|
||||
.1.cat1:
|
||||
$(NROFF_MAN) $< > $@
|
||||
.3.cat3:
|
||||
$(NROFF_MAN) $< > $@
|
||||
.5.cat5:
|
||||
$(NROFF_MAN) $< > $@
|
||||
.8.cat8:
|
||||
$(NROFF_MAN) $< > $@
|
||||
|
||||
dist-cat1-mans:
|
||||
@foo='$(man1_MANS)'; \
|
||||
bar='$(man_MANS)'; \
|
||||
for i in $$bar; do \
|
||||
case $$i in \
|
||||
*.1) foo="$$foo $$i";; \
|
||||
esac; done ;\
|
||||
for i in $$foo; do \
|
||||
x=`echo $$i | sed 's/\.[^.]*$$/.cat1/'`; \
|
||||
echo "$(NROFF_MAN) $(srcdir)/$$i > $(distdir)/$$x"; \
|
||||
$(NROFF_MAN) $(srcdir)/$$i > $(distdir)/$$x; \
|
||||
done
|
||||
|
||||
dist-cat3-mans:
|
||||
@foo='$(man3_MANS)'; \
|
||||
bar='$(man_MANS)'; \
|
||||
for i in $$bar; do \
|
||||
case $$i in \
|
||||
*.3) foo="$$foo $$i";; \
|
||||
esac; done ;\
|
||||
for i in $$foo; do \
|
||||
x=`echo $$i | sed 's/\.[^.]*$$/.cat3/'`; \
|
||||
echo "$(NROFF_MAN) $(srcdir)/$$i > $(distdir)/$$x"; \
|
||||
$(NROFF_MAN) $(srcdir)/$$i > $(distdir)/$$x; \
|
||||
done
|
||||
|
||||
dist-cat5-mans:
|
||||
@foo='$(man5_MANS)'; \
|
||||
bar='$(man_MANS)'; \
|
||||
for i in $$bar; do \
|
||||
case $$i in \
|
||||
*.5) foo="$$foo $$i";; \
|
||||
esac; done ;\
|
||||
for i in $$foo; do \
|
||||
x=`echo $$i | sed 's/\.[^.]*$$/.cat5/'`; \
|
||||
echo "$(NROFF_MAN) $(srcdir)/$$i > $(distdir)/$$x"; \
|
||||
$(NROFF_MAN) $(srcdir)/$$i > $(distdir)/$$x; \
|
||||
done
|
||||
|
||||
dist-cat8-mans:
|
||||
@foo='$(man8_MANS)'; \
|
||||
bar='$(man_MANS)'; \
|
||||
for i in $$bar; do \
|
||||
case $$i in \
|
||||
*.8) foo="$$foo $$i";; \
|
||||
esac; done ;\
|
||||
for i in $$foo; do \
|
||||
x=`echo $$i | sed 's/\.[^.]*$$/.cat8/'`; \
|
||||
echo "$(NROFF_MAN) $(srcdir)/$$i > $(distdir)/$$x"; \
|
||||
$(NROFF_MAN) $(srcdir)/$$i > $(distdir)/$$x; \
|
||||
done
|
||||
|
||||
dist-hook: dist-cat1-mans dist-cat3-mans dist-cat5-mans dist-cat8-mans
|
||||
|
||||
install-cat1-mans:
|
||||
@ext=1;\
|
||||
foo='$(man1_MANS)'; \
|
||||
bar='$(man_MANS)'; \
|
||||
for i in $$bar; do \
|
||||
case $$i in \
|
||||
*.1) foo="$$foo $$i";; \
|
||||
esac; done; \
|
||||
if test "$$foo"; then \
|
||||
$(mkinstalldirs) $(DESTDIR)$(cat1dir); \
|
||||
for x in $$foo; do \
|
||||
f=`echo $$x | sed 's/\.[^.]*$$/.cat1/'`; \
|
||||
if test -f "$(srcdir)/$$f"; then \
|
||||
b=`echo $$x | sed 's!$(MANRX)!\1!'`; \
|
||||
echo "$(INSTALL_DATA) $(srcdir)/$$f $(DESTDIR)$(cat1dir)/$$b.$(CATSUFFIX)";\
|
||||
$(INSTALL_DATA) $(srcdir)/$$g $(DESTDIR)$(cat1dir)/$$b.$(CATSUFFIX);\
|
||||
fi; \
|
||||
done ;\
|
||||
fi
|
||||
|
||||
install-cat3-mans:
|
||||
@ext=3;\
|
||||
foo='$(man3_MANS)'; \
|
||||
bar='$(man_MANS)'; \
|
||||
for i in $$bar; do \
|
||||
case $$i in \
|
||||
*.3) foo="$$foo $$i";; \
|
||||
esac; done; \
|
||||
if test "$$foo"; then \
|
||||
$(mkinstalldirs) $(DESTDIR)$(cat3dir); \
|
||||
for x in $$foo; do \
|
||||
f=`echo $$x | sed 's/\.[^.]*$$/.cat3/'`; \
|
||||
if test -f "$(srcdir)/$$f"; then \
|
||||
b=`echo $$x | sed 's!$(MANRX)!\1!'`; \
|
||||
echo "$(INSTALL_DATA) $(srcdir)/$$f $(DESTDIR)$(cat3dir)/$$b.$(CATSUFFIX)";\
|
||||
$(INSTALL_DATA) $(srcdir)/$$g $(DESTDIR)$(cat3dir)/$$b.$(CATSUFFIX);\
|
||||
fi; \
|
||||
done ;\
|
||||
fi
|
||||
|
||||
install-cat5-mans:
|
||||
@ext=5;\
|
||||
foo='$(man5_MANS)'; \
|
||||
bar='$(man_MANS)'; \
|
||||
for i in $$bar; do \
|
||||
case $$i in \
|
||||
*.5) foo="$$foo $$i";; \
|
||||
esac; done; \
|
||||
if test "$$foo"; then \
|
||||
$(mkinstalldirs) $(DESTDIR)$(cat5dir); \
|
||||
for x in $$foo; do \
|
||||
f=`echo $$x | sed 's/\.[^.]*$$/.cat5/'`; \
|
||||
if test -f "$(srcdir)/$$f"; then \
|
||||
b=`echo $$x | sed 's!$(MANRX)!\1!'`; \
|
||||
echo "$(INSTALL_DATA) $(srcdir)/$$f $(DESTDIR)$(cat5dir)/$$b.$(CATSUFFIX)";\
|
||||
$(INSTALL_DATA) $(srcdir)/$$g $(DESTDIR)$(cat5dir)/$$b.$(CATSUFFIX);\
|
||||
fi; \
|
||||
done ;\
|
||||
fi
|
||||
|
||||
install-cat8-mans:
|
||||
@ext=8;\
|
||||
foo='$(man8_MANS)'; \
|
||||
bar='$(man_MANS)'; \
|
||||
for i in $$bar; do \
|
||||
case $$i in \
|
||||
*.8) foo="$$foo $$i";; \
|
||||
esac; done; \
|
||||
if test "$$foo"; then \
|
||||
$(mkinstalldirs) $(DESTDIR)$(cat8dir); \
|
||||
for x in $$foo; do \
|
||||
f=`echo $$x | sed 's/\.[^.]*$$/.cat8/'`; \
|
||||
if test -f "$(srcdir)/$$f"; then \
|
||||
b=`echo $$x | sed 's!$(MANRX)!\1!'`; \
|
||||
echo "$(INSTALL_DATA) $(srcdir)/$$f $(DESTDIR)$(cat8dir)/$$b.$(CATSUFFIX)";\
|
||||
$(INSTALL_DATA) $(srcdir)/$$g $(DESTDIR)$(cat8dir)/$$b.$(CATSUFFIX);\
|
||||
fi; \
|
||||
done ;\
|
||||
fi
|
||||
|
||||
install-cat-mans: install-cat1-mans install-cat3-mans install-cat5-mans install-cat8-mans
|
||||
|
||||
install-data-local: install-cat-mans
|
||||
|
||||
.et.h:
|
||||
$(COMPILE_ET) $<
|
||||
.et.c:
|
||||
$(COMPILE_ET) $<
|
||||
|
||||
.x.c:
|
||||
@cmp -s $< $@ 2> /dev/null || cp $< $@
|
||||
|
||||
check-local::
|
||||
@foo='$(CHECK_LOCAL)'; \
|
||||
if test "$$foo"; then \
|
||||
failed=0; all=0; \
|
||||
for i in $$foo; do \
|
||||
all=`expr $$all + 1`; \
|
||||
if ./$$i --version > /dev/null 2>&1; then \
|
||||
echo "PASS: $$i"; \
|
||||
else \
|
||||
echo "FAIL: $$i"; \
|
||||
failed=`expr $$failed + 1`; \
|
||||
fi; \
|
||||
done; \
|
||||
if test "$$failed" -eq 0; then \
|
||||
banner="All $$all tests passed"; \
|
||||
else \
|
||||
banner="$$failed of $$all tests failed"; \
|
||||
fi; \
|
||||
dashes=`echo "$$banner" | sed s/./=/g`; \
|
||||
echo "$$dashes"; \
|
||||
echo "$$banner"; \
|
||||
echo "$$dashes"; \
|
||||
test "$$failed" -eq 0; \
|
||||
fi
|
||||
|
||||
$(compile_et_OBJECTS): parse.h
|
||||
|
||||
# Tell versions [3.59,3.63) of GNU make to not export all variables.
|
||||
# Otherwise a system limit (for SysV at least) may be exceeded.
|
||||
.NOEXPORT:
|
156
contrib/com_err/com_err.c
Normal file
156
contrib/com_err/com_err.c
Normal file
@ -0,0 +1,156 @@
|
||||
/*
|
||||
* Copyright (c) 1997, 1998 Kungliga Tekniska Högskolan
|
||||
* (Royal Institute of Technology, Stockholm, Sweden).
|
||||
* 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. All advertising materials mentioning features or use of this software
|
||||
* must display the following acknowledgement:
|
||||
* This product includes software developed by Kungliga Tekniska
|
||||
* Högskolan and its contributors.
|
||||
*
|
||||
* 4. Neither the name of the Institute 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 INSTITUTE 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 INSTITUTE 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.
|
||||
*/
|
||||
|
||||
#ifdef HAVE_CONFIG_H
|
||||
#include <config.h>
|
||||
RCSID("$Id: com_err.c,v 1.13 1999/03/12 15:17:08 bg Exp $");
|
||||
#endif
|
||||
#include <stdio.h>
|
||||
#include <stdlib.h>
|
||||
#include <string.h>
|
||||
#include <roken.h>
|
||||
#include "com_err.h"
|
||||
|
||||
struct et_list *_et_list;
|
||||
|
||||
|
||||
const char *
|
||||
error_message (long code)
|
||||
{
|
||||
static char msg[128];
|
||||
const char *p = com_right(_et_list, code);
|
||||
if (p == NULL)
|
||||
p = strerror(code);
|
||||
if (p != NULL && *p != '\0') {
|
||||
strncpy(msg, p, sizeof(msg) - 1);
|
||||
msg[sizeof(msg) - 1] = 0;
|
||||
} else
|
||||
sprintf(msg, "Unknown error %ld", code);
|
||||
return msg;
|
||||
}
|
||||
|
||||
int
|
||||
init_error_table(const char **msgs, long base, int count)
|
||||
{
|
||||
initialize_error_table_r(&_et_list, msgs, count, base);
|
||||
return 0;
|
||||
}
|
||||
|
||||
static void
|
||||
default_proc (const char *whoami, long code, const char *fmt, va_list args)
|
||||
{
|
||||
if (whoami)
|
||||
fprintf(stderr, "%s: ", whoami);
|
||||
if (code)
|
||||
fprintf(stderr, "%s ", error_message(code));
|
||||
if (fmt)
|
||||
vfprintf(stderr, fmt, args);
|
||||
fprintf(stderr, "\r\n"); /* ??? */
|
||||
}
|
||||
|
||||
static errf com_err_hook = default_proc;
|
||||
|
||||
void
|
||||
com_err_va (const char *whoami,
|
||||
long code,
|
||||
const char *fmt,
|
||||
va_list args)
|
||||
{
|
||||
(*com_err_hook) (whoami, code, fmt, args);
|
||||
}
|
||||
|
||||
void
|
||||
com_err (const char *whoami,
|
||||
long code,
|
||||
const char *fmt,
|
||||
...)
|
||||
{
|
||||
va_list ap;
|
||||
va_start(ap, fmt);
|
||||
com_err_va (whoami, code, fmt, ap);
|
||||
va_end(ap);
|
||||
}
|
||||
|
||||
errf
|
||||
set_com_err_hook (errf new)
|
||||
{
|
||||
errf old = com_err_hook;
|
||||
|
||||
if (new)
|
||||
com_err_hook = new;
|
||||
else
|
||||
com_err_hook = default_proc;
|
||||
|
||||
return old;
|
||||
}
|
||||
|
||||
errf
|
||||
reset_com_err_hook (void)
|
||||
{
|
||||
return set_com_err_hook(NULL);
|
||||
}
|
||||
|
||||
#define ERRCODE_RANGE 8 /* # of bits to shift table number */
|
||||
#define BITS_PER_CHAR 6 /* # bits to shift per character in name */
|
||||
|
||||
static const char char_set[] =
|
||||
"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789_";
|
||||
|
||||
static char buf[6];
|
||||
|
||||
const char *
|
||||
error_table_name(int num)
|
||||
{
|
||||
int ch;
|
||||
int i;
|
||||
char *p;
|
||||
|
||||
/* num = aa aaa abb bbb bcc ccc cdd ddd d?? ??? ??? */
|
||||
p = buf;
|
||||
num >>= ERRCODE_RANGE;
|
||||
/* num = ?? ??? ??? aaa aaa bbb bbb ccc ccc ddd ddd */
|
||||
num &= 077777777;
|
||||
/* num = 00 000 000 aaa aaa bbb bbb ccc ccc ddd ddd */
|
||||
for (i = 4; i >= 0; i--) {
|
||||
ch = (num >> BITS_PER_CHAR * i) & ((1 << BITS_PER_CHAR) - 1);
|
||||
if (ch != 0)
|
||||
*p++ = char_set[ch-1];
|
||||
}
|
||||
*p = '\0';
|
||||
return(buf);
|
||||
}
|
73
contrib/com_err/com_err.h
Normal file
73
contrib/com_err/com_err.h
Normal file
@ -0,0 +1,73 @@
|
||||
/*
|
||||
* Copyright (c) 1997, 1998 Kungliga Tekniska Högskolan
|
||||
* (Royal Institute of Technology, Stockholm, Sweden).
|
||||
* 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. All advertising materials mentioning features or use of this software
|
||||
* must display the following acknowledgement:
|
||||
* This product includes software developed by Kungliga Tekniska
|
||||
* Högskolan and its contributors.
|
||||
*
|
||||
* 4. Neither the name of the Institute 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 INSTITUTE 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 INSTITUTE 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.
|
||||
*/
|
||||
|
||||
/* $Id: com_err.h,v 1.3 1998/05/02 20:13:28 assar Exp $ */
|
||||
|
||||
/* MIT compatible com_err library */
|
||||
|
||||
#ifndef __COM_ERR_H__
|
||||
#define __COM_ERR_H__
|
||||
|
||||
#ifdef __STDC__
|
||||
#include <stdarg.h>
|
||||
#endif
|
||||
|
||||
#ifndef __P
|
||||
#ifdef __STDC__
|
||||
#define __P(X) X
|
||||
#else
|
||||
#define __P(X) ()
|
||||
#endif
|
||||
#endif
|
||||
|
||||
#include <com_right.h>
|
||||
|
||||
typedef void (*errf) __P((const char *, long, const char *, va_list));
|
||||
|
||||
const char * error_message __P((long));
|
||||
int init_error_table __P((const char**, long, int));
|
||||
|
||||
void com_err_va __P((const char *, long, const char *, va_list));
|
||||
void com_err __P((const char *, long, const char *, ...));
|
||||
|
||||
errf set_com_err_hook __P((errf));
|
||||
errf reset_com_err_hook __P((void));
|
||||
|
||||
const char *error_table_name(int num);
|
||||
|
||||
#endif /* __COM_ERR_H__ */
|
59
contrib/com_err/com_right.h
Normal file
59
contrib/com_err/com_right.h
Normal file
@ -0,0 +1,59 @@
|
||||
/*
|
||||
* Copyright (c) 1997, 1998 Kungliga Tekniska Högskolan
|
||||
* (Royal Institute of Technology, Stockholm, Sweden).
|
||||
* 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. All advertising materials mentioning features or use of this software
|
||||
* must display the following acknowledgement:
|
||||
* This product includes software developed by Kungliga Tekniska
|
||||
* Högskolan and its contributors.
|
||||
*
|
||||
* 4. Neither the name of the Institute 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 INSTITUTE 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 INSTITUTE 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.
|
||||
*/
|
||||
|
||||
/* $Id: com_right.h,v 1.8 1998/02/17 21:19:43 bg Exp $ */
|
||||
|
||||
#ifndef __COM_RIGHT_H__
|
||||
#define __COM_RIGHT_H__
|
||||
|
||||
struct error_table {
|
||||
char const * const * msgs;
|
||||
long base;
|
||||
int n_msgs;
|
||||
};
|
||||
struct et_list {
|
||||
struct et_list *next;
|
||||
struct error_table *table;
|
||||
};
|
||||
extern struct et_list *_et_list;
|
||||
|
||||
const char *com_right(struct et_list *list, long code);
|
||||
void initialize_error_table_r(struct et_list **, const char **, int, long);
|
||||
void free_error_table(struct et_list *);
|
||||
|
||||
#endif /* __COM_RIGHT_H__ */
|
240
contrib/com_err/compile_et.c
Normal file
240
contrib/com_err/compile_et.c
Normal file
@ -0,0 +1,240 @@
|
||||
/*
|
||||
* Copyright (c) 1998, 1999 Kungliga Tekniska Högskolan
|
||||
* (Royal Institute of Technology, Stockholm, Sweden).
|
||||
* 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. All advertising materials mentioning features or use of this software
|
||||
* must display the following acknowledgement:
|
||||
* This product includes software developed by Kungliga Tekniska
|
||||
* Högskolan and its contributors.
|
||||
*
|
||||
* 4. Neither the name of the Institute 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 INSTITUTE 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 INSTITUTE 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.
|
||||
*/
|
||||
|
||||
#undef ROKEN_RENAME
|
||||
#include "compile_et.h"
|
||||
#include <getarg.h>
|
||||
|
||||
RCSID("$Id: compile_et.c,v 1.12 1999/04/01 09:13:52 joda Exp $");
|
||||
|
||||
#include <roken.h>
|
||||
#include <err.h>
|
||||
#include "parse.h"
|
||||
|
||||
int numerror;
|
||||
extern FILE *yyin;
|
||||
|
||||
extern void yyparse(void);
|
||||
|
||||
long base;
|
||||
int number;
|
||||
char *prefix;
|
||||
char *id_str;
|
||||
|
||||
char name[128];
|
||||
char Basename[128];
|
||||
|
||||
#ifdef YYDEBUG
|
||||
extern int yydebug = 1;
|
||||
#endif
|
||||
|
||||
char *filename;
|
||||
char hfn[128];
|
||||
char cfn[128];
|
||||
|
||||
struct error_code *codes = NULL;
|
||||
|
||||
static int
|
||||
generate_c(void)
|
||||
{
|
||||
int n;
|
||||
struct error_code *ec;
|
||||
|
||||
FILE *c_file = fopen(cfn, "w");
|
||||
if(c_file == NULL)
|
||||
return 1;
|
||||
|
||||
fprintf(c_file, "/* Generated from %s */\n", filename);
|
||||
if(id_str)
|
||||
fprintf(c_file, "/* %s */\n", id_str);
|
||||
fprintf(c_file, "\n");
|
||||
fprintf(c_file, "#include <stddef.h>\n");
|
||||
fprintf(c_file, "#include <com_err.h>\n");
|
||||
fprintf(c_file, "#include \"%s\"\n", hfn);
|
||||
fprintf(c_file, "\n");
|
||||
|
||||
fprintf(c_file, "static const char *text[] = {\n");
|
||||
|
||||
for(ec = codes, n = 0; ec; ec = ec->next, n++) {
|
||||
while(n < ec->number) {
|
||||
fprintf(c_file, "\t/* %03d */ \"Reserved %s error (%d)\",\n",
|
||||
n, name, n);
|
||||
n++;
|
||||
|
||||
}
|
||||
fprintf(c_file, "\t/* %03d */ \"%s\",\n", ec->number, ec->string);
|
||||
}
|
||||
|
||||
fprintf(c_file, "\tNULL\n");
|
||||
fprintf(c_file, "};\n");
|
||||
fprintf(c_file, "\n");
|
||||
fprintf(c_file,
|
||||
"void initialize_%s_error_table_r(struct et_list **list)\n",
|
||||
name);
|
||||
fprintf(c_file, "{\n");
|
||||
fprintf(c_file,
|
||||
" initialize_error_table_r(list, text, "
|
||||
"%s_num_errors, ERROR_TABLE_BASE_%s);\n", name, name);
|
||||
fprintf(c_file, "}\n");
|
||||
fprintf(c_file, "\n");
|
||||
fprintf(c_file, "void initialize_%s_error_table(void)\n", name);
|
||||
fprintf(c_file, "{\n");
|
||||
fprintf(c_file,
|
||||
" init_error_table(text, ERROR_TABLE_BASE_%s, "
|
||||
"%s_num_errors);\n", name, name);
|
||||
fprintf(c_file, "}\n");
|
||||
|
||||
fclose(c_file);
|
||||
return 0;
|
||||
}
|
||||
|
||||
static int
|
||||
generate_h(void)
|
||||
{
|
||||
struct error_code *ec;
|
||||
char fn[128];
|
||||
FILE *h_file = fopen(hfn, "w");
|
||||
char *p;
|
||||
|
||||
if(h_file == NULL)
|
||||
return 1;
|
||||
|
||||
snprintf(fn, sizeof(fn), "__%s__", hfn);
|
||||
for(p = fn; *p; p++)
|
||||
if(!isalnum((unsigned char)*p))
|
||||
*p = '_';
|
||||
|
||||
fprintf(h_file, "/* Generated from %s */\n", filename);
|
||||
if(id_str)
|
||||
fprintf(h_file, "/* %s */\n", id_str);
|
||||
fprintf(h_file, "\n");
|
||||
fprintf(h_file, "#ifndef %s\n", fn);
|
||||
fprintf(h_file, "#define %s\n", fn);
|
||||
fprintf(h_file, "\n");
|
||||
fprintf(h_file, "#include <com_right.h>\n");
|
||||
fprintf(h_file, "\n");
|
||||
fprintf(h_file,
|
||||
"void initialize_%s_error_table_r(struct et_list **);\n",
|
||||
name);
|
||||
fprintf(h_file, "\n");
|
||||
fprintf(h_file, "void initialize_%s_error_table(void);\n", name);
|
||||
fprintf(h_file, "#define init_%s_err_tbl initialize_%s_error_table\n",
|
||||
name, name);
|
||||
fprintf(h_file, "\n");
|
||||
fprintf(h_file, "typedef enum %s_error_number{\n", name);
|
||||
fprintf(h_file, "\tERROR_TABLE_BASE_%s = %ld,\n", name, base);
|
||||
fprintf(h_file, "\t%s_err_base = %ld,\n", name, base);
|
||||
|
||||
for(ec = codes; ec; ec = ec->next) {
|
||||
fprintf(h_file, "\t%s = %ld,\n", ec->name, base + ec->number);
|
||||
}
|
||||
|
||||
fprintf(h_file, "\t%s_num_errors = %d\n", name, number);
|
||||
fprintf(h_file, "} %s_error_number;\n", name);
|
||||
fprintf(h_file, "\n");
|
||||
fprintf(h_file, "#endif /* %s */\n", fn);
|
||||
|
||||
|
||||
fclose(h_file);
|
||||
return 0;
|
||||
}
|
||||
|
||||
static int
|
||||
generate(void)
|
||||
{
|
||||
return generate_c() || generate_h();
|
||||
}
|
||||
|
||||
int version_flag;
|
||||
int help_flag;
|
||||
struct getargs args[] = {
|
||||
{ "version", 0, arg_flag, &version_flag },
|
||||
{ "help", 0, arg_flag, &help_flag }
|
||||
};
|
||||
int num_args = sizeof(args) / sizeof(args[0]);
|
||||
|
||||
static void
|
||||
usage(int code)
|
||||
{
|
||||
arg_printusage(args, num_args, NULL, "error-table");
|
||||
exit(code);
|
||||
}
|
||||
|
||||
int
|
||||
main(int argc, char **argv)
|
||||
{
|
||||
char *p;
|
||||
int optind = 0;
|
||||
|
||||
set_progname(argv[0]);
|
||||
if(getarg(args, num_args, argc, argv, &optind))
|
||||
usage(1);
|
||||
if(help_flag)
|
||||
usage(0);
|
||||
if(version_flag) {
|
||||
print_version(NULL);
|
||||
exit(0);
|
||||
}
|
||||
|
||||
if(optind == argc)
|
||||
usage(1);
|
||||
filename = argv[optind];
|
||||
yyin = fopen(filename, "r");
|
||||
if(yyin == NULL)
|
||||
err(1, "%s", filename);
|
||||
|
||||
|
||||
p = strrchr(filename, '/');
|
||||
if(p)
|
||||
p++;
|
||||
else
|
||||
p = filename;
|
||||
strncpy(Basename, p, sizeof(Basename));
|
||||
Basename[sizeof(Basename) - 1] = '\0';
|
||||
|
||||
Basename[strcspn(Basename, ".")] = '\0';
|
||||
|
||||
snprintf(hfn, sizeof(hfn), "%s.h", Basename);
|
||||
snprintf(cfn, sizeof(cfn), "%s.c", Basename);
|
||||
|
||||
yyparse();
|
||||
if(numerror)
|
||||
return 1;
|
||||
|
||||
return generate();
|
||||
}
|
85
contrib/com_err/compile_et.h
Normal file
85
contrib/com_err/compile_et.h
Normal file
@ -0,0 +1,85 @@
|
||||
/*
|
||||
* Copyright (c) 1998 Kungliga Tekniska Högskolan
|
||||
* (Royal Institute of Technology, Stockholm, Sweden).
|
||||
* 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. All advertising materials mentioning features or use of this software
|
||||
* must display the following acknowledgement:
|
||||
* This product includes software developed by Kungliga Tekniska
|
||||
* Högskolan and its contributors.
|
||||
*
|
||||
* 4. Neither the name of the Institute 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 INSTITUTE 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 INSTITUTE 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.
|
||||
*/
|
||||
|
||||
/* $Id: compile_et.h,v 1.3 1998/11/22 09:39:46 assar Exp $ */
|
||||
|
||||
#ifndef __COMPILE_ET_H__
|
||||
#define __COMPILE_ET_H__
|
||||
|
||||
#ifdef HAVE_CONFIG_H
|
||||
#include <config.h>
|
||||
#endif
|
||||
|
||||
#include <stdio.h>
|
||||
#include <string.h>
|
||||
#include <stdlib.h>
|
||||
#include <stdarg.h>
|
||||
#include <ctype.h>
|
||||
|
||||
#include <roken.h>
|
||||
|
||||
extern long base;
|
||||
extern int number;
|
||||
extern char *prefix;
|
||||
extern char name[128];
|
||||
extern char *id_str;
|
||||
extern char *filename;
|
||||
extern int numerror;
|
||||
|
||||
struct error_code {
|
||||
unsigned number;
|
||||
char *name;
|
||||
char *string;
|
||||
struct error_code *next, **tail;
|
||||
};
|
||||
|
||||
extern struct error_code *codes;
|
||||
|
||||
#define APPEND(L, V) \
|
||||
do { \
|
||||
if((L) == NULL) { \
|
||||
(L) = (V); \
|
||||
(L)->tail = &(V)->next; \
|
||||
(L)->next = NULL; \
|
||||
}else{ \
|
||||
*(L)->tail = (V); \
|
||||
(L)->tail = &(V)->next; \
|
||||
} \
|
||||
}while(0)
|
||||
|
||||
#endif /* __COMPILE_ET_H__ */
|
96
contrib/com_err/error.c
Normal file
96
contrib/com_err/error.c
Normal file
@ -0,0 +1,96 @@
|
||||
/*
|
||||
* Copyright (c) 1997, 1998 Kungliga Tekniska Högskolan
|
||||
* (Royal Institute of Technology, Stockholm, Sweden).
|
||||
* 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. All advertising materials mentioning features or use of this software
|
||||
* must display the following acknowledgement:
|
||||
* This product includes software developed by Kungliga Tekniska
|
||||
* Högskolan and its contributors.
|
||||
*
|
||||
* 4. Neither the name of the Institute 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 INSTITUTE 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 INSTITUTE 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.
|
||||
*/
|
||||
|
||||
#ifdef HAVE_CONFIG_H
|
||||
#include <config.h>
|
||||
RCSID("$Id: error.c,v 1.13 1998/02/17 21:19:44 bg Exp $");
|
||||
#endif
|
||||
#include <stdio.h>
|
||||
#include <stdlib.h>
|
||||
#include <string.h>
|
||||
#include <com_right.h>
|
||||
|
||||
const char *
|
||||
com_right(struct et_list *list, long code)
|
||||
{
|
||||
struct et_list *p;
|
||||
for (p = list; p; p = p->next) {
|
||||
if (code >= p->table->base && code < p->table->base + p->table->n_msgs)
|
||||
return p->table->msgs[code - p->table->base];
|
||||
}
|
||||
return NULL;
|
||||
}
|
||||
|
||||
struct foobar {
|
||||
struct et_list etl;
|
||||
struct error_table et;
|
||||
};
|
||||
|
||||
void
|
||||
initialize_error_table_r(struct et_list **list,
|
||||
const char **messages,
|
||||
int num_errors,
|
||||
long base)
|
||||
{
|
||||
struct et_list *et;
|
||||
struct foobar *f;
|
||||
for (et = *list; et; et = et->next)
|
||||
if (et->table->msgs == messages)
|
||||
return;
|
||||
f = malloc(sizeof(*f));
|
||||
if (f == NULL)
|
||||
return;
|
||||
et = &f->etl;
|
||||
et->table = &f->et;
|
||||
et->table->msgs = messages;
|
||||
et->table->n_msgs = num_errors;
|
||||
et->table->base = base;
|
||||
et->next = *list;
|
||||
*list = et;
|
||||
}
|
||||
|
||||
|
||||
void
|
||||
free_error_table(struct et_list *et)
|
||||
{
|
||||
while(et){
|
||||
struct et_list *p = et;
|
||||
et = et->next;
|
||||
free(p);
|
||||
}
|
||||
}
|
127
contrib/com_err/lex.l
Normal file
127
contrib/com_err/lex.l
Normal file
@ -0,0 +1,127 @@
|
||||
%{
|
||||
/*
|
||||
* Copyright (c) 1998 Kungliga Tekniska Högskolan
|
||||
* (Royal Institute of Technology, Stockholm, Sweden).
|
||||
* 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. All advertising materials mentioning features or use of this software
|
||||
* must display the following acknowledgement:
|
||||
* This product includes software developed by Kungliga Tekniska
|
||||
* Högskolan and its contributors.
|
||||
*
|
||||
* 4. Neither the name of the Institute 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 INSTITUTE 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 INSTITUTE 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.
|
||||
*/
|
||||
|
||||
/*
|
||||
* This is to handle the definition of this symbol in some AIX
|
||||
* headers, which will conflict with the definition that lex will
|
||||
* generate for it. It's only a problem for AIX lex.
|
||||
*/
|
||||
|
||||
#undef ECHO
|
||||
|
||||
#include "compile_et.h"
|
||||
#include "parse.h"
|
||||
|
||||
RCSID("$Id: lex.l,v 1.4 1998/11/20 05:58:52 assar Exp $");
|
||||
|
||||
static unsigned lineno = 1;
|
||||
void error_message(char *, ...);
|
||||
int getstring(void);
|
||||
|
||||
%}
|
||||
|
||||
|
||||
%%
|
||||
et { return ET; }
|
||||
error_table { return ET; }
|
||||
ec { return EC; }
|
||||
error_code { return EC; }
|
||||
prefix { return PREFIX; }
|
||||
index { return INDEX; }
|
||||
id { return ID; }
|
||||
end { return END; }
|
||||
[0-9]+ { yylval.number = atoi(yytext); return NUMBER; }
|
||||
#[^\n]* ;
|
||||
[ \t] ;
|
||||
\n { lineno++; }
|
||||
\" { return getstring(); }
|
||||
[a-zA-Z0-9_]+ { yylval.string = strdup(yytext); return STRING; }
|
||||
. { return *yytext; }
|
||||
%%
|
||||
|
||||
#ifndef yywrap /* XXX */
|
||||
int
|
||||
yywrap ()
|
||||
{
|
||||
return 1;
|
||||
}
|
||||
#endif
|
||||
|
||||
int
|
||||
getstring(void)
|
||||
{
|
||||
char x[128];
|
||||
int i = 0;
|
||||
int c;
|
||||
int quote = 0;
|
||||
while((c = input()) != EOF){
|
||||
if(quote) {
|
||||
x[i++] = c;
|
||||
quote = 0;
|
||||
continue;
|
||||
}
|
||||
if(c == '\n'){
|
||||
error_message("unterminated string");
|
||||
lineno++;
|
||||
break;
|
||||
}
|
||||
if(c == '\\'){
|
||||
quote++;
|
||||
continue;
|
||||
}
|
||||
if(c == '\"')
|
||||
break;
|
||||
x[i++] = c;
|
||||
}
|
||||
x[i] = '\0';
|
||||
yylval.string = strdup(x);
|
||||
return STRING;
|
||||
}
|
||||
|
||||
void
|
||||
error_message (char *format, ...)
|
||||
{
|
||||
va_list args;
|
||||
|
||||
va_start (args, format);
|
||||
fprintf (stderr, "%s:%d:", filename, lineno);
|
||||
vfprintf (stderr, format, args);
|
||||
va_end (args);
|
||||
numerror++;
|
||||
}
|
171
contrib/com_err/parse.y
Normal file
171
contrib/com_err/parse.y
Normal file
@ -0,0 +1,171 @@
|
||||
%{
|
||||
/*
|
||||
* Copyright (c) 1998, 1999 Kungliga Tekniska Högskolan
|
||||
* (Royal Institute of Technology, Stockholm, Sweden).
|
||||
* 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. All advertising materials mentioning features or use of this software
|
||||
* must display the following acknowledgement:
|
||||
* This product includes software developed by Kungliga Tekniska
|
||||
* Högskolan and its contributors.
|
||||
*
|
||||
* 4. Neither the name of the Institute 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 INSTITUTE 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 INSTITUTE 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 "compile_et.h"
|
||||
RCSID("$Id: parse.y,v 1.9 1999/07/04 14:54:58 assar Exp $");
|
||||
|
||||
void yyerror (char *s);
|
||||
long name2number(const char *str);
|
||||
void error_message(char *, ...);
|
||||
|
||||
extern char *yytext;
|
||||
|
||||
/* This is for bison */
|
||||
|
||||
#if !defined(alloca) && !defined(HAVE_ALLOCA)
|
||||
#define alloca(x) malloc(x)
|
||||
#endif
|
||||
|
||||
%}
|
||||
|
||||
%union {
|
||||
char *string;
|
||||
int number;
|
||||
}
|
||||
|
||||
%token ET INDEX PREFIX EC ID END
|
||||
%token <string> STRING
|
||||
%token <number> NUMBER
|
||||
|
||||
%%
|
||||
|
||||
file : /* */
|
||||
| header statements
|
||||
;
|
||||
|
||||
header : id et
|
||||
| et
|
||||
;
|
||||
|
||||
id : ID STRING
|
||||
{
|
||||
id_str = $2;
|
||||
}
|
||||
;
|
||||
|
||||
et : ET STRING
|
||||
{
|
||||
base = name2number($2);
|
||||
strncpy(name, $2, sizeof(name));
|
||||
name[sizeof(name) - 1] = '\0';
|
||||
free($2);
|
||||
}
|
||||
| ET STRING STRING
|
||||
{
|
||||
base = name2number($2);
|
||||
strncpy(name, $3, sizeof(name));
|
||||
name[sizeof(name) - 1] = '\0';
|
||||
free($2);
|
||||
free($3);
|
||||
}
|
||||
;
|
||||
|
||||
statements : statement
|
||||
| statements statement
|
||||
;
|
||||
|
||||
statement : INDEX NUMBER
|
||||
{
|
||||
number = $2;
|
||||
}
|
||||
| PREFIX STRING
|
||||
{
|
||||
prefix = realloc(prefix, strlen($2) + 2);
|
||||
strcpy(prefix, $2);
|
||||
strcat(prefix, "_");
|
||||
free($2);
|
||||
}
|
||||
| PREFIX
|
||||
{
|
||||
prefix = realloc(prefix, 1);
|
||||
*prefix = '\0';
|
||||
}
|
||||
| EC STRING ',' STRING
|
||||
{
|
||||
struct error_code *ec = malloc(sizeof(*ec));
|
||||
|
||||
ec->next = NULL;
|
||||
ec->number = number;
|
||||
if(prefix && *prefix != '\0') {
|
||||
asprintf (&ec->name, "%s%s", prefix, $2);
|
||||
free($2);
|
||||
} else
|
||||
ec->name = $2;
|
||||
ec->string = $4;
|
||||
APPEND(codes, ec);
|
||||
number++;
|
||||
}
|
||||
| END
|
||||
{
|
||||
YYACCEPT;
|
||||
}
|
||||
;
|
||||
|
||||
%%
|
||||
|
||||
long
|
||||
name2number(const char *str)
|
||||
{
|
||||
const char *p;
|
||||
long base = 0;
|
||||
const char *x = "ABCDEFGHIJKLMNOPQRSTUVWXYZ"
|
||||
"abcdefghijklmnopqrstuvwxyz0123456789_";
|
||||
if(strlen(str) > 4) {
|
||||
yyerror("table name too long");
|
||||
return 0;
|
||||
}
|
||||
for(p = str; *p; p++){
|
||||
char *q = strchr(x, *p);
|
||||
if(q == NULL) {
|
||||
yyerror("invalid character in table name");
|
||||
return 0;
|
||||
}
|
||||
base = (base << 6) + (q - x) + 1;
|
||||
}
|
||||
base <<= 8;
|
||||
if(base > 0x7fffffff)
|
||||
base = -(0xffffffff - base + 1);
|
||||
return base;
|
||||
}
|
||||
|
||||
void
|
||||
yyerror (char *s)
|
||||
{
|
||||
error_message ("%s\n", s);
|
||||
}
|
44
contrib/com_err/roken_rename.h
Normal file
44
contrib/com_err/roken_rename.h
Normal file
@ -0,0 +1,44 @@
|
||||
/*
|
||||
* Copyright (c) 1998 Kungliga Tekniska Högskolan
|
||||
* (Royal Institute of Technology, Stockholm, Sweden).
|
||||
* 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. All advertising materials mentioning features or use of this software
|
||||
* must display the following acknowledgement:
|
||||
* This product includes software developed by Kungliga Tekniska
|
||||
* Högskolan and its contributors.
|
||||
*
|
||||
* 4. Neither the name of the Institute 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 INSTITUTE 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 INSTITUTE 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.
|
||||
*/
|
||||
|
||||
/* $Id: roken_rename.h,v 1.2 1999/03/11 18:14:53 bg Exp $ */
|
||||
|
||||
#ifndef __roken_rename_h__
|
||||
#define __roken_rename_h__
|
||||
|
||||
#endif /* __roken_rename_h__ */
|
Loading…
Reference in New Issue
Block a user