Update of /cvsroot/scsh/scsh-0.6/scsh/rx
In directory slayer.i.sourceforge.net:/tmp/cvs-serv9626
Modified Files:
re-low.c re-low.scm
Log Message:
Replaced error with warn. The problem itself remains.
Index: re-low.c
===================================================================
RCS file: /cvsroot/scsh/scsh-0.6/scsh/rx/re-low.c,v
retrieving revision 1.2
retrieving revision 1.3
diff -C2 -r1.2 -r1.3
*** re-low.c 1999/10/08 18:41:05 1.2
--- re-low.c 2000/10/19 08:22:37 1.3
***************
*** 16,27 ****
{
extern int compile_re(s48_value , int , regex_t* *);
! s48_value ret1;
int r1;
! regex_t* r2;
r1 = compile_re(g1, EXTRACT_BOOLEAN(g2), &r2);
ret1 = s48_enter_integer(r1);
SetAlienVal(S48_VECTOR_REF(mv_vec,0),(long) r2);//simple-assign
return ret1;
}
--- 16,31 ----
{
extern int compile_re(s48_value , int , regex_t* *);
! s48_value ret1 = S48_FALSE;
! S48_DECLARE_GC_PROTECT(2);
int r1;
! regex_t* r2 = 0;
+
+ S48_GC_PROTECT_2(mv_vec,ret1);
r1 = compile_re(g1, EXTRACT_BOOLEAN(g2), &r2);
ret1 = s48_enter_integer(r1);
SetAlienVal(S48_VECTOR_REF(mv_vec,0),(long) r2);//simple-assign
+ S48_GC_UNPROTECT();
return ret1;
}
***************
*** 30,39 ****
{
extern s48_value re_search(const regex_t *, s48_value , int , s48_value ,
int , s48_value , s48_value );
! s48_value ret1;
s48_value r1;
r1 = re_search((const regex_t *)AlienVal(g1), g2,
s48_extract_integer(g3), g4, s48_extract_integer(g5), g6, g7);
ret1 = r1;
return ret1;
}
--- 34,47 ----
{
extern s48_value re_search(const regex_t *, s48_value , int , s48_value ,
int , s48_value , s48_value );
! s48_value ret1 = S48_FALSE;
! S48_DECLARE_GC_PROTECT(1);
s48_value r1;
+
+ S48_GC_PROTECT_1(ret1);
r1 = re_search((const regex_t *)AlienVal(g1), g2,
s48_extract_integer(g3), g4, s48_extract_integer(g5), g6, g7);
ret1 = r1;
+ S48_GC_UNPROTECT();
return ret1;
}
***************
*** 42,52 ****
{
extern const char *re_errint2str(int , const regex_t *);
! s48_value ret1;
const char *r1;
r1 = re_errint2str(s48_extract_integer(g1), (const regex_t
*)AlienVal(g2));
ret1 = S48_VECTOR_REF(mv_vec,0);
SetAlienVal(S48_CAR(ret1),(long) r1);
S48_SET_CDR(ret1,strlen_or_false(r1));//str-and-len
return ret1;
}
--- 50,64 ----
{
extern const char *re_errint2str(int , const regex_t *);
! s48_value ret1 = S48_FALSE;
! S48_DECLARE_GC_PROTECT(2);
const char *r1;
+
+ S48_GC_PROTECT_2(mv_vec,ret1);
r1 = re_errint2str(s48_extract_integer(g1), (const regex_t
*)AlienVal(g2));
ret1 = S48_VECTOR_REF(mv_vec,0);
SetAlienVal(S48_CAR(ret1),(long) r1);
S48_SET_CDR(ret1,strlen_or_false(r1));//str-and-len
+ S48_GC_UNPROTECT();
return ret1;
}
Index: re-low.scm
===================================================================
RCS file: /cvsroot/scsh/scsh-0.6/scsh/rx/re-low.scm,v
retrieving revision 1.3
retrieving revision 1.4
diff -C2 -r1.3 -r1.4
*** re-low.scm 1999/10/08 13:16:35 1.3
--- re-low.scm 2000/10/19 08:22:37 1.4
***************
*** 149,158 ****
(if (cre:bytes the-cre)
(%free-re (cre:bytes the-cre))
! (error "free-bytes called on #f")))
(define (free-bytes/nm the-cre)
(if (cre:bytes the-cre)
(%free-re (cre:bytes/nm the-cre))
! (error "free-bytes called on #f")))
(define (register-re-c-struct:bytes cre)
--- 149,158 ----
(if (cre:bytes the-cre)
(%free-re (cre:bytes the-cre))
! (warn "free-bytes called on #f")))
(define (free-bytes/nm the-cre)
(if (cre:bytes the-cre)
(%free-re (cre:bytes/nm the-cre))
! (warn "free-bytes/nm called on #f")))
(define (register-re-c-struct:bytes cre)
|