From 1e29cbf115442bcab104a5e311eee22d8aaf90a8 Mon Sep 17 00:00:00 2001
From: deuce <>
Date: Thu, 13 Feb 2014 08:08:53 +0000
Subject: [PATCH] Add a CMakeList and clean up some curses direct usage hacks.

---
 src/sbbs3/uedit/CMakeLists.txt | 30 ++++++++++++++++++++++++++++++
 src/sbbs3/uedit/GNUmakefile    |  2 +-
 src/sbbs3/uedit/uedit.c        | 15 +++++++++------
 3 files changed, 40 insertions(+), 7 deletions(-)
 create mode 100644 src/sbbs3/uedit/CMakeLists.txt

diff --git a/src/sbbs3/uedit/CMakeLists.txt b/src/sbbs3/uedit/CMakeLists.txt
new file mode 100644
index 0000000000..cb7b908f2d
--- /dev/null
+++ b/src/sbbs3/uedit/CMakeLists.txt
@@ -0,0 +1,30 @@
+project (UEdit C)
+
+cmake_minimum_required(VERSION 2.8.11)
+
+INCLUDE (../../build/SynchronetMacros.cmake)
+INCLUDE (FindCurses)
+
+add_executable(uedit
+	../ars.c
+	../dat_rec.c
+	../date_str.c
+	../getmail.c
+	../getstats.c
+	../load_cfg.c
+	../nopen.c
+	../sbbs_ini.c
+	../scfglib1.c
+	../scfglib2.c
+	../str_util.c
+	../userdat.c
+	uedit.c
+)
+double_require_lib(uedit xpdev)
+double_require_lib_dir(uedit ciolib conio)
+double_require_lib(uedit smblib)
+double_require_lib(uedit uifc)
+target_include_directories(uedit PRIVATE ..)
+if(CURSES_FOUND)
+	target_compile_definitions(uedit PRIVATE HAS_CURSES)
+endif()
diff --git a/src/sbbs3/uedit/GNUmakefile b/src/sbbs3/uedit/GNUmakefile
index c9b4305ab5..d640d86400 100644
--- a/src/sbbs3/uedit/GNUmakefile
+++ b/src/sbbs3/uedit/GNUmakefile
@@ -22,7 +22,7 @@ endif
 
 vpath %.c ..
 
-CFLAGS	+=	-I.. -I../../comio $(SMBLIB_CFLAGS) $(UIFC-MT_CFLAGS) $(CIOLIB-MT_CFLAGS) $(XPDEV-MT_CFLAGS)
+CFLAGS	+=	-DHAS_CURSES -I.. -I../../comio $(SMBLIB_CFLAGS) $(UIFC-MT_CFLAGS) $(CIOLIB-MT_CFLAGS) $(XPDEV-MT_CFLAGS)
 LDFLAGS	+=	$(SMBLIB_LDFLAGS) $(UIFC-MT_LDFLAGS) $(CIOLIB-MT_LDFLAGS) $(XPDEV-MT_LDFLAGS) $(MT_LDFLAGS)
 
 $(UEDIT): $(OBJS)
diff --git a/src/sbbs3/uedit/uedit.c b/src/sbbs3/uedit/uedit.c
index 0f597b7ca9..837c1850ee 100644
--- a/src/sbbs3/uedit/uedit.c
+++ b/src/sbbs3/uedit/uedit.c
@@ -35,8 +35,6 @@
  * Note: If this box doesn't appear square, then you need to fix your tabs.	*
  ****************************************************************************/
 
-#include "ciolib.h"
-#include "sbbs.h"
 #include <sys/types.h>
 #include <time.h>
 #ifdef __QNX__
@@ -49,6 +47,9 @@
 #include <signal.h>
 #endif
 
+#include "ciolib.h"
+#include "sbbs.h"
+
 #include "genwrap.h"
 #include "uifc.h"
 #include "sbbsdefs.h"
@@ -201,12 +202,14 @@ int do_cmd(char *cmd)
 {
 	int i;
 
-#ifdef __unix__
-	endwin();
+#ifdef HAS_CURSES
+	if(cio_api.mode == CIOLIB_MODE_CURSES || cio_api.mode == CIOLIB_MODE_CURSES_IBM)
+		endwin();
 #endif
 	i=system(cmd);
-#ifdef __unix__
-	refresh();
+#ifdef HAS_CURSES
+	if(cio_api.mode == CIOLIB_MODE_CURSES || cio_api.mode == CIOLIB_MODE_CURSES_IBM)
+		refresh();
 #endif
 	return(i);
 }
-- 
GitLab