[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