1
Fork 0
mirror of https://git.savannah.gnu.org/git/guile.git synced 2025-04-30 03:40:34 +02:00

* Remove deprecated macros and typenames.

* Rename header macros to SCM_<filename>_H.
* Prefer !SCM_<foo> over SCM_N<foo>.
This commit is contained in:
Dirk Herrmann 2001-08-31 11:17:06 +00:00
parent 0527e68763
commit b29058ffee
14 changed files with 142 additions and 242 deletions

View file

@ -1,3 +1,34 @@
2001-08-31 Dirk Herrmann <D.Herrmann@tu-bs.de>
* continuations.h (scm_contregs), debug.h (scm_debug_info,
scm_debug_frame, SCM_DSIDEVAL), filesys.h (SCM_OPDIRP), fports.h
(scm_fport), options.h (scm_option), snarf.h (SCM_CONST_LONG,
SCM_VCELL, SCM_GLOBAL_VCELL, SCM_VCELL_INIT,
SCM_GLOBAL_VCELL_INIT), srcprop.h (scm_srcprops,
scm_srcprops_chunk), stacks.h (scm_info_frame, scm_stack), unif.h
(scm_array, scm_array_dim, SCM_ARRAY_CONTIGUOUS, SCM_HUGE_LENGTH),
validate.h (SCM_FUNC_NAME, SCM_WTA, RETURN_SCM_WTA,
SCM_VALIDATE_NUMBER_COPY, SCM_VALIDATE_NUMBER_DEF_COPY,
SCM_VALIDATE_STRINGORSUBSTR, SCM_VALIDATE_ROSTRING,
SCM_VALIDATE_ROSTRING_COPY, SCM_VALIDATE_NULLORROSTRING_COPY,
SCM_VALIDATE_RWSTRING, SCM_VALIDATE_OPDIR): Removed.
* continuations.h (CONTINUATIONSH, SCM_CONTINUATIONS_H), filesys.h
(FILESYSH, SCM_FILESYS_H), fports.h (FPORTSH, SCM_FPORTS_H),
options.h (OPTIONSH, SCM_OPTIONS_H), regex-posix.h (REGEXPOSIXH,
SCM_REGEX_POSIX_H), snarf.h (LIBGUILE_SNARF_H, SCM_SNARF_H),
srcprop.h (SCM_SOURCE_PROPERTIES_H, SCM_SRCPROP_H), unif.h
(SCM_UNIFORM_VECTORS_H, SCM_UNIF_H), validate.h (SCM_VALIDATE_H__,
SCM_VALIDATE_H): Renamed the macros that are defined to inhibit
double inclusion of the same headers to the SCM_<filename>_H
format.
* debug.h (SCM_RESET_DEBUG_MODE), regex-posix.h (SCM_RGXP),
srcprop.h (SRCBRKP, PROCTRACEP), struct.h (SCM_STRUCTP),
validate.h (SCM_VALIDATE_THUNK, SCM_VALIDATE_ARRAY,
SCM_VALIDATE_VECTOR_OR_DVECTOR, SCM_VALIDATE_VTABLE): Prefer
!SCM_<foo> over SCM_N<foo>.
2001-08-31 Dirk Herrmann <D.Herrmann@tu-bs.de>
* _scm.h (_SCMH, SCM__SCM_H), alist.h (ALISTH, SCM_ALIST_H),

View file

@ -1,7 +1,8 @@
/* classes: h_files */
#ifndef CONTINUATIONSH
#define CONTINUATIONSH
#ifndef SCM_CONTINUATIONS_H
#define SCM_CONTINUATIONS_H
/* Copyright (C) 1995,1996,2000,2001 Free Software Foundation, Inc.
*
* This program is free software; you can redistribute it and/or modify
@ -42,7 +43,9 @@
* If you write modifications of your own for GUILE, it is your choice
* whether to permit this exception to apply to your modifications.
* If you do not wish that, delete this exception notice. */
#include "libguile/__scm.h"
@ -74,10 +77,6 @@ typedef struct
SCM_STACKITEM stack[1]; /* copied stack of size num_stack_items. */
} scm_t_contregs;
#if (SCM_DEBUG_DEPRECATED == 0)
# define scm_contregs scm_t_contregs
#endif
#define SCM_CONTINUATIONP(x) SCM_TYP16_PREDICATE (scm_tc16_continuation, x)
#define SCM_CONTREGS(x) ((scm_t_contregs *) SCM_CELL_WORD_1 (x))
@ -97,7 +96,7 @@ typedef struct
extern SCM scm_make_continuation (int *first);
extern void scm_init_continuations (void);
#endif /* CONTINUATIONSH */
#endif /* SCM_CONTINUATIONS_H */
/*
Local Variables:

View file

@ -2,7 +2,8 @@
#ifndef SCM_DEBUG_H
#define SCM_DEBUG_H
/* Copyright (C) 1995,1996,1998,1999,2000,2001 Free Software Foundation
/* Copyright (C) 1995,1996,1998,1999,2000,2001 Free Software Foundation, Inc.
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
@ -97,11 +98,11 @@ extern int scm_check_entry_p, scm_check_apply_p, scm_check_exit_p;
#define SCM_RESET_DEBUG_MODE \
do {\
CHECK_ENTRY = (SCM_ENTER_FRAME_P || SCM_BREAKPOINTS_P)\
&& SCM_NFALSEP (SCM_ENTER_FRAME_HDLR);\
&& !SCM_FALSEP (SCM_ENTER_FRAME_HDLR);\
CHECK_APPLY = (SCM_APPLY_FRAME_P || SCM_TRACE_P)\
&& SCM_NFALSEP (SCM_APPLY_FRAME_HDLR);\
&& !SCM_FALSEP (SCM_APPLY_FRAME_HDLR);\
CHECK_EXIT = (SCM_EXIT_FRAME_P || SCM_TRACE_P)\
&& SCM_NFALSEP (SCM_EXIT_FRAME_HDLR);\
&& !SCM_FALSEP (SCM_EXIT_FRAME_HDLR);\
scm_debug_mode = SCM_DEVAL_P || CHECK_ENTRY || CHECK_APPLY || CHECK_EXIT;\
scm_ceval_ptr = scm_debug_mode ? scm_deval : scm_ceval;\
} while (0)
@ -126,11 +127,6 @@ typedef struct scm_t_debug_frame
scm_t_debug_info *info;
} scm_t_debug_frame;
#if (SCM_DEBUG_DEPRECATED == 0)
# define scm_debug_info scm_t_debug_info
# define scm_debug_frame scm_t_debug_frame
#endif
#ifndef USE_THREADS
extern scm_t_debug_frame *scm_last_debug_frame;
#endif
@ -165,7 +161,6 @@ extern scm_t_debug_frame *scm_last_debug_frame;
#define SCM_CLEAR_MACROEXP(x) ((x).status &= ~SCM_MACROEXPF)
#define SCM_DEBUGGINGP scm_debug_mode
#define SCM_DSIDEVAL(x, env) if NIMP(x) scm_deval((x), (env))
/* {Debug Objects}
*/

View file

@ -1,7 +1,8 @@
/* classes: h_files */
#ifndef FILESYSH
#define FILESYSH
#ifndef SCM_FILESYS_H
#define SCM_FILESYS_H
/* Copyright (C) 1995,1997,1998,1999,2000,2001 Free Software Foundation, Inc.
*
* This program is free software; you can redistribute it and/or modify
@ -90,15 +91,7 @@ extern SCM scm_basename (SCM filename, SCM suffix);
extern void scm_init_filesys (void);
#if (SCM_DEBUG_DEPRECATED == 0)
#define SCM_OPDIRP(x) (SCM_DIRP (x) && (SCM_DIR_OPEN_P (x)))
#endif /* SCM_DEBUG_DEPRECATED == 0 */
#endif /* FILESYSH */
#endif /* SCM_FILESYS_H */
/*
Local Variables:

View file

@ -1,7 +1,8 @@
/* classes: h_files */
#ifndef FPORTSH
#define FPORTSH
#ifndef SCM_FPORTS_H
#define SCM_FPORTS_H
/* Copyright (C) 1995,1996,1997,1998,1999,2000,2001 Free Software Foundation, Inc.
*
* This program is free software; you can redistribute it and/or modify
@ -56,10 +57,6 @@ typedef struct scm_t_fport {
int fdes; /* file descriptor. */
} scm_t_fport;
#if (SCM_DEBUG_DEPRECATED == 0)
# define scm_fport scm_t_fport
#endif
extern scm_t_bits scm_tc16_fport;
#define SCM_FSTREAM(x) ((scm_t_fport *) SCM_STREAM (x))
@ -82,7 +79,7 @@ extern SCM scm_fdes_to_port (int fdes, char *mode, SCM name);
extern SCM scm_file_port_p (SCM obj);
extern void scm_init_fports (void);
#endif /* FPORTSH */
#endif /* SCM_FPORTS_H */
/*
Local Variables:

View file

@ -1,8 +1,9 @@
/* classes: h_files */
#ifndef OPTIONSH
#define OPTIONSH
/* Copyright (C) 1995,1996, 2000, 2001 Free Software Foundation
#ifndef SCM_OPTIONS_H
#define SCM_OPTIONS_H
/* Copyright (C) 1995,1996,2000,2001 Free Software Foundation, Inc.
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
@ -45,6 +46,7 @@
*
* The author can be reached at djurfeldt@nada.kth.se
* Mikael Djurfeldt, SANS/NADA KTH, 10044 STOCKHOLM, SWEDEN */
#include "libguile/__scm.h"
@ -64,9 +66,6 @@ typedef struct scm_t_option
char *doc;
} scm_t_option;
#if (SCM_DEBUG_DEPRECATED == 0)
# define scm_option scm_t_option
#endif
#define SCM_OPTION_BOOLEAN 0
#define SCM_OPTION_INTEGER 1
@ -77,7 +76,7 @@ extern SCM scm_options (SCM new_mode, scm_t_option options[], int n, const char
extern void scm_init_opts (SCM (*func) (SCM), scm_t_option options[], int n);
extern void scm_init_options (void);
#endif /* OPTIONSH */
#endif /* SCM_OPTIONS_H */
/*
Local Variables:

View file

@ -1,7 +1,8 @@
/* classes: h_files */
#ifndef POSIXH
#define POSIXH
#ifndef SCM_POSIX_H
#define SCM_POSIX_H
/* Copyright (C) 1995,1996,1997,1998,2000,2001 Free Software Foundation, Inc.
*
* This program is free software; you can redistribute it and/or modify
@ -42,6 +43,7 @@
* If you write modifications of your own for GUILE, it is your choice
* whether to permit this exception to apply to your modifications.
* If you do not wish that, delete this exception notice. */
#include "libguile/__scm.h"
@ -108,7 +110,7 @@ extern SCM scm_sethostname (SCM name);
extern SCM scm_gethostname (void);
extern void scm_init_posix (void);
#endif /* POSIXH */
#endif /* SCM_POSIX_H */
/*
Local Variables:

View file

@ -1,7 +1,7 @@
/* classes: h_files */
#ifndef REGEXPOSIXH
#define REGEXPOSIXH
#ifndef SCM_REGEX_POSIX_H
#define SCM_REGEX_POSIX_H
/* Copyright (C) 1997,1998,2000,2001 Free Software Foundation, Inc.
*
@ -42,22 +42,22 @@
*
* If you write modifications of your own for GUILE, it is your choice
* whether to permit this exception to apply to your modifications.
* If you do not wish that, delete this exception notice.
*/
* If you do not wish that, delete this exception notice. */
#include "libguile/__scm.h"
extern scm_t_bits scm_tc16_regex;
#define SCM_RGX(X) ((regex_t *) SCM_CELL_WORD_1 (X))
#define SCM_RGXP(X) (SCM_NIMP (X) && (SCM_CELL_TYPE (X) == scm_tc16_regex))
#define SCM_RGXP(X) (!SCM_IMP (X) && (SCM_CELL_TYPE (X) == scm_tc16_regex))
extern SCM scm_make_regexp (SCM pat, SCM flags);
SCM scm_regexp_p (SCM x);
extern SCM scm_regexp_exec (SCM rx, SCM str, SCM start, SCM flags);
extern void scm_init_regex_posix (void);
#endif
#endif /* SCM_REGEX_POSIX_H */
/*
Local Variables:

View file

@ -1,11 +1,9 @@
/* classes: h_files */
/* Macros for snarfing initialization actions from C source. */
#ifndef SCM_SNARF_H
#define SCM_SNARF_H
#ifndef LIBGUILE_SNARF_H
#define LIBGUILE_SNARF_H
/* Copyright (C) 1995, 96, 97, 98, 99, 2000, 2001 Free Software Foundation, Inc.
/* Copyright (C) 1995,1996,1997,1998,1999,2000,2001 Free Software Foundation, Inc.
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
@ -46,9 +44,10 @@
* whether to permit this exception to apply to your modifications.
* If you do not wish that, delete this exception notice. */
/* Macros for snarfing initialization actions from C source. */
#if defined(__cplusplus) || defined(GUILE_CPLUSPLUS_SNARF)
/* This used to be "SCM (*)(...)" but GCC on RedHat 7.1 doesn't seem
@ -191,36 +190,12 @@ SCM_SNARF_INIT(c_name = scm_permanent_object (scm_c_define (scheme_name, init_va
SCM_SNARF_HERE(SCM c_name) \
SCM_SNARF_INIT(c_name = scm_permanent_object (scm_c_define (scheme_name, init_val));)
#if (SCM_DEBUG_DEPRECATED == 0)
#define SCM_CONST_LONG(c_name, scheme_name,value) \
SCM_VCELL_INIT(c_name, scheme_name, scm_long2num(value))
#define SCM_VCELL(c_name, scheme_name) \
SCM_SNARF_HERE(static SCM c_name) \
SCM_SNARF_INIT(c_name = scm_permanent_object (scm_sysintern (scheme_name, SCM_BOOL_F));)
#define SCM_GLOBAL_VCELL(c_name, scheme_name) \
SCM_SNARF_HERE(SCM c_name) \
SCM_SNARF_INIT(c_name = scm_permanent_object (scm_sysintern (scheme_name, SCM_BOOL_F));)
#define SCM_VCELL_INIT(c_name, scheme_name, init_val) \
SCM_SNARF_HERE(static SCM c_name) \
SCM_SNARF_INIT(c_name = scm_permanent_object (scm_sysintern (scheme_name, init_val));)
#define SCM_GLOBAL_VCELL_INIT(c_name, scheme_name, init_val) \
SCM_SNARF_HERE(SCM c_name) \
SCM_SNARF_INIT(c_name = scm_permanent_object (scm_sysintern (scheme_name, init_val));)
#endif /* (SCM_DEBUG_DEPRECATED == 0) */
#ifdef SCM_MAGIC_SNARF_DOCS
#undef SCM_ASSERT
#define SCM_ASSERT(_cond, _arg, _pos, _subr) ^^ argpos _arg _pos __LINE__ ^^
#endif /* SCM_MAGIC_SNARF_DOCS */
#endif /* LIBGUILE_SNARF_H */
#endif /* SCM_SNARF_H */
/*
Local Variables:

View file

@ -1,8 +1,9 @@
/* classes: h_files */
#ifndef SCM_SOURCE_PROPERTIES_H
#define SCM_SOURCE_PROPERTIES_H
/* Copyright (C) 1995,1996,2000,2001 Free Software Foundation
#ifndef SCM_SRCPROP_H
#define SCM_SRCPROP_H
/* Copyright (C) 1995,1996,2000,2001 Free Software Foundation, Inc.
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
@ -93,11 +94,6 @@ typedef struct scm_t_srcprops_chunk
scm_t_srcprops srcprops[1];
} scm_t_srcprops_chunk;
#if (SCM_DEBUG_DEPRECATED == 0)
# define scm_srcprops scm_t_srcprops
# define scm_srcprops_chunk scm_t_srcprops_chunk
#endif
#define SCM_SOURCE_PROPERTY_FLAG_BREAK (1L << 16)
#define SRCPROPSP(p) (SCM_TYP16_PREDICATE (scm_tc16_srcprops, p))
@ -120,11 +116,11 @@ typedef struct scm_t_srcprops_chunk
#define SETSRCPROPLINE(p,l) SETSRCPROPPOS (p, l, SRCPROPCOL (p))
#define SETSRCPROPCOL(p,c) SETSRCPROPPOS (p, SRCPROPLINE (p), c)
#define SRCBRKP(x) (SCM_NIMP (t.arg1 = scm_whash_lookup (scm_source_whash, (x)))\
#define SRCBRKP(x) (!SCM_IMP (t.arg1 = scm_whash_lookup (scm_source_whash, (x)))\
&& SRCPROPSP (t.arg1)\
&& (SCM_CELL_WORD_0 (t.arg1) & (1L << 16)))
#define PROCTRACEP(x) SCM_NFALSEP (scm_procedure_property (x, scm_sym_trace))
#define PROCTRACEP(x) (!SCM_FALSEP (scm_procedure_property (x, scm_sym_trace)))
extern SCM scm_sym_filename;
extern SCM scm_sym_copy;
@ -144,7 +140,7 @@ extern SCM scm_set_source_properties_x (SCM obj, SCM props);
extern void scm_finish_srcprop (void);
extern void scm_init_srcprop (void);
#endif /* SCM_SOURCE_PROPERTIES_H */
#endif /* SCM_SRCPROP_H */
/*
Local Variables:

View file

@ -2,7 +2,8 @@
#ifndef SCM_STACKS_H
#define SCM_STACKS_H
/* Copyright (C) 1995,1996,2000,2001 Free Software Foundation
/* Copyright (C) 1995,1996,2000,2001 Free Software Foundation, Inc.
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
@ -72,11 +73,6 @@ typedef struct scm_t_stack {
scm_t_info_frame tail[1];
} scm_t_stack;
#if (SCM_DEBUG_DEPRECATED == 0)
# define scm_info_frame scm_t_info_frame
# define scm_stack scm_t_stack
#endif
extern SCM scm_t_stackype;
#define SCM_STACKP(obj) (SCM_STRUCTP (obj) && SCM_EQ_P (SCM_STRUCT_VTABLE (obj), scm_t_stackype))
@ -138,7 +134,6 @@ SCM scm_frame_procedure_p (SCM frame);
SCM scm_frame_evaluating_args_p (SCM frame);
SCM scm_frame_overflow_p (SCM frame);
void scm_init_stacks (void);
#endif /* SCM_STACKS_H */

View file

@ -2,6 +2,7 @@
#ifndef SCM_STRUCT_H
#define SCM_STRUCT_H
/* Copyright (C) 1995,1997,1999,2000,2001 Free Software Foundation, Inc.
*
* This program is free software; you can redistribute it and/or modify
@ -77,7 +78,7 @@ typedef size_t (*scm_t_struct_free) (scm_t_bits * vtable, scm_t_bits * data);
#define SCM_STRUCTF_LIGHT (1L << 31) /* Light representation
(no hidden words) */
#define SCM_STRUCTP(X) (SCM_NIMP(X) && (SCM_TYP3(X) == scm_tc3_struct))
#define SCM_STRUCTP(X) (!SCM_IMP(X) && (SCM_TYP3(X) == scm_tc3_struct))
#define SCM_STRUCT_DATA(X) ((scm_t_bits *) SCM_CELL_WORD_1 (X))
#define SCM_STRUCT_VTABLE_DATA(X) ((scm_t_bits *) (SCM_CELL_WORD_0 (X) - scm_tc3_struct))

View file

@ -1,7 +1,8 @@
/* classes: h_files */
#ifndef SCM_UNIFORM_VECTORS_H
#define SCM_UNIFORM_VECTORS_H
#ifndef SCM_UNIF_H
#define SCM_UNIF_H
/* Copyright (C) 1995,1996,1997,1999,2000,2001 Free Software Foundation, Inc.
*
* This program is free software; you can redistribute it and/or modify
@ -72,19 +73,10 @@ typedef struct scm_t_array_dim
long inc;
} scm_t_array_dim;
#if (SCM_DEBUG_DEPRECATED == 0)
# define scm_array scm_t_array
# define scm_array_dim scm_t_array_dim
#endif
extern scm_t_bits scm_tc16_array;
#define SCM_ARRAY_FLAG_CONTIGUOUS (1 << 16)
#if (SCM_DEBUG_DEPRECATED == 0)
#define SCM_ARRAY_CONTIGUOUS SCM_ARRAY_FLAG_CONTIGUOUS
#endif
#define SCM_ARRAYP(a) SCM_TYP16_PREDICATE (scm_tc16_array, a)
#define SCM_ARRAY_NDIM(x) ((size_t) (SCM_CELL_WORD_0 (x) >> 17))
#define SCM_ARRAY_CONTP(x) (SCM_CELL_WORD_0 (x) & SCM_ARRAY_FLAG_CONTIGUOUS)
@ -152,20 +144,7 @@ extern int scm_raprin1 (SCM exp, SCM port, scm_print_state *pstate);
extern SCM scm_array_prototype (SCM ra);
extern void scm_init_unif (void);
#if (SCM_DEBUG_DEPRECATED == 0)
/* apparently it's possible to have more than SCM_LENGTH_MAX elements
in an array: if the length is SCM_LENGTH_MAX then the SCM_VELTS
block begins with the true length (a long int). I wonder if it
works. */
#define SCM_HUGE_LENGTH(x)\
(SCM_LENGTH_MAX==SCM_LENGTH(x) ? *((long *)SCM_VELTS(x)) : SCM_LENGTH(x))
#endif /* SCM_DEBUG_DEPRECATED == 0 */
#endif /* SCM_UNIFORM_VECTORS_H */
#endif /* SCM_UNIF_H */
/*
Local Variables:

View file

@ -1,3 +1,8 @@
/* classes: h_files */
#ifndef SCM_VALIDATE_H
#define SCM_VALIDATE_H
/* Copyright (C) 1999,2000,2001 Free Software Foundation, Inc.
*
* This program is free software; you can redistribute it and/or modify
@ -41,8 +46,7 @@
/* Written by Greg J. Badros <gjb@cs.washington.edu>, Dec-1999 */
#ifndef SCM_VALIDATE_H__
#define SCM_VALIDATE_H__
#define SCM_SYSERROR do { scm_syserror (FUNC_NAME); } while (0)
@ -344,7 +348,7 @@
#define SCM_VALIDATE_THUNK(pos, thunk) \
do { \
SCM_ASSERT (SCM_NFALSEP (scm_thunk_p (thunk)), thunk, pos, FUNC_NAME); \
SCM_ASSERT (!SCM_FALSEP (scm_thunk_p (thunk)), thunk, pos, FUNC_NAME); \
} while (0)
#define SCM_VALIDATE_SYMBOL(pos, sym) SCM_MAKE_VALIDATE (pos, sym, SYMBOLP)
@ -412,7 +416,7 @@
#define SCM_VALIDATE_ARRAY(pos,v) \
do { \
SCM_ASSERT (SCM_NIMP (v) \
SCM_ASSERT (!SCM_IMP (v) \
&& !SCM_FALSEP (scm_array_p (v, SCM_UNDEFINED)), \
v, pos, FUNC_NAME); \
} while (0)
@ -422,7 +426,7 @@
#define SCM_VALIDATE_VECTOR_OR_DVECTOR(pos, v) \
do { \
SCM_ASSERT ((SCM_VECTORP (v) \
|| (SCM_NIMP (v) && SCM_TYP7 (v) == scm_tc7_dvect)), \
|| (!SCM_IMP (v) && SCM_TYP7 (v) == scm_tc7_dvect)), \
v, pos, FUNC_NAME); \
} while (0)
@ -430,7 +434,7 @@
#define SCM_VALIDATE_VTABLE(pos, v) \
do { \
SCM_ASSERT (SCM_NIMP (v) && SCM_NFALSEP (scm_struct_vtable_p (v)), \
SCM_ASSERT (!SCM_IMP (v) && !SCM_FALSEP (scm_struct_vtable_p (v)), \
v, pos, FUNC_NAME); \
} while (0)
@ -439,73 +443,7 @@
SCM_ASSERT (SCM_VECTORP (v) && len == SCM_VECTOR_LENGTH (v), v, pos, FUNC_NAME); \
} while (0)
#if (SCM_DEBUG_DEPRECATED == 0)
#define SCM_FUNC_NAME (scm_makfrom0str (FUNC_NAME))
#define SCM_WTA(pos, scm) \
do { scm_wta (scm, (char *) pos, FUNC_NAME); } while (0)
#define RETURN_SCM_WTA(pos, scm) \
do { return scm_wta (scm, (char *) pos, FUNC_NAME); } while (0)
#define SCM_VALIDATE_NUMBER_COPY(pos, z, cvar) \
do { \
if (SCM_INUMP (z)) \
cvar = (double) SCM_INUM (z); \
else if (SCM_REALP (z)) \
cvar = SCM_REAL_VALUE (z); \
else if (SCM_BIGP (z)) \
cvar = scm_i_big2dbl (z); \
else \
{ \
cvar = 0.0; \
SCM_WRONG_TYPE_ARG (pos, z); \
} \
} while (0)
#define SCM_VALIDATE_NUMBER_DEF_COPY(pos, number, def, cvar) \
do { \
if (SCM_UNBNDP (number)) \
cvar = def; \
else \
SCM_VALIDATE_NUMBER_COPY(pos, number, cvar); \
} while (0)
#define SCM_VALIDATE_STRINGORSUBSTR SCM_VALIDATE_STRING
#define SCM_VALIDATE_ROSTRING(pos, str) SCM_MAKE_VALIDATE (pos, str, ROSTRINGP)
#define SCM_VALIDATE_ROSTRING_COPY(pos, str, cvar) \
do { \
SCM_ASSERT (SCM_ROSTRINGP (str), str, pos, FUNC_NAME); \
cvar = SCM_ROCHARS (str); \
} while (0)
#define SCM_VALIDATE_NULLORROSTRING_COPY(pos, str, cvar) \
do { \
SCM_ASSERT (SCM_FALSEP (str) || SCM_ROSTRINGP (str), \
str, pos, FUNC_NAME); \
if (SCM_FALSEP(str)) \
cvar = NULL; \
else \
cvar = SCM_ROCHARS(str); \
} while (0)
#define SCM_VALIDATE_RWSTRING(pos, str) \
do { \
SCM_ASSERT (SCM_STRINGP (str), str, pos, FUNC_NAME); \
if (!SCM_RWSTRINGP (str)) \
scm_misc_error (FUNC_NAME, "argument is a read-only string", str); \
} while (0)
#define SCM_VALIDATE_OPDIR(pos, port) SCM_MAKE_VALIDATE (pos, port, OPDIRP)
#endif /* SCM_DEBUG_DEPRECATED == 0 */
#endif
#endif /* SCM_VALIDATE_H */
/*
Local Variables: