From a2426f237d17b973231e441ec3fbad9675045c65 Mon Sep 17 00:00:00 2001 From: Marius Tolzmann Date: Wed, 24 Aug 2016 16:22:08 +0200 Subject: [PATCH 1/2] beeversion: Fix output of %X[ex] when X is not dash or underscore Enforce only prefixing dash or underscore chars when printing extra{version,name} in %[-_][ex] format strings fixes https://github.com/bee/bee/issues/207 --- src/bee_version_output.c | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/src/bee_version_output.c b/src/bee_version_output.c index 70044aa..32c8418 100644 --- a/src/bee_version_output.c +++ b/src/bee_version_output.c @@ -136,20 +136,21 @@ void print_format(char* s, struct beeversion *v, char *filter_pkgfullname) if(*p == 'A' && *(v->arch)) printf(".%s", v->arch); break; - } - if (*p) { - switch(*(p+1)) { + case '-': + case '_': + switch(*(p+1)) { case 'x': if (*(v->subname)) printf("%c%s", *p, v->subname); p++; - continue; + break; case 'e': if (*(v->extraversion)) printf("%c%s", *p, v->extraversion); p++; - continue; - } + break; + } + break; } continue; } /* if '%' */ @@ -194,4 +195,3 @@ void print_format(char* s, struct beeversion *v, char *filter_pkgfullname) } /* for *p */ } - From be203915462123670ecaba832337d89fff33b341 Mon Sep 17 00:00:00 2001 From: Marius Tolzmann Date: Wed, 24 Aug 2016 16:47:45 +0200 Subject: [PATCH 2/2] beeversion: leave unknown placeholders as is instead of removing them from the output --- src/bee_version_output.c | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) diff --git a/src/bee_version_output.c b/src/bee_version_output.c index 32c8418..55550bd 100644 --- a/src/bee_version_output.c +++ b/src/bee_version_output.c @@ -143,14 +143,16 @@ void print_format(char* s, struct beeversion *v, char *filter_pkgfullname) if (*(v->subname)) printf("%c%s", *p, v->subname); p++; - break; + continue; case 'e': if (*(v->extraversion)) printf("%c%s", *p, v->extraversion); p++; - break; + continue; } - break; + default: + printf("%%%c", *p); + break; } continue; } /* if '%' */ @@ -169,6 +171,9 @@ void print_format(char* s, struct beeversion *v, char *filter_pkgfullname) case 'E': cut_and_print(v->extraversion, '_', 1); break; + default: + printf("@%c", *p); + break; } continue; } /* if '@' */