- Solved multilib problems at doxygen generated files (#342921)
This commit is contained in:
parent
19bf75f7f4
commit
aa5ee68b49
@ -1 +1 @@
|
||||
popt-1.12.tar.gz
|
||||
popt-1.13.tar.gz
|
||||
|
@ -1,415 +0,0 @@
|
||||
Patch by Robert Scheck <robert@fedoraproject.org> for popt 1.12, which backports
|
||||
the following changes as (hopefully) bugfixes for several popt bugreports in Red
|
||||
Hat Bugzilla (#102254, #135428 and #178413). From the CHANGES file:
|
||||
|
||||
- jbj: refactor column cursor to a structure, carry maxcols as well.
|
||||
- jbj: use TIOCGWINSZ to determine --help column wrapping.
|
||||
- jbj: help formatting for POPT_ARG_MAINCALL.
|
||||
- jbj: remove N_(...) markings from popt.h, markers in popthelp.c instead.
|
||||
- jbj: hotwire POPT_AUTOHELP/POPT_AUTOALIAS lookup in popt i18n domain.
|
||||
|
||||
--- popt-1.12/popt.h 2007-05-25 19:36:23.000000000 +0200
|
||||
+++ popt-1.13/popt.h 2007-08-14 16:42:33.000000000 +0200
|
||||
@@ -157,10 +157,6 @@
|
||||
*/
|
||||
/*@{*/
|
||||
|
||||
-#if !defined(N_)
|
||||
-#define N_(foo) foo
|
||||
-#endif
|
||||
-
|
||||
/**
|
||||
* Empty table marker to enable displaying popt alias/exec options.
|
||||
*/
|
||||
@@ -169,7 +165,7 @@
|
||||
extern struct poptOption poptAliasOptions[];
|
||||
/*@=exportvar@*/
|
||||
#define POPT_AUTOALIAS { NULL, '\0', POPT_ARG_INCLUDE_TABLE, poptAliasOptions, \
|
||||
- 0, N_("Options implemented via popt alias/exec:"), NULL },
|
||||
+ 0, "Options implemented via popt alias/exec:", NULL },
|
||||
|
||||
/**
|
||||
* Auto help table options.
|
||||
@@ -185,7 +181,7 @@
|
||||
/*@=exportvar@*/
|
||||
|
||||
#define POPT_AUTOHELP { NULL, '\0', POPT_ARG_INCLUDE_TABLE, poptHelpOptions, \
|
||||
- 0, N_("Help options:"), NULL },
|
||||
+ 0, "Help options:", NULL },
|
||||
|
||||
#define POPT_TABLEEND { NULL, '\0', 0, NULL, 0, NULL, NULL }
|
||||
/*@}*/
|
||||
--- popt-1.12/popthelp.c 2007-06-14 15:31:10.000000000 +0200
|
||||
+++ popt-1.13/popthelp.c 2007-08-15 20:58:05.000000000 +0200
|
||||
@@ -10,6 +10,11 @@
|
||||
|
||||
#include "system.h"
|
||||
|
||||
+#define POPT_USE_TIOCGWINSZ
|
||||
+#ifdef POPT_USE_TIOCGWINSZ
|
||||
+#include <sys/ioctl.h>
|
||||
+#endif
|
||||
+
|
||||
#define POPT_WCHAR_HACK
|
||||
#ifdef POPT_WCHAR_HACK
|
||||
#include <wchar.h> /* for mbsrtowcs */
|
||||
@@ -19,8 +24,6 @@
|
||||
|
||||
/*@access poptContext@*/
|
||||
|
||||
-#define _POPTHELP_MAXLINE ((size_t)79)
|
||||
-
|
||||
/**
|
||||
* Display arguments.
|
||||
* @param con context
|
||||
@@ -89,6 +92,33 @@
|
||||
struct poptOption * poptHelpOptionsI18N = poptHelpOptions2;
|
||||
/*@=castfcnptr@*/
|
||||
|
||||
+#define _POPTHELP_MAXLINE ((size_t)79)
|
||||
+
|
||||
+typedef struct columns_s {
|
||||
+ size_t cur;
|
||||
+ size_t max;
|
||||
+} * columns_t;
|
||||
+
|
||||
+/**
|
||||
+ * Return no. of columns in output window.
|
||||
+ * @param fp FILE
|
||||
+ * @return no. of columns
|
||||
+ */
|
||||
+static size_t maxColumnWidth(FILE *fp)
|
||||
+ /*@*/
|
||||
+{
|
||||
+ size_t maxcols = _POPTHELP_MAXLINE;
|
||||
+#if defined(TIOCGWINSZ)
|
||||
+ struct winsize ws;
|
||||
+ int fdno = fileno(fp ? fp : stdout);
|
||||
+
|
||||
+ if (fdno >= 0 && !ioctl(fdno, TIOCGWINSZ, &ws)
|
||||
+ && ws.ws_col > maxcols && ws.ws_col < 256)
|
||||
+ maxcols = ws.ws_col - 1;
|
||||
+#endif
|
||||
+ return maxcols;
|
||||
+}
|
||||
+
|
||||
/**
|
||||
* @param table option(s)
|
||||
*/
|
||||
@@ -119,10 +149,20 @@
|
||||
{
|
||||
if (!(opt->argInfo & POPT_ARG_MASK)) return NULL;
|
||||
|
||||
- if (opt == (poptHelpOptions + 1) || opt == (poptHelpOptions + 2))
|
||||
- if (opt->argDescrip) return POPT_(opt->argDescrip);
|
||||
+ if ((opt->argInfo & POPT_ARG_MASK) == POPT_ARG_MAINCALL)
|
||||
+ return opt->argDescrip;
|
||||
|
||||
- if (opt->argDescrip) return D_(translation_domain, opt->argDescrip);
|
||||
+ if (opt->argDescrip) {
|
||||
+ /* Some strings need popt library, not application, i18n domain. */
|
||||
+ if (opt == (poptHelpOptions + 1)
|
||||
+ || opt == (poptHelpOptions + 2)
|
||||
+ || !strcmp(opt->argDescrip,N_("Help options:"))
|
||||
+ || !strcmp(opt->argDescrip,N_("Options implemented via popt alias/exec:")))
|
||||
+ return POPT_(opt->argDescrip);
|
||||
+
|
||||
+ /* Use the application i18n domain. */
|
||||
+ return D_(translation_domain, opt->argDescrip);
|
||||
+ }
|
||||
|
||||
switch (opt->argInfo & POPT_ARG_MASK) {
|
||||
case POPT_ARG_NONE: return POPT_("NONE");
|
||||
@@ -136,6 +176,7 @@
|
||||
case POPT_ARG_STRING: return POPT_("STRING");
|
||||
case POPT_ARG_FLOAT: return POPT_("FLOAT");
|
||||
case POPT_ARG_DOUBLE: return POPT_("DOUBLE");
|
||||
+ case POPT_ARG_MAINCALL: return NULL;
|
||||
default: return POPT_("ARG");
|
||||
}
|
||||
}
|
||||
@@ -185,6 +226,9 @@
|
||||
{ double aDouble = *((double *)opt->arg);
|
||||
le += sprintf(le, "%g", aDouble);
|
||||
} break;
|
||||
+ case POPT_ARG_MAINCALL:
|
||||
+ le += sprintf(le, "%p", opt->arg);
|
||||
+ break;
|
||||
case POPT_ARG_STRING:
|
||||
{ const char * s = *(const char **)opt->arg;
|
||||
if (s == NULL) {
|
||||
@@ -215,18 +259,19 @@
|
||||
/**
|
||||
* Display help text for an option.
|
||||
* @param fp output file handle
|
||||
- * @param maxLeftCol largest argument display width
|
||||
+ * @param columns output display width control
|
||||
* @param opt option(s)
|
||||
* @param translation_domain translation domain
|
||||
*/
|
||||
-static void singleOptionHelp(FILE * fp, size_t maxLeftCol,
|
||||
+static void singleOptionHelp(FILE * fp, columns_t columns,
|
||||
const struct poptOption * opt,
|
||||
/*@null@*/ const char * translation_domain)
|
||||
/*@globals fileSystem @*/
|
||||
/*@modifies *fp, fileSystem @*/
|
||||
{
|
||||
+ size_t maxLeftCol = columns->cur;
|
||||
size_t indentLength = maxLeftCol + 5;
|
||||
- size_t lineLength = _POPTHELP_MAXLINE - indentLength;
|
||||
+ size_t lineLength = columns->max - indentLength;
|
||||
const char * help = D_(translation_domain, opt->descrip);
|
||||
const char * argDescrip = getArgDescrip(opt, translation_domain);
|
||||
size_t helpLength;
|
||||
@@ -253,7 +298,8 @@
|
||||
sprintf(left, "-%c", opt->shortName);
|
||||
else if (opt->longName)
|
||||
sprintf(left, "%s%s",
|
||||
- ((opt->argInfo & POPT_ARGFLAG_ONEDASH) ? "-" : "--"),
|
||||
+ ((opt->argInfo & POPT_ARG_MASK) == POPT_ARG_MAINCALL ? "" :
|
||||
+ ((opt->argInfo & POPT_ARGFLAG_ONEDASH) ? "-" : "--")),
|
||||
opt->longName);
|
||||
if (!*left) goto out;
|
||||
|
||||
@@ -335,7 +381,8 @@
|
||||
} else {
|
||||
size_t lelen;
|
||||
|
||||
- *le++ = '=';
|
||||
+ *le++ = ((opt->argInfo & POPT_ARG_MASK) == POPT_ARG_MAINCALL)
|
||||
+ ? ' ' : '=';
|
||||
strcpy(le, argDescrip);
|
||||
lelen = strlen(le);
|
||||
le += lelen;
|
||||
@@ -475,7 +522,8 @@
|
||||
* @param translation_domain translation domain
|
||||
*/
|
||||
static void itemHelp(FILE * fp,
|
||||
- /*@null@*/ poptItem items, int nitems, size_t left,
|
||||
+ /*@null@*/ poptItem items, int nitems,
|
||||
+ columns_t columns,
|
||||
/*@null@*/ const char * translation_domain)
|
||||
/*@globals fileSystem @*/
|
||||
/*@modifies *fp, fileSystem @*/
|
||||
@@ -489,7 +537,7 @@
|
||||
opt = &item->option;
|
||||
if ((opt->longName || opt->shortName) &&
|
||||
!(opt->argInfo & POPT_ARGFLAG_DOC_HIDDEN))
|
||||
- singleOptionHelp(fp, left, opt, translation_domain);
|
||||
+ singleOptionHelp(fp, columns, opt, translation_domain);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -498,11 +546,12 @@
|
||||
* @param con context
|
||||
* @param fp output file handle
|
||||
* @param table option(s)
|
||||
- * @param left largest argument display width
|
||||
+ * @param columns output display width control
|
||||
* @param translation_domain translation domain
|
||||
*/
|
||||
static void singleTableHelp(poptContext con, FILE * fp,
|
||||
- /*@null@*/ const struct poptOption * table, size_t left,
|
||||
+ /*@null@*/ const struct poptOption * table,
|
||||
+ columns_t columns,
|
||||
/*@null@*/ const char * translation_domain)
|
||||
/*@globals fileSystem @*/
|
||||
/*@modifies *fp, fileSystem @*/
|
||||
@@ -511,8 +560,8 @@
|
||||
const char *sub_transdom;
|
||||
|
||||
if (table == poptAliasOptions) {
|
||||
- itemHelp(fp, con->aliases, con->numAliases, left, NULL);
|
||||
- itemHelp(fp, con->execs, con->numExecs, left, NULL);
|
||||
+ itemHelp(fp, con->aliases, con->numAliases, columns, NULL);
|
||||
+ itemHelp(fp, con->execs, con->numExecs, columns, NULL);
|
||||
return;
|
||||
}
|
||||
|
||||
@@ -520,7 +569,7 @@
|
||||
for (opt = table; (opt->longName || opt->shortName || opt->arg); opt++) {
|
||||
if ((opt->longName || opt->shortName) &&
|
||||
!(opt->argInfo & POPT_ARGFLAG_DOC_HIDDEN))
|
||||
- singleOptionHelp(fp, left, opt, translation_domain);
|
||||
+ singleOptionHelp(fp, columns, opt, translation_domain);
|
||||
}
|
||||
|
||||
if (table != NULL)
|
||||
@@ -534,7 +583,7 @@
|
||||
if (opt->descrip)
|
||||
POPT_fprintf(fp, "\n%s\n", D_(sub_transdom, opt->descrip));
|
||||
|
||||
- singleTableHelp(con, fp, opt->arg, left, sub_transdom);
|
||||
+ singleTableHelp(con, fp, opt->arg, columns, sub_transdom);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -567,7 +616,7 @@
|
||||
|
||||
void poptPrintHelp(poptContext con, FILE * fp, /*@unused@*/ int flags)
|
||||
{
|
||||
- size_t leftColWidth;
|
||||
+ columns_t columns = memset(alloca(sizeof(*columns)), 0, sizeof(*columns));
|
||||
|
||||
(void) showHelpIntro(con, fp);
|
||||
if (con->otherHelp)
|
||||
@@ -575,18 +624,19 @@
|
||||
else
|
||||
fprintf(fp, " %s\n", POPT_("[OPTION...]"));
|
||||
|
||||
- leftColWidth = maxArgWidth(con->options, NULL);
|
||||
- singleTableHelp(con, fp, con->options, leftColWidth, NULL);
|
||||
+ columns->cur = maxArgWidth(con->options, NULL);
|
||||
+ columns->max = maxColumnWidth(fp);
|
||||
+ singleTableHelp(con, fp, con->options, columns, NULL);
|
||||
}
|
||||
|
||||
/**
|
||||
* Display usage text for an option.
|
||||
* @param fp output file handle
|
||||
- * @param cursor current display position
|
||||
+ * @param columns output display width control
|
||||
* @param opt option(s)
|
||||
* @param translation_domain translation domain
|
||||
*/
|
||||
-static size_t singleOptionUsage(FILE * fp, size_t cursor,
|
||||
+static size_t singleOptionUsage(FILE * fp, columns_t columns,
|
||||
const struct poptOption * opt,
|
||||
/*@null@*/ const char *translation_domain)
|
||||
/*@globals fileSystem @*/
|
||||
@@ -615,7 +665,7 @@
|
||||
bingo++;
|
||||
}
|
||||
|
||||
- if (!bingo) return cursor;
|
||||
+ if (!bingo) return columns->cur;
|
||||
|
||||
#ifdef POPT_WCHAR_HACK
|
||||
/* XXX Calculate no. of display characters. */
|
||||
@@ -636,9 +686,9 @@
|
||||
len += sizeof("=")-1 + strlen(argDescrip);
|
||||
#endif
|
||||
|
||||
- if ((cursor + len) > _POPTHELP_MAXLINE) {
|
||||
+ if ((columns->cur + len) > columns->max) {
|
||||
fprintf(fp, "\n ");
|
||||
- cursor = (size_t)7;
|
||||
+ columns->cur = (size_t)7;
|
||||
}
|
||||
|
||||
if (opt->longName && opt->shortName) {
|
||||
@@ -655,18 +705,18 @@
|
||||
(argDescrip ? argDescrip : ""));
|
||||
}
|
||||
|
||||
- return cursor + len + 1;
|
||||
+ return columns->cur + len + 1;
|
||||
}
|
||||
|
||||
/**
|
||||
* Display popt alias and exec usage.
|
||||
* @param fp output file handle
|
||||
- * @param cursor current display position
|
||||
+ * @param columns output display width control
|
||||
* @param item alias/exec array
|
||||
* @param nitems no. of ara/exec entries
|
||||
* @param translation_domain translation domain
|
||||
*/
|
||||
-static size_t itemUsage(FILE * fp, size_t cursor,
|
||||
+static size_t itemUsage(FILE * fp, columns_t columns,
|
||||
/*@null@*/ poptItem item, int nitems,
|
||||
/*@null@*/ const char * translation_domain)
|
||||
/*@globals fileSystem @*/
|
||||
@@ -683,12 +733,12 @@
|
||||
translation_domain = (const char *)opt->arg;
|
||||
} else if ((opt->longName || opt->shortName) &&
|
||||
!(opt->argInfo & POPT_ARGFLAG_DOC_HIDDEN)) {
|
||||
- cursor = singleOptionUsage(fp, cursor, opt, translation_domain);
|
||||
+ columns->cur = singleOptionUsage(fp, columns, opt, translation_domain);
|
||||
}
|
||||
}
|
||||
/*@=branchstate@*/
|
||||
|
||||
- return cursor;
|
||||
+ return columns->cur;
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -704,13 +754,13 @@
|
||||
* Display usage text for a table of options.
|
||||
* @param con context
|
||||
* @param fp output file handle
|
||||
- * @param cursor current display position
|
||||
+ * @param columns output display width control
|
||||
* @param opt option(s)
|
||||
* @param translation_domain translation domain
|
||||
* @param done tables already processed
|
||||
* @return
|
||||
*/
|
||||
-static size_t singleTableUsage(poptContext con, FILE * fp, size_t cursor,
|
||||
+static size_t singleTableUsage(poptContext con, FILE * fp, columns_t columns,
|
||||
/*@null@*/ const struct poptOption * opt,
|
||||
/*@null@*/ const char * translation_domain,
|
||||
/*@null@*/ poptDone done)
|
||||
@@ -741,16 +791,16 @@
|
||||
done->opts[done->nopts++] = (const void *) opt->arg;
|
||||
/*@=boundswrite@*/
|
||||
}
|
||||
- cursor = singleTableUsage(con, fp, cursor, opt->arg,
|
||||
+ columns->cur = singleTableUsage(con, fp, columns, opt->arg,
|
||||
translation_domain, done);
|
||||
} else if ((opt->longName || opt->shortName) &&
|
||||
!(opt->argInfo & POPT_ARGFLAG_DOC_HIDDEN)) {
|
||||
- cursor = singleOptionUsage(fp, cursor, opt, translation_domain);
|
||||
+ columns->cur = singleOptionUsage(fp, columns, opt, translation_domain);
|
||||
}
|
||||
}
|
||||
/*@=branchstate@*/
|
||||
|
||||
- return cursor;
|
||||
+ return columns->cur;
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -798,30 +848,31 @@
|
||||
|
||||
void poptPrintUsage(poptContext con, FILE * fp, /*@unused@*/ int flags)
|
||||
{
|
||||
+ columns_t columns = memset(alloca(sizeof(*columns)), 0, sizeof(*columns));
|
||||
struct poptDone_s done_buf;
|
||||
poptDone done = &done_buf;
|
||||
- size_t cursor;
|
||||
|
||||
memset(done, 0, sizeof(*done));
|
||||
done->nopts = 0;
|
||||
done->maxopts = 64;
|
||||
- cursor = done->maxopts * sizeof(*done->opts);
|
||||
+ columns->cur = done->maxopts * sizeof(*done->opts);
|
||||
+ columns->max = maxColumnWidth(fp);
|
||||
/*@-boundswrite@*/
|
||||
- done->opts = calloc(1, cursor);
|
||||
+ done->opts = calloc(1, columns->cur);
|
||||
/*@-keeptrans@*/
|
||||
done->opts[done->nopts++] = (const void *) con->options;
|
||||
/*@=keeptrans@*/
|
||||
/*@=boundswrite@*/
|
||||
|
||||
- cursor = showHelpIntro(con, fp);
|
||||
- cursor += showShortOptions(con->options, fp, NULL);
|
||||
- cursor = singleTableUsage(con, fp, cursor, con->options, NULL, done);
|
||||
- cursor = itemUsage(fp, cursor, con->aliases, con->numAliases, NULL);
|
||||
- cursor = itemUsage(fp, cursor, con->execs, con->numExecs, NULL);
|
||||
+ columns->cur = showHelpIntro(con, fp);
|
||||
+ columns->cur += showShortOptions(con->options, fp, NULL);
|
||||
+ columns->cur = singleTableUsage(con, fp, columns, con->options, NULL, done);
|
||||
+ columns->cur = itemUsage(fp, columns, con->aliases, con->numAliases, NULL);
|
||||
+ columns->cur = itemUsage(fp, columns, con->execs, con->numExecs, NULL);
|
||||
|
||||
if (con->otherHelp) {
|
||||
- cursor += strlen(con->otherHelp) + 1;
|
||||
- if (cursor > _POPTHELP_MAXLINE) fprintf(fp, "\n ");
|
||||
+ columns->cur += strlen(con->otherHelp) + 1;
|
||||
+ if (columns->cur > columns->max) fprintf(fp, "\n ");
|
||||
fprintf(fp, " %s", con->otherHelp);
|
||||
}
|
||||
|
23
popt-1.13-multilib.patch
Normal file
23
popt-1.13-multilib.patch
Normal file
@ -0,0 +1,23 @@
|
||||
Patch by Robert Scheck <robert@fedoraproject.org> for popt >= 1.13, which solves the
|
||||
multilib/multiarch problem by removing the timestamp within the footer from the doxygen
|
||||
generated files.
|
||||
|
||||
--- popt-1.13/Doxyfile.in 2007-05-25 19:36:23.000000000 +0200
|
||||
+++ popt-1.13/Doxyfile.in.multilib 2007-12-15 17:07:34.000000000 +0100
|
||||
@@ -659,7 +659,7 @@
|
||||
# each generated HTML page. If it is left blank doxygen will generate a
|
||||
# standard footer.
|
||||
|
||||
-HTML_FOOTER =
|
||||
+HTML_FOOTER = footer_no_timestamp.html
|
||||
|
||||
# The HTML_STYLESHEET tag can be used to specify a user-defined cascading
|
||||
# style sheet that is used by each HTML page. It can be used to
|
||||
--- popt-1.13/footer_no_timestamp.html 1970-01-01 01:00:00.000000000 +0100
|
||||
+++ popt-1.13/footer_no_timestamp.html.multilib 2007-12-14 22:21:35.000000000 +0100
|
||||
@@ -0,0 +1,5 @@
|
||||
+<hr size="1"><address style="text-align: right;"><small>Generated for $projectname by
|
||||
+<a href="http://www.doxygen.org/index.html">
|
||||
+<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> $doxygenversion </small></address>
|
||||
+</body>
|
||||
+</html>
|
119
popt-1.13-popt_fprintf.patch
Normal file
119
popt-1.13-popt_fprintf.patch
Normal file
@ -0,0 +1,119 @@
|
||||
Patch by Jeff Johnson <jbj@rpm5.org> for popt >= 1.13, which reverts all POPT_fprintf()
|
||||
usage cases to avoid broken umlauts in --help output at some non-UTF8 locales. It should
|
||||
not break anything, just restore the behaviour of popt 1.12 again to not introduce a new
|
||||
regression. Clueless modified by Robert Scheck <robert@rpm5.org> to hide the last found
|
||||
two locale regression as well.
|
||||
|
||||
--- popt-1.13/popthelp.c 2007-11-04 16:46:25.000000000 +0100
|
||||
+++ popt-1.13/popthelp.c.popt_fprintf 2007-12-30 22:10:24.000000000 +0100
|
||||
@@ -281,7 +281,6 @@
|
||||
char * left;
|
||||
size_t nb = maxLeftCol + 1;
|
||||
int displaypad = 0;
|
||||
- int xx;
|
||||
|
||||
/* Make sure there's more than enough room in target buffer. */
|
||||
if (opt->longName) nb += strlen(opt->longName);
|
||||
@@ -406,9 +405,9 @@
|
||||
}
|
||||
|
||||
if (help)
|
||||
- xx = POPT_fprintf(fp," %-*s ", (int)(maxLeftCol+displaypad), left);
|
||||
+ fprintf(fp," %-*s ", (int)(maxLeftCol+displaypad), left);
|
||||
else {
|
||||
- xx = POPT_fprintf(fp," %s\n", left);
|
||||
+ fprintf(fp," %s\n", left);
|
||||
goto out;
|
||||
}
|
||||
|
||||
@@ -428,18 +427,19 @@
|
||||
if (ch == help) break; /* give up */
|
||||
while (ch > (help + 1) && _isspaceptr(ch))
|
||||
ch = POPT_prev_char (ch);
|
||||
- ch++;
|
||||
+ ch = POPT_next_char(ch);
|
||||
|
||||
sprintf(format, "%%.%ds\n%%%ds", (int) (ch - help), (int) indentLength);
|
||||
/*@-formatconst@*/
|
||||
- xx = POPT_fprintf(fp, format, help, " ");
|
||||
+ fprintf(fp, format, help, " ");
|
||||
/*@=formatconst@*/
|
||||
help = ch;
|
||||
- while (_isspaceptr(help) && *help) help++;
|
||||
+ while (_isspaceptr(help) && *help)
|
||||
+ help = POPT_next_char(help);
|
||||
helpLength = strlen(help);
|
||||
}
|
||||
|
||||
- if (helpLength) xx = POPT_fprintf(fp, "%s\n", help);
|
||||
+ if (helpLength) fprintf(fp, "%s\n", help);
|
||||
help = NULL;
|
||||
|
||||
out:
|
||||
@@ -553,7 +553,6 @@
|
||||
{
|
||||
const struct poptOption * opt;
|
||||
const char *sub_transdom;
|
||||
- int xx;
|
||||
|
||||
if (table == poptAliasOptions) {
|
||||
itemHelp(fp, con->aliases, con->numAliases, columns, NULL);
|
||||
@@ -577,7 +576,7 @@
|
||||
sub_transdom = translation_domain;
|
||||
|
||||
if (opt->descrip)
|
||||
- xx = POPT_fprintf(fp, "\n%s\n", D_(sub_transdom, opt->descrip));
|
||||
+ fprintf(fp, "\n%s\n", D_(sub_transdom, opt->descrip));
|
||||
|
||||
singleTableHelp(con, fp, opt->arg, columns, sub_transdom);
|
||||
}
|
||||
@@ -767,7 +766,7 @@
|
||||
translation_domain = (const char *)opt->arg;
|
||||
} else if ((opt->argInfo & POPT_ARG_MASK) == POPT_ARG_INCLUDE_TABLE) {
|
||||
if (done) {
|
||||
- int i;
|
||||
+ int i = done->nopts;
|
||||
if (done->opts != NULL)
|
||||
for (i = 0; i < done->nopts; i++) {
|
||||
const void * that = done->opts[i];
|
||||
--- popt-1.13/poptint.c 2007-11-04 16:56:24.000000000 +0100
|
||||
+++ popt-1.13/poptint.c.popt_fprintf 2007-12-30 22:10:24.000000000 +0100
|
||||
@@ -124,6 +124,18 @@
|
||||
}
|
||||
}
|
||||
|
||||
+char *
|
||||
+POPT_next_char (const char *str)
|
||||
+{
|
||||
+ char *p = (char *)str;
|
||||
+
|
||||
+ while (1) {
|
||||
+ p++;
|
||||
+ if ((*p & 0xc0) != (char)0x80)
|
||||
+ return (char *)p;
|
||||
+ }
|
||||
+}
|
||||
+
|
||||
int
|
||||
POPT_fprintf (FILE* stream, const char *format, ...)
|
||||
{
|
||||
--- popt-1.13/poptint.h 2007-12-11 19:02:29.000000000 +0100
|
||||
+++ popt-1.13/poptint.h.popt_fprintf 2007-12-30 22:10:24.000000000 +0100
|
||||
@@ -144,11 +144,14 @@
|
||||
#endif
|
||||
#endif
|
||||
|
||||
+char *POPT_prev_char (/*@returned@*/ const char *str)
|
||||
+ /*@*/;
|
||||
+
|
||||
+char *POPT_next_char (/*@returned@*/ const char *str)
|
||||
+ /*@*/;
|
||||
+
|
||||
int POPT_fprintf (FILE* stream, const char *format, ...)
|
||||
/*@globals fileSystem @*/
|
||||
/*@modifies stream, fileSystem @*/;
|
||||
|
||||
-char *POPT_prev_char (/*@returned@*/ const char *str)
|
||||
- /*@*/;
|
||||
-
|
||||
#endif
|
22
popt.spec
22
popt.spec
@ -1,12 +1,13 @@
|
||||
Summary: C library for parsing command line parameters
|
||||
Name: popt
|
||||
Version: 1.12
|
||||
Release: 3%{?dist}
|
||||
Version: 1.13
|
||||
Release: 1%{?dist}
|
||||
License: MIT
|
||||
Group: System Environment/Libraries
|
||||
URL: http://www.rpm5.org/
|
||||
Source: http://www.rpm5.org/files/%{name}/%{name}-%{version}.tar.gz
|
||||
Patch0: popt-1.12-20070815cvs.patch
|
||||
Patch0: popt-1.13-multilib.patch
|
||||
Patch1: popt-1.13-popt_fprintf.patch
|
||||
BuildRequires: gettext, doxygen, graphviz
|
||||
BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n)
|
||||
|
||||
@ -41,13 +42,18 @@ Install it if you need to link statically with libpopt.
|
||||
|
||||
%prep
|
||||
%setup -q
|
||||
%patch0 -p1 -b .20070815cvs
|
||||
%patch0 -p1 -b .multilib
|
||||
%patch1 -p1 -b .popt_fprintf
|
||||
|
||||
%build
|
||||
%configure --libdir=/%{_lib}
|
||||
make %{?_smp_mflags}
|
||||
doxygen
|
||||
|
||||
# Solve multilib problems by changing the internal PNG timestamp to a reference timestamp;
|
||||
# see http://fedoraproject.org/wiki/PackagingDrafts/MultilibTricks for further information.
|
||||
perl -pi -e "s/tIME.{11}/tIME\x07\xd7\x0c\x0b\x17\x0a\x28\xc4\x1d\x23\xfc/" doxygen/html/*.png
|
||||
|
||||
%install
|
||||
rm -rf $RPM_BUILD_ROOT
|
||||
make DESTDIR=$RPM_BUILD_ROOT install
|
||||
@ -60,6 +66,9 @@ ln -sf ../../%{_lib}/$(ls libpopt.so.?.?.?) $RPM_BUILD_ROOT%{_libdir}/libpopt.so
|
||||
popd
|
||||
mv -f $RPM_BUILD_ROOT/%{_lib}/libpopt.a $RPM_BUILD_ROOT%{_libdir}/libpopt.a
|
||||
|
||||
# Multiple popt configurations are possible
|
||||
mkdir -p $RPM_BUILD_ROOT%{_sysconfdir}/popt.d
|
||||
|
||||
%find_lang %{name}
|
||||
|
||||
%clean
|
||||
@ -72,6 +81,7 @@ rm -rf $RPM_BUILD_ROOT
|
||||
%files -f %{name}.lang
|
||||
%defattr(-,root,root)
|
||||
%doc CHANGES COPYING
|
||||
%{_sysconfdir}/popt.d
|
||||
/%{_lib}/libpopt.so.*
|
||||
|
||||
%files devel
|
||||
@ -86,6 +96,10 @@ rm -rf $RPM_BUILD_ROOT
|
||||
%{_libdir}/libpopt.a
|
||||
|
||||
%changelog
|
||||
* Sun Dec 30 2007 Robert Scheck <robert@fedoraproject.org> 1.13-1
|
||||
- Upgrade to 1.13 (#290531, #332201, #425803)
|
||||
- Solved multilib problems at doxygen generated files (#342921)
|
||||
|
||||
* Thu Aug 23 2007 Robert Scheck <robert@fedoraproject.org> 1.12-3
|
||||
- Added buildrequirement to graphviz (#249352)
|
||||
- Backported bugfixes from CVS (#102254, #135428 and #178413)
|
||||
|
Loading…
Reference in New Issue
Block a user