#define coerce_to_filename(a_,b_) coerce_to_filename1(a_,b_,sizeof(b_))
#include <errno.h>
-#define massert(a_) ({errno=0;if (!(a_)||errno) assert_error(#a_,__LINE__,__FILE__,__FUNCTION__);})
+#define massert(a_) ({errno=0;if (!(a_)) assert_error(#a_,__LINE__,__FILE__,__FUNCTION__);})
extern bool writable_malloc;
#define writable_malloc_wrap(f_,rt_,a_...) ({rt_ v;bool w=writable_malloc;writable_malloc=1;v=f_(a_);writable_malloc=w;v;})
(setq *current-directory* (current-directory-pathname))))
(defun which (s)
- (let ((r (with-open-file (s (apply 'string-concatenate "|" #-winnt "which "
+ (let ((r (with-open-file (s (apply 'string-concatenate "|" #-winnt "command -v "
#+winnt "for %i in (" s #+winnt ".exe) do @echo.%~$PATH:i" nil))
(read-line s nil 'eof))))
(unless (eq r 'eof)
}
+DEFUN_NEW("SEEK-TO-END-OFILE",object,fSseek_to_end_ofile,SI,1,1,NONE,OO,OO,OO,OO,(object sm),"") {
+ check_type_stream(&sm);
+ SEEK_TO_END_OFILE(sm->sm.sm_fp);
+ RETURN1(sm);
+}
/*gcc boolean expression tail position bug*/
static char *stack_to_be_allocated;
-void
-get_stack_to_be_allocated(unsigned long size) {
- stack_to_be_allocated=alloca(size);
- memset(stack_to_be_allocated,0,size);
+int
+stack_ret(char *s,unsigned long size) {
+ int r,i;
+ for (i=r=0;i<size;i++)
+ r^=((unsigned char)s[i])|((ufixnum)(s+i));
+ return r;
}
+int
+get_stack_to_be_allocated(unsigned long size) {
+ stack_to_be_allocated=alloca(size);
+ memset(stack_to_be_allocated,0,size);
+ return stack_ret(stack_to_be_allocated,size);
+ }
+
DEFUN_NEW("EQUAL-TAIL-RECURSION-CHECK",object,fSequal_tail_recursion_check,SI,1,1,NONE,II,OO,OO,OO,(fixnum s),"") {
object x0=make_list(s/sizeof(object)),x1=make_list(s/sizeof(object));
char *w;