RPM Package Manager, CVS Repository http://rpm5.org/cvs/ ____________________________________________________________________________
Server: rpm5.org Name: Jeff Johnson Root: /v/rpm/cvs Email: [email protected] Module: rpm Date: 12-Apr-2010 19:19:37 Branch: HEAD Handle: 2010041217193700 Modified files: rpm/rpmio rpmsql.c Log: - rpmsql: WIP. Summary: Revision Changes Path 2.31 +7 -5 rpm/rpmio/rpmsql.c ____________________________________________________________________________ patch -p0 <<'@@ .' Index: rpm/rpmio/rpmsql.c ============================================================================ $ cvs diff -u -r2.30 -r2.31 rpmsql.c --- rpm/rpmio/rpmsql.c 12 Apr 2010 16:42:02 -0000 2.30 +++ rpm/rpmio/rpmsql.c 12 Apr 2010 17:19:37 -0000 2.31 @@ -2283,18 +2283,20 @@ */ /*...@null@*/ static char * -rpmsqlFgets(/*...@returned@*/ char * buf, size_t nbuf, FD_t ifd) +rpmsqlFgets(/*...@returned@*/ char * buf, size_t nbuf, rpmsql sql) /*...@globals fileSystem @*/ /*...@modifies buf, fileSystem @*/ { -FILE * ifp = fdGetFILE(ifd); + FD_t ifd = sql->ifd; +/* XXX sadly, fgets(3) cannot be used against a LIBIO wrapped .fpio FD_t */ +FILE * ifp = (!F_ISSET(sql, PROMPT) ? fdGetFILE(ifd) : stdin); char *q = buf - 1; /* initialize just before buffer. */ size_t nb = 0; size_t nr = 0; int pc = 0, bc = 0; char *p = buf; -SQLDBG((stderr, "--> %s(%p[%u],%p)\n", __FUNCTION__, buf, (unsigned)nbuf, ifd)); +SQLDBG((stderr, "--> %s(%p[%u],%p) ifd %p fp %p fileno %d fdno %d\n", __FUNCTION__, buf, (unsigned)nbuf, sql, ifd, ifp, (ifp ? fileno(ifp) : -3), Fileno(ifd))); assert(ifp != NULL); if (ifp != NULL) @@ -2339,7 +2341,7 @@ *q = '\n'; } while (nbuf > 0); -SQLDBG((stderr, "<-- %s(%p[%u],%p) nr %u\n", __FUNCTION__, buf, (unsigned)nbuf, ifd, (unsigned)nr)); +SQLDBG((stderr, "<-- %s(%p[%u],%p) nr %u\n", __FUNCTION__, buf, (unsigned)nbuf, sql, (unsigned)nr)); return (nr > 0 ? buf : NULL); } @@ -2368,7 +2370,7 @@ } assert(sql->ifd != NULL); - t = rpmsqlFgets(sql->buf, sql->nbuf, sql->ifd); + t = rpmsqlFgets(sql->buf, sql->nbuf, sql); if (t) t = xstrdup(t); @@ . ______________________________________________________________________ RPM Package Manager http://rpm5.org CVS Sources Repository [email protected]
