[comp.sources.bugs] Patch #4 to Pcomm v1.1

egray@fthood.UUCP (10/03/88)

Oh well, they say all programs evolve...  This is patch #4 to Pcomm v1.1.

Several people had complained that some fields in the setup menu didn't
appear on the screen correctly.  As it turned out, the culprit was the
use of the "Enter" key (in lieu of the "Return" key) on terminals that
send a newline on "Enter".  This patch will change the get_str() function
to not allow a newline.

Also, there had been some discussion on whether or not the hangup function
should drop the DTR... the DTR camp won.

Emmet P. Gray				US Army, HQ III Corps & Fort Hood
...!uunet!uiucuxc!fthood!egray		Attn: AFZF-DE-ENV
					Directorate of Engineering & Housing
					Environmental Management Office
					Fort Hood, TX 76544-5057

-----------------------------------------------------------------------------
*** old/chg_dir.c	Thu Sep 29 12:43:28 1988
--- chg_dir.c	Thu Sep 29 12:44:12 1988
***************
*** 29,33
  	wrefresh(ch_win);
  					/* get the answer */
! 	while ((ans = get_str(ch_win, 60, "", " 	")) != NULL) {
  					/* a CR means no change */
  		if (*ans == NULL)

--- 29,33 -----
  	wrefresh(ch_win);
  					/* get the answer */
! 	while ((ans = get_str(ch_win, 60, "", " \t\n")) != NULL) {
  					/* a CR means no change */
  		if (*ans == NULL)
*** old/d_manual.c	Thu Sep 29 12:43:29 1988
--- d_manual.c	Thu Sep 29 12:44:35 1988
***************
*** 26,30
  	wrefresh(m_win);
  					/* get a phone number */
! 	if ((number = get_str(m_win, 30, "", "")) == NULL) {
  		werase(m_win);
  		wrefresh(m_win);

--- 26,30 -----
  	wrefresh(m_win);
  					/* get a phone number */
! 	if ((number = get_str(m_win, 30, "", "\n")) == NULL) {
  		werase(m_win);
  		wrefresh(m_win);
*** old/d_print.c	Thu Sep 29 12:43:29 1988
--- d_print.c	Thu Sep 29 12:45:29 1988
***************
*** 149,152
  			continue;
  		}
  					/* an <ESC> anywhere in the string */
  		if (ans == ESC)

--- 149,157 -----
  			continue;
  		}
+ 					/* illegal character? */
+ 		if (ans == '\n') {
+ 			beep();
+ 			continue;
+ 		}
  					/* an <ESC> anywhere in the string */
  		if (ans == ESC)
*** old/d_prompt.c	Thu Sep 29 12:43:29 1988
--- d_prompt.c	Thu Sep 29 12:46:03 1988
***************
*** 44,48
  	wrefresh(win);
  
! 	if ((ans = get_str(win, 20, "", ";")) == NULL)
  		return(0);
  	if (*ans != NULL) {

--- 44,48 -----
  	wrefresh(win);
  
! 	if ((ans = get_str(win, 20, "", ";\n")) == NULL)
  		return(0);
  	if (*ans != NULL) {
***************
*** 57,61
  	wrefresh(win);
  
! 	if ((ans = get_str(win, 18, "", ";")) == NULL)
  		return(0);
  	if (*ans != NULL) {

--- 57,61 -----
  	wrefresh(win);
  
! 	if ((ans = get_str(win, 18, "", ";\n")) == NULL)
  		return(0);
  	if (*ans != NULL) {
***************
*** 207,211
  	wrefresh(win);
  
! 	if ((ans = get_str(win, 14, "", ";")) == NULL)
  		return(0);
  	if (*ans != NULL) {

--- 207,211 -----
  	wrefresh(win);
  
! 	if ((ans = get_str(win, 14, "", ";\n")) == NULL)
  		return(0);
  	if (*ans != NULL) {
*** old/d_revise.c	Thu Sep 29 12:43:29 1988
--- d_revise.c	Thu Sep 29 12:46:24 1988
***************
*** 180,184
  	wrefresh(win);
  
! 	if ((ans = get_str(win, 20, "", "")) == NULL)
  		return(NULL);
  					/* if space, change to NULL pointer */

--- 180,184 -----
  	wrefresh(win);
  
! 	if ((ans = get_str(win, 20, "", "\n")) == NULL)
  		return(NULL);
  					/* if space, change to NULL pointer */
*** old/data_log.c	Thu Sep 29 12:43:29 1988
--- data_log.c	Thu Sep 29 12:46:42 1988
***************
*** 34,38
  	ret_code = 0;
  	path = null_ptr;
! 	while ((ans = get_str(dl_win, 60, "", " 	")) != NULL) {
  					/* give 'em the default */
  		if (*ans == NULL)

--- 34,38 -----
  	ret_code = 0;
  	path = null_ptr;
! 	while ((ans = get_str(dl_win, 60, "", " \t\n")) != NULL) {
  					/* give 'em the default */
  		if (*ans == NULL)
*** old/info.c	Thu Sep 29 12:43:31 1988
--- info.c	Thu Sep 29 12:50:09 1988
***************
*** 5,9
  
  #define VERSION "1.1"
! #define DATE	"19 Sep 88"
  
  #include <stdio.h>

--- 5,9 -----
  
  #define VERSION "1.1"
! #define DATE	"30 Sep 88"
  
  #include <stdio.h>
*** old/list_dir.c	Thu Sep 29 12:43:31 1988
--- list_dir.c	Thu Sep 29 12:46:54 1988
***************
*** 29,33
  	wrefresh(ls_win);
  
! 	if ((ans = get_str(ls_win, 60, "", "")) == NULL) {
  		if (fd == -1) {
  			werase(ls_win);

--- 29,33 -----
  	wrefresh(ls_win);
  
! 	if ((ans = get_str(ls_win, 60, "", "\n")) == NULL) {
  		if (fd == -1) {
  			werase(ls_win);
*** old/macro.c	Thu Sep 29 12:43:32 1988
--- macro.c	Thu Sep 29 12:47:11 1988
***************
*** 179,183
  	wrefresh(mp_win);
  
! 	new = get_str(mp_win, 50, "", "");
  					/* if space, change to NULL pointer */
  	if (!strcmp(new, " "))

--- 179,183 -----
  	wrefresh(mp_win);
  
! 	new = get_str(mp_win, 50, "", "\n");
  					/* if space, change to NULL pointer */
  	if (!strcmp(new, " "))
*** old/main.c	Thu Sep 29 12:43:32 1988
--- main.c	Thu Sep 29 12:49:57 1988
***************
*** 20,23
   *	  patch #2	15 Sep 88
   *	  patch #3	19 Sep 88
   */
  

--- 20,24 -----
   *	  patch #2	15 Sep 88
   *	  patch #3	19 Sep 88
+  *	  patch #4	30 Sep 88
   */
  
*** old/s_prompt.c	Thu Sep 29 12:43:34 1988
--- s_prompt.c	Thu Sep 29 12:48:00 1988
***************
*** 28,32
  	wrefresh(win);
  
! 	if ((ans = get_str(win, 39, "", "")) == NULL)
  		return(NULL);
  					/* check the value */

--- 28,32 -----
  	wrefresh(win);
  
! 	if ((ans = get_str(win, 39, "", "\n")) == NULL)
  		return(NULL);
  					/* check the value */
***************
*** 57,61
  	wrefresh(win);
  
! 	if ((ans = get_str(win, 1, "", "")) == NULL)
  		return(NULL);
  					/* display the value in bold */

--- 57,61 -----
  	wrefresh(win);
  
! 	if ((ans = get_str(win, 1, "", "\n")) == NULL)
  		return(NULL);
  					/* display the value in bold */
*** old/x_batch.c	Thu Sep 29 12:43:36 1988
--- x_batch.c	Thu Sep 29 12:49:28 1988
***************
*** 336,340
  	name = temp;
  
! 	ext = NULL;
  	dot = 0;
  	for (s=name; *s; ++s) {

--- 336,340 -----
  	name = temp;
  
! 	ext = "";
  	dot = 0;
  	for (s=name; *s; ++s) {
*** old/x_menu.c	Thu Sep 29 12:43:36 1988
--- x_menu.c	Thu Sep 29 12:48:38 1988
***************
*** 142,146
  					/* get the answers */
  		if (is_batch)
! 			ans = get_str(gn_win, 60, "", "");
  		else
  			ans = get_str(gn_win, 60, "", " 	");

--- 142,146 -----
  					/* get the answers */
  		if (is_batch)
! 			ans = get_str(gn_win, 60, "", "\n");
  		else
  			ans = get_str(gn_win, 60, "", " \t\n");
***************
*** 144,148
  			ans = get_str(gn_win, 60, "", "");
  		else
! 			ans = get_str(gn_win, 60, "", " 	");
  
  		if (ans == NULL || *ans == NULL) {

--- 144,148 -----
  			ans = get_str(gn_win, 60, "", "\n");
  		else
! 			ans = get_str(gn_win, 60, "", " \t\n");
  
  		if (ans == NULL || *ans == NULL) {
***************
*** 250,254
  	wrefresh(ge_win);
  					/* get the line */
! 	ans = get_str(ge_win, 60, "", "");
  	cmd = expand(ans);
  	if (*cmd == NULL)

--- 250,254 -----
  	wrefresh(ge_win);
  					/* get the line */
! 	ans = get_str(ge_win, 60, "", "\n");
  	cmd = expand(ans);
  	if (*cmd == NULL)
*** old/Doc	Mon Sep 26 18:33:02 1988
--- Doc	Sun Oct  2 12:28:48 1988
***************
*** 914,920
  	will briefly show in the status line.
  
! 	NOTE:  Pcomm does not drop the DTR (Data Terminal Ready)  during
! 	a  hang  up.   Therefore,  this  would  have no effect on direct
! 	lines.
  
  	5.7 Printer logging

--- 914,919 -----
  	will briefly show in the status line.
  
! 	NOTE:  Pcomm drops the DTR (Data Terminal Ready) before  sending
! 	the hang up string.
  
  	5.7 Printer logging
*** old/terminal.c	Thu Sep 22 11:31:04 1988
--- terminal.c	Sun Oct  2 12:41:18 1988
***************
*** 30,34
  	char c, lf=10, *strdup();
  	void help_screen(), line_set(), n_shell(), load_vs(), send_str();
! 	void hang_up(), do_input(), list_dir(), pexit(), zap_vs();
  	void st_line(), chg_dir(), screen_dump(), input_off(), suspend();
  	void info(), term_mode();

--- 30,34 -----
  	char c, lf=10, *strdup();
  	void help_screen(), line_set(), n_shell(), load_vs(), send_str();
! 	void release_port(), do_input(), list_dir(), pexit(), zap_vs();
  	void st_line(), chg_dir(), screen_dump(), input_off(), suspend();
  	void info(), term_mode();
***************
*** 133,137
  				case 'h':
  				case 'H':	/* hang up phone */
! 					hang_up(1);
  					input_off();
  					break;

--- 133,137 -----
  				case 'h':
  				case 'H':	/* hang up phone */
! 					release_port(1);
  					input_off();
  					break;
*** old/port.c	Thu Sep 22 14:27:27 1988
--- port.c	Sun Oct  2 17:55:33 1988
***************
*** 223,227
  	}
  					/* turn the getty back on? */
! 	if (getty_status)
  		set_getty(modem->tty[modem->t_cur], 1);
  					/* clean up the structure */

--- 223,227 -----
  	}
  					/* turn the getty back on? */
! 	if (getty_status && modem->t_cur != -1)
  		set_getty(modem->tty[modem->t_cur], 1);
  					/* clean up the structure */