From: Jonathan Nieder <jrnieder@gmail.com>
To: Jeff King <peff@peff.net>
Cc: Daniel Barkalow <barkalow@iabervon.org>,
Nguyen Thai Ngoc Duy <pclouds@gmail.com>,
Dun Peal <dunpealer@gmail.com>, Git ML <git@vger.kernel.org>,
Stefan Naewe <stefan.naewe@atlas-elektronik.com>,
Carl Worth <cworth@cworth.org>
Subject: Re: Scripted clone generating an incomplete, unusable .git/config
Date: Thu, 11 Nov 2010 20:16:02 -0600 [thread overview]
Message-ID: <20101112021602.GA10765@burratino> (raw)
In-Reply-To: <20101111190508.GA3038@sigill.intra.peff.net>
Jeff King wrote:
> I don't think your patch is the right solution, but FWIW, sigchain was
> explicitly intended to be able to take SIG_DFL and SIG_IGN. Probably
> sigchain_fun should be removed and we should just use sighandler_t
> explicitly
Sorry, that was lazy of me. The name sighandler_t is a GNU extension[1].
The following addresses my confusion but I doubt it's worth the
syntactic ugliness.
-- 8< --
Subject: sigchain: hide sigchain_fun type
Signal handlers that might be passed to signal() must be pointers to
function with the prototype
void handler(int signum);
In glibc this type is called sighandler_t; in the sigchain lib,
sigchain_fun.
These really represent the same type in all respects: even special
values like SIG_IGN and SIG_DFL are perfectly reasonable arguments
for a function accepting values of one of the two types. Avoid
confusion by eliminating the sigchain_fun name from sigchain.h.
It would be nice to instead use sighandler_t everywhere, but
unfortunately that name is a GNU extension.
Suggested-by: Jeff King <peff@peff.net>
Signed-off-by: Jonathan Nieder <jrnieder@gmail.com>
---
[1] http://www.delorie.com/gnu/docs/glibc/libc_481.html
sigchain.c | 2 ++
sigchain.h | 6 ++----
2 files changed, 4 insertions(+), 4 deletions(-)
diff --git a/sigchain.h b/sigchain.h
index 618083b..571d148 100644
--- a/sigchain.h
+++ b/sigchain.h
@@ -1,11 +1,9 @@
#ifndef SIGCHAIN_H
#define SIGCHAIN_H
-typedef void (*sigchain_fun)(int);
-
-int sigchain_push(int sig, sigchain_fun f);
+int sigchain_push(int sig, void (*f)(int));
int sigchain_pop(int sig);
-void sigchain_push_common(sigchain_fun f);
+void sigchain_push_common(void (*f)(int));
#endif /* SIGCHAIN_H */
diff --git a/sigchain.c b/sigchain.c
index 1118b99..f837f61 100644
--- a/sigchain.c
+++ b/sigchain.c
@@ -3,6 +3,8 @@
#define SIGCHAIN_MAX_SIGNALS 32
+typedef void (*sigchain_fun)(int);
+
struct sigchain_signal {
sigchain_fun *old;
int n;
next prev parent reply other threads:[~2010-11-12 2:17 UTC|newest]
Thread overview: 17+ messages / expand[flat|nested] mbox.gz Atom feed top
2010-11-10 23:21 Scripted clone generating an incomplete, unusable .git/config Dun Peal
2010-11-11 7:55 ` Stefan Naewe
2010-11-11 8:00 ` Stefan Naewe
2010-11-11 10:37 ` Jonathan Nieder
2010-11-11 12:16 ` Nguyen Thai Ngoc Duy
2010-11-11 17:32 ` Jonathan Nieder
2010-11-11 17:55 ` Daniel Barkalow
2010-11-11 18:48 ` Jonathan Nieder
2010-11-11 19:05 ` Jeff King
2010-11-12 2:16 ` Jonathan Nieder [this message]
2010-11-12 4:24 ` Jeff King
2010-11-12 4:35 ` Jonathan Nieder
2010-11-12 4:32 ` Jonathan Nieder
2010-11-12 4:41 ` Jeff King
2010-11-12 5:18 ` Jonathan Nieder
2010-11-12 5:12 ` [RFC/PATCH] daemon, tag, verify-tag: do not pass ignored signals to child (Re: Scripted clone generating an incomplete, unusable .git/config) Jonathan Nieder
2010-11-11 17:39 ` Scripted clone generating an incomplete, unusable .git/config Andreas Schwab
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=20101112021602.GA10765@burratino \
--to=jrnieder@gmail.com \
--cc=barkalow@iabervon.org \
--cc=cworth@cworth.org \
--cc=dunpealer@gmail.com \
--cc=git@vger.kernel.org \
--cc=pclouds@gmail.com \
--cc=peff@peff.net \
--cc=stefan.naewe@atlas-elektronik.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.