summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorKaz Kylheku <kaz@kylheku.com>2013-12-25 22:22:46 -0800
committerKaz Kylheku <kaz@kylheku.com>2013-12-25 22:22:46 -0800
commitf8d8c30be09b97dc2c78e4bfe31b84f5f9fc4fda (patch)
treeafae129732b3436d7bea10fe710847aa73a14aba
parent6e8aaedc1f3be2c9c7c3031499ad2b4bce05dfbc (diff)
downloadtxr-f8d8c30be09b97dc2c78e4bfe31b84f5f9fc4fda.tar.gz
txr-f8d8c30be09b97dc2c78e4bfe31b84f5f9fc4fda.tar.bz2
txr-f8d8c30be09b97dc2c78e4bfe31b84f5f9fc4fda.zip
Merry C++mas!
* configure: Avoid using "new" as identifier in signals test case. * signal.c (set_sig_handler): Fix warning about { 0 } initializer. (sig_mask): Avoid using "new" as identifier.
-rw-r--r--ChangeLog10
-rwxr-xr-xconfigure4
-rw-r--r--signal.c17
3 files changed, 21 insertions, 10 deletions
diff --git a/ChangeLog b/ChangeLog
index b63120b9..e545abab 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,13 @@
+2013-12-25 Kaz Kylheku <kaz@kylheku.com>
+
+ Merry C++mas!
+
+ * configure: Avoid using "new" as identifier in signals test case.
+
+ * signal.c (set_sig_handler): Fix warning about { 0 } initializer.
+ (sig_mask): Avoid using "new" as identifier.
+
+
2013-12-20 Kaz Kylheku <kaz@kylheku.com>
Fixing a bug and performance issue.
diff --git a/configure b/configure
index 8da89c84..602d8a36 100755
--- a/configure
+++ b/configure
@@ -1450,9 +1450,9 @@ cat > conftest.c <<!
int main(void)
{
sigjmp_buf jb;
- static struct sigaction old, new;
+ static struct sigaction olda, newa;
static sigset_t olds, news;
- sigaction(0, &new, &old);
+ sigaction(0, &newa, &olda);
sigprocmask(SIG_BLOCK, &news, &olds);
if (!sigsetjmp(jb, 1))
siglongjmp(jb, 1);
diff --git a/signal.c b/signal.c
index 29dcab88..d69814a6 100644
--- a/signal.c
+++ b/signal.c
@@ -132,6 +132,7 @@ void sig_init(void)
val set_sig_handler(val signo, val lambda)
{
+ static struct sigaction blank;
cnum sig = c_num(signo);
val old_lambda;
sigset_t block, saved;
@@ -154,7 +155,7 @@ val set_sig_handler(val signo, val lambda)
signal(sig, SIG_DFL);
sig_deferred &= ~mask;
} else {
- struct sigaction sa = { 0 };
+ struct sigaction sa = blank;
type_check(lambda, FUN);
@@ -216,7 +217,7 @@ static void mem_clr_bits(mem_t *target, const mem_t *bits, size_t size)
int sig_mask(int how, const sigset_t *set, sigset_t *oldset)
{
- sigset_t new;
+ sigset_t newset;
const sigset_t *pnew;
switch (how) {
@@ -224,14 +225,14 @@ int sig_mask(int how, const sigset_t *set, sigset_t *oldset)
pnew = set;
break;
case SIG_BLOCK:
- pnew = &new;
- new = sig_blocked_cache;
- mem_set_bits((mem_t *) &new, (mem_t *) set, sizeof new);
+ pnew = &newset;
+ newset = sig_blocked_cache;
+ mem_set_bits((mem_t *) &newset, (mem_t *) set, sizeof newset);
break;
case SIG_UNBLOCK:
- pnew = &new;
- new = sig_blocked_cache;
- mem_clr_bits((mem_t *) &new, (mem_t *) set, sizeof new);
+ pnew = &newset;
+ newset = sig_blocked_cache;
+ mem_clr_bits((mem_t *) &newset, (mem_t *) set, sizeof newset);
break;
default:
errno = EINVAL;