case STATE_CNAME:
case STATE_DESCRIPTION:
case STATE_CDESCRIPTION:
- {
- const char *lang = find_attr("xml:lang", atts);
- pd->tmplang = lang ? join2(&pd->jd, lang, 0, 0) : 0;
- break;
- }
+ pd->tmplang = join_dup(&pd->jd, find_attr("xml:lang", atts));
+ break;
case STATE_PACKAGEREQ:
{
/* <summary lang="xy">... */
case STATE_SUMMARY:
case STATE_DESCRIPTION:
- {
- const char *lang = find_attr("lang", atts);
- pd->tmplang = lang ? join2(&pd->jd, lang, 0, 0) : 0;
- break;
- }
+ pd->tmplang = join_dup(&pd->jd, find_attr("lang", atts));
+ break;
case STATE_URL:
pd->urltype = pool_str2id(pd->pool, find_attr("name", atts), 1);
break;
case STATE_SUMMARY:
case STATE_CATEGORY:
case STATE_DESCRIPTION:
- {
- const char *lang = find_attr("lang", atts);
- pd->tmplang = lang ? join2(&pd->jd, lang, 0, 0) : 0;
- break;
- }
+ pd->tmplang = join_dup(&pd->jd, find_attr("lang", atts));
+ break;
case STATE_USERVISIBLE:
repodata_set_void(pd->data, handle, SOLVABLE_ISVISIBLE);
break;
break;
/* <summary lang="xy">... */
case STATE_SUMMARY:
- {
- const char *lang = find_attr("lang", atts);
- pd->tmplang = lang ? join2(&pd->jd, lang, 0, 0) : 0;
- }
+ pd->tmplang = join_dup(&pd->jd, find_attr("lang", atts));
break;
default:
break;
return jd->tmp;
}
+static inline char *
+join_dup(struct joindata *jd, const char *s)
+{
+ return s ? join2(jd, s, 0, 0) : 0;
+}
+
static inline void
join_freemem(struct joindata *jd)
{