From 7b0667fa7a92ad4b2b7d3dfd306644aee33124c3 Mon Sep 17 00:00:00 2001
From: Chris Allegretta <chrisa@asty.org>
Date: Thu, 10 Jan 2002 12:44:21 +0000
Subject: [PATCH] - nano.c:do_suspend() - Call tcsetattr() to restore the old
 terminal settings, so tcsh can use ^C after suspend for example (fixes BUG
 #67)

git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@992 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
---
 BUGS      | 2 ++
 ChangeLog | 3 +++
 nano.c    | 3 +++
 3 files changed, 8 insertions(+)

diff --git a/BUGS b/BUGS
index d4a1fabe..517878a5 100644
--- a/BUGS
+++ b/BUGS
@@ -127,6 +127,8 @@
 - When cutting marked text including the bottom of the file, a new   
   "magic line" is not created" (reported by David Lawrence
   Ramsey, fixed by David Lawrence Ramsey & Chris) (66) [FIXED].
+- ^C does not work after a suspend in tcsh (discovered by
+  Trevor Cordes) (67) [FIXED].
 
 ** Open BUGS **
 
diff --git a/ChangeLog b/ChangeLog
index 3f7254a4..6008b8c1 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -13,6 +13,9 @@ CVS code -
   main()
 	- Check that alt value is an alpha char before comparing to 
 	  val - 32, fixes Alt-R calling doprev instead of replace.
+  do_suspend()
+	- Call tcsetattr() to restore the old terminal settings, so
+	  tcsh can use ^C after suspend for example (fixes BUG #67).
 - global.c:
   shorcut_init()
 	- Replace hard coded ALT_G and ALT_H values in the replace
diff --git a/nano.c b/nano.c
index 3468e77c..1dfe6f2e 100644
--- a/nano.c
+++ b/nano.c
@@ -1938,6 +1938,9 @@ RETSIGTYPE do_suspend(int signal)
     printf("\n\n\n\n\nUse \"fg\" to return to nano\n");
     fflush(stdout);
 
+    /* Restore the terminal settings for the disabled keys */
+    tcsetattr(0, TCSANOW, &oldterm);
+
     /* We used to re-enable the default SIG_DFL and raise SIGTSTP, but 
 	then we could be (and were) interrupted in the middle of the call.
 	So we do it the mutt way instead */
-- 
GitLab