1
0
Fork 0
mirror of git://git.code.sf.net/p/cdesktopenv/code synced 2025-03-09 15:50:02 +00:00
cde/src/cmd/ksh93/include/fault.h
Martijn Dekker f9c127e39e Remove legacy code for older libast versions
Since ksh 93u+m comes bundled with libast 20111111, there's no need
to support older versions, so this is another cleanup opportunity.

src/cmd/ksh93/include/defs.h:
- Throw an #error if AST_VERSION is undefined or < 20111111.
  (Note that _AST_VERSION is the same as AST_VERSION, but the
  latter is newer and preferred; see src/lib/libast/features/api)

All other changed files:
- Remove legacy code for versions older than the currently used
  versions, which are:
  _AST_VERSION    20111111
  ERROR_VERSION   20100309
  GLOB_VERSION    20060717
  OPT_VERSION     20070319
  SFIO_VERSION    20090915
  VMALLOC_VERSION 20110808
2020-09-04 02:31:39 +02:00

123 lines
3.8 KiB
C

/***********************************************************************
* *
* This software is part of the ast package *
* Copyright (c) 1982-2011 AT&T Intellectual Property *
* and is licensed under the *
* Eclipse Public License, Version 1.0 *
* by AT&T Intellectual Property *
* *
* A copy of the License is available at *
* http://www.eclipse.org/org/documents/epl-v10.html *
* (with md5 checksum b35adb5213ca9657e911e9befb180842) *
* *
* Information and Software Systems Research *
* AT&T Research *
* Florham Park NJ *
* *
* David Korn <dgk@research.att.com> *
* *
***********************************************************************/
#pragma prototyped
#ifndef SH_SIGBITS
/*
* UNIX shell
* S. R. Bourne
* Rewritten by David Korn
*
*/
#include <sig.h>
#include <setjmp.h>
#include <error.h>
#include <sfio.h>
#include "FEATURE/setjmp"
#include "FEATURE/sigfeatures"
#ifndef SIGWINCH
# ifdef SIGWIND
# define SIGWINCH SIGWIND
# else
# ifdef SIGWINDOW
# define SIGWINCH SIGWINDOW
# endif
# endif
#endif
typedef void (*SH_SIGTYPE)(int,void(*)(int));
#define SH_FORKLIM 16 /* fork timeout interval */
#define SH_TRAP 0200 /* bit for internal traps */
#define SH_ERRTRAP 0 /* trap for non-zero exit status */
#define SH_KEYTRAP 1 /* trap for keyboard event */
#define SH_DEBUGTRAP 4 /* must be last internal trap */
#define SH_SIGBITS 8
#define SH_SIGFAULT 1 /* signal handler is sh_fault */
#define SH_SIGOFF 2 /* signal handler is SIG_IGN */
#define SH_SIGSET 4 /* pending signal */
#define SH_SIGTRAP 010 /* pending trap */
#define SH_SIGDONE 020 /* default is exit */
#define SH_SIGIGNORE 040 /* default is ignore signal */
#define SH_SIGINTERACTIVE 0100 /* handle interactive specially */
#define SH_SIGTSTP 0200 /* tstp signal received */
#define SH_SIGALRM 0200 /* timer alarm received */
#define SH_SIGTERM SH_SIGOFF /* term signal received */
#define SH_SIGRUNTIME 0400 /* runtime value */
#define SH_SIGRTMIN 0 /* sh.sigruntime[] index */
#define SH_SIGRTMAX 1 /* sh.sigruntime[] index */
/*
* These are longjmp values
*/
#define SH_JMPDOT 2
#define SH_JMPEVAL 3
#define SH_JMPTRAP 4
#define SH_JMPIO 5
#define SH_JMPCMD 6
#define SH_JMPFUN 7
#define SH_JMPERRFN 8
#define SH_JMPSUB 9
#define SH_JMPERREXIT 10
#define SH_JMPEXIT 11
#define SH_JMPSCRIPT 12
struct openlist
{
Sfio_t *strm;
struct openlist *next;
};
struct checkpt
{
sigjmp_buf buff;
sigjmp_buf *prev;
int topfd;
int mode;
struct openlist *olist;
Error_context_t err;
};
#define sh_pushcontext(shp,bp,n)( (bp)->mode=(n) , (bp)->olist=0, \
(bp)->topfd=shp->topfd, (bp)->prev=shp->jmplist, \
(bp)->err = *ERROR_CONTEXT_BASE, \
shp->jmplist = (sigjmp_buf*)(&(bp)->buff) \
)
#define sh_popcontext(shp,bp) (shp->jmplist=(bp)->prev, errorpop(&((bp)->err)))
extern void sh_fault(int);
extern void sh_done(void*,int);
extern void sh_sigclear(int);
extern void sh_sigdone(void);
extern void sh_siginit(void*);
extern void sh_sigtrap(int);
extern void sh_sigreset(int);
extern void *sh_timeradd(unsigned long,int ,void (*)(void*),void*);
extern void timerdel(void*);
extern const char e_alarm[];
#endif /* !SH_SIGBITS */