public inbox for git@vger.kernel.org 
 help / color / mirror / Atom feed
From: David Soria Parra <dsoria@gmx•net>
To: Junio C Hamano <gitster@pobox•com>
Cc: git@vger•kernel.org, David Soria Parra <dsp@php•net>
Subject: Re: [PATCH 1/2] Improvate portability: Display pid_t's always as long
Date: Sat, 30 Aug 2008 22:40:31 +0200	[thread overview]
Message-ID: <48B9B03F.1080304@gmx.net> (raw)
In-Reply-To: <7vsksqp9f1.fsf@gitster.siamese.dyndns.org>


 > On the other hand, if you are shooting for maximum compatibility perhaps
 > you may want to cast it to "intmax_t" and format as such.
Yes, good point, casting to long isn't enough. I think it's a good approach to cast the pids to intmax_t as pids
are also used in git_path() and therefore might result in equal paths for separate processes if
the pid is higher than int.

so here is an updated patch:

 From da5519b3ae5ce84c703aeaab2bc4ea363897c334 Mon Sep 17 00:00:00 2001
From: David Soria Parra <dsp at>
Date: Fri, 29 Aug 2008 01:19:43 +0200
Subject: [PATCH] Improvate portability: Cast pid_t's to intmax_t

Some systems (like e.g. OpenSolaris) define pid_t as long,
therefore all our sprintf that use %i cause a compiler warning
beacuse if the implicit long->int cast. So to make sure that
we fit the limits we display pids as intmax_t and cast them explicitly.

Signed-off-by: David Soria Parra <dsp@php•net>
---
  builtin-commit.c     |    2 +-
  builtin-fetch-pack.c |    2 +-
  daemon.c             |    6 +++---
  fast-import.c        |    6 +++---
  receive-pack.c       |    2 +-
  5 files changed, 9 insertions(+), 9 deletions(-)

diff --git a/builtin-commit.c b/builtin-commit.c
index c870037..90ef3d5 100644
--- a/builtin-commit.c
+++ b/builtin-commit.c
@@ -320,7 +320,7 @@ static char *prepare_index(int argc, const char **argv, const char *prefix)
  		die("unable to write new_index file");

  	fd = hold_lock_file_for_update(&false_lock,
-				       git_path("next-index-%d", getpid()), 1);
+				       git_path("next-index-%jd", (intmax_t) getpid()), 1);

  	create_base_index();
  	add_remove_files(&partial);
diff --git a/builtin-fetch-pack.c b/builtin-fetch-pack.c
index 273239a..91616e7 100644
--- a/builtin-fetch-pack.c
+++ b/builtin-fetch-pack.c
@@ -540,7 +540,7 @@ static int get_pack(int xd[2], char **pack_lockfile)
  			*av++ = "--fix-thin";
  		if (args.lock_pack || unpack_limit) {
  			int s = sprintf(keep_arg,
-					"--keep=fetch-pack %d on ", getpid());
+					"--keep=fetch-pack %jd on ", (intmax_t) getpid());
  			if (gethostname(keep_arg + s, sizeof(keep_arg) - s))
  				strcpy(keep_arg + s, "localhost");
  			*av++ = keep_arg;
diff --git a/daemon.c b/daemon.c
index 23278e2..6081986 100644
--- a/daemon.c
+++ b/daemon.c
@@ -86,7 +86,7 @@ static void logreport(int priority, const char *err, va_list params)
  		 * Since stderr is set to linebuffered mode, the
  		 * logging of different processes will not overlap
  		 */
-		fprintf(stderr, "[%d] ", (int)getpid());
+		fprintf(stderr, "[%jd] ", (intmax_t)getpid());
  		vfprintf(stderr, err, params);
  		fputc('\n', stderr);
  	}
@@ -658,7 +658,7 @@ static void check_dead_children(void)
  		remove_child(pid);
  		if (!WIFEXITED(status) || (WEXITSTATUS(status) > 0))
  			dead = " (with error)";
-		loginfo("[%d] Disconnected%s", (int)pid, dead);
+		loginfo("[%jd] Disconnected%s", (intmax_t)pid, dead);
  	}
  }

@@ -923,7 +923,7 @@ static void store_pid(const char *path)
  	FILE *f = fopen(path, "w");
  	if (!f)
  		die("cannot open pid file %s: %s", path, strerror(errno));
-	if (fprintf(f, "%d\n", getpid()) < 0 || fclose(f) != 0)
+	if (fprintf(f, "%jd\n", (intmax_t) getpid()) < 0 || fclose(f) != 0)
  		die("failed to write pid file %s: %s", path, strerror(errno));
  }

diff --git a/fast-import.c b/fast-import.c
index 7089e6f..e3a6510 100644
--- a/fast-import.c
+++ b/fast-import.c
@@ -376,7 +376,7 @@ static void dump_marks_helper(FILE *, uintmax_t, struct mark_set *);

  static void write_crash_report(const char *err)
  {
-	char *loc = git_path("fast_import_crash_%d", getpid());
+	char *loc = git_path("fast_import_crash_%jd", (intmax_t) getpid());
  	FILE *rpt = fopen(loc, "w");
  	struct branch *b;
  	unsigned long lu;
@@ -390,8 +390,8 @@ static void write_crash_report(const char *err)
  	fprintf(stderr, "fast-import: dumping crash report to %s\n", loc);

  	fprintf(rpt, "fast-import crash report:\n");
-	fprintf(rpt, "    fast-import process: %d\n", getpid());
-	fprintf(rpt, "    parent process     : %d\n", getppid());
+	fprintf(rpt, "    fast-import process: %jd\n", (intmax_t) getpid());
+	fprintf(rpt, "    parent process     : %jd\n", (intmax_t) getppid());
  	fprintf(rpt, "    at %s\n", show_date(time(NULL), 0, DATE_LOCAL));
  	fputc('\n', rpt);

diff --git a/receive-pack.c b/receive-pack.c
index d44c19e..ec770d0 100644
--- a/receive-pack.c
+++ b/receive-pack.c
@@ -407,7 +407,7 @@ static const char *unpack(void)
  		char keep_arg[256];
  		struct child_process ip;

-		s = sprintf(keep_arg, "--keep=receive-pack %i on ", getpid());
+		s = sprintf(keep_arg, "--keep=receive-pack %ji on ", (intmax_t) getpid());
  		if (gethostname(keep_arg + s, sizeof(keep_arg) - s))
  			strcpy(keep_arg + s, "localhost");

-- 
1.6.0.174.gd789c

  reply	other threads:[~2008-08-30 20:41 UTC|newest]

Thread overview: 9+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2008-08-27 17:39 [PATCH 0/2] Improve portability for OpenSolaris David Soria Parra
2008-08-27 17:39 ` [PATCH 1/2] Improvate portability: Display pid_t's always as long David Soria Parra
2008-08-27 17:39   ` [PATCH 2/2] Improve portability: Avoid SS constant as it is already defined David Soria Parra
2008-08-27 18:56     ` Junio C Hamano
2008-08-27 19:17       ` Junio C Hamano
2008-08-28  0:34         ` David Soria Parra
2008-08-27 19:03   ` [PATCH 1/2] Improvate portability: Display pid_t's always as long Junio C Hamano
2008-08-30 20:40     ` David Soria Parra [this message]
2008-08-31  7:15       ` Junio C Hamano

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=48B9B03F.1080304@gmx.net \
    --to=dsoria@gmx$(echo .)net \
    --cc=dsp@php$(echo .)net \
    --cc=git@vger$(echo .)kernel.org \
    --cc=gitster@pobox$(echo .)com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox