diff --git a/libguile/pairs.h b/libguile/pairs.h index 96e6f42cc..e74c855a2 100644 --- a/libguile/pairs.h +++ b/libguile/pairs.h @@ -2,7 +2,7 @@ #ifndef PAIRSH #define PAIRSH -/* Copyright (C) 1995,1996 Free Software Foundation, Inc. +/* Copyright (C) 1995,1996, 2000 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 @@ -111,10 +111,14 @@ typedef SCM huge *SCMPTR; #define SCM_CARLOC(x) (&SCM_CAR (x)) #define SCM_CDRLOC(x) (&SCM_CDR (x)) -#define SCM_SETAND_CAR(x, y) (SCM_CARW (x) &= (y)) -#define SCM_SETAND_CDR(x, y) (SCM_ASWORD (SCM_CDR (x)) &= (y)) -#define SCM_SETOR_CAR(x, y) (SCM_CARW (x) |= (y)) -#define SCM_SETOR_CDR(x, y) (SCM_ASWORD (SCM_CDR (x)) |= (y)) +#define SCM_SETAND_CAR(x, y)\ + (SCM_CAR (x) = SCM_ASSCM (SCM_ASWORD (SCM_CAR (x)) & (y))) +#define SCM_SETAND_CDR(x, y)\ + (SCM_CDR (x) = SCM_ASSCM (SCM_ASWORD (SCM_CDR (x)) & (y))) +#define SCM_SETOR_CAR(x, y)\ + (SCM_CAR (x) = SCM_ASSCM (SCM_ASWORD (SCM_CAR (x)) | (y))) +#define SCM_SETOR_CDR(x, y)\ + (SCM_CDR (x) = SCM_ASSCM (SCM_ASWORD (SCM_CDR (x)) | (y))) #define SCM_CAAR(OBJ) SCM_CAR (SCM_CAR (OBJ)) #define SCM_CDAR(OBJ) SCM_CDR (SCM_CAR (OBJ))