Skip site navigation (1)Skip section navigation (2)
Date:      Wed, 14 May 2025 19:20:47 GMT
From:      Kyle Evans <kevans@FreeBSD.org>
To:        src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-main@FreeBSD.org
Subject:   git: df16cbdcf192 - main - mail: remove the SIGHUP handler from lex.c
Message-ID:  <202505141920.54EJKlRD015153@gitrepo.freebsd.org>

next in thread | raw e-mail | index | archive | help
The branch main has been updated by kevans:

URL: https://cgit.FreeBSD.org/src/commit/?id=df16cbdcf1927200eb910c1874faee6f3d8b9a97

commit df16cbdcf1927200eb910c1874faee6f3d8b9a97
Author:     Kyle Evans <kevans@FreeBSD.org>
AuthorDate: 2025-05-14 19:20:16 +0000
Commit:     Kyle Evans <kevans@FreeBSD.org>
CommitDate: 2025-05-14 19:20:34 +0000

    mail: remove the SIGHUP handler from lex.c
    
    If the command is simply going to exit without doing any cleanup, then
    an immediate exit(3) does not add any value and in-fact obscures that
    the program was terminated by a signal.
    
    This is motivated by POSIX conformance requirements, but it's also a
    little bit of a tidy-up.  Some investigation into the history of mail(1)
    shows that, at one point, hangup() would attempt to save messages into
    mbox before exiting.  It was later transformed into a simple exit() and
    likely could have been GC'd at that point.
    
    Reviewed by:    des, emaste, ivy
    Sponsored by:   Klara, Inc.
    Differential Revision:  https://reviews.freebsd.org/D50247
---
 usr.bin/mail/extern.h |  1 -
 usr.bin/mail/lex.c    | 13 -------------
 2 files changed, 14 deletions(-)

diff --git a/usr.bin/mail/extern.h b/usr.bin/mail/extern.h
index efcba2141512..6eea9c1f1f88 100644
--- a/usr.bin/mail/extern.h
+++ b/usr.bin/mail/extern.h
@@ -131,7 +131,6 @@ int	 getrawlist(char *, char **, int);
 uid_t	 getuserid(char *);
 int	 grabh(struct header *, int);
 int	 group(void *);
-void	 hangup(int);
 int	 hash(const char *);
 void	 hdrstop(int);
 int	 headers(void *);
diff --git a/usr.bin/mail/lex.c b/usr.bin/mail/lex.c
index 1043dd2d4706..2d86a17c13e9 100644
--- a/usr.bin/mail/lex.c
+++ b/usr.bin/mail/lex.c
@@ -199,8 +199,6 @@ commands(void)
 	if (!sourcing) {
 		if (signal(SIGINT, SIG_IGN) != SIG_IGN)
 			(void)signal(SIGINT, intr);
-		if (signal(SIGHUP, SIG_IGN) != SIG_IGN)
-			(void)signal(SIGHUP, hangup);
 		(void)signal(SIGTSTP, stop);
 		(void)signal(SIGTTOU, stop);
 		(void)signal(SIGTTIN, stop);
@@ -567,17 +565,6 @@ stop(int s)
 	}
 }
 
-/*
- * Branch here on hangup signal and simulate "exit".
- */
-void
-hangup(int s __unused)
-{
-
-	/* nothing to do? */
-	exit(1);
-}
-
 /*
  * Announce the presence of the current Mail version,
  * give the message count, and print a header listing.



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?202505141920.54EJKlRD015153>