diff --git a/src/syncterm/Makefile b/src/syncterm/Makefile new file mode 100644 index 0000000000000000000000000000000000000000..69dd49ac82bce6e0c3c03b7e546ba00103ed1e78 --- /dev/null +++ b/src/syncterm/Makefile @@ -0,0 +1,74 @@ +# Makefile + +######################################################################### +# Makefile for Synchronet BBS Configuration Utility (SCFG) # +# For use with Borland C++ Builder 5+ or Borland C++ 5.5 for Win32 # +# @format.tab-size 4 # +######################################################################### + +# $Id$ + +# Macros +#DEBUG = 1 # Comment out for release (non-debug) version +#USE_FLTK= 1 +USE_UIFC32= 1 +CC = bcc32 +LD = ilink32 +SLASH = \\ +OFILE = obj +EXEFILE = .exe +EXEODIR = bcc.win32 # Executable output directory +XPDEV = ..\xpdev +UIFC = ..\uifc +CIOLIB = ..\conio +CFLAGS = -DSCFG -M -I..;$(UIFC);$(XPDEV);$(CIOLIB) +DELETE = -@echo y | del + +.path.c = .;$(UIFC);$(XPDEV);$(CIOLIB) +.path.cpp = $(UIFC) + +# Enable auto-dependency checking +.autodepend +.cacheautodepend + +# Optional compile flags (disable banner, warnings and such) +CFLAGS = $(CFLAGS) -q -d -H -X- -w-csu -w-pch -w-ccc -w-rch -w-par -w-pro -w-8004 +#-w-aus + +# Debug or release build? +!ifdef DEBUG +CFLAGS = $(CFLAGS) -v -Od -D_DEBUG +LFLAGS = $(LFLAGS) -v +EXEODIR = $(EXEODIR).debug +!else +EXEODIR = $(EXEODIR).release +!endif +LIBODIR = $(EXEODIR) + +# Cross platform/compiler definitions +!include targets.mk # defines all targets +!include objects.mk # defines $(OBJS) + +OBJS = $(OBJS) $(EXEODIR)\uifc32.$(OFILE) \ + $(EXEODIR)\ciolib.$(OFILE) $(EXEODIR)\ansi_cio.$(OFILE) $(EXEODIR)\win32cio.$(OFILE) +CFLAGS = $(CFLAGS) -DUSE_UIFC32 -WM + +# Implicit C Compile Rule for SCFG +.c.$(OFILE): + @$(CC) $(CFLAGS) -n$(EXEODIR) -c $< + +.cpp.$(OFILE): + @$(CC) $(CFLAGS) -n$(EXEODIR) -c $< + +# Create output directory if it doesn't exist +$(EXEODIR): + @if not exist $(EXEODIR) mkdir $(EXEODIR) + +# Monolithic executable Build Rule +$(EXEODIR)/syncterm.exe: $(OBJS) + @echo Linking $@ + $(CC) $(CFLAGS) -e$@ $** + +clean: + @echo Deleting $(EXEODIR) + $(QUIET)$(DELETE) $(EXEODIR)\* diff --git a/src/syncterm/objects.mk b/src/syncterm/objects.mk index 7f2c7f7cbfecc6bcf1560bff60d7cc5c37ded5f8..3d48daa02b2c4b5780363b5698812c316037c5f1 100644 --- a/src/syncterm/objects.mk +++ b/src/syncterm/objects.mk @@ -1,13 +1,14 @@ -OBJS := ${LIBODIR}/syncterm.${OFILE} \ - ${LIBODIR}/bbslist.${OFILE} \ - ${LIBODIR}/uifcinit.${OFILE} \ - ${LIBODIR}/rlogin.${OFILE} \ - ${LIBODIR}/sockwrap.${OFILE} \ - ${LIBODIR}/dirwrap.${OFILE} \ - ${LIBODIR}/filewrap.${OFILE} \ - ${LIBODIR}/term.${OFILE} \ - ${LIBODIR}/genwrap.${OFILE} \ - ${LIBODIR}/ini_file.${OFILE} \ - ${LIBODIR}/str_list.${OFILE} \ - ${LIBODIR}/window.${OFILE} \ - ${LIBODIR}/menu.${OFILE} +OBJS = $(LIBODIR)/syncterm.$(OFILE) \ + $(LIBODIR)/bbslist.$(OFILE) \ + $(LIBODIR)/uifcinit.$(OFILE) \ + $(LIBODIR)/rlogin.$(OFILE) \ + $(LIBODIR)/sockwrap.$(OFILE) \ + $(LIBODIR)/dirwrap.$(OFILE) \ + $(LIBODIR)/filewrap.$(OFILE) \ + $(LIBODIR)/cterm.$(OFILE) \ + $(LIBODIR)/term.$(OFILE) \ + $(LIBODIR)/genwrap.$(OFILE) \ + $(LIBODIR)/ini_file.$(OFILE) \ + $(LIBODIR)/str_list.$(OFILE) \ + $(LIBODIR)/window.$(OFILE) \ + $(LIBODIR)/menu.$(OFILE) diff --git a/src/syncterm/rlogin.c b/src/syncterm/rlogin.c index e914c8d87246f65869f42229fe5c65ed468523da..0ae44b150c72b6eb85631316f3c507a71b4cb0b0 100644 --- a/src/syncterm/rlogin.c +++ b/src/syncterm/rlogin.c @@ -51,6 +51,7 @@ int rlogin_connect(char *addr, int port, char *ruser, char *passwd, int bedumb) char nil=0; char *p; unsigned int neta; + unsigned long l; for(p=addr;*p;p++) if(*p!='.' && !isdigit(*p)) @@ -92,7 +93,9 @@ int rlogin_connect(char *addr, int port, char *ruser, char *passwd, int bedumb) return(-1); } - fcntl(rlogin_socket, F_SETFL, fcntl(rlogin_socket, F_GETFL)|O_NONBLOCK); + l=1; + ioctlsocket(rlogin_socket, FIONBIO,&l); + /* fcntl(rlogin_socket, F_SETFL, fcntl(rlogin_socket, F_GETFL)|O_NONBLOCK); */ if(!bedumb) { rlogin_send("",1,1000); diff --git a/src/syncterm/syncterm.c b/src/syncterm/syncterm.c index 51866551a842af7cf2b196331278eb2d536b0087..ecde88d944023fff660fbae5e182c436a425483a 100644 --- a/src/syncterm/syncterm.c +++ b/src/syncterm/syncterm.c @@ -71,4 +71,5 @@ int main(int argc, char **argv) if(WSAInitialized && WSACleanup()!=0) fprintf(stderr,"!WSACleanup ERROR %d",ERROR_VALUE); #endif + return(0); } diff --git a/src/syncterm/targets.mk b/src/syncterm/targets.mk index daba4416a6d1b5ffb7a0104ddcf52a31ce2164a6..5f07f586dd370c5e3781db5ad24af5ee91a828f0 100644 --- a/src/syncterm/targets.mk +++ b/src/syncterm/targets.mk @@ -1 +1 @@ -all: $(LIBODIR) $(BUILD_DEPENDS) ${EXEODIR}/syncterm +all: $(LIBODIR) $(BUILD_DEPENDS) $(EXEODIR)/syncterm$(EXEFILE) diff --git a/src/syncterm/uifcinit.c b/src/syncterm/uifcinit.c index e81ec0f661aa28576e0f97bc43c8875f3c90d50b..ed3def1f3b7f5f74f95d9784143780d878456345 100644 --- a/src/syncterm/uifcinit.c +++ b/src/syncterm/uifcinit.c @@ -15,7 +15,7 @@ int init_uifc(void) { return(0); uifc.size=sizeof(uifc); uifc.mode=UIFC_IBM|UIFC_COLOR; - if(i=uifcini32(&uifc)) { + if((i=uifcini32(&uifc))!=0) { fprintf(stderr,"uifc library init returned error %d\n",i); return(-1); }