diff --git a/src/syncterm/bbslist.c b/src/syncterm/bbslist.c index aff723028cbdc571150f25e1e787f6b4eaafe43e..488722a88685a833f7dfc7a276d24185bb632653 100644 --- a/src/syncterm/bbslist.c +++ b/src/syncterm/bbslist.c @@ -181,7 +181,7 @@ char *music_names[]={"ESC [ | only", "BANSI Style", "All ANSI Music enabled", NU char *address_help= "`Address` or `Phone Number`\n\n" "Enter the hostname, IP address, or phone number of the system\n" - "to connect to. i.e. `nix.synchro.net`"; + "to connect to. Example: `nix.synchro.net`"; char *conn_type_help= "`Connection Type`\n\n" "Select the type of connection you wish to make:\n\n" "`RLogin`...........: Auto-login with RLogin protocol\n" @@ -778,7 +778,7 @@ int edit_list(struct bbslist **list, struct bbslist *item,char *listpath,int isd } break; case 1: - uifc.helpbuf= + uifc.helpbuf=address_help; uifc.input(WIN_MID|WIN_SAV,0,0 ,item->conn_type==CONN_TYPE_MODEM ? "Phone Number":"Address" ,item->addr,LIST_ADDR_MAX,K_EDIT); @@ -1056,8 +1056,8 @@ void change_settings(void) char inipath[MAX_PATH+1]; FILE *inifile; str_list_t inicontents; - char opts[7][80]; - char *opt[8]; + char opts[8][80]; + char *opt[9]; int i,j; char str[64]; int cur=0; @@ -1071,9 +1071,9 @@ void change_settings(void) inicontents=strListInit(); } - for(i=0; i<7; i++) + for(i=0; i<8; i++) opt[i]=opts[i]; - opt[7]=NULL; + opt[i]=NULL; for(;;) { @@ -1089,9 +1089,11 @@ void change_settings(void) "~ Scrollback Buffer Lines ~\n" " The number of lines in the scrollback buffer.\n\n" "~ Modem Device ~\n" - " The device name of the modem.\n\n" + " The device name of the modem's communications port.\n\n" "~ Modem Init String ~\n" - " An init string to use for the modem.\n\n"; + " The command string to use to initialize the modem.\n\n" + "~ Modem Dial String ~\n" + " The command string to use to dial the modem.\n\n" ; sprintf(opts[0],"Confirm Program Exit %s",settings.confirm_close?"Yes":"No"); sprintf(opts[1],"Prompt to Save %s",settings.prompt_save?"Yes":"No"); sprintf(opts[2],"Startup Screen Mode %s",screen_modes[settings.startup_mode]); @@ -1099,6 +1101,7 @@ void change_settings(void) sprintf(opts[4],"Scrollback Buffer Lines %d",settings.backlines); sprintf(opts[5],"Modem Device %s",settings.mdm.device_name); sprintf(opts[6],"Modem Init String %s",settings.mdm.init_string); + sprintf(opts[7],"Modem Dial String %s",settings.mdm.dial_string); switch(uifc.list(WIN_MID|WIN_SAV|WIN_ACT,0,0,0,&cur,NULL,"Program Settings",opt)) { case -1: goto write_ini; @@ -1227,31 +1230,43 @@ void change_settings(void) break; case 5: uifc.helpbuf= "`Modem Device`\n\n" -#ifdef _WIN32 - "Enter the modem device name (ie: COM1)."; -#else - "Enter the modem device name (ie: /dev/ttyd0)."; -#endif + "Enter the name of the device used to communicate with the modem.\n\n" + "Example: \"`" + DEFAULT_MODEM_DEV + "`\""; if(uifc.input(WIN_MID|WIN_SAV,0,0,"Modem Device",settings.mdm.device_name,LIST_NAME_MAX,K_EDIT)>=0) iniSetString(&inicontents,"SyncTERM","ModemDevice",settings.mdm.device_name,&ini_style); break; case 6: uifc.helpbuf= "`Modem Init String`\n\n" - "Your modem init string goes here.\n" - "For reference, here are the expected settings and USR inits\n\n" - "State USR Init\n" - "------------------------------------\n" + "Your modem initialization string goes here.\n\n" + "Example:\n" + "\"`AT&F`\" will load a Hayes compatible modem's factory default settings.\n\n" + "For reference, here are the expected Hayes-compatible settings:\n\n" + "State Command\n" + "----------------------------------\n" "Echo on E1\n" "Verbal result codes Q0V1\n" - "Include connection speed &X4\n" "Normal CD Handling &C1\n" - "Locked speed &B1\n" "Normal DTR &D2\n" + "\n\n" + "For reference, here are the expected USRobotics-compatible settings:\n\n" + "State Command\n" + "----------------------------------\n" + "Include connection speed &X4\n" + "Locked speed &B1\n" "CTS/RTS Flow Control &H1&R2\n" "Disable Software Flow &I0\n"; if(uifc.input(WIN_MID|WIN_SAV,0,0,"Modem Init String",settings.mdm.init_string,LIST_NAME_MAX,K_EDIT)>=0) iniSetString(&inicontents,"SyncTERM","ModemInit",settings.mdm.init_string,&ini_style); break; + case 7: + uifc.helpbuf= "`Modem Dial String`\n\n" + "The command string to dial the modem goes here.\n\n" + "Example: \"`ATDT`\" will dial a Hayes-compatible modem in touch-tone mode."; + if(uifc.input(WIN_MID|WIN_SAV,0,0,"Modem Dial String",settings.mdm.dial_string,LIST_NAME_MAX,K_EDIT)>=0) + iniSetString(&inicontents,"SyncTERM","ModemDial",settings.mdm.dial_string,&ini_style); + break; } } write_ini: diff --git a/src/syncterm/modem.c b/src/syncterm/modem.c index f12a16a17e98f634f18303a3b5fef2df6b56bc96..0d9523067f5065b526c9a9067b336891d1880835 100644 --- a/src/syncterm/modem.c +++ b/src/syncterm/modem.c @@ -162,7 +162,7 @@ int modem_connect(struct bbslist *bbs) uifc.pop(NULL); uifc.pop("Dialing..."); - comWriteString(com, "ATDT"); + comWriteString(com, settings.mdm.dial_string); comWriteString(com, bbs->addr); comWriteString(com, "\r"); diff --git a/src/syncterm/syncterm.c b/src/syncterm/syncterm.c index 4d0964d53ae1b588b54e72051c2e5d1262d53c42..f3e42b846ffe22847424334ea5dda5a047ca0074 100644 --- a/src/syncterm/syncterm.c +++ b/src/syncterm/syncterm.c @@ -36,17 +36,6 @@ char* syncterm_version = "SyncTERM 0.9.1" #endif ; -/* Default modem device */ -#if defined(__APPLE__) && defined(__MACH__) -/* Mac OS X */ -#define DEFAULT_MODEM_DEV "/dev/tty.modem" -#elif defined(_WIN32) -#define DEFAULT_MODEM_DEV "COM1" -#else -/* FreeBSD */ -#define DEFAULT_MODEM_DEV "/dev/ttyd0" -#endif - char *inpath=NULL; int default_font=0; struct syncterm_settings settings; @@ -984,6 +973,7 @@ void load_settings(struct syncterm_settings *set) /* Modem settings */ iniReadString(inifile, "SyncTERM", "ModemInit", "AT&F", set->mdm.init_string); + iniReadString(inifile, "SyncTERM", "ModemDial", "ATDT", set->mdm.dial_string); iniReadString(inifile, "SyncTERM", "ModemDevice", DEFAULT_MODEM_DEV, set->mdm.device_name); /* Sort order */ diff --git a/src/syncterm/syncterm.h b/src/syncterm/syncterm.h index 5dbb3c5eb3797dfa21ba12843635358d71b1f73e..bf50ef827fd227d362a1e8e92e0208cf831804f9 100644 --- a/src/syncterm/syncterm.h +++ b/src/syncterm/syncterm.h @@ -16,8 +16,20 @@ enum { ,SYNCTERM_PATH_CACHE }; +/* Default modem device */ +#if defined(__APPLE__) && defined(__MACH__) +/* Mac OS X */ +#define DEFAULT_MODEM_DEV "/dev/tty.modem" +#elif defined(_WIN32) +#define DEFAULT_MODEM_DEV "COM1" +#else +/* FreeBSD */ +#define DEFAULT_MODEM_DEV "/dev/ttyd0" +#endif + struct modem_settings { char init_string[INI_MAX_VALUE_LEN]; + char dial_string[INI_MAX_VALUE_LEN]; char device_name[INI_MAX_VALUE_LEN+1]; };