diff options
Diffstat (limited to 'crypto/heimdal/lib/sl')
-rw-r--r-- | crypto/heimdal/lib/sl/ChangeLog | 46 | ||||
-rw-r--r-- | crypto/heimdal/lib/sl/Makefile.am | 15 | ||||
-rw-r--r-- | crypto/heimdal/lib/sl/Makefile.in | 388 | ||||
-rw-r--r-- | crypto/heimdal/lib/sl/lex.l | 15 | ||||
-rw-r--r-- | crypto/heimdal/lib/sl/make_cmds.h | 11 | ||||
-rw-r--r-- | crypto/heimdal/lib/sl/parse.y | 9 | ||||
-rw-r--r-- | crypto/heimdal/lib/sl/roken_rename.h | 7 | ||||
-rw-r--r-- | crypto/heimdal/lib/sl/sl.c | 133 | ||||
-rw-r--r-- | crypto/heimdal/lib/sl/sl.h | 11 | ||||
-rw-r--r-- | crypto/heimdal/lib/sl/ss.c | 49 | ||||
-rw-r--r-- | crypto/heimdal/lib/sl/ss.h | 6 |
11 files changed, 435 insertions, 255 deletions
diff --git a/crypto/heimdal/lib/sl/ChangeLog b/crypto/heimdal/lib/sl/ChangeLog index eca7217..1893e1c 100644 --- a/crypto/heimdal/lib/sl/ChangeLog +++ b/crypto/heimdal/lib/sl/ChangeLog @@ -1,3 +1,49 @@ +2001-01-26 Johan Danielsson <joda@pdc.kth.se> + + * sl.h: proto + + * sl.c (sl_command_loop): try to handle user pressing C-c + +2000-12-11 Assar Westerlund <assar@sics.se> + + * Makefile.am (libss_la_LDFLAGS): bump version to 1:2:1 + +2000-08-19 Assar Westerlund <assar@sics.se> + + * Makefile.am: add dependencies for libss/libsl shared libraries + +2000-07-25 Johan Danielsson <joda@pdc.kth.se> + + * Makefile.am: bump ss version to 1:1:1 + +2000-06-27 Assar Westerlund <assar@sics.se> + + * parse.y (yyerror): static-ize + * make_cmds.h (error_message, yylex): add prototypes + * lex.l: fix prototypes and kill warnings + +2000-05-24 Assar Westerlund <assar@sics.se> + + * ss.h (SS_ET_COMMAND_NOT_FOUND): add + * ss.c: check allocation and return some other error codes too + +2000-04-29 Assar Westerlund <assar@sics.se> + + * Makefile.in: add LIB_tgetent. From Derrick J Brashear + <shadow@dementia.org> + +2000-04-03 Assar Westerlund <assar@sics.se> + + * Makefile.am: set version to 1:0:1 + +2000-03-07 Assar Westerlund <assar@sics.se> + + * sl.h (SL_BADCOMMAND): define + (sl_apropos): add prototype + + * sl.c: mandoc-generation + (sl_apropos): stolen from arla + 2000-01-06 Assar Westerlund <assar@sics.se> * Makefile.am: bump both versions to 0:1:0 diff --git a/crypto/heimdal/lib/sl/Makefile.am b/crypto/heimdal/lib/sl/Makefile.am index e572e21..df01306 100644 --- a/crypto/heimdal/lib/sl/Makefile.am +++ b/crypto/heimdal/lib/sl/Makefile.am @@ -1,4 +1,4 @@ -# $Id: Makefile.am,v 1.15 2000/01/06 21:52:20 assar Exp $ +# $Id: Makefile.am,v 1.21 2001/01/26 15:00:09 joda Exp $ include $(top_srcdir)/Makefile.am.common @@ -7,8 +7,11 @@ YFLAGS = -d include_HEADERS = sl.h lib_LTLIBRARIES = libsl.la libss.la -libsl_la_LDFLAGS = -version-info 0:1:0 -libss_la_LDFLAGS = -version-info 0:1:0 +libsl_la_LDFLAGS = -version-info 1:1:1 +libss_la_LDFLAGS = -version-info 1:3:1 + +libsl_la_LIBADD = @LIB_readline@ +libss_la_LIBADD = @LIB_readline@ RENAME_SRC = roken_rename.h strtok_r.c snprintf.c @@ -19,7 +22,7 @@ EXTRA_libsl_la_SOURCES = strtok_r.c snprintf.c roken_rename.h # install these? -noinst_PROGRAMS = mk_cmds +bin_PROGRAMS = mk_cmds mk_cmds_SOURCES = make_cmds.c make_cmds.h parse.y lex.l @@ -34,8 +37,8 @@ CLEANFILES = lex.c parse.c parse.h snprintf.c strtok_r.c $(mk_cmds_OBJECTS): parse.h -LDADD = \ - $(LIB_roken) \ +LDADD = \ + $(LIB_roken) \ $(LEXLIB) strtok_r.c: diff --git a/crypto/heimdal/lib/sl/Makefile.in b/crypto/heimdal/lib/sl/Makefile.in index 634cd74..6c1088b 100644 --- a/crypto/heimdal/lib/sl/Makefile.in +++ b/crypto/heimdal/lib/sl/Makefile.in @@ -1,6 +1,6 @@ -# Makefile.in generated automatically by automake 1.4 from Makefile.am +# Makefile.in generated automatically by automake 1.4a from Makefile.am -# Copyright (C) 1994, 1995-8, 1999 Free Software Foundation, Inc. +# Copyright (C) 1994, 1995-9, 2000 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. @@ -10,15 +10,6 @@ # even the implied warranty of MERCHANTABILITY or FITNESS FOR A # PARTICULAR PURPOSE. -# $Id: Makefile.am,v 1.15 2000/01/06 21:52:20 assar Exp $ - - -# $Id: Makefile.am.common,v 1.3 1999/04/01 14:58:43 joda Exp $ - - -# $Id: Makefile.am.common,v 1.13 1999/11/01 03:19:58 assar Exp $ - - SHELL = @SHELL@ srcdir = @srcdir@ @@ -40,8 +31,6 @@ mandir = @mandir@ includedir = @includedir@ oldincludedir = /usr/include -DESTDIR = - pkgdatadir = $(datadir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ @@ -54,9 +43,10 @@ AUTOMAKE = @AUTOMAKE@ AUTOHEADER = @AUTOHEADER@ INSTALL = @INSTALL@ -INSTALL_PROGRAM = @INSTALL_PROGRAM@ $(AM_INSTALL_PROGRAM_FLAGS) +INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ +INSTALL_STRIP_FLAG = transform = @program_transform_name@ NORMAL_INSTALL = : @@ -65,26 +55,39 @@ POST_INSTALL = : NORMAL_UNINSTALL = : PRE_UNINSTALL = : POST_UNINSTALL = : + +@SET_MAKE@ host_alias = @host_alias@ host_triplet = @host@ -AFS_EXTRA_LD = @AFS_EXTRA_LD@ AIX_EXTRA_KAFS = @AIX_EXTRA_KAFS@ +AMDEP = @AMDEP@ +AMTAR = @AMTAR@ +AS = @AS@ AWK = @AWK@ CANONICAL_HOST = @CANONICAL_HOST@ CATMAN = @CATMAN@ CATMANEXT = @CATMANEXT@ CC = @CC@ +CPP = @CPP@ +CXX = @CXX@ +CXXCPP = @CXXCPP@ DBLIB = @DBLIB@ +DEPDIR = @DEPDIR@ +DIR_des = @DIR_des@ +DIR_roken = @DIR_roken@ +DLLTOOL = @DLLTOOL@ EXEEXT = @EXEEXT@ EXTRA_LIB45 = @EXTRA_LIB45@ GROFF = @GROFF@ +INCLUDES_roken = @INCLUDES_roken@ INCLUDE_ = @INCLUDE_@ -LD = @LD@ LEX = @LEX@ LIBOBJS = @LIBOBJS@ LIBTOOL = @LIBTOOL@ LIB_ = @LIB_@ LIB_AUTH_SUBDIRS = @LIB_AUTH_SUBDIRS@ +LIB_des = @LIB_des@ +LIB_des_appl = @LIB_des_appl@ LIB_kdb = @LIB_kdb@ LIB_otp = @LIB_otp@ LIB_roken = @LIB_roken@ @@ -92,31 +95,43 @@ 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@ +OBJDUMP = @OBJDUMP@ OBJEXT = @OBJEXT@ PACKAGE = @PACKAGE@ RANLIB = @RANLIB@ +STRIP = @STRIP@ VERSION = @VERSION@ VOID_RETSIGTYPE = @VOID_RETSIGTYPE@ WFLAGS = @WFLAGS@ WFLAGS_NOIMPLICITINT = @WFLAGS_NOIMPLICITINT@ WFLAGS_NOUNUSED = @WFLAGS_NOUNUSED@ YACC = @YACC@ +dpagaix_CFLAGS = @dpagaix_CFLAGS@ +dpagaix_LDADD = @dpagaix_LDADD@ +install_sh = @install_sh@ + +# $Id: Makefile.am,v 1.21 2001/01/26 15:00:09 joda Exp $ + + +# $Id: Makefile.am.common,v 1.3 1999/04/01 14:58:43 joda Exp $ + + +# $Id: Makefile.am.common,v 1.23 2000/12/05 09:11:09 joda Exp $ + AUTOMAKE_OPTIONS = foreign no-dependencies SUFFIXES = .et .h .1 .3 .5 .8 .cat1 .cat3 .cat5 .cat8 .x -INCLUDES = -I$(top_builddir)/include +INCLUDES = -I$(top_builddir)/include $(INCLUDES_roken) AM_CFLAGS = $(WFLAGS) +CP = cp + COMPILE_ET = $(top_builddir)/lib/com_err/compile_et buildinclude = $(top_builddir)/include @@ -136,6 +151,7 @@ LIB_getsockopt = @LIB_getsockopt@ LIB_logout = @LIB_logout@ LIB_logwtmp = @LIB_logwtmp@ LIB_odm_initialize = @LIB_odm_initialize@ +LIB_pidfile = @LIB_pidfile@ LIB_readline = @LIB_readline@ LIB_res_search = @LIB_res_search@ LIB_setpcred = @LIB_setpcred@ @@ -144,6 +160,8 @@ LIB_socket = @LIB_socket@ LIB_syslog = @LIB_syslog@ LIB_tgetent = @LIB_tgetent@ +LIBS = @LIBS@ + HESIODLIB = @HESIODLIB@ HESIODINCLUDE = @HESIODINCLUDE@ INCLUDE_hesiod = @INCLUDE_hesiod@ @@ -152,24 +170,20 @@ LIB_hesiod = @LIB_hesiod@ INCLUDE_krb4 = @INCLUDE_krb4@ LIB_krb4 = @LIB_krb4@ +INCLUDE_openldap = @INCLUDE_openldap@ +LIB_openldap = @LIB_openldap@ + 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) +@KRB4_TRUE@LIB_kafs = @KRB4_TRUE@$(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 +@KRB5_TRUE@LIB_krb5 = @KRB5_TRUE@$(top_builddir)/lib/krb5/libkrb5.la \ +@KRB5_TRUE@ $(top_builddir)/lib/asn1/libasn1.la +@KRB5_TRUE@LIB_gssapi = @KRB5_TRUE@$(top_builddir)/lib/gssapi/libgssapi.la CHECK_LOCAL = $(PROGRAMS) @@ -178,8 +192,11 @@ YFLAGS = -d include_HEADERS = sl.h lib_LTLIBRARIES = libsl.la libss.la -libsl_la_LDFLAGS = -version-info 0:1:0 -libss_la_LDFLAGS = -version-info 0:1:0 +libsl_la_LDFLAGS = -version-info 1:1:1 +libss_la_LDFLAGS = -version-info 1:3:1 + +libsl_la_LIBADD = @LIB_readline@ +libss_la_LIBADD = @LIB_readline@ RENAME_SRC = roken_rename.h strtok_r.c snprintf.c @@ -190,7 +207,7 @@ EXTRA_libsl_la_SOURCES = strtok_r.c snprintf.c roken_rename.h # install these? -noinst_PROGRAMS = mk_cmds +bin_PROGRAMS = mk_cmds mk_cmds_SOURCES = make_cmds.c make_cmds.h parse.y lex.l @@ -203,8 +220,11 @@ ssinclude_HEADERS = ss.h CLEANFILES = lex.c parse.c parse.h snprintf.c strtok_r.c -LDADD = $(LIB_roken) $(LEXLIB) +LDADD = \ + $(LIB_roken) \ + $(LEXLIB) +subdir = lib/sl mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs CONFIG_HEADER = ../../include/config.h CONFIG_CLEAN_FILES = @@ -214,43 +234,48 @@ 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@ -libsl_la_LIBADD = -libsl_la_OBJECTS = sl.lo -libss_la_LIBADD = -libss_la_OBJECTS = sl.lo ss.lo -noinst_PROGRAMS = mk_cmds$(EXEEXT) -PROGRAMS = $(noinst_PROGRAMS) - -mk_cmds_OBJECTS = make_cmds.$(OBJEXT) parse.$(OBJEXT) lex.$(OBJEXT) +libsl_la_DEPENDENCIES = +am_libsl_la_OBJECTS = sl.lo +libsl_la_OBJECTS = $(am_libsl_la_OBJECTS) +libss_la_DEPENDENCIES = +am_libss_la_OBJECTS = sl.lo ss.lo +libss_la_OBJECTS = $(am_libss_la_OBJECTS) +bin_PROGRAMS = mk_cmds$(EXEEXT) +PROGRAMS = $(bin_PROGRAMS) + +am_mk_cmds_OBJECTS = make_cmds.$(OBJEXT) parse.$(OBJEXT) lex.$(OBJEXT) +mk_cmds_OBJECTS = $(am_mk_cmds_OBJECTS) mk_cmds_LDADD = $(LDADD) mk_cmds_DEPENDENCIES = mk_cmds_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) +CFLAGS = @CFLAGS@ +LEX_OUTPUT_ROOT = @LEX_OUTPUT_ROOT@ CCLD = $(CC) -LINK = $(LIBTOOL) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) $(LDFLAGS) -o $@ +LINK = $(LIBTOOL) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) $(LDFLAGS) -o $@ +DIST_SOURCES = $(libsl_la_SOURCES) $(EXTRA_libsl_la_SOURCES) \ +$(libss_la_SOURCES) $(mk_cmds_SOURCES) $(EXTRA_mk_cmds_SOURCES) HEADERS = $(include_HEADERS) $(ssinclude_HEADERS) -DIST_COMMON = ChangeLog Makefile.am Makefile.in lex.c parse.c +depcomp = +DIST_COMMON = $(include_HEADERS) $(ssinclude_HEADERS) ChangeLog \ +Makefile.am Makefile.in lex.c parse.c parse.h -DISTFILES = $(DIST_COMMON) $(SOURCES) $(HEADERS) $(TEXINFOS) $(EXTRA_DIST) +DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) -TAR = tar GZIP_ENV = --best SOURCES = $(libsl_la_SOURCES) $(EXTRA_libsl_la_SOURCES) $(libss_la_SOURCES) $(mk_cmds_SOURCES) $(EXTRA_mk_cmds_SOURCES) -OBJECTS = $(libsl_la_OBJECTS) $(libss_la_OBJECTS) $(mk_cmds_OBJECTS) +OBJECTS = $(am_libsl_la_OBJECTS) $(am_libss_la_OBJECTS) $(am_mk_cmds_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 +.SUFFIXES: .1 .3 .5 .8 .c .cat1 .cat3 .cat5 .cat8 .et .h .l .lo .o .obj .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/sl/Makefile @@ -273,31 +298,18 @@ install-libLTLIBRARIES: $(lib_LTLIBRARIES) $(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; \ + echo " $(LIBTOOL) --mode=install $(INSTALL) $(INSTALL_STRIP_FLAG) $$p $(DESTDIR)$(libdir)/$$p"; \ + $(LIBTOOL) --mode=install $(INSTALL) $(INSTALL_STRIP_FLAG) $$p $(DESTDIR)$(libdir)/$$p; \ else :; fi; \ done uninstall-libLTLIBRARIES: @$(NORMAL_UNINSTALL) - list='$(lib_LTLIBRARIES)'; for p in $$list; do \ + @list='$(lib_LTLIBRARIES)'; for p in $$list; do \ + echo " $(LIBTOOL) --mode=uninstall rm -f $(DESTDIR)$(libdir)/$$p"; \ $(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) @@ -309,15 +321,6 @@ distclean-compile: 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 @@ -334,18 +337,43 @@ libsl.la: $(libsl_la_OBJECTS) $(libsl_la_DEPENDENCIES) libss.la: $(libss_la_OBJECTS) $(libss_la_DEPENDENCIES) $(LINK) -rpath $(libdir) $(libss_la_LDFLAGS) $(libss_la_OBJECTS) $(libss_la_LIBADD) $(LIBS) -mostlyclean-noinstPROGRAMS: +mostlyclean-binPROGRAMS: + +clean-binPROGRAMS: + -test -z "$(bin_PROGRAMS)" || rm -f $(bin_PROGRAMS) -clean-noinstPROGRAMS: - -test -z "$(noinst_PROGRAMS)" || rm -f $(noinst_PROGRAMS) +distclean-binPROGRAMS: -distclean-noinstPROGRAMS: +maintainer-clean-binPROGRAMS: -maintainer-clean-noinstPROGRAMS: +install-binPROGRAMS: $(bin_PROGRAMS) + @$(NORMAL_INSTALL) + $(mkinstalldirs) $(DESTDIR)$(bindir) + @list='$(bin_PROGRAMS)'; for p in $$list; do \ + if test -f $$p; then \ + f="`echo $$p|sed -e 's/$(EXEEXT)$$//' -e '$(transform)' -e 's/$$/$(EXEEXT)/'`"; \ + echo " $(LIBTOOL) --mode=install $(INSTALL_PROGRAM) $(INSTALL_STRIP_FLAG) $$p $(DESTDIR)$(bindir)/$$f"; \ + $(LIBTOOL) --mode=install $(INSTALL_PROGRAM) $(INSTALL_STRIP_FLAG) $$p $(DESTDIR)$(bindir)/$$f; \ + else :; fi; \ + done + +uninstall-binPROGRAMS: + @$(NORMAL_UNINSTALL) + @list='$(bin_PROGRAMS)'; for p in $$list; do \ + f="`echo $$p|sed -e 's/$(EXEEXT)$$//' -e '$(transform)' -e 's/$$/$(EXEEXT)/'`"; \ + echo " rm -f $(DESTDIR)$(bindir)/$$f"; \ + rm -f $(DESTDIR)$(bindir)/$$f; \ + done mk_cmds$(EXEEXT): $(mk_cmds_OBJECTS) $(mk_cmds_DEPENDENCIES) @rm -f mk_cmds$(EXEEXT) $(LINK) $(mk_cmds_LDFLAGS) $(mk_cmds_OBJECTS) $(mk_cmds_LDADD) $(LIBS) +.c.o: + $(COMPILE) -c $< +.c.obj: + $(COMPILE) -c `cygpath -w $<` +.c.lo: + $(LTCOMPILE) -c -o $@ $< .l.c: $(LEX) $(AM_LFLAGS) $(LFLAGS) $< && mv $(LEX_OUTPUT_ROOT).c $@ .y.c: @@ -361,14 +389,17 @@ install-includeHEADERS: $(include_HEADERS) $(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; \ + f="`echo $$p | sed -e 's|^.*/||'`"; \ + echo " $(INSTALL_DATA) $$d$$p $(DESTDIR)$(includedir)/$$f"; \ + $(INSTALL_DATA) $$d$$p $(DESTDIR)$(includedir)/$$f; \ done uninstall-includeHEADERS: @$(NORMAL_UNINSTALL) - list='$(include_HEADERS)'; for p in $$list; do \ - rm -f $(DESTDIR)$(includedir)/$$p; \ + @list='$(include_HEADERS)'; for p in $$list; do \ + f="`echo $$p | sed -e 's|^.*/||'`"; \ + echo " rm -f $(DESTDIR)$(includedir)/$$f"; \ + rm -f $(DESTDIR)$(includedir)/$$f; \ done install-ssincludeHEADERS: $(ssinclude_HEADERS) @@ -376,35 +407,42 @@ install-ssincludeHEADERS: $(ssinclude_HEADERS) $(mkinstalldirs) $(DESTDIR)$(ssincludedir) @list='$(ssinclude_HEADERS)'; for p in $$list; do \ if test -f "$$p"; then d= ; else d="$(srcdir)/"; fi; \ - echo " $(INSTALL_DATA) $$d$$p $(DESTDIR)$(ssincludedir)/$$p"; \ - $(INSTALL_DATA) $$d$$p $(DESTDIR)$(ssincludedir)/$$p; \ + f="`echo $$p | sed -e 's|^.*/||'`"; \ + echo " $(INSTALL_DATA) $$d$$p $(DESTDIR)$(ssincludedir)/$$f"; \ + $(INSTALL_DATA) $$d$$p $(DESTDIR)$(ssincludedir)/$$f; \ done uninstall-ssincludeHEADERS: @$(NORMAL_UNINSTALL) - list='$(ssinclude_HEADERS)'; for p in $$list; do \ - rm -f $(DESTDIR)$(ssincludedir)/$$p; \ + @list='$(ssinclude_HEADERS)'; for p in $$list; do \ + f="`echo $$p | sed -e 's|^.*/||'`"; \ + echo " rm -f $(DESTDIR)$(ssincludedir)/$$f"; \ + rm -f $(DESTDIR)$(ssincludedir)/$$f; \ done tags: TAGS -ID: $(HEADERS) $(SOURCES) $(LISP) - list='$(SOURCES) $(HEADERS)'; \ - unique=`for i in $$list; do echo $$i; done | \ - awk ' { files[$$0] = 1; } \ +ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES) + list='$(SOURCES) $(HEADERS) $(TAGS_FILES)'; \ + unique=`for i in $$list; do \ + if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ + done | \ + $(AWK) ' { files[$$0] = 1; } \ END { for (i in files) print i; }'`; \ - here=`pwd` && cd $(srcdir) \ - && mkid -f$$here/ID $$unique $(LISP) + mkid -fID $$unique $(LISP) -TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) $(LISP) +TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ + $(TAGS_FILES) $(LISP) tags=; \ here=`pwd`; \ - list='$(SOURCES) $(HEADERS)'; \ - unique=`for i in $$list; do echo $$i; done | \ - awk ' { files[$$0] = 1; } \ + list='$(SOURCES) $(HEADERS) $(TAGS_FILES)'; \ + unique=`for i in $$list; do \ + if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ + 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) + || etags $(ETAGS_ARGS) $$tags $$unique $(LISP) mostlyclean-tags: @@ -417,17 +455,16 @@ maintainer-clean-tags: distdir = $(top_builddir)/$(PACKAGE)-$(VERSION)/$(subdir) -subdir = lib/sl - distdir: $(DISTFILES) @for file in $(DISTFILES); do \ d=$(srcdir); \ if test -d $$d/$$file; then \ - cp -pr $$/$$file $(distdir)/$$file; \ + cp -pR $$d/$$file $(distdir) \ + || exit 1; \ else \ test -f $(distdir)/$$file \ - || ln $$d/$$file $(distdir)/$$file 2> /dev/null \ - || cp -p $$d/$$file $(distdir)/$$file || :; \ + || cp -p $$d/$$file $(distdir)/$$file \ + || exit 1; \ fi; \ done $(MAKE) $(AM_MAKEFLAGS) top_distdir="$(top_distdir)" distdir="$(distdir)" dist-hook @@ -440,7 +477,7 @@ check-am: all-am check: check-am installcheck-am: installcheck: installcheck-am -install-exec-am: install-libLTLIBRARIES +install-exec-am: install-libLTLIBRARIES install-binPROGRAMS @$(NORMAL_INSTALL) $(MAKE) $(AM_MAKEFLAGS) install-exec-hook install-exec: install-exec-am @@ -452,16 +489,16 @@ 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-includeHEADERS \ - uninstall-ssincludeHEADERS +uninstall-am: uninstall-libLTLIBRARIES uninstall-binPROGRAMS \ + uninstall-includeHEADERS uninstall-ssincludeHEADERS 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 + $(MAKE) $(AM_MAKEFLAGS) INSTALL_STRIP_FLAG=-s install installdirs: - $(mkinstalldirs) $(DESTDIR)$(libdir) $(DESTDIR)$(includedir) \ - $(DESTDIR)$(ssincludedir) + $(mkinstalldirs) $(DESTDIR)$(libdir) $(DESTDIR)$(bindir) \ + $(DESTDIR)$(includedir) $(DESTDIR)$(ssincludedir) mostlyclean-generic: @@ -474,29 +511,30 @@ distclean-generic: -rm -f config.cache config.log stamp-h stamp-h[0-9]* maintainer-clean-generic: - -test -z "lexlparsehparsec" || rm -f lexl parseh parsec + -rm -f Makefile.in + -test -z "lex.cparse.hparse.c" || rm -f lex.c parse.h parse.c mostlyclean-am: mostlyclean-libLTLIBRARIES mostlyclean-compile \ - mostlyclean-libtool mostlyclean-noinstPROGRAMS \ + mostlyclean-libtool mostlyclean-binPROGRAMS \ mostlyclean-tags mostlyclean-generic mostlyclean: mostlyclean-am clean-am: clean-libLTLIBRARIES clean-compile clean-libtool \ - clean-noinstPROGRAMS clean-tags clean-generic \ + clean-binPROGRAMS clean-tags clean-generic \ mostlyclean-am clean: clean-am distclean-am: distclean-libLTLIBRARIES distclean-compile \ - distclean-libtool distclean-noinstPROGRAMS \ - distclean-tags distclean-generic clean-am + 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-noinstPROGRAMS maintainer-clean-tags \ + 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." @@ -508,15 +546,15 @@ 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-noinstPROGRAMS \ -distclean-noinstPROGRAMS clean-noinstPROGRAMS \ -maintainer-clean-noinstPROGRAMS uninstall-includeHEADERS \ -install-includeHEADERS uninstall-ssincludeHEADERS \ -install-ssincludeHEADERS 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 \ +maintainer-clean-libtool mostlyclean-binPROGRAMS distclean-binPROGRAMS \ +clean-binPROGRAMS maintainer-clean-binPROGRAMS uninstall-binPROGRAMS \ +install-binPROGRAMS uninstall-includeHEADERS install-includeHEADERS \ +uninstall-ssincludeHEADERS install-ssincludeHEADERS 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 install-strip \ installdirs mostlyclean-generic distclean-generic clean-generic \ maintainer-clean-generic clean mostlyclean distclean maintainer-clean @@ -526,7 +564,10 @@ install-suid-programs: 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 + echo "*"; \ + echo "* Failed to install $$x setuid root"; \ + echo "*"; \ + fi; done install-exec-hook: install-suid-programs @@ -538,8 +579,8 @@ install-build-headers:: $(include_HEADERS) $(build_HEADERZ) else file="$$f"; fi; \ if cmp -s $$file $(buildinclude)/$$f 2> /dev/null ; then \ : ; else \ - echo " cp $$file $(buildinclude)/$$f"; \ - cp $$file $(buildinclude)/$$f; \ + echo " $(CP) $$file $(buildinclude)/$$f"; \ + $(CP) $$file $(buildinclude)/$$f; \ fi ; \ done @@ -608,87 +649,8 @@ dist-cat8-mans: 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-cat-mans: + $(SHELL) $(top_srcdir)/cf/install-catman.sh "$(INSTALL_DATA)" "$(mkinstalldirs)" "$(srcdir)" "$(DESTDIR)$(mandir)" '$(CATMANEXT)' $(man_MANS) $(man1_MANS) $(man3_MANS) $(man5_MANS) $(man8_MANS) install-data-local: install-cat-mans diff --git a/crypto/heimdal/lib/sl/lex.l b/crypto/heimdal/lib/sl/lex.l index b7c1c44..c83e5d1 100644 --- a/crypto/heimdal/lib/sl/lex.l +++ b/crypto/heimdal/lib/sl/lex.l @@ -1,6 +1,6 @@ %{ /* - * Copyright (c) 1998 Kungliga Tekniska Högskolan + * Copyright (c) 1998 - 2000 Kungliga Tekniska Högskolan * (Royal Institute of Technology, Stockholm, Sweden). * All rights reserved. * @@ -32,14 +32,17 @@ * SUCH DAMAGE. */ +#undef ECHO + #include "make_cmds.h" #include "parse.h" -RCSID("$Id: lex.l,v 1.3 1999/12/02 16:58:55 joda Exp $"); +RCSID("$Id: lex.l,v 1.5 2000/12/05 09:21:46 joda Exp $"); static unsigned lineno = 1; -void error_message(char *, ...); -int getstring(void); +static int getstring(void); + +#define YY_NO_UNPUT %} @@ -66,7 +69,7 @@ yywrap () } #endif -int +static int getstring(void) { char x[128]; @@ -102,7 +105,7 @@ getstring(void) } void -error_message (char *format, ...) +error_message (const char *format, ...) { va_list args; diff --git a/crypto/heimdal/lib/sl/make_cmds.h b/crypto/heimdal/lib/sl/make_cmds.h index 24dbd60..6d64d97 100644 --- a/crypto/heimdal/lib/sl/make_cmds.h +++ b/crypto/heimdal/lib/sl/make_cmds.h @@ -1,5 +1,5 @@ /* - * Copyright (c) 1998 Kungliga Tekniska Högskolan + * Copyright (c) 1998 - 2000 Kungliga Tekniska Högskolan * (Royal Institute of Technology, Stockholm, Sweden). * All rights reserved. * @@ -31,7 +31,7 @@ * SUCH DAMAGE. */ -/* $Id: make_cmds.h,v 1.2 1999/12/02 16:58:55 joda Exp $ */ +/* $Id: make_cmds.h,v 1.3 2000/06/27 02:36:56 assar Exp $ */ #ifndef __MAKE_CMDS_H__ #define __MAKE_CMDS_H__ @@ -45,6 +45,8 @@ #include <stdlib.h> #include <stdarg.h> +#include <roken.h> + extern char *filename; extern char *table_name; extern int numerror; @@ -66,4 +68,9 @@ struct string_list { void add_command(char*, char*, struct string_list*, unsigned); +void error_message(const char *, ...) + __attribute__ ((format (printf, 1,2))); + +int yylex (void); + #endif /* __MAKE_CMDS_H__ */ diff --git a/crypto/heimdal/lib/sl/parse.y b/crypto/heimdal/lib/sl/parse.y index 18ef5ca..deff933 100644 --- a/crypto/heimdal/lib/sl/parse.y +++ b/crypto/heimdal/lib/sl/parse.y @@ -1,6 +1,6 @@ %{ /* - * Copyright (c) 1998, 1999 Kungliga Tekniska Högskolan + * Copyright (c) 1998 - 2000 Kungliga Tekniska Högskolan * (Royal Institute of Technology, Stockholm, Sweden). * All rights reserved. * @@ -33,10 +33,9 @@ */ #include "make_cmds.h" -RCSID("$Id: parse.y,v 1.6 1999/12/16 10:34:11 assar Exp $"); +RCSID("$Id: parse.y,v 1.7 2000/06/27 02:37:18 assar Exp $"); -void yyerror (char *s); -void error_message(char *, ...); +static void yyerror (char *s); struct string_list* append_string(struct string_list*, char*); void free_string_list(struct string_list *list); @@ -129,7 +128,7 @@ flag : STRING %% -void +static void yyerror (char *s) { error_message ("%s\n", s); diff --git a/crypto/heimdal/lib/sl/roken_rename.h b/crypto/heimdal/lib/sl/roken_rename.h index c668802..1d3d893 100644 --- a/crypto/heimdal/lib/sl/roken_rename.h +++ b/crypto/heimdal/lib/sl/roken_rename.h @@ -1,5 +1,5 @@ /* - * Copyright (c) 1998 Kungliga Tekniska Högskolan + * Copyright (c) 1998 - 2000 Kungliga Tekniska Högskolan * (Royal Institute of Technology, Stockholm, Sweden). * All rights reserved. * @@ -31,7 +31,7 @@ * SUCH DAMAGE. */ -/* $Id: roken_rename.h,v 1.3 1999/12/02 16:58:55 joda Exp $ */ +/* $Id: roken_rename.h,v 1.4 2000/05/31 20:07:56 assar Exp $ */ #ifndef __roken_rename_h__ #define __roken_rename_h__ @@ -57,5 +57,8 @@ #ifndef HAVE_VSNPRINTF #define vsnprintf _sl_vsnprintf #endif +#ifndef HAVE_STRUPR +#define strupr _sl_strupr +#endif #endif /* __roken_rename_h__ */ diff --git a/crypto/heimdal/lib/sl/sl.c b/crypto/heimdal/lib/sl/sl.c index 688ca8b..ebc7657 100644 --- a/crypto/heimdal/lib/sl/sl.c +++ b/crypto/heimdal/lib/sl/sl.c @@ -1,5 +1,5 @@ /* - * Copyright (c) 1995, 1996, 1997, 1998 Kungliga Tekniska Högskolan + * Copyright (c) 1995 - 2001 Kungliga Tekniska Högskolan * (Royal Institute of Technology, Stockholm, Sweden). * All rights reserved. * @@ -33,10 +33,101 @@ #ifdef HAVE_CONFIG_H #include <config.h> -RCSID("$Id: sl.c,v 1.25 1999/12/02 16:58:55 joda Exp $"); +RCSID("$Id: sl.c,v 1.28 2001/01/26 14:58:26 joda Exp $"); #endif #include "sl_locl.h" +#include <setjmp.h> + +static size_t +print_sl (FILE *stream, int mdoc, int longp, SL_cmd *c) + __attribute__ ((unused)); + +static size_t +print_sl (FILE *stream, int mdoc, int longp, SL_cmd *c) +{ + if(mdoc){ + if(longp) + fprintf(stream, "= Ns"); + fprintf(stream, " Ar "); + }else + if (longp) + putc ('=', stream); + else + putc (' ', stream); + + return 1; +} + +static void +mandoc_template(SL_cmd *cmds, + const char *extra_string) +{ + SL_cmd *c, *prev; + char timestr[64], cmd[64]; + const char *p; + time_t t; + + printf(".\\\" Things to fix:\n"); + printf(".\\\" * correct section, and operating system\n"); + printf(".\\\" * remove Op from mandatory flags\n"); + printf(".\\\" * use better macros for arguments (like .Pa for files)\n"); + printf(".\\\"\n"); + t = time(NULL); + strftime(timestr, sizeof(timestr), "%b %d, %Y", localtime(&t)); + printf(".Dd %s\n", timestr); + p = strrchr(__progname, '/'); + if(p) p++; else p = __progname; + strncpy(cmd, p, sizeof(cmd)); + cmd[sizeof(cmd)-1] = '\0'; + strupr(cmd); + + printf(".Dt %s SECTION\n", cmd); + printf(".Os OPERATING_SYSTEM\n"); + printf(".Sh NAME\n"); + printf(".Nm %s\n", p); + printf(".Nd\n"); + printf("in search of a description\n"); + printf(".Sh SYNOPSIS\n"); + printf(".Nm\n"); + for(c = cmds; c->name; ++c) { +/* if (c->func == NULL) + continue; */ + printf(".Op Fl %s", c->name); +/* print_sl(stdout, 1, 0, c);*/ + printf("\n"); + + } + if (extra_string && *extra_string) + printf (".Ar %s\n", extra_string); + printf(".Sh DESCRIPTION\n"); + printf("Supported options:\n"); + printf(".Bl -tag -width Ds\n"); + prev = NULL; + for(c = cmds; c->name; ++c) { + if (c->func) { + if (prev) + printf ("\n%s\n", prev->usage); + + printf (".It Fl %s", c->name); + prev = c; + } else + printf (", %s\n", c->name); + } + if (prev) + printf ("\n%s\n", prev->usage); + + printf(".El\n"); + printf(".\\\".Sh ENVIRONMENT\n"); + printf(".\\\".Sh FILES\n"); + printf(".\\\".Sh EXAMPLES\n"); + printf(".\\\".Sh DIAGNOSTICS\n"); + printf(".\\\".Sh SEE ALSO\n"); + printf(".\\\".Sh STANDARDS\n"); + printf(".\\\".Sh HISTORY\n"); + printf(".\\\".Sh AUTHORS\n"); + printf(".\\\".Sh BUGS\n"); +} static SL_cmd * sl_match (SL_cmd *cmds, char *cmd, int exactp) @@ -66,6 +157,11 @@ sl_help (SL_cmd *cmds, int argc, char **argv) { SL_cmd *c, *prev_c; + if (getenv("SLMANDOC")) { + mandoc_template(cmds, NULL); + return; + } + if (argc == 1) { prev_c = NULL; for (c = cmds; c->name; ++c) { @@ -178,9 +274,28 @@ sl_make_argv(char *line, int *ret_argc, char ***ret_argv) return 0; } +static jmp_buf sl_jmp; + +static void sl_sigint(int sig) +{ + longjmp(sl_jmp, 1); +} + +static char *sl_readline(const char *prompt) +{ + char *s; + void (*old)(int); + old = signal(SIGINT, sl_sigint); + if(setjmp(sl_jmp)) + printf("\n"); + s = readline((char*)prompt); + signal(SIGINT, old); + return s; +} + /* return values: 0 on success, -1 on fatal error, or return value of command */ int -sl_command_loop(SL_cmd *cmds, char *prompt, void **data) +sl_command_loop(SL_cmd *cmds, const char *prompt, void **data) { int ret = 0; char *buf; @@ -188,7 +303,7 @@ sl_command_loop(SL_cmd *cmds, char *prompt, void **data) char **argv; ret = 0; - buf = readline(prompt); + buf = sl_readline(prompt); if(buf == NULL) return 1; @@ -213,7 +328,7 @@ sl_command_loop(SL_cmd *cmds, char *prompt, void **data) } int -sl_loop(SL_cmd *cmds, char *prompt) +sl_loop(SL_cmd *cmds, const char *prompt) { void *data = NULL; int ret; @@ -221,3 +336,11 @@ sl_loop(SL_cmd *cmds, char *prompt) ; return ret; } + +void +sl_apropos (SL_cmd *cmd, const char *topic) +{ + for (; cmd->name != NULL; ++cmd) + if (cmd->usage != NULL && strstr(cmd->usage, topic) != NULL) + printf ("%-20s%s\n", cmd->name, cmd->usage); +} diff --git a/crypto/heimdal/lib/sl/sl.h b/crypto/heimdal/lib/sl/sl.h index 1a6d3fa..5b3e4b7 100644 --- a/crypto/heimdal/lib/sl/sl.h +++ b/crypto/heimdal/lib/sl/sl.h @@ -1,5 +1,5 @@ /* - * Copyright (c) 1995, 1996, 1997, 1998 Kungliga Tekniska Högskolan + * Copyright (c) 1995 - 2000 Kungliga Tekniska Högskolan * (Royal Institute of Technology, Stockholm, Sweden). * All rights reserved. * @@ -31,11 +31,13 @@ * SUCH DAMAGE. */ -/* $Id: sl.h,v 1.7 1999/12/02 16:58:55 joda Exp $ */ +/* $Id: sl.h,v 1.9 2001/01/26 14:58:41 joda Exp $ */ #ifndef _SL_H #define _SL_H +#define SL_BADCOMMAND -1 + typedef int (*cmd_func)(int, char **); struct sl_cmd { @@ -48,10 +50,11 @@ struct sl_cmd { typedef struct sl_cmd SL_cmd; void sl_help (SL_cmd *, int argc, char **argv); -int sl_loop (SL_cmd *, char *prompt); -int sl_command_loop (SL_cmd *cmds, char *prompt, void **data); +int sl_loop (SL_cmd *, const char *prompt); +int sl_command_loop (SL_cmd *cmds, const char *prompt, void **data); int sl_command (SL_cmd *cmds, int argc, char **argv); int sl_make_argv(char*, int*, char***); +void sl_apropos (SL_cmd *cmd, const char *topic); #endif /* _SL_H */ diff --git a/crypto/heimdal/lib/sl/ss.c b/crypto/heimdal/lib/sl/ss.c index f3c0546..7655a9e 100644 --- a/crypto/heimdal/lib/sl/ss.c +++ b/crypto/heimdal/lib/sl/ss.c @@ -1,5 +1,5 @@ /* - * Copyright (c) 1998 Kungliga Tekniska Högskolan + * Copyright (c) 1998 - 2000 Kungliga Tekniska Högskolan * (Royal Institute of Technology, Stockholm, Sweden). * All rights reserved. * @@ -35,7 +35,7 @@ #include <com_err.h> #include "ss.h" -RCSID("$Id: ss.c,v 1.4 1999/12/02 16:58:55 joda Exp $"); +RCSID("$Id: ss.c,v 1.6 2000/05/25 00:14:58 assar Exp $"); struct ss_subst { char *name; @@ -55,14 +55,34 @@ ss_create_invocation(const char *subsystem, int *code) { struct ss_subst *ss; + if(num_subsystems >= sizeof(subsystems) / sizeof(subsystems[0])) { *code = 17; return 0; } ss = &subsystems[num_subsystems]; - ss->name = subsystem ? strdup(subsystem) : NULL; - ss->version = version ? strdup(version) : NULL; - ss->info = info ? strdup(info) : NULL; + ss->name = ss->version = ss->info = NULL; + if (subsystem != NULL) { + ss->name = strdup (subsystem); + if (ss->name == NULL) { + *code = ENOMEM; + return 0; + } + } + if (version != NULL) { + ss->version = strdup (version); + if (ss->version == NULL) { + *code = ENOMEM; + return 0; + } + } + if (info != NULL) { + ss->info = strdup (info); + if (ss->info == NULL) { + *code = ENOMEM; + return 0; + } + } ss->table = table; *code = 0; return num_subsystems++; @@ -87,8 +107,12 @@ int ss_execute_command(int index, char **argv) { int argc = 0; + int ret; + while(argv[argc++]); - sl_command(subsystems[index].table, argc, argv); + ret = sl_command(subsystems[index].table, argc, argv); + if (ret == SL_BADCOMMAND) + return SS_ET_COMMAND_NOT_FOUND; return 0; } @@ -98,10 +122,15 @@ ss_execute_line (int index, const char *line) char *buf = strdup(line); int argc; char **argv; + int ret; + if (buf == NULL) + return ENOMEM; sl_make_argv(buf, &argc, &argv); - sl_command(subsystems[index].table, argc, argv); + ret = sl_command(subsystems[index].table, argc, argv); free(buf); + if (ret == SL_BADCOMMAND) + return SS_ET_COMMAND_NOT_FOUND; return 0; } @@ -109,9 +138,9 @@ int ss_listen (int index) { char *prompt = malloc(strlen(subsystems[index].name) + 3); - if(prompt == NULL) { - abort(); - } + if (prompt == NULL) + return ENOMEM; + strcpy(prompt, subsystems[index].name); strcat(prompt, ": "); sl_loop(subsystems[index].table, prompt); diff --git a/crypto/heimdal/lib/sl/ss.h b/crypto/heimdal/lib/sl/ss.h index 0d9d297..0149fa1 100644 --- a/crypto/heimdal/lib/sl/ss.h +++ b/crypto/heimdal/lib/sl/ss.h @@ -1,5 +1,5 @@ /* - * Copyright (c) 1998 Kungliga Tekniska Högskolan + * Copyright (c) 1998 - 2000 Kungliga Tekniska Högskolan * (Royal Institute of Technology, Stockholm, Sweden). * All rights reserved. * @@ -30,7 +30,7 @@ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF * SUCH DAMAGE. */ -/* $Id: ss.h,v 1.2 1999/12/02 16:58:55 joda Exp $ */ +/* $Id: ss.h,v 1.3 2000/05/25 00:15:21 assar Exp $ */ /* SS compatibility for SL */ @@ -52,4 +52,6 @@ int ss_listen (int); void ss_perror (int, long, const char*); int ss_quit (int argc, char**); +#define SS_ET_COMMAND_NOT_FOUND (-1) + #endif /* __ss_h__ */ |