=================================================================== RCS file: /home/cvs/OpenXM_contrib2/asir2000/builtin/miscf.c,v retrieving revision 1.27 retrieving revision 1.32 diff -u -p -r1.27 -r1.32 --- OpenXM_contrib2/asir2000/builtin/miscf.c 2008/08/26 16:17:03 1.27 +++ OpenXM_contrib2/asir2000/builtin/miscf.c 2013/11/05 02:55:03 1.32 @@ -45,7 +45,7 @@ * DEVELOPER SHALL HAVE NO LIABILITY IN CONNECTION WITH THE USE, * PERFORMANCE OR NON-PERFORMANCE OF THE SOFTWARE. * - * $OpenXM: OpenXM_contrib2/asir2000/builtin/miscf.c,v 1.26 2006/02/08 02:11:19 noro Exp $ + * $OpenXM: OpenXM_contrib2/asir2000/builtin/miscf.c,v 1.31 2013/06/13 18:42:11 ohara Exp $ */ #include "ca.h" #include "parse.h" @@ -56,6 +56,7 @@ #endif #if defined(VISUAL) +#include #include #include #else @@ -82,12 +83,11 @@ void Pmodule_definedp(); void Ptest(); void delete_history(int,int); +void grab_pointer(); struct ftab misc_tab[] = { -#if !defined(VISUAL) {"pwd",Pgetcwd,0}, {"chdir",Pchdir,1}, -#endif {"set_secure_mode",Pset_secure_mode,-1}, {"set_secure_flag",Pset_secure_flag,-2}, {"module_list",Pmodule_list,0}, @@ -127,12 +127,16 @@ struct ftab misc_tab[] = { {0,0,0}, }; -#if !defined(VISUAL) void Pgetcwd(STRING *rp) { char *r; +#if defined(VISUAL) + char buf[_MAX_PATH]; + _getcwd(buf, _MAX_PATH); +#else char buf[MAXPATHLEN]; getcwd(buf, MAXPATHLEN); +#endif r = (char *)MALLOC_ATOMIC(strlen(buf)+1); strcpy(r,buf); MKSTR(*rp,r); @@ -141,10 +145,13 @@ void Pgetcwd(STRING *rp) void Pchdir(NODE arg, Q *rp) { char *dir = BDY((STRING)ARG0(arg)); +#if defined(VISUAL) + int status = _chdir(dir); +#else int status = chdir(dir); +#endif STOQ(status,*rp); } -#endif void Pset_secure_mode(NODE arg,Q *rp) { @@ -270,7 +277,7 @@ NODE arg; STRING *rp; { char *e,*f; - int len; + size_t len; e = (char *)getenv(BDY((STRING)ARG0(arg))); if ( e ) { @@ -349,7 +356,9 @@ void Pheap(arg,rp) NODE arg; Q *rp; { - int h0,h; + size_t h0,h; + unsigned int u,l; + N n; void GC_expand_hp(int); h0 = get_heapsize(); @@ -359,7 +368,16 @@ Q *rp; GC_expand_hp(h-h0); } h = get_heapsize(); - STOQ(h,*rp); + if(sizeof(size_t)>sizeof(int)) { + u = h>>(sizeof(int)*CHAR_BIT); l = h&(~0); + if ( !u ) UTOQ(l,*rp); + else { + n = NALLOC(2); PL(n)=2; BD(n)[0] = l; BD(n)[1] = u; + NTOQ(n,1,*rp); + } + }else { + UTOQ(h,*rp); + } } unsigned int get_asir_version(); @@ -592,7 +610,7 @@ init_display() rootwin = RootWindow(display,DefaultScreen(display)); } -grab_pointer() +void grab_pointer() { XEvent ev; static Cursor cursor;