[prev in list] [next in list] [prev in thread] [next in thread]
List: rpm-cvs
Subject: [CVS] RPM: rpm/js/ rpmhdr-js.c rpmmc-js.c rpm/js/tscripts/ Hdr.js
From: "Jeff Johnson" <jbj () rpm5 ! org>
Date: 2009-04-29 20:03:29
Message-ID: 20090429200329.46AB05B43 () rpm5 ! org
[Download RAW message or body]
RPM Package Manager, CVS Repository
http://rpm5.org/cvs/
____________________________________________________________________________
Server: rpm5.org Name: Jeff Johnson
Root: /v/rpm/cvs Email: jbj@rpm5.org
Module: rpm Date: 29-Apr-2009 22:03:29
Branch: HEAD Handle: 2009042920032801
Modified files:
rpm/js rpmhdr-js.c rpmmc-js.c
rpm/js/tscripts Hdr.js
Log:
- js: Hdr: add ds(), fi(), {get,set}origin(), sprintf() methods.
Summary:
Revision Changes Path
1.11 +108 -0 rpm/js/rpmhdr-js.c
1.3 +1 -1 rpm/js/rpmmc-js.c
1.6 +20 -3 rpm/js/tscripts/Hdr.js
____________________________________________________________________________
patch -p0 <<'@@ .'
Index: rpm/js/rpmhdr-js.c
============================================================================
$ cvs diff -u -r1.10 -r1.11 rpmhdr-js.c
--- rpm/js/rpmhdr-js.c 28 Apr 2009 20:15:54 -0000 1.10
+++ rpm/js/rpmhdr-js.c 29 Apr 2009 20:03:28 -0000 1.11
@@ -7,6 +7,8 @@
#include "rpmhdr-js.h"
#include "rpmjs-debug.h"
+#include <rpmcli.h> /* XXX rpmHeaderFormats */
+
#include "debug.h"
/*@unchecked@*/
@@ -126,7 +128,112 @@
}
/* --- Object methods */
+static JSBool
+rpmhdr_ds(JSContext *cx, JSObject *obj, uintN argc, jsval *argv, jsval *rval)
+{
+ void * ptr = JS_GetInstancePrivate(cx, obj, &rpmhdrClass, NULL);
+ Header h = ptr;
+ rpmTag tagN = RPMTAG_NAME;
+ int flags = 0;
+ JSBool ok = JS_FALSE;
+
+if (_debug)
+fprintf(stderr, "==> %s(%p,%p,%p[%u],%p) ptr %p\n", __FUNCTION__, cx, obj, argv, \
(unsigned)argc, rval, ptr); +
+ if (!(ok = JS_ConvertArguments(cx, argc, argv, "/i", &tagN)))
+ goto exit;
+ *rval = OBJECT_TO_JSVAL(rpmjs_NewDsObject(cx, obj, tagN));
+ ok = JS_TRUE;
+exit:
+ return ok;
+}
+
+static JSBool
+rpmhdr_fi(JSContext *cx, JSObject *obj, uintN argc, jsval *argv, jsval *rval)
+{
+ void * ptr = JS_GetInstancePrivate(cx, obj, &rpmhdrClass, NULL);
+ Header h = ptr;
+ rpmTag tagN = RPMTAG_BASENAMES;
+ int flags = 0;
+ JSBool ok = JS_FALSE;
+
+if (_debug)
+fprintf(stderr, "==> %s(%p,%p,%p[%u],%p) ptr %p\n", __FUNCTION__, cx, obj, argv, \
(unsigned)argc, rval, ptr); +
+ if (!(ok = JS_ConvertArguments(cx, argc, argv, "/i", &tagN)))
+ goto exit;
+ *rval = OBJECT_TO_JSVAL(rpmjs_NewFiObject(cx, h, tagN));
+ ok = JS_TRUE;
+exit:
+ return ok;
+}
+
+static JSBool
+rpmhdr_sprintf(JSContext *cx, JSObject *obj, uintN argc, jsval *argv, jsval *rval)
+{
+ void * ptr = JS_GetInstancePrivate(cx, obj, &rpmhdrClass, NULL);
+ Header h = ptr;
+ char * qfmt = NULL;
+ char * s = NULL;
+ const char * errstr = NULL;
+ JSBool ok = JS_FALSE;
+
+if (_debug)
+fprintf(stderr, "==> %s(%p,%p,%p[%u],%p) ptr %p\n", __FUNCTION__, cx, obj, argv, \
(unsigned)argc, rval, ptr); +
+ if (!(ok = JS_ConvertArguments(cx, argc, argv, "s", &qfmt)))
+ goto exit;
+
+ if ((s = headerSprintf(h, qfmt, NULL, rpmHeaderFormats, &errstr)) == NULL)
+ s = errstr; /* XXX FIXME: returning errstr in-band. */
+ *rval = STRING_TO_JSVAL(JS_NewStringCopyZ(cx, s));
+ ok = JS_TRUE;
+exit:
+ return ok;
+}
+
+static JSBool
+rpmhdr_getorigin(JSContext *cx, JSObject *obj, uintN argc, jsval *argv, jsval \
*rval) +{
+ void * ptr = JS_GetInstancePrivate(cx, obj, &rpmhdrClass, NULL);
+ Header h = ptr;
+ JSBool ok = JS_FALSE;
+
+if (_debug)
+fprintf(stderr, "==> %s(%p,%p,%p[%u],%p) ptr %p\n", __FUNCTION__, cx, obj, argv, \
(unsigned)argc, rval, ptr); +
+ *rval = STRING_TO_JSVAL(JS_NewStringCopyZ(cx, headerGetOrigin(h)));
+ ok = JS_TRUE;
+ return ok;
+}
+
+static JSBool
+rpmhdr_setorigin(JSContext *cx, JSObject *obj, uintN argc, jsval *argv, jsval \
*rval) +{
+ void * ptr = JS_GetInstancePrivate(cx, obj, &rpmhdrClass, NULL);
+ Header h = ptr;
+ char * s = NULL;
+ JSBool ok = JS_FALSE;
+
+if (_debug)
+fprintf(stderr, "==> %s(%p,%p,%p[%u],%p) ptr %p\n", __FUNCTION__, cx, obj, argv, \
(unsigned)argc, rval, ptr); +
+ if (!(ok = JS_ConvertArguments(cx, argc, argv, "s", &s)))
+ goto exit;
+
+ (void) headerSetOrigin(h, s);
+ *rval = STRING_TO_JSVAL(JS_NewStringCopyZ(cx, headerGetOrigin(h)));
+ ok = JS_TRUE;
+exit:
+ return ok;
+}
+
static JSFunctionSpec rpmhdr_funcs[] = {
+ {"ds", rpmhdr_ds, 0,0,0},
+ {"fi", rpmhdr_fi, 0,0,0},
+ {"sprintf", rpmhdr_sprintf, 0,0,0},
+ {"getorigin", rpmhdr_getorigin, 0,0,0},
+ {"setorigin", rpmhdr_setorigin, 0,0,0},
JS_FS_END
};
@@ -155,6 +262,7 @@
_PROP_DEBUG_ENTRY(_debug < 0);
return JS_TRUE;
}
+
static JSBool
rpmhdr_getprop(JSContext *cx, JSObject *obj, jsval id, jsval *vp)
{
@@ .
patch -p0 <<'@@ .'
Index: rpm/js/rpmmc-js.c
============================================================================
$ cvs diff -u -r1.2 -r1.3 rpmmc-js.c
--- rpm/js/rpmmc-js.c 28 Apr 2009 20:15:54 -0000 1.2
+++ rpm/js/rpmmc-js.c 29 Apr 2009 20:03:28 -0000 1.3
@@ -13,7 +13,7 @@
#include "debug.h"
/*@unchecked@*/
-static int _debug = -1;
+static int _debug = 0;
typedef MacroContext rpmmc;
@@ .
patch -p0 <<'@@ .'
Index: rpm/js/tscripts/Hdr.js
============================================================================
$ cvs diff -u -r1.5 -r1.6 Hdr.js
--- rpm/js/tscripts/Hdr.js 27 Apr 2009 16:35:54 -0000 1.5
+++ rpm/js/tscripts/Hdr.js 29 Apr 2009 20:03:29 -0000 1.6
@@ -1,6 +1,9 @@
if (loglvl) print("--> Hdr.js");
var RPMTAG_NAME = 1000;
+var RPMTAG_REQUIRENAME = 1049;
+var RPMTAG_BASENAMES = 1117;
+
var N = "popt";
var ts = new Ts();
@@ -19,6 +22,23 @@
ack("h.debug = 1;", 1);
ack("h.debug = 0;", 0);
+var ds = h.ds();
+ack("typeof ds;", "object");
+ack("ds instanceof Ds;", true);
+var ds = h.ds(RPMTAG_NAME);
+ack("typeof ds;", "object");
+ack("ds instanceof Ds;", true);
+var ds = h.ds(RPMTAG_REQUIRENAME);
+ack("typeof ds;", "object");
+ack("ds instanceof Ds;", true);
+
+var fi = h.fi();
+ack("typeof fi;", "object");
+ack("fi instanceof Fi;", true);
+var fi = h.fi(RPMTAG_BASENAMES);
+ack("typeof fi;", "object");
+ack("fi instanceof Fi;", true);
+
ack("h.name", N);
ack("h.epoch", undefined);
ack("h.version", undefined);
@@ -76,8 +96,5 @@
ack("h.getorigin()", origin);
qfmt = "%{buildtime:date}";
ack("h.sprintf(qfmt)", undefined);
-ack("h.dsOfHeader()", undefined);
-ack("h.dsFromHeader(tag,flags)", undefined);
-ack("h.fiFromHeader(this)", undefined);
if (loglvl) print("<-- Hdr.js");
@@ .
______________________________________________________________________
RPM Package Manager http://rpm5.org
CVS Sources Repository rpm-cvs@rpm5.org
[prev in list] [next in list] [prev in thread] [next in thread]
Configure |
About |
News |
Add a list |
Sponsored by KoreLogic