RPM Community Forums

Mailing List Message of <rpm-cvs>

[CVS] RPM: lua/local/ lposix.c rpm/ CHANGES

From: Ralf S. Engelschall <rse@rpm5.org>
Date: Sun 20 Jan 2008 - 12:29:50 CET
Message-Id: <20080120112950.1AD18348464@rpm5.org>
  RPM Package Manager, CVS Repository
  http://rpm5.org/cvs/
  ____________________________________________________________________________

  Server: rpm5.org                         Name:   Ralf S. Engelschall
  Root:   /v/rpm/cvs                       Email:  rse@rpm5.org
  Module: rpm lua                          Date:   20-Jan-2008 12:29:50
  Branch: HEAD                             Handle: 2008012011294900

  Modified files:
    lua/local               lposix.c
    rpm                     CHANGES

  Log:
    Provide RPM Lua function posix.glob(<pattern>).

  Summary:
    Revision    Changes     Path
    1.8         +25 -1      lua/local/lposix.c
    1.2084      +1  -0      rpm/CHANGES
  ____________________________________________________________________________

  patch -p0 <<'@@ .'
  Index: lua/local/lposix.c
  ============================================================================
  $ cvs diff -u -r1.7 -r1.8 lposix.c
  --- lua/local/lposix.c	19 Jan 2008 12:27:26 -0000	1.7
  +++ lua/local/lposix.c	20 Jan 2008 11:29:49 -0000	1.8
  @@ -5,7 +5,7 @@
   * 05 Nov 2003 22:09:10
   */
   
  -#include "system.h" /* setenv/unsetenv/etc */
  +#include "system.h" /* setenv/unsetenv/glob/etc */
   
   #include <dirent.h>
   #include <errno.h>
  @@ -837,6 +837,29 @@
   	return doselection(L, 1, SgetID, FgetID, NULL);
   }
   
  +static int Pglob(lua_State *L)  /** glob(pattern) */
  +{
  +    const char *pattern;
  +    glob_t g;
  +    int i;
  +    int rc;
  +
  +    pattern = luaL_optstring(L, 1, ".");
  +    rc = glob(pattern, 0, NULL, &g);
  +    if (rc == 0) {
  +        lua_newtable(L);
  +        for (i = 1; i <= g.gl_pathc; i++)
  +            storeindex(L, i, g.gl_pathv[i - 1]);
  +        globfree(&g);
  +        return 1;
  +    }
  +    else if (rc == GLOB_NOMATCH) {
  +        lua_newtable(L);
  +        return 1;
  +    }
  +    else
  +        return pusherror(L, pattern);
  +}
   
   static int Pttyname(lua_State *L)		/** ttyname(fd) */
   	/*@modifies L @*/
  @@ -1148,6 +1171,7 @@
   	{"getlogin",		Pgetlogin},
   	{"getpasswd",		Pgetpasswd},
   	{"getprocessid",	Pgetprocessid},
  +	{"glob",		Pglob},
   	{"kill",		Pkill},
   	{"link",		Plink},
   	{"mkdir",		Pmkdir},
  @@ .
  patch -p0 <<'@@ .'
  Index: rpm/CHANGES
  ============================================================================
  $ cvs diff -u -r1.2083 -r1.2084 CHANGES
  --- rpm/CHANGES	20 Jan 2008 11:05:34 -0000	1.2083
  +++ rpm/CHANGES	20 Jan 2008 11:29:49 -0000	1.2084
  @@ -1,4 +1,5 @@
   5.0.0 -> 5.1a1:
  +    - rse: provide RPM Lua function posix.glob(<pattern>)
       - rse: make older C compiler happy by not declaring a variable in the middle of a block in rpmconstant/constant.c
       - rse: let RPM Lua init procedure load all init scripts configured with new Autoconf option --with-path-rpmlua 
       - rse: fix Autoconf procedure by running python(1) based checks only under --with-python
  @@ .
Received on Sun Jan 20 12:29:50 2008
Driven by Jeff Johnson and the RPM project team.
Hosted by OpenPKG and Ralf S. Engelschall.
Powered by FreeBSD and OpenPKG.