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 18:12:24
  Branch: HEAD                             Handle: 2010041216122400

  Modified files:
    rpm/rpmio               rpmsql.c rpmsql.h

  Log:
    - rpmsql: WIP.

  Summary:
    Revision    Changes     Path
    2.27        +15 -16     rpm/rpmio/rpmsql.c
    2.15        +2  -0      rpm/rpmio/rpmsql.h
  ____________________________________________________________________________

  patch -p0 <<'@@ .'
  Index: rpm/rpmio/rpmsql.c
  ============================================================================
  $ cvs diff -u -r2.26 -r2.27 rpmsql.c
  --- rpm/rpmio/rpmsql.c        12 Apr 2010 15:57:49 -0000      2.26
  +++ rpm/rpmio/rpmsql.c        12 Apr 2010 16:12:24 -0000      2.27
  @@ -2819,7 +2819,7 @@
   };
   
   /* forward ref @*/
  -static int rpmsqlInput(rpmsql sql, FD_t ifd, void * _in);
  +static int rpmsqlInput(rpmsql sql, FD_t ifd);
   
   static int rpmsqlFOpen(const char * fn, FD_t *fdp)
        /*...@modifies *fdp @*/
  @@ -3395,7 +3395,7 @@
        } else {
   sql->ifp = fdGetFILE(sql->ifd);
            /* XXX .read assumes .echo off? */
  -         rc = rpmsqlInput(sql, sql->ifd, sql->ifp);
  +         rc = rpmsqlInput(sql, sql->ifd);
        }
        if (sql->ifd) (void) Fclose(sql->ifd);
        sql->ifd = _ifd;
  @@ -3761,9 +3761,8 @@
    * @param sql                sql interpreter
    * @return           the number of errors
    */
  -static int rpmsqlInput(rpmsql sql, FD_t ifd, void * _ifp)
  +static int rpmsqlInput(rpmsql sql, FD_t ifd)
   {
  -FILE * ifp = (FILE *) _ifp;
       sqlite3 * db = (sqlite3 *) sql->I;
       char *zLine = 0;
       char *zSql = 0;
  @@ -3775,15 +3774,13 @@
       int lineno = 0;
       int startline = 0;
   
  -SQLDBG((stderr, "--> %s(%p,%p,%p)\n", __FUNCTION__, sql, ifd, _ifp));
  +SQLDBG((stderr, "--> %s(%p,%p)\n", __FUNCTION__, sql, ifd));
   if (_rpmsql_debug)
   rpmsqlDebugDump(sql);
   
  -assert(sql->ifd == sql->ifd);
  -assert(sql->ifp == sql->ifp || ifp == NULL);
  +assert(sql->ifd == ifd);
   
  -    while (errCnt == 0 || !F_ISSET(sql, BAIL)
  -        || (ifp == NULL && F_ISSET(sql, INTERACTIVE)))
  +    while (errCnt == 0 || !F_ISSET(sql, BAIL) || F_ISSET(sql, PROMPT))
       {
        if (sql->ofd) Fflush(sql->ofd);
        zLine = _free(zLine);
  @@ -3791,7 +3788,7 @@
        if (zLine == 0)
            break;              /* We have reached EOF */
        if (_rpmsqlSeenInterrupt) {
  -         if (ifp != 0)
  +         if (!F_ISSET(sql, PROMPT))
                break;
            _rpmsqlSeenInterrupt = 0;
        }
  @@ -3838,7 +3835,7 @@
            END_TIMER(sql);
            if (rc || zErrMsg) {
                char zPrefix[100];
  -             if (ifp || !F_ISSET(sql, INTERACTIVE))
  +             if (!F_ISSET(sql, PROMPT) || !F_ISSET(sql, INTERACTIVE))
                    snprintf(zPrefix, sizeof(zPrefix),
                                     "near line %d: ", startline);
                else
  @@ -3859,7 +3856,7 @@
       }
       zLine = _free(zLine);
   
  -SQLDBG((stderr, "<-- %s(%p,%p,%p) rc %d\n", __FUNCTION__, sql, ifd, _ifp, 
errCnt));
  +SQLDBG((stderr, "<-- %s(%p,%p) rc %d\n", __FUNCTION__, sql, ifd, errCnt));
   
       return errCnt;
   }
  @@ -3887,7 +3884,7 @@
        if (F_ISSET(sql, INTERACTIVE))
            rpmsql_error(0, "-- Loading resources from %s", sqliterc);
   sql->ifp = fdGetFILE(sql->ifd);
  -     rc = rpmsqlInput(sql, sql->ifd, sql->ifp);
  +     rc = rpmsqlInput(sql, sql->ifd);
       }
       if (sql->ifd) (void) Fclose(sql->ifd);
       sql->ifd = NULL;
  @@ -4318,7 +4315,9 @@
   assert(sql->ifd);
   sql->ifp = fdGetFILE(sql->ifd);
   
  -         rc = rpmsqlInput(sql, sql->ifd, NULL);
  +sql->flags |= RPMSQL_FLAGS_PROMPT;
  +         rc = rpmsqlInput(sql, sql->ifd);
  +sql->flags &= ~RPMSQL_FLAGS_PROMPT;
   
            if (sql->ifd) (void) Fclose(sql->ifd);
            sql->ifd = NULL;
  @@ -4347,7 +4346,7 @@
   assert(sql->ifd);
   sql->ifp = fdGetFILE(sql->ifd);
   
  -         rc = rpmsqlInput(sql, sql->ifd, sql->ifp);
  +         rc = rpmsqlInput(sql, sql->ifd);
   
            if (sql->ifd) (void) Fclose(sql->ifd);
            sql->ifd = NULL;
  @@ -4365,7 +4364,7 @@
            sql->ifd = Fopen(s, "rb.fpio");
            if (!(sql->ifd == NULL || Ferror(sql->ifd))) {
   sql->ifp = fdGetFILE(sql->ifd);
  -             rc = rpmsqlInput(sql, sql->ifd, sql->ifp);
  +             rc = rpmsqlInput(sql, sql->ifd);
            }
            if (sql->ifd) (void) Fclose(sql->ifd);
            sql->ifd = NULL;
  @@ .
  patch -p0 <<'@@ .'
  Index: rpm/rpmio/rpmsql.h
  ============================================================================
  $ cvs diff -u -r2.14 -r2.15 rpmsql.h
  --- rpm/rpmio/rpmsql.h        12 Apr 2010 15:16:06 -0000      2.14
  +++ rpm/rpmio/rpmsql.h        12 Apr 2010 16:12:24 -0000      2.15
  @@ -37,6 +37,8 @@
       RPMSQL_FLAGS_ECHO                = (1 << 16),    /*    -echo */
       RPMSQL_FLAGS_SHOWHDR     = (1 << 17),    /*    -[no]header */
       RPMSQL_FLAGS_WRITABLE    = (1 << 18),    /* PRAGMA writable_schema */
  +
  +    RPMSQL_FLAGS_PROMPT              = (1 << 24),    /* STDIN from tty */
   };
   
   /**
  @@ .
______________________________________________________________________
RPM Package Manager                                    http://rpm5.org
CVS Sources Repository                                [email protected]

Reply via email to