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
next prev parent 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.net \
--cc=dsp@php.net \
--cc=git@vger.kernel.org \
--cc=gitster@pobox.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.