From aa2cb7fef90980edaa5e32c19f7dab87ee273202 Mon Sep 17 00:00:00 2001
From: rswindell <>
Date: Wed, 10 Sep 2003 10:15:24 +0000
Subject: [PATCH] Created global function: file_getext(), returns extension
 portion of given path/filename (or undefined if none found).

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

diff --git a/src/sbbs3/js_global.c b/src/sbbs3/js_global.c
index 463e7ea091..c9bd8e3049 100644
--- a/src/sbbs3/js_global.c
+++ b/src/sbbs3/js_global.c
@@ -1096,6 +1096,29 @@ js_getfname(JSContext *cx, JSObject *obj, uintN argc, jsval *argv, jsval *rval)
 	return(JS_TRUE);
 }
 
+static JSBool
+js_getfext(JSContext *cx, JSObject *obj, uintN argc, jsval *argv, jsval *rval)
+{
+	char*		str;
+	char*		p;
+	JSString*	js_str;
+
+	if((str=JS_GetStringBytes(JS_ValueToString(cx, argv[0])))==NULL) 
+		return(JS_FALSE);
+
+	*rval = JSVAL_VOID;
+
+	if((p=getfext(str))==NULL)
+		return(JS_TRUE);
+
+	js_str = JS_NewStringCopyZ(cx, p);
+	if(js_str==NULL)
+		return(JS_FALSE);
+
+	*rval = STRING_TO_JSVAL(js_str);
+	return(JS_TRUE);
+}
+
 static JSBool
 js_getfcase(JSContext *cx, JSObject *obj, uintN argc, jsval *argv, jsval *rval)
 {
@@ -1534,6 +1557,10 @@ static jsMethodSpec js_global_functions[] = {
 	{"file_getname",	js_getfname,		1,	JSTYPE_STRING,	JSDOCSTR("string path")
 	,JSDOCSTR("returns filename portion of passed path string")
 	},
+	{"file_getext",		js_getfext,			1,	JSTYPE_STRING,	JSDOCSTR("string path")
+	,JSDOCSTR("returns file extension portion of passed path/filename string (including '.') "
+		"or <i>undefined</i> if no extension is found")
+	},
 	{"file_getcase",	js_getfcase,		1,	JSTYPE_STRING,	JSDOCSTR("string filename")
 	,JSDOCSTR("returns correct case of filename (long version of filename on Win32) "
 		"or <i>undefined</i> if the file doesn't exist")
-- 
GitLab