diff --git a/src/sbbs3/js_global.c b/src/sbbs3/js_global.c index 91e65e82ad7002d2311c8cb8f2af3c3c1db17b4b..0cde66d8836303bb038a43ea60116685b97b37d9 100644 --- a/src/sbbs3/js_global.c +++ b/src/sbbs3/js_global.c @@ -2573,8 +2573,7 @@ js_utime(JSContext *cx, JSObject *obj, uintN argc, jsval *argv, jsval *rval) char* fname; int32 actime; int32 modtime; - struct utimbuf tbuf; - struct utimbuf* t=NULL; + struct utimbuf ut; if(JSVAL_IS_VOID(argv[0])) return(JS_TRUE); @@ -2584,17 +2583,18 @@ js_utime(JSContext *cx, JSObject *obj, uintN argc, jsval *argv, jsval *rval) if((fname=js_ValueToStringBytes(cx, argv[0], NULL))==NULL) return(JS_FALSE); + /* use current time as default */ + ut.actime = ut.modtime = time(NULL); + if(argc>1) { - memset(&tbuf,0,sizeof(tbuf)); - actime=modtime=time(NULL); + actime=modtime=ut.actime; JS_ValueToInt32(cx,argv[1],&actime); JS_ValueToInt32(cx,argv[2],&modtime); - tbuf.actime=actime; - tbuf.modtime=modtime; - t=&tbuf; + ut.actime=actime; + ut.modtime=modtime; } - *rval = BOOLEAN_TO_JSVAL(utime(fname,t)==0); + *rval = BOOLEAN_TO_JSVAL(utime(fname,&ut)==0); return(JS_TRUE); } diff --git a/src/sbbs3/nopen.c b/src/sbbs3/nopen.c index db91d455f618bf89ce909b5b6c85331d45f69525..051cad0c5fde393261e1f1b0451010bce7878961 100644 --- a/src/sbbs3/nopen.c +++ b/src/sbbs3/nopen.c @@ -111,9 +111,11 @@ FILE* fnopen(int* fd, const char* str, int access) BOOL ftouch(const char* fname) { int file; + struct utimbuf ut; /* update the time stamp */ - if(utime(fname, /* use current date/time: */NULL)==0) + ut.actime = ut.modtime = time(NULL); + if(utime(fname, &ut)==0) return(TRUE); /* create the file */ diff --git a/src/xpdev/semfile.c b/src/xpdev/semfile.c index 0e3b8991e34f56a58c46df464fee6d3454dc90ba..5012803e6187ce40b64d58b6446201c745cf4fe0 100644 --- a/src/xpdev/semfile.c +++ b/src/xpdev/semfile.c @@ -126,6 +126,7 @@ void DLLCALL semfile_list_free(str_list_t* filelist) BOOL DLLCALL semfile_signal(const char* fname, const char* text) { int file; + struct utimbuf ut; #if !defined(NO_SOCKET_SUPPORT) char hostname[128]; @@ -138,5 +139,7 @@ BOOL DLLCALL semfile_signal(const char* fname, const char* text) write(file,text,strlen(text)); close(file); - return utime(fname, /* use current date/time: */NULL)==0; + /* update the time stamp */ + ut.actime = ut.modtime = time(NULL); + return utime(fname, &ut)==0; }