From d7d591cf2b4950b813ab2bc7a4e9099138e9541b Mon Sep 17 00:00:00 2001
From: rswindell <>
Date: Wed, 8 Nov 2000 09:19:31 +0000
Subject: [PATCH] Added WIN32, UNIX, and LINUX ARS keywords.

---
 src/sbbs3/ars.c      | 21 +++++++++++++++++++++
 src/sbbs3/ars_defs.h |  3 +++
 src/sbbs3/chk_ar.cpp | 21 +++++++++++++++++++++
 src/sbbs3/userdat.c  | 21 +++++++++++++++++++++
 4 files changed, 66 insertions(+)

diff --git a/src/sbbs3/ars.c b/src/sbbs3/ars.c
index e1e8968f58..f664cb986d 100644
--- a/src/sbbs3/ars.c
+++ b/src/sbbs3/ars.c
@@ -263,6 +263,27 @@ uchar* arstr(ushort* count, char* str, scfg_t* cfg)
 				not=0;
 				ar[j++]=artype;
 				i+=2; }
+			else if(!strncmp(str+i,"WIN32",5)) {
+				artype=AR_WIN32;
+				if(not)
+					ar[j++]=AR_NOT;
+				not=0;
+				ar[j++]=artype;
+				i+=2; }
+			else if(!strncmp(str+i,"UNIX",4)) {
+				artype=AR_UNIX;
+				if(not)
+					ar[j++]=AR_NOT;
+				not=0;
+				ar[j++]=artype;
+				i+=2; }
+			else if(!strncmp(str+i,"LINUX",5)) {
+				artype=AR_LINUX;
+				if(not)
+					ar[j++]=AR_NOT;
+				not=0;
+				ar[j++]=artype;
+				i+=2; }
 			else if(!strncmp(str+i,"SUBCODE",7)) {
 				artype=AR_SUBCODE;
 				i+=6; }
diff --git a/src/sbbs3/ars_defs.h b/src/sbbs3/ars_defs.h
index 96452c7d9a..71eeeca857 100644
--- a/src/sbbs3/ars_defs.h
+++ b/src/sbbs3/ars_defs.h
@@ -104,6 +104,9 @@ enum {                              /* Access requirement binaries */
 	,AR_DIRCODE
 	,AR_OS2
 	,AR_DOS
+	,AR_WIN32
+	,AR_UNIX
+	,AR_LINUX
     };
 
 #endif		/* Don't add anything after this line */
diff --git a/src/sbbs3/chk_ar.cpp b/src/sbbs3/chk_ar.cpp
index 9cfe265def..5fd1cea298 100644
--- a/src/sbbs3/chk_ar.cpp
+++ b/src/sbbs3/chk_ar.cpp
@@ -157,6 +157,27 @@ bool sbbs_t::ar_exp(uchar **ptrptr, user_t* user)
 					result=!not;
 				#endif
 				break;
+			case AR_WIN32:
+				#ifndef _WIN32
+					result=not;
+				#else
+					result=!not;
+				#endif
+				break;
+			case AR_UNIX:
+				#ifndef __unix__
+					result=not;
+				#else
+					result=!not;
+				#endif
+				break;
+			case AR_LINUX:
+				#ifndef __linux__
+					result=not;
+				#else
+					result=!not;
+				#endif
+				break;
 			case AR_EXPERT:
 				if(!(user->misc&EXPERT))
 					result=not;
diff --git a/src/sbbs3/userdat.c b/src/sbbs3/userdat.c
index 35550cbe05..9cb0892ea9 100644
--- a/src/sbbs3/userdat.c
+++ b/src/sbbs3/userdat.c
@@ -789,6 +789,27 @@ static BOOL ar_exp(scfg_t* cfg, uchar **ptrptr, user_t* user)
 					result=!not;
 				#endif
 				break;
+			case AR_WIN32:
+				#ifndef _WIN32
+					result=not;
+				#else
+					result=!not;
+				#endif
+				break;
+			case AR_UNIX:
+				#ifndef __unix__
+					result=not;
+				#else
+					result=!not;
+				#endif
+				break;
+			case AR_LINUX:
+				#ifndef __linux__
+					result=not;
+				#else
+					result=!not;
+				#endif
+				break;
 			case AR_EXPERT:
 				if(!(user->misc&EXPERT))
 					result=not;
-- 
GitLab