Skip to contentSkip to conversation

Fix Windows build of next

PATCH In review Johannes Schindelin via GitGitGadget 2 participants 3 messages Nov 22, 2018 – Nov 24, 2018

lore
Share & tools
lore
#0 lore raw

cover Fix Windows build of next

The topic ot/ref-filter-object-info broke the Windows build since it entered pu, and as a consequence we have no test coverage of the other topics in pu.

Sadly, this topic now advanced to next. Junio, I would like to ask you to merge this fix down to next and to advance to master together with ot/ref-filter-object-info.

Johannes Schindelin (1):
ref-filter: replace unportable %lld format

 ref-filter.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

base-commit: d364d6b33e15dbc6e57d83f9f1457a8e8fe77046
Published-As: https://github.com/gitgitgadget/git/releases/tags/pr-87%2Fdscho%2Fno-percent-lld-v1
Fetch-It-Via: git fetch https://github.com/gitgitgadget/git pr-87/dscho/no-percent-lld-v1
Pull-Request: https://github.com/gitgitgadget/git/pull/87

Signature · 1 line
gitgitgadget
#1 lore raw

PATCH 1/1 ref-filter: replace unportable `%lld` format

From: Johannes Schindelin <[email protected]>

The %lld format is supported on Linux and macOS, but not on Windows. This issue has been reported ten days ago (Message-ID:
[email protected]), but the corresponding topic still advanced to next in the meantime, breaking the Windows build.

Let's use PRIdMAX and a cast to intmax_t instead, which unbreaks the build, and imitates how we do things e.g. in json-writer.c already.

---
 ref-filter.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)
ref-filter.c +1 -1
index 3cfe01a039..69cdf2dbb5 100644
@@ -897,7 +897,7 @@ static void grab_common_values(struct atom_value *val, int deref, struct expand_
 			v->s = xstrdup(type_name(oi->type));
 		else if (!strcmp(name, "objectsize:disk")) {
 			v->value = oi->disk_size;
-			v->s = xstrfmt("%lld", (long long)oi->disk_size);
+			v->s = xstrfmt("%"PRIdMAX, (intmax_t)oi->disk_size);
 		} else if (!strcmp(name, "objectsize")) {
 			v->value = oi->size;
 			v->s = xstrfmt("%lu", oi->size);
Signature · 1 line
gitgitgadget
#2 lore raw

Re: [PATCH 1/1] ref-filter: replace unportable `%lld` format

"Johannes Schindelin via GitGitGadget" <[email protected]>

Quoted 10 lines · writes:

From: Johannes Schindelin <[email protected]>

The %lld format is supported on Linux and macOS, but not on Windows. This issue has been reported ten days ago (Message-ID:
[email protected]), but the corresponding topic still advanced to next in the meantime, breaking the Windows build.

Let's use PRIdMAX and a cast to intmax_t instead, which unbreaks the build, and imitates how we do things e.g. in json-writer.c already.

We seem to be already using PRIdMAX in 'master', so this is safe thing to do and I will merge it directly to 'next', but the fact that PRIdMAX is used without any fallback definition in git-compat-util.h makes me suspect that we can now drop the fallback for PRIuMAX.

Thanks.

Quoted 18 lines
---
 ref-filter.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)
ref-filter.c +1 -1
index 3cfe01a039..69cdf2dbb5 100644
@@ -897,7 +897,7 @@ static void grab_common_values(struct atom_value *val, int deref, struct expand_
 			v->s = xstrdup(type_name(oi->type));
 		else if (!strcmp(name, "objectsize:disk")) {
 			v->value = oi->disk_size;
-			v->s = xstrfmt("%lld", (long long)oi->disk_size);
+			v->s = xstrfmt("%"PRIdMAX, (intmax_t)oi->disk_size);
 		} else if (!strcmp(name, "objectsize")) {
 			v->value = oi->size;
 			v->s = xstrfmt("%lu", oi->size);