gww@marduk.UUCP (Gary Winiger) (09/05/87)
Subject: Tip to a hayes modem doesn't allow a pause character +Fix
Index: usr.bin/tip/aculib/hayes.c 4.3BSD +Fix
Description:
The code in tip (acu.c) stops a phone number on a ',' character
as documented in phone(5), thus not allowing the ``normal''
Hayes pause character in a number. Neither of the documented
characters, '=' and '*', affect a pause. '=' works correctly
for a USR (courier) modem.
Repeat-By:
Try to have tip dial a hayes modem type with a ',', '=', or '*'
indicating a pause. None will work.
Fix:
Choose '=' as the pause character for hayes modem type.
The attached code solves this problem at Elxsi.
Gary..
{ucbvax!sun,lll-lcc!lll-tis,amdahl!altos86,bridge2}!elxsi!gww
--------- cut --------- snip --------- :.,$w diff -------------
*** /tmp/,RCSt1002249 Fri Jul 3 16:24:27 1987
--- hayes.c Fri Jul 3 16:22:57 1987
***************
*** 1,5 ****
--- 1,8 ----
/*
* $Log: hayes.c,v $
+ * Revision 1.2 87/07/03 16:22:32 gww
+ * Translate '=' to ',' for pause character.
+ *
* Revision 1.1 87/07/02 17:02:42 gww
* Initial revision
*
***************
*** 11,17 ****
*/
#ifndef lint
! static char *ERcsId = "$Header: hayes.c,v 1.1 87/07/02 17:02:42 gww Exp $ ENIX BSD";
static char sccsid[] = "@(#)hayes.c 5.1 (Berkeley) 4/30/85";
#endif not lint
--- 14,20 ----
*/
#ifndef lint
! static char *ERcsId = "$Header: hayes.c,v 1.2 87/07/03 16:22:32 gww Exp $ ENIX BSD";
static char sccsid[] = "@(#)hayes.c 5.1 (Berkeley) 4/30/85";
#endif not lint
***************
*** 76,81 ****
--- 79,88 ----
gobble("\r");
gobble("\r");
write(FD, "ATTD", 4); /* send dial command */
+ /* translate pause character */
+ for (cp = num; *cp; cp++)
+ if (*cp == '=')
+ *cp = ',';
write(FD, num, strlen(num));
state = DIALING;
write(FD, "\r", 1);