--- regex-posix.c.~1.66.~ 2004-07-14 10:19:36.000000000 +1000 +++ regex-posix.c 2004-07-23 17:33:52.000000000 +1000 @@ -163,7 +163,7 @@ { SCM flag; regex_t *rx; - int status, cflags; + int status, cflags, argnum; SCM_VALIDATE_STRING (1, pat); SCM_VALIDATE_REST_ARGUMENT (flags); @@ -172,13 +172,17 @@ turn off REG_EXTENDED flag (on by default). */ cflags = REG_EXTENDED; flag = flags; + argnum = 2; while (!SCM_NULLP (flag)) { - if (SCM_INUM (SCM_CAR (flag)) == REG_BASIC) + int f; + SCM_VALIDATE_INT_COPY (argnum, SCM_CAR (flag), f); + if (f == REG_BASIC) cflags &= ~REG_EXTENDED; else - cflags |= SCM_INUM (SCM_CAR (flag)); + cflags |= f; flag = SCM_CDR (flag); + argnum++; } rx = scm_gc_malloc (sizeof(regex_t), "regex");