--- freem/src/service.c	2025/02/28 20:51:20	1.5
+++ freem/src/service.c	2025/03/24 01:54:09	1.9
@@ -1,24 +1,12 @@
 /*
- *                            *
- *                           * *
- *                          *   *
- *                     ***************
- *                      * *       * *
- *                       *  MUMPS  *
- *                      * *       * *
- *                     ***************
- *                          *   *
- *                           * *
- *                            *
- *
- *   service.c
+ *   $Id: service.c,v 1.9 2025/03/24 01:54:09 snw Exp $
  *    terminal and sequential I/O handling,
  *    file and global locking
  *
  *  
- *   Author: Serena Willis <jpw@coherent-logic.com>
+ *   Author: Serena Willis <snw@coherent-logic.com>
  *    Copyright (C) 1998 MUG Deutschland
- *    Copyright (C) 2020 Coherent Logic Development LLC
+ *    Copyright (C) 2020, 2025 Coherent Logic Development LLC
  *
  *
  *   This file is part of FreeM.
@@ -36,6 +24,19 @@
  *   You should have received a copy of the GNU Affero Public License
  *   along with FreeM.  If not, see <https://www.gnu.org/licenses/>.
  *
+ *   $Log: service.c,v $
+ *   Revision 1.9  2025/03/24 01:54:09  snw
+ *   Work around some OS/2 incompatibilities in set_break and set_zbreak
+ *
+ *   Revision 1.8  2025/03/24 01:52:30  snw
+ *   Work around some OS/2 incompatibilities in set_break and set_zbreak
+ *
+ *   Revision 1.7  2025/03/09 19:50:47  snw
+ *   Second phase of REUSE compliance and header reformat
+ *
+ *
+ * SPDX-FileCopyrightText:  (C) 2025 Coherent Logic Development LLC
+ * SPDX-License-Identifier: AGPL-3.0-or-later
  **/
 
 #include <errno.h>
@@ -4436,6 +4437,7 @@ void set_io (short action)
 /*  DEL = UNIX quit      */ 
 void set_break (short break_char)
 {
+#if !defined(__OS2__)
     struct termio arg;
 
     ioctl (0, TCGETA, &arg);
@@ -4443,7 +4445,7 @@ void set_break (short break_char)
     arg.c_cc[VINTR] = break_char;	/* interrupt = CTRL/C   */
     
     ioctl (0, TCSETA, &arg);
-    
+#endif    
     return;
 
 }					/* end of set_break() */
@@ -4454,6 +4456,7 @@ void set_break (short break_char)
 /* DEL = UNIX quit      */
 void set_zbreak (short quit_char)
 {
+#if !defined(__OS2__)    
     struct termio arg;
 
     ioctl (0, TCGETA, &arg);
@@ -4461,7 +4464,7 @@ void set_zbreak (short quit_char)
     arg.c_cc[VQUIT] = quit_char;
     
     ioctl (0, TCSETA, &arg);
-    
+#endif    
     return;
 
 }					/* end of set_zbreak() */
@@ -4506,6 +4509,8 @@ void set_io (short action)				/* set io_
 
 void set_break (short break_char)
 {
+
+#if !defined(__OS2__)
     struct termios termios_p;
 
     tcgetattr (0, &termios_p);
@@ -4513,14 +4518,14 @@ void set_break (short break_char)
     termios_p.c_cc[VINTR] = break_char;	/* interrupt = CTRL/C   */
     
     tcsetattr (0, TCSADRAIN, &termios_p);	/* set paramters */
-    
+#endif    
     return;
 
 }					/* end of set_break() */
 
 void set_zbreak (short quit_char)
 {
-
+#if !defined(__OS2__)
     struct termios termios_p;
 
     tcgetattr (0, &termios_p);
@@ -4528,7 +4533,7 @@ void set_zbreak (short quit_char)
     termios_p.c_cc[VQUIT] = quit_char;
     
     tcsetattr (0, TCSADRAIN, &termios_p);	/* set paramters */
-    
+#endif    
     return;
 
 }					/* end of set_zbreak() */