diff options
Diffstat (limited to 'lib/libss/list_rqs.c')
-rw-r--r-- | lib/libss/list_rqs.c | 125 |
1 files changed, 0 insertions, 125 deletions
diff --git a/lib/libss/list_rqs.c b/lib/libss/list_rqs.c deleted file mode 100644 index ae5e2c9147d..00000000000 --- a/lib/libss/list_rqs.c +++ /dev/null @@ -1,125 +0,0 @@ -/* $OpenBSD: list_rqs.c,v 1.2 1998/06/03 16:20:27 deraadt Exp $ */ - -/*- - * Copyright 1987, 1988 by the Student Information Processing Board - * of the Massachusetts Institute of Technology - * - * Permission to use, copy, modify, and distribute this software - * and its documentation for any purpose and without fee is - * hereby granted, provided that the above copyright notice - * appear in all copies and that both that copyright notice and - * this permission notice appear in supporting documentation, - * and that the names of M.I.T. and the M.I.T. S.I.P.B. not be - * used in advertising or publicity pertaining to distribution - * of the software without specific, written prior permission. - * M.I.T. and the M.I.T. S.I.P.B. make no representations about - * the suitability of this software for any purpose. It is - * provided "as is" without express or implied warranty. - */ - -#include "ss_internal.h" -#include <signal.h> -#include <setjmp.h> -#include <sys/types.h> -#include <sys/wait.h> - -#ifdef lint /* "lint returns a value which is sometimes ignored" */ -#define DONT_USE(x) x=x; -#else /* !lint */ -#define DONT_USE(x) ; -#endif /* lint */ - -static char const twentyfive_spaces[26] = - " "; -static char const NL[2] = "\n"; - -void -ss_list_requests(argc, argv, sci_idx, info_ptr) - int argc; - const char * const *argv; - int sci_idx; - pointer info_ptr; -{ - register ss_request_entry *entry; - register char const * const *name; - register int spacing; - register ss_request_table **table; - - char buffer[BUFSIZ]; - FILE *output; - int fd; -#ifndef NPOSIX - struct sigaction nsig, osig; - sigset_t nmask, omask; - int waitb; -#else - int (*func)(); - int mask; - union wait waitb; -#endif - - DONT_USE(argc); - DONT_USE(argv); - -#ifndef NPOSIX - sigemptyset(&nmask); - sigaddset(&nmask, SIGINT); - sigprocmask(SIG_BLOCK, &nmask, &omask); - - memset(&nsig, 0, sizeof nsig); - nsig.sa_handler = SIG_IGN; - sigemptyset(&nsig.sa_mask); - nsig.sa_flags = 0; - sigaction(SIGINT, &nsig, &osig); -#else - mask = sigblock(sigmask(SIGINT)); - func = signal(SIGINT, SIG_IGN); -#endif - fd = ss_pager_create(); - output = fdopen(fd, "w"); -#ifndef NPOSIX - sigprocmask(SIG_SETMASK, &omask, (sigset_t *)0); -#else - sigsetmask(mask); -#endif - - fprintf (output, "Available %s requests:\n\n", - ss_info (sci_idx) -> subsystem_name); - - for (table = ss_info(sci_idx)->rqt_tables; *table; table++) { - entry = (*table)->requests; - for (; entry->command_names; entry++) { - spacing = -2; - buffer[0] = '\0'; - if (entry->flags & SS_OPT_DONT_LIST) - continue; - for (name = entry->command_names; *name; name++) { - register int len = strlen(*name); - strncat(buffer, *name, len); - spacing += len + 2; - if (name[1]) { - strcat(buffer, ", "); - } - } - if (spacing > 23) { - strcat(buffer, NL); - fputs(buffer, output); - spacing = 0; - buffer[0] = '\0'; - } - strncat(buffer, twentyfive_spaces, 25-spacing); - strcat(buffer, entry->info_string); - strcat(buffer, NL); - fputs(buffer, output); - } - } - fclose(output); -#ifndef NO_FORK - wait(&waitb); -#endif -#ifndef NPOSIX - sigaction(SIGINT, &osig, (struct sigaction *)0); -#else - (void) signal(SIGINT, func); -#endif -} |