RPM Package Manager, CVS Repository http://rpm5.org/cvs/ ____________________________________________________________________________
Server: rpm5.org Name: Jeff Johnson Root: /v/rpm/cvs Email: j...@rpm5.org Module: rpm Date: 20-Jun-2017 09:39:07 Branch: rpm-5_4 Handle: 2017062007390601 Modified files: (Branch: rpm-5_4) rpm CHANGES rpm/rpmio argv.c argv.h rpmdate.c rpmnix.c rpmsed.c tgit.c thkp.c tmire.c tmount.c rpm/tools roto.c rpmcmp.c rpmdeps.c Log: - argv: attempt input trimming in argvFgets (if requested). Summary: Revision Changes Path 1.3501.2.578+1 -0 rpm/CHANGES 1.20.4.7 +30 -5 rpm/rpmio/argv.c 1.17.4.6 +2 -1 rpm/rpmio/argv.h 1.1.2.7 +1 -1 rpm/rpmio/rpmdate.c 2.17.2.7 +3 -3 rpm/rpmio/rpmnix.c 1.1.2.8 +2 -2 rpm/rpmio/rpmsed.c 1.1.2.54 +3 -3 rpm/rpmio/tgit.c 2.49.2.3 +1 -1 rpm/rpmio/thkp.c 1.6.8.2 +2 -2 rpm/rpmio/tmire.c 1.1.2.4 +1 -1 rpm/rpmio/tmount.c 1.1.2.12 +1 -1 rpm/tools/roto.c 2.5.6.1 +1 -1 rpm/tools/rpmcmp.c 2.21.6.2 +1 -1 rpm/tools/rpmdeps.c ____________________________________________________________________________ patch -p0 <<'@@ .' Index: rpm/CHANGES ============================================================================ $ cvs diff -u -r1.3501.2.577 -r1.3501.2.578 CHANGES --- rpm/CHANGES 13 Jun 2017 22:25:22 -0000 1.3501.2.577 +++ rpm/CHANGES 20 Jun 2017 07:39:06 -0000 1.3501.2.578 @@ -1,4 +1,5 @@ 5.4.17 -> 5.4.18: + - jbj: argv: attempt input trimming in argvFgets (if requested). - jbj: rpmeio: stub in libeio wrapper(s). - jbj: rpmev: stub in libev wrapper(s). - jbj: rpmio: add rpmioB2N/rpmioN2B to display/set bit soup. @@ . patch -p0 <<'@@ .' Index: rpm/rpmio/argv.c ============================================================================ $ cvs diff -u -r1.20.4.6 -r1.20.4.7 argv.c --- rpm/rpmio/argv.c 20 May 2017 13:42:47 -0000 1.20.4.6 +++ rpm/rpmio/argv.c 20 Jun 2017 07:39:07 -0000 1.20.4.7 @@ -16,16 +16,15 @@ void argvPrint(const char * msg, ARGV_t argv, FILE * fp) { + int argc = argvCount(argv); ARGV_t av; if (fp == NULL) fp = stderr; - - if (msg) - fprintf(fp, "===================================== %s\n", msg); + if (msg) fprintf(fp, "%25s: [%d]\n", msg, argc); if (argv) for (av = argv; *av; av++) - fprintf(fp, "\t%s\n", *av); + fprintf(fp, "%25s: |%s|\n", "", *av); } @@ -291,7 +290,7 @@ return t; } -int argvFgets(ARGV_t * argvp, void * _fd) +int argvFgets(ARGV_t * argvp, void * _fd, int trim) { FD_t fd = (FD_t) _fd; FILE * fp = (fd ? (FILE *) fdGetFILE(fd) : stdin); @@ -302,11 +301,37 @@ if (fp == NULL) return -2; + while (!rc && (b = fgets(buf, (int)sizeof(buf), fp)) != NULL) { buf[sizeof(buf)-1] = '\0'; + be = b + strlen(buf); while (--be >= b && strchr("\r\n", *be) != NULL) *be = '\0'; + + if (trim) { + /* rtrim */ + while (--be >= b && strchr(" \t", *be) != NULL) + *be = '\0'; + /* ltrim */ + while (b < be && strchr(" \t", *b) != NULL) + *b++ = '\0'; + + /* Skip shell comments */ + if (b[0] == '#') continue; + /* Skip single line C comments */ + if (b[0] == '/' && b[1] == '/') continue; + if (b[0] == '/' && b[1] == '*') continue; + /* Unquote */ + if (b[0] == '"' && be[-1] == '"') { + *b++ = '\0'; + *(--be) = '\0'; + } + } + + /* Skip empty lines */ + if (b >= be) continue; + rc = argvAdd(&av, b); } @@ . patch -p0 <<'@@ .' Index: rpm/rpmio/argv.h ============================================================================ $ cvs diff -u -r1.17.4.5 -r1.17.4.6 argv.h --- rpm/rpmio/argv.h 25 Jun 2016 07:31:07 -0000 1.17.4.5 +++ rpm/rpmio/argv.h 20 Jun 2017 07:39:07 -0000 1.17.4.6 @@ -207,9 +207,10 @@ * Read lines into an argv array. * @retval *argvp argv array * @param fd rpmio FD_t (NULL uses stdin) + * @param trim trim white space, skip shell/C comments? * @return 0 on success */ -int argvFgets(ARGV_t * argvp, void * fd); +int argvFgets(ARGV_t * argvp, void * fd, int trim); #ifdef __cplusplus } @@ . patch -p0 <<'@@ .' Index: rpm/rpmio/rpmdate.c ============================================================================ $ cvs diff -u -r1.1.2.6 -r1.1.2.7 rpmdate.c --- rpm/rpmio/rpmdate.c 26 May 2017 20:49:23 -0000 1.1.2.6 +++ rpm/rpmio/rpmdate.c 20 Jun 2017 07:39:07 -0000 1.1.2.7 @@ -121,7 +121,7 @@ rpmlog(RPMLOG_ERR, _("%s: Fopen failed\n"), fn); goto exit; } - xx = argvFgets(&nav, fd); + xx = argvFgets(&nav, fd, 0); xx = Fclose(fd); nac = argvCount(nav); } @@ . patch -p0 <<'@@ .' Index: rpm/rpmio/rpmnix.c ============================================================================ $ cvs diff -u -r2.17.2.6 -r2.17.2.7 rpmnix.c --- rpm/rpmio/rpmnix.c 26 May 2017 20:49:23 -0000 2.17.2.6 +++ rpm/rpmio/rpmnix.c 20 Jun 2017 07:39:07 -0000 2.17.2.7 @@ -641,7 +641,7 @@ } /* XXX skip comments todo++ */ nix->channels = argvFree(nix->channels); - xx = argvFgets(&nix->channels, fd); + xx = argvFgets(&nix->channels, fd, 0); xx = Fclose(fd); } @@ -1778,7 +1778,7 @@ fn = _free(fn); goto exit; } - xx = argvFgets(&expanded, fd); + xx = argvFgets(&expanded, fd, 0); xx = Fclose(fd); fn = _free(fn); @@ -2379,7 +2379,7 @@ if (fd) xx = Fclose(fd); exit(1); } - xx = argvFgets(&uav, fd); + xx = argvFgets(&uav, fd, 0); xx = Fclose(fd); url2 = xstrdup(uav[0]); uav = argvFree(uav); @@ . patch -p0 <<'@@ .' Index: rpm/rpmio/rpmsed.c ============================================================================ $ cvs diff -u -r1.1.2.7 -r1.1.2.8 rpmsed.c --- rpm/rpmio/rpmsed.c 26 May 2017 20:49:23 -0000 1.1.2.7 +++ rpm/rpmio/rpmsed.c 20 Jun 2017 07:39:07 -0000 1.1.2.8 @@ -123,7 +123,7 @@ sed->iav = argvFree(sed->iav); /* Fill per-line input array. */ - xx = argvFgets(&sed->iav, ifd); + xx = argvFgets(&sed->iav, ifd, 0); rc = RPMRC_OK; @@ -318,7 +318,7 @@ fprintf(stderr, _("Fopen(%s, \"r.fpio\") failed\n"), fn); goto exit; } - xx = argvFgets(&sed->subcmds, ifd); + xx = argvFgets(&sed->subcmds, ifd, 0); xx = Fclose(ifd); ifd = NULL; } @@ . patch -p0 <<'@@ .' Index: rpm/rpmio/tgit.c ============================================================================ $ cvs diff -u -r1.1.2.53 -r1.1.2.54 tgit.c --- rpm/rpmio/tgit.c 20 May 2017 13:42:50 -0000 1.1.2.53 +++ rpm/rpmio/tgit.c 20 Jun 2017 07:39:06 -0000 1.1.2.54 @@ -2624,7 +2624,7 @@ if (HO_ISSET(STDIN_PATHS)) { ARGV_t nav = NULL; /* XXX white space in paths? */ - xx = argvFgets(&nav, NULL); + xx = argvFgets(&nav, NULL, 0); xx = argvAppend(&git->av, nav); nav = argvFree(nav); } @@ -2773,7 +2773,7 @@ if (CF_ISSET(BATCH) || CF_ISSET(CHECK)) { ARGV_t nav = NULL; - xx = argvFgets(&nav, NULL); + xx = argvFgets(&nav, NULL, 0); xx = argvAppend(&git->av, nav); nav = argvFree(nav); cf_flags |= (_CF_SHA1|_CF_TYPE|_CF_SIZE); @@ -3072,7 +3072,7 @@ if (UI_ISSET(STDIN)) { ARGV_t nav = NULL; /* XXX white space in paths? */ - xx = argvFgets(&nav, NULL); + xx = argvFgets(&nav, NULL, 0); xx = argvAppend(&git->av, nav); nav = argvFree(nav); } @@ . patch -p0 <<'@@ .' Index: rpm/rpmio/thkp.c ============================================================================ $ cvs diff -u -r2.49.2.2 -r2.49.2.3 thkp.c --- rpm/rpmio/thkp.c 17 May 2017 12:34:41 -0000 2.49.2.2 +++ rpm/rpmio/thkp.c 20 Jun 2017 07:39:06 -0000 2.49.2.3 @@ -150,7 +150,7 @@ if (gotstdin) continue; gotstdin++; - if (argvFgets(&keyids, NULL)) + if (argvFgets(&keyids, NULL, 0)) goto exit; } } @@ . patch -p0 <<'@@ .' Index: rpm/rpmio/tmire.c ============================================================================ $ cvs diff -u -r1.6.8.1 -r1.6.8.2 tmire.c --- rpm/rpmio/tmire.c 20 May 2017 13:42:50 -0000 1.6.8.1 +++ rpm/rpmio/tmire.c 20 Jun 2017 07:39:06 -0000 1.6.8.2 @@ -42,7 +42,7 @@ int i; if (__debug) { -_mire_debug = 1; +_rpmmire_debug = 1; } av = poptGetArgs(optCon); @@ -55,7 +55,7 @@ mire->notmatch ^= invert; av = NULL; - if ((rc = argvFgets(&av, NULL)) != 0) + if ((rc = argvFgets(&av, NULL, 0)) != 0) goto exit; rc = 1; /* assume nomatch failure. */ @@ . patch -p0 <<'@@ .' Index: rpm/rpmio/tmount.c ============================================================================ $ cvs diff -u -r1.1.2.3 -r1.1.2.4 tmount.c --- rpm/rpmio/tmount.c 12 Jun 2017 06:55:34 -0000 1.1.2.3 +++ rpm/rpmio/tmount.c 20 Jun 2017 07:39:06 -0000 1.1.2.4 @@ -93,7 +93,7 @@ if (fd && !Ferror(fd)) { ARGV_t nav = NULL; int nac; - xx = argvFgets(&nav, fd); + xx = argvFgets(&nav, fd, 0); xx = Fclose(fd); nac = argvCount(nav); for (int i = 0; i < nac; i++) { @@ . patch -p0 <<'@@ .' Index: rpm/tools/roto.c ============================================================================ $ cvs diff -u -r1.1.2.11 -r1.1.2.12 roto.c --- rpm/tools/roto.c 9 Jun 2017 04:39:12 -0000 1.1.2.11 +++ rpm/tools/roto.c 20 Jun 2017 07:39:07 -0000 1.1.2.12 @@ -1756,7 +1756,7 @@ FD_t fd = Fopen("/proc/mounts", "r.fpio"); if (fd) { mountpoints = NULL; - xx = argvFgets(&mountpoints, fd); + xx = argvFgets(&mountpoints, fd, 0); xx = Fclose(fd); } nmountpoints = argvCount(mountpoints); @@ . patch -p0 <<'@@ .' Index: rpm/tools/rpmcmp.c ============================================================================ $ cvs diff -u -r2.5 -r2.5.6.1 rpmcmp.c --- rpm/tools/rpmcmp.c 30 Jul 2008 22:14:37 -0000 2.5 +++ rpm/tools/rpmcmp.c 20 Jun 2017 07:39:07 -0000 2.5.6.1 @@ -70,7 +70,7 @@ if (ac == 0 || !strcmp(*av, "-")) { av = NULL; - xx = argvFgets(&av, NULL); + xx = argvFgets(&av, NULL, 0); ac = argvCount(av); } @@ . patch -p0 <<'@@ .' Index: rpm/tools/rpmdeps.c ============================================================================ $ cvs diff -u -r2.21.6.1 -r2.21.6.2 rpmdeps.c --- rpm/tools/rpmdeps.c 16 May 2017 21:22:05 -0000 2.21.6.1 +++ rpm/tools/rpmdeps.c 20 Jun 2017 07:39:07 -0000 2.21.6.2 @@ -243,7 +243,7 @@ if (rpmdeps_mode == RPMDEP_RPMFC && ac == 0) { av = NULL; - xx = argvFgets(&av, NULL); + xx = argvFgets(&av, NULL, 0); ac = argvCount(av); } @@ . ______________________________________________________________________ RPM Package Manager http://rpm5.org CVS Sources Repository rpm-cvs@rpm5.org