From 3e1b25e5ce85df490ab330846fa7f98db9c2759b Mon Sep 17 00:00:00 2001 From: rswindell <> Date: Thu, 27 Feb 2003 03:10:27 +0000 Subject: [PATCH] Mods for external programs on Unix: Added seprate ExternalTermANSI and ExternalTermDumb (for non-ANSI users) .ini file keys. Added configurable dosemu/doscmd path in .ini file (DOSemuPath key). --- src/sbbs3/sbbs_ini.c | 23 +++++++++++++++++------ src/sbbs3/startup.h | 6 +++--- src/sbbs3/xtrn.cpp | 7 +++++-- 3 files changed, 25 insertions(+), 11 deletions(-) diff --git a/src/sbbs3/sbbs_ini.c b/src/sbbs3/sbbs_ini.c index 436c00e3a6..b5dcb2aa84 100644 --- a/src/sbbs3/sbbs_ini.c +++ b/src/sbbs3/sbbs_ini.c @@ -150,7 +150,7 @@ void sbbs_read_ini( ) { const char* section; - const char* default_term; + const char* default_term_ansi; const char* default_cgi_temp; char* ctrl_dir; char host_name[128]; @@ -183,7 +183,7 @@ void sbbs_read_ini( bbs->rlogin_interface =iniReadIpAddress(fp,section,"RLoginInterface",INADDR_ANY); bbs->rlogin_port - =iniReadShortInt(fp,section,"RloginPort",513); + =iniReadShortInt(fp,section,"RLoginPort",513); bbs->first_node =iniReadShortInt(fp,section,"FirstNode",1); @@ -197,16 +197,27 @@ void sbbs_read_ini( /* Set default terminal type to "stock" termcap closest to "ansi-bbs" */ #if defined(__FreeBSD__) - default_term="cons25"; + default_term_ansi="cons25"; #else - default_term="pc3"; + default_term_ansi="pc3"; #endif SAFECOPY(bbs->host_name ,iniReadString(fp,section,"HostName",host_name)); - SAFECOPY(bbs->xtrn_term - ,iniReadString(fp,section,"ExternalTerm",default_term)); + SAFECOPY(bbs->xtrn_term_ansi + ,iniReadString(fp,section,"ExternalTermANSI",default_term_ansi)); + SAFECOPY(bbs->xtrn_term_dumb + ,iniReadString(fp,section,"ExternalTermDumb","dumb")); + + SAFECOPY(bbs->dosemu_path + ,iniReadString(fp,section,"DOSemuPath" +#if defined(__FreeBSD__) + ,"/usr/bin/doscmd" +#else + ,"/usr/bin/dosemu" +#endif + ); SAFECOPY(bbs->answer_sound ,iniReadString(fp,section,"AnswerSound",nulstr)); diff --git a/src/sbbs3/startup.h b/src/sbbs3/startup.h index fe0c832439..c945190a38 100644 --- a/src/sbbs3/startup.h +++ b/src/sbbs3/startup.h @@ -80,7 +80,7 @@ typedef struct { void (*reserved_fptr2)(void); void (*reserved_fptr1)(void); char ctrl_dir[128]; - char reserved_path8[128]; + char dosemu_path[128]; char reserved_path7[128]; char reserved_path6[128]; char reserved_path5[128]; @@ -88,8 +88,8 @@ typedef struct { char reserved_path3[128]; char answer_sound[128]; char hangup_sound[128]; - char xtrn_term[32]; /* external terminal type (e.g. "ansi-bbs") */ - char reserved_str2[32]; + char xtrn_term_ansi[32]; /* external ANSI terminal type (e.g. "ansi-bbs") */ + char xtrn_term_dumb[32]; /* external dumb terminal type (e.g. "dumb") */ char reserved_str1[64]; char host_name[128]; BOOL recycle_now; diff --git a/src/sbbs3/xtrn.cpp b/src/sbbs3/xtrn.cpp index 9e26f900c9..5fb56b22cf 100644 --- a/src/sbbs3/xtrn.cpp +++ b/src/sbbs3/xtrn.cpp @@ -1166,7 +1166,7 @@ int sbbs_t::external(char* cmdline, long mode, char* startup_dir) fclose(doscmdrc); SAFECOPY(str,cmdline); - sprintf(cmdline,"/usr/bin/doscmd -F %s",str); + sprintf(cmdline,"%s -F %s",startup->dosemu_path,str); #endif } @@ -1222,7 +1222,10 @@ int sbbs_t::external(char* cmdline, long mode, char* startup_dir) sigprocmask(SIG_UNBLOCK,&sigs,NULL); if(!(mode&EX_BIN)) { static char term_env[256]; - sprintf(term_env,"TERM=%s",startup->xtrn_term); + if(useron.misc&ANSI) + sprintf(term_env,"TERM=%s",startup->xtrn_term_ansi); + else + sprintf(term_env,"TERM=%s",startup->xtrn_term_dumb); putenv(term_env); } #ifdef __FreeBSD__ -- GitLab