From d8525301284c1e036d02cb975ad0c25ea52c0c34 Mon Sep 17 00:00:00 2001
From: rswindell <>
Date: Tue, 12 Mar 2002 23:04:58 +0000
Subject: [PATCH] Created methods: ascii_str (convert ex-ascii string to pure
 ascii) and strip_exascii (remove all ex-ascii chars from string).

---
 src/sbbs3/js_global.c | 41 +++++++++++++++++++++++++++++++++++++++++
 1 file changed, 41 insertions(+)

diff --git a/src/sbbs3/js_global.c b/src/sbbs3/js_global.c
index e61aafa844..08bec81752 100644
--- a/src/sbbs3/js_global.c
+++ b/src/sbbs3/js_global.c
@@ -269,6 +269,26 @@ js_ascii(JSContext *cx, JSObject *obj, uintN argc, jsval *argv, jsval *rval)
 	return(JS_TRUE);
 }
 
+static JSBool
+js_ascii_str(JSContext *cx, JSObject *obj, uintN argc, jsval *argv, jsval *rval)
+{
+	char*		p;
+	JSString*	js_str;
+
+	if((js_str=JS_ValueToString(cx, argv[0]))==NULL) 
+		return(JS_FALSE);
+
+	if((p=JS_GetStringBytes(js_str))==NULL) 
+		return(JS_FALSE);
+
+	ascii_str(p);
+
+	js_str = JS_NewStringCopyZ(cx, p);
+	*rval = STRING_TO_JSVAL(js_str);
+	return(JS_TRUE);
+}
+
+
 static JSBool
 js_strip_ctrl(JSContext *cx, JSObject *obj, uintN argc, jsval *argv, jsval *rval)
 {
@@ -288,6 +308,25 @@ js_strip_ctrl(JSContext *cx, JSObject *obj, uintN argc, jsval *argv, jsval *rval
 	return(JS_TRUE);
 }
 
+static JSBool
+js_strip_exascii(JSContext *cx, JSObject *obj, uintN argc, jsval *argv, jsval *rval)
+{
+	char*		p;
+	JSString*	js_str;
+
+	if((js_str=JS_ValueToString(cx, argv[0]))==NULL) 
+		return(JS_FALSE);
+
+	if((p=JS_GetStringBytes(js_str))==NULL) 
+		return(JS_FALSE);
+
+	strip_exascii(p);
+
+	js_str = JS_NewStringCopyZ(cx, p);
+	*rval = STRING_TO_JSVAL(js_str);
+	return(JS_TRUE);
+}
+
 static JSBool
 js_fexist(JSContext *cx, JSObject *obj, uintN argc, jsval *argv, jsval *rval)
 {
@@ -570,7 +609,9 @@ static JSFunctionSpec js_global_functions[] = {
 	{"crc32",			js_crc32,			1},		/* calculate 32-bit CRC of string */
 	{"chksum",			js_chksum,			1},		/* calculate 32-bit chksum of string */
 	{"ascii",			js_ascii,			1},		/* convert str to ascii-val or vice-versa */
+	{"ascii_str",		js_ascii_str,		1},		/* convert ex-ascii in str to plain ascii */
 	{"strip_ctrl",		js_strip_ctrl,		1},		/* strip ctrl chars from string */
+	{"strip_exascii",	js_strip_exascii,	1},		/* strip ex-ascii chars from string */
 	{"file_exists",		js_fexist,			1},		/* verify file existence */
 	{"file_remove",		js_remove,			1},		/* delete a file */
 	{"file_isdir",		js_isdir,			1},		/* check if directory */
-- 
GitLab