From 921514ceab9475c63e6fd454b7e562b1ebc38fe0 Mon Sep 17 00:00:00 2001 From: rswindell <> Date: Thu, 6 Mar 2003 10:47:34 +0000 Subject: [PATCH] key parameter to handle_ctrlkey can be string or number (ascii value). --- src/sbbs3/js_console.cpp | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) diff --git a/src/sbbs3/js_console.cpp b/src/sbbs3/js_console.cpp index ef3283854c..46a02d669a 100644 --- a/src/sbbs3/js_console.cpp +++ b/src/sbbs3/js_console.cpp @@ -295,6 +295,7 @@ js_getkey(JSContext *cx, JSObject *obj, uintN argc, jsval *argv, jsval *rval) static JSBool js_handle_ctrlkey(JSContext *cx, JSObject *obj, uintN argc, jsval *argv, jsval *rval) { + char key; int32 mode=0; sbbs_t* sbbs; JSString* js_str; @@ -304,13 +305,18 @@ js_handle_ctrlkey(JSContext *cx, JSObject *obj, uintN argc, jsval *argv, jsval * if((sbbs=(sbbs_t*)JS_GetContextPrivate(cx))==NULL) return(JS_FALSE); - if((js_str=JS_ValueToString(cx, argv[0]))==NULL) - return(JS_FALSE); + if(JSVAL_IS_INT(argv[0])) + key=(char)JSVAL_TO_INT(argv[0]); + else { + if((js_str=JS_ValueToString(cx, argv[0]))==NULL) + return(JS_FALSE); + key=*JS_GetStringBytes(js_str); + } if(argc>1) JS_ValueToInt32(cx, argv[1], &mode); - *rval = BOOLEAN_TO_JSVAL(sbbs->handle_ctrlkey(*JS_GetStringBytes(js_str),mode)); + *rval = BOOLEAN_TO_JSVAL(sbbs->handle_ctrlkey(key,mode)); return(JS_TRUE); } -- GitLab