slang.h   slang.h 
#ifndef DAVIS_SLANG_H_ #ifndef DAVIS_SLANG_H_
#define DAVIS_SLANG_H_ #define DAVIS_SLANG_H_
/* -*- mode: C; mode: fold; -*- */ /* -*- mode: C; mode: fold; -*- */
/* /*
Copyright (C) 2004-2008 John E. Davis Copyright (C) 2004-2009 John E. Davis
This file is part of the S-Lang Library. This file is part of the S-Lang Library.
The S-Lang Library is free software; you can redistribute it and/or The S-Lang Library is free software; you can redistribute it and/or
modify it under the terms of the GNU General Public License as modify it under the terms of the GNU General Public License as
published by the Free Software Foundation; either version 2 of the published by the Free Software Foundation; either version 2 of the
License, or (at your option) any later version. License, or (at your option) any later version.
The S-Lang Library is distributed in the hope that it will be useful, The S-Lang Library is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
General Public License for more details. General Public License for more details.
You should have received a copy of the GNU General Public License You should have received a copy of the GNU General Public License
along with this library; if not, write to the Free Software along with this library; if not, write to the Free Software
Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307,
USA. USA.
*/ */
#define SLANG_VERSION 20104 #define SLANG_VERSION 20200
#define SLANG_VERSION_STRING "2.1.4" #define SLANG_VERSION_STRING "2.2.0"
/* #ifdef __DATE__ */ /* #ifdef __DATE__ */
/* # define SLANG_VERSION_STRING SLANG_VERSION_STRING0 " " __DATE__ */ /* # define SLANG_VERSION_STRING SLANG_VERSION_STRING0 " " __DATE__ */
/* #else */ /* #else */
/* # define SLANG_VERSION_STRING SLANG_VERSION_STRING0 */ /* # define SLANG_VERSION_STRING SLANG_VERSION_STRING0 */
/* #endif */ /* #endif */
/*{{{ System Dependent Macros and Typedefs */ /*{{{ System Dependent Macros and Typedefs */
#if defined(__WATCOMC__) && defined(DOS) #if defined(__WATCOMC__) && defined(DOS)
# ifndef __MSDOS__ # ifndef __MSDOS__
# define __MSDOS__ # define __MSDOS__
skipping to change at line 403 skipping to change at line 403
SL_EXTERN int SLwchar_apply_char_map (SLwchar_Map_Type *map, SLwchar_Type * input, SLwchar_Type *output, unsigned int num); SL_EXTERN int SLwchar_apply_char_map (SLwchar_Map_Type *map, SLwchar_Type * input, SLwchar_Type *output, unsigned int num);
/* This function returns a malloced string */ /* This function returns a malloced string */
SLuchar_Type *SLuchar_apply_char_map (SLwchar_Map_Type *map, SLuchar_Type * str); SLuchar_Type *SLuchar_apply_char_map (SLwchar_Map_Type *map, SLuchar_Type * str);
/*}}}*/ /*}}}*/
/*{{{ Interpreter Typedefs */ /*{{{ Interpreter Typedefs */
typedef unsigned int SLtype; typedef unsigned int SLtype;
/* typedef unsigned short SLtype; */ #define SLANG_SLTYPE_INT_TYPE SLANG_UINT_TYPE
typedef struct _pSLang_Name_Type typedef struct _pSLang_Name_Type
{ {
SLFUTURE_CONST char *name; SLFUTURE_CONST char *name;
struct _pSLang_Name_Type *next; struct _pSLang_Name_Type *next;
unsigned char name_type; unsigned char name_type;
/* These values here map directly to byte codes. See _slang.h. /* These values here map directly to byte codes. See _slang.h.
*/ */
#define SLANG_LVARIABLE 0x01 #define SLANG_LVARIABLE 0x01
#define SLANG_GVARIABLE 0x02 #define SLANG_GVARIABLE 0x02
skipping to change at line 769 skipping to change at line 769
#define SLMATH_ATANH 16 #define SLMATH_ATANH 16
#define SLMATH_ASINH 17 #define SLMATH_ASINH 17
#define SLMATH_ACOSH 18 #define SLMATH_ACOSH 18
#define SLMATH_TODOUBLE 19 #define SLMATH_TODOUBLE 19
#define SLMATH_CONJ 20 #define SLMATH_CONJ 20
#define SLMATH_ISINF 21 #define SLMATH_ISINF 21
#define SLMATH_ISNAN 22 #define SLMATH_ISNAN 22
#define SLMATH_FLOOR 23 #define SLMATH_FLOOR 23
#define SLMATH_CEIL 24 #define SLMATH_CEIL 24
#define SLMATH_ROUND 25 #define SLMATH_ROUND 25
#define SLMATH_EXPM1 26
#define SLMATH_LOG1P 27
SL_EXTERN int SLclass_add_unary_op (SLtype, SL_EXTERN int SLclass_add_unary_op (SLtype,
int (*) (int, int (*) (int,
SLtype, VOID_STAR, unsigned int, SLtype, VOID_STAR, unsigned int,
VOID_STAR), VOID_STAR),
int (*) (int, SLtype, SLtype *)); int (*) (int, SLtype, SLtype *));
SL_EXTERN int SL_EXTERN int
SLclass_add_app_unary_op (SLtype, SLclass_add_app_unary_op (SLtype,
int (*) (int, int (*) (int,
skipping to change at line 864 skipping to change at line 866
VOID_STAR data; VOID_STAR data;
SLuindex_Type num_elements; SLuindex_Type num_elements;
unsigned int num_dims; unsigned int num_dims;
SLindex_Type dims [SLARRAY_MAX_DIMS]; SLindex_Type dims [SLARRAY_MAX_DIMS];
VOID_STAR (*index_fun)_PROTO((struct _pSLang_Array_Type *, SLindex_Type *)); VOID_STAR (*index_fun)_PROTO((struct _pSLang_Array_Type *, SLindex_Type *));
/* This function is designed to allow a type to store an array in /* This function is designed to allow a type to store an array in
* any manner it chooses. This function returns the address of the data * any manner it chooses. This function returns the address of the data
* value at the specified index location. * value at the specified index location.
*/ */
unsigned int flags; unsigned int flags;
#define SLARR_DATA_VALUE_IS_READ_ONLY 1 #define SLARR_DATA_VALUE_IS_READ_ONLY 0x0001
#define SLARR_DATA_VALUE_IS_POINTER 2 #define SLARR_DATA_VALUE_IS_POINTER 0x0002
#define SLARR_DATA_VALUE_IS_RANGE 4 #define SLARR_DATA_VALUE_IS_RANGE 0x0004
#define SLARR_DATA_VALUE_IS_INTRINSIC 8 #define SLARR_DATA_VALUE_IS_INTRINSIC 0x0008
#define SLARR_DERIVED_FROM_SCALAR 0x0100
SLang_Class_Type *cl; SLang_Class_Type *cl;
unsigned int num_refs; unsigned int num_refs;
void (*free_fun)_PROTO((struct _pSLang_Array_Type *)); void (*free_fun)_PROTO((struct _pSLang_Array_Type *));
VOID_STAR client_data; VOID_STAR client_data;
} }
SLang_Array_Type; SLang_Array_Type;
extern int _pSLarray_convert_to_array (VOID_STAR cd,
int (*get_type)(VOID_STAR, SLuindex_T
ype, SLtype *),
int (*push)(VOID_STAR, SLuindex_Type)
,
SLuindex_Type num_objects, SLtype typ
e);
SL_EXTERN int SLang_pop_array_of_type (SLang_Array_Type **atp, SLtype type) ; SL_EXTERN int SLang_pop_array_of_type (SLang_Array_Type **atp, SLtype type) ;
SL_EXTERN int SLang_pop_array (SLang_Array_Type **atp, int convert_scalar); SL_EXTERN int SLang_pop_array (SLang_Array_Type **atp, int convert_scalar);
SL_EXTERN int SLang_push_array (SLang_Array_Type *at, int do_free); SL_EXTERN int SLang_push_array (SLang_Array_Type *at, int do_free);
SL_EXTERN void SLang_free_array (SLang_Array_Type *at); SL_EXTERN void SLang_free_array (SLang_Array_Type *at);
SL_EXTERN SLang_Array_Type *SLang_create_array (SLtype, int, VOID_STAR, SLi ndex_Type *, unsigned int); SL_EXTERN SLang_Array_Type *SLang_create_array (SLtype, int, VOID_STAR, SLi ndex_Type *, unsigned int);
SL_EXTERN SLang_Array_Type *SLang_duplicate_array (SLang_Array_Type *); SL_EXTERN SLang_Array_Type *SLang_duplicate_array (SLang_Array_Type *);
SL_EXTERN int SLang_get_array_element (SLang_Array_Type *, SLindex_Type *, VOID_STAR); SL_EXTERN int SLang_get_array_element (SLang_Array_Type *, SLindex_Type *, VOID_STAR);
SL_EXTERN int SLang_set_array_element (SLang_Array_Type *, SLindex_Type *, VOID_STAR); SL_EXTERN int SLang_set_array_element (SLang_Array_Type *, SLindex_Type *, VOID_STAR);
typedef int SLarray_Contract_Fun_Type (VOID_STAR xp, unsigned int increment , unsigned int num, VOID_STAR yp); typedef int SLarray_Contract_Fun_Type (VOID_STAR xp, unsigned int increment , unsigned int num, VOID_STAR yp);
skipping to change at line 1989 skipping to change at line 1997
/*}}}*/ /*}}}*/
/*{{{ Signal Routines */ /*{{{ Signal Routines */
typedef void SLSig_Fun_Type (int); typedef void SLSig_Fun_Type (int);
SL_EXTERN SLSig_Fun_Type *SLsignal (int, SLSig_Fun_Type *); SL_EXTERN SLSig_Fun_Type *SLsignal (int, SLSig_Fun_Type *);
SL_EXTERN SLSig_Fun_Type *SLsignal_intr (int, SLSig_Fun_Type *); SL_EXTERN SLSig_Fun_Type *SLsignal_intr (int, SLSig_Fun_Type *);
SL_EXTERN int SLsig_block_signals (void); SL_EXTERN int SLsig_block_signals (void);
SL_EXTERN int SLsig_unblock_signals (void); SL_EXTERN int SLsig_unblock_signals (void);
SL_EXTERN int SLsystem (SLFUTURE_CONST char *); SL_EXTERN int SLsystem (SLFUTURE_CONST char *);
SL_EXTERN int SLsystem_intr (SLFUTURE_CONST char *);
/* Make a signal off-limits to the interpreter */ /* Make a signal off-limits to the interpreter */
SL_EXTERN int SLsig_forbid_signal (int); SL_EXTERN int SLsig_forbid_signal (int);
SL_EXTERN SLFUTURE_CONST char *SLerrno_strerror (int); SL_EXTERN SLFUTURE_CONST char *SLerrno_strerror (int);
SL_EXTERN int SLerrno_set_errno (int); SL_EXTERN int SLerrno_set_errno (int);
/*}}}*/ /*}}}*/
/* Functions for dealing with the FPU */ /* Functions for dealing with the FPU */
 End of changes. 7 change blocks. 
8 lines changed or deleted 20 lines changed or added

This html diff was produced by rfcdiff 1.41. The latest version is available from http://tools.ietf.org/tools/rfcdiff/