90 lines
1.7 KiB
Diff
90 lines
1.7 KiB
Diff
|
--- rpm-4.4.2/lib/query.c.flush 2006-10-31 12:48:54.000000000 +0000
|
||
|
+++ rpm-4.4.2/lib/query.c 2006-10-31 12:49:05.000000000 +0000
|
||
|
@@ -124,6 +124,28 @@
|
||
|
return str;
|
||
|
}
|
||
|
|
||
|
+/**
|
||
|
+ */
|
||
|
+static void flushBuffer(char ** tp, char ** tep, int nonewline)
|
||
|
+ /*@ modifies *tp, *tep @*/
|
||
|
+{
|
||
|
+ char *t, *te;
|
||
|
+
|
||
|
+ t = *tp;
|
||
|
+ te = *tep;
|
||
|
+ if (te > t) {
|
||
|
+ if (!nonewline) {
|
||
|
+ *te++ = '\n';
|
||
|
+ *te = '\0';
|
||
|
+ }
|
||
|
+ rpmMessage(RPMMESS_NORMAL, "%s", t);
|
||
|
+ te = t;
|
||
|
+ *t = '\0';
|
||
|
+ }
|
||
|
+ *tp = t;
|
||
|
+ *tep = te;
|
||
|
+}
|
||
|
+
|
||
|
int showQueryPackage(QVA_t qva, rpmts ts, Header h)
|
||
|
{
|
||
|
int scareMem = 0;
|
||
|
@@ -131,7 +153,6 @@
|
||
|
char * t, * te;
|
||
|
char * prefix = NULL;
|
||
|
int rc = 0; /* XXX FIXME: need real return code */
|
||
|
- int nonewline = 0;
|
||
|
int i;
|
||
|
|
||
|
te = t = xmalloc(BUFSIZ);
|
||
|
@@ -141,7 +162,6 @@
|
||
|
|
||
|
if (qva->qva_queryFormat != NULL) {
|
||
|
const char * str = queryHeader(h, qva->qva_queryFormat);
|
||
|
- nonewline = 1;
|
||
|
/*@-branchstate@*/
|
||
|
if (str) {
|
||
|
size_t tb = (te - t);
|
||
|
@@ -157,6 +177,7 @@
|
||
|
/*@=usereleased@*/
|
||
|
/*@=boundswrite@*/
|
||
|
str = _free(str);
|
||
|
+ flushBuffer(&t, &te, 1);
|
||
|
}
|
||
|
/*@=branchstate@*/
|
||
|
}
|
||
|
@@ -304,31 +325,13 @@
|
||
|
_("package has neither file owner or id lists\n"));
|
||
|
}
|
||
|
}
|
||
|
-/*@-branchstate@*/
|
||
|
- if (te > t) {
|
||
|
-/*@-boundswrite@*/
|
||
|
- *te++ = '\n';
|
||
|
- *te = '\0';
|
||
|
- rpmMessage(RPMMESS_NORMAL, "%s", t);
|
||
|
- te = t;
|
||
|
- *t = '\0';
|
||
|
-/*@=boundswrite@*/
|
||
|
- }
|
||
|
-/*@=branchstate@*/
|
||
|
+ flushBuffer(&t, &te, 0);
|
||
|
}
|
||
|
|
||
|
rc = 0;
|
||
|
|
||
|
exit:
|
||
|
- if (te > t) {
|
||
|
- if (!nonewline) {
|
||
|
-/*@-boundswrite@*/
|
||
|
- *te++ = '\n';
|
||
|
- *te = '\0';
|
||
|
-/*@=boundswrite@*/
|
||
|
- }
|
||
|
- rpmMessage(RPMMESS_NORMAL, "%s", t);
|
||
|
- }
|
||
|
+ flushBuffer(&t, &te, 0);
|
||
|
t = _free(t);
|
||
|
|
||
|
fi = rpmfiFree(fi);
|