From: marc Date: Fri, 12 Jan 1996 07:31:04 +0000 (+0000) Subject: add support for multi-line descriptions X-Git-Tag: tznext/4.11.0.1.tizen20130304~11764 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=76d811cc328f638fbe26e794904bc271c9b51769;p=tools%2Flibrpm-tizen.git add support for multi-line descriptions CVS patchset: 196 CVS date: 1996/01/12 07:31:04 --- diff --git a/build/spec.c b/build/spec.c index 81ee272..2ffc4f0 100644 --- a/build/spec.c +++ b/build/spec.c @@ -7,7 +7,6 @@ TODO: . strip blank lines, leading/trailing spaces in %preamble -. multiline descriptions (general backslash processing ?) . %doc globbing . should be able to drop the -n in non-%package parts @@ -526,6 +525,7 @@ Spec parseSpec(FILE *f, char *specfile) int lookupopts; StringBuf sb; char *s = NULL; + char *s1; struct PackageRec *cur_package = NULL; Spec spec = (struct SpecRec *) malloc(sizeof(struct SpecRec)); @@ -656,7 +656,6 @@ Spec parseSpec(FILE *f, char *specfile) case RPMTAG_RELEASE: case RPMTAG_SERIAL: case RPMTAG_SUMMARY: - case RPMTAG_DESCRIPTION: case RPMTAG_DISTRIBUTION: case RPMTAG_VENDOR: case RPMTAG_COPYRIGHT: @@ -665,6 +664,23 @@ Spec parseSpec(FILE *f, char *specfile) case RPMTAG_URL: addEntry(cur_package->header, tag, STRING_TYPE, s, 1); break; + case RPMTAG_DESCRIPTION: + /* Special case -- need to handle backslash */ + truncStringBuf(sb); + while (1) { + s1 = s + strlen(s) - 1; + if (*s1 != '\\') { + break; + } + *s1 = '\0'; + appendLineStringBuf(sb, s); + read_line(f, buf); + s = buf; + } + appendStringBuf(sb, s); + addEntry(cur_package->header, RPMTAG_DESCRIPTION, + STRING_TYPE, getStringBuf(sb), 1); + break; case RPMTAG_ROOT: /* special case */ message(MESS_DEBUG, "Got root: %s\n", s);