Skip to content
Snippets Groups Projects
Commit 3e1b25e5 authored by rswindell's avatar rswindell
Browse files

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).
parent b44920c3
Branches
Tags
No related merge requests found
......@@ -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));
......
......@@ -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;
......
......@@ -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__
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment